文档信息
前言
第 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. 字符设备驱动程序
字符驱动程序结构概述
字符设备自动配置
设备访问(字符驱动程序)
open() 入口点(字符驱动程序)
close() 入口点(字符驱动程序)
I/O 请求处理
用户地址
向量化的 I/O
同步 I/O 与异步 I/O 之间的差别
数据传输方法
程控 I/O 传输
DMA 传输(同步)
DMA 传输(异步)
minphys() 入口点
strategy() 入口点
映射设备内存
对文件描述符执行多路复用 I/O 操作
其他 I/O 控制
ioctl() 入口点(字符驱动程序)
对有 64 位处理能力的设备驱动程序的 I/O 控制支持
处理 copyout() 溢出
32 位和 64 位数据结构宏
结构宏如何工作?
何时使用结构宏
声明并初始化结构句柄
结构句柄的操作
其他操作
16. 块设备驱动程序
17. SCSI 目标驱动程序
18. SCSI 主机总线适配器驱动程序
19. 网络设备驱动程序
20. USB 驱动程序
21. SR-IOV 驱动程序
第 3 部分生成设备驱动程序
22. 编译、装入、打包和测试驱动程序
23. 调试、测试和调优设备驱动程序
24. 推荐的编码方法
第 4 部分附录
A. 硬件概述
B. Solaris DDI/DKI 服务汇总
C. 使设备驱动程序支持 64 位
D. 控制台帧缓存器驱动程序
E. pci.conf 文件
索引
字符设备没有可物理寻址的存储介质(如磁带机或串行端口),在这些存储介质中 I/O 通常是以字节流的形式执行的。本章介绍字符设备驱动程序的结构,其中重点介绍字符驱动程序的入口点。此外,本章还介绍在同步和异步 I/O 传输上下文中 physio(9F) 和 aphysio(9F) 的用法。
本章介绍有关以下主题的信息: