2009-12-01から1ヶ月間の記事一覧

container_of という大変便利なマクロ関数の存在を知った

今更ながら、include/linux/kernel.h container_of が相当使えるマクロ関数だと気づきました. 一見わかりにくいのですが、なんと「変数が入っている構造体へのポインタ」をコンパイル時に計算してくれるのです.container_of を用いることで、API に縛られず…

clockevents

Linux カーネルには clockevents というフレームワークがあるのだけど、LWN.netの記事を見る限り、どうもハードウェアタイマのドライバを書くためのフレームワークという認識が正しいみたいです. もっとレイヤの高いものだと思っていたんだけど. 話が変わり…

デバッグ用の出力関数

gcc

最近の gcc だと、可変長引数マクロを使っても特に警告を出さないようです. そこで、以下のようなマクロを定義しておくと、デバッグメッセージのON/OFFが手軽にできて便利です. #ifdef __DEBUG__ #define dprintf(fmt,...) \ printf("[%s]%d:" fmt "\n",__FU…

GDB stub on kvm, 復活の巻

kvm

以前qemu+kvmに実装されているGDBStubに関する記事を書いた段階では、kvm に実装されている GDBstub が壊れてしまっていて、使えないという状態になっていました. しかし、本日 git から最新版を落としてきてビルド、動作させたところ、GDBstub が正常に動作…