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 状态。

3.3. 总结