- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#kf6251cf]
#backlinks
*説明 [#a427fc4a]
-パス: 複数あり
--SMP 無効の場合: [[linux-2.6.33/include/linux/spinlock_types_up.h]]
--arm 版: [[linux-2.6.33/arch_spinlock_t(arm)]]
--x86 版: [[linux-2.6.33/arch_spinlock_t(x86)]]
-スピンロックのアーキテクチャ依存部分
--スピンロックの実現方法はアーキテクチャにより異なる。
**参考 [#u8fcc820]
*実装 [#n4337411]
** SMP 無効の場合 [#ab5e8f8b]
#ifdef CONFIG_DEBUG_SPINLOCK
-スピンロックのデバッグ機能が無効の場合
--[[linux-2.6.33/CONFIG_DEBUG_SPINLOCK]]
typedef struct {
volatile unsigned int slock;
} arch_spinlock_t;
-ロックカウントのみの構造体
--ロックカウントが 0 ならロック状態、1ならアンロック状態
--本来、SMP が無効ならカーネル内でスピンロックしても何も行わない。
つまりロックする必要がないのだが、デバッグのためにロックカウントを持つ。
#else
-スピンロックのデバッグ機能が無効の場合
typedef struct { } arch_spinlock_t;
-空の構造体
#endif
** SMP 有効の場合 [#nf88a45e]
-各アーキテクチャのページを参照ください。
*コメント [#n0a5ac6f]