linux-2.6.33/__INIT_WORK()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#d32e4e4b]
#backlinks
*説明 [#t85010c0]
-パス: [[linux-2.6.33/include/linux/workqueue.h]]
-ワークキューで実行する仕事を初期化する。
--[[linux-2.6/ワークキュー]]
**引数 [#x5c3aecb]
-_work
--初期化する対象となる work_struct 型の変数名
--[[linux-2.6.33/work_struct]]
-_func
--work_func_t 型の関数
--[[linux-2.6.33/work_func_t]]
-_onstack
--
**返り値 [#fdaa2be8]
-なし
**参考 [#t39980b4]
*実装 [#c93e4dd0]
**CONFIG_LOCKDEP が有効なとき [#q79da411]
/*
* initialize all of a work item in one go
*
* NOTE! No point in using "atomic_long_set()": using a ...
* assignment of the work data initializer allows the co...
* to generate better code.
*/
#ifdef CONFIG_LOCKDEP
-CONFIG_LOCKDEP が有効のとき
--[[linux-2.6.33/CONFIG_LOCKDEP]]
#define __INIT_WORK(_work, _func, _onstack) \
do { \
static struct lock_class_key __key; \
\
__init_work((_work), _onstack); \
-
--[[linux-2.6.33/__init_work()]]
(_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
-
--[[linux-2.6.33/WORK_DATA_INIT()]]
lockdep_init_map(&(_work)->lockdep_map, #_work, &__key...
-
--[[linux-2.6.33/lockdep_init_map()]]
INIT_LIST_HEAD(&(_work)->entry); \
-
--[[linux-2.6.33/INIT_LIST_HEAD()]]
PREPARE_WORK((_work), (_func)); \
-仕事の中身を設定する。
--[[linux-2.6.33/PREPARE_WORK()]]
} while (0)
**CONFIG_LOCKDEP が無効のとき [#u641d800]
#else
#define __INIT_WORK(_work, _func, _onstack) \
do { \
__init_work((_work), _onstack); \
(_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
INIT_LIST_HEAD(&(_work)->entry); \
PREPARE_WORK((_work), (_func)); \
} while (0)
#endif
*コメント [#k60e13f5]
終了行:
*参照元 [#d32e4e4b]
#backlinks
*説明 [#t85010c0]
-パス: [[linux-2.6.33/include/linux/workqueue.h]]
-ワークキューで実行する仕事を初期化する。
--[[linux-2.6/ワークキュー]]
**引数 [#x5c3aecb]
-_work
--初期化する対象となる work_struct 型の変数名
--[[linux-2.6.33/work_struct]]
-_func
--work_func_t 型の関数
--[[linux-2.6.33/work_func_t]]
-_onstack
--
**返り値 [#fdaa2be8]
-なし
**参考 [#t39980b4]
*実装 [#c93e4dd0]
**CONFIG_LOCKDEP が有効なとき [#q79da411]
/*
* initialize all of a work item in one go
*
* NOTE! No point in using "atomic_long_set()": using a ...
* assignment of the work data initializer allows the co...
* to generate better code.
*/
#ifdef CONFIG_LOCKDEP
-CONFIG_LOCKDEP が有効のとき
--[[linux-2.6.33/CONFIG_LOCKDEP]]
#define __INIT_WORK(_work, _func, _onstack) \
do { \
static struct lock_class_key __key; \
\
__init_work((_work), _onstack); \
-
--[[linux-2.6.33/__init_work()]]
(_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
-
--[[linux-2.6.33/WORK_DATA_INIT()]]
lockdep_init_map(&(_work)->lockdep_map, #_work, &__key...
-
--[[linux-2.6.33/lockdep_init_map()]]
INIT_LIST_HEAD(&(_work)->entry); \
-
--[[linux-2.6.33/INIT_LIST_HEAD()]]
PREPARE_WORK((_work), (_func)); \
-仕事の中身を設定する。
--[[linux-2.6.33/PREPARE_WORK()]]
} while (0)
**CONFIG_LOCKDEP が無効のとき [#u641d800]
#else
#define __INIT_WORK(_work, _func, _onstack) \
do { \
__init_work((_work), _onstack); \
(_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
INIT_LIST_HEAD(&(_work)->entry); \
PREPARE_WORK((_work), (_func)); \
} while (0)
#endif
*コメント [#k60e13f5]
ページ名: