linux-2.6.33/preempt_disable()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#l1bb4bb4]
#backlinks
*説明 [#p8671691]
-パス: [[linux-2.6.33/include/linux/preempt.h]]
-プリエンプションカウントをインクリメントし、
プリエンプションを禁止状態にする。
--プリエンプションカウント 0 でプリエンプション許可、
1 以上でプリエンプション禁止
--つまり preempt_disable()/preempt_enable() はネスト可能。
ネストの例
----------
preempt_disable(); プリエンプションカウント 0(許可) ->...
...
preempt_disable(); プリエンプションカウント 1(禁止) ->...
...
...
preempt_enable(); プリエンプションカウント 2(禁止) ->...
...
preempt_enable(); プリエンプションカウント 1(禁止) ->...
--[[linux-2.6.33/preempt_enable()]]
**引数 [#faa7661b]
-なし
**返り値 [#kf7ddbbb]
-なし
**参考 [#nbab6734]
*実装 [#q66d597f]
#ifdef CONFIG_PREEMPT
-プリエンプトが有効の場合
--[[linux-2.6.33/CONFIG_PREEMPT]]
(略)
#define preempt_disable() \
do { \
inc_preempt_count(); \
-プリエンプションのカウントを 1 上げる。
--[[linux-2.6.33/inc_preempt_count()]]
barrier(); \
-メモリバリア。
--バリアの後に続く命令にて、
変更後のプリエンプションカウントを読み出せることを保証す...
--[[linux-2.6.33/barrier()]]
} while (0)
(略)
#else
-プリエンプトが無効の場合
#define preempt_disable() do { } while (0)
-何もしない
(略)
#endif
*コメント [#o7aaaba5]
終了行:
*参照元 [#l1bb4bb4]
#backlinks
*説明 [#p8671691]
-パス: [[linux-2.6.33/include/linux/preempt.h]]
-プリエンプションカウントをインクリメントし、
プリエンプションを禁止状態にする。
--プリエンプションカウント 0 でプリエンプション許可、
1 以上でプリエンプション禁止
--つまり preempt_disable()/preempt_enable() はネスト可能。
ネストの例
----------
preempt_disable(); プリエンプションカウント 0(許可) ->...
...
preempt_disable(); プリエンプションカウント 1(禁止) ->...
...
...
preempt_enable(); プリエンプションカウント 2(禁止) ->...
...
preempt_enable(); プリエンプションカウント 1(禁止) ->...
--[[linux-2.6.33/preempt_enable()]]
**引数 [#faa7661b]
-なし
**返り値 [#kf7ddbbb]
-なし
**参考 [#nbab6734]
*実装 [#q66d597f]
#ifdef CONFIG_PREEMPT
-プリエンプトが有効の場合
--[[linux-2.6.33/CONFIG_PREEMPT]]
(略)
#define preempt_disable() \
do { \
inc_preempt_count(); \
-プリエンプションのカウントを 1 上げる。
--[[linux-2.6.33/inc_preempt_count()]]
barrier(); \
-メモリバリア。
--バリアの後に続く命令にて、
変更後のプリエンプションカウントを読み出せることを保証す...
--[[linux-2.6.33/barrier()]]
} while (0)
(略)
#else
-プリエンプトが無効の場合
#define preempt_disable() do { } while (0)
-何もしない
(略)
#endif
*コメント [#o7aaaba5]
ページ名: