Modular C
Platform features used by module C◼atomic

Some features are recovered or pre-computed specifically for the target platform by looking into the C include files: More...

+ Collaboration diagram for Platform features used by module C◼atomic:

Macros

#define C◼atomic◼memory_order_relaxed   0
 The platform specific value memory_order_relaxed, if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼memory_order_consume   1
 The platform specific value memory_order_consume, if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼memory_order_acquire   2
 The platform specific value memory_order_acquire, if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼memory_order_release   3
 The platform specific value memory_order_release, if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼memory_order_acq_rel   4
 The platform specific value memory_order_acq_rel, if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼memory_order_seq_cst   5
 The platform specific value memory_order_seq_cst, if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼INTERNAL_LOCK   0
 The platform specific value sizeof(_Atomic struct { double b[23]; })!=sizeof(struct { double b[23]; }), if ATOMIC_VAR_INIT is defined. More...
 
#define C◼atomic◼CAS8_   1
 The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 is defined. More...
 
#define C◼atomic◼CAS16_   1
 The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 is defined. More...
 
#define C◼atomic◼CAS32_   1
 The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 is defined. More...
 
#define C◼atomic◼CAS64_   1
 The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 is defined. More...
 
#define C◼atomic◼CAS128_   1
 The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 is defined. More...
 
#define C◼atomic◼UINT8_LOCK_FREE   2
 The platform specific value atomic_is_lock_free(&(uint8_t){ 0 }) ? 2 : 1, if UINT8_MAX is defined. More...
 
#define C◼atomic◼UINT16_LOCK_FREE   2
 The platform specific value atomic_is_lock_free(&(uint16_t){ 0 }) ? 2 : 1, if UINT16_MAX is defined. More...
 
#define C◼atomic◼UINT32_LOCK_FREE   2
 The platform specific value atomic_is_lock_free(&(uint32_t){ 0 }) ? 2 : 1, if UINT32_MAX is defined. More...
 
#define C◼atomic◼UINT64_LOCK_FREE   2
 The platform specific value atomic_is_lock_free(&(uint64_t){ 0 }) ? 2 : 1, if UINT64_MAX is defined. More...
 
#define C◼atomic◼WCHAR_T_LOCK_FREE   2
 The platform specific value ATOMIC_WCHAR_T_LOCK_FREE. More...
 
#define C◼atomic◼CHAR16_T_LOCK_FREE   2
 The platform specific value ATOMIC_CHAR16_T_LOCK_FREE. More...
 
#define C◼atomic◼CHAR_LOCK_FREE   2
 The platform specific value ATOMIC_CHAR_LOCK_FREE. More...
 
#define C◼atomic◼LLONG_LOCK_FREE   2
 The platform specific value ATOMIC_LLONG_LOCK_FREE. More...
 
#define C◼atomic◼SHORT_LOCK_FREE   2
 The platform specific value ATOMIC_SHORT_LOCK_FREE. More...
 
#define C◼atomic◼BOOL_LOCK_FREE   2
 The platform specific value ATOMIC_BOOL_LOCK_FREE. More...
 
#define C◼atomic◼CHAR32_T_LOCK_FREE   2
 The platform specific value ATOMIC_CHAR32_T_LOCK_FREE. More...
 
#define C◼atomic◼INT_LOCK_FREE   2
 The platform specific value ATOMIC_INT_LOCK_FREE. More...
 
#define C◼atomic◼POINTER_LOCK_FREE   2
 The platform specific value ATOMIC_POINTER_LOCK_FREE. More...
 
#define C◼atomic◼LONG_LOCK_FREE   2
 The platform specific value ATOMIC_LONG_LOCK_FREE. More...
 
#define C◼atomic◼INIT_(VALUE)   (VALUE)
 This copies platform define ATOMIC_VAR_INIT. More...
 
#define C◼atomic◼kill_dependency(Y)   __extension__ ({ __auto_type __kill_dependency_tmp = (Y); __kill_dependency_tmp; })
 This copies platform define kill_dependency. More...
 

Detailed Description

Some features are recovered or pre-computed specifically for the target platform by looking into the C include files:

Macro Definition Documentation

§ C◼atomic◼BOOL_LOCK_FREE

#define C◼atomic◼BOOL_LOCK_FREE   2

The platform specific value ATOMIC_BOOL_LOCK_FREE.

Definition at line 165 of file C-atomic.c.

§ C◼atomic◼CAS128_

#define C◼atomic◼CAS128_   1

The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 is defined.

§ C◼atomic◼CAS16_

#define C◼atomic◼CAS16_   1

The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 is defined.

§ C◼atomic◼CAS32_

#define C◼atomic◼CAS32_   1

The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 is defined.

§ C◼atomic◼CAS64_

#define C◼atomic◼CAS64_   1

The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 is defined.

§ C◼atomic◼CAS8_

#define C◼atomic◼CAS8_   1

The platform specific value __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 is defined.

§ C◼atomic◼CHAR16_T_LOCK_FREE

#define C◼atomic◼CHAR16_T_LOCK_FREE   2

The platform specific value ATOMIC_CHAR16_T_LOCK_FREE.

Definition at line 153 of file C-atomic.c.

§ C◼atomic◼CHAR32_T_LOCK_FREE

#define C◼atomic◼CHAR32_T_LOCK_FREE   2

The platform specific value ATOMIC_CHAR32_T_LOCK_FREE.

Definition at line 168 of file C-atomic.c.

§ C◼atomic◼CHAR_LOCK_FREE

#define C◼atomic◼CHAR_LOCK_FREE   2

The platform specific value ATOMIC_CHAR_LOCK_FREE.

Definition at line 156 of file C-atomic.c.

§ C◼atomic◼INIT_

#define C◼atomic◼INIT_ (   VALUE)    (VALUE)

This copies platform define ATOMIC_VAR_INIT.

§ C◼atomic◼INT_LOCK_FREE

#define C◼atomic◼INT_LOCK_FREE   2

The platform specific value ATOMIC_INT_LOCK_FREE.

Definition at line 171 of file C-atomic.c.

§ C◼atomic◼INTERNAL_LOCK

#define C◼atomic◼INTERNAL_LOCK   0

The platform specific value sizeof(_Atomic struct { double b[23]; })!=sizeof(struct { double b[23]; }), if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼kill_dependency

#define C◼atomic◼kill_dependency (   Y)    __extension__ ({ __auto_type __kill_dependency_tmp = (Y); __kill_dependency_tmp; })

This copies platform define kill_dependency.

§ C◼atomic◼LLONG_LOCK_FREE

#define C◼atomic◼LLONG_LOCK_FREE   2

The platform specific value ATOMIC_LLONG_LOCK_FREE.

Definition at line 159 of file C-atomic.c.

§ C◼atomic◼LONG_LOCK_FREE

#define C◼atomic◼LONG_LOCK_FREE   2

The platform specific value ATOMIC_LONG_LOCK_FREE.

Definition at line 177 of file C-atomic.c.

§ C◼atomic◼memory_order_acq_rel

#define C◼atomic◼memory_order_acq_rel   4

The platform specific value memory_order_acq_rel, if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼memory_order_acquire

#define C◼atomic◼memory_order_acquire   2

The platform specific value memory_order_acquire, if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼memory_order_consume

#define C◼atomic◼memory_order_consume   1

The platform specific value memory_order_consume, if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼memory_order_relaxed

#define C◼atomic◼memory_order_relaxed   0

The platform specific value memory_order_relaxed, if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼memory_order_release

#define C◼atomic◼memory_order_release   3

The platform specific value memory_order_release, if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼memory_order_seq_cst

#define C◼atomic◼memory_order_seq_cst   5

The platform specific value memory_order_seq_cst, if ATOMIC_VAR_INIT is defined.

§ C◼atomic◼POINTER_LOCK_FREE

#define C◼atomic◼POINTER_LOCK_FREE   2

The platform specific value ATOMIC_POINTER_LOCK_FREE.

Definition at line 174 of file C-atomic.c.

§ C◼atomic◼SHORT_LOCK_FREE

#define C◼atomic◼SHORT_LOCK_FREE   2

The platform specific value ATOMIC_SHORT_LOCK_FREE.

Definition at line 162 of file C-atomic.c.

§ C◼atomic◼UINT16_LOCK_FREE

#define C◼atomic◼UINT16_LOCK_FREE   2

The platform specific value atomic_is_lock_free(&(uint16_t){ 0 }) ? 2 : 1, if UINT16_MAX is defined.

§ C◼atomic◼UINT32_LOCK_FREE

#define C◼atomic◼UINT32_LOCK_FREE   2

The platform specific value atomic_is_lock_free(&(uint32_t){ 0 }) ? 2 : 1, if UINT32_MAX is defined.

§ C◼atomic◼UINT64_LOCK_FREE

#define C◼atomic◼UINT64_LOCK_FREE   2

The platform specific value atomic_is_lock_free(&(uint64_t){ 0 }) ? 2 : 1, if UINT64_MAX is defined.

§ C◼atomic◼UINT8_LOCK_FREE

#define C◼atomic◼UINT8_LOCK_FREE   2

The platform specific value atomic_is_lock_free(&(uint8_t){ 0 }) ? 2 : 1, if UINT8_MAX is defined.

§ C◼atomic◼WCHAR_T_LOCK_FREE

#define C◼atomic◼WCHAR_T_LOCK_FREE   2

The platform specific value ATOMIC_WCHAR_T_LOCK_FREE.

Definition at line 150 of file C-atomic.c.