| #ifndef __ASM_GENERIC_CMPXCHG_H |
| #define __ASM_GENERIC_CMPXCHG_H |
| |
| /* |
| * Generic cmpxchg |
| * |
| * Uses the local cmpxchg. Does not support SMP. |
| */ |
| #ifdef CONFIG_SMP |
| #error "Cannot use generic cmpxchg on SMP" |
| #endif |
| |
| #include <asm-generic/cmpxchg-local.h> |
| |
| /* |
| * Atomic compare and exchange. |
| * |
| * Do not define __HAVE_ARCH_CMPXCHG because we want to use it to check whether |
| * a cmpxchg primitive faster than repeated local irq save/restore exists. |
| */ |
| #define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n)) |
| #define cmpxchg64(ptr, o, n) cmpxchg64_local((ptr), (o), (n)) |
| |
| #endif |