|
|
udi_nd_ctrl_ops_t(3udi)
ND control entry point ops vector
#include <udi.h>typedef const struct { udi_channel_event_ind_op_t *channel_event_ind_op; udi_nd_bind_req_op_t *nd_bind_req_op; udi_nd_unbind_req_op_t *nd_unbind_req_op; udi_nd_enable_req_op_t *nd_enable_req_op; udi_nd_disable_req_op_t *nd_disable_req_op; udi_nd_ctrl_req_op_t *nd_ctrl_req_op; udi_nd_info_req_op_t *nd_info_req_op; } udi_nd_ctrl_ops_t; /* ND Control Ops Vector Number */#define UDI_ND_CTRL_OPS_NUM 1DESCRIPTION A Network Driver uses the udi_nd_ctrl_ops_t structure in a udi_ops_init_t as part of its udi_init_info in order to register its entry points for the Network Interface Metalanguage control channel operations.
REFERENCES udi_nd_tx_ops_t, udi_nd_rx_ops_t
EXAMPLE A typical Network Driver may include the following declarations:
/* Forward Declarations */ static udi_channel_event_ind_op_t my_channel_event_handler; static udi_nd_bind_req_op_t my_bind_handler; static udi_nd_unbind_req_op_t my_unbind_handler; static udi_nd_enable_req_op_t my_enable_handler; static udi_nd_disable_req_op_t my_disable_handler; static udi_nd_ctrl_req_op_t my_control_req_handler; static udi_nd_info_req_op_t my_info_provider; static const udi_nd_ctrl_ops_t my_ctrl_ops = { my_channel_event_handler, my_bind_handler, my_unbind_handler, my_enable_handler, my_disable_handler, my_control_req_handler, my_info_provider }; #define MY_ND_CTRL_OPS 4 #define MY_NET_META 1 /* meta_idx */ static const udi_ops_init_t my_net_ops_init[] = { { MY_ND_CTRL_OPS, MY_NET_META, UDI_ND_CTRL_OPS_NUM, sizeof(my_net_child_data_t), (udi_ops_vector_t *)&my_ctrl_ops, }, ... };Which would then be used with the following udiprops.txt entries:
requires udi_nic 0x101 child_bind_ops 1 0 4 # Net Meta bind for primary rgn