summaryrefslogtreecommitdiff
path: root/libdde-linux26/contrib/include/asm-generic/cmpxchg.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2013-07-27 22:15:01 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2013-07-27 22:15:01 +0000
commit7996a3d79d55b7f879dfd62e202bbfe2963718d3 (patch)
tree8d9f6759fec4099b9be503c11c7ed174f7204980 /libdde-linux26/contrib/include/asm-generic/cmpxchg.h
parent4fbe7358c7747a9165f776eb19addbb9baf7def2 (diff)
really properly move files
Diffstat (limited to 'libdde-linux26/contrib/include/asm-generic/cmpxchg.h')
-rw-r--r--libdde-linux26/contrib/include/asm-generic/cmpxchg.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/libdde-linux26/contrib/include/asm-generic/cmpxchg.h b/libdde-linux26/contrib/include/asm-generic/cmpxchg.h
new file mode 100644
index 00000000..213ac6e8
--- /dev/null
+++ b/libdde-linux26/contrib/include/asm-generic/cmpxchg.h
@@ -0,0 +1,22 @@
+#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