Go to the source code of this file.
◆ AO_CLEAR
| #define AO_CLEAR |
( |
|
addr | ) |
__atomic_clear(addr, __ATOMIC_RELEASE) |
◆ AO_compiler_barrier
| #define AO_compiler_barrier |
( |
| ) |
__atomic_signal_fence(__ATOMIC_SEQ_CST) |
◆ AO_GCC_ATOMIC_TEST_AND_SET
| #define AO_GCC_ATOMIC_TEST_AND_SET |
◆ AO_HAVE_CLEAR
◆ AO_HAVE_nop_full
◆ AO_HAVE_nop_read
◆ AO_HAVE_test_and_set
| #define AO_HAVE_test_and_set |
◆ AO_HAVE_test_and_set_acquire
| #define AO_HAVE_test_and_set_acquire |
◆ AO_HAVE_test_and_set_full
| #define AO_HAVE_test_and_set_full |
◆ AO_HAVE_test_and_set_release
| #define AO_HAVE_test_and_set_release |
◆ AO_nop_full()
Definition at line 79 of file generic.h.
80 {
81
82 __atomic_thread_fence(__ATOMIC_SEQ_CST);
83 }
◆ AO_nop_read()
Definition at line 63 of file generic.h.
64 {
65 __atomic_thread_fence(__ATOMIC_ACQUIRE);
66 }
◆ AO_test_and_set()
Definition at line 96 of file generic.h.
97 {
98 return (
AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_RELAXED);
99 }
◆ AO_test_and_set_acquire()
Definition at line 103 of file generic.h.
104 {
105 return (
AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_ACQUIRE);
106 }
◆ AO_test_and_set_full()
Definition at line 117 of file generic.h.
118 {
119 return (
AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_SEQ_CST);
120 }
◆ AO_test_and_set_release()
Definition at line 110 of file generic.h.
111 {
112 return (
AO_TS_VAL_t)__atomic_test_and_set(addr, __ATOMIC_RELEASE);
113 }