#include <libkern/OSAtomic.h>
#define OSAtomicAddIntPtr OSAtomicAdd32 |
#define OSAtomicCastIntPtr | ( | p | ) | reinterpret_cast<int32_t *>(const_cast<AtomicWord *>(p)) |
atomicops-internals-macosx.h の 53 行で定義されています。
参照元 Acquire_CompareAndSwap(), AtomicExchange(), AtomicIncrement(), と CompareAndSwap().
#define OSAtomicCompareAndSwapIntPtr OSAtomicCompareAndSwap32 |
#define OSAtomicCompareAndSwapIntPtrBarrier OSAtomicCompareAndSwap32Barrier |
typedef int32_t Atomic32 |
atomicops-internals-macosx.h の 41 行で定義されています。
typedef intptr_t AtomicWord |
atomicops-internals-macosx.h の 42 行で定義されています。
Atomic32 Acquire_CompareAndSwap | ( | volatile Atomic32 * | ptr, | |
Atomic32 | old_value, | |||
Atomic32 | new_value | |||
) | [inline] |
atomicops-internals-macosx.h の 170 行で定義されています。
AtomicWord Acquire_CompareAndSwap | ( | volatile AtomicWord * | ptr, | |
AtomicWord | old_value, | |||
AtomicWord | new_value | |||
) | [inline] |
atomicops-internals-macosx.h の 93 行で定義されています。
参照先 OSAtomicCastIntPtr, と OSAtomicCompareAndSwapIntPtrBarrier.
参照元 SpinLock::Lock(), Release_CompareAndSwap(), と SpinLock::SlowLock().
AtomicWord Acquire_Load | ( | volatile const AtomicWord * | ptr | ) | [inline] |
void Acquire_Store | ( | volatile AtomicWord * | ptr, | |
AtomicWord | value | |||
) | [inline] |
atomicops-internals-macosx.h の 156 行で定義されています。
AtomicWord AtomicExchange | ( | volatile AtomicWord * | ptr, | |
AtomicWord | new_value | |||
) | [inline] |
atomicops-internals-macosx.h の 78 行で定義されています。
参照先 OSAtomicCastIntPtr, と OSAtomicCompareAndSwapIntPtr.
参照元 Acquire_Store(), と MemoryBarrier().
atomicops-internals-macosx.h の 166 行で定義されています。
AtomicWord AtomicIncrement | ( | volatile AtomicWord * | ptr, | |
AtomicWord | increment | |||
) | [inline] |
Atomic32 CompareAndSwap | ( | volatile Atomic32 * | ptr, | |
Atomic32 | old_value, | |||
Atomic32 | new_value | |||
) | [inline] |
atomicops-internals-macosx.h の 142 行で定義されています。
AtomicWord CompareAndSwap | ( | volatile AtomicWord * | ptr, | |
AtomicWord | old_value, | |||
AtomicWord | new_value | |||
) | [inline] |
atomicops-internals-macosx.h の 64 行で定義されています。
void MemoryBarrier | ( | ) | [inline] |
atomicops-internals-macosx.h の 60 行で定義されています。
参照元 Acquire_Load(), Acquire_Store(), Release_Load(), と Release_Store().
AtomicWord Release_CompareAndSwap | ( | volatile AtomicWord * | ptr, | |
AtomicWord | old_value, | |||
AtomicWord | new_value | |||
) | [inline] |
AtomicWord Release_Load | ( | volatile const AtomicWord * | ptr | ) | [inline] |
void Release_Store | ( | volatile AtomicWord * | ptr, | |
AtomicWord | value | |||
) | [inline] |