JavaScript is required to for searching.
跳过导航链接
退出打印视图
编写设备驱动程序     Oracle Solaris 10 1/13 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.  电源管理

电源管理框架

设备电源管理

系统电源管理

设备电源管理模型

电源管理组件

多个电源管理组件

电源管理状态

电源级别

电源管理相关性

设备的自动电源管理

设备电源管理接口

繁忙-空闲状态转换

设备能耗状态转换

power() 入口点

系统电源管理模型

自动关闭阈值

繁忙状态

硬件状态

系统的自动电源管理

系统电源管理使用的入口点

detach() 入口点

attach() 入口点

电源管理设备访问示例

电源管理控制流程

电源管理接口的更改

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 文件

索引

电源管理接口的更改

在 Solaris 8 发行版之前,设备的电源管理不是自动的。开发者必须为要管理其电源的每个设备在 /etc/power.conf 中添加一项。框架假定所有设备都只支持两个电源级别:0 和标准能耗。

电源假定所有其他组件对组件 0 具有隐式相关性。当组件 0 更改为级别 0 时,使用 DDI_PM_SUSPEND 命令调用驱动程序的 detach(9E) 来保存硬件状态。当组件 0 的级别 0 发生更改时,使用命令 DDI_PM_RESUME 调用 attach(9E) 例程来恢复硬件状态。

以下接口和命令已过时,现在仍支持它们是为了适于采用二进制的场合:

从 Solaris 8 发行版开始,如果启用了 autopm,则导出 pm-components 属性的设备将自动使用电源管理。

现在,框架可以通过 pm-components 属性了解每个设备支持的电源级别。

框架对设备不同组件之间的相关性不会作出任何假设。更改电源级别时,设备驱动程序负责根据需要保存并恢复硬件状态。

通过这些更改,电源管理框架可以处理新兴的设备技术。现在,电源管理可以节省更多的电。框架可以自动检测哪些设备能够省电。框架可以使用设备的中间能耗状态。现在,系统可以实现节能目标,而无需关闭整个系统的电源,也无需使用任何功能。

表 12-1 电源管理接口

已删除的接口
等效接口
pm_create_components(9F)
pm_set_normal_power(9F)
pm_destroy_components(9F)
pm_get_normal_power(9F)
ddi_dev_is_needed(9F)
DDI_PM_SUSPEND
DDI_PM_RESUME