]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - include/linux/atomic.h
atomic: move atomic_add_unless to generic code
[linux-2.6.git] / include / linux / atomic.h
index 66fed6364122b2f47b78b1cd5fef0fd2f1f53b33..d5e167a6a398366ad0dcb46aaacf13cf8e2b4371 100644 (file)
@@ -2,6 +2,20 @@
 #define _LINUX_ATOMIC_H
 #include <asm/atomic.h>
 
+/**
+ * atomic_add_unless - add unless the number is already a given value
+ * @v: pointer of type atomic_t
+ * @a: the amount to add to v...
+ * @u: ...unless v is equal to u.
+ *
+ * Atomically adds @a to @v, so long as @v was not already @u.
+ * Returns non-zero if @v was not @u, and zero otherwise.
+ */
+static inline int atomic_add_unless(atomic_t *v, int a, int u)
+{
+       return __atomic_add_unless(v, a, u) != u;
+}
+
 /**
  * atomic_inc_not_zero - increment unless the number is zero
  * @v: pointer of type atomic_t