input 子系统 实例应用

较好帖子:https://blog.csdn.net/luckywang1103/article/details/42324229

https://blog.csdn.net/zhangxizhicn/article/details/6642062

 

一、input子系统简介

1、Input驱动程序是linux输入设备的驱动程序,分成游戏杆(joystick)、鼠标(mouse和mice)、事件设备(event)。其中事件驱动程序是目前通用的驱动程序,可支持键盘、鼠标、触摸屏等多种输入设备。

2、input驱动程序的主设备号是13、次设备号的分布如下:

joystick游戏杆:0~16

mouse鼠标: 32~62

mice鼠标: 63

事件设备: 64~95

3、主要的结构体

Input_device:代表着具体的输入设备,他直接从硬件中读取数据,并以事件的形式转发

Handler:代表接收某一类事件的上层接口,对应于一类事件设备文件

Handle:用于将input_device和handler连接起来,对应于某个具体的设备文件。

Client:对应于用户程序对文件的访问接口,每open一次事件驱动,就创建一个client

 

Handler:struct input_handler *input_table[8],最多有8中input驱动,比如/dev/input/eventX和/dev/input/mouseX就是两种常用的input驱动。

Handle:以evdev.c为例,根据次设备号取值范围64-95,可以分别生成input/event0、input/event1,一直到input/event31共32个设备文件。每个设备文件对应一个handle

Client:每个设备文件又可以同时对应多个client,当有多个应用程序同时调用设备文件时,他们会从不同的client中取数据。

 

二、input子系统架构

input子系统由驱动层drivers,输入子系统核心层input core,事件处理层event handler组成。

驱动层并不创建文件节点,他只负责将采集到的数据通过input.c提供的函数input_event向上一层汇报。而各个事件驱动则分别将他们感兴趣的事件信息提取出来,通过文件节点传给用户空间。

一个输入事件,通过输入设备发给

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简书-乡村码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值