JavaScript is required to for searching.
跳过导航链接
退出打印视图
编写设备驱动程序     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

第 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 主机总线适配器驱动程序

19.  网络设备驱动程序

20.  USB 驱动程序

21.  SR-IOV 驱动程序

第 3 部分生成设备驱动程序

22.  编译、装入、打包和测试驱动程序

23.  调试、测试和调优设备驱动程序

24.  推荐的编码方法

第 4 部分附录

A.  硬件概述

SPARC 处理器问题

SPARC 数据对齐

SPARC 结构中的成员对齐

SPARC 字节排序

SPARC 寄存器窗口

SPARC 乘法和除法指令

x86 处理器问题

x86 字节排序

x86 体系结构手册

字节存储顺序

存储缓冲区

系统内存模型

全存储排序 (Total Store Ordering, TSO)

部分存储排序 (Partial Store Ordering, PSO)

总线体系结构

设备标识

支持的中断类型

总线特定信息

PCI 局部总线

PCI 地址域

PCI 配置地址空间

PCI 配置基址寄存器

PCI 内存地址空间

PCI I/O 地址空间

PCI 硬件配置文件

PCI Express

S 总线

S 总线物理地址空间

物理 S 总线地址

S 总线硬件配置文件

设备问题

时间关键型部分

延迟

内部顺序逻辑

中断问题

SPARC 计算机上的 PROM

Open Boot PROM 3

Forth 命令

遍历 PROM 设备树

映射设备

读取和写入

B.  Oracle Solaris DDI/DKI 服务汇总

C.  使设备驱动程序支持 64 位

D.  控制台帧缓存器驱动程序

E.  pci.conf 文件

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

存储缓冲区

为提高性能,CPU 会使用内部存储缓冲区临时存储数据。使用内部缓冲区可能会对设备 I/O 操作的同步造成影响。因此,驱动程序需要执行明确的步骤来确保在适当的时间完成对寄存器的写入。

例如,假设通过锁来同步对设备空间(如寄存器或帧缓存器)的访问。驱动程序需要检查在释放锁之前是否实际完成了向设备空间中的数据存储。释放锁时并不一定会刷新 I/O 缓冲区。

另一个示例是,确认中断时,驱动程序通常会在设备控制寄存器中设置或清除一位。驱动程序必须确保在中断程序返回之前,已开始在设备上对控制寄存器进行写入。同样,在向控制寄存器写入了某一命令之后,设备可能要求延迟,即驱动程序繁忙,需要等待。在这种情况下,驱动程序必须确保在设备延迟之前已开始在该设备上进行写入。

当读取设备寄存器不会产生不良负面影响时,只需在写入之后立即读取就可以对写入进行验证了。如果无法在不产生不良负面影响的情况下读取该特定寄存器,则可以使用同一寄存器集中的其他设备寄存器。