diff options
Diffstat (limited to 'include/asm-generic/cmpxchg.h')
-rw-r--r-- | include/asm-generic/cmpxchg.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/asm-generic/cmpxchg.h b/include/asm-generic/cmpxchg.h new file mode 100644 index 000000000000..213ac6e8fe39 --- /dev/null +++ b/include/asm-generic/cmpxchg.h | |||
@@ -0,0 +1,22 @@ | |||
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 | ||