*参照元 [#xa191693]
#backlinks

*説明 [#a2ed564d]
-パス: [[linux-2.6.25/block/blk-core.c]]

-指定したリクエストキューの plug(栓をすること)を解除する。
--blk_stop_queue で停止させたリクエストキューは unplug_device では
再開しない。blk_start_queue を使うこと。
--リクエストキューへのロックを保持し、カレント CPU の割り込みを
禁止した状態で呼び出すこと。


**引数 [#v015586b]
-struct request_queue *q
--unplug(栓を取り去ること)するリクエストキューを指定する。
--[[linux-2.6.25/request_queue]]

**返り値 [#z99a05f1]
-なし

**参考 [#s71ac17c]
-なし


*実装 [#ia660202]
 /*
  * remove the plug and let it rip..
  */
 void __generic_unplug_device(struct request_queue *q)
 {
         if (unlikely(blk_queue_stopped(q)))
                 return;
-キューが停止状態ならば何もしない。
--[[linux-2.6.25/blk_queue_stopped()]]

         if (!blk_remove_plug(q))
                 return;
-plug フラグをクリアする。既にクリアされていたら何もせず終了する。
--[[linux-2.6.25/blk_remove_plug()]]

         q->request_fn(q);
-リクエスト関数(デバイスドライバの実装者が登録する)を呼び出す。
--blk_init_queue_node で初期化される。
---[[linux-2.6.25/blk_init_queue_node()]]

 }
 EXPORT_SYMBOL(__generic_unplug_device);
-関数をエクスポートする。
--[[linux-2.6.25/EXPORT_SYMBOL()]]


*コメント [#x21436e5]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS