编写适用于 Oracle® Solaris 11.2 的设备驱动程序

退出打印视图

更新时间: 2014 年 9 月
 
 

驱动程序回调

DDI 接口 ddi_cb_register()ddi_cb_unregister() 可管理由 SR-IOV 驱动程序处理的回调。回调用于通知事件和传入的数据通信。回调在传输期间充当每个事件的事件处理程序。

SR-IOV PF 驱动程序应通过将 flags 参数中的 DDI_CB_FLAG_SRIOV 传递给 ddi_cb_register() 来注册事件。有关详细信息,请参见 ddi_cb_register(9F) 手册页。

发生 SR-IOV 事件时,已注册 SR-IOV 事件的驱动程序将会收到以下回调:

typedef int(*ddi_cb_func_t)
(dev_info_t *dip, ddi_cb_action_t action,
void *cbarg, void *arg1, void *arg2)
dip

指向 dev_info 结构的指针。

cbarg

指向特定于操作的回调数据的指针。

action

发生的事件类型。它可能是以下两个值中的任意一个:

DDI_CB_PCIV_CONFIG_VF

VF 配置发生了更改。cbarg 参数为指向 pciv_config_vf_t 结构的指针。

DDI_CB_PCIV_CLASS_CONFIG

VF 类配置发生了更改。cbarg 参数为指向 fciov_conf_t 结构的指针。有关更多详细信息,请参见Fibre Channel SR-IOV Devices

arg1

作为 arg1 传递到 ddi_cb_register() 调用的值。

arg2

作为 arg2 传递到 ddi_cb_register() 调用的值。


注 - 具有 SR-IOV 功能的所有 PF 驱动程序必须使用 ddi_cb_flags_t DDI_CB_FLAG_SRIOV 来通知 Oracle Solaris IOV 框架 PF 驱动程序具有 SR-IOV 功能。