1 #ifndef _UART16C550_COMMON_H_
2 #define _UART16C550_COMMON_H_
23 #define RX_BUFFER_SIZE 32
28 udi_index_t pio_index;
31 udi_pio_handle_t pio_handles[N_PIO];
32 udi_channel_t interrupt_channel;
39 /* Copied from http://projectudi.cvs.sourceforge.net/viewvc/projectudi/udiref/driver/udi_dpt/udi_dpt.h */
40 #define DPT_SET_ATTR_BOOLEAN(attr, name, val) \
41 udi_strcpy((attr)->attr_name, (name)); \
42 (attr)->attr_type = UDI_ATTR_BOOLEAN; \
43 (attr)->attr_length = sizeof(udi_boolean_t); \
44 UDI_ATTR32_SET((attr)->attr_value, (val))
46 #define DPT_SET_ATTR32(attr, name, val) \
47 udi_strcpy((attr)->attr_name, (name)); \
48 (attr)->attr_type = UDI_ATTR_UBIT32; \
49 (attr)->attr_length = sizeof(udi_ubit32_t); \
50 UDI_ATTR32_SET((attr)->attr_value, (val))
52 #define DPT_SET_ATTR_ARRAY8(attr, name, val, len) \
53 udi_strcpy((attr)->attr_name, (name)); \
54 (attr)->attr_type = UDI_ATTR_ARRAY8; \
55 (attr)->attr_length = (len); \
56 udi_memcpy((attr)->attr_value, (val), (len))
58 #define DPT_SET_ATTR_STRING(attr, name, val, len) \
59 udi_strcpy((attr)->attr_name, (name)); \
60 (attr)->attr_type = UDI_ATTR_STRING; \
61 (attr)->attr_length = (len); \
62 udi_strncpy_rtrim((char *)(attr)->attr_value, (val), (len))
63 #define NE2K_SET_ATTR_STRFMT(attr, name, maxlen, fmt, v...) \
64 udi_strcpy((attr)->attr_name, (name)); \
65 (attr)->attr_type = UDI_ATTR_STRING; \
66 (attr)->attr_length = udi_snprintf((char *)(attr)->attr_value, (maxlen), (fmt) ,## v )