编写设备驱动程序

GLDv3 接口汇总

下表列出了属于 GLDv3 网络设备驱动程序框架的入口点、其他 DDI 函数和数据结构。

表 19–1 GLDv3 接口

接口名称 

说明 

必需的入口点

mc_getstat(9E)

从驱动程序检索网络统计信息。请参见GLDv3 网络统计信息

mc_start(9E)

启动一个驱动程序实例。GLDv3 框架在尝试任何操作之前都会调用 start 入口点。 

mc_stop(9E)

停止一个驱动程序实例。MAC 层会在设备分离之前调用停止入口点。 

mc_setpromisc(9E)

更改设备驱动程序实例的混杂模式。 

mc_multicst(9E)

添加或删除多点传送地址。 

mc_unicst(9E)

设置主单点传送地址。设备必须通过 mac_rx() 开始回传带有与新单点传送地址匹配的目标 MAC 地址的包。 有关 mac_rx() 的信息,请参见接收数据路径

mc_tx(9E)

发送一个或多个包。请参见传输数据路径

可选入口点

mc_ioctl(9E)

可选 ioctl 驱动程序接口。此工具仅供调试之用。 

mc_getcapab(9E)

检索功能。请参见GLDv3 功能

mc_setprop(9E)

设置属性值。请参见GLDv3 属性

mc_getprop(9E)

获得属性值。请参见GLDv3 属性

mc_propinfo(9E)

获得关于属性的信息。请参见GLDv3 属性

数据结构

mac_register(9S)

注册信息。请参见GLDv3 MAC 注册数据结构

mac_callbacks(9S)

驱动程序回调。请参见GLDv3 MAC 注册数据结构

mac_capab_lso(9S)

LSO 元数据。请参见大段(或发送)负载转移

lso_basic_tcp_ipv4(9S)

TCP/IPv4 的 LSO 元数据。请参见大段(或发送)负载转移

MAC 注册函数

mac_alloc(9F)

分配新 mac_register 结构。 请参见GLDv3 MAC 注册

mac_free(9F)

释放 mac_register 结构。

mac_register(9F)

使用 MAC 层注册。 

mac_unregister(9F)

从 MAC 层取消注册。 

mac_init_ops(9F)

初始化驱动程序的 dev_ops(9S) 结构。

mac_fini_ops(9F)

发布驱动程序的 dev_ops 结构。

数据传输函数

mac_rx(9F)

向上传递接收到的包。请参见接收数据路径

mac_tx_update(9F)

TX 资源可用。请参见GLDv3 状态更改通知

mac_link_update(9F)

链接状态已更改。 

mac_hcksum_get(9F)

检索硬件校验和信息。请参见硬件校验和负载转移传输数据路径

mac_hcksum_set(9F)

附加硬件校验和信息。请参见硬件校验和负载转移接收数据路径

mac_lso_get(9F)

检索 LSO 信息。请参见大段(或发送)负载转移

属性函数

mac_prop_info_set_perm(9F)

设置属性权限。请参见GLDv3 属性

mac_prop_info_set_default_uint8(9F), mac_prop_info_set_default_str(9F), mac_prop_info_set_default_link_flowctrl(9F)

设置属性值。 

mac_prop_info_set_range_uint32(9F)

设置属性值范围。