X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=KernelLand%2FModules%2FInterfaces%2FUDI%2Fudi_lib%2Fudi_nic.c;h=5dfd7d508b816948484b3c37b830e837161793ac;hb=948e0dcc41c180071b4534a2c4ec680306414af0;hp=f2b6b4d8dc0cf3dfba28ac6acedc8d75a7c28022;hpb=82595a34a73b4667a98349cceeb17f618bd41282;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Interfaces/UDI/udi_lib/udi_nic.c b/KernelLand/Modules/Interfaces/UDI/udi_lib/udi_nic.c index f2b6b4d8..5dfd7d50 100644 --- a/KernelLand/Modules/Interfaces/UDI/udi_lib/udi_nic.c +++ b/KernelLand/Modules/Interfaces/UDI/udi_lib/udi_nic.c @@ -37,85 +37,69 @@ EXPORT(udi_nsr_rx_ind); EXPORT(udi_nsr_exp_rx_ind); EXPORT(udi_nd_rx_rdy); -// === GLOBALS === -tUDI_MetaLang cMetaLang_NIC = { - "udi_nic", - 8, - { - {0}, - {sizeof(udi_nic_cb_t), NULL}, - {sizeof(udi_nic_bind_cb_t), NULL}, - {sizeof(udi_nic_ctrl_cb_t), NULL}, - {sizeof(udi_nic_status_cb_t), NULL}, - {sizeof(udi_nic_info_cb_t), NULL}, - {sizeof(udi_nic_tx_cb_t), NULL}, - {sizeof(udi_nic_rx_cb_t), NULL}, - } -}; - // === CODE === // --- Control Ops --- +// ND - Network Device UDI_MEI_STUBS(udi_nd_bind_req, udi_nic_bind_cb_t, - 2, - (tx_chan_index, rx_chan_index), - (udi_index_t, udi_index_t), - (UDI_VA_INDEX_T, UDI_VA_INDEX_T), + 2, (tx_chan_index, rx_chan_index), (udi_index_t, udi_index_t), (UDI_VA_INDEX_T, UDI_VA_INDEX_T), UDI_ND_CTRL_OPS_NUM, 1) udi_layout_t _udi_nd_bind_req_marshal_layout[] = { UDI_DL_INDEX_T, UDI_DL_INDEX_T, UDI_DL_END }; + +UDI_MEI_STUBS(udi_nd_unbind_req, udi_nic_cb_t, + 0, (), (), (), + UDI_ND_CTRL_OPS_NUM, 2) +udi_layout_t _udi_nd_unbind_req_marshal_layout[] = { UDI_DL_END }; + +UDI_MEI_STUBS(udi_nd_enable_req, udi_nic_cb_t, + 0, (), (), (), + UDI_ND_CTRL_OPS_NUM, 3) +udi_layout_t _udi_nd_enable_req_marshal_layout[] = { UDI_DL_END }; + +UDI_MEI_STUBS(udi_nd_disable_req, udi_nic_cb_t, + 0, (), (), (), + UDI_ND_CTRL_OPS_NUM, 4) +udi_layout_t _udi_nd_disable_req_marshal_layout[] = { UDI_DL_END }; + +UDI_MEI_STUBS(udi_nd_ctrl_req, udi_nic_ctrl_cb_t, + 0, (), (), (), + UDI_ND_CTRL_OPS_NUM, 5) +udi_layout_t _udi_nd_ctrl_req_marshal_layout[] = { UDI_DL_END }; + +UDI_MEI_STUBS(udi_nd_info_req, udi_nic_info_cb_t, + 1, (reset_statistics), (udi_boolean_t), (UDI_VA_BOOLEAN_T), + UDI_ND_CTRL_OPS_NUM, 6) +udi_layout_t _udi_nd_info_req_marshal_layout[] = { UDI_DL_BOOLEAN_T, UDI_DL_END }; + +// NSR - Network Service Requester UDI_MEI_STUBS(udi_nsr_bind_ack, udi_nic_bind_cb_t, 1, (status), (udi_status_t), (UDI_VA_STATUS_T), UDI_NSR_CTRL_OPS_NUM, 1) udi_layout_t _udi_nsr_bind_ack_marshal_layout[] = { UDI_DL_STATUS_T, UDI_DL_END }; -void udi_nd_unbind_req(udi_nic_cb_t *cb) -{ - UNIMPLEMENTED(); -} - -void udi_nsr_unbind_ack(udi_nic_cb_t *cb, udi_status_t status) -{ - UNIMPLEMENTED(); -} - -void udi_nd_enable_req(udi_nic_cb_t *cb) -{ - UNIMPLEMENTED(); -} - -void udi_nsr_enable_ack(udi_nic_cb_t *cb, udi_status_t status) -{ - UNIMPLEMENTED(); -} - -void udi_nd_disable_req(udi_nic_cb_t *cb) -{ - UNIMPLEMENTED(); -} - -void udi_nd_ctrl_req(udi_nic_ctrl_cb_t *cb) -{ - UNIMPLEMENTED(); -} - -void udi_nsr_ctrl_ack(udi_nic_ctrl_cb_t *cb, udi_status_t status) -{ - UNIMPLEMENTED(); -} - -void udi_nsr_status_ind(udi_nic_status_cb_t *cb) -{ - UNIMPLEMENTED(); -} - -void udi_nd_info_req(udi_nic_info_cb_t *cb, udi_boolean_t reset_statistics) -{ - UNIMPLEMENTED(); -} - -void udi_nsr_info_ack(udi_nic_info_cb_t *cb) -{ - UNIMPLEMENTED(); -} +UDI_MEI_STUBS(udi_nsr_unbind_ack, udi_nic_cb_t, + 1, (status), (udi_status_t), (UDI_VA_STATUS_T), + UDI_NSR_CTRL_OPS_NUM, 2) +udi_layout_t _udi_nsr_unbind_ack_marshal_layout[] = { UDI_DL_STATUS_T, UDI_DL_END }; + +UDI_MEI_STUBS(udi_nsr_enable_ack, udi_nic_cb_t, + 1, (status), (udi_status_t), (UDI_VA_STATUS_T), + UDI_NSR_CTRL_OPS_NUM, 3) +udi_layout_t _udi_nsr_enable_ack_marshal_layout[] = { UDI_DL_STATUS_T, UDI_DL_END }; + +UDI_MEI_STUBS(udi_nsr_ctrl_ack, udi_nic_ctrl_cb_t, + 1, (status), (udi_status_t), (UDI_VA_STATUS_T), + UDI_NSR_CTRL_OPS_NUM, 4) +udi_layout_t _udi_nsr_ctrl_ack_marshal_layout[] = { UDI_DL_STATUS_T, UDI_DL_END }; + +UDI_MEI_STUBS(udi_nsr_status_ind, udi_nic_status_cb_t, + 0, (), (), (), + UDI_NSR_CTRL_OPS_NUM, 5) +udi_layout_t _udi_nsr_status_ind_marshal_layout[] = { UDI_DL_END }; + +UDI_MEI_STUBS(udi_nsr_info_ack, udi_nic_info_cb_t, + 0, (), (), (), + UDI_NSR_CTRL_OPS_NUM, 6) +udi_layout_t _udi_nsr_info_ack_marshal_layout[] = { UDI_DL_END }; // --- TX --- UDI_MEI_STUBS(udi_nsr_tx_rdy, udi_nic_tx_cb_t, 0, (), (), (), UDI_NSR_TX_OPS_NUM, 1); @@ -139,6 +123,11 @@ udi_layout_t _udi_nd_rx_rdy_marshal_layout[] = { UDI_DL_END }; UDI_##rsp_ops##_OPS_NUM,rsp_idx,UDI_##err_ops##_OPS_NUM,err_idx, \ name##_direct, name##_backend, _##cbtype##_cb_layout, _##name##_marshal_layout } +// 1: UDI_NIC_STD_CB_NUM +udi_layout_t _NIC_STD_cb_layout[] = { + UDI_DL_END +}; +// 2: UDI_NIC_BIND_CB_NUM udi_layout_t _NIC_BIND_cb_layout[] = { UDI_DL_UBIT8_T, // media_type UDI_DL_UBIT32_T, // min_pdu_size @@ -154,6 +143,38 @@ udi_layout_t _NIC_BIND_cb_layout[] = { UDI_DL_END, UDI_DL_END }; +// 3: UDI_NIC_CTRL_CB_NUM +udi_layout_t _NIC_CTRL_cb_layout[] = { + UDI_DL_UBIT8_T, // command + UDI_DL_UBIT32_T, // indicator + UDI_DL_BUF, 0,0,0, // data_buf + UDI_DL_END + +}; +// 4: UDI_NIC_STATUS_CB_NUM +udi_layout_t _NIC_STATUS_cb_layout[] = { + UDI_DL_UBIT8_T, + UDI_DL_END +}; +// 5: UDI_NIC_INFO_CB_NUM +udi_layout_t _NIC_INFO_cb_layout[] = { + UDI_DL_BOOLEAN_T, // interface_is_active + UDI_DL_BOOLEAN_T, // link_is_active + UDI_DL_BOOLEAN_T, // is_full_duplex + UDI_DL_UBIT32_T, // link_mbps + UDI_DL_UBIT32_T, // link_bps + UDI_DL_UBIT32_T, // tx_packets + UDI_DL_UBIT32_T, // rx_packets + UDI_DL_UBIT32_T, // tx_errors + UDI_DL_UBIT32_T, // rx_errors + UDI_DL_UBIT32_T, // tx_discards + UDI_DL_UBIT32_T, // rx_discards + UDI_DL_UBIT32_T, // tx_underrun + UDI_DL_UBIT32_T, // rx_underrun + UDI_DL_UBIT32_T, // collisions + UDI_DL_END +}; +// 6: UDI_NIC_RX_CB_NUM udi_layout_t _NIC_RX_cb_layout[] = { UDI_DL_CB, // chain UDI_DL_BUF, 0, 0, 0, // rx_buf @@ -162,6 +183,7 @@ udi_layout_t _NIC_RX_cb_layout[] = { UDI_DL_UBIT8_T, // rx_valid UDI_DL_END }; +// 7: UDI_NIC_TX_CB_NUM udi_layout_t _NIC_TX_cb_layout[] = { UDI_DL_CB, // chain UDI_DL_BUF, 0, 0, 0, // tx_buf @@ -171,10 +193,20 @@ udi_layout_t _NIC_TX_cb_layout[] = { udi_mei_op_template_t udi_mei_info__nic__nd_ctrl_ops[] = { MEI_OPINFO(udi_nd_bind_req, REQ, 0, NIC_BIND, NSR_CTRL,1, ,0), + MEI_OPINFO(udi_nd_unbind_req, REQ, 0, NIC_STD, NSR_CTRL,2, ,0), + MEI_OPINFO(udi_nd_enable_req, REQ, 0, NIC_STD, NSR_CTRL,3, ,0), + MEI_OPINFO(udi_nd_disable_req, REQ, 0, NIC_STD, ,0, ,0), + MEI_OPINFO(udi_nd_ctrl_req, REQ, 0, NIC_CTRL, NSR_CTRL,4, ,0), + MEI_OPINFO(udi_nd_info_req, REQ, 0, NIC_INFO, NSR_CTRL,5, ,0), {0} }; udi_mei_op_template_t udi_mei_info__nic__nsr_ctrl_ops[] = { MEI_OPINFO(udi_nsr_bind_ack, ACK, 0, NIC_BIND, ,0, ,0), + MEI_OPINFO(udi_nsr_unbind_ack, ACK, 0, NIC_STD, ,0, ,0), + MEI_OPINFO(udi_nsr_enable_ack, ACK, 0, NIC_STD, ,0, ,0), + MEI_OPINFO(udi_nsr_ctrl_ack, ACK, 0, NIC_CTRL, ,0, ,0), + MEI_OPINFO(udi_nsr_info_ack, ACK, 0, NIC_INFO, ,0, ,0), + MEI_OPINFO(udi_nsr_status_ind, IND, 0, NIC_INFO, ,0, ,0), {0} }; udi_mei_op_template_t udi_mei_info__nic__nd_tx_ops[] = { @@ -209,3 +241,19 @@ udi_mei_init_t udi_mei_info__nic = { udi_mei_info__nic_ops, NULL }; + +tUDI_MetaLang cMetaLang_NIC = { + "udi_nic", + &udi_mei_info__nic, + 8, + { + {0}, + {sizeof(udi_nic_cb_t), _NIC_STD_cb_layout}, + {sizeof(udi_nic_bind_cb_t), _NIC_BIND_cb_layout}, + {sizeof(udi_nic_ctrl_cb_t), _NIC_CTRL_cb_layout}, + {sizeof(udi_nic_status_cb_t), _NIC_STATUS_cb_layout}, + {sizeof(udi_nic_info_cb_t), _NIC_INFO_cb_layout}, + {sizeof(udi_nic_tx_cb_t), _NIC_TX_cb_layout}, + {sizeof(udi_nic_rx_cb_t), _NIC_RX_cb_layout}, + } +};