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