1 #ifndef BOOST_DETAIL_ATOMIC_LINUX_ARM_HPP 2 #define BOOST_DETAIL_ATOMIC_LINUX_ARM_HPP 36 #define BOOST_ATOMIC_CHAR_LOCK_FREE 2 37 #define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2 38 #define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2 39 #define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2 40 #define BOOST_ATOMIC_SHORT_LOCK_FREE 2 41 #define BOOST_ATOMIC_INT_LOCK_FREE 2 42 #define BOOST_ATOMIC_LONG_LOCK_FREE 2 43 #define BOOST_ATOMIC_LLONG_LOCK_FREE 0 44 #define BOOST_ATOMIC_ADDRESS_LOCK_FREE 2 45 #define BOOST_ATOMIC_BOOL_LOCK_FREE 2 54 void (*kernel_dmb)(void) = (
void (*)(void)) 0xffff0fa0;
106 typedef T (*kernel_cmpxchg32_t)(T oldval, T newval,
volatile T * ptr);
108 if (((kernel_cmpxchg32_t) 0xffff0fc0)(expected, desired, ptr) == 0) {
119 #define BOOST_ATOMIC_THREAD_FENCE 2 133 #define BOOST_ATOMIC_SIGNAL_FENCE 2 137 __asm__ __volatile__ (
"" :::
"memory");
static void platform_fence_before_store(memory_order order)
static void atomic_signal_fence(memory_order)
static void platform_fence_after_load(memory_order order)
static void atomic_thread_fence(memory_order order)
static void platform_fence_after_store(memory_order order)
static void platform_fence_after(memory_order order)
static void arm_barrier(void)
bool platform_cmpxchg32(T &expected, T desired, volatile T *ptr)
static void platform_fence_before(memory_order order)