usbhid驱动在哪个函数中注册dev/input/event节点
时间: 2023-06-24 10:07:27 浏览: 58
USB HID驱动注册输入设备节点的函数是`hid_input_start()`。在该函数中,驱动会调用`input_register_device()`函数来注册输入设备节点,并且将输入事件的处理函数指定为`hid_input_event()`。 在这个过程中,驱动会设置输入设备的一些属性,如设备名称、设备类型、输入事件的类型、键码等。最终,驱动会返回注册的输入设备的指针,并将其保存在驱动的私有数据结构中,以便后续的输入事件处理函数可以访问。
相关问题
usbhid驱动调用哪个函数注册输入事件节点
在Linux内核中,USB HID设备的输入事件节点注册是通过调用`input_register_device()`函数实现的。这个函数定义在`drivers/input/input.c`文件中,其原型为:
```c
int input_register_device(struct input_dev *dev);
```
其中,`struct input_dev`结构体是表示输入设备的数据结构,包含了设备名称、设备类型、事件代码和事件类型等信息。在USB HID驱动中,需要先创建一个`input_dev`对象,并设置好相应的属性,然后再通过`input_register_device()`函数将其注册到系统中。
/dev/input/eventX 和 /dev/hidrawX 什么关系
`/dev/input/eventX` 和 `/dev/hidrawX` 都是Linux系统中用于与输入设备进行交互的设备节点。
`/dev/input/eventX` 是用于接收输入设备事件的节点,例如鼠标、键盘、触摸屏等。当用户与输入设备交互时,设备会产生相应的事件,这些事件会被发送到 `/dev/input/eventX` 节点,应用程序可以通过监听该节点来获取这些事件并做出相应处理。
`/dev/hidrawX` 则是用于与USB HID(Human Interface Device)设备进行交互的节点。HID是一种USB设备协议,支持多种输入设备,包括鼠标、键盘、游戏手柄等。与 `/dev/input/eventX` 不同的是,`/dev/hidrawX` 节点提供了对输入数据的原始访问,应用程序需要对数据进行解析和处理才能得到有意义的输入事件。
因此,`/dev/input/eventX` 和 `/dev/hidrawX` 都是用于与输入设备进行交互的节点,但是前者更加高级,已经对输入数据进行了处理,提供了更为方便的接口,后者则提供了更加原始的访问方式。