【linux input子系统-01】核心层、事件处理层、设备驱动层

简介

input子系统的三层:

  • 核心层:为事件处理层、设备驱动层提供接口,并在input_handler和input_dev之间建立关联;
  • 事件处理层:内核对象对应input_handler,用于接收-解析-处理设备驱动层上报的输入事件,并唤醒正在等待输入的应用程序;
  • 设备驱动层:内核对象对应input_dev,用于设备上报输入事件给事件处理层;

代码梳理

简单梳理了三层的实现流程(原始链接:input子系统-核心层、事件处理层、设备驱动层简介),如下图。总结以下几点:

  1. input_dev_list 双向链表,用来管理所有的 input_dev;
  2. input_handler_lis t双向链表,用来管理所有的 input_handler;
  3. input_dev 和 input_handler 通过 input_attach_handler 来进行匹配;

【linux input子系统-01】核心层、事件处理层、设备驱动层_第1张图片

总结

最精彩的部分,发生在 input_attach_handler 之后。当 input_dev 和 input_handler 匹配上之后,会发生什么呢?下一篇讲。

你可能感兴趣的:(linux,linux)