| #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 | |
| /* | |
| * 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 |