对 linux 内核中 input_get_keycode 函数的更改 (input/input.c)

Fal*_*rri 4 linux drivers kernel kernel-modules

我正在为输入设备构建内核模块,我注意到在模块源代码中,有几个对 的调用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)
Run Code Online (Sandbox Code Playgroud)

我试图在网上查看,我发现了一些晦涩的参考资料,以更改内核以更好地处理大型键盘映射,显然该功能已更改以更好地处理该问题。查看来自 input/input.c 的旧源,该input_get_keycode函数被定义为

int input_get_keycode(struct input_dev *dev, unsigned int scancode, unsigned int *keycode)
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是什么时候改变的。有没有关于更改的注释?我正在ubuntu natty从 git构建内核,这是我对2.6.37-rc3分支的理解。

这是特定于 ubuntu 的更改吗?或者这是主线内核的变化。我也有maverick来自 git的源代码,它具有旧式(3 输入)功能。

cam*_*amh 6

如果您正在处理内核模块,我非常建议您使用 git 树。显然,Linus 的树是强制性的——我也得到了稳定的树。由于您正在使用 Ubuntu,我会检查他们是否有一棵树,您可以从中提取更改。

使用 git 树,我能够检出master并运行git blame drivers/input/input.c以查看 for 的函数签名input_get_keycode最后在 commit 中更改8613e4c2

运行git show 8613e4c2为我提供了该更改的提交消息(您想要的注释)以及实现该更改的补丁。我可以看到更改是在 2010-09-09 进行的。

启动gitk(图形化 git 查看器)并告诉它转到该提交,我可以看到该提交在 v2.6.37-rc1 之前,告诉我它已合并到该版本中。沿着分支直到 Linus 合并它,我可以看到它在 2010-10-26 的提交 3a99c631 中被合并。

这都是没有看 Ubuntu 补丁的主线,所以看起来这个变化与 Ubuntu 无关。