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安全問題 在官方的核心發布裡,只有乙個有授權的使用者可...