|
|
typedef | _Atomic (_Bool) atomic_bool |
|
typedef | _Atomic (char) atomic_char |
|
typedef | _Atomic (signed char) atomic_schar |
|
typedef | _Atomic (unsigned char) atomic_uchar |
|
typedef | _Atomic (short) atomic_short |
|
typedef | _Atomic (unsigned short) atomic_ushort |
|
typedef | _Atomic (int) atomic_int |
|
typedef | _Atomic (unsigned int) atomic_uint |
|
typedef | _Atomic (long) atomic_long |
|
typedef | _Atomic (unsigned long) atomic_ulong |
|
typedef | _Atomic (long long) atomic_llong |
|
typedef | _Atomic (unsigned long long) atomic_ullong |
|
typedef | _Atomic (int_least8_t) atomic_int_least8_t |
|
typedef | _Atomic (uint_least8_t) atomic_uint_least8_t |
|
typedef | _Atomic (int_least16_t) atomic_int_least16_t |
|
typedef | _Atomic (uint_least16_t) atomic_uint_least16_t |
|
typedef | _Atomic (int_least32_t) atomic_int_least32_t |
|
typedef | _Atomic (uint_least32_t) atomic_uint_least32_t |
|
typedef | _Atomic (int_least64_t) atomic_int_least64_t |
|
typedef | _Atomic (uint_least64_t) atomic_uint_least64_t |
|
typedef | _Atomic (int_fast8_t) atomic_int_fast8_t |
|
typedef | _Atomic (uint_fast8_t) atomic_uint_fast8_t |
|
typedef | _Atomic (int_fast16_t) atomic_int_fast16_t |
|
typedef | _Atomic (uint_fast16_t) atomic_uint_fast16_t |
|
typedef | _Atomic (int_fast32_t) atomic_int_fast32_t |
|
typedef | _Atomic (uint_fast32_t) atomic_uint_fast32_t |
|
typedef | _Atomic (int_fast64_t) atomic_int_fast64_t |
|
typedef | _Atomic (uint_fast64_t) atomic_uint_fast64_t |
|
typedef | _Atomic (intptr_t) atomic_intptr_t |
|
typedef | _Atomic (uintptr_t) atomic_uintptr_t |
|
typedef | _Atomic (size_t) atomic_size_t |
|
typedef | _Atomic (ptrdiff_t) atomic_ptrdiff_t |
This file implements the C11 and C++23 C atomics interfaces.
On targets without hardware atomics, these will all lower to calls into the atomics shared library. You must link either atomics or atomics_fixed (if you use only fixed-width atomics) into your firmware image.
WARNING: The C++ atomics interface is more efficient for non-primitive types but is not guaranteed to be interoperable with the C version. Interoperable code should use only primitive types in atomics.
Definition in file stdatomic.h.