linux核心中input_get_keycode函式的變化(input/input.c)
我正在為輸入設備建構一個核心模組,我注意到在模組原始碼中,有幾個呼叫
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
。Running
git show 8613e4c2
為我提供了該更改的送出消息(您想要的註釋)以及實現更改的更新檔。我可以看到更改是在 2010-09-09 進行的。啟動
gitk
(一個圖形化的 git 查看器)並告訴它去那個送出我可以看到送出在 v2.6.37-rc1 之前,告訴我它被合併到那個版本中。跟隨分支直到 Linus 合併它,我可以看到它在 2010 年 10 月 26 日的送出 3a99c631 中合併。這都是主線,沒有看 Ubuntu 更新檔,所以看起來變化與 Ubuntu 無關。