Linuxドライバ掘削中?
デバイスドライバ作成の際のバージョン照合などにつかう向き合いに、linux/version.hではマクロが定義されているそうです。
- UTS_RELEASE
- LINUX_VERSION_CODE
- KERNEL_VERSION(major, minor, release)
それぞれ、UTS_RELEASEは文字列(e.g. "2.6.10")、LINUX_VERSION_CODEは数値(e.g. 132618(i.e. 0x02060a))
さらに
#define KERNEL_VERSION(a,b,c) (((a) << 16) + *1 KERNEL_VERSION(2,6,10)
のような感じらしいです。
ちなみに以前ちょっぱったSONYのBRAVIAの公開ソースコードをのぞいてみたら、上記の部分はMakefileの実行で差し込んでいるように見えました。ホントかなぁ?
おまけに、カーネルのtarballの中にlinux/version.hらしきファイルが見当たらないし。何でだろう?
・・・カーネルのMakefileみたらlinux/version.hを生成して差し込んでますね。ビルド結果にしか存在しないのか。そーなってるのか。
*1:b) << 8) + (c