我想知道Linux内核知道将输入写入哪个文件描述符(例如/dev/ input /eventX)的机制。例如,我知道当用户单击鼠标时,会发生中断,该中断由驱动程序处理,并通过input_event (drivers/ input /input.c)传播到Linux输入核心,最终会写入/dev/input/中的相应文件。具体地说,我想知道我需要检查哪些源文件,以查看内核如何根据给定的关于输入事件的信息知道要写入哪个文件。我的目标是看看在内核将特定输入事件代码写入/dev/ input /eventX字符文件之前,是否可以确定对应于这些输入事件代码的文件描述符。
发布于 2019-04-09 18:11:57
您可能会经历两个文件: drivers/input/input.c drivers/input/evdev.c在evdev.c中,evdev_init()将调用input_register_handler()来初始化input_handler_list。
然后在输入设备驱动程序中,初始化处理程序后,它将调用: input_register_device( input_dev ) -> get device kobj path,如/devices/soc/78ba000.i2c/i2c-6/6-0038/input/input2 -> input_attach_handler() -> handler -> input_dev(input_register_device,dev,id);-> evdev_connect()
在evdev_connect()中,它将执行以下操作: 1.为新的evdev动态分配次要对象。2. dev_set_name(&evdev->dev,"event%d",dev_no);3.调用input_register_handle()连接input_dev和evdev->handle。4.创建cdev,并调用device_add()。
在此之后,您将找到输入节点/dev/ input /eventX,X是dev_no的值。
https://stackoverflow.com/questions/54610416
复制相似问题