Lines Matching refs:v

30 #define atomic_read(v)	READ_ONCE((v)->counter)  argument
31 #define atomic_set(v,i) WRITE_ONCE(((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_relaxed(int i, atomic_t *v) \
65 prefetchw(&v->counter); \
73 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
74 : "r" (&v->counter), "Ir" (i) \
105 static inline int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
111 prefetchw(&v->counter); in __atomic_add_unless()
122 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter) in __atomic_add_unless()
123 : "r" (&v->counter), "r" (u), "r" (a) in __atomic_add_unless()
139 static inline void atomic_##op(int i, atomic_t *v) \
144 v->counter c_op i; \
149 static inline int atomic_##op##_return(int i, atomic_t *v) \
155 v->counter c_op i; \
156 val = v->counter; \
162 static inline int atomic_cmpxchg(atomic_t *v, int old, int new) in atomic_cmpxchg() argument
168 ret = v->counter; in atomic_cmpxchg()
170 v->counter = new; in atomic_cmpxchg()
176 static inline int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
180 c = atomic_read(v); in __atomic_add_unless()
181 while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c) in __atomic_add_unless()
206 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) argument
208 #define atomic_inc(v) atomic_add(1, v) argument
209 #define atomic_dec(v) atomic_sub(1, v) argument
211 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) argument
212 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) argument
213 #define atomic_inc_return_relaxed(v) (atomic_add_return_relaxed(1, v)) argument
214 #define atomic_dec_return_relaxed(v) (atomic_sub_return_relaxed(1, v)) argument
215 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0) argument
217 #define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0) argument
227 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
234 : "r" (&v->counter), "Qo" (v->counter) in atomic64_read()
240 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
244 : "=Qo" (v->counter) in atomic64_set()
245 : "r" (&v->counter), "r" (i) in atomic64_set()
249 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
256 : "r" (&v->counter), "Qo" (v->counter) in atomic64_read()
262 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
266 prefetchw(&v->counter); in atomic64_set()
272 : "=&r" (tmp), "=Qo" (v->counter) in atomic64_set()
273 : "r" (&v->counter), "r" (i) in atomic64_set()
279 static inline void atomic64_##op(long long i, atomic64_t *v) \
284 prefetchw(&v->counter); \
292 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
293 : "r" (&v->counter), "r" (i) \
299 atomic64_##op##_return_relaxed(long long i, atomic64_t *v) \
304 prefetchw(&v->counter); \
313 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
314 : "r" (&v->counter), "r" (i) \
385 static inline long long atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
391 prefetchw(&v->counter); in atomic64_dec_if_positive()
403 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) in atomic64_dec_if_positive()
404 : "r" (&v->counter) in atomic64_dec_if_positive()
412 static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u) in atomic64_add_unless() argument
419 prefetchw(&v->counter); in atomic64_add_unless()
433 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter) in atomic64_add_unless()
434 : "r" (&v->counter), "r" (u), "r" (a) in atomic64_add_unless()
443 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0) argument
444 #define atomic64_inc(v) atomic64_add(1LL, (v)) argument
445 #define atomic64_inc_return_relaxed(v) atomic64_add_return_relaxed(1LL, (v)) argument
446 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0) argument
447 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0) argument
448 #define atomic64_dec(v) atomic64_sub(1LL, (v)) argument
449 #define atomic64_dec_return_relaxed(v) atomic64_sub_return_relaxed(1LL, (v)) argument
450 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0) argument
451 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL) argument