Searched refs:__cmpxchg (Results 1 - 2 of 2) sorted by relevance
/bionic/libc/kernel/arch-mips/asm/ |
H A D | cmpxchg.h | 25 #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 D | cmpxchg_32.h | 31 #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