文档信息
前言
第 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 主机总线适配器驱动程序
主机总线适配器驱动程序介绍
SCSI 接口
SCSA HBA 接口
SCSA HBA 入口点汇总
SCSA HBA 数据结构
scsi_hba_tran() 结构
scsi_address 结构
scsi_device 结构
scsi_pkt 结构 (HBA)
按目标实例的数据
传输结构克隆
SCSA HBA 函数
HBA 驱动程序的相关性和配置问题
声明和结构
每个命令的结构
模块初始化入口点
_init() 入口点(SCSI HBA 驱动程序)
_fini() 入口点(SCSI HBA 驱动程序)
自动配置入口点
attach() 入口点(SCSI HBA 驱动程序)
detach() 入口点(SCSI HBA 驱动程序)
SCSA HBA 驱动程序入口点
目标驱动程序实例初始化
tran_tgt_init() 入口点
tran_tgt_probe() 入口点
tran_tgt_free() 入口点
资源分配
tran_init_pkt() 入口点
分配和初始化 scsi_pkt(9S) 结构
分配 DMA 资源
重新分配用于数据传送的 DMA 资源
tran_destroy_pkt() 入口点
tran_sync_pkt() 入口点
tran_dmafree() 入口点
命令传输
tran_start() 入口点
中断处理程序和命令完成
超时处理程序
功能管理
tran_getcap() 入口点
tran_setcap() 入口点
中止和重置管理
tran_abort() 入口点
tran_reset() 入口点
tran_bus_reset() 入口点
tran_reset_notify() 入口点
动态重新配置
SCSI HBA 驱动程序特定问题
安装 HBA 驱动程序
HBA 配置属性
scsi-reset-delay 属性
scsi-options 属性
按目标的 scsi-options
x86 目标驱动程序配置属性
排队支持
19. 网络设备驱动程序
20. USB 驱动程序
21. SR-IOV 驱动程序
第 3 部分生成设备驱动程序
22. 编译、装入、打包和测试驱动程序
23. 调试、测试和调优设备驱动程序
24. 推荐的编码方法
第 4 部分附录
A. 硬件概述
B. Solaris DDI/DKI 服务汇总
C. 使设备驱动程序支持 64 位
D. 控制台帧缓存器驱动程序
E. pci.conf 文件
索引
本章介绍有关创建 SCSI 主机总线适配器 (host bus adapter, HBA) 驱动程序的信息。本章提供了用于说明典型 HBA 驱动程序的结构的样例代码。样例代码说明了如何使用 Sun 公用 SCSI 体系结构 (Sun Common SCSI Architecture, SCSA) 提供的 HBA 驱动程序接口。本章介绍有关以下主题的信息: