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