参照元†
- スピンロックのアーキテクチャ依存部分
- スピンロックの実現方法はアーキテクチャにより異なる。
SMP 無効の場合†
#ifdef CONFIG_DEBUG_SPINLOCK
typedef struct {
volatile unsigned int slock;
} arch_spinlock_t;
- ロックカウントのみの構造体
- ロックカウントが 0 ならロック状態、1ならアンロック状態
- 本来、SMP が無効ならカーネル内でスピンロックしても何も行わない。
つまりロックする必要がないのだが、デバッグのためにロックカウントを持つ。
#else
typedef struct { } arch_spinlock_t;
#endif
コメント†