Whamcloud - gitweb
LU-1346 libcfs: cleanup libcfs atomic primitives
[fs/lustre-release.git] / libcfs / include / libcfs / libcfs.h
index 8136fde..72c2cc6 100644 (file)
@@ -92,6 +92,31 @@ static inline int __is_po2(unsigned long long val)
 
 
 /*
+ * - * atomic
+ */
+
+typedef atomic_t cfs_atomic_t;
+
+#define cfs_atomic_read(atom)                atomic_read(atom)
+#define cfs_atomic_inc(atom)                 atomic_inc(atom)
+#define cfs_atomic_inc_and_test(atom)        atomic_inc_and_test(atom)
+#define cfs_atomic_inc_return(atom)          atomic_inc_return(atom)
+#define cfs_atomic_inc_not_zero(atom)        atomic_inc_not_zero(atom)
+#define cfs_atomic_add_unless(atom, a, u)    atomic_add_unless(atom, a, u)
+#define cfs_atomic_dec(atom)                 atomic_dec(atom)
+#define cfs_atomic_dec_and_test(atom)        atomic_dec_and_test(atom)
+#define cfs_atomic_dec_and_lock(atom, lock)  atomic_dec_and_lock(atom, lock)
+#define cfs_atomic_dec_return(atom)          atomic_dec_return(atom)
+#define cfs_atomic_set(atom, value)          atomic_set(atom, value)
+#define cfs_atomic_add(value, atom)          atomic_add(value, atom)
+#define cfs_atomic_add_return(value, atom)   atomic_add_return(value, atom)
+#define cfs_atomic_sub(value, atom)          atomic_sub(value, atom)
+#define cfs_atomic_sub_and_test(value, atom) atomic_sub_and_test(value, atom)
+#define cfs_atomic_sub_return(value, atom)   atomic_sub_return(value, atom)
+#define cfs_atomic_cmpxchg(atom, old, nv)    atomic_cmpxchg(atom, old, nv)
+#define CFS_ATOMIC_INIT(i)                   ATOMIC_INIT(i)
+
+/*
  * Some (nomina odiosa sunt) platforms define NULL as naked 0. This confuses
  * Lustre RETURN(NULL) macro.
  */