26 #ifndef MD_ATOMIC_HPP_
27 #define MD_ATOMIC_HPP_ 1
39 #define __kernel_dmb (*(__kernel_dmb_t *)0xffff0fa0)
52 inline uint32_t
compare_and_swap(
volatile uint32_t *p, uint32_t oldval, uint32_t newval)
54 return __sync_val_compare_and_swap(p, oldval, newval);
67 inline uint64_t
compare_and_swap(
volatile uint64_t *p, uint64_t oldval, uint64_t newval)
96 __asm__ __volatile__ (
"" : : :
"memory");
101 #endif // MD_ATOMIC_HPP_
uint32_t compare_and_swap(volatile uint32_t *p, uint32_t oldval, uint32_t newval)
An atomic compare and swap for 32-bit integer values.
void memory_barrier(void)
A memory barrier.
typedef void(JNICALL *jvmtiEventSingleStep)(jvmtiEnv *jvmti_env
void write_memory_barrier(void)
A write memory barrier.
void instruction_barrier(void)
An instruction barrier.
uint32_t generic_compare_and_swap(volatile uint32_t *p, uint32_t oldval, uint32_t newval)
A generic atomic compare and swap for 32-bit integer values.
void( __kernel_dmb_t)(void)