易截截图软件、单文件、免安装、纯绿色、仅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上配置Samba

装了一个VMWARE,其中运行的是LINUX-FC11。为了能够同Window Host共享文件,打算在Linux上装Samba服务。之前也试着用VMWARE Tools,不过没能成功。说我的FC11有问题。可能是编译环境或者版本的问题。于是用Samba。
用Samba的GUI界面设置了共享目录。可是Windows还是找不到我的共享目录。接着按网上的提示,打开了防火墙将S ......

用vsFTPd 架设Linux FTP 服务器


用vsFTPd来架设FTP服务器,vsFTPd服务器是目前最好的FTP服务器软件,优点是体积小,可定制强,效率高,高安全性。
1。查看是否安装了vsFTPd软件
[root@linuxsir001 root]# rpm -qa | grep vsftpd
如果没有任何显示,说明没有把vsFTPd安装上,如果出现的是下面的这样的提示,就证明已经安装上了。
[root@linuxsir001 ro ......

在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号