next up previous
次へ: 課題3 上へ: 割り込みシステムコールの実行 戻る: 課題1

課題2

現在のデバイスドライバを変更する前に、関連するプログラム類を保存しておく。


\begin{boxedminipage}{5cm}
\begin{verbatim}...

現在のドライバの割り込みハンドラ(dio_interrupt_handler)は、カーネ ルログとして単にINTERRUPTとしか出力しないので、どのような種類の割 り込みであるかが分からない。

割り込みステータスを確認して発生した割り込みの種類をカーネルログに出力す るようにドライバを修正しなさい。

例えば、割り込みの種類がSIG1のインタラプトだったら、「I/O資料」を 参考にして、printk("INTERRUPT\n")を次のように書き直せばよい。

    if (status & 0x01)
       printk("SIG1 INTERRUPT\n");

SIG1 INTERRUPTのほかに、SIG2 INTERRUPTSIG3 INTERRUPTSIG4 INTERRUPTTIMER INTERRUPTRSTIN INTERRUPTなどもカーネルログに出力でき るようにすること。

実行するテストプログラムは、課題1と同じものを使う。



MANOME Yoichi 平成18年12月26日