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)

のような感じらしいです。


ちなみに以前ちょっぱったSONYBRAVIAの公開ソースコードをのぞいてみたら、上記の部分はMakefileの実行で差し込んでいるように見えました。ホントかなぁ?
おまけに、カーネルのtarballの中にlinux/version.hらしきファイルが見当たらないし。何でだろう?


・・・カーネルMakefileみたらlinux/version.hを生成して差し込んでますね。ビルド結果にしか存在しないのか。そーなってるのか。

*1:b) << 8) + (c