第 1 部分针对 Oracle Solaris 平台设计设备驱动程序
9. 直接内存访问 (Direct Memory Access, DMA)
回调接口
回调接口
创建从设备节点
访问属性结构
ddi_device_copy() 参数更改
ddi_device_zero() 参数更改
检索目标设备信息
磁盘性能
DDI/DKI 接口
DDI/DKI 功能
什么是内核?
ddi_dma_attr
ddi_dma_cookie 结构更改
DMA 软件组件:句柄、窗口和 Cookie
ddi_dma_mem_alloc() 参数更改
DMA 软件组件:句柄、窗口和 Cookie
时间关键型部分
接收异步设备事件通知
获取错误状态
获取故障管理功能位掩码
清除错误
DMA 属性结构
清除故障管理资源
注册错误处理程序
声明故障管理功能
报告错误
gld_mac_info 结构
drv_getparm() 参数更改
drv_getparm() 参数更改
drv_getparm() 参数更改
getinfo() 入口点
getinfo() 入口点
软中断函数
中断初始化和销毁函数
中断初始化和销毁函数
中断处理程序功能
中断功能函数
中断功能函数
中断功能函数
软中断函数
中断功能函数
高级别中断
软中断函数
中断初始化和销毁函数
中断请求接口
优先级管理函数
中断处理程序功能
ioctl() 中的数据共享
访问属性结构
访问属性结构
驱动程序源文件
HBA 配置属性
驱动程序源文件
查找属性
prop_op() 入口点
DMA 隔离
detach() 入口点
独占使用 DDI 访问句柄
独占使用 DDI 访问句柄
detach() 入口点
scsi_device 结构
detach() 入口点
释放为用户访问导出的内核内存
Solaris DDI/DKI 服务汇总
DDI/DKI 兼容性测试
特定于 X 窗口系统帧缓存器的 DDX 模块
启用 Deadman 功能以避免硬挂起
delay() 和 timeout() 参数更改
ddi_device_copy() 参数更改
detach() 入口点
热移除
GLDv3 MAC 注册函数
系统电源管理
设备电源管理
ddi_device_zero() 参数更改
ddi_device_copy() 参数更改
ddi_device_zero() 参数更改
设备信息树节点 (dev_info_t) 函数
dev_ops 结构
设备 (dev_t) 函数
使用 add_drv 安装驱动程序
电源管理相关性
电源管理相关性
作为特殊文件的设备
/devices 目录
故障注入
将设备内存与用户映射相关联
devmap_load() 入口点
将内核内存导出到应用程序
devmap_unload() 入口点
devmap_contextmgt() 入口点
devmap_dup() 入口点
devmap_map() 入口点
devmap_unmap() 入口点
devmap(9E) 入口点
诊断故障
消息 ID 和字典文件
GLDv2 网络统计信息
GLDv2 I/O 控制函数
GLDv2 网络统计信息
DMA 操作
DMA 模型
对象锁定
分配专用 DMA 缓冲区
取消 DMA 回调
设备寄存器结构
释放 DMA 句柄
释放 DMA 资源
确定最大突发流量大小
主机平台 DMA 的类型
DMA 特性
主机平台 DMA 的类型
分配专用 DMA 缓冲区
DMA 传输(同步)
DMA 操作
分配 DMA 资源
drv_getparm() 参数更改
延迟
用于动态检测过程的 DTrace
任务队列 DTrace SDT 探测器
dump() 入口点(块驱动程序)
物理 S 总线地址
主机平台 DMA 的类型