atomicops-internals-macosx.h

#include <libkern/OSAtomic.h>

atomicops-internals-macosx.hのインクルード依存関係図

ソースコードを見る。

マクロ定義

#define OSAtomicCastIntPtr(p)   reinterpret_cast<int32_t *>(const_cast<AtomicWord *>(p))
#define OSAtomicCompareAndSwapIntPtr   OSAtomicCompareAndSwap32
#define OSAtomicAddIntPtr   OSAtomicAdd32
#define OSAtomicCompareAndSwapIntPtrBarrier   OSAtomicCompareAndSwap32Barrier

型定義

typedef int32_t Atomic32
typedef intptr_t AtomicWord

関数

void MemoryBarrier ()
AtomicWord CompareAndSwap (volatile AtomicWord *ptr, AtomicWord old_value, AtomicWord new_value)
AtomicWord AtomicExchange (volatile AtomicWord *ptr, AtomicWord new_value)
AtomicWord AtomicIncrement (volatile AtomicWord *ptr, AtomicWord increment)
AtomicWord Acquire_CompareAndSwap (volatile AtomicWord *ptr, AtomicWord old_value, AtomicWord new_value)
AtomicWord Release_CompareAndSwap (volatile AtomicWord *ptr, AtomicWord old_value, AtomicWord new_value)
void Acquire_Store (volatile AtomicWord *ptr, AtomicWord value)
void Release_Store (volatile AtomicWord *ptr, AtomicWord value)
AtomicWord Acquire_Load (volatile const AtomicWord *ptr)
AtomicWord Release_Load (volatile const AtomicWord *ptr)
Atomic32 CompareAndSwap (volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Atomic32 AtomicExchange (volatile Atomic32 *ptr, Atomic32 new_value)
Atomic32 AtomicIncrement (volatile Atomic32 *ptr, Atomic32 increment)
Atomic32 Acquire_CompareAndSwap (volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
Atomic32 Release_CompareAndSwap (volatile Atomic32 *ptr, Atomic32 old_value, Atomic32 new_value)
void Acquire_Store (volatile Atomic32 *ptr, Atomic32 value)
void Release_Store (volatile Atomic32 *ptr, Atomic32 value)
Atomic32 Acquire_Load (volatile const Atomic32 *ptr)
Atomic32 Release_Load (volatile const Atomic32 *ptr)


マクロ定義

#define OSAtomicAddIntPtr   OSAtomicAdd32

atomicops-internals-macosx.h56 行で定義されています。

参照元 AtomicIncrement().

#define OSAtomicCastIntPtr (  )     reinterpret_cast<int32_t *>(const_cast<AtomicWord *>(p))

#define OSAtomicCompareAndSwapIntPtr   OSAtomicCompareAndSwap32

atomicops-internals-macosx.h55 行で定義されています。

参照元 AtomicExchange(), と CompareAndSwap().

#define OSAtomicCompareAndSwapIntPtrBarrier   OSAtomicCompareAndSwap32Barrier

atomicops-internals-macosx.h57 行で定義されています。

参照元 Acquire_CompareAndSwap().


型定義

typedef int32_t Atomic32

atomicops-internals-macosx.h41 行で定義されています。

typedef intptr_t AtomicWord

atomicops-internals-macosx.h42 行で定義されています。


関数

Atomic32 Acquire_CompareAndSwap ( volatile Atomic32 ptr,
Atomic32  old_value,
Atomic32  new_value 
) [inline]

atomicops-internals-macosx.h170 行で定義されています。

AtomicWord Acquire_CompareAndSwap ( volatile AtomicWord ptr,
AtomicWord  old_value,
AtomicWord  new_value 
) [inline]

Atomic32 Acquire_Load ( volatile const Atomic32 ptr  )  [inline]

atomicops-internals-macosx.h201 行で定義されています。

参照先 MemoryBarrier().

AtomicWord Acquire_Load ( volatile const AtomicWord ptr  )  [inline]

atomicops-internals-macosx.h126 行で定義されています。

参照先 MemoryBarrier().

void Acquire_Store ( volatile Atomic32 ptr,
Atomic32  value 
) [inline]

atomicops-internals-macosx.h191 行で定義されています。

参照先 MemoryBarrier().

void Acquire_Store ( volatile AtomicWord ptr,
AtomicWord  value 
) [inline]

atomicops-internals-macosx.h116 行で定義されています。

参照先 MemoryBarrier().

Atomic32 AtomicExchange ( volatile Atomic32 ptr,
Atomic32  new_value 
) [inline]

atomicops-internals-macosx.h156 行で定義されています。

AtomicWord AtomicExchange ( volatile AtomicWord ptr,
AtomicWord  new_value 
) [inline]

atomicops-internals-macosx.h78 行で定義されています。

参照先 OSAtomicCastIntPtr, と OSAtomicCompareAndSwapIntPtr.

参照元 Acquire_Store(), と MemoryBarrier().

Atomic32 AtomicIncrement ( volatile Atomic32 ptr,
Atomic32  increment 
) [inline]

atomicops-internals-macosx.h166 行で定義されています。

AtomicWord AtomicIncrement ( volatile AtomicWord ptr,
AtomicWord  increment 
) [inline]

atomicops-internals-macosx.h89 行で定義されています。

参照先 OSAtomicAddIntPtr, と OSAtomicCastIntPtr.

Atomic32 CompareAndSwap ( volatile Atomic32 ptr,
Atomic32  old_value,
Atomic32  new_value 
) [inline]

atomicops-internals-macosx.h142 行で定義されています。

AtomicWord CompareAndSwap ( volatile AtomicWord ptr,
AtomicWord  old_value,
AtomicWord  new_value 
) [inline]

void MemoryBarrier (  )  [inline]

atomicops-internals-macosx.h60 行で定義されています。

参照元 Acquire_Load(), Acquire_Store(), Release_Load(), と Release_Store().

Atomic32 Release_CompareAndSwap ( volatile Atomic32 ptr,
Atomic32  old_value,
Atomic32  new_value 
) [inline]

atomicops-internals-macosx.h184 行で定義されています。

参照先 Acquire_CompareAndSwap().

AtomicWord Release_CompareAndSwap ( volatile AtomicWord ptr,
AtomicWord  old_value,
AtomicWord  new_value 
) [inline]

atomicops-internals-macosx.h107 行で定義されています。

参照先 Acquire_CompareAndSwap().

Atomic32 Release_Load ( volatile const Atomic32 ptr  )  [inline]

atomicops-internals-macosx.h207 行で定義されています。

参照先 MemoryBarrier().

AtomicWord Release_Load ( volatile const AtomicWord ptr  )  [inline]

atomicops-internals-macosx.h132 行で定義されています。

参照先 MemoryBarrier().

void Release_Store ( volatile Atomic32 ptr,
Atomic32  value 
) [inline]

atomicops-internals-macosx.h196 行で定義されています。

参照先 MemoryBarrier().

void Release_Store ( volatile AtomicWord ptr,
AtomicWord  value 
) [inline]

atomicops-internals-macosx.h121 行で定義されています。

参照先 MemoryBarrier().

参照元 SpinLock::Unlock().


Thu Oct 8 05:01:10 2009に生成されました。  doxygen 1.5.6