X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fserial.c;h=c4c52dad3b90b523db0bd95ca285e44f731772e8;hb=3cd1d3771e3f8e30b09f6c4995851979aaafc5ff;hp=55d75414c4830bef132fb848d5039fb882c2caba;hpb=e70e95962c26832628d586e07f9cd1a2e1852d72;p=palacios.git diff --git a/palacios/src/devices/serial.c b/palacios/src/devices/serial.c index 55d7541..c4c52da 100644 --- a/palacios/src/devices/serial.c +++ b/palacios/src/devices/serial.c @@ -161,8 +161,8 @@ struct serial_buffer { char buffer[SERIAL_BUF_LEN]; }; -int queue_data(struct serial_buffer * buf, char data) { - int next_loc = (buf->head + 1) % SERIAL_BUF_LEN; +static int queue_data(struct serial_buffer * buf, char data) { + uint_t next_loc = (buf->head + 1) % SERIAL_BUF_LEN; if (next_loc == buf->tail) { return -1; @@ -174,8 +174,8 @@ int queue_data(struct serial_buffer * buf, char data) { return 0; } -int dequeue_data(struct serial_buffer * buf, char * data) { - int next_tail = (buf->tail + 1) % SERIAL_BUF_LEN; +static int dequeue_data(struct serial_buffer * buf, char * data) { + uint_t next_tail = (buf->tail + 1) % SERIAL_BUF_LEN; if (buf->head == buf->tail) { return -1; @@ -210,7 +210,7 @@ struct serial_state { }; -int write_data_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { +static int write_data_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { struct serial_state * state = (struct serial_state *)dev->private_data; char * val = (char *)src; PrintDebug("Write to Data Port 0x%x (val=%x)\n", port, *(char*)src); @@ -243,7 +243,7 @@ int write_data_port(ushort_t port, void * src, uint_t length, struct vm_device * -int read_data_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { +static int read_data_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { struct serial_state * state = (struct serial_state *)dev->private_data; char * val = (char *)dst; PrintDebug("Read from Data Port 0x%x\n", port); @@ -276,14 +276,14 @@ int read_data_port(ushort_t port, void * dst, uint_t length, struct vm_device * -int handle_ier_write(struct serial_port * com, struct irq_enable_reg * ier) { +static int handle_ier_write(struct serial_port * com, struct irq_enable_reg * ier) { return -1; } -int write_ctrl_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { +static int write_ctrl_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { struct serial_state * state = (struct serial_state *)dev->private_data; char * val = (char *)src; PrintDebug("Write to Control Port (val=%x)\n", *(char *)src); @@ -343,7 +343,7 @@ int write_ctrl_port(ushort_t port, void * src, uint_t length, struct vm_device * -int read_ctrl_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { +static int read_ctrl_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { struct serial_state * state = (struct serial_state *)dev->private_data; char * val = (char *)dst; PrintDebug("Read from Control Port\n"); @@ -414,13 +414,13 @@ int read_ctrl_port(ushort_t port, void * dst, uint_t length, struct vm_device * } -int write_status_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { +static int write_status_port(ushort_t port, void * src, uint_t length, struct vm_device * dev) { PrintDebug("Write to Status Port 0x%x (val=%x)\n", port, *(char *)src); return -1; } -int read_status_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { +static int read_status_port(ushort_t port, void * dst, uint_t length, struct vm_device * dev) { struct serial_state * state = (struct serial_state *)dev->private_data; char * val = (char *)dst; PrintDebug("Read from Status Port 0x%x\n", port); @@ -490,7 +490,7 @@ static int init_serial_port(struct serial_port * com) { return 0; } -int serial_init(struct vm_device * dev) { +static int serial_init(struct vm_device * dev) { struct serial_state * state = (struct serial_state *)dev->private_data; @@ -499,84 +499,84 @@ int serial_init(struct vm_device * dev) { init_serial_port(&(state->com3)); init_serial_port(&(state->com4)); - dev_hook_io(dev, COM1_DATA_PORT, &read_data_port, &write_data_port); - dev_hook_io(dev, COM1_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM1_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM1_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM1_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM1_LINE_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM1_MODEM_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM1_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); - - dev_hook_io(dev, COM2_DATA_PORT, &read_data_port, &write_data_port); - dev_hook_io(dev, COM2_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM2_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM2_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM2_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM2_LINE_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM2_MODEM_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM2_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); - - dev_hook_io(dev, COM3_DATA_PORT, &read_data_port, &write_data_port); - dev_hook_io(dev, COM3_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM3_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM3_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM3_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM3_LINE_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM3_MODEM_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM3_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); - - dev_hook_io(dev, COM4_DATA_PORT, &read_data_port, &write_data_port); - dev_hook_io(dev, COM4_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM4_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM4_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM4_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); - dev_hook_io(dev, COM4_LINE_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM4_MODEM_STATUS_PORT, &read_status_port, &write_status_port); - dev_hook_io(dev, COM4_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM1_DATA_PORT, &read_data_port, &write_data_port); + v3_dev_hook_io(dev, COM1_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM1_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM1_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM1_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM1_LINE_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM1_MODEM_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM1_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); + + v3_dev_hook_io(dev, COM2_DATA_PORT, &read_data_port, &write_data_port); + v3_dev_hook_io(dev, COM2_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM2_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM2_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM2_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM2_LINE_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM2_MODEM_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM2_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); + + v3_dev_hook_io(dev, COM3_DATA_PORT, &read_data_port, &write_data_port); + v3_dev_hook_io(dev, COM3_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM3_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM3_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM3_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM3_LINE_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM3_MODEM_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM3_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); + + v3_dev_hook_io(dev, COM4_DATA_PORT, &read_data_port, &write_data_port); + v3_dev_hook_io(dev, COM4_IRQ_ENABLE_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM4_FIFO_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM4_LINE_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM4_MODEM_CTRL_PORT, &read_ctrl_port, &write_ctrl_port); + v3_dev_hook_io(dev, COM4_LINE_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM4_MODEM_STATUS_PORT, &read_status_port, &write_status_port); + v3_dev_hook_io(dev, COM4_SCRATCH_PORT, &read_ctrl_port, &write_ctrl_port); return 0; } -int serial_deinit(struct vm_device * dev) { - - - dev_unhook_io(dev, COM1_DATA_PORT); - dev_unhook_io(dev, COM1_IRQ_ENABLE_PORT); - dev_unhook_io(dev, COM1_FIFO_CTRL_PORT); - dev_unhook_io(dev, COM1_LINE_CTRL_PORT); - dev_unhook_io(dev, COM1_MODEM_CTRL_PORT); - dev_unhook_io(dev, COM1_LINE_STATUS_PORT); - dev_unhook_io(dev, COM1_MODEM_STATUS_PORT); - dev_unhook_io(dev, COM1_SCRATCH_PORT); - - dev_unhook_io(dev, COM2_DATA_PORT); - dev_unhook_io(dev, COM2_IRQ_ENABLE_PORT); - dev_unhook_io(dev, COM2_FIFO_CTRL_PORT); - dev_unhook_io(dev, COM2_LINE_CTRL_PORT); - dev_unhook_io(dev, COM2_MODEM_CTRL_PORT); - dev_unhook_io(dev, COM2_LINE_STATUS_PORT); - dev_unhook_io(dev, COM2_MODEM_STATUS_PORT); - dev_unhook_io(dev, COM2_SCRATCH_PORT); - - dev_unhook_io(dev, COM3_DATA_PORT); - dev_unhook_io(dev, COM3_IRQ_ENABLE_PORT); - dev_unhook_io(dev, COM3_FIFO_CTRL_PORT); - dev_unhook_io(dev, COM3_LINE_CTRL_PORT); - dev_unhook_io(dev, COM3_MODEM_CTRL_PORT); - dev_unhook_io(dev, COM3_LINE_STATUS_PORT); - dev_unhook_io(dev, COM3_MODEM_STATUS_PORT); - dev_unhook_io(dev, COM3_SCRATCH_PORT); - - dev_unhook_io(dev, COM4_DATA_PORT); - dev_unhook_io(dev, COM4_IRQ_ENABLE_PORT); - dev_unhook_io(dev, COM4_FIFO_CTRL_PORT); - dev_unhook_io(dev, COM4_LINE_CTRL_PORT); - dev_unhook_io(dev, COM4_MODEM_CTRL_PORT); - dev_unhook_io(dev, COM4_LINE_STATUS_PORT); - dev_unhook_io(dev, COM4_MODEM_STATUS_PORT); - dev_unhook_io(dev, COM4_SCRATCH_PORT); +static int serial_deinit(struct vm_device * dev) { + + + v3_dev_unhook_io(dev, COM1_DATA_PORT); + v3_dev_unhook_io(dev, COM1_IRQ_ENABLE_PORT); + v3_dev_unhook_io(dev, COM1_FIFO_CTRL_PORT); + v3_dev_unhook_io(dev, COM1_LINE_CTRL_PORT); + v3_dev_unhook_io(dev, COM1_MODEM_CTRL_PORT); + v3_dev_unhook_io(dev, COM1_LINE_STATUS_PORT); + v3_dev_unhook_io(dev, COM1_MODEM_STATUS_PORT); + v3_dev_unhook_io(dev, COM1_SCRATCH_PORT); + + v3_dev_unhook_io(dev, COM2_DATA_PORT); + v3_dev_unhook_io(dev, COM2_IRQ_ENABLE_PORT); + v3_dev_unhook_io(dev, COM2_FIFO_CTRL_PORT); + v3_dev_unhook_io(dev, COM2_LINE_CTRL_PORT); + v3_dev_unhook_io(dev, COM2_MODEM_CTRL_PORT); + v3_dev_unhook_io(dev, COM2_LINE_STATUS_PORT); + v3_dev_unhook_io(dev, COM2_MODEM_STATUS_PORT); + v3_dev_unhook_io(dev, COM2_SCRATCH_PORT); + + v3_dev_unhook_io(dev, COM3_DATA_PORT); + v3_dev_unhook_io(dev, COM3_IRQ_ENABLE_PORT); + v3_dev_unhook_io(dev, COM3_FIFO_CTRL_PORT); + v3_dev_unhook_io(dev, COM3_LINE_CTRL_PORT); + v3_dev_unhook_io(dev, COM3_MODEM_CTRL_PORT); + v3_dev_unhook_io(dev, COM3_LINE_STATUS_PORT); + v3_dev_unhook_io(dev, COM3_MODEM_STATUS_PORT); + v3_dev_unhook_io(dev, COM3_SCRATCH_PORT); + + v3_dev_unhook_io(dev, COM4_DATA_PORT); + v3_dev_unhook_io(dev, COM4_IRQ_ENABLE_PORT); + v3_dev_unhook_io(dev, COM4_FIFO_CTRL_PORT); + v3_dev_unhook_io(dev, COM4_LINE_CTRL_PORT); + v3_dev_unhook_io(dev, COM4_MODEM_CTRL_PORT); + v3_dev_unhook_io(dev, COM4_LINE_STATUS_PORT); + v3_dev_unhook_io(dev, COM4_MODEM_STATUS_PORT); + v3_dev_unhook_io(dev, COM4_SCRATCH_PORT); return 0; } @@ -592,12 +592,12 @@ static struct vm_device_ops dev_ops = { }; -struct vm_device * create_serial(int num_ports) { +struct vm_device * v3_create_serial(int num_ports) { struct serial_state * state = NULL; state = (struct serial_state *)V3_Malloc(sizeof(struct serial_state)); V3_ASSERT(state != NULL); - struct vm_device * device = create_device("Serial UART", &dev_ops, state); + struct vm_device * device = v3_create_device("Serial UART", &dev_ops, state); return device; }