• Home
  • Raw
  • Download

Lines Matching +full:3 +full:v

30 #define atomic_read(v)	READ_ONCE((v)->counter)  argument
31 #define atomic_set(v,i) WRITE_ONCE(((v)->counter), (i)) argument
42 static inline void atomic_##op(int i, atomic_t *v) \
47 prefetchw(&v->counter); \
49 "1: ldrex %0, [%3]\n" \
51 " strex %1, %0, [%3]\n" \
54 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
55 : "r" (&v->counter), "Ir" (i) \
60 static inline int atomic_##op##_return_relaxed(int i, atomic_t *v) \
65 prefetchw(&v->counter); \
68 "1: ldrex %0, [%3]\n" \
70 " strex %1, %0, [%3]\n" \
73 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
74 : "r" (&v->counter), "Ir" (i) \
81 static inline int atomic_fetch_##op##_relaxed(int i, atomic_t *v) \
86 prefetchw(&v->counter); \
94 : "=&r" (result), "=&r" (val), "=&r" (tmp), "+Qo" (v->counter) \
95 : "r" (&v->counter), "Ir" (i) \
120 "ldrex %1, [%3]\n" in atomic_cmpxchg_relaxed()
123 "strexeq %0, %5, [%3]\n" in atomic_cmpxchg_relaxed()
133 static inline int atomic_fetch_add_unless(atomic_t *v, int a, int u) in atomic_fetch_add_unless() argument
139 prefetchw(&v->counter); in atomic_fetch_add_unless()
150 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter) in atomic_fetch_add_unless()
151 : "r" (&v->counter), "r" (u), "r" (a) in atomic_fetch_add_unless()
168 static inline void atomic_##op(int i, atomic_t *v) \
173 v->counter c_op i; \
178 static inline int atomic_##op##_return(int i, atomic_t *v) \
184 v->counter c_op i; \
185 val = v->counter; \
192 static inline int atomic_fetch_##op(int i, atomic_t *v) \
198 val = v->counter; \
199 v->counter c_op i; \
205 static inline int atomic_cmpxchg(atomic_t *v, int old, int new) in atomic_cmpxchg() argument
211 ret = v->counter; in atomic_cmpxchg()
213 v->counter = new; in atomic_cmpxchg()
248 #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) argument
258 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
265 : "r" (&v->counter), "Qo" (v->counter) in atomic64_read()
271 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
275 : "=Qo" (v->counter) in atomic64_set()
276 : "r" (&v->counter), "r" (i) in atomic64_set()
280 static inline long long atomic64_read(const atomic64_t *v) in atomic64_read() argument
287 : "r" (&v->counter), "Qo" (v->counter) in atomic64_read()
293 static inline void atomic64_set(atomic64_t *v, long long i) in atomic64_set() argument
297 prefetchw(&v->counter); in atomic64_set()
300 " strexd %0, %3, %H3, [%2]\n" in atomic64_set()
303 : "=&r" (tmp), "=Qo" (v->counter) in atomic64_set()
304 : "r" (&v->counter), "r" (i) in atomic64_set()
310 static inline void atomic64_##op(long long i, atomic64_t *v) \
315 prefetchw(&v->counter); \
317 "1: ldrexd %0, %H0, [%3]\n" \
320 " strexd %1, %0, %H0, [%3]\n" \
323 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
324 : "r" (&v->counter), "r" (i) \
330 atomic64_##op##_return_relaxed(long long i, atomic64_t *v) \
335 prefetchw(&v->counter); \
338 "1: ldrexd %0, %H0, [%3]\n" \
341 " strexd %1, %0, %H0, [%3]\n" \
344 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
345 : "r" (&v->counter), "r" (i) \
353 atomic64_fetch_##op##_relaxed(long long i, atomic64_t *v) \
358 prefetchw(&v->counter); \
367 : "=&r" (result), "=&r" (val), "=&r" (tmp), "+Qo" (v->counter) \
368 : "r" (&v->counter), "r" (i) \
419 "ldrexd %1, %H1, [%3]\n" in ATOMIC64_OPS()
423 "strexdeq %0, %5, %H5, [%3]" in ATOMIC64_OPS()
441 "1: ldrexd %0, %H0, [%3]\n" in atomic64_xchg_relaxed()
442 " strexd %1, %4, %H4, [%3]\n" in atomic64_xchg_relaxed()
453 static inline long long atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
459 prefetchw(&v->counter); in atomic64_dec_if_positive()
462 "1: ldrexd %0, %H0, [%3]\n" in atomic64_dec_if_positive()
467 " strexd %1, %0, %H0, [%3]\n" in atomic64_dec_if_positive()
471 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) in atomic64_dec_if_positive()
472 : "r" (&v->counter) in atomic64_dec_if_positive()
481 static inline long long atomic64_fetch_add_unless(atomic64_t *v, long long a, in atomic64_fetch_add_unless() argument
488 prefetchw(&v->counter); in atomic64_fetch_add_unless()
501 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter) in atomic64_fetch_add_unless()
502 : "r" (&v->counter), "r" (u), "r" (a) in atomic64_fetch_add_unless()