- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#qbaff3d2]
#backlinks
*説明 [#t86c3f3a]
-パス: [[linux-2.6.33/kernel/workqueue.c]]
-ワークキューに仕事を追加する。
**引数 [#pf295645]
-struct workqueue_struct *wq
--
--[[linux-2.6.33/workqueue_struct]]
--struct work_struct *work
--実行する仕事。
--[[linux-2.6.33/work_struct]]
**返り値 [#c2e6d3b9]
-int
--仕事をキューに追加した場合は 1、
キューに追加しなかった場合は 0(既にキューに追加されているなど)
**参考 [#u58dce9c]
*実装 [#p77e2477]
/**
* queue_work_on - queue work on specific cpu
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @work: work to queue
*
* Returns 0 if @work was already on a queue, non-zero otherwise.
*
* We queue the work to a specific CPU, the caller must ensure it
* can't go away.
*/
int
queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work)
{
int ret = 0;
if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) {
-
--[[linux-2.6.33/WORK_STRUCT_PENDING]]
-
--[[linux-2.6.33/work_data_bits()]]
-
--[[linux-2.6.33/test_and_set_bit()]]
BUG_ON(!list_empty(&work->entry));
-
--[[linux-2.6.33/BUG_ON()]]
-
--[[linux-2.6.33/list_empty()]]
__queue_work(wq_per_cpu(wq, cpu), work);
ret = 1;
-
--[[linux-2.6.33/wq_per_cpu()]]
-
--[[linux-2.6.33/__queue_work()]]
}
return ret;
}
EXPORT_SYMBOL_GPL(queue_work_on);
-GPL ライセンスのモジュールにのみシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL_GPL()]]
*コメント [#r6bb2bac]