小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Android Event輸入設備驅動

 wanwanstudy 2012-02-13
/*
* J.
* Fri Oct 29,2010
*/
Input驅動程序是Linux輸入設備的驅動程序,分成游戲桿(joystick),鼠標(mouse和mice)
和事件設備(Event queue)3種驅動程序。其中事件驅動程序是目前通用的驅動程序,可支持
鍵盤,鼠標,觸摸屏等多種輸入設備。

Input驅動程序的主設備號是13,3種驅動程序的設備號分配是:
*joystick游戲桿:0~61;
*mouse鼠標:33~62;
*mice鼠標:63;
*事件設備(Event queue):64~95.
實際上,每一種Input設備占用5位,因此每種設備個數(shù)是32個。

Event設備在用戶空間大多使用read,ioctl,poll等文件系統(tǒng)的接口進行操作,read用于讀取
輸入信息,ioctl用于獲取和設置信息,poll調(diào)用可以進行用戶空間的阻塞,當內(nèi)核有按鍵等中斷
時,通過在中斷中喚醒poll的內(nèi)核實現(xiàn),這樣在用戶空間的poll調(diào)用也可以返回。

Event設備在文件系統(tǒng)中的設備節(jié)點為:/dev/input/eventX.
主設備號為13,次設備號遞增生成,為64~95,各個具體的設備在misc,touchscreen,keyboard等
目錄中。

Event輸入驅動的架構如下:



Input驅動程序的頭文件:include/linux/input.h
Input驅動程序的核心和Event部分代碼:
* drivers/input/input.c   核心代碼
* drivers/input/evdev.c   Event部分的實現(xiàn)

input.h中定義了struct input_dev結構,它表示Input驅動程序的各種信息,對于Event
設備分為同步設備,鍵盤,相對設備(鼠標),絕對設備(觸摸屏)等。

Event驅動程序通過Input驅動程序的統(tǒng)一函數(shù)進行注冊:
int __must_check input_register_device(struct input_dev *);

具體的Event驅動程序需要定義struct input_dev結構體,并且通過input_register_device()
函數(shù)進行注冊。

Input設備驅動在內(nèi)核進行menuconfig配置時,配置選項為"Device Drivers" > "Input Device Drivers"

Event驅動程序配置對應的文件是driver/input/Kconfig
其中,Event的配置選項是Event Interface,各個具體設備的接口在各自下面進行支持。

Android中使用Event驅動作為標準的輸入設備,在GUI系統(tǒng)中打開Event驅動程序的設備節(jié)點,
通常的輸入設備是鼠標和觸摸屏。

備: Android由init進程在/dev/input/自動建立Event設備的節(jié)點,被libui庫調(diào)用作為
系統(tǒng)的輸入。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多