高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1100
IOLog and Interrupt Context


Q: IOLog に関する文献には、「IOLog は割り込みコンテキストからは呼び出すべきではない」と書かれています。

どのようにすれば自分が割り込みコンテキストで実行しているかどうかがわかるのでしょうか?

A:IOKit で割り込み時の実行について心配する必要がある唯一の場所は、FIOFilterInterruptEventSource::filterInterruptEventSource に渡す Filter 関数の中です。

Filter 関数は、一次(ハードウェア)割り込み時に呼び出されます。この時には、システムのほとんどが利用できないので IOLog を呼び出すことはできません。

一方、IOFilterInterruptEventSource を作成したときに渡した Action 関数は、イベントソースがアタッチされているワークループを対象に実行されます。したがって、Action 関数内で IOLog を呼び出すことができます。Action 関数は、Filter 関数が true を返す場合にだけ呼び出されることを憶えておきましょう。


[2002 年 2 月 13 日]