1 #ifndef _UART16C550_COMMON_H_
2 #define _UART16C550_COMMON_H_
24 #define NUM_INTR_CBS 2
25 #define INTR_CB_BUF_SIZE 16 // 16550 has a 16-byte fifo
26 #define MAX_RX_BUFFER_SIZE 32
29 udi_init_context_t init_context;
33 udi_index_t pio_index;
36 udi_pio_handle_t pio_handles[N_PIO];
37 udi_channel_t interrupt_channel;
41 udi_boolean_t event_cb_used;
42 udi_boolean_t event_pending;
43 udi_gio_event_cb_t *event_cb;
47 /* Copied from http://projectudi.cvs.sourceforge.net/viewvc/projectudi/udiref/driver/udi_dpt/udi_dpt.h */
48 #define DPT_SET_ATTR_BOOLEAN(attr, name, val) \
49 udi_strcpy((attr)->attr_name, (name)); \
50 (attr)->attr_type = UDI_ATTR_BOOLEAN; \
51 (attr)->attr_length = sizeof(udi_boolean_t); \
52 UDI_ATTR32_SET((attr)->attr_value, (val))
54 #define DPT_SET_ATTR32(attr, name, val) \
55 udi_strcpy((attr)->attr_name, (name)); \
56 (attr)->attr_type = UDI_ATTR_UBIT32; \
57 (attr)->attr_length = sizeof(udi_ubit32_t); \
58 UDI_ATTR32_SET((attr)->attr_value, (val))
60 #define DPT_SET_ATTR_ARRAY8(attr, name, val, len) \
61 udi_strcpy((attr)->attr_name, (name)); \
62 (attr)->attr_type = UDI_ATTR_ARRAY8; \
63 (attr)->attr_length = (len); \
64 udi_memcpy((attr)->attr_value, (val), (len))
66 #define DPT_SET_ATTR_STRING(attr, name, val, len) \
67 udi_strcpy((attr)->attr_name, (name)); \
68 (attr)->attr_type = UDI_ATTR_STRING; \
69 (attr)->attr_length = (len); \
70 udi_strncpy_rtrim((char *)(attr)->attr_value, (val), (len))
71 #define NE2K_SET_ATTR_STRFMT(attr, name, maxlen, fmt, v...) \
72 udi_strcpy((attr)->attr_name, (name)); \
73 (attr)->attr_type = UDI_ATTR_STRING; \
74 (attr)->attr_length = udi_snprintf((char *)(attr)->attr_value, (maxlen), (fmt) ,## v )