首页 理论教育 Linux驱动开发实例|输入处理层

Linux驱动开发实例|输入处理层

时间:2023-10-19 理论教育 版权反馈
【摘要】:Input Handler层负责处理输入事件。同样应用层提交给输入节点的事件也先送给Input Handler层处理,最终分发给输入设备。Linux核心定义了一个Input Handler链表:static LIST_HEAD;input_handler的注册、注销函数定义如下:int input_register_handler;void input_unregister_handler;input_register_handler函数将新的input_handler插入到input_handler_list中,并将其绑定到相应的设备上:input_attach_handler函数匹配相应的输入设备,并将handle与设备连接起来:input_handler结构的一个重要成员id_table为input_device_id结构类型,用来表示该input_handler匹配的设备特征:其中flag设置匹配的类型。

Linux驱动开发实例|输入处理层

Input Handler层负责处理输入事件。每个输入设备会绑定一个或多个Input Handler。输入设备向输入子系统提交的事件会送给Input Handler层处理。同样应用层提交给输入节点的事件也先送给Input Handler层处理,最终分发给输入设备。

Linux核心定义了一个Input Handler链表:

static LIST_HEAD(input_handler_list);

input_handler的注册、注销函数定义如下:

int input_register_handler(struct input_handler*handler);

void input_unregister_handler(struct input_handler*handler);

input_register_handler函数将新的input_handler插入到input_handler_list中,并将其绑定到相应的设备上:(www.xing528.com)

input_attach_handler函数匹配相应的输入设备,并将handle与设备连接起来:

input_handler结构的一个重要成员id_table为input_device_id结构类型,用来表示该input_handler匹配的设备特征:

其中flag设置匹配的类型。input_register_device函数会调用input_attach_handler,进而调用input_match_device函数为输入设备驱动匹配input_handler:

input_inject_event函数用于从input handle发出事件,而输入设备(input_dev)的event接口会处理这个事件。

void input_inject_event(struct input_handle*handle,unsigned int type,unsigned int code,int value)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈