Dus*_*fee 5 c linux operating-system kernel linux-kernel
我想知道Linux内核知道将输入写入哪个文件描述符(例如/ dev/input/eventX)的机制.例如,我知道当用户单击鼠标时,会发生中断,该中断由驱动程序处理并通过input_event(drivers/input/input.c)传播到Linux输入核心,最终会被写入相应的文件在/ dev/input /中.具体来说,我想知道我需要通过哪些源文件来查看内核如何根据给定的有关输入事件的信息知道要写入哪个文件.我的目标是在内核将它们写入/ dev/input/eventX字符文件之前,查看是否可以确定与特定输入事件代码对应的文件描述符.
你可能会浏览两个文件: drivers/input/input.c drivers/input/evdev.c 在evdev.c中,evdev_init()会调用input_register_handler()来初始化input_handler_list。
然后在输入设备驱动程序中,初始化 input_dev 后,它将调用: input_register_device(input_dev) -> 获取设备 kobj 路径,如 /devices/soc/78ba000.i2c/i2c-6/6-0038/input/input2 -> input_attach_handler () -> 处理程序->连接(处理程序, dev, id); -> evdev_connect()
在evdev_connect()中,它将执行以下操作: 1. 为新的evdev动态分配一个minor。2. dev_set_name(&evdev->dev, "事件%d", dev_no); 3. 调用input_register_handle()连接input_dev和evdev->handle。4. 创建cdev,并调用device_add()。
之后,你会发现输入节点/dev/input/eventX,X是dev_no的值。
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |