编写适用于 Oracle® Solaris 11.2 的设备驱动程序

退出打印视图

更新时间: 2014 年 9 月
 
 

用于字符设备驱动程序的入口点

字符设备驱动程序通常以字节流的形式执行 I/O 操作。使用字符驱动程序的设备包括磁带机和串行端口。字符设备驱动程序还可以提供块驱动程序中不存在的其他接口,如 I/O 控制 (ioctl) 命令、内存映射以及设备轮询。有关更多信息,请参见Chapter 15, Drivers for Character Devices

任何设备驱动程序的主要任务都是执行 I/O,并且许多字符设备驱动程序执行称为字节流字符的 I/O。驱动程序可在设备上来回传送数据,而无需使用特定设备地址。此类型的传送与块设备驱动程序中的相反,后者部分文件系统请求会标识设备上的特定位置。

read(9E)write(9E) 入口点可处理标准字符驱动程序的字节流 I/O。有关更多信息,请参见I/O Request Handling

下表列出了字符设备驱动程序可使用的其他入口点。有关其他入口点的信息,请参见Entry Points Common to All Drivers

表 1-3  用于字符驱动程序的其他入口点
入口点
使用情况
说明
可选
针对非 STREAMS 字符驱动程序轮询事件。有关其他信息,请参见Multiplexing I/O on File Descriptors
可选
针对字符驱动程序执行一系列 I/O 命令。ioctl() 例程必须确保根据需要显式使用 copyin(9F)copyout(9F)ddi_copyin(9F)ddi_copyout(9F) 在内核地址空间复制用户数据。其他信息:
必填
从设备读取数据。其他信息:
可选
将设备内存映射到用户空间。其他信息:
必填
将数据写入设备。其他信息: