UDI/ne2000 - Added parent bind CB
[tpg/acess2.git] / UDI / drivers / net_ne2000 / ne2000_core.c
index acecb49..2e916a7 100644 (file)
@@ -21,7 +21,8 @@ enum {
        NE2K_OPS_IRQ,
 };
 enum {
-       NE2K_CB_INTR = 1,
+       NE2K_CB_BUS_BIND = 1,
+       NE2K_CB_INTR,
        NE2K_CB_INTR_EVENT,
 };
 
@@ -39,6 +40,7 @@ enum {
 // --- Management
 void ne2k_usage_ind(udi_usage_cb_t *cb, udi_ubit8_t resource_level)
 {
+       udi_usage_res(cb);
 }
 void ne2k_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
 {
@@ -58,6 +60,7 @@ void ne2k_enumerate_req(udi_enumerate_cb_t *cb, udi_ubit8_t enumeration_level)
                        rdata->macaddr[0], rdata->macaddr[1], rdata->macaddr[2],
                        rdata->macaddr[3], rdata->macaddr[4], rdata->macaddr[5] );
                attr_list ++;
+               cb->attr_valid_length = attr_list - cb->attr_list;
                udi_enumerate_ack(cb, UDI_ENUMERATE_OK, NE2K_OPS_CTRL);
                break;
        case UDI_ENUMERATE_NEXT:
@@ -242,6 +245,7 @@ void ne2k_bus_irq_intr_event_ind(udi_intr_event_cb_t *cb, udi_ubit8_t flags)
        {
                ne2k_intr__rx_ok( UDI_GCB(cb) );
        }
+       // TODO: TX IRQs
        udi_intr_event_rdy(cb);
 }
 
@@ -330,7 +334,14 @@ udi_ops_init_t     ne2k_ops_list[] = {
        },
        {0}
 };
+udi_cb_init_t ne2k_cb_init_list[] = {
+       // Parent bind
+       {NE2K_CB_BUS_BIND, NE2K_META_BUS, UDI_BUS_BIND_CB_NUM, 0, 0,NULL},
+       {0}
+};
+// TODO: cb_init_list
 const udi_init_t       udi_init_info = {
        .primary_init_info = &ne2k_pri_init,
-       .ops_init_list = ne2k_ops_list
+       .ops_init_list = ne2k_ops_list,
+       .cb_init_list = ne2k_cb_init_list,
 };

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