文档信息
前言
第 1 部分针对 Oracle Solaris 平台设计设备驱动程序
1. Oracle Solaris 设备驱动程序概述
2. Oracle Solaris 内核和设备树
3. 多线程
4. 属性
5. 管理事件和排队任务
6. 驱动程序自动配置
7. 设备访问:程控 I/O
8. 中断处理程序
9. 直接内存访问 (Direct Memory Access, DMA)
DMA 模型
设备 DMA 的类型
总线主控器 DMA
第三方 DMA
第一方 DMA
主机平台 DMA 的类型
DMA 软件组件:句柄、窗口和 Cookie
DMA 操作
执行总线主控器 DMA 传送
执行第一方 DMA 传送
执行第三方 DMA 传送
DMA 特性
ddi_dma_attr 结构
S 总线示例
ISA 总线示例
管理 DMA 资源
对象锁定
分配 DMA 句柄
分配 DMA 资源
设备寄存器结构
DMA 回调示例
确定最大突发流量大小
分配专用 DMA 缓冲区
处理资源分配故障
对 DMA 引擎进行编程
释放 DMA 资源
释放 DMA 句柄
取消 DMA 回调
同步内存对象
高速缓存
ddi_dma_sync() 函数
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 服务汇总
C. 使设备驱动程序支持 64 位
D. 控制台帧缓存器驱动程序
E. pci.conf 文件
索引
许多设备都可以临时控制总线。这些设备可以执行涉及主内存和其他设备的数据传送。由于设备执行这些操作的过程中无需借助于 CPU,因此该类型的数据传送称为直接内存访问 (Direct Memory Access, DMA)。可以执行的 DMA 传送类型如下:
两个设备之间
设备和内存之间
内存和内存之间
本章仅介绍设备和内存之间的传送。本章提供有关以下主题的信息: