*参照元 [#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]