Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291089
  • 博文数量: 47
  • 博客积分: 568
  • 博客等级: 下士
  • 技术积分: 543
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-05 12:51
文章分类

全部博文(47)

文章存档

2012年(47)

分类: LINUX

2012-04-13 18:53:45

    Linux输入子系统即通常所说的键盘、鼠标、触摸等功能实现部分。Linux输入系统已经实现了字符设备驱动的文件操作接口函数,使得实现键盘、鼠标、触摸屏等字符设备驱动功能变得非常简单,调试也比较方便,然而如果要做到灵活应用,还得深入分析Linux输入子系统是如何实现的。对这部分源码反复阅读,还有利于对c语言编程中类、继承、抽象等感念的理解(别以为c中没有类,c++中类的概念在c中照应能实现),有利于对数据结构组织的理解,比如链表操作等。
    Linux输入子系统包括三个层次,有上到下别是事件处理层(Event Handler)、核心层(Input Core)
和驱动层(Input Driver)。
    1.事件处理层负责与用户程序打交道,将硬件驱动层传来的事件报告给用户程序。
    2.核心层是链接其他两个层之间的纽带与桥梁,向下提供驱动层的接口,向上提供事件处理层的接口。
    3.驱动层负责操作具体的硬件设备,这层的代码是针对具体的驱动程序的,键盘、鼠标、触摸屏等字符设备驱动功能的实现工作主要在这层。
    结构框图如下图:

    在Input子系统三层框架中对应3个结构体。
    1.结构体input_dev表示底层硬件设备,是所有输入设备的抽象。
    2.handle是手柄的意思,结构体input_handle表示连接杆,连接底层硬件和上层事件处理层。
    3.结构体input_handler表示事件处理器,是对事件处理的抽象。
注:基于linux-kernel2.6.32
参考:linux内核input子系统解析.
      linux输入子系统分析一.http://blog.chinaunix.net/uid-26620753-id-3132688.html
阅读(3691) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

long_yii2012-04-16 10:49:43