参照元†
- 指定した仕事をワークキューにスケジュールする。ワークキュー内の
関数はいずれカーネルスレッドが実行してくれる。
- 何に使っているか?
- リクエストキューの unplug(栓を取りさること)に使う。
- ほかも?
返り値†
- int
- キューに追加しようとした仕事が既に登録済みだったときは 0 を返す。
成功すれば 1 を返す。
static struct workqueue_struct *kblockd_workqueue;
- ワークキューに登録した関数はカーネルスレッド上で実行される。
- ユーザコンテキストは存在しない。copy_to_user とかできません。
- 内部でスリープ可能である。
- 割り込みが許可されている。
int kblockd_schedule_work(struct work_struct *work)
{
return queue_work(kblockd_workqueue, work);
- ブロックデバイス用のワークキューに、
指定された仕事を登録する。
}
EXPORT_SYMBOL(kblockd_schedule_work);
コメント†