
input子系统
路人甲2017
这个作者很懒,什么都没留下…
展开
-
linux输入子系统(4)
1.5 事件报告的传递 输入子系统设备报告各种事件通过 input_report_XXX族函数,例如 程序清单1 .5 中报告按键事件。按键、相对坐标、绝对坐标和同步事件报告的函数如 程序清单1 .12 所示。 程序清单1 .12 事件报告函数 /* include/linux/input.h */ static inline vo转载 2013-09-30 14:54:39 · 698 阅读 · 0 评论 -
linux输入子系统(3)
1.4 input_dev 的注册在输入设备驱动的初始化函数的最后一步就是调用 input_register_device注册设备。这个函数如 程序清单 1 .9 所示。 程序清单1 .9 input_register_device /* driver/input/input.c */ int input_register_device(st转载 2013-09-30 14:40:59 · 667 阅读 · 0 评论 -
linux输入子系统(6)--- evdev_handler的实现
2.3 evdev_handler 的实现Linux 输入子系统已经建立好了几个 handler ,用来处理几类常见的事件,如鼠标、键盘、摇杆等。其中最为基础的是 evdev_handler,它是在 driver/input/evdev.c 中实现的。它能够接收任意类型的事件,任意id 的设备都可以和它匹配连接,它对应的设备节点为 /dev/eventX ,次设转载 2013-09-30 15:15:06 · 840 阅读 · 0 评论 -
inux输入子系统(8)--input core
第3章输入子系统核心层 上面两章分别讲了 Linux 输入子系统的设备驱动层和事件处理层,这两层的实现都是建立在输入核心层的基础之上的。核心层负责管理所有的资源并连接驱动层和事件处理层。3.1 input core 初始化输入子系统的核心层的实现都在 driver/input/input.c文件中, 初始化函数如 程序清单 3.1 所示。 程序清单转载 2013-09-30 15:40:49 · 639 阅读 · 0 评论 -
linux输入子系统(1)
第1章 Linux输入子系统设备驱动 Linux 输入子系统将输入驱动抽象为三层:事件处理层、核心层、设备驱动层。应用程序只需要跟事件处理层打交道,不需要察觉设备的变化。核心层是负责管理输入设备,并将消息在事件处理层和设备驱动层之间传递。由于事件处理和设备驱动的分离,使得应用程序读取输入信息的接口固定不变就可以适应新的同类输入设备。 表示事件处理层的数据结构是 struct i转载 2013-09-30 14:18:06 · 857 阅读 · 0 评论 -
linux输入子系统(2)
1.3 输入子系统设备驱动讲解1.3.1 打开和关闭函数struct input_dev 中有 open 和 close 两个函数指针。在与 handler 第一次连接之后会调用 open 函数,断开连接会调用 close 。 open 中应该完成硬件初始化的相关工作,并且申请用到的其他资源,如中断号。 close 函数做相反的工作。1.3.2 事件类型转载 2013-09-30 14:32:05 · 776 阅读 · 0 评论 -
linux输入子系统(5)
第2章输入子系统的事件驱动 上一章已经说过输入子系统分为三层,最上面的一层是事件处理层,我们暂时称它为事件驱动,这是相对于上一章的设备驱动来讲的。上一章介绍了设备驱动注册时要与匹配的 handler 连接,报告的事件也会分发给连接的 handler ,这一章介绍 handler 的相关操作。 2.1 重要的数据结构 首先介绍 input_handle ,转载 2013-09-30 15:02:52 · 643 阅读 · 0 评论 -
linux输入子系统(7)--mouse_handler的实现
2.4 mouse_handler的实现 在内核的 driver/input/mousedev.c 中内核已经实现了一个专门处理鼠标事件的 mousedev_handler 。这个 handler 占用的次设备号是 32~63 。虽然有 32 个次设备号可用,但是只有前 31 个可被用户所用,系统保留了最后一个,所以最多连接 31 个鼠标设备。mousedev_handl转载 2013-09-30 15:23:00 · 1516 阅读 · 0 评论