input子系統五 總結框架

2021-10-04 05:31:30 字數 1506 閱讀 4776

通過前面的學習,我們可以看到輸入子系統可以分為三大塊:input核心層、input handler層、input裝置層

input核心層的主要功能主要有以下幾點:

1、提供函式介面比如:input裝置和input handler的註冊函式

2、申請和維護子系統需要的一些資源:裝置鍊錶和handler鍊錶,以及初始化input子系統的檔案資源

3、最終向使用者空間上報事件

input handler層的功能主要有以下幾點

1、提供輸入裝置和handler的連線函式,當裝置註冊時需要用這個函式來將input_dev和handler連線起來

2、提供事件處理函式,處理和這個handler相連的裝置產生的事件並且上報到input核心層

3、提供使用者空間的操作函式,也就是字元裝置的fops,讓使用者能讀寫裝置

input裝置層的功能主要有以下幾點

1、從底層硬體裝置採集事件資訊

2、將採集到的事件資訊上報至核心層處理

首先input 核心就像乙個民政局,這時我們的 input_dev 呼叫了 input_register_device 說「老子要結婚,你幫我打扮一下,還要給我找個物件」,這時我們的核心層就會先給他打扮一下,準備一些必須的東西,比如能產生同步事件等等,然後就把他放到裝置煉表裡input_dev_list,然後就去找到另外一條鍊錶input_handler_list。

這條鍊錶裡面就是我們的handler,這時我們的核心層就會說「這裡有個小夥子要找物件,不知道符合你們的要求不」,這時handler發話了「我們的要求都寫好了,就放在那個id_table裡面」,這時我們的核心層就找了個手下 input_match_device() 來看看符不符合要求,如果符合就會過來通知handler「精神小伙,不能錯過啊」,這時我們的核心層就會呼叫handler 的 connect 函式來辦一些符合handler鄉俗的結婚儀式比如初始化裝置、鍊錶等等,最後發給他們乙個本子也就是我們的 handle 讓他們都把自己登記在這個本子上並且呼叫 input_register_handle() 註冊結婚,並且這個本子會讓裝置和handler用各自的鍊錶h_list記錄下來,以後有什麼事就可以通過這個本子找到對方。

有的同學可能注意到了,鍊錶是可以儲存一串資料的,那這個本子(handle)是不是有很多本,沒錯,核心中的明證局實行的是多夫多妻制,只要符合要求都可以結婚,但是乙個本子(handle)只可以記錄一對,不能記錄多對,你沒看到乙個結婚證幾個人公用的吧?

從這以後裝置和handler就愉快的在一起了,裝置要開始搞事了,他出去賺錢(收集事件),然後他就呼叫 input_event() 去民政局(input核心)把這些錢存起來,但是明證局不認識他賺的錢,這些錢必須通過他媳婦的手之後才能存起來,這時我們的結婚證(handle)就起作用了,他拿到input裝置的h_list乙個個找來handler,讓他們來處理裝置賺來的錢,這時就會呼叫handler的event函式,將我們裝置賺來的錢轉化成標準樣式,然後儲存起來,通知使用者來讀取。

水平有限,只能編到這裡了!!!!!

input子系統框架

input子系統的框架 input子系統分為三個部分 1.input核心層 2.input device 3.input handler input核心層的任務是1.建立主裝置號 2.建立file operation結構體 3.註冊 裝置4.準備入口 出口 其中input準備的file operat...

Linux的input輸入子系統 總體框架

一 input輸入子系統總體框架 linux輸入子系統將輸入驅動抽象為三層 裝置驅動層 核心層 事件處理層。裝置驅動層 將底層的硬體輸入事件轉化為統一事件形式,向輸入核心 input core 匯報。核心層 承上啟下。為驅動提供裝置和驅動註冊等操作的函式介面。事件處理層 和使用者層互動,提供裝置的r...

input子系統五 多點上報協議

multi touch protocol.txt abs mt position x x 0 abs mt position y y 0 syn mt report abs mt position x x 1 abs mt position y y 1 syn mt report syn repor...