Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
BHハンドラは32種類しかなく、また殆ど予約済みあるためタスクキューという機能が拡張されている。無制限に登録できるBHハンドラのようなものである。一つのBHハンドラのエントリに、複数の処理を登録できるように拡張されている。(TQUEUE_BH番目とIMMEDIATE_BH番目のエントリ)
この機能を利用する場合、各キューに登録する遅延処理要求のパケットは、呼び出し側で用意する必要がある。遅延処理要求のパケットの用意ができたら、あとはqueue_task()関数にてその処理を登録するだけである。
queue_task()関数にて目的のキューに処理を登録できる。登録された処理は、適当な時期に呼び出されるrun_task_queue()により実行される。各キューに登録する遅延処理要求のパケットを呼び出し側で用意しなければならないというわずらわしさはあるが、パケット不足で登録処理が失敗する危険を心配しなくてよい点は優れている。
タスクキューには何種類かあり、目的に合わせて登録する先を選ぶことができる。登録された処理は、上記の図に示したモジュールが呼び出すrun_task_queue()関数により実行される。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:18:45, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー