25 #ifndef __MOTR_LIB_ATOMIC_H__ 26 #define __MOTR_LIB_ATOMIC_H__ 35 # ifdef ENABLE_SYNC_ATOMIC 37 # elif defined (CONFIG_X86_64) 39 # elif defined (CONFIG_AARCH64) 42 # error "Platform is not supported" 133 return m0_atomic64_cas((int64_t *)loc, (int64_t)oldval, (int64_t)newval);
136 #define M0_ATOMIC64_CAS(loc, oldval, newval) \ 138 M0_CASSERT(__builtin_types_compatible_p(typeof(*(loc)), typeof(oldval))); \ 139 M0_CASSERT(__builtin_types_compatible_p(typeof(oldval), typeof(newval))); \ 140 m0_atomic64_cas_ptr((void **)(loc), oldval, newval); \ 146 static inline void m0_mb(
void);
static void m0_atomic64_inc(struct m0_atomic64 *a)
static void m0_atomic64_sub(struct m0_atomic64 *a, int64_t num)
static bool m0_atomic64_cas_ptr(void **loc, void *oldval, void *newval)
static int64_t m0_atomic64_sub_return(struct m0_atomic64 *a, int64_t d)
static bool m0_atomic64_inc_and_test(struct m0_atomic64 *a)
static void m0_atomic64_dec(struct m0_atomic64 *a)
static bool m0_atomic64_cas(int64_t *loc, int64_t oldval, int64_t newval)
static bool m0_atomic64_dec_and_test(struct m0_atomic64 *a)
static int64_t m0_atomic64_get(const struct m0_atomic64 *a)
static void m0_atomic64_add(struct m0_atomic64 *a, int64_t num)
static int64_t m0_atomic64_add_return(struct m0_atomic64 *a, int64_t d)
static void m0_atomic64_set(struct m0_atomic64 *a, int64_t num)