+UDI_MEI_STUBS(udi_nsr_rx_ind, udi_nic_rx_cb_t, 0, (), (), (), UDI_NSR_RX_OPS_NUM, 1)
+udi_layout_t _udi_nsr_rx_ind_marshal_layout[] = { UDI_DL_END };
+UDI_MEI_STUBS(udi_nsr_exp_rx_ind, udi_nic_rx_cb_t, 0, (), (), (), UDI_NSR_RX_OPS_NUM, 2)
+udi_layout_t _udi_nsr_exp_rx_ind_marshal_layout[] = { UDI_DL_END };
+UDI_MEI_STUBS(udi_nd_rx_rdy, udi_nic_rx_cb_t, 0, (), (), (), UDI_ND_RX_OPS_NUM, 1)
+udi_layout_t _udi_nd_rx_rdy_marshal_layout[] = { UDI_DL_END };
+
+#define UDI__OPS_NUM 0
+#define MEI_OPINFO(name,cat,flags,cbtype,rsp_ops,rsp_idx,err_ops,err_idx) \
+ {#name, UDI_MEI_OPCAT_##cat,flags,UDI_##cbtype##_CB_NUM, \
+ UDI_##rsp_ops##_OPS_NUM,rsp_idx,UDI_##err_ops##_OPS_NUM,err_idx, \
+ name##_direct, name##_backend, _##cbtype##_cb_layout, _##name##_marshal_layout }
+
+udi_layout_t _NIC_BIND_cb_layout[] = {
+ UDI_DL_UBIT8_T, // media_type
+ UDI_DL_UBIT32_T, // min_pdu_size
+ UDI_DL_UBIT32_T,
+ UDI_DL_UBIT32_T,
+ UDI_DL_UBIT32_T,
+ UDI_DL_UBIT8_T, // max_perfect_multicast
+ UDI_DL_UBIT8_T,
+ UDI_DL_UBIT8_T, // mac_addr_len
+ UDI_DL_ARRAY, // mac_addr
+ UDI_NIC_MAC_ADDRESS_SIZE,
+ UDI_DL_UBIT8_T,
+ UDI_DL_END,
+ UDI_DL_END
+};
+udi_layout_t _NIC_RX_cb_layout[] = {
+ UDI_DL_CB, // chain
+ UDI_DL_BUF, 0, 0, 0, // rx_buf
+ UDI_DL_UBIT8_T, // rx_status
+ UDI_DL_UBIT8_T, // addr_match
+ UDI_DL_UBIT8_T, // rx_valid
+ UDI_DL_END
+};
+
+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),
+ {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),
+ {0}
+};
+udi_mei_op_template_t udi_mei_info__nic__nd_tx_ops[] = {
+ {0}
+};
+udi_mei_op_template_t udi_mei_info__nic__nsr_tx_ops[] = {
+ {0}
+};
+udi_mei_op_template_t udi_mei_info__nic__nd_rx_ops[] = {
+ MEI_OPINFO(udi_nd_rx_rdy, RDY, 0, NIC_RX, ,0, ,0),
+ {0}
+};
+udi_mei_op_template_t udi_mei_info__nic__nsr_rx_ops[] = {
+ MEI_OPINFO(udi_nsr_rx_ind, IND, 0, NIC_RX, ND_RX,1, ,0),
+ MEI_OPINFO(udi_nsr_exp_rx_ind, IND, 0, NIC_RX, ND_RX,1, ,0),
+ {0}
+};
+
+udi_mei_ops_vec_template_t udi_mei_info__nic_ops[] = {
+ {UDI_ND_CTRL_OPS_NUM, UDI_MEI_REL_EXTERNAL|UDI_MEI_REL_BIND|UDI_MEI_REL_INITIATOR, udi_mei_info__nic__nd_ctrl_ops},
+ {UDI_NSR_CTRL_OPS_NUM, UDI_MEI_REL_EXTERNAL|UDI_MEI_REL_BIND, udi_mei_info__nic__nsr_ctrl_ops},
+ {UDI_ND_TX_OPS_NUM, UDI_MEI_REL_EXTERNAL|UDI_MEI_REL_INITIATOR, udi_mei_info__nic__nd_tx_ops},
+ {UDI_NSR_TX_OPS_NUM, UDI_MEI_REL_EXTERNAL, udi_mei_info__nic__nsr_tx_ops},
+ {UDI_ND_RX_OPS_NUM, UDI_MEI_REL_EXTERNAL|UDI_MEI_REL_INITIATOR, udi_mei_info__nic__nd_rx_ops},
+ {UDI_NSR_RX_OPS_NUM, UDI_MEI_REL_EXTERNAL, udi_mei_info__nic__nsr_rx_ops},
+ {0}
+};
+udi_mei_init_t udi_mei_info__nic = {
+ udi_mei_info__nic_ops,
+ NULL
+};