Lines Matching refs:v
19 static inline long atomic64_read(const atomic64_t *v) in atomic64_read() argument
21 return ACCESS_ONCE((v)->counter); in atomic64_read()
31 static inline void atomic64_set(atomic64_t *v, long i) in atomic64_set() argument
33 v->counter = i; in atomic64_set()
43 static inline void atomic64_add(long i, atomic64_t *v) in atomic64_add() argument
46 : "=m" (v->counter) in atomic64_add()
47 : "er" (i), "m" (v->counter)); in atomic64_add()
57 static inline void atomic64_sub(long i, atomic64_t *v) in atomic64_sub() argument
60 : "=m" (v->counter) in atomic64_sub()
61 : "er" (i), "m" (v->counter)); in atomic64_sub()
73 static inline int atomic64_sub_and_test(long i, atomic64_t *v) in atomic64_sub_and_test() argument
75 GEN_BINARY_RMWcc(LOCK_PREFIX "subq", v->counter, "er", i, "%0", "e"); in atomic64_sub_and_test()
84 static inline void atomic64_inc(atomic64_t *v) in atomic64_inc() argument
87 : "=m" (v->counter) in atomic64_inc()
88 : "m" (v->counter)); in atomic64_inc()
97 static inline void atomic64_dec(atomic64_t *v) in atomic64_dec() argument
100 : "=m" (v->counter) in atomic64_dec()
101 : "m" (v->counter)); in atomic64_dec()
112 static inline int atomic64_dec_and_test(atomic64_t *v) in atomic64_dec_and_test() argument
114 GEN_UNARY_RMWcc(LOCK_PREFIX "decq", v->counter, "%0", "e"); in atomic64_dec_and_test()
125 static inline int atomic64_inc_and_test(atomic64_t *v) in atomic64_inc_and_test() argument
127 GEN_UNARY_RMWcc(LOCK_PREFIX "incq", v->counter, "%0", "e"); in atomic64_inc_and_test()
139 static inline int atomic64_add_negative(long i, atomic64_t *v) in atomic64_add_negative() argument
141 GEN_BINARY_RMWcc(LOCK_PREFIX "addq", v->counter, "er", i, "%0", "s"); in atomic64_add_negative()
151 static inline long atomic64_add_return(long i, atomic64_t *v) in atomic64_add_return() argument
153 return i + xadd(&v->counter, i); in atomic64_add_return()
156 static inline long atomic64_sub_return(long i, atomic64_t *v) in atomic64_sub_return() argument
158 return atomic64_add_return(-i, v); in atomic64_sub_return()
161 #define atomic64_inc_return(v) (atomic64_add_return(1, (v))) argument
162 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v))) argument
164 static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new) in atomic64_cmpxchg() argument
166 return cmpxchg(&v->counter, old, new); in atomic64_cmpxchg()
169 static inline long atomic64_xchg(atomic64_t *v, long new) in atomic64_xchg() argument
171 return xchg(&v->counter, new); in atomic64_xchg()
183 static inline int atomic64_add_unless(atomic64_t *v, long a, long u) in atomic64_add_unless() argument
186 c = atomic64_read(v); in atomic64_add_unless()
190 old = atomic64_cmpxchg((v), c, c + (a)); in atomic64_add_unless()
198 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) argument
207 static inline long atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
210 c = atomic64_read(v); in atomic64_dec_if_positive()
215 old = atomic64_cmpxchg((v), c, dec); in atomic64_dec_if_positive()