编写设备驱动程序

映射设备内存

通过内存映射,用户线程可以直接访问某些设备(如帧缓存器)的内存。这些设备的驱动程序通常不支持 read(9E)write(9E) 接口。相反,这些驱动程序支持使用 devmap(9E) 入口点的内存映射。例如,帧缓存器驱动程序可以实现 devmap(9E) 入口点,以允许将帧缓存器映射到用户线程。

调用 devmap(9E) 入口点可以将设备内存或内核内存导出到用户应用程序。可以从 segmap(9E) 内部的 devmap_setup(9F) 调用 devmap() 函数,也可以代表 ddi_devmap_segmap(9F) 调用它。

segmap(9E) 入口点负责设置 mmap(2) 系统调用所请求的内存映射。许多内存映射设备的驱动程序使用 ddi_devmap_segmap(9F) 作为入口点,而不是定义自己的 segmap(9E) 例程。

有关详细信息,请参见第 10 章第 11 章