6 #ifndef EASTL_ATOMIC_INTERNAL_COMPILER_GCC_THREAD_FENCE_H
7 #define EASTL_ATOMIC_INTERNAL_COMPILER_GCC_THREAD_FENCE_H
9 #if defined(EA_PRAGMA_ONCE_SUPPORTED)
14 #define EASTL_GCC_ATOMIC_THREAD_FENCE(gccMemoryOrder) \
15 __atomic_thread_fence(gccMemoryOrder)
22 #define EASTL_COMPILER_ATOMIC_THREAD_FENCE_RELAXED() \
23 EASTL_GCC_ATOMIC_THREAD_FENCE(__ATOMIC_RELAXED)
25 #define EASTL_COMPILER_ATOMIC_THREAD_FENCE_ACQUIRE() \
26 EASTL_GCC_ATOMIC_THREAD_FENCE(__ATOMIC_ACQUIRE)
28 #define EASTL_COMPILER_ATOMIC_THREAD_FENCE_RELEASE() \
29 EASTL_GCC_ATOMIC_THREAD_FENCE(__ATOMIC_RELEASE)
31 #define EASTL_COMPILER_ATOMIC_THREAD_FENCE_ACQ_REL() \
32 EASTL_GCC_ATOMIC_THREAD_FENCE(__ATOMIC_ACQ_REL)
34 #define EASTL_COMPILER_ATOMIC_THREAD_FENCE_SEQ_CST() \
35 EASTL_GCC_ATOMIC_THREAD_FENCE(__ATOMIC_SEQ_CST)