- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#c3ff55cb]
#backlinks
*注意 [#a15d9286]
-より新しいバージョンがあります。
--[[linux-2.6.33/kblockd_schedule_work()]]
*説明 [#u25e834b]
-パス: [[linux-2.6.25/block/blk-core.c]]
-指定した仕事をワークキューにスケジュールする。ワークキュー内の
関数はいずれカーネルスレッドが実行してくれる。
-何に使っているか?
--リクエストキューの unplug(栓を取りさること)に使う。
--ほかも?
**引数 [#l5901979]
-struct work_struct *work
--スケジュールする仕事を指定する。
--[[linux-2.6.25/work_struct]]
**返り値 [#m6d93ffd]
-int
--キューに追加しようとした仕事が既に登録済みだったときは 0 を返す。
成功すれば 1 を返す。
**参考 [#da048403]
static struct workqueue_struct *kblockd_workqueue;
-
--[[linux-2.6.25/workqueue_struct()]]
-ワークキューに登録した関数はカーネルスレッド上で実行される。
--ユーザコンテキストは存在しない。copy_to_user とかできません。
--内部でスリープ可能である。
--割り込みが許可されている。
*実装 [#r1675863]
int kblockd_schedule_work(struct work_struct *work)
{
return queue_work(kblockd_workqueue, work);
-ブロックデバイス用のワークキューに、
指定された仕事を登録する。
--[[linux-2.6.25/queue_work()]]
--kblockd_workqueue はグローバル変数
}
EXPORT_SYMBOL(kblockd_schedule_work);
-関数をエクスポートする。
--[[linux-2.6.25/EXPORT_SYMBOL()]]
*コメント [#m5297a26]
#comment