JavaScript is required to for searching.
跳过导航链接
退出打印视图
编写设备驱动程序     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分针对 Oracle Solaris 平台设计设备驱动程序

1.  Oracle Solaris 设备驱动程序概述

2.  Oracle Solaris 内核和设备树

3.  多线程

4.  属性

5.  管理事件和排队任务

6.  驱动程序自动配置

7.  设备访问:程控 I/O

8.  中断处理程序

9.  直接内存访问 (Direct Memory Access, DMA)

10.  映射设备和内核内存

11.  设备上下文管理

12.  电源管理

13.  强化 Oracle Solaris 驱动程序

14.  分层驱动程序接口 (Layered Driver Interface, LDI)

第 2 部分设计特定种类的设备驱动程序

15.  字符设备驱动程序

16.  块设备驱动程序

17.  SCSI 目标驱动程序

18.  SCSI 主机总线适配器驱动程序

19.  网络设备驱动程序

20.  USB 驱动程序

21.  SR-IOV 驱动程序

第 3 部分生成设备驱动程序

22.  编译、装入、打包和测试驱动程序

23.  调试、测试和调优设备驱动程序

24.  推荐的编码方法

第 4 部分附录

A.  硬件概述

B.  Solaris DDI/DKI 服务汇总

模块函数

设备信息树节点 (dev_info_t) 函数

设备 (dev_t) 函数

属性函数

设备软件状态函数

内存分配和取消分配函数

内核线程控制和同步函数

任务队列管理函数

中断函数

程控 I/O 函数

直接内存访问 (Direct Memory Access, DMA) 函数

用户空间访问函数

用户进程事件函数

用户进程信息函数

用户应用程序内核和设备访问函数

与时间有关的函数

电源管理函数

故障管理函数

内核统计信息函数

内核日志记录和列显函数

缓存 I/O 函数

虚拟内存函数

设备 ID 函数

SCSI 函数

资源映射管理函数

系统全局状态

实用程序函数

C.  使设备驱动程序支持 64 位

D.  控制台帧缓存器驱动程序

E.  pci.conf 文件

索引

中断函数

中断函数包括:

ddi_intr_add_handler(9F)

添加中断处理程序。

ddi_intr_add_softint(9F)

添加软中断处理程序。

ddi_intr_alloc(9F)

为指定类型的中断分配系统资源和中断向量。

ddi_intr_block_disable(9F)

禁用指定范围的中断。仅适用于 MSI。

ddi_intr_block_enable(9F)

启用指定范围的中断。仅适用于 MSI。

ddi_intr_clr_mask(9F)

如果已启用指定的中断,则清除中断屏蔽码。

ddi_intr_disable(9F)

禁用指定的中断。

ddi_intr_dup_handler(9F)

仅适用于 MSI-X。将分配的中断向量的地址和数据对复制到同一设备上未使用的中断向量。

ddi_intr_enable(9F)

启用指定的中断。

ddi_intr_free(9F)

针对指定的中断句柄释放系统资源和中断向量。

ddi_intr_get_cap(9F)

针对指定的中断返回中断功能标志。

ddi_intr_get_hilevel_pri(9F)

返回高级别中断的最低优先级别。

ddi_intr_get_navail(9F)

返回可用于特定硬件设备和给定中断类型的中断的数量。

ddi_intr_get_nintrs(9F)

针对给定的中断类型获取设备支持的中断数。

ddi_intr_get_pending(9F)

读取中断待处理位(如果主桥 (host bridge) 或设备支持)。

ddi_intr_get_pri(9F)

返回指定中断的当前软件优先级设置。

ddi_intr_get_softint_pri(9F)

返回指定中断的软中断优先级。

ddi_intr_get_supported_types(9F)

返回设备和主机均支持的硬件中断类型。

ddi_intr_remove_handler(9F)

删除指定的中断处理程序。

ddi_intr_remove_softint(9F)

删除指定的软中断处理程序。

ddi_intr_set_cap(9F)

为指定的中断设置 DDI_INTR_FLAG_LEVEL 或 DDI_INTR_FLAG_EDGE 标志。

ddi_intr_set_mask(9F)

如果已启用指定的中断,则设置中断屏蔽码。

ddi_intr_set_pri(9F)

设置指定中断的中断优先级别。

ddi_intr_set_softint_pri(9F)

更改指定软中断的相对软中断优先级。

ddi_intr_trigger_softint(9F)

触发指定的软中断。

要利用新框架的功能,请使用上述接口。请勿使用下表中列出的过时接口。保留这些过时接口只是出于兼容性目的。

表 B-3 过时的中断函数

过时的中断函数
替代函数
ddi_add_intr(9F)
ddi_add_softintr(9F)
ddi_dev_nintrs(9F)
ddi_get_iblock_cookie(9F)
ddi_get_soft_iblock_cookie(9F)
ddi_intr_hilevel(9F)
ddi_remove_intr(9F)
ddi_remove_softintr(9F)
ddi_trigger_softintr(9F)