#ifndef _ARM_ATOMIC_H #ifdef __ghs__ #pragma ghs startnomisra #endif #define _ARM_ATOMIC_H #include #if defined(__ARMV7_IS) #define _ATOMIC8_FENCE_USES_EXCHANGE // Even ARMv8 AArch32 is not single copy atomic for uint64_t #if defined(__LL_BIT) && (__LL_BIT >= 64) && !defined(__ARMV7M_IS) && \ defined(__ghs_alignment) && (__ghs_alignment >= 8) && \ (!defined(__GHS_DTRACE) || defined(__GHS_ATOMIC_LIBRARY)) #define _ATOMIC_MAXBYTES_LOCK_FREE 8 #else #define _ATOMIC_MAXBYTES_LOCK_FREE 4 #endif /* __LL_BIT */ #else #define __OUT_OF_LINE_ATOMICS #endif /* __ARMV7_IS */ #ifdef __ghs__ #pragma ghs endnomisra #endif #endif /* _ARM_ATOMIC_H */