Iput裝置使用分析 1 驅動層面

2021-08-07 10:10:17 字數 1218 閱讀 8454



4. 使用input_device分析

/****************怎樣使用input系統--簡單的分析********************/

static int __init inputdev_init(void)

/*當按鍵值發生變化,要將按鍵值往上報告----比如在中斷處理函式中報告*/

/**dev-->哪個input_dev裝置;code-->按鍵編號key_1/2/3/4; value-->鍵值*/

用函式--input_report_key(struct input_dev *dev, unsigned int code, int value)

/************再來分析input_report_key()****************/

執行線路:input_report_key()-->input_event-->input_handle_event-->input_pass_event ;

static void input_pass_event(struct input_dev *dev,

unsigned int type, unsigned int code, int value)

else if (handler->filter(handle, type, code, value))

filtered = true;}}

}/*********************接著分析evdev_event()************************/

/** pass incoming event to all connected clients.

*/static void evdev_event(struct input_handle *handle,

unsigned int type, unsigned int code, int value)

static void evdev_pass_event(struct evdev_client *client,

struct input_event *event)

while (client->head == client->tail);

spin_unlock(&client->buffer_lock);

if (event->type == ev_syn)

kill_fasync(&client->fasync, sigio, poll_in);

}

裝置驅動基礎1 裝置模型之匯流排,驅動,裝置

kobject,kset是裝置模型的基本結構體,裝置模型使用這兩個結構體來完成裝置的層次關係,但在實際的裝置驅動編寫中,我們基本上用不到kobject,kset這些結構體,是因為這些結構體又被嵌入到更大的結構體中,原因在於kobject,kset結構體只能表徵裝置的層次關係,但是乙個裝置的驅動,並不...

裝置驅動基礎1 裝置模型之匯流排,驅動,裝置

原文 kobject,kset是裝置模型的基本結構體,裝置模型使用這兩個結構體來完成裝置的層次關係,但在實際的裝置驅動編寫中,我們基本上用不到kobject,kset這些結構體,是因為這些結構體又被嵌入到更大的結構體中,原因在於kobject,kset結構體只能表徵裝置的層次關係,但是乙個裝置的驅動...

1裝置驅動簡介

核心劃分 程序管理 記憶體管理 檔案系統 裝置控制 網路1.2.1可載入模組 每塊可以在執行時新增到核心的 被稱為乙個模組。insmod動態連線程式,rmmod程式連線 1.3裝置和模組的分類 三種基本裝置型別 字元模組,塊模組,網路模組。1.4安全問題 在官方的核心發布裡,只有乙個有授權的使用者可...