Lines Matching refs:v
33 #define atomic_read(v) ACCESS_ONCE((v)->counter) argument
42 #define atomic_set(v, i) ((v)->counter = (i)) argument
45 static __inline__ void atomic_##op(int i, atomic_t * v) \
57 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
69 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
76 v->counter c_op i; \
82 static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
100 "+" GCC_OFF_SMALL_ASM() (v->counter) \
113 "+" GCC_OFF_SMALL_ASM() (v->counter) \
122 result = v->counter; \
124 v->counter = result; \
152 static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) in atomic_sub_if_positive() argument
174 "+" GCC_OFF_SMALL_ASM() (v->counter) in atomic_sub_if_positive()
175 : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) in atomic_sub_if_positive()
193 "+" GCC_OFF_SMALL_ASM() (v->counter) in atomic_sub_if_positive()
199 result = v->counter; in atomic_sub_if_positive()
202 v->counter = result; in atomic_sub_if_positive()
211 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) argument
212 #define atomic_xchg(v, new) (xchg(&((v)->counter), (new))) argument
223 static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
226 c = atomic_read(v); in __atomic_add_unless()
230 old = atomic_cmpxchg((v), c, c + (a)); in __atomic_add_unless()
238 #define atomic_dec_return(v) atomic_sub_return(1, (v)) argument
239 #define atomic_inc_return(v) atomic_add_return(1, (v)) argument
250 #define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0) argument
260 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) argument
270 #define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) argument
276 #define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v) argument
284 #define atomic_inc(v) atomic_add(1, (v)) argument
292 #define atomic_dec(v) atomic_sub(1, (v)) argument
303 #define atomic_add_negative(i, v) (atomic_add_return(i, (v)) < 0) argument
314 #define atomic64_read(v) ACCESS_ONCE((v)->counter) argument
321 #define atomic64_set(v, i) ((v)->counter = (i)) argument
324 static __inline__ void atomic64_##op(long i, atomic64_t * v) \
336 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
348 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
355 v->counter c_op i; \
361 static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
379 "+" GCC_OFF_SMALL_ASM() (v->counter) \
392 "=" GCC_OFF_SMALL_ASM() (v->counter) \
393 : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
402 result = v->counter; \
404 v->counter = result; \
433 static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) in atomic64_sub_if_positive() argument
455 "=" GCC_OFF_SMALL_ASM() (v->counter) in atomic64_sub_if_positive()
456 : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) in atomic64_sub_if_positive()
474 "+" GCC_OFF_SMALL_ASM() (v->counter) in atomic64_sub_if_positive()
480 result = v->counter; in atomic64_sub_if_positive()
483 v->counter = result; in atomic64_sub_if_positive()
492 #define atomic64_cmpxchg(v, o, n) \ argument
493 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
494 #define atomic64_xchg(v, new) (xchg(&((v)->counter), (new))) argument
505 static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) in atomic64_add_unless() argument
508 c = atomic64_read(v); in atomic64_add_unless()
512 old = atomic64_cmpxchg((v), c, c + (a)); in atomic64_add_unless()
520 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) argument
522 #define atomic64_dec_return(v) atomic64_sub_return(1, (v)) argument
523 #define atomic64_inc_return(v) atomic64_add_return(1, (v)) argument
534 #define atomic64_sub_and_test(i, v) (atomic64_sub_return((i), (v)) == 0) argument
544 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0) argument
554 #define atomic64_dec_and_test(v) (atomic64_sub_return(1, (v)) == 0) argument
560 #define atomic64_dec_if_positive(v) atomic64_sub_if_positive(1, v) argument
568 #define atomic64_inc(v) atomic64_add(1, (v)) argument
576 #define atomic64_dec(v) atomic64_sub(1, (v)) argument
587 #define atomic64_add_negative(i, v) (atomic64_add_return(i, (v)) < 0) argument