
| 前言 第1章 概述1 1.1 solaris1 1.2 opensolaris2 1.3 调试工具14 第2章 solaris的设备管理25 2.1 设备的文件操作25 2.2 设备文件系统(devfs)25 2.2.1 dv_node26 2.2.2 通过设备文件系统来配置设备驱动27 2.3 设备信息结点(dev_info)29 2.3.1 设备信息结点的属性31 2.3.2 设备信息结点的生命周期32 2.4 设备标识34 2.4.1 devid34 2.4.2 设备的物理路径35 2.4.3 设备号(主设备结点,次设备结点)36 2.5 设备树及其属性37 2.5.1 open firmware简介37 2.5.2 设备属性38 .2.5.3 总线属性43 2.6 设备树的管理43 2.6.1 devfsadm43 2.6.2 syseventd46 2.6.3 驱动配置工具47 2.7 动态重新配置47 第3章 solaris设备驱动程序50 3.1 设备驱动程序模块50 3.2 设备驱动程序中的设备管理52 3.2.1 softstate52 3.2.2 设备的功能提供54 3.3 设备驱动程序中的操作56 3.3.1 设备结点56 3.3.2 设备的配置58 3.3.3 设备操作60 3.4 设备驱动程序中的硬件操作61 3.4.1 attach()61 3.4.2 timeout()65 第4章 solaris内核多线程与同步66 4.1 多线程66 4.1.1 多线程模型66 4.1.2 线程调度72 4.1.3 任务队列77 4.1.4 cyclic子系统81 4.1.5 callout和timeout84 4.2 同步机制87 4.2.1 锁的硬件原理87 4.2.2 互斥锁92 4.2.3 条件变量96 4.2.4 锁的使用97 第5章 solaris内核内存99 5.1 内核内存概述99 5.1.1 solaris内核内存虚拟地址空间布局99 5.1.2 内核堆103 5.1.3 内核内存分配和管理103 5.2 slab分配程序104 5.2.1 概述104 5.2.2 slab分配程序接口106 5.2.3 slab分配程序的分层实现108 5.2.4 slab分配程序缓存统计信息113 5.3 vmem分配器115 5.3.1 vmem接口115 5.3.2 vmem的实现117 5.4 内核内存的跟踪和调试119 5.4.1 检查已释放缓冲区:0xdeadbeef120 5.4.2 使用redzone进行调试:0xfeedface120 5.4.3 检测未初始化数据:0xbaddcafe122 5.4.4 内存分配日志123 5.4.5 使用高级技巧分析内存125 5.4.6 使用::kmem_verify找到被破坏 的缓冲区126 5.4.7 使用分配程序日志功能127 第6章 pci130 6.1 pci概述130 6.1.1 i/o总线的发展130 6.1.2 pci简介131 6.2 x86平台pci设备配置过程132 6.2.1 pci资源管理132 6.2.2 设备枚举134 6.2.3 设备再编程139 6.3 pci空间访问141 6.3.1 字节序141 6.3.2 设备访问的数据一致性146 6.3.3 设备访问机制147 第7章 solaris中断152 7.1 solaris上的中断简介152 7.2 msi和msi-x153 7.2.1 msi154 7.2.2 msi-x155 7.2.3 msi和msi-x的异同157 7.2.4 msi消息地址和消息数据157 7.3 x86上的中断机制及solaris中x86 中断的实现159 7.3.1 x86体系结构中的中断和异常 处理机制159 7.3.2 x86系统中的中断控制器159 7.3.3 solaris对x86系统中断的支持162 7.4 sparc系统上的中断机制及 solaris中sparc中断的实现167 7.4.1 sparc处理器在硬件实现上对中断 的支持167 7.4.2 sparc系统上的中断控制器169 7.4.3 solaris对sparc系统中断的支持170 7.5 solaris上软中断的实现175 7.5.1 x86系统中软中断的实现175 7.5.2 sparc系统中软中断的实现178 7.6 solaris中和中断相关的ddi/dki181 第8章 dma186 8.1 dma概述186 8.1.1 sg表和dma控制器186 8.1.2 dvma和iommu187 8.1.3 dma的数据一致性190 8.2 solaris的dma模型194 8.2.1 dma的属性194 8.2.2 dma模型概述195 8.2.3 dma对象197 8.3 dma绑定过程199 8.4 dma的同步202 8.5 dma内存分配机制203 8.5.1 ddi_dma_mem_alloc()接口定义203 8.5.2 x86平台dma内存分配203 第9章 电源管理207 9.1 关于电源管理207 9.2 电源管理的设计与实现208 9.3 系统的电源管理210 9.4 设备的电源管理215 9.4.1 成员215 9.4.2 属性216 9.4.3 设备的电源管理过程216 第10章 fma(solaris故障管理)221 10.1 fma原理和架构221 10.1.1 solaris fma模型221 10.1.2 故障边界223 10.1.3 错误处理、故障诊断和响应224 10.1.4 资源命名和事件协议224 10.2 solaris故障管理的实现233 10.2.1 故障管理器fmd概述233 10.2.2 系统拓扑236 10.2.3 eversholt故障诊断语言238 10.3 设备驱动程序中的fma支持238 10.3.1 fma资源初始化239 10.3.2 io设备内部错误241 10.3.3 io访问和dma错误246 附录1 设备驱动(testdrv)的makefile252 附录2 dummy驱动程序255 附录3 和中断相关的函数使用举例258 参考文献261 |
商品评论(0条)