*参照元 [#jab1722e]
#backlinks

*説明 [#ye94266f]
-パス: [[linux-2.6.33/include/linux/smp_lock.h]]

-BKL(Big Kernel Lock)がロック状態かどうかを返す。


**引数 [#r0ba8d82]
-なし


**返り値 [#bcfc896a]
-int
--ロック状態なら 0以外、ロックされていない状態なら 0 


**参考 [#t6803084]
-BKL 関連の関数
--[[linux-2.6.33/kernel_locked()]]
--[[linux-2.6.33/lock_kernel()]]
--[[linux-2.6.33/unlock_kernel()]]


*実装 [#d7d10ebd]
**BKL(Big Kernel Lock)有効の場合 [#t87ae910]
 #ifdef CONFIG_LOCK_KERNEL
-BKL 有効の場合
--[[linux-2.6.33/CONFIG_LOCK_KERNEL]]

 (略)
 #define kernel_locked()		(current->lock_depth >= 0)
 
-ロックカウントが 1 以上ならロック状態、
そうでなければロックされていない状態。
-ロックカウントをみてロック状態を判断する。
--0 以上: ロック状態
--負: ロックされていない状態
--[[linux-2.6.33/current(global)]]

 (略)




**BKL(Big Kernel Lock)無効の場合  [#ha82ce29]
 #else
-BKL 無効の場合

 (略)
 #define kernel_locked()				1
 
-常にロック状態であると返す。

 #endif /* CONFIG_LOCK_KERNEL */

*コメント [#q95402c5]

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