Lines Matching refs:v
30 #define atomic_read(v) ACCESS_ONCE((v)->counter) argument
31 #define atomic_set(v,i) (((v)->counter) = (i)) argument
42 static inline void atomic_##op(int i, atomic_t *v) \
47 prefetchw(&v->counter); \
54 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
55 : "r" (&v->counter), "Ir" (i) \
60 static inline int atomic_##op##_return(int i, atomic_t *v) \
66 prefetchw(&v->counter); \
74 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
75 : "r" (&v->counter), "Ir" (i) \
107 static inline int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
113 prefetchw(&v->counter); in __atomic_add_unless()
124 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter) in __atomic_add_unless()
125 : "r" (&v->counter), "r" (u), "r" (a) in __atomic_add_unless()
141 static inline void atomic_##op(int i, atomic_t *v) \
146 v->counter c_op i; \
151 static inline int atomic_##op##_return(int i, atomic_t *v) \
157 v->counter c_op i; \
158 val = v->counter; \
164 static inline int atomic_cmpxchg(atomic_t *v, int old, int new) in atomic_cmpxchg() argument
170 ret = v->counter; in atomic_cmpxchg()
172 v->counter = new; in atomic_cmpxchg()
178 static inline int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
182 c = atomic_read(v); in __atomic_add_unless()
183 while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c) in __atomic_add_unless()
201 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) argument
203 #define atomic_inc(v) atomic_add(1, v) argument
204 #define atomic_dec(v) atomic_sub(1, v) argument
206 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) argument
207 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) argument
208 #define atomic_inc_return(v) (atomic_add_return(1, v)) argument
209 #define atomic_dec_return(v) (atomic_sub_return(1, v)) argument
210 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0) argument
212 #define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0) argument
222 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
229 : "r" (&v->counter), "Qo" (v->counter) in atomic64_read()
235 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
239 : "=Qo" (v->counter) in atomic64_set()
240 : "r" (&v->counter), "r" (i) in atomic64_set()
244 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
251 : "r" (&v->counter), "Qo" (v->counter) in atomic64_read()
257 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
261 prefetchw(&v->counter); in atomic64_set()
267 : "=&r" (tmp), "=Qo" (v->counter) in atomic64_set()
268 : "r" (&v->counter), "r" (i) in atomic64_set()
274 static inline void atomic64_##op(long long i, atomic64_t *v) \
279 prefetchw(&v->counter); \
287 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
288 : "r" (&v->counter), "r" (i) \
293 static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
299 prefetchw(&v->counter); \
308 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
309 : "r" (&v->counter), "r" (i) \
376 static inline long long atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
382 prefetchw(&v->counter); in atomic64_dec_if_positive()
394 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) in atomic64_dec_if_positive()
395 : "r" (&v->counter) in atomic64_dec_if_positive()
403 static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u) in atomic64_add_unless() argument
410 prefetchw(&v->counter); in atomic64_add_unless()
424 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter) in atomic64_add_unless()
425 : "r" (&v->counter), "r" (u), "r" (a) in atomic64_add_unless()
434 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0) argument
435 #define atomic64_inc(v) atomic64_add(1LL, (v)) argument
436 #define atomic64_inc_return(v) atomic64_add_return(1LL, (v)) argument
437 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0) argument
438 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0) argument
439 #define atomic64_dec(v) atomic64_sub(1LL, (v)) argument
440 #define atomic64_dec_return(v) atomic64_sub_return(1LL, (v)) argument
441 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0) argument
442 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL) argument