25 #ifndef __MOTR_LIB___SYNC_ATOMIC_H__ 26 #define __MOTR_LIB___SYNC_ATOMIC_H__ 85 __sync_fetch_and_add(&a->
a_value, 1);
97 __sync_fetch_and_sub(&a->
a_value, 1);
126 return __sync_add_and_fetch(&a->
a_value, delta);
144 return __sync_add_and_fetch(&a->
a_value, 1) == 0;
149 return __sync_sub_and_fetch(&a->
a_value, 1) == 0;
155 return __sync_bool_compare_and_swap(loc, oldval, newval);
160 __sync_synchronize();
static bool m0_atomic64_cas(int64_t *loc, int64_t oldval, int64_t newval)
static bool m0_atomic64_inc_and_test(struct m0_atomic64 *a)
static int64_t m0_atomic64_add_return(struct m0_atomic64 *a, int64_t delta)
static void m0_atomic64_sub(struct m0_atomic64 *a, int64_t num)
static void m0_atomic64_set(struct m0_atomic64 *a, int64_t num)
static void m0_atomic64_inc(struct m0_atomic64 *a)
static void m0_atomic64_add(struct m0_atomic64 *a, int64_t num)
static int64_t m0_atomic64_sub_return(struct m0_atomic64 *a, int64_t delta)
static int64_t m0_atomic64_get(const struct m0_atomic64 *a)
static void m0_atomic64_dec(struct m0_atomic64 *a)
static bool m0_atomic64_dec_and_test(struct m0_atomic64 *a)