VSF Documented
stdatomic.h File Reference

Go to the source code of this file.

Data Structures

struct  atomic_flag
 

Macros

#define ATOMIC_VAR_INIT(__VALUE)
 
#define atomic_init(object, value)
 
#define atomic_store_explicit(object, desired, order)
 
#define atomic_store(object, desired)
 
#define atomic_load_explicit(object, order)
 
#define atomic_load(object)
 
#define atomic_exchange_explicit(object, desired, order)
 
#define atomic_exchange(object, desired)
 
#define atomic_compare_exchange_strong_explicit(object, expected, desired, order_success, order_fail)
 
#define atomic_compare_exchange_strong(object, expected, desired)
 
#define atomic_compare_exchange_weak_explicit(object, expected, desired, order_success, order_fail)
 
#define atomic_compare_exchange_weak(object, expected, desired)
 
#define atomic_fetch_add_explicit(object, operand, order)
 
#define atomic_fetch_add(object, operand)
 
#define atomic_fetch_sub_explicit(object, operand, order)
 
#define atomic_fetch_sub(object, operand)
 
#define atomic_fetch_or_explicit(object, operand, order)
 
#define atomic_fetch_or(object, operand)
 
#define atomic_fetch_xor_explicit(object, operand, order)
 
#define atomic_fetch_xor(object, operand)
 
#define atomic_fetch_and_explicit(object, operand, order)
 
#define atomic_fetch_and(object, operand)
 
#define ATOMIC_FLAG_INIT   { 0 }
 
#define atomic_flag_test_and_set_explicit(__ptr, __mode)
 
#define atomic_flag_test_and_set(__ptr)
 
#define atomic_flag_clear_explicit(__ptr, __mode)
 
#define atomic_flag_clear(__ptr)
 

Typedefs

typedef bool atomic_bool
 
typedef char atomic_char
 
typedef signed char atomic_schar
 
typedef unsigned char atomic_uchar
 
typedef short atomic_short
 
typedef unsigned short atomic_ushort
 
typedef int atomic_int
 
typedef unsigned int atomic_uint
 
typedef long atomic_long
 
typedef unsigned long atomic_ulong
 
typedef long long atomic_llong
 
typedef unsigned long long atomic_ullong
 
typedef uint_least16_t atomic_char16_t
 
typedef uint_least32_t atomic_char32_t
 
typedef wchar_t atomic_wchar_t
 
typedef int_least8_t atomic_int_least8_t
 
typedef uint_least8_t atomic_uint_least8_t
 
typedef int_least16_t atomic_int_least16_t
 
typedef uint_least16_t atomic_uint_least16_t
 
typedef int_least32_t atomic_int_least32_t
 
typedef uint_least32_t atomic_uint_least32_t
 
typedef int_least64_t atomic_int_least64_t
 
typedef uint_least64_t atomic_uint_least64_t
 
typedef int_fast8_t atomic_int_fast8_t
 
typedef uint_fast8_t atomic_uint_fast8_t
 
typedef int_fast16_t atomic_int_fast16_t
 
typedef uint_fast16_t atomic_uint_fast16_t
 
typedef int_fast32_t atomic_int_fast32_t
 
typedef uint_fast32_t atomic_uint_fast32_t
 
typedef int_fast64_t atomic_int_fast64_t
 
typedef uint_fast64_t atomic_uint_fast64_t
 
typedef intptr_t atomic_intptr_t
 
typedef uintptr_t atomic_uintptr_t
 
typedef size_t atomic_size_t
 
typedef ptrdiff_t atomic_ptrdiff_t
 
typedef intmax_t atomic_intmax_t
 
typedef uintmax_t atomic_uintmax_t
 

Enumerations

enum  memory_order {
  memory_order_relaxed ,
  memory_order_consume ,
  memory_order_acquire ,
  memory_order_release ,
  memory_order_acq_rel ,
  memory_order_seq_cst
}
 

Macro Definition Documentation

◆ ATOMIC_VAR_INIT

#define ATOMIC_VAR_INIT ( __VALUE)
Value:
(__VALUE)

◆ atomic_init

#define atomic_init ( object,
value )
Value:
@ memory_order_relaxed
Definition stdatomic.h:58
#define atomic_store_explicit(object, desired, order)
Definition stdatomic.h:71
vk_av_control_value_t value
Definition vsf_audio.h:171

◆ atomic_store_explicit

#define atomic_store_explicit ( object,
desired,
order )
Value:
({ \
*(object) = desired; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
})
uintalu_t vsf_protect_t
Definition vsf_arch_abstraction.h:60
#define vsf_protect_int
Definition vsf_arch_abstraction.h:376
#define VSF_MACRO_SAFE_NAME(__NAME)
Definition vsf_preprocessor.h:32

◆ atomic_store

#define atomic_store ( object,
desired )
Value:
@ memory_order_seq_cst
Definition stdatomic.h:63

◆ atomic_load_explicit

#define atomic_load_explicit ( object,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(tmp); \
VSF_MACRO_SAFE_NAME(tmp) = *(object); \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(tmp); \
})

◆ atomic_load

#define atomic_load ( object)
Value:
#define atomic_load_explicit(object, order)
Definition stdatomic.h:80

◆ atomic_exchange_explicit

#define atomic_exchange_explicit ( object,
desired,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(tmp); \
VSF_MACRO_SAFE_NAME(tmp) = *(object); \
*(object) = desired; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(tmp); \
})

◆ atomic_exchange

#define atomic_exchange ( object,
desired )
Value:
#define atomic_exchange_explicit(object, desired, order)
Definition stdatomic.h:91

◆ atomic_compare_exchange_strong_explicit

#define atomic_compare_exchange_strong_explicit ( object,
expected,
desired,
order_success,
order_fail )
Value:
({ \
if (*(object) == *(expected)) { \
*(object) = desired; \
} else { \
*(expected) = *(object); \
} \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
})

◆ atomic_compare_exchange_strong

#define atomic_compare_exchange_strong ( object,
expected,
desired )
Value:
#define atomic_compare_exchange_strong_explicit(object, expected, desired, order_success, order_fail)
Definition stdatomic.h:103

◆ atomic_compare_exchange_weak_explicit

#define atomic_compare_exchange_weak_explicit ( object,
expected,
desired,
order_success,
order_fail )
Value:
({ \
if (*(object) == *(expected)) { \
*(object) = desired; \
} else { \
*(expected) = *(object); \
} \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
})

◆ atomic_compare_exchange_weak

#define atomic_compare_exchange_weak ( object,
expected,
desired )
Value:
#define atomic_compare_exchange_weak_explicit(object, expected, desired, order_success, order_fail)
Definition stdatomic.h:116

◆ atomic_fetch_add_explicit

#define atomic_fetch_add_explicit ( object,
operand,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(__tmp); \
VSF_MACRO_SAFE_NAME(__tmp) = *(object); \
*(object) += operand; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(__tmp); \
})

◆ atomic_fetch_add

#define atomic_fetch_add ( object,
operand )
Value:
#define atomic_fetch_add_explicit(object, operand, order)
Definition stdatomic.h:129

◆ atomic_fetch_sub_explicit

#define atomic_fetch_sub_explicit ( object,
operand,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(tmp); \
VSF_MACRO_SAFE_NAME(tmp) = *(object); \
*(object) -= operand; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(tmp); \
})

◆ atomic_fetch_sub

#define atomic_fetch_sub ( object,
operand )
Value:
#define atomic_fetch_sub_explicit(object, operand, order)
Definition stdatomic.h:141

◆ atomic_fetch_or_explicit

#define atomic_fetch_or_explicit ( object,
operand,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(tmp); \
VSF_MACRO_SAFE_NAME(tmp) = *(object); \
*(object) |= operand; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(tmp); \
})

◆ atomic_fetch_or

#define atomic_fetch_or ( object,
operand )
Value:
#define atomic_fetch_or_explicit(object, operand, order)
Definition stdatomic.h:153

◆ atomic_fetch_xor_explicit

#define atomic_fetch_xor_explicit ( object,
operand,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(tmp); \
VSF_MACRO_SAFE_NAME(tmp) = *(object); \
*(object) ^= operand; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(tmp); \
})

◆ atomic_fetch_xor

#define atomic_fetch_xor ( object,
operand )
Value:
#define atomic_fetch_xor_explicit(object, operand, order)
Definition stdatomic.h:165

◆ atomic_fetch_and_explicit

#define atomic_fetch_and_explicit ( object,
operand,
order )
Value:
({ \
typeof(*object) VSF_MACRO_SAFE_NAME(tmp); \
VSF_MACRO_SAFE_NAME(tmp) = *(object); \
*(object) &= operand; \
vsf_unprotect_int(VSF_MACRO_SAFE_NAME(protect)); \
VSF_MACRO_SAFE_NAME(tmp); \
})

◆ atomic_fetch_and

#define atomic_fetch_and ( object,
operand )
Value:
#define atomic_fetch_and_explicit(object, operand, order)
Definition stdatomic.h:177

◆ ATOMIC_FLAG_INIT

#define ATOMIC_FLAG_INIT   { 0 }

◆ atomic_flag_test_and_set_explicit

#define atomic_flag_test_and_set_explicit ( __ptr,
__mode )
Value:
atomic_exchange_explicit((__ptr), true, __mode)

◆ atomic_flag_test_and_set

#define atomic_flag_test_and_set ( __ptr)
Value:
#define atomic_flag_test_and_set_explicit(__ptr, __mode)
Definition stdatomic.h:195

◆ atomic_flag_clear_explicit

#define atomic_flag_clear_explicit ( __ptr,
__mode )
Value:
atomic_store_explicit(__ptr, false, __mode)

◆ atomic_flag_clear

#define atomic_flag_clear ( __ptr)
Value:
#define atomic_flag_clear_explicit(__ptr, __mode)
Definition stdatomic.h:200

Typedef Documentation

◆ atomic_bool

typedef bool atomic_bool

◆ atomic_char

typedef char atomic_char

◆ atomic_schar

typedef signed char atomic_schar

◆ atomic_uchar

typedef unsigned char atomic_uchar

◆ atomic_short

typedef short atomic_short

◆ atomic_ushort

typedef unsigned short atomic_ushort

◆ atomic_int

typedef int atomic_int

◆ atomic_uint

typedef unsigned int atomic_uint

◆ atomic_long

typedef long atomic_long

◆ atomic_ulong

typedef unsigned long atomic_ulong

◆ atomic_llong

typedef long long atomic_llong

◆ atomic_ullong

typedef unsigned long long atomic_ullong

◆ atomic_char16_t

◆ atomic_char32_t

◆ atomic_wchar_t

◆ atomic_int_least8_t

◆ atomic_uint_least8_t

◆ atomic_int_least16_t

◆ atomic_uint_least16_t

◆ atomic_int_least32_t

◆ atomic_uint_least32_t

◆ atomic_int_least64_t

◆ atomic_uint_least64_t

◆ atomic_int_fast8_t

◆ atomic_uint_fast8_t

◆ atomic_int_fast16_t

◆ atomic_uint_fast16_t

◆ atomic_int_fast32_t

◆ atomic_uint_fast32_t

◆ atomic_int_fast64_t

◆ atomic_uint_fast64_t

◆ atomic_intptr_t

◆ atomic_uintptr_t

◆ atomic_size_t

◆ atomic_ptrdiff_t

◆ atomic_intmax_t

◆ atomic_uintmax_t

Enumeration Type Documentation

◆ memory_order

Enumerator
memory_order_relaxed 
memory_order_consume 
memory_order_acquire 
memory_order_release 
memory_order_acq_rel 
memory_order_seq_cst 
Generated from commit: vsfteam/vsf@ceb53fd