__arch_xchg
_val_ = __arch_xchg(_p_, _val_); \
(__typeof__(*(ptr)))__arch_xchg((unsigned long)(x), (ptr), \
__arch_xchg##sfx(unsigned long x, volatile void *ptr, int size) \
__arch_xchg##sfx((__force unsigned long)(x), (ptr), \
#define arch_xchg(ptr, v) ((__typeof__(*(ptr)))__arch_xchg((unsigned long)(v), (ptr), \
__arch_xchg((ptr), (unsigned long)(x), sizeof(*(ptr))); \
#define __percpu_xchg __arch_xchg
#define arch_xchg(ptr,x) ({(__typeof__(*(ptr)))__arch_xchg((unsigned long)(x),(ptr),sizeof(*(ptr)));})
__arch_xchg((ptr), (unsigned long)(x), sizeof(*(ptr))); \
__arch_xchg(volatile void *ptr, unsigned long with, int size)
(__typeof__(*(ptr))) __arch_xchg((ptr), \
__arch_xchg((unsigned long)_x_, (ptr), sizeof(*(ptr))); \
__arch_xchg(".w" swap_sfx, prepend, swap_append, \
__arch_xchg(".d" swap_sfx, prepend, swap_append, \
(__typeof__(*(ptr)))__arch_xchg((unsigned long)(ptr), \
((__typeof__(*(ptr)))__arch_xchg((ptr),(unsigned long)(x), sizeof(*(ptr))))
#define arch_xchg(ptr,x) ({(__typeof__(*(ptr)))__arch_xchg((unsigned long)(x),(ptr),sizeof(*(ptr)));})
__arch_xchg((unsigned long)(x), (ptr), sizeof(*(ptr))); \
((__typeof__(*(ptr)))__arch_xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))