The DDI interfaces ddi_cb_register() and ddi_cb_unregister() manage the callbacks handled by an SR-IOV driver. Callbacks are used to notify events and the incoming data traffic. Callbacks serve as an event handler for each event during transmission.
The SR-IOV PF drivers should register for events by passing DDI_CB_FLAG_SRIOV in the flags parameter to ddi_cb_register(). See the ddi_cb_register(9F) man page for details.
When an SR-IOV event occurs, a driver that has registered for SR-IOV events will receive the following callback:
typedef int(*ddi_cb_func_t) (dev_info_t *dip, ddi_cb_action_t action, void *cbarg, void *arg1, void *arg2)
Pointer to the dev_info structure.
Pointer to the action specific callback data.
Type of event that has occurred. This will be any one of the following two values:
A change to the VF configuration has occurred. The cbarg parameter is a pointer to a pciv_config_vf_t structure.
A change to the VF class configuration has occurred. The cbarg parameter is a pointer to a fciov_conf_t structure. See Fibre Channel SR-IOV Devices for more details.
Value passed as arg1 to the ddi_cb_register() call.
Value passed as arg2 to the ddi_cb_register() call.