易截截图软件、单文件、免安装、纯绿色、仅160KB

浅析linux下鼠标驱动的实现

http://blog.chinaunix.net/u1/38994/showart_1132089.html
浅析linux下鼠标驱动的实现
【浅析linux下键盘设备工作和注册流程】
对于鼠标驱动和前面分析过的键盘驱动都是共用input模型,
所以,
对于事件上报和处理的方式都没有区别,
只是mouse鼠标驱动当上报完dx,
dy,
left
,
middle,
right之后,
需要调用input_sync(
)
,
将前面上报的仅仅填充在缓冲区中的数据,
通过mousedev_notify_readers(
)
发送给open了的挂接在mousedev-
>
client_list链表上等待获取鼠标信息的client门,
鼠标设备和键盘设备类似都是在/
dev/
input/
目录下创建了一个char类型的设备节点,
由应用程序使用read或者poll来阻塞调用,
对于键盘设备为/
dev/
input/
event0,
.
.
.
,
/
dev/
input/
eventx,
对于鼠标设备为/
dev/
input/
mouse0,
.
.
.
,
/
dev/
input/
mousex,
可以使用sudo cat /
dev/
input/
event0来从终端上截获显示按键的信息,
使用sudo cat /
dev/
input/
mouse0来捕捉鼠标的信息.
  让我们来看看驱动源码【gliethttp.
Leith】:
=
=
=
=
=
=
=
=
=
=
=
=
drivers\input\mouse\amimouse.
c=
=
=
=
=
=
=
=
=
=
=
=
    input_report_rel(
amimouse_dev,
REL_X,
dx)
;
    input_report_rel(
amimouse_dev,
REL_Y,
dy)
;
    input_report_key(
amimouse_dev,
BTN_LEFT,
ciaa.
pra &
0x40)
;
    input_report_key(
amimouse_dev,
BTN_MIDDLE,
potgor &
0x0100)
;
    input_report_key(
amimouse_dev,
BTN_RIGHT,
potgor &
0x0400)
;
    input_sync(
amimouse_dev)
;
//
拷贝到open了的每个client的client->packets[16]环形缓冲区,每个应用程序在调用open时,
mousedev_open都会调用kzalloc来申请一个独立的mousedev_client结构体,然后将该client挂接到mousedev
->client_list链表,最后由mousedev_notify_readers向mousedev->client_list链表
上挂接的每个client拷贝鼠标信息,最后wake_up唤醒read或poll.
=
=
=
=
=
=
=
=
=
=
=
=
drivers\input\mousedev.
c=
=
=
=
=
=
=
=
=
=
=
=
mousedev_read=
>
mousedev_pac


相关文档:

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

Linux 硬链接和软连接区别

转载
(1)软连接可以 跨文件系统 ,硬连接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 。ln aa.txt /root/bb 失败 。
(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接 ......

Linux学习 寻找程序热点(一):gprof

gprof介绍
gprof是GNU profiler工具,存在于binutils工具包。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记 ......

Red Hat enterprise linux 5 mysql安装步骤

一、安装服务器端
(1)、在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-5.0.26-0.i386.rpm
显示如下信息:
warning: MySQL-server-5.0.26-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing……       ##################################### ......

在linux中设置定时启动程序

  Linux中,cron被用来调度重复的任务,linux at命令被用来在指定时间内调度一次性的任务。
  要使用linux at命令,你必须安装了at RPM软件包,并且 atd服务必须在运行。
  可以使用一下命令启动atd服务:
  [root@sso_4 sbin]# /sbin/service atd start
 
  要判定该软件包是否被安装 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号