图 15–1 显示了用来定义字符设备驱动程序结构的数据结构和例程。设备驱动程序通常包括以下元素:
可装入设备的驱动程序段
设备配置部分
字符驱动程序入口点
下图中涂有阴影的设备访问部分列出了字符驱动程序入口点。
对于每个设备驱动程序,都有一个 dev_ops(9S) 结构与之关联,该结构进而又指向 cb_ops(9S) 结构。这些结构包含指向驱动程序入口点的指针:
open(9E)
close(9E)
read(9E)
write(9E)
ioctl(9E)
chpoll(9E)
aread(9E)
awrite(9E)
mmap(9E)
devmap(9E)
segmap(9E)
prop_op(9E)
可以根据需要将其中一些入口点替换为 nodev(9F) 或 nulldev(9F)。