编写设备驱动程序

为驱动程序开发者提供的 kmdb

kmdb(1M) 调试程序支持可用于显示内核数据结构的宏。可以使用 $M 来显示 kmdb 宏。宏的使用形式为:


[ address ] $<macroname

注 –

这些宏所显示的信息以及显示信息所用的格式都不构成接口。因此,该信息和格式可以随时更改。


下表中的 kmdb 宏对于设备驱动程序的开发者特别有用。为方便起见,给出了传统的宏名称(如果适用)。

表 22–1 kmdb

Dcmd 

传统宏 

说明 

::devinfo

devinfo

devinfo_brief

devinfo.prop

列显设备节点的摘要 

::walk devinfo_parents

devinfo.parent

遍历设备节点的祖先 

::walk devinfo_sibling

devinfo.sibling

遍历设备节点的同级节点 

::minornodes

devinfo.minor

列显与给定设备节点对应的次要节点 

::major2name

 

列显绑定到给定设备节点的设备的名称。 

::devbindings

 

列显绑定到给定设备节点或主设备号的设备节点。 

::devinfo dcmd 显示节点状态,其值为以下所列之一:

DS_ATTACHED

驱动程序的 attach(9E) 例程成功返回。

DS_BOUND

节点已绑定到驱动程序,但尚未调用驱动程序的 probe(9E) 例程。

DS_INITIALIZED

父结点已为驱动程序指定总线地址。特定于实现的初始化已完成。此时尚未调用驱动程序的 probe(9E) 例程。

DS_LINKED

设备节点已链接至内核的设备树中,但系统尚未找到用于此节点的驱动程序。

DS_PROBED

驱动程序的 probe(9E) 例程成功返回。

DS_READY

设备已完全配置。