Lines Matching refs:v
22 #define atomic_read(v) READ_ONCE((v)->counter) argument
23 #define atomic_set(v, i) WRITE_ONCE(((v)->counter), (i)) argument
26 static inline int __atomic_##op##_return(int i, atomic_t *v) \
37 : "=&r" (result), "=o" (v->counter) \
38 : "m" (v->counter), #asm_con (i) \
49 static inline void atomic_##op(int i, atomic_t *v) \ in ATOMIC_OP_RETURN()
51 (void)__atomic_##op##_return(i, v); \ in ATOMIC_OP_RETURN()
82 static inline int atomic_add_return(int i, atomic_t *v)
85 return __atomic_sub_return(-i, v);
87 return __atomic_add_return(i, v);
97 static inline int atomic_sub_return(int i, atomic_t *v) in atomic_sub_return() argument
100 return __atomic_sub_return(i, v); in atomic_sub_return()
102 return __atomic_add_return(-i, v); in atomic_sub_return()
114 static inline int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
116 int tmp, old = atomic_read(v); in __atomic_add_unless()
129 : "=&r"(tmp), "=o"(v->counter) in __atomic_add_unless()
130 : "m"(v->counter), "rKs21"(-a), "rKs21"(u) in __atomic_add_unless()
143 : "=&r"(tmp), "=o"(v->counter) in __atomic_add_unless()
144 : "m"(v->counter), "r"(a), "ir"(u) in __atomic_add_unless()
161 static inline int atomic_sub_if_positive(int i, atomic_t *v) in atomic_sub_if_positive() argument
174 : "=&r"(result), "=o"(v->counter) in atomic_sub_if_positive()
175 : "m"(v->counter), "ir"(i) in atomic_sub_if_positive()
181 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) argument
182 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) argument
184 #define atomic_sub(i, v) (void)atomic_sub_return(i, v) argument
185 #define atomic_add(i, v) (void)atomic_add_return(i, v) argument
186 #define atomic_dec(v) atomic_sub(1, (v)) argument
187 #define atomic_inc(v) atomic_add(1, (v)) argument
189 #define atomic_dec_return(v) atomic_sub_return(1, v) argument
190 #define atomic_inc_return(v) atomic_add_return(1, v) argument
192 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0) argument
193 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) argument
194 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0) argument
195 #define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0) argument
197 #define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v) argument