Lines Matching refs:v
20 #define atomic_read(v) READ_ONCE((v)->counter) argument
21 #define atomic_set(v, i) WRITE_ONCE(((v)->counter), (i)) argument
34 static inline void atomic_##op(int i, atomic_t *v) \
36 __asm__ __volatile__(#asm_op "l %1,%0" : "+m" (*v) : ASM_DI (i));\
42 static inline int atomic_##op##_return(int i, atomic_t *v) \
51 : "+m" (*v), "=&d" (t), "=&d" (tmp) \
52 : "g" (i), "2" (atomic_read(v))); \
59 static inline int atomic_##op##_return(int i, atomic_t * v) \
65 t = (v->counter c_op i); \
88 static inline void atomic_inc(atomic_t *v) in atomic_inc() argument
90 __asm__ __volatile__("addql #1,%0" : "+m" (*v)); in atomic_inc()
93 static inline void atomic_dec(atomic_t *v) in atomic_dec() argument
95 __asm__ __volatile__("subql #1,%0" : "+m" (*v)); in atomic_dec()
98 static inline int atomic_dec_and_test(atomic_t *v) in atomic_dec_and_test() argument
101 __asm__ __volatile__("subql #1,%1; seq %0" : "=d" (c), "+m" (*v)); in atomic_dec_and_test()
105 static inline int atomic_dec_and_test_lt(atomic_t *v) in atomic_dec_and_test_lt() argument
110 : "=d" (c), "=m" (*v) in atomic_dec_and_test_lt()
111 : "m" (*v)); in atomic_dec_and_test_lt()
115 static inline int atomic_inc_and_test(atomic_t *v) in atomic_inc_and_test() argument
118 __asm__ __volatile__("addql #1,%1; seq %0" : "=d" (c), "+m" (*v)); in atomic_inc_and_test()
124 #define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n))) argument
125 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) argument
129 static inline int atomic_cmpxchg(atomic_t *v, int old, int new) in atomic_cmpxchg() argument
135 prev = atomic_read(v); in atomic_cmpxchg()
137 atomic_set(v, new); in atomic_cmpxchg()
142 static inline int atomic_xchg(atomic_t *v, int new) in atomic_xchg() argument
148 prev = atomic_read(v); in atomic_xchg()
149 atomic_set(v, new); in atomic_xchg()
156 #define atomic_dec_return(v) atomic_sub_return(1, (v)) argument
157 #define atomic_inc_return(v) atomic_add_return(1, (v)) argument
159 static inline int atomic_sub_and_test(int i, atomic_t *v) in atomic_sub_and_test() argument
163 : "=d" (c), "+m" (*v) in atomic_sub_and_test()
168 static inline int atomic_add_negative(int i, atomic_t *v) in atomic_add_negative() argument
172 : "=d" (c), "+m" (*v) in atomic_add_negative()
177 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()
184 old = atomic_cmpxchg((v), c, c + (a)); in __atomic_add_unless()