简介
input子系统的三层:
- 核心层:为事件处理层、设备驱动层提供接口,并在input_handler和input_dev之间建立关联;
- 事件处理层:内核对象对应input_handler,用于接收-解析-处理设备驱动层上报的输入事件,并唤醒正在等待输入的应用程序;
- 设备驱动层:内核对象对应input_dev,用于设备上报输入事件给事件处理层;
代码梳理
简单梳理了三层的实现流程(原始链接:input子系统-核心层、事件处理层、设备驱动层简介),如下图。总结以下几点:
- input_dev_list 双向链表,用来管理所有的 input_dev;
- input_handler_lis t双向链表,用来管理所有的 input_handler;
- input_dev 和 input_handler 通过 input_attach_handler 来进行匹配;
总结
最精彩的部分,发生在 input_attach_handler 之后。当 input_dev 和 input_handler 匹配上之后,会发生什么呢?下一篇讲。