X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=UDI%2Fdrivers%2Fuart_16c550%2Fuart16c550_common.h;h=a8a62c276de8ff32e8abb20a7f43ca8fb8a85108;hb=7e9bbefbdcbfdba27eb6cdacae0811f428483892;hp=1c702779dadd7a55109f5f4fa5381d69a257bea4;hpb=c050d8159389ab625fe1448e2cc3b47e07c999b8;p=tpg%2Facess2.git diff --git a/UDI/drivers/uart_16c550/uart16c550_common.h b/UDI/drivers/uart_16c550/uart16c550_common.h index 1c702779..a8a62c27 100644 --- a/UDI/drivers/uart_16c550/uart16c550_common.h +++ b/UDI/drivers/uart_16c550/uart16c550_common.h @@ -11,16 +11,23 @@ enum { UART_CB_BUS_BIND = 1, UART_CB_INTR, UART_CB_INTR_EVENT, + UART_CB_GIO_EVENT, }; enum { PIO_RESET, PIO_TX, - PIO_RX, + PIO_INTR, N_PIO }; +#define NUM_INTR_CBS 2 +#define INTR_CB_BUF_SIZE 16 // 16550 has a 16-byte fifo +#define MAX_RX_BUFFER_SIZE 32 + typedef struct { + udi_init_context_t init_context; + udi_cb_t *active_cb; struct { udi_index_t pio_index; @@ -28,7 +35,12 @@ typedef struct { udi_pio_handle_t pio_handles[N_PIO]; udi_channel_t interrupt_channel; + udi_buf_t *rx_buffer; + + udi_boolean_t event_cb_used; + udi_boolean_t event_pending; + udi_gio_event_cb_t *event_cb; } rdata_t; // === MACROS ===