入力デバイス用のカーネルモジュールを構築していますが、モジュールソースコードに複数の呼び出しがあり、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
古いスタイル(3つの入力)機能を備えたgitのソースコードもあります。
ベストアンサー1
カーネルモジュールを開発する場合は、gitツリーを取得することをお勧めします。明らかに、Linusの木は必須です。安定した木も手に入れました。 Ubuntuを使用しているので、インポートできる変更があるツリーがあることを確認します。
Gitツリーを使用してチェックアウトしmaster
て実行し、コミットで関数シグネチャが最後に変更された時刻をgit blame drivers/input/input.c
確認できました。input_get_keycode
8613e4c2
。
実行すると、git show 8613e4c2
その変更(必要な説明)のコミットメッセージとその変更を実装するパッチが提供されます。 2010-09-09に変更されたことを確認できます。
(グラフィックgit viewer)を起動しgitk
てそのコミットに移動するように指示すると、コミットがv2.6.37-rc1より前にそのバージョンにマージされたことがわかります。 Linusがマージされるまでこのブランチを追跡すると、2010年10月26日にコミット3a99c631にマージされたことがわかります。
これはUbuntuパッチを見なくてもすべてメインラインなので、この変更はUbuntuとは関係がないようです。