arch_xchg
arch_xchg((ptr), (x)); \
arch_xchg((ptr), (x)); \
return arch_xchg(&v->counter, new);
return arch_xchg(&v->counter, new);
return arch_xchg(&v->counter, new);
return arch_xchg(&v->counter, new);
pir_vals[i] = arch_xchg(&pir[i], 0);
#ifndef arch_xchg
#if defined(arch_xchg)
#define raw_xchg arch_xchg
__atomic_op_fence(arch_xchg, __VA_ARGS__)
__atomic_op_acquire(arch_xchg, __VA_ARGS__)
#elif defined(arch_xchg)
#define raw_xchg_acquire arch_xchg
__atomic_op_release(arch_xchg, __VA_ARGS__)
#elif defined(arch_xchg)
#define raw_xchg_release arch_xchg
#elif defined(arch_xchg)
#define raw_xchg_relaxed arch_xchg