*参照元 [#p315847b] #backlinks *説明 [#d9497b0e] -パス: [[linux-2.6.33/include/linux/spinlock_types.h]] -スピンロックの実態を初期化する初期化子を返すマクロ。 --コンフィグによって初期化されるメンバは異なるが、 少なくとも raw_lock というメンバをもつ構造体の初期化子を返すマクロ。 --指示付き初期化子は C99 の機能だが、 GCC 拡張でもサポートされているようだ。 --[[linux-2.6.33/arch_spinlock_t]] **引数 [#h99f4a4c] -lockname --初期化するスピンロック変数の名前 **返り値 [#uf47e366] -raw_spinlock_t の指示付き初期化子 **参考 [#ca360288] *実装 [#o2e4b13f] #define __RAW_SPIN_LOCK_INITIALIZER(lockname) \ { \ .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ -スピンロックのアーキテクチャ依存部分の初期化子 --[[linux-2.6.33/__ARCH_SPIN_LOCK_UNLOCKED]] SPIN_DEBUG_INIT(lockname) \ -スピンロックのデバッグに必要なメンバの初期化子 --[[linux-2.6.33/SPIN_DEBUG_INIT()]] SPIN_DEP_MAP_INIT(lockname) } -ロック状態のスピンロックを free してしまうバグを、 検知する機能に必要なメンバの初期化子 --[[linux-2.6.33/SPIN_DEP_MAP_INIT()]] *コメント [#x6bdd2ed]