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.  硬件概述

B.  Oracle Solaris DDI/DKI 服务汇总

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

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

Oracle Solaris 控制台和内核终端仿真器

x86 平台控制台通信

SPARC 平台控制台通信

控制台可视化 I/O 接口

I/O 控制接口

轮询式 I/O 接口

视频模式更改回调接口

在控制台帧缓存器驱动程序中实现可视化 I/O 接口

VIS_DEVINIT

VIS_DEFINI

VIS_CONSDISPLAY

VIS_CONSCOPY

VIS_CONSCURSOR

VIS_PUTCMAP

VIS_GETCMAP

在控制台帧缓存器驱动程序中实现轮询式 I/O

特定于帧缓存器的配置模块

特定于 X 窗口系统帧缓存器的 DDX 模块

开发、测试和调试控制台帧缓存器驱动程序

测试 I/O 控制接口

测试轮询式 I/O 接口

测试视频模式更改回调函数

有关测试控制台帧缓存器驱动程序的其他建议

E.  pci.conf 文件

索引

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

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

控制台可视化 I/O 接口

内核终端仿真器通过两个接口与控制台帧缓存器驱动程序进行交互。在正常的系统活动期间(系统成功引导后),内核终端仿真器与控制台帧缓存器驱动程序之间的通信通过 ioctl 接口进行。在独立模式期间(系统引导之前或调试期间),内核终端仿真器与控制台帧缓存器驱动程序之间的通信通过轮询式 I/O 接口进行。内核终端仿真器与控制台帧缓存器驱动程序之间的所有活动都由内核终端仿真器启动,但控制台帧缓存器驱动程序用来通知内核终端仿真器有关视频模式方面的变化的回调函数除外。

visual_io(7I) 手册页中详细说明了控制台可视化 I/O 接口。有关视频模式更改回调函数的更多信息,请参见视频模式更改回调接口

I/O 控制接口

在正常的系统活动期间,内核终端仿真器通过下表中列出的 ioctl 接口与控制台帧缓存器驱动程序进行通信:

ioctl 名称
对应的数据结构
说明
VIS_DEVINIT
vis_devinit
初始化终端仿真器模块与帧缓存器之间的会话。请参见VIS_DEVINIT
VIS_DEVFINI
不适用
终止终端仿真器模块与帧缓存器之间的会话。请参见VIS_DEFINI
VIS_CONSDISPLAY
vis_consdisplay
以矩形显示像素。请参见VIS_CONSDISPLAY
VIS_CONSCOPY
vis_conscopy
复制像素的矩形区(滚动)。请参见VIS_CONSCOPY
VIS_CONSCURSOR
vis_conscursor
显示或隐藏文本光标。请参见VIS_CONSCURSOR
VIS_PUTCMAP
vis_cmap
将终端仿真器模块色彩表发送到帧缓存器驱动程序。请参见VIS_PUTCMAP
VIS_GETCMAP
vis_cmap
从帧缓存器读取终端仿真器模块色彩表。请参见VIS_GETCMAP

轮询式 I/O 接口

轮询式 I/O 接口提供的功能与 VIS_CONSDISPLAYVIS_CONSCOPY VIS_CONSCURSOR ioctl 接口的功能相同。仅当操作系统被停止并处于独立模式时,才调用轮询式 I/O 接口。有关更多信息,请参见在控制台帧缓存器驱动程序中实现轮询式 I/O

处于独立模式时,内核终端仿真器通过下表中列出的轮询式 I/O 接口与控制台帧缓存器驱动程序进行通信:

轮询式 I/O 函数
对应的数据结构
说明
(*display)()
vis_consdisplay
以矩形显示像素。
(*copy)()
vis_conscopy
复制像素的矩形区(滚动)。
(*cursor)()
vis_conscursor
显示或隐藏文本光标。

视频模式更改回调接口

在任何时候,控制台帧缓存器驱动程序与内核终端仿真器都必须就视频模式取得一致。视频模式涉及到控制台屏幕高度、宽度和深度(以像素为单位)。视频模式还涉及到内核终端仿真器与控制台帧缓存器之间的通信是在 VGA 文本模式还是在像素模式下进行。

为了让控制台帧缓存器驱动程序通知内核终端仿真器有关视频模式方面的变化,将使用下表中所述的 (*modechg_cb)() 内核终端仿真器回调函数的地址初始化控制台帧缓存器驱动程序:

回调函数
对应的数据结构
说明
(*modechg_cb)()
vis_modechg_arg

vis_devinit

使终端仿真器模块与驱动程序视频模式(屏幕高度、宽度和像素深度)保持同步。