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 #include <asm-generic/cmpxchg-local.h> 14 15 /* 16 * Atomic compare and exchange. 17 * 18 * Do not define __HAVE_ARCH_CMPXCHG because we want to use it to check whether 19 * a cmpxchg primitive faster than repeated local irq save/restore exists. 20 */ 21 #define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n)) 22 #define cmpxchg64(ptr, o, n) cmpxchg64_local((ptr), (o), (n)) 23 24 #endif 25