git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
UDI/ne2000 - Bug fixing and implementation. TX works, RX ongoing
[tpg/acess2.git]
/
UDI
/
drivers
/
net_ne2000
/
ne2000_common.h
diff --git
a/UDI/drivers/net_ne2000/ne2000_common.h
b/UDI/drivers/net_ne2000/ne2000_common.h
index
bfa27ea
..
b6a1689
100644
(file)
--- a/
UDI/drivers/net_ne2000/ne2000_common.h
+++ b/
UDI/drivers/net_ne2000/ne2000_common.h
@@
-16,16
+16,39
@@
#define ARRAY_SIZEOF(arr) (sizeof(arr)/sizeof(arr[0]))
#define ARRAY_SIZEOF(arr) (sizeof(arr)/sizeof(arr[0]))
+enum {
+ NE2K_PIO_RESET,
+ NE2K_PIO_ENABLE,
+ NE2K_PIO_RX,
+ NE2K_PIO_IRQACK,
+ NE2K_PIO_TX,
+ N_NE2K_PIO
+};
+
typedef struct
{
udi_init_context_t init_context;
typedef struct
{
udi_init_context_t init_context;
- struct
- {
+ udi_cb_t *active_cb;
+
+ udi_intr_attach_cb_t *intr_attach_cb;
+
+ struct {
udi_index_t pio_index;
udi_index_t pio_index;
+ udi_index_t n_intr_event_cb;
+
+ udi_index_t rx_chan_index;
} init;
} init;
- udi_pio_handle_t pio_handles[1];
+ udi_pio_handle_t pio_handles[N_NE2K_PIO];
+ udi_channel_t interrupt_channel;
+ udi_channel_t rx_channel;
+ udi_channel_t tx_channel;
+
+ udi_nic_rx_cb_t *rx_next_cb;
+ udi_nic_rx_cb_t *rx_last_cb;
+ udi_ubit8_t rx_next_page;
+
udi_ubit8_t macaddr[6];
} ne2k_rdata_t;
udi_ubit8_t macaddr[6];
} ne2k_rdata_t;
@@
-62,14
+85,21
@@
typedef struct
extern udi_channel_event_ind_op_t ne2k_bus_dev_channel_event_ind;
extern udi_bus_bind_ack_op_t ne2k_bus_dev_bus_bind_ack;
extern udi_pio_map_call_t ne2k_bus_dev_bind__pio_map;
extern udi_channel_event_ind_op_t ne2k_bus_dev_channel_event_ind;
extern udi_bus_bind_ack_op_t ne2k_bus_dev_bus_bind_ack;
extern udi_pio_map_call_t ne2k_bus_dev_bind__pio_map;
+extern udi_channel_spawn_call_t ne2k_bus_dev_bind__intr_chanel;
+extern udi_cb_alloc_call_t ne2k_bus_dev_bind__intr_attach;
extern udi_bus_unbind_ack_op_t ne2k_bus_dev_bus_unbind_ack;
extern udi_intr_attach_ack_op_t ne2k_bus_dev_intr_attach_ack;
extern udi_bus_unbind_ack_op_t ne2k_bus_dev_bus_unbind_ack;
extern udi_intr_attach_ack_op_t ne2k_bus_dev_intr_attach_ack;
+extern udi_cb_alloc_call_t ne2k_bus_dev_bind__intr_event_cb;
+extern udi_pio_trans_call_t ne2k_bus_dev_bind__card_reset;
extern udi_intr_detach_ack_op_t ne2k_bus_dev_intr_detach_ack;
extern udi_channel_event_ind_op_t ne2k_nd_ctrl_channel_event_ind;
extern udi_nd_bind_req_op_t ne2k_nd_ctrl_bind_req;
extern udi_intr_detach_ack_op_t ne2k_bus_dev_intr_detach_ack;
extern udi_channel_event_ind_op_t ne2k_nd_ctrl_channel_event_ind;
extern udi_nd_bind_req_op_t ne2k_nd_ctrl_bind_req;
+extern udi_channel_spawn_call_t ne2k_nd_ctrl_bind__tx_chan_ok;
+extern udi_channel_spawn_call_t ne2k_nd_ctrl_bind__rx_chan_ok;
extern udi_nd_unbind_req_op_t ne2k_nd_ctrl_unbind_req;
extern udi_nd_enable_req_op_t ne2k_nd_ctrl_enable_req;
extern udi_nd_unbind_req_op_t ne2k_nd_ctrl_unbind_req;
extern udi_nd_enable_req_op_t ne2k_nd_ctrl_enable_req;
+extern udi_pio_trans_call_t ne2k_nd_ctrl_enable_req__trans_done;
extern udi_nd_disable_req_op_t ne2k_nd_ctrl_disable_req;
extern udi_nd_ctrl_req_op_t ne2k_nd_ctrl_ctrl_req;
extern udi_nd_info_req_op_t ne2k_nd_ctrl_info_req;
extern udi_nd_disable_req_op_t ne2k_nd_ctrl_disable_req;
extern udi_nd_ctrl_req_op_t ne2k_nd_ctrl_ctrl_req;
extern udi_nd_info_req_op_t ne2k_nd_ctrl_info_req;
@@
-81,5
+111,10
@@
extern udi_nd_exp_tx_req_op_t ne2k_nd_tx_exp_tx_req;
extern udi_channel_event_ind_op_t ne2k_nd_rx_channel_event_ind;
extern udi_nd_rx_rdy_op_t ne2k_nd_rx_rx_rdy;
extern udi_channel_event_ind_op_t ne2k_nd_rx_channel_event_ind;
extern udi_nd_rx_rdy_op_t ne2k_nd_rx_rx_rdy;
+extern udi_channel_event_ind_op_t ne2k_bus_irq_channel_event_ind;
+extern udi_intr_event_ind_op_t ne2k_bus_irq_intr_event_ind;
+
+extern void ne2k_intr__rx_ok(udi_cb_t *gcb);
+
#endif
#endif
UCC
git Repository :: git.ucc.asn.au