Lines Matching refs:v
74 static inline int atomic_read(const atomic_t *v) in atomic_read() argument
80 : "=d" (c) : "Q" (v->counter)); in atomic_read()
84 static inline void atomic_set(atomic_t *v, int i) in atomic_set() argument
88 : "=Q" (v->counter) : "d" (i)); in atomic_set()
91 static inline int atomic_add_return(int i, atomic_t *v) in atomic_add_return() argument
93 return __ATOMIC_LOOP(v, i, __ATOMIC_ADD, __ATOMIC_BARRIER) + i; in atomic_add_return()
96 static inline void atomic_add(int i, atomic_t *v) in atomic_add() argument
102 : "+Q" (v->counter) in atomic_add()
108 __ATOMIC_LOOP(v, i, __ATOMIC_ADD, __ATOMIC_NO_BARRIER); in atomic_add()
123 static inline void atomic_##op(int i, atomic_t *v) \
125 __ATOMIC_LOOP(v, i, __ATOMIC_##OP, __ATOMIC_NO_BARRIER); \
134 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) in ATOMIC_OP() argument
136 static inline int atomic_cmpxchg(atomic_t *v, int old, int new) in ATOMIC_OP()
140 : "+d" (old), "+Q" (v->counter) in ATOMIC_OP()
146 static inline int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
149 c = atomic_read(v); in __atomic_add_unless()
153 old = atomic_cmpxchg(v, c, c + a); in __atomic_add_unless()
217 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
223 : "=d" (c) : "Q" (v->counter)); in atomic64_read()
227 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
231 : "=Q" (v->counter) : "d" (i)); in atomic64_set()
234 static inline long long atomic64_add_return(long long i, atomic64_t *v) in atomic64_add_return() argument
236 return __ATOMIC64_LOOP(v, i, __ATOMIC64_ADD, __ATOMIC64_BARRIER) + i; in atomic64_add_return()
239 static inline void atomic64_add(long long i, atomic64_t *v) in atomic64_add() argument
245 : "+Q" (v->counter) in atomic64_add()
251 __ATOMIC64_LOOP(v, i, __ATOMIC64_ADD, __ATOMIC64_NO_BARRIER); in atomic64_add()
254 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) argument
256 static inline long long atomic64_cmpxchg(atomic64_t *v, in atomic64_cmpxchg() argument
261 : "+d" (old), "+Q" (v->counter) in atomic64_cmpxchg()
268 static inline void atomic64_##op(long i, atomic64_t *v) \
270 __ATOMIC64_LOOP(v, i, __ATOMIC64_##OP, __ATOMIC64_NO_BARRIER); \
280 static inline int atomic64_add_unless(atomic64_t *v, long long i, long long u) in ATOMIC64_OP()
284 c = atomic64_read(v); in ATOMIC64_OP()
288 old = atomic64_cmpxchg(v, c, c + i); in ATOMIC64_OP()
296 static inline long long atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
300 c = atomic64_read(v); in atomic64_dec_if_positive()
305 old = atomic64_cmpxchg((v), c, dec); in atomic64_dec_if_positive()
323 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) argument