编写设备驱动程序

SPARC 平台控制台通信

SPARC 帧缓存器驱动程序通常不在 VGA 文本模式下运行。SPARC 帧缓存器驱动程序通常需要发送像素图案,以描述显示的文本和图像。内核 tem 要求 SPARC 驱动程序支持特定的接口,以便在屏幕上呈现数据、执行滚动和显示文本光标。驱动程序实际上如何在屏幕上呈现 tem 发出的数据取决于具体的设备。驱动程序通常根据硬件和视频模式在视频内存中绘制数据。

Solaris OS 提供的一些接口使内核终端仿真器能够直接驱动兼容的控制台帧缓存器。将驱动程序转换为与内核终端仿真器兼容的好处在于:

SPARC 控制台帧缓存器驱动程序不需要与内核终端仿真器兼容。如果控制台帧缓存器驱动程序不与内核终端仿真器兼容,系统将使用 OpenBoot PROM 中的 FCode 终端仿真器。

控制台帧缓存器通过 EEPROM screen 环境变量进行识别。系统通过检查帧缓存器驱动程序是否导出 tem-support DDI 属性,来确定控制台帧缓存器是否与内核终端仿真器模块兼容。如果导出了 tem-support 属性,则系统将在系统引导过程中配置控制台时对帧缓存器驱动程序发出 VIS_DEVINIT I/O 控制 (ioctl) 命令。如果导出了 tem-support DDI 属性,同时 VIS_DEVINIT ioctl 命令成功并向 tem 返回了兼容版本号,那么,系统会将系统控制台配置为通过内核终端仿真器利用该帧缓存器驱动程序。有关 I/O 控制驱动程序入口点的信息,请参见 ioctl(9E) 手册页。

支持内核终端仿真器的 SPARC 驱动程序应导出 tem-support DDI 属性。该属性表示驱动程序支持内核终端仿真器。如果帧缓存器驱动程序导出了 tem-support DDI 属性,则早在引导过程中配置控制台时就将会处理该驱动程序。如果帧缓存器驱动程序未导出 tem-support 属性,则在引导过程中,可能不会那么早就处理该驱动程序。

tem-support

设置为 1 时,此 DDI 属性表示此驱动程序与控制台内核帧缓存器接口兼容。

内核终端仿真器模块通过两种主要接口与控制台帧缓存器驱动程序进行交互:

下节将提供详细信息。