3. 内核驱动¶
3.1. OS 接口¶
内核驱动在 OS 启动时加载,并由 OS 启动,然后公开到用户空间,可供加速器通过“用户接口”访问。
为了完成上述过程,内核驱动需要一些标准函数:
- init_hardware()
- init_driver()
- uninit_driver()
- find_device()
- publish_devices()
3.1.1. init_hardware()¶
3.1.2. init_driver()¶
3.1.3. publish_driver()¶
3.1.4. uninit_driver()¶
3.1.5. find_device()¶
3.2. 用户接口¶
在内核驱动由操作系统初始化完成后,它可以由以下接口进行访问:
- open_hook()
- close_hook()
- free_hook()
- control_hook()
- read_hook()
- write_hook()
3.2.1. open_hook()¶
3.2.2. close_hook()¶
close_hook() 例程理论上用于关闭驱动,但是根据 BeOS 文档,它对显卡驱动不起作用,将会返回一个错误状态。
3.2.3. free_hook()¶
3.2.4. control_hook()¶
如上所述 control_hook() 在
3.2.5. read_hook()¶
read_hook() 例程未使用,返回 B_NOT_ALLOWED 状态。
3.2.6. write_hook()¶
write_hook() 例程未使用,返回 B_NOT_ALLOWED 状态。