1 #ifndef __ASM_GENERIC_CMPXCHG_H 2 #define __ASM_GENERIC_CMPXCHG_H 3 4 /* 5 * Generic cmpxchg 6 * 7 * Uses the local cmpxchg. Does not support SMP. 8 */ 9 #ifdef CONFIG_SMP 10 #error "Cannot use generic cmpxchg on SMP" 11 #endif 12 13 /* 14 * Atomic compare and exchange. 15 * 16 * Do not define __HAVE_ARCH_CMPXCHG because we want to use it to check whether 17 * a cmpxchg primitive faster than repeated local irq save/restore exists. 18 */ 19 #define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n)) 20 #define cmpxchg64(ptr, o, n) cmpxchg64_local((ptr), (o), (n)) 21 22 #endif 23