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

退出打印视图

更新时间: 2014 年 9 月
 
 

什么是设备驱动程序入口点?

入口点是设备驱动程序内的一个函数,外部实体可调用此函数以访问某种驱动程序功能或运行某个设备。每个设备驱动程序都提供一组标准函数作为入口点。有关所有驱动程序类型入口点的完整列表,请参见 Intro(9E) 手册页。Oracle Solaris 内核使用入口点执行以下常见任务区域:

  • 装入和卸载驱动程序

  • 自动配置设备-自动配置是将设备驱动程序的代码和静态数据装入内存以在系统内注册此驱动程序的过程。

  • 为驱动程序提供 I/O 服务

根据设备执行的操作类型,不同类型设备的驱动程序具有不同的入口点集。例如,对于内存映射的面向字符的设备,其驱动程序支持 devmap(9E) 入口点,而块驱动程序不支持此入口点。

使用基于驱动程序名称的前缀可为驱动程序函数指定唯一的名称。通常,此前缀是驱动程序的名称,例如 xx_open() 代表驱动程序 xxopen(9E) 例程。有关更多信息,请参见Use a Unique Prefix to Avoid Kernel Symbol Collisions。在本书后面的示例中,xx 用作驱动程序前缀。