第 1 部分针对 Oracle Solaris 平台设计设备驱动程序
9. 直接内存访问 (Direct Memory Access, DMA)
打开与设备驱动程序关联的特殊文件(访问该设备)即可装入该驱动程序。您可以使用 modload(1M) 命令将驱动程序装入内存,但 modload 不会调用模块中的任何例程。首选方法是打开设备。
通常,当不再使用设备时,系统会自动卸载设备驱动程序。在开发过程中,要显式卸载驱动程序,可能需要使用 modunload(1M)。为了成功执行 modunload,设备驱动程序必须处于非活 动状态。对设备的任何未完成引用(如通过 open(2) 或 mmap(2) 的引用)均不应存在。
modunload 命令将与运行时相关的 module_id 用作参数。要查找 module_id,请使用 grep 在 modinfo(1M) 的输出中搜索相关的驱动程序名称。然后检查第一列。
# modunload -i module-id
要卸载当前无法装入的所有模块,请将模块 ID 指定为零:
# modunload -i 0
要成功执行 modunload(1M),驱动程序除了需要处于非活动状态外,还必须包含正常的 detach(9E) 和 _fini(9E) 例程。