Linux

linux核心中input_get_keycode函式的變化(input/input.c)

  • January 30, 2011

我正在為輸入設備建構一個核心模組,我注意到在模組原始碼中,有幾個呼叫input_get_keycode(data->input_dev, scancode, &keycode);當我編譯時,我收到了該原型沒有功能的錯誤。

查看input/input.c原始碼,這是 的定義input_get_keycode

int input_get_keycode(struct input_dev *dev, struct input_keymap_entry *ke)

我試圖在網上查找,我發現了一些關於更改核心以更好地處理大型鍵盤映射的模糊參考,顯然這個函式被更改為更好地處理這個問題。查看 input/input.c 中的舊源,該input_get_keycode函式定義為

int input_get_keycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode)

我的問題是,這是什麼時候改變的。有改動說明嗎?我正在ubuntu natty從 git 建構核心,這是我對2.6.37-rc3分支的理解。

這是 ubuntu 特有的變化嗎?或者這是主線核心的變化。我也有maverick來自 git 的原始碼,它具有舊式(3 輸入)功能。

如果您正在處理核心模組,我非常建議您獲取 git 樹。顯然,Linus 的樹是強制性的——我也得到了穩定的樹。由於您正在使用 Ubuntu,因此我會檢查他們是否有一棵樹,其中包含您可以從中提取的更改。

使用 git 樹,我能夠檢查master並執行git blame drivers/input/input.c以查看函式簽名的input_get_keycode最後一次更改是在 commit 中8613e4c2

Runninggit show 8613e4c2為我提供了該更改的送出消息(您想要的註釋)以及實現更改的更新檔。我可以看到更改是在 2010-09-09 進行的。

啟動gitk(一個圖形化的 git 查看器)並告訴它去那個送出我可以看到送出在 v2.6.37-rc1 之前,告訴我它被合併到那個版本中。跟隨分支直到 Linus 合併它,我可以看到它在 2010 年 10 月 26 日的送出 3a99c631 中合併。

這都是主線,沒有看 Ubuntu 更新檔,所以看起來變化與 Ubuntu 無關。

引用自:https://unix.stackexchange.com/questions/6662