UDI/ne2000 - Working on a NE2k driver for UDI testing
[tpg/acess2.git] / UDI / drivers / net_ne2000 / ne2000_common.h
1 /*
2  * UDI Ne2000 NIC Driver
3  * By John Hodge (thePowersGang)
4  *
5  * ne2000_common.h
6  * - Shared definitions
7  */
8 #ifndef _NE2000_COMMON_H_
9 #define _NE2000_COMMON_H_
10
11 #include <udi.h>
12 #include <udi_nic.h>
13
14 // === MACROS ===
15 /* Copied from http://projectudi.cvs.sourceforge.net/viewvc/projectudi/udiref/driver/udi_dpt/udi_dpt.h */
16 #define DPT_SET_ATTR_BOOLEAN(attr, name, val)   \
17                 udi_strcpy((attr)->attr_name, (name)); \
18                 (attr)->attr_type = UDI_ATTR_BOOLEAN; \
19                 (attr)->attr_length = sizeof(udi_boolean_t); \
20                 UDI_ATTR32_SET((attr)->attr_value, (val))
21
22 #define DPT_SET_ATTR32(attr, name, val) \
23                 udi_strcpy((attr)->attr_name, (name)); \
24                 (attr)->attr_type = UDI_ATTR_UBIT32; \
25                 (attr)->attr_length = sizeof(udi_ubit32_t); \
26                 UDI_ATTR32_SET((attr)->attr_value, (val))
27
28 #define DPT_SET_ATTR_ARRAY8(attr, name, val, len) \
29                 udi_strcpy((attr)->attr_name, (name)); \
30                 (attr)->attr_type = UDI_ATTR_ARRAY8; \
31                 (attr)->attr_length = (len); \
32                 udi_memcpy((attr)->attr_value, (val), (len))
33
34 #define DPT_SET_ATTR_STRING(attr, name, val, len) \
35                 udi_strcpy((attr)->attr_name, (name)); \
36                 (attr)->attr_type = UDI_ATTR_STRING; \
37                 (attr)->attr_length = (len); \
38                 udi_strncpy_rtrim((char *)(attr)->attr_value, (val), (len))
39
40 extern udi_channel_event_ind_op_t       ne2k_bus_dev_channel_event_ind;
41 extern udi_bus_bind_ack_op_t    ne2k_bus_dev_bus_bind_ack;
42 extern udi_bus_unbind_ack_op_t  ne2k_bus_dev_bus_unbind_ack;
43 extern udi_intr_attach_ack_op_t ne2k_bus_dev_intr_attach_ack;
44 extern udi_intr_detach_ack_op_t ne2k_bus_dev_intr_detach_ack;
45
46 extern udi_channel_event_ind_op_t       ne2k_nd_ctrl_channel_event_ind;
47 extern udi_nd_bind_req_op_t     ne2k_nd_ctrl_bind_req;
48 extern udi_nd_unbind_req_op_t   ne2k_nd_ctrl_unbind_req;
49 extern udi_nd_enable_req_op_t   ne2k_nd_ctrl_enable_req;
50 extern udi_nd_disable_req_op_t  ne2k_nd_ctrl_disable_req;
51 extern udi_nd_ctrl_req_op_t     ne2k_nd_ctrl_ctrl_req;
52 extern udi_nd_info_req_op_t     ne2k_nd_ctrl_info_req;
53
54 extern udi_channel_event_ind_op_t       ne2k_nd_tx_channel_event_ind;
55 extern udi_nd_tx_req_op_t       ne2k_nd_tx_tx_req;
56 extern udi_nd_exp_tx_req_op_t   ne2k_nd_tx_exp_tx_req;
57
58 extern udi_channel_event_ind_op_t       ne2k_nd_rx_channel_event_ind;
59 extern udi_nd_rx_rdy_op_t       ne2k_nd_rx_rx_rdy;
60
61 #endif
62

UCC git Repository :: git.ucc.asn.au