clang API Documentation
Go to the source code of this file.
Classes | |
struct | atomic_flag |
Defines | |
#define | ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE |
#define | ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE |
#define | ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE |
#define | ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE |
#define | ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE |
#define | ATOMIC_SHORT_T_LOCK_FREE __GCC_ATOMIC_SHORT_T_LOCK_FREE |
#define | ATOMIC_INT_T_LOCK_FREE __GCC_ATOMIC_INT_T_LOCK_FREE |
#define | ATOMIC_LONG_T_LOCK_FREE __GCC_ATOMIC_LONG_T_LOCK_FREE |
#define | ATOMIC_LLONG_T_LOCK_FREE __GCC_ATOMIC_LLONG_T_LOCK_FREE |
#define | ATOMIC_POINTER_T_LOCK_FREE __GCC_ATOMIC_POINTER_T_LOCK_FREE |
#define | ATOMIC_VAR_INIT(value) (value) |
#define | atomic_init __c11_atomic_init |
#define | kill_dependency(y) (y) |
#define | atomic_thread_fence(order) __c11_atomic_thread_fence(order) |
#define | atomic_signal_fence(order) __c11_atomic_signal_fence(order) |
#define | atomic_is_lock_free(obj) __c11_atomic_is_lock_free(sizeof(*(obj))) |
#define | atomic_store(object, desired) __c11_atomic_store(object, desired, __ATOMIC_SEQ_CST) |
#define | atomic_store_explicit __c11_atomic_store |
#define | atomic_load(object) __c11_atomic_load(object, __ATOMIC_SEQ_CST) |
#define | atomic_load_explicit __c11_atomic_load |
#define | atomic_exchange(object, desired) __c11_atomic_exchange(object, desired, __ATOMIC_SEQ_CST) |
#define | atomic_exchange_explicit __c11_atomic_exchange |
#define | atomic_compare_exchange_strong(object, expected, desired) __c11_atomic_compare_exchange_strong(object, expected, desired, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) |
#define | atomic_compare_exchange_strong_explicit __c11_atomic_compare_exchange_strong |
#define | atomic_compare_exchange_weak(object, expected, desired) __c11_atomic_compare_exchange_weak(object, expected, desired, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) |
#define | atomic_compare_exchange_weak_explicit __c11_atomic_compare_exchange_weak |
#define | atomic_fetch_add(object, operand) __c11_atomic_fetch_add(object, operand, __ATOMIC_SEQ_CST) |
#define | atomic_fetch_add_explicit __c11_atomic_fetch_add |
#define | atomic_fetch_sub(object, operand) __c11_atomic_fetch_sub(object, operand, __ATOMIC_SEQ_CST) |
#define | atomic_fetch_sub_explicit __c11_atomic_fetch_sub |
#define | atomic_fetch_or(object, operand) __c11_atomic_fetch_or(object, operand, __ATOMIC_SEQ_CST) |
#define | atomic_fetch_or_explicit __c11_atomic_fetch_or |
#define | atomic_fetch_xor(object, operand) __c11_atomic_fetch_xor(object, operand, __ATOMIC_SEQ_CST) |
#define | atomic_fetch_xor_explicit __c11_atomic_fetch_xor |
#define | atomic_fetch_and(object, operand) __c11_atomic_fetch_and(object, operand, __ATOMIC_SEQ_CST) |
#define | atomic_fetch_and_explicit __c11_atomic_fetch_and |
#define | ATOMIC_FLAG_INIT { 0 } |
#define | atomic_flag_test_and_set(object) __c11_atomic_exchange(&(object)->_Value, 1, __ATOMIC_SEQ_CST) |
#define | atomic_flag_test_and_set_explicit(object, order) __c11_atomic_exchange(&(object)->_Value, 1, order) |
#define | atomic_flag_clear(object) __c11_atomic_store(&(object)->_Value, 0, __ATOMIC_SEQ_CST) |
#define | atomic_flag_clear_explicit(object, order) __c11_atomic_store(&(object)->_Value, 0, order) |
Typedefs | |
typedef enum memory_order | memory_order |
typedef struct atomic_flag | atomic_flag |
Enumerations | |
enum | memory_order { memory_order_relaxed = __ATOMIC_RELAXED, memory_order_consume = __ATOMIC_CONSUME, memory_order_acquire = __ATOMIC_ACQUIRE, memory_order_release = __ATOMIC_RELEASE, memory_order_acq_rel = __ATOMIC_ACQ_REL, memory_order_seq_cst = __ATOMIC_SEQ_CST } |
Functions | |
void | atomic_thread_fence (memory_order) |
void | atomic_signal_fence (memory_order) |
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 (int) atomic_int |
typedef | _Atomic (long) atomic_long |
typedef | _Atomic (unsigned long long) atomic_ullong |
typedef | _Atomic (uint_least16_t) atomic_char16_t |
typedef | _Atomic (uint_least32_t) atomic_char32_t |
typedef | _Atomic (wchar_t) atomic_wchar_t |
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 (int_least32_t) atomic_int_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 |
typedef | _Atomic (intmax_t) atomic_intmax_t |
typedef | _Atomic (uintmax_t) atomic_uintmax_t |
_Bool | atomic_flag_test_and_set (volatile atomic_flag *) |
_Bool | atomic_flag_test_and_set_explicit (volatile atomic_flag *, memory_order) |
void | atomic_flag_clear (volatile atomic_flag *) |
void | atomic_flag_clear_explicit (volatile atomic_flag *, memory_order) |
#define ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE |
Definition at line 43 of file stdatomic.h.
#define ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE |
Definition at line 45 of file stdatomic.h.
#define ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE |
Definition at line 46 of file stdatomic.h.
#define ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE |
Definition at line 44 of file stdatomic.h.
#define atomic_compare_exchange_strong | ( | object, | |
expected, | |||
desired | |||
) | __c11_atomic_compare_exchange_strong(object, expected, desired, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) |
Definition at line 140 of file stdatomic.h.
#define atomic_compare_exchange_strong_explicit __c11_atomic_compare_exchange_strong |
Definition at line 141 of file stdatomic.h.
#define atomic_compare_exchange_weak | ( | object, | |
expected, | |||
desired | |||
) | __c11_atomic_compare_exchange_weak(object, expected, desired, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) |
Definition at line 143 of file stdatomic.h.
#define atomic_compare_exchange_weak_explicit __c11_atomic_compare_exchange_weak |
Definition at line 144 of file stdatomic.h.
#define atomic_exchange | ( | object, | |
desired | |||
) | __c11_atomic_exchange(object, desired, __ATOMIC_SEQ_CST) |
Definition at line 137 of file stdatomic.h.
#define atomic_exchange_explicit __c11_atomic_exchange |
Definition at line 138 of file stdatomic.h.
#define atomic_fetch_add | ( | object, | |
operand | |||
) | __c11_atomic_fetch_add(object, operand, __ATOMIC_SEQ_CST) |
Definition at line 146 of file stdatomic.h.
#define atomic_fetch_add_explicit __c11_atomic_fetch_add |
Definition at line 147 of file stdatomic.h.
#define atomic_fetch_and | ( | object, | |
operand | |||
) | __c11_atomic_fetch_and(object, operand, __ATOMIC_SEQ_CST) |
Definition at line 158 of file stdatomic.h.
#define atomic_fetch_and_explicit __c11_atomic_fetch_and |
Definition at line 159 of file stdatomic.h.
#define atomic_fetch_or | ( | object, | |
operand | |||
) | __c11_atomic_fetch_or(object, operand, __ATOMIC_SEQ_CST) |
Definition at line 152 of file stdatomic.h.
#define atomic_fetch_or_explicit __c11_atomic_fetch_or |
Definition at line 153 of file stdatomic.h.
#define atomic_fetch_sub | ( | object, | |
operand | |||
) | __c11_atomic_fetch_sub(object, operand, __ATOMIC_SEQ_CST) |
Definition at line 149 of file stdatomic.h.
#define atomic_fetch_sub_explicit __c11_atomic_fetch_sub |
Definition at line 150 of file stdatomic.h.
#define atomic_fetch_xor | ( | object, | |
operand | |||
) | __c11_atomic_fetch_xor(object, operand, __ATOMIC_SEQ_CST) |
Definition at line 155 of file stdatomic.h.
#define atomic_fetch_xor_explicit __c11_atomic_fetch_xor |
Definition at line 156 of file stdatomic.h.
#define atomic_flag_clear | ( | object | ) | __c11_atomic_store(&(object)->_Value, 0, __ATOMIC_SEQ_CST) |
Definition at line 181 of file stdatomic.h.
#define atomic_flag_clear_explicit | ( | object, | |
order | |||
) | __c11_atomic_store(&(object)->_Value, 0, order) |
Definition at line 182 of file stdatomic.h.
#define ATOMIC_FLAG_INIT { 0 } |
Definition at line 165 of file stdatomic.h.
#define atomic_flag_test_and_set | ( | object | ) | __c11_atomic_exchange(&(object)->_Value, 1, __ATOMIC_SEQ_CST) |
Definition at line 178 of file stdatomic.h.
#define atomic_flag_test_and_set_explicit | ( | object, | |
order | |||
) | __c11_atomic_exchange(&(object)->_Value, 1, order) |
Definition at line 179 of file stdatomic.h.
#define atomic_init __c11_atomic_init |
Definition at line 57 of file stdatomic.h.
#define ATOMIC_INT_T_LOCK_FREE __GCC_ATOMIC_INT_T_LOCK_FREE |
Definition at line 49 of file stdatomic.h.
#define atomic_is_lock_free | ( | obj | ) | __c11_atomic_is_lock_free(sizeof(*(obj))) |
Definition at line 83 of file stdatomic.h.
#define ATOMIC_LLONG_T_LOCK_FREE __GCC_ATOMIC_LLONG_T_LOCK_FREE |
Definition at line 51 of file stdatomic.h.
#define atomic_load | ( | object | ) | __c11_atomic_load(object, __ATOMIC_SEQ_CST) |
Definition at line 134 of file stdatomic.h.
#define atomic_load_explicit __c11_atomic_load |
Definition at line 135 of file stdatomic.h.
#define ATOMIC_LONG_T_LOCK_FREE __GCC_ATOMIC_LONG_T_LOCK_FREE |
Definition at line 50 of file stdatomic.h.
#define ATOMIC_POINTER_T_LOCK_FREE __GCC_ATOMIC_POINTER_T_LOCK_FREE |
Definition at line 52 of file stdatomic.h.
#define ATOMIC_SHORT_T_LOCK_FREE __GCC_ATOMIC_SHORT_T_LOCK_FREE |
Definition at line 48 of file stdatomic.h.
#define atomic_signal_fence | ( | order | ) | __c11_atomic_signal_fence(order) |
Definition at line 79 of file stdatomic.h.
#define atomic_store | ( | object, | |
desired | |||
) | __c11_atomic_store(object, desired, __ATOMIC_SEQ_CST) |
Definition at line 131 of file stdatomic.h.
#define atomic_store_explicit __c11_atomic_store |
Definition at line 132 of file stdatomic.h.
#define atomic_thread_fence | ( | order | ) | __c11_atomic_thread_fence(order) |
Definition at line 78 of file stdatomic.h.
#define ATOMIC_VAR_INIT | ( | value | ) | (value) |
Definition at line 56 of file stdatomic.h.
#define ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE |
Definition at line 47 of file stdatomic.h.
#define kill_dependency | ( | y | ) | (y) |
Definition at line 70 of file stdatomic.h.
typedef struct atomic_flag atomic_flag |
typedef enum memory_order memory_order |
enum memory_order |
memory_order_relaxed | |
memory_order_consume | |
memory_order_acquire | |
memory_order_release | |
memory_order_acq_rel | |
memory_order_seq_cst |
Definition at line 61 of file stdatomic.h.
typedef _Atomic | ( | _Bool | ) |
typedef _Atomic | ( | char | ) |
typedef _Atomic | ( | signed | char | ) |
typedef _Atomic | ( | short | ) |
typedef _Atomic | ( | int | ) |
typedef _Atomic | ( | long | ) |
typedef _Atomic | ( | uint_least16_t | ) |
typedef _Atomic | ( | uint_least32_t | ) |
typedef _Atomic | ( | int_least8_t | ) |
typedef _Atomic | ( | uint_least8_t | ) |
typedef _Atomic | ( | int_least16_t | ) |
typedef _Atomic | ( | int_least32_t | ) |
typedef _Atomic | ( | int_least64_t | ) |
typedef _Atomic | ( | uint_least64_t | ) |
typedef _Atomic | ( | int_fast8_t | ) |
typedef _Atomic | ( | uint_fast8_t | ) |
typedef _Atomic | ( | int_fast16_t | ) |
typedef _Atomic | ( | uint_fast16_t | ) |
typedef _Atomic | ( | int_fast32_t | ) |
typedef _Atomic | ( | uint_fast32_t | ) |
typedef _Atomic | ( | int_fast64_t | ) |
typedef _Atomic | ( | uint_fast64_t | ) |
typedef _Atomic | ( | intptr_t | ) |
typedef _Atomic | ( | uintptr_t | ) |
void atomic_flag_clear | ( | volatile atomic_flag * | ) |
void atomic_flag_clear_explicit | ( | volatile atomic_flag * | , |
memory_order | |||
) |
_Bool atomic_flag_test_and_set | ( | volatile atomic_flag * | ) |
_Bool atomic_flag_test_and_set_explicit | ( | volatile atomic_flag * | , |
memory_order | |||
) |
void atomic_signal_fence | ( | memory_order | ) |
void atomic_thread_fence | ( | memory_order | ) |