博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
输入子系统
阅读量:6247 次
发布时间:2019-06-22

本文共 779 字,大约阅读时间需要 2 分钟。

hot3.png

输入子系统,顾名思义这本身是大神撸的一个系统。这个系统它不仅把输入设备底层驱动的共性部分(比如注册设备,open、write等)编写成一个大集合 以供调用,而且把与底层相匹配的处理事件程序也完成了。所以你只需要用这些集合把相对应的底层驱动设置好后注册进系统就可以了,这样不仅省去了很多事而且 保护了内核的统一。

首先我们先设置好相应的驱动(这其中最主要还是设置input_dev这个结构体和set_bit()等函数),然后注册。当输入事件发生时(按下 鼠标、点开显示屏),内核通过(input_report_...)函数向输入子系统报告发生的事件(其中这个函数最主要的部分还是 input_event函数),然后通过输入子系统匹配到相应的处理事件中去,而通过这个处理事件函数我们就可以连接到上层的应用中去,这就是大致的过程 了。

通过这个过程知道事件驱动一部分,输入子系统本身一部分和底层驱动三部分组成了输入子系统。而和上层有关的函数无非就是 open,write.read.close等,和底层有关的无非就是寄存器的操作等。这些在输入子系统其实同样适用,不过对输入子系统这个要更简单,因 为在事件处理部分我们的linux大神已经帮你完成了,你只需要把相应的底层驱动匹配上去就行,所以我们要做得就是完成底层驱动的部分,但是呢,对底层驱 动大神们怕你撸的还是不够规范所以也把一些简单的接口给你,你只需要直接调用就可以了。。说是输入子系统,但我已经把这么明显的分离分层思想已经暴露出来 了。我们把整个系统分层为上层应用----下层驱动(这就是分层)然后又把下层驱动分离为事件驱动和设备驱动(这就是分离)。

这只是输入子系统的主要部分,其他的部分一样。。

一个例程:

转载于:https://my.oschina.net/u/2241389/blog/679337

你可能感兴趣的文章
svn解决与优化帮助
查看>>
SQL update select结合语句详解及应用
查看>>
[转]阿里要走102年,阿里的工程师能走多远呢?
查看>>
《算法导论》读书笔记之第15章 动态规划—最长公共子序列
查看>>
从$a_n=f(n)$的角度理解数列中的表达式$a_{n+1}=\frac{k}{a_n}$
查看>>
Redis以及Redis的php扩展安装无错版
查看>>
总结性博客作业
查看>>
Windows Phone 8初学者开发—第11部分:设置SounBoard应用程序
查看>>
欧拉图和哈密顿图
查看>>
解线性方程组
查看>>
Python:pandas之DataFrame常用操作
查看>>
Appium移动自动化测试之—基于java的iOS环境搭建
查看>>
NOIP前的刷题记录
查看>>
洛谷P1973 [NOI2011]Noi嘉年华(决策单调性)
查看>>
书签(Bookmarks)
查看>>
Java 信号量 Semaphore 介绍
查看>>
Ubuntu常用软件安装与使用
查看>>
Anroid开发中常用快捷键
查看>>
RecyclerView分隔线定制
查看>>
文本处理(CSS,JS)
查看>>