设备驱动程序代码通常分为以下文件:
头文件(.h 文件)
源文件(.c 文件)
可选配置文件(driver.conf 文件)
特定于设备的数据结构,如表示设备寄存器的结构
驱动程序定义的用于维护状态信息的数据结构
定义的常数,如表示设备寄存器位的常数
宏,如定义次要设备号与实例编号之间的静态映射的宏
某些头文件定义(如状态结构)可能只有设备驱动程序才需要。这些信息应该放在设备驱动程序本身所包含的专用头文件中。
应用程序可能需要的任何信息(如 I/O 控制命令)均应放在公共头文件中。这些文件包含在驱动程序和任何需要设备相关信息的应用程序中。
虽然专用文件和公共文件并没有命名标准,但一种约定是将专用头文件命名为 xximpl.h,将公共头文件命名为 xxio.h。
包含驱动程序入口点的代码和数据声明
包含驱动程序所需的 #include 语句
声明 extern 引用
声明局部数据
设置 cb_ops 和 dev_ops 结构
声明并初始化模块配置部分,即 modlinkage(9S) 和 modldrv(9S) 结构
进行任何其他必要的声明
定义驱动程序入口点
一般来说,驱动程序的配置文件定义驱动程序需要的所有属性。驱动程序配置文件中的项指定了驱动程序可以探测其存在情况的可能设备实例。可以在驱动程序的配置文件中设置驱动程序的全局属性。有关更多信息,请参见 driver.conf(4) 手册页。
驱动程序配置文件对于非自标识设备是必需的。
驱动程序配置文件对于自标识设备 (self-identifying device, SID) 是可选的。对于自标识设备,配置文件可用于向 SID 节点中添加属性。
以下属性是不在驱动程序配置文件中设置的属性示例: