Lines Matching refs:v
58 static __inline__ void atomic_set(atomic_t *v, int i) in atomic_set() argument
61 _atomic_spin_lock_irqsave(v, flags); in atomic_set()
63 v->counter = i; in atomic_set()
65 _atomic_spin_unlock_irqrestore(v, flags); in atomic_set()
68 static __inline__ int atomic_read(const atomic_t *v) in atomic_read() argument
70 return READ_ONCE((v)->counter); in atomic_read()
74 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n))) argument
75 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) argument
86 static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) in __atomic_add_unless() argument
89 c = atomic_read(v); in __atomic_add_unless()
93 old = atomic_cmpxchg((v), c, c + (a)); in __atomic_add_unless()
102 static __inline__ void atomic_##op(int i, atomic_t *v) \
106 _atomic_spin_lock_irqsave(v, flags); \
107 v->counter c_op i; \
108 _atomic_spin_unlock_irqrestore(v, flags); \
112 static __inline__ int atomic_##op##_return(int i, atomic_t *v) \
117 _atomic_spin_lock_irqsave(v, flags); \
118 ret = (v->counter c_op i); \
119 _atomic_spin_unlock_irqrestore(v, flags); \
137 #define atomic_inc(v) (atomic_add( 1,(v))) argument
138 #define atomic_dec(v) (atomic_add( -1,(v))) argument
140 #define atomic_inc_return(v) (atomic_add_return( 1,(v))) argument
141 #define atomic_dec_return(v) (atomic_add_return( -1,(v))) argument
143 #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) argument
153 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0) argument
155 #define atomic_dec_and_test(v) (atomic_dec_return(v) == 0) argument
157 #define atomic_sub_and_test(i,v) (atomic_sub_return((i),(v)) == 0) argument
166 static __inline__ void atomic64_##op(s64 i, atomic64_t *v) \
170 _atomic_spin_lock_irqsave(v, flags); \
171 v->counter c_op i; \
172 _atomic_spin_unlock_irqrestore(v, flags); \
176 static __inline__ s64 atomic64_##op##_return(s64 i, atomic64_t *v) \
181 _atomic_spin_lock_irqsave(v, flags); \
182 ret = (v->counter c_op i); \
183 _atomic_spin_unlock_irqrestore(v, flags); \
201 atomic64_set(atomic64_t *v, s64 i) in atomic64_set() argument
204 _atomic_spin_lock_irqsave(v, flags); in atomic64_set()
206 v->counter = i; in atomic64_set()
208 _atomic_spin_unlock_irqrestore(v, flags); in atomic64_set()
212 atomic64_read(const atomic64_t *v) in atomic64_read() argument
214 return ACCESS_ONCE((v)->counter); in atomic64_read()
217 #define atomic64_inc(v) (atomic64_add( 1,(v))) argument
218 #define atomic64_dec(v) (atomic64_add( -1,(v))) argument
220 #define atomic64_inc_return(v) (atomic64_add_return( 1,(v))) argument
221 #define atomic64_dec_return(v) (atomic64_add_return( -1,(v))) argument
223 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0) argument
225 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0) argument
226 #define atomic64_dec_and_test(v) (atomic64_dec_return(v) == 0) argument
227 #define atomic64_sub_and_test(i,v) (atomic64_sub_return((i),(v)) == 0) argument
230 #define atomic64_cmpxchg(v, o, n) \ argument
231 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
232 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) argument
243 static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) in atomic64_add_unless() argument
246 c = atomic64_read(v); in atomic64_add_unless()
250 old = atomic64_cmpxchg((v), c, c + (a)); in atomic64_add_unless()
258 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) argument
267 static inline long atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
270 c = atomic64_read(v); in atomic64_dec_if_positive()
275 old = atomic64_cmpxchg((v), c, dec); in atomic64_dec_if_positive()