易截截图软件、单文件、免安装、纯绿色、仅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 Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

Linux学习总结

最近在学习Linux系统。对于要想从事java开发方向的人士来说熟悉Linux系统是有必要的。
我来对自己学习Linux做些总结吧。
1.Linux里的常用指令要会用,比如vi指令,RPM指令,ifconfig指令,netconfig指令,>.<指令,wall指令,rm指令,mkdir,rmdir指令,useradd,userdel,groupadd,groupdel指令,more指令,chkco ......

(转载)linux下loop device的使用

http://en.wikipedia.org/wiki/Loop_device
In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loopback file interface) is a pseudo-device that makes a file accessible as a block device.
所谓loop device指的就是拿文件来模拟块设备。
Albert Woodhull语:"The Linux loop device can ......

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上搭建Java开发环境

现在准备的项目(医疗方面)——
语言:Java6
框架:Struts1.0.2
数据库:MySQL5
WEB服务器:Tomcat6
开发环境:Eclipse3.5
应用服务器:Red Hat Enterprise Edition
开发平台:CentOS 5.4
1.MySQL数据库我直接用“yum -y install mysql-server
”来安装,参考:http://www.centospub.com/mak ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号