在hidraw.c, hid-core.c, hid-input.c中函数的调用顺序
时间: 2024-05-23 18:10:59 浏览: 159
在 Linux 内核中,HID 设备的驱动由三个部分组成:hid-core、hid-input 和 hidraw。这三个部分的源代码分别位于 drivers/hid/hid-core.c、drivers/hid/hid-input.c 和 drivers/hid/hidraw.c 中。
下面介绍一下在这三个文件中函数的调用顺序:
1. hid-core.c:hid_probe():当一个 HID 设备被插入时,驱动程序首先调用 hid_probe() 函数。该函数会检查设备是否是 HID 设备,并为该设备分配一个 hid_device 结构体。
2. hid-core.c:hid_add_device():在成功分配 hid_device 结构体之后,驱动程序会调用 hid_add_device() 函数,将该设备添加到系统中。
3. hid-core.c:hid_input_start():当 HID 输入子系统准备好接收数据时,hid_input_start() 函数会被调用。该函数会启动 HID 设备的输入报告。
4. hid-input.c:hidinput_open():当用户空间的应用程序打开 HID 设备文件时,hidinput_open() 函数会被调用。
5. hidraw.c:hidraw_open():当用户空间的应用程序打开 hidraw 设备文件时,hidraw_open() 函数会被调用。
6. hid-input.c:hidinput_write():当用户空间的应用程序向 HID 设备文件写入数据时,hidinput_write() 函数会被调用。
7. hidraw.c:hidraw_write():当用户空间的应用程序向 hidraw 设备文件写入数据时,hidraw_write() 函数会被调用。
8. hid-core.c:hid_remove():当 HID 设备被移除时,驱动程序会调用 hid_remove() 函数,将该设备从系统中移除。
总体来说,hid-core.c 负责管理 HID 设备,hid-input.c 负责处理 HID 设备的输入报告,hidraw.c 负责提供 HID 设备的原始数据访问。这三个部分共同协作,实现了 Linux 内核对 HID 设备的支持。
阅读全文