Searched refs:__cmpxchg (Results 1 - 2 of 2) sorted by relevance

/bionic/libc/kernel/arch-mips/asm/
H A Dcmpxchg.h25 #define __cmpxchg(ptr, old, new, barrier) ({ __typeof__(ptr) __ptr = (ptr); __typeof__(*(ptr)) __old = (old); __typeof__(*(ptr)) __new = (new); __typeof__(*(ptr)) __res = 0; barrier; switch (sizeof(*(__ptr))) { case 4: __res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new); break; case 8: if (sizeof(long) == 8) { __res = __cmpxchg_asm("lld", "scd", __ptr, __old, __new); break; } default: __cmpxchg_called_with_bad_pointer(); break; } barrier; __res; }) macro
26 #define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_llsc_mb())
27 #define cmpxchg_local(ptr, old, new) __cmpxchg(ptr, old, new, )
/bionic/libc/kernel/arch-x86/asm/
H A Dcmpxchg_32.h31 #define cmpxchg(ptr,o,n) ({ __typeof__(*(ptr)) __ret; if (likely(boot_cpu_data.x86 > 3)) __ret = __cmpxchg((ptr), (unsigned long)(o), (unsigned long)(n), sizeof(*(ptr))); else __ret = cmpxchg_386((ptr), (unsigned long)(o), (unsigned long)(n), sizeof(*(ptr))); __ret; })

Completed in 44 milliseconds