Lines Matching full:v

21  * @v: pointer to atomic_t
23 * Atomically loads the value of @v with relaxed ordering.
27 * Return: The value loaded from @v.
30 atomic_read(const atomic_t *v) in atomic_read() argument
32 instrument_atomic_read(v, sizeof(*v)); in atomic_read()
33 return raw_atomic_read(v); in atomic_read()
38 * @v: pointer to atomic_t
40 * Atomically loads the value of @v with acquire ordering.
44 * Return: The value loaded from @v.
47 atomic_read_acquire(const atomic_t *v) in atomic_read_acquire() argument
49 instrument_atomic_read(v, sizeof(*v)); in atomic_read_acquire()
50 return raw_atomic_read_acquire(v); in atomic_read_acquire()
55 * @v: pointer to atomic_t
58 * Atomically sets @v to @i with relaxed ordering.
65 atomic_set(atomic_t *v, int i) in atomic_set() argument
67 instrument_atomic_write(v, sizeof(*v)); in atomic_set()
68 raw_atomic_set(v, i); in atomic_set()
73 * @v: pointer to atomic_t
76 * Atomically sets @v to @i with release ordering.
83 atomic_set_release(atomic_t *v, int i) in atomic_set_release() argument
86 instrument_atomic_write(v, sizeof(*v)); in atomic_set_release()
87 raw_atomic_set_release(v, i); in atomic_set_release()
93 * @v: pointer to atomic_t
95 * Atomically updates @v to (@v + @i) with relaxed ordering.
102 atomic_add(int i, atomic_t *v) in atomic_add() argument
104 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add()
105 raw_atomic_add(i, v); in atomic_add()
111 * @v: pointer to atomic_t
113 * Atomically updates @v to (@v + @i) with full ordering.
117 * Return: The updated value of @v.
120 atomic_add_return(int i, atomic_t *v) in atomic_add_return() argument
123 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_return()
124 return raw_atomic_add_return(i, v); in atomic_add_return()
130 * @v: pointer to atomic_t
132 * Atomically updates @v to (@v + @i) with acquire ordering.
136 * Return: The updated value of @v.
139 atomic_add_return_acquire(int i, atomic_t *v) in atomic_add_return_acquire() argument
141 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_return_acquire()
142 return raw_atomic_add_return_acquire(i, v); in atomic_add_return_acquire()
148 * @v: pointer to atomic_t
150 * Atomically updates @v to (@v + @i) with release ordering.
154 * Return: The updated value of @v.
157 atomic_add_return_release(int i, atomic_t *v) in atomic_add_return_release() argument
160 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_return_release()
161 return raw_atomic_add_return_release(i, v); in atomic_add_return_release()
167 * @v: pointer to atomic_t
169 * Atomically updates @v to (@v + @i) with relaxed ordering.
173 * Return: The updated value of @v.
176 atomic_add_return_relaxed(int i, atomic_t *v) in atomic_add_return_relaxed() argument
178 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_return_relaxed()
179 return raw_atomic_add_return_relaxed(i, v); in atomic_add_return_relaxed()
185 * @v: pointer to atomic_t
187 * Atomically updates @v to (@v + @i) with full ordering.
191 * Return: The original value of @v.
194 atomic_fetch_add(int i, atomic_t *v) in atomic_fetch_add() argument
197 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_add()
198 return raw_atomic_fetch_add(i, v); in atomic_fetch_add()
204 * @v: pointer to atomic_t
206 * Atomically updates @v to (@v + @i) with acquire ordering.
210 * Return: The original value of @v.
213 atomic_fetch_add_acquire(int i, atomic_t *v) in atomic_fetch_add_acquire() argument
215 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_add_acquire()
216 return raw_atomic_fetch_add_acquire(i, v); in atomic_fetch_add_acquire()
222 * @v: pointer to atomic_t
224 * Atomically updates @v to (@v + @i) with release ordering.
228 * Return: The original value of @v.
231 atomic_fetch_add_release(int i, atomic_t *v) in atomic_fetch_add_release() argument
234 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_add_release()
235 return raw_atomic_fetch_add_release(i, v); in atomic_fetch_add_release()
241 * @v: pointer to atomic_t
243 * Atomically updates @v to (@v + @i) with relaxed ordering.
247 * Return: The original value of @v.
250 atomic_fetch_add_relaxed(int i, atomic_t *v) in atomic_fetch_add_relaxed() argument
252 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_add_relaxed()
253 return raw_atomic_fetch_add_relaxed(i, v); in atomic_fetch_add_relaxed()
259 * @v: pointer to atomic_t
261 * Atomically updates @v to (@v - @i) with relaxed ordering.
268 atomic_sub(int i, atomic_t *v) in atomic_sub() argument
270 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub()
271 raw_atomic_sub(i, v); in atomic_sub()
277 * @v: pointer to atomic_t
279 * Atomically updates @v to (@v - @i) with full ordering.
283 * Return: The updated value of @v.
286 atomic_sub_return(int i, atomic_t *v) in atomic_sub_return() argument
289 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub_return()
290 return raw_atomic_sub_return(i, v); in atomic_sub_return()
296 * @v: pointer to atomic_t
298 * Atomically updates @v to (@v - @i) with acquire ordering.
302 * Return: The updated value of @v.
305 atomic_sub_return_acquire(int i, atomic_t *v) in atomic_sub_return_acquire() argument
307 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub_return_acquire()
308 return raw_atomic_sub_return_acquire(i, v); in atomic_sub_return_acquire()
314 * @v: pointer to atomic_t
316 * Atomically updates @v to (@v - @i) with release ordering.
320 * Return: The updated value of @v.
323 atomic_sub_return_release(int i, atomic_t *v) in atomic_sub_return_release() argument
326 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub_return_release()
327 return raw_atomic_sub_return_release(i, v); in atomic_sub_return_release()
333 * @v: pointer to atomic_t
335 * Atomically updates @v to (@v - @i) with relaxed ordering.
339 * Return: The updated value of @v.
342 atomic_sub_return_relaxed(int i, atomic_t *v) in atomic_sub_return_relaxed() argument
344 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub_return_relaxed()
345 return raw_atomic_sub_return_relaxed(i, v); in atomic_sub_return_relaxed()
351 * @v: pointer to atomic_t
353 * Atomically updates @v to (@v - @i) with full ordering.
357 * Return: The original value of @v.
360 atomic_fetch_sub(int i, atomic_t *v) in atomic_fetch_sub() argument
363 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_sub()
364 return raw_atomic_fetch_sub(i, v); in atomic_fetch_sub()
370 * @v: pointer to atomic_t
372 * Atomically updates @v to (@v - @i) with acquire ordering.
376 * Return: The original value of @v.
379 atomic_fetch_sub_acquire(int i, atomic_t *v) in atomic_fetch_sub_acquire() argument
381 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_sub_acquire()
382 return raw_atomic_fetch_sub_acquire(i, v); in atomic_fetch_sub_acquire()
388 * @v: pointer to atomic_t
390 * Atomically updates @v to (@v - @i) with release ordering.
394 * Return: The original value of @v.
397 atomic_fetch_sub_release(int i, atomic_t *v) in atomic_fetch_sub_release() argument
400 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_sub_release()
401 return raw_atomic_fetch_sub_release(i, v); in atomic_fetch_sub_release()
407 * @v: pointer to atomic_t
409 * Atomically updates @v to (@v - @i) with relaxed ordering.
413 * Return: The original value of @v.
416 atomic_fetch_sub_relaxed(int i, atomic_t *v) in atomic_fetch_sub_relaxed() argument
418 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_sub_relaxed()
419 return raw_atomic_fetch_sub_relaxed(i, v); in atomic_fetch_sub_relaxed()
424 * @v: pointer to atomic_t
426 * Atomically updates @v to (@v + 1) with relaxed ordering.
433 atomic_inc(atomic_t *v) in atomic_inc() argument
435 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc()
436 raw_atomic_inc(v); in atomic_inc()
441 * @v: pointer to atomic_t
443 * Atomically updates @v to (@v + 1) with full ordering.
447 * Return: The updated value of @v.
450 atomic_inc_return(atomic_t *v) in atomic_inc_return() argument
453 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_return()
454 return raw_atomic_inc_return(v); in atomic_inc_return()
459 * @v: pointer to atomic_t
461 * Atomically updates @v to (@v + 1) with acquire ordering.
465 * Return: The updated value of @v.
468 atomic_inc_return_acquire(atomic_t *v) in atomic_inc_return_acquire() argument
470 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_return_acquire()
471 return raw_atomic_inc_return_acquire(v); in atomic_inc_return_acquire()
476 * @v: pointer to atomic_t
478 * Atomically updates @v to (@v + 1) with release ordering.
482 * Return: The updated value of @v.
485 atomic_inc_return_release(atomic_t *v) in atomic_inc_return_release() argument
488 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_return_release()
489 return raw_atomic_inc_return_release(v); in atomic_inc_return_release()
494 * @v: pointer to atomic_t
496 * Atomically updates @v to (@v + 1) with relaxed ordering.
500 * Return: The updated value of @v.
503 atomic_inc_return_relaxed(atomic_t *v) in atomic_inc_return_relaxed() argument
505 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_return_relaxed()
506 return raw_atomic_inc_return_relaxed(v); in atomic_inc_return_relaxed()
511 * @v: pointer to atomic_t
513 * Atomically updates @v to (@v + 1) with full ordering.
517 * Return: The original value of @v.
520 atomic_fetch_inc(atomic_t *v) in atomic_fetch_inc() argument
523 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_inc()
524 return raw_atomic_fetch_inc(v); in atomic_fetch_inc()
529 * @v: pointer to atomic_t
531 * Atomically updates @v to (@v + 1) with acquire ordering.
535 * Return: The original value of @v.
538 atomic_fetch_inc_acquire(atomic_t *v) in atomic_fetch_inc_acquire() argument
540 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_inc_acquire()
541 return raw_atomic_fetch_inc_acquire(v); in atomic_fetch_inc_acquire()
546 * @v: pointer to atomic_t
548 * Atomically updates @v to (@v + 1) with release ordering.
552 * Return: The original value of @v.
555 atomic_fetch_inc_release(atomic_t *v) in atomic_fetch_inc_release() argument
558 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_inc_release()
559 return raw_atomic_fetch_inc_release(v); in atomic_fetch_inc_release()
564 * @v: pointer to atomic_t
566 * Atomically updates @v to (@v + 1) with relaxed ordering.
570 * Return: The original value of @v.
573 atomic_fetch_inc_relaxed(atomic_t *v) in atomic_fetch_inc_relaxed() argument
575 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_inc_relaxed()
576 return raw_atomic_fetch_inc_relaxed(v); in atomic_fetch_inc_relaxed()
581 * @v: pointer to atomic_t
583 * Atomically updates @v to (@v - 1) with relaxed ordering.
590 atomic_dec(atomic_t *v) in atomic_dec() argument
592 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec()
593 raw_atomic_dec(v); in atomic_dec()
598 * @v: pointer to atomic_t
600 * Atomically updates @v to (@v - 1) with full ordering.
604 * Return: The updated value of @v.
607 atomic_dec_return(atomic_t *v) in atomic_dec_return() argument
610 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_return()
611 return raw_atomic_dec_return(v); in atomic_dec_return()
616 * @v: pointer to atomic_t
618 * Atomically updates @v to (@v - 1) with acquire ordering.
622 * Return: The updated value of @v.
625 atomic_dec_return_acquire(atomic_t *v) in atomic_dec_return_acquire() argument
627 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_return_acquire()
628 return raw_atomic_dec_return_acquire(v); in atomic_dec_return_acquire()
633 * @v: pointer to atomic_t
635 * Atomically updates @v to (@v - 1) with release ordering.
639 * Return: The updated value of @v.
642 atomic_dec_return_release(atomic_t *v) in atomic_dec_return_release() argument
645 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_return_release()
646 return raw_atomic_dec_return_release(v); in atomic_dec_return_release()
651 * @v: pointer to atomic_t
653 * Atomically updates @v to (@v - 1) with relaxed ordering.
657 * Return: The updated value of @v.
660 atomic_dec_return_relaxed(atomic_t *v) in atomic_dec_return_relaxed() argument
662 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_return_relaxed()
663 return raw_atomic_dec_return_relaxed(v); in atomic_dec_return_relaxed()
668 * @v: pointer to atomic_t
670 * Atomically updates @v to (@v - 1) with full ordering.
674 * Return: The original value of @v.
677 atomic_fetch_dec(atomic_t *v) in atomic_fetch_dec() argument
680 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_dec()
681 return raw_atomic_fetch_dec(v); in atomic_fetch_dec()
686 * @v: pointer to atomic_t
688 * Atomically updates @v to (@v - 1) with acquire ordering.
692 * Return: The original value of @v.
695 atomic_fetch_dec_acquire(atomic_t *v) in atomic_fetch_dec_acquire() argument
697 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_dec_acquire()
698 return raw_atomic_fetch_dec_acquire(v); in atomic_fetch_dec_acquire()
703 * @v: pointer to atomic_t
705 * Atomically updates @v to (@v - 1) with release ordering.
709 * Return: The original value of @v.
712 atomic_fetch_dec_release(atomic_t *v) in atomic_fetch_dec_release() argument
715 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_dec_release()
716 return raw_atomic_fetch_dec_release(v); in atomic_fetch_dec_release()
721 * @v: pointer to atomic_t
723 * Atomically updates @v to (@v - 1) with relaxed ordering.
727 * Return: The original value of @v.
730 atomic_fetch_dec_relaxed(atomic_t *v) in atomic_fetch_dec_relaxed() argument
732 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_dec_relaxed()
733 return raw_atomic_fetch_dec_relaxed(v); in atomic_fetch_dec_relaxed()
739 * @v: pointer to atomic_t
741 * Atomically updates @v to (@v & @i) with relaxed ordering.
748 atomic_and(int i, atomic_t *v) in atomic_and() argument
750 instrument_atomic_read_write(v, sizeof(*v)); in atomic_and()
751 raw_atomic_and(i, v); in atomic_and()
757 * @v: pointer to atomic_t
759 * Atomically updates @v to (@v & @i) with full ordering.
763 * Return: The original value of @v.
766 atomic_fetch_and(int i, atomic_t *v) in atomic_fetch_and() argument
769 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_and()
770 return raw_atomic_fetch_and(i, v); in atomic_fetch_and()
776 * @v: pointer to atomic_t
778 * Atomically updates @v to (@v & @i) with acquire ordering.
782 * Return: The original value of @v.
785 atomic_fetch_and_acquire(int i, atomic_t *v) in atomic_fetch_and_acquire() argument
787 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_and_acquire()
788 return raw_atomic_fetch_and_acquire(i, v); in atomic_fetch_and_acquire()
794 * @v: pointer to atomic_t
796 * Atomically updates @v to (@v & @i) with release ordering.
800 * Return: The original value of @v.
803 atomic_fetch_and_release(int i, atomic_t *v) in atomic_fetch_and_release() argument
806 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_and_release()
807 return raw_atomic_fetch_and_release(i, v); in atomic_fetch_and_release()
813 * @v: pointer to atomic_t
815 * Atomically updates @v to (@v & @i) with relaxed ordering.
819 * Return: The original value of @v.
822 atomic_fetch_and_relaxed(int i, atomic_t *v) in atomic_fetch_and_relaxed() argument
824 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_and_relaxed()
825 return raw_atomic_fetch_and_relaxed(i, v); in atomic_fetch_and_relaxed()
831 * @v: pointer to atomic_t
833 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
840 atomic_andnot(int i, atomic_t *v) in atomic_andnot() argument
842 instrument_atomic_read_write(v, sizeof(*v)); in atomic_andnot()
843 raw_atomic_andnot(i, v); in atomic_andnot()
849 * @v: pointer to atomic_t
851 * Atomically updates @v to (@v & ~@i) with full ordering.
855 * Return: The original value of @v.
858 atomic_fetch_andnot(int i, atomic_t *v) in atomic_fetch_andnot() argument
861 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_andnot()
862 return raw_atomic_fetch_andnot(i, v); in atomic_fetch_andnot()
868 * @v: pointer to atomic_t
870 * Atomically updates @v to (@v & ~@i) with acquire ordering.
874 * Return: The original value of @v.
877 atomic_fetch_andnot_acquire(int i, atomic_t *v) in atomic_fetch_andnot_acquire() argument
879 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_andnot_acquire()
880 return raw_atomic_fetch_andnot_acquire(i, v); in atomic_fetch_andnot_acquire()
886 * @v: pointer to atomic_t
888 * Atomically updates @v to (@v & ~@i) with release ordering.
892 * Return: The original value of @v.
895 atomic_fetch_andnot_release(int i, atomic_t *v) in atomic_fetch_andnot_release() argument
898 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_andnot_release()
899 return raw_atomic_fetch_andnot_release(i, v); in atomic_fetch_andnot_release()
905 * @v: pointer to atomic_t
907 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
911 * Return: The original value of @v.
914 atomic_fetch_andnot_relaxed(int i, atomic_t *v) in atomic_fetch_andnot_relaxed() argument
916 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_andnot_relaxed()
917 return raw_atomic_fetch_andnot_relaxed(i, v); in atomic_fetch_andnot_relaxed()
923 * @v: pointer to atomic_t
925 * Atomically updates @v to (@v | @i) with relaxed ordering.
932 atomic_or(int i, atomic_t *v) in atomic_or() argument
934 instrument_atomic_read_write(v, sizeof(*v)); in atomic_or()
935 raw_atomic_or(i, v); in atomic_or()
941 * @v: pointer to atomic_t
943 * Atomically updates @v to (@v | @i) with full ordering.
947 * Return: The original value of @v.
950 atomic_fetch_or(int i, atomic_t *v) in atomic_fetch_or() argument
953 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_or()
954 return raw_atomic_fetch_or(i, v); in atomic_fetch_or()
960 * @v: pointer to atomic_t
962 * Atomically updates @v to (@v | @i) with acquire ordering.
966 * Return: The original value of @v.
969 atomic_fetch_or_acquire(int i, atomic_t *v) in atomic_fetch_or_acquire() argument
971 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_or_acquire()
972 return raw_atomic_fetch_or_acquire(i, v); in atomic_fetch_or_acquire()
978 * @v: pointer to atomic_t
980 * Atomically updates @v to (@v | @i) with release ordering.
984 * Return: The original value of @v.
987 atomic_fetch_or_release(int i, atomic_t *v) in atomic_fetch_or_release() argument
990 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_or_release()
991 return raw_atomic_fetch_or_release(i, v); in atomic_fetch_or_release()
997 * @v: pointer to atomic_t
999 * Atomically updates @v to (@v | @i) with relaxed ordering.
1003 * Return: The original value of @v.
1006 atomic_fetch_or_relaxed(int i, atomic_t *v) in atomic_fetch_or_relaxed() argument
1008 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_or_relaxed()
1009 return raw_atomic_fetch_or_relaxed(i, v); in atomic_fetch_or_relaxed()
1015 * @v: pointer to atomic_t
1017 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
1024 atomic_xor(int i, atomic_t *v) in atomic_xor() argument
1026 instrument_atomic_read_write(v, sizeof(*v)); in atomic_xor()
1027 raw_atomic_xor(i, v); in atomic_xor()
1033 * @v: pointer to atomic_t
1035 * Atomically updates @v to (@v ^ @i) with full ordering.
1039 * Return: The original value of @v.
1042 atomic_fetch_xor(int i, atomic_t *v) in atomic_fetch_xor() argument
1045 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_xor()
1046 return raw_atomic_fetch_xor(i, v); in atomic_fetch_xor()
1052 * @v: pointer to atomic_t
1054 * Atomically updates @v to (@v ^ @i) with acquire ordering.
1058 * Return: The original value of @v.
1061 atomic_fetch_xor_acquire(int i, atomic_t *v) in atomic_fetch_xor_acquire() argument
1063 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_xor_acquire()
1064 return raw_atomic_fetch_xor_acquire(i, v); in atomic_fetch_xor_acquire()
1070 * @v: pointer to atomic_t
1072 * Atomically updates @v to (@v ^ @i) with release ordering.
1076 * Return: The original value of @v.
1079 atomic_fetch_xor_release(int i, atomic_t *v) in atomic_fetch_xor_release() argument
1082 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_xor_release()
1083 return raw_atomic_fetch_xor_release(i, v); in atomic_fetch_xor_release()
1089 * @v: pointer to atomic_t
1091 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
1095 * Return: The original value of @v.
1098 atomic_fetch_xor_relaxed(int i, atomic_t *v) in atomic_fetch_xor_relaxed() argument
1100 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_xor_relaxed()
1101 return raw_atomic_fetch_xor_relaxed(i, v); in atomic_fetch_xor_relaxed()
1106 * @v: pointer to atomic_t
1109 * Atomically updates @v to @new with full ordering.
1113 * Return: The original value of @v.
1116 atomic_xchg(atomic_t *v, int new) in atomic_xchg() argument
1119 instrument_atomic_read_write(v, sizeof(*v)); in atomic_xchg()
1120 return raw_atomic_xchg(v, new); in atomic_xchg()
1125 * @v: pointer to atomic_t
1128 * Atomically updates @v to @new with acquire ordering.
1132 * Return: The original value of @v.
1135 atomic_xchg_acquire(atomic_t *v, int new) in atomic_xchg_acquire() argument
1137 instrument_atomic_read_write(v, sizeof(*v)); in atomic_xchg_acquire()
1138 return raw_atomic_xchg_acquire(v, new); in atomic_xchg_acquire()
1143 * @v: pointer to atomic_t
1146 * Atomically updates @v to @new with release ordering.
1150 * Return: The original value of @v.
1153 atomic_xchg_release(atomic_t *v, int new) in atomic_xchg_release() argument
1156 instrument_atomic_read_write(v, sizeof(*v)); in atomic_xchg_release()
1157 return raw_atomic_xchg_release(v, new); in atomic_xchg_release()
1162 * @v: pointer to atomic_t
1165 * Atomically updates @v to @new with relaxed ordering.
1169 * Return: The original value of @v.
1172 atomic_xchg_relaxed(atomic_t *v, int new) in atomic_xchg_relaxed() argument
1174 instrument_atomic_read_write(v, sizeof(*v)); in atomic_xchg_relaxed()
1175 return raw_atomic_xchg_relaxed(v, new); in atomic_xchg_relaxed()
1180 * @v: pointer to atomic_t
1184 * If (@v == @old), atomically updates @v to @new with full ordering.
1188 * Return: The original value of @v.
1191 atomic_cmpxchg(atomic_t *v, int old, int new) in atomic_cmpxchg() argument
1194 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg()
1195 return raw_atomic_cmpxchg(v, old, new); in atomic_cmpxchg()
1200 * @v: pointer to atomic_t
1204 * If (@v == @old), atomically updates @v to @new with acquire ordering.
1208 * Return: The original value of @v.
1211 atomic_cmpxchg_acquire(atomic_t *v, int old, int new) in atomic_cmpxchg_acquire() argument
1213 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg_acquire()
1214 return raw_atomic_cmpxchg_acquire(v, old, new); in atomic_cmpxchg_acquire()
1219 * @v: pointer to atomic_t
1223 * If (@v == @old), atomically updates @v to @new with release ordering.
1227 * Return: The original value of @v.
1230 atomic_cmpxchg_release(atomic_t *v, int old, int new) in atomic_cmpxchg_release() argument
1233 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg_release()
1234 return raw_atomic_cmpxchg_release(v, old, new); in atomic_cmpxchg_release()
1239 * @v: pointer to atomic_t
1243 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
1247 * Return: The original value of @v.
1250 atomic_cmpxchg_relaxed(atomic_t *v, int old, int new) in atomic_cmpxchg_relaxed() argument
1252 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg_relaxed()
1253 return raw_atomic_cmpxchg_relaxed(v, old, new); in atomic_cmpxchg_relaxed()
1258 * @v: pointer to atomic_t
1262 * If (@v == @old), atomically updates @v to @new with full ordering.
1263 * Otherwise, updates @old to the current value of @v.
1270 atomic_try_cmpxchg(atomic_t *v, int *old, int new) in atomic_try_cmpxchg() argument
1273 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg()
1275 return raw_atomic_try_cmpxchg(v, old, new); in atomic_try_cmpxchg()
1280 * @v: pointer to atomic_t
1284 * If (@v == @old), atomically updates @v to @new with acquire ordering.
1285 * Otherwise, updates @old to the current value of @v.
1292 atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) in atomic_try_cmpxchg_acquire() argument
1294 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg_acquire()
1296 return raw_atomic_try_cmpxchg_acquire(v, old, new); in atomic_try_cmpxchg_acquire()
1301 * @v: pointer to atomic_t
1305 * If (@v == @old), atomically updates @v to @new with release ordering.
1306 * Otherwise, updates @old to the current value of @v.
1313 atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) in atomic_try_cmpxchg_release() argument
1316 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg_release()
1318 return raw_atomic_try_cmpxchg_release(v, old, new); in atomic_try_cmpxchg_release()
1323 * @v: pointer to atomic_t
1327 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
1328 * Otherwise, updates @old to the current value of @v.
1335 atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new) in atomic_try_cmpxchg_relaxed() argument
1337 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg_relaxed()
1339 return raw_atomic_try_cmpxchg_relaxed(v, old, new); in atomic_try_cmpxchg_relaxed()
1345 * @v: pointer to atomic_t
1347 * Atomically updates @v to (@v - @i) with full ordering.
1351 * Return: @true if the resulting value of @v is zero, @false otherwise.
1354 atomic_sub_and_test(int i, atomic_t *v) in atomic_sub_and_test() argument
1357 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub_and_test()
1358 return raw_atomic_sub_and_test(i, v); in atomic_sub_and_test()
1363 * @v: pointer to atomic_t
1365 * Atomically updates @v to (@v - 1) with full ordering.
1369 * Return: @true if the resulting value of @v is zero, @false otherwise.
1372 atomic_dec_and_test(atomic_t *v) in atomic_dec_and_test() argument
1375 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_and_test()
1376 return raw_atomic_dec_and_test(v); in atomic_dec_and_test()
1381 * @v: pointer to atomic_t
1383 * Atomically updates @v to (@v + 1) with full ordering.
1387 * Return: @true if the resulting value of @v is zero, @false otherwise.
1390 atomic_inc_and_test(atomic_t *v) in atomic_inc_and_test() argument
1393 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_and_test()
1394 return raw_atomic_inc_and_test(v); in atomic_inc_and_test()
1400 * @v: pointer to atomic_t
1402 * Atomically updates @v to (@v + @i) with full ordering.
1406 * Return: @true if the resulting value of @v is negative, @false otherwise.
1409 atomic_add_negative(int i, atomic_t *v) in atomic_add_negative() argument
1412 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative()
1413 return raw_atomic_add_negative(i, v); in atomic_add_negative()
1419 * @v: pointer to atomic_t
1421 * Atomically updates @v to (@v + @i) with acquire ordering.
1425 * Return: @true if the resulting value of @v is negative, @false otherwise.
1428 atomic_add_negative_acquire(int i, atomic_t *v) in atomic_add_negative_acquire() argument
1430 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative_acquire()
1431 return raw_atomic_add_negative_acquire(i, v); in atomic_add_negative_acquire()
1437 * @v: pointer to atomic_t
1439 * Atomically updates @v to (@v + @i) with release ordering.
1443 * Return: @true if the resulting value of @v is negative, @false otherwise.
1446 atomic_add_negative_release(int i, atomic_t *v) in atomic_add_negative_release() argument
1449 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative_release()
1450 return raw_atomic_add_negative_release(i, v); in atomic_add_negative_release()
1456 * @v: pointer to atomic_t
1458 * Atomically updates @v to (@v + @i) with relaxed ordering.
1462 * Return: @true if the resulting value of @v is negative, @false otherwise.
1465 atomic_add_negative_relaxed(int i, atomic_t *v) in atomic_add_negative_relaxed() argument
1467 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative_relaxed()
1468 return raw_atomic_add_negative_relaxed(i, v); in atomic_add_negative_relaxed()
1473 * @v: pointer to atomic_t
1477 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
1481 * Return: The original value of @v.
1484 atomic_fetch_add_unless(atomic_t *v, int a, int u) in atomic_fetch_add_unless() argument
1487 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_add_unless()
1488 return raw_atomic_fetch_add_unless(v, a, u); in atomic_fetch_add_unless()
1493 * @v: pointer to atomic_t
1497 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
1501 * Return: @true if @v was updated, @false otherwise.
1504 atomic_add_unless(atomic_t *v, int a, int u) in atomic_add_unless() argument
1507 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_unless()
1508 return raw_atomic_add_unless(v, a, u); in atomic_add_unless()
1513 * @v: pointer to atomic_t
1515 * If (@v != 0), atomically updates @v to (@v + 1) with full ordering.
1519 * Return: @true if @v was updated, @false otherwise.
1522 atomic_inc_not_zero(atomic_t *v) in atomic_inc_not_zero() argument
1525 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_not_zero()
1526 return raw_atomic_inc_not_zero(v); in atomic_inc_not_zero()
1531 * @v: pointer to atomic_t
1533 * If (@v >= 0), atomically updates @v to (@v + 1) with full ordering.
1537 * Return: @true if @v was updated, @false otherwise.
1540 atomic_inc_unless_negative(atomic_t *v) in atomic_inc_unless_negative() argument
1543 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_unless_negative()
1544 return raw_atomic_inc_unless_negative(v); in atomic_inc_unless_negative()
1549 * @v: pointer to atomic_t
1551 * If (@v <= 0), atomically updates @v to (@v - 1) with full ordering.
1555 * Return: @true if @v was updated, @false otherwise.
1558 atomic_dec_unless_positive(atomic_t *v) in atomic_dec_unless_positive() argument
1561 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_unless_positive()
1562 return raw_atomic_dec_unless_positive(v); in atomic_dec_unless_positive()
1567 * @v: pointer to atomic_t
1569 * If (@v > 0), atomically updates @v to (@v - 1) with full ordering.
1573 * Return: The old value of (@v - 1), regardless of whether @v was updated.
1576 atomic_dec_if_positive(atomic_t *v) in atomic_dec_if_positive() argument
1579 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_if_positive()
1580 return raw_atomic_dec_if_positive(v); in atomic_dec_if_positive()
1585 * @v: pointer to atomic64_t
1587 * Atomically loads the value of @v with relaxed ordering.
1591 * Return: The value loaded from @v.
1594 atomic64_read(const atomic64_t *v) in atomic64_read() argument
1596 instrument_atomic_read(v, sizeof(*v)); in atomic64_read()
1597 return raw_atomic64_read(v); in atomic64_read()
1602 * @v: pointer to atomic64_t
1604 * Atomically loads the value of @v with acquire ordering.
1608 * Return: The value loaded from @v.
1611 atomic64_read_acquire(const atomic64_t *v) in atomic64_read_acquire() argument
1613 instrument_atomic_read(v, sizeof(*v)); in atomic64_read_acquire()
1614 return raw_atomic64_read_acquire(v); in atomic64_read_acquire()
1619 * @v: pointer to atomic64_t
1622 * Atomically sets @v to @i with relaxed ordering.
1629 atomic64_set(atomic64_t *v, s64 i) in atomic64_set() argument
1631 instrument_atomic_write(v, sizeof(*v)); in atomic64_set()
1632 raw_atomic64_set(v, i); in atomic64_set()
1637 * @v: pointer to atomic64_t
1640 * Atomically sets @v to @i with release ordering.
1647 atomic64_set_release(atomic64_t *v, s64 i) in atomic64_set_release() argument
1650 instrument_atomic_write(v, sizeof(*v)); in atomic64_set_release()
1651 raw_atomic64_set_release(v, i); in atomic64_set_release()
1657 * @v: pointer to atomic64_t
1659 * Atomically updates @v to (@v + @i) with relaxed ordering.
1666 atomic64_add(s64 i, atomic64_t *v) in atomic64_add() argument
1668 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add()
1669 raw_atomic64_add(i, v); in atomic64_add()
1675 * @v: pointer to atomic64_t
1677 * Atomically updates @v to (@v + @i) with full ordering.
1681 * Return: The updated value of @v.
1684 atomic64_add_return(s64 i, atomic64_t *v) in atomic64_add_return() argument
1687 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return()
1688 return raw_atomic64_add_return(i, v); in atomic64_add_return()
1694 * @v: pointer to atomic64_t
1696 * Atomically updates @v to (@v + @i) with acquire ordering.
1700 * Return: The updated value of @v.
1703 atomic64_add_return_acquire(s64 i, atomic64_t *v) in atomic64_add_return_acquire() argument
1705 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return_acquire()
1706 return raw_atomic64_add_return_acquire(i, v); in atomic64_add_return_acquire()
1712 * @v: pointer to atomic64_t
1714 * Atomically updates @v to (@v + @i) with release ordering.
1718 * Return: The updated value of @v.
1721 atomic64_add_return_release(s64 i, atomic64_t *v) in atomic64_add_return_release() argument
1724 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return_release()
1725 return raw_atomic64_add_return_release(i, v); in atomic64_add_return_release()
1731 * @v: pointer to atomic64_t
1733 * Atomically updates @v to (@v + @i) with relaxed ordering.
1737 * Return: The updated value of @v.
1740 atomic64_add_return_relaxed(s64 i, atomic64_t *v) in atomic64_add_return_relaxed() argument
1742 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return_relaxed()
1743 return raw_atomic64_add_return_relaxed(i, v); in atomic64_add_return_relaxed()
1749 * @v: pointer to atomic64_t
1751 * Atomically updates @v to (@v + @i) with full ordering.
1755 * Return: The original value of @v.
1758 atomic64_fetch_add(s64 i, atomic64_t *v) in atomic64_fetch_add() argument
1761 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add()
1762 return raw_atomic64_fetch_add(i, v); in atomic64_fetch_add()
1768 * @v: pointer to atomic64_t
1770 * Atomically updates @v to (@v + @i) with acquire ordering.
1774 * Return: The original value of @v.
1777 atomic64_fetch_add_acquire(s64 i, atomic64_t *v) in atomic64_fetch_add_acquire() argument
1779 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_acquire()
1780 return raw_atomic64_fetch_add_acquire(i, v); in atomic64_fetch_add_acquire()
1786 * @v: pointer to atomic64_t
1788 * Atomically updates @v to (@v + @i) with release ordering.
1792 * Return: The original value of @v.
1795 atomic64_fetch_add_release(s64 i, atomic64_t *v) in atomic64_fetch_add_release() argument
1798 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_release()
1799 return raw_atomic64_fetch_add_release(i, v); in atomic64_fetch_add_release()
1805 * @v: pointer to atomic64_t
1807 * Atomically updates @v to (@v + @i) with relaxed ordering.
1811 * Return: The original value of @v.
1814 atomic64_fetch_add_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_add_relaxed() argument
1816 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_relaxed()
1817 return raw_atomic64_fetch_add_relaxed(i, v); in atomic64_fetch_add_relaxed()
1823 * @v: pointer to atomic64_t
1825 * Atomically updates @v to (@v - @i) with relaxed ordering.
1832 atomic64_sub(s64 i, atomic64_t *v) in atomic64_sub() argument
1834 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub()
1835 raw_atomic64_sub(i, v); in atomic64_sub()
1841 * @v: pointer to atomic64_t
1843 * Atomically updates @v to (@v - @i) with full ordering.
1847 * Return: The updated value of @v.
1850 atomic64_sub_return(s64 i, atomic64_t *v) in atomic64_sub_return() argument
1853 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return()
1854 return raw_atomic64_sub_return(i, v); in atomic64_sub_return()
1860 * @v: pointer to atomic64_t
1862 * Atomically updates @v to (@v - @i) with acquire ordering.
1866 * Return: The updated value of @v.
1869 atomic64_sub_return_acquire(s64 i, atomic64_t *v) in atomic64_sub_return_acquire() argument
1871 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return_acquire()
1872 return raw_atomic64_sub_return_acquire(i, v); in atomic64_sub_return_acquire()
1878 * @v: pointer to atomic64_t
1880 * Atomically updates @v to (@v - @i) with release ordering.
1884 * Return: The updated value of @v.
1887 atomic64_sub_return_release(s64 i, atomic64_t *v) in atomic64_sub_return_release() argument
1890 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return_release()
1891 return raw_atomic64_sub_return_release(i, v); in atomic64_sub_return_release()
1897 * @v: pointer to atomic64_t
1899 * Atomically updates @v to (@v - @i) with relaxed ordering.
1903 * Return: The updated value of @v.
1906 atomic64_sub_return_relaxed(s64 i, atomic64_t *v) in atomic64_sub_return_relaxed() argument
1908 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return_relaxed()
1909 return raw_atomic64_sub_return_relaxed(i, v); in atomic64_sub_return_relaxed()
1915 * @v: pointer to atomic64_t
1917 * Atomically updates @v to (@v - @i) with full ordering.
1921 * Return: The original value of @v.
1924 atomic64_fetch_sub(s64 i, atomic64_t *v) in atomic64_fetch_sub() argument
1927 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub()
1928 return raw_atomic64_fetch_sub(i, v); in atomic64_fetch_sub()
1934 * @v: pointer to atomic64_t
1936 * Atomically updates @v to (@v - @i) with acquire ordering.
1940 * Return: The original value of @v.
1943 atomic64_fetch_sub_acquire(s64 i, atomic64_t *v) in atomic64_fetch_sub_acquire() argument
1945 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub_acquire()
1946 return raw_atomic64_fetch_sub_acquire(i, v); in atomic64_fetch_sub_acquire()
1952 * @v: pointer to atomic64_t
1954 * Atomically updates @v to (@v - @i) with release ordering.
1958 * Return: The original value of @v.
1961 atomic64_fetch_sub_release(s64 i, atomic64_t *v) in atomic64_fetch_sub_release() argument
1964 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub_release()
1965 return raw_atomic64_fetch_sub_release(i, v); in atomic64_fetch_sub_release()
1971 * @v: pointer to atomic64_t
1973 * Atomically updates @v to (@v - @i) with relaxed ordering.
1977 * Return: The original value of @v.
1980 atomic64_fetch_sub_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_sub_relaxed() argument
1982 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub_relaxed()
1983 return raw_atomic64_fetch_sub_relaxed(i, v); in atomic64_fetch_sub_relaxed()
1988 * @v: pointer to atomic64_t
1990 * Atomically updates @v to (@v + 1) with relaxed ordering.
1997 atomic64_inc(atomic64_t *v) in atomic64_inc() argument
1999 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc()
2000 raw_atomic64_inc(v); in atomic64_inc()
2005 * @v: pointer to atomic64_t
2007 * Atomically updates @v to (@v + 1) with full ordering.
2011 * Return: The updated value of @v.
2014 atomic64_inc_return(atomic64_t *v) in atomic64_inc_return() argument
2017 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return()
2018 return raw_atomic64_inc_return(v); in atomic64_inc_return()
2023 * @v: pointer to atomic64_t
2025 * Atomically updates @v to (@v + 1) with acquire ordering.
2029 * Return: The updated value of @v.
2032 atomic64_inc_return_acquire(atomic64_t *v) in atomic64_inc_return_acquire() argument
2034 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return_acquire()
2035 return raw_atomic64_inc_return_acquire(v); in atomic64_inc_return_acquire()
2040 * @v: pointer to atomic64_t
2042 * Atomically updates @v to (@v + 1) with release ordering.
2046 * Return: The updated value of @v.
2049 atomic64_inc_return_release(atomic64_t *v) in atomic64_inc_return_release() argument
2052 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return_release()
2053 return raw_atomic64_inc_return_release(v); in atomic64_inc_return_release()
2058 * @v: pointer to atomic64_t
2060 * Atomically updates @v to (@v + 1) with relaxed ordering.
2064 * Return: The updated value of @v.
2067 atomic64_inc_return_relaxed(atomic64_t *v) in atomic64_inc_return_relaxed() argument
2069 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return_relaxed()
2070 return raw_atomic64_inc_return_relaxed(v); in atomic64_inc_return_relaxed()
2075 * @v: pointer to atomic64_t
2077 * Atomically updates @v to (@v + 1) with full ordering.
2081 * Return: The original value of @v.
2084 atomic64_fetch_inc(atomic64_t *v) in atomic64_fetch_inc() argument
2087 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc()
2088 return raw_atomic64_fetch_inc(v); in atomic64_fetch_inc()
2093 * @v: pointer to atomic64_t
2095 * Atomically updates @v to (@v + 1) with acquire ordering.
2099 * Return: The original value of @v.
2102 atomic64_fetch_inc_acquire(atomic64_t *v) in atomic64_fetch_inc_acquire() argument
2104 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc_acquire()
2105 return raw_atomic64_fetch_inc_acquire(v); in atomic64_fetch_inc_acquire()
2110 * @v: pointer to atomic64_t
2112 * Atomically updates @v to (@v + 1) with release ordering.
2116 * Return: The original value of @v.
2119 atomic64_fetch_inc_release(atomic64_t *v) in atomic64_fetch_inc_release() argument
2122 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc_release()
2123 return raw_atomic64_fetch_inc_release(v); in atomic64_fetch_inc_release()
2128 * @v: pointer to atomic64_t
2130 * Atomically updates @v to (@v + 1) with relaxed ordering.
2134 * Return: The original value of @v.
2137 atomic64_fetch_inc_relaxed(atomic64_t *v) in atomic64_fetch_inc_relaxed() argument
2139 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc_relaxed()
2140 return raw_atomic64_fetch_inc_relaxed(v); in atomic64_fetch_inc_relaxed()
2145 * @v: pointer to atomic64_t
2147 * Atomically updates @v to (@v - 1) with relaxed ordering.
2154 atomic64_dec(atomic64_t *v) in atomic64_dec() argument
2156 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec()
2157 raw_atomic64_dec(v); in atomic64_dec()
2162 * @v: pointer to atomic64_t
2164 * Atomically updates @v to (@v - 1) with full ordering.
2168 * Return: The updated value of @v.
2171 atomic64_dec_return(atomic64_t *v) in atomic64_dec_return() argument
2174 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return()
2175 return raw_atomic64_dec_return(v); in atomic64_dec_return()
2180 * @v: pointer to atomic64_t
2182 * Atomically updates @v to (@v - 1) with acquire ordering.
2186 * Return: The updated value of @v.
2189 atomic64_dec_return_acquire(atomic64_t *v) in atomic64_dec_return_acquire() argument
2191 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return_acquire()
2192 return raw_atomic64_dec_return_acquire(v); in atomic64_dec_return_acquire()
2197 * @v: pointer to atomic64_t
2199 * Atomically updates @v to (@v - 1) with release ordering.
2203 * Return: The updated value of @v.
2206 atomic64_dec_return_release(atomic64_t *v) in atomic64_dec_return_release() argument
2209 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return_release()
2210 return raw_atomic64_dec_return_release(v); in atomic64_dec_return_release()
2215 * @v: pointer to atomic64_t
2217 * Atomically updates @v to (@v - 1) with relaxed ordering.
2221 * Return: The updated value of @v.
2224 atomic64_dec_return_relaxed(atomic64_t *v) in atomic64_dec_return_relaxed() argument
2226 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return_relaxed()
2227 return raw_atomic64_dec_return_relaxed(v); in atomic64_dec_return_relaxed()
2232 * @v: pointer to atomic64_t
2234 * Atomically updates @v to (@v - 1) with full ordering.
2238 * Return: The original value of @v.
2241 atomic64_fetch_dec(atomic64_t *v) in atomic64_fetch_dec() argument
2244 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec()
2245 return raw_atomic64_fetch_dec(v); in atomic64_fetch_dec()
2250 * @v: pointer to atomic64_t
2252 * Atomically updates @v to (@v - 1) with acquire ordering.
2256 * Return: The original value of @v.
2259 atomic64_fetch_dec_acquire(atomic64_t *v) in atomic64_fetch_dec_acquire() argument
2261 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec_acquire()
2262 return raw_atomic64_fetch_dec_acquire(v); in atomic64_fetch_dec_acquire()
2267 * @v: pointer to atomic64_t
2269 * Atomically updates @v to (@v - 1) with release ordering.
2273 * Return: The original value of @v.
2276 atomic64_fetch_dec_release(atomic64_t *v) in atomic64_fetch_dec_release() argument
2279 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec_release()
2280 return raw_atomic64_fetch_dec_release(v); in atomic64_fetch_dec_release()
2285 * @v: pointer to atomic64_t
2287 * Atomically updates @v to (@v - 1) with relaxed ordering.
2291 * Return: The original value of @v.
2294 atomic64_fetch_dec_relaxed(atomic64_t *v) in atomic64_fetch_dec_relaxed() argument
2296 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec_relaxed()
2297 return raw_atomic64_fetch_dec_relaxed(v); in atomic64_fetch_dec_relaxed()
2303 * @v: pointer to atomic64_t
2305 * Atomically updates @v to (@v & @i) with relaxed ordering.
2312 atomic64_and(s64 i, atomic64_t *v) in atomic64_and() argument
2314 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_and()
2315 raw_atomic64_and(i, v); in atomic64_and()
2321 * @v: pointer to atomic64_t
2323 * Atomically updates @v to (@v & @i) with full ordering.
2327 * Return: The original value of @v.
2330 atomic64_fetch_and(s64 i, atomic64_t *v) in atomic64_fetch_and() argument
2333 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and()
2334 return raw_atomic64_fetch_and(i, v); in atomic64_fetch_and()
2340 * @v: pointer to atomic64_t
2342 * Atomically updates @v to (@v & @i) with acquire ordering.
2346 * Return: The original value of @v.
2349 atomic64_fetch_and_acquire(s64 i, atomic64_t *v) in atomic64_fetch_and_acquire() argument
2351 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and_acquire()
2352 return raw_atomic64_fetch_and_acquire(i, v); in atomic64_fetch_and_acquire()
2358 * @v: pointer to atomic64_t
2360 * Atomically updates @v to (@v & @i) with release ordering.
2364 * Return: The original value of @v.
2367 atomic64_fetch_and_release(s64 i, atomic64_t *v) in atomic64_fetch_and_release() argument
2370 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and_release()
2371 return raw_atomic64_fetch_and_release(i, v); in atomic64_fetch_and_release()
2377 * @v: pointer to atomic64_t
2379 * Atomically updates @v to (@v & @i) with relaxed ordering.
2383 * Return: The original value of @v.
2386 atomic64_fetch_and_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_and_relaxed() argument
2388 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and_relaxed()
2389 return raw_atomic64_fetch_and_relaxed(i, v); in atomic64_fetch_and_relaxed()
2395 * @v: pointer to atomic64_t
2397 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
2404 atomic64_andnot(s64 i, atomic64_t *v) in atomic64_andnot() argument
2406 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_andnot()
2407 raw_atomic64_andnot(i, v); in atomic64_andnot()
2413 * @v: pointer to atomic64_t
2415 * Atomically updates @v to (@v & ~@i) with full ordering.
2419 * Return: The original value of @v.
2422 atomic64_fetch_andnot(s64 i, atomic64_t *v) in atomic64_fetch_andnot() argument
2425 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot()
2426 return raw_atomic64_fetch_andnot(i, v); in atomic64_fetch_andnot()
2432 * @v: pointer to atomic64_t
2434 * Atomically updates @v to (@v & ~@i) with acquire ordering.
2438 * Return: The original value of @v.
2441 atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) in atomic64_fetch_andnot_acquire() argument
2443 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot_acquire()
2444 return raw_atomic64_fetch_andnot_acquire(i, v); in atomic64_fetch_andnot_acquire()
2450 * @v: pointer to atomic64_t
2452 * Atomically updates @v to (@v & ~@i) with release ordering.
2456 * Return: The original value of @v.
2459 atomic64_fetch_andnot_release(s64 i, atomic64_t *v) in atomic64_fetch_andnot_release() argument
2462 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot_release()
2463 return raw_atomic64_fetch_andnot_release(i, v); in atomic64_fetch_andnot_release()
2469 * @v: pointer to atomic64_t
2471 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
2475 * Return: The original value of @v.
2478 atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_andnot_relaxed() argument
2480 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot_relaxed()
2481 return raw_atomic64_fetch_andnot_relaxed(i, v); in atomic64_fetch_andnot_relaxed()
2487 * @v: pointer to atomic64_t
2489 * Atomically updates @v to (@v | @i) with relaxed ordering.
2496 atomic64_or(s64 i, atomic64_t *v) in atomic64_or() argument
2498 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_or()
2499 raw_atomic64_or(i, v); in atomic64_or()
2505 * @v: pointer to atomic64_t
2507 * Atomically updates @v to (@v | @i) with full ordering.
2511 * Return: The original value of @v.
2514 atomic64_fetch_or(s64 i, atomic64_t *v) in atomic64_fetch_or() argument
2517 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or()
2518 return raw_atomic64_fetch_or(i, v); in atomic64_fetch_or()
2524 * @v: pointer to atomic64_t
2526 * Atomically updates @v to (@v | @i) with acquire ordering.
2530 * Return: The original value of @v.
2533 atomic64_fetch_or_acquire(s64 i, atomic64_t *v) in atomic64_fetch_or_acquire() argument
2535 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or_acquire()
2536 return raw_atomic64_fetch_or_acquire(i, v); in atomic64_fetch_or_acquire()
2542 * @v: pointer to atomic64_t
2544 * Atomically updates @v to (@v | @i) with release ordering.
2548 * Return: The original value of @v.
2551 atomic64_fetch_or_release(s64 i, atomic64_t *v) in atomic64_fetch_or_release() argument
2554 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or_release()
2555 return raw_atomic64_fetch_or_release(i, v); in atomic64_fetch_or_release()
2561 * @v: pointer to atomic64_t
2563 * Atomically updates @v to (@v | @i) with relaxed ordering.
2567 * Return: The original value of @v.
2570 atomic64_fetch_or_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_or_relaxed() argument
2572 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or_relaxed()
2573 return raw_atomic64_fetch_or_relaxed(i, v); in atomic64_fetch_or_relaxed()
2579 * @v: pointer to atomic64_t
2581 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
2588 atomic64_xor(s64 i, atomic64_t *v) in atomic64_xor() argument
2590 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xor()
2591 raw_atomic64_xor(i, v); in atomic64_xor()
2597 * @v: pointer to atomic64_t
2599 * Atomically updates @v to (@v ^ @i) with full ordering.
2603 * Return: The original value of @v.
2606 atomic64_fetch_xor(s64 i, atomic64_t *v) in atomic64_fetch_xor() argument
2609 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor()
2610 return raw_atomic64_fetch_xor(i, v); in atomic64_fetch_xor()
2616 * @v: pointer to atomic64_t
2618 * Atomically updates @v to (@v ^ @i) with acquire ordering.
2622 * Return: The original value of @v.
2625 atomic64_fetch_xor_acquire(s64 i, atomic64_t *v) in atomic64_fetch_xor_acquire() argument
2627 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor_acquire()
2628 return raw_atomic64_fetch_xor_acquire(i, v); in atomic64_fetch_xor_acquire()
2634 * @v: pointer to atomic64_t
2636 * Atomically updates @v to (@v ^ @i) with release ordering.
2640 * Return: The original value of @v.
2643 atomic64_fetch_xor_release(s64 i, atomic64_t *v) in atomic64_fetch_xor_release() argument
2646 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor_release()
2647 return raw_atomic64_fetch_xor_release(i, v); in atomic64_fetch_xor_release()
2653 * @v: pointer to atomic64_t
2655 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
2659 * Return: The original value of @v.
2662 atomic64_fetch_xor_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_xor_relaxed() argument
2664 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor_relaxed()
2665 return raw_atomic64_fetch_xor_relaxed(i, v); in atomic64_fetch_xor_relaxed()
2670 * @v: pointer to atomic64_t
2673 * Atomically updates @v to @new with full ordering.
2677 * Return: The original value of @v.
2680 atomic64_xchg(atomic64_t *v, s64 new) in atomic64_xchg() argument
2683 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg()
2684 return raw_atomic64_xchg(v, new); in atomic64_xchg()
2689 * @v: pointer to atomic64_t
2692 * Atomically updates @v to @new with acquire ordering.
2696 * Return: The original value of @v.
2699 atomic64_xchg_acquire(atomic64_t *v, s64 new) in atomic64_xchg_acquire() argument
2701 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg_acquire()
2702 return raw_atomic64_xchg_acquire(v, new); in atomic64_xchg_acquire()
2707 * @v: pointer to atomic64_t
2710 * Atomically updates @v to @new with release ordering.
2714 * Return: The original value of @v.
2717 atomic64_xchg_release(atomic64_t *v, s64 new) in atomic64_xchg_release() argument
2720 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg_release()
2721 return raw_atomic64_xchg_release(v, new); in atomic64_xchg_release()
2726 * @v: pointer to atomic64_t
2729 * Atomically updates @v to @new with relaxed ordering.
2733 * Return: The original value of @v.
2736 atomic64_xchg_relaxed(atomic64_t *v, s64 new) in atomic64_xchg_relaxed() argument
2738 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg_relaxed()
2739 return raw_atomic64_xchg_relaxed(v, new); in atomic64_xchg_relaxed()
2744 * @v: pointer to atomic64_t
2748 * If (@v == @old), atomically updates @v to @new with full ordering.
2752 * Return: The original value of @v.
2755 atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg() argument
2758 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg()
2759 return raw_atomic64_cmpxchg(v, old, new); in atomic64_cmpxchg()
2764 * @v: pointer to atomic64_t
2768 * If (@v == @old), atomically updates @v to @new with acquire ordering.
2772 * Return: The original value of @v.
2775 atomic64_cmpxchg_acquire(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg_acquire() argument
2777 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg_acquire()
2778 return raw_atomic64_cmpxchg_acquire(v, old, new); in atomic64_cmpxchg_acquire()
2783 * @v: pointer to atomic64_t
2787 * If (@v == @old), atomically updates @v to @new with release ordering.
2791 * Return: The original value of @v.
2794 atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg_release() argument
2797 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg_release()
2798 return raw_atomic64_cmpxchg_release(v, old, new); in atomic64_cmpxchg_release()
2803 * @v: pointer to atomic64_t
2807 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
2811 * Return: The original value of @v.
2814 atomic64_cmpxchg_relaxed(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg_relaxed() argument
2816 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg_relaxed()
2817 return raw_atomic64_cmpxchg_relaxed(v, old, new); in atomic64_cmpxchg_relaxed()
2822 * @v: pointer to atomic64_t
2826 * If (@v == @old), atomically updates @v to @new with full ordering.
2827 * Otherwise, updates @old to the current value of @v.
2834 atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg() argument
2837 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg()
2839 return raw_atomic64_try_cmpxchg(v, old, new); in atomic64_try_cmpxchg()
2844 * @v: pointer to atomic64_t
2848 * If (@v == @old), atomically updates @v to @new with acquire ordering.
2849 * Otherwise, updates @old to the current value of @v.
2856 atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg_acquire() argument
2858 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg_acquire()
2860 return raw_atomic64_try_cmpxchg_acquire(v, old, new); in atomic64_try_cmpxchg_acquire()
2865 * @v: pointer to atomic64_t
2869 * If (@v == @old), atomically updates @v to @new with release ordering.
2870 * Otherwise, updates @old to the current value of @v.
2877 atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg_release() argument
2880 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg_release()
2882 return raw_atomic64_try_cmpxchg_release(v, old, new); in atomic64_try_cmpxchg_release()
2887 * @v: pointer to atomic64_t
2891 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
2892 * Otherwise, updates @old to the current value of @v.
2899 atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg_relaxed() argument
2901 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg_relaxed()
2903 return raw_atomic64_try_cmpxchg_relaxed(v, old, new); in atomic64_try_cmpxchg_relaxed()
2909 * @v: pointer to atomic64_t
2911 * Atomically updates @v to (@v - @i) with full ordering.
2915 * Return: @true if the resulting value of @v is zero, @false otherwise.
2918 atomic64_sub_and_test(s64 i, atomic64_t *v) in atomic64_sub_and_test() argument
2921 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_and_test()
2922 return raw_atomic64_sub_and_test(i, v); in atomic64_sub_and_test()
2927 * @v: pointer to atomic64_t
2929 * Atomically updates @v to (@v - 1) with full ordering.
2933 * Return: @true if the resulting value of @v is zero, @false otherwise.
2936 atomic64_dec_and_test(atomic64_t *v) in atomic64_dec_and_test() argument
2939 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_and_test()
2940 return raw_atomic64_dec_and_test(v); in atomic64_dec_and_test()
2945 * @v: pointer to atomic64_t
2947 * Atomically updates @v to (@v + 1) with full ordering.
2951 * Return: @true if the resulting value of @v is zero, @false otherwise.
2954 atomic64_inc_and_test(atomic64_t *v) in atomic64_inc_and_test() argument
2957 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_and_test()
2958 return raw_atomic64_inc_and_test(v); in atomic64_inc_and_test()
2964 * @v: pointer to atomic64_t
2966 * Atomically updates @v to (@v + @i) with full ordering.
2970 * Return: @true if the resulting value of @v is negative, @false otherwise.
2973 atomic64_add_negative(s64 i, atomic64_t *v) in atomic64_add_negative() argument
2976 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative()
2977 return raw_atomic64_add_negative(i, v); in atomic64_add_negative()
2983 * @v: pointer to atomic64_t
2985 * Atomically updates @v to (@v + @i) with acquire ordering.
2989 * Return: @true if the resulting value of @v is negative, @false otherwise.
2992 atomic64_add_negative_acquire(s64 i, atomic64_t *v) in atomic64_add_negative_acquire() argument
2994 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative_acquire()
2995 return raw_atomic64_add_negative_acquire(i, v); in atomic64_add_negative_acquire()
3001 * @v: pointer to atomic64_t
3003 * Atomically updates @v to (@v + @i) with release ordering.
3007 * Return: @true if the resulting value of @v is negative, @false otherwise.
3010 atomic64_add_negative_release(s64 i, atomic64_t *v) in atomic64_add_negative_release() argument
3013 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative_release()
3014 return raw_atomic64_add_negative_release(i, v); in atomic64_add_negative_release()
3020 * @v: pointer to atomic64_t
3022 * Atomically updates @v to (@v + @i) with relaxed ordering.
3026 * Return: @true if the resulting value of @v is negative, @false otherwise.
3029 atomic64_add_negative_relaxed(s64 i, atomic64_t *v) in atomic64_add_negative_relaxed() argument
3031 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative_relaxed()
3032 return raw_atomic64_add_negative_relaxed(i, v); in atomic64_add_negative_relaxed()
3037 * @v: pointer to atomic64_t
3041 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
3045 * Return: The original value of @v.
3048 atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) in atomic64_fetch_add_unless() argument
3051 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_unless()
3052 return raw_atomic64_fetch_add_unless(v, a, u); in atomic64_fetch_add_unless()
3057 * @v: pointer to atomic64_t
3061 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
3065 * Return: @true if @v was updated, @false otherwise.
3068 atomic64_add_unless(atomic64_t *v, s64 a, s64 u) in atomic64_add_unless() argument
3071 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_unless()
3072 return raw_atomic64_add_unless(v, a, u); in atomic64_add_unless()
3077 * @v: pointer to atomic64_t
3079 * If (@v != 0), atomically updates @v to (@v + 1) with full ordering.
3083 * Return: @true if @v was updated, @false otherwise.
3086 atomic64_inc_not_zero(atomic64_t *v) in atomic64_inc_not_zero() argument
3089 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_not_zero()
3090 return raw_atomic64_inc_not_zero(v); in atomic64_inc_not_zero()
3095 * @v: pointer to atomic64_t
3097 * If (@v >= 0), atomically updates @v to (@v + 1) with full ordering.
3101 * Return: @true if @v was updated, @false otherwise.
3104 atomic64_inc_unless_negative(atomic64_t *v) in atomic64_inc_unless_negative() argument
3107 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_unless_negative()
3108 return raw_atomic64_inc_unless_negative(v); in atomic64_inc_unless_negative()
3113 * @v: pointer to atomic64_t
3115 * If (@v <= 0), atomically updates @v to (@v - 1) with full ordering.
3119 * Return: @true if @v was updated, @false otherwise.
3122 atomic64_dec_unless_positive(atomic64_t *v) in atomic64_dec_unless_positive() argument
3125 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_unless_positive()
3126 return raw_atomic64_dec_unless_positive(v); in atomic64_dec_unless_positive()
3131 * @v: pointer to atomic64_t
3133 * If (@v > 0), atomically updates @v to (@v - 1) with full ordering.
3137 * Return: The old value of (@v - 1), regardless of whether @v was updated.
3140 atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
3143 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_if_positive()
3144 return raw_atomic64_dec_if_positive(v); in atomic64_dec_if_positive()
3149 * @v: pointer to atomic_long_t
3151 * Atomically loads the value of @v with relaxed ordering.
3155 * Return: The value loaded from @v.
3158 atomic_long_read(const atomic_long_t *v) in atomic_long_read() argument
3160 instrument_atomic_read(v, sizeof(*v)); in atomic_long_read()
3161 return raw_atomic_long_read(v); in atomic_long_read()
3166 * @v: pointer to atomic_long_t
3168 * Atomically loads the value of @v with acquire ordering.
3172 * Return: The value loaded from @v.
3175 atomic_long_read_acquire(const atomic_long_t *v) in atomic_long_read_acquire() argument
3177 instrument_atomic_read(v, sizeof(*v)); in atomic_long_read_acquire()
3178 return raw_atomic_long_read_acquire(v); in atomic_long_read_acquire()
3183 * @v: pointer to atomic_long_t
3186 * Atomically sets @v to @i with relaxed ordering.
3193 atomic_long_set(atomic_long_t *v, long i) in atomic_long_set() argument
3195 instrument_atomic_write(v, sizeof(*v)); in atomic_long_set()
3196 raw_atomic_long_set(v, i); in atomic_long_set()
3201 * @v: pointer to atomic_long_t
3204 * Atomically sets @v to @i with release ordering.
3211 atomic_long_set_release(atomic_long_t *v, long i) in atomic_long_set_release() argument
3214 instrument_atomic_write(v, sizeof(*v)); in atomic_long_set_release()
3215 raw_atomic_long_set_release(v, i); in atomic_long_set_release()
3221 * @v: pointer to atomic_long_t
3223 * Atomically updates @v to (@v + @i) with relaxed ordering.
3230 atomic_long_add(long i, atomic_long_t *v) in atomic_long_add() argument
3232 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add()
3233 raw_atomic_long_add(i, v); in atomic_long_add()
3239 * @v: pointer to atomic_long_t
3241 * Atomically updates @v to (@v + @i) with full ordering.
3245 * Return: The updated value of @v.
3248 atomic_long_add_return(long i, atomic_long_t *v) in atomic_long_add_return() argument
3251 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return()
3252 return raw_atomic_long_add_return(i, v); in atomic_long_add_return()
3258 * @v: pointer to atomic_long_t
3260 * Atomically updates @v to (@v + @i) with acquire ordering.
3264 * Return: The updated value of @v.
3267 atomic_long_add_return_acquire(long i, atomic_long_t *v) in atomic_long_add_return_acquire() argument
3269 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return_acquire()
3270 return raw_atomic_long_add_return_acquire(i, v); in atomic_long_add_return_acquire()
3276 * @v: pointer to atomic_long_t
3278 * Atomically updates @v to (@v + @i) with release ordering.
3282 * Return: The updated value of @v.
3285 atomic_long_add_return_release(long i, atomic_long_t *v) in atomic_long_add_return_release() argument
3288 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return_release()
3289 return raw_atomic_long_add_return_release(i, v); in atomic_long_add_return_release()
3295 * @v: pointer to atomic_long_t
3297 * Atomically updates @v to (@v + @i) with relaxed ordering.
3301 * Return: The updated value of @v.
3304 atomic_long_add_return_relaxed(long i, atomic_long_t *v) in atomic_long_add_return_relaxed() argument
3306 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return_relaxed()
3307 return raw_atomic_long_add_return_relaxed(i, v); in atomic_long_add_return_relaxed()
3313 * @v: pointer to atomic_long_t
3315 * Atomically updates @v to (@v + @i) with full ordering.
3319 * Return: The original value of @v.
3322 atomic_long_fetch_add(long i, atomic_long_t *v) in atomic_long_fetch_add() argument
3325 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add()
3326 return raw_atomic_long_fetch_add(i, v); in atomic_long_fetch_add()
3332 * @v: pointer to atomic_long_t
3334 * Atomically updates @v to (@v + @i) with acquire ordering.
3338 * Return: The original value of @v.
3341 atomic_long_fetch_add_acquire(long i, atomic_long_t *v) in atomic_long_fetch_add_acquire() argument
3343 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_acquire()
3344 return raw_atomic_long_fetch_add_acquire(i, v); in atomic_long_fetch_add_acquire()
3350 * @v: pointer to atomic_long_t
3352 * Atomically updates @v to (@v + @i) with release ordering.
3356 * Return: The original value of @v.
3359 atomic_long_fetch_add_release(long i, atomic_long_t *v) in atomic_long_fetch_add_release() argument
3362 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_release()
3363 return raw_atomic_long_fetch_add_release(i, v); in atomic_long_fetch_add_release()
3369 * @v: pointer to atomic_long_t
3371 * Atomically updates @v to (@v + @i) with relaxed ordering.
3375 * Return: The original value of @v.
3378 atomic_long_fetch_add_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_add_relaxed() argument
3380 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_relaxed()
3381 return raw_atomic_long_fetch_add_relaxed(i, v); in atomic_long_fetch_add_relaxed()
3387 * @v: pointer to atomic_long_t
3389 * Atomically updates @v to (@v - @i) with relaxed ordering.
3396 atomic_long_sub(long i, atomic_long_t *v) in atomic_long_sub() argument
3398 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub()
3399 raw_atomic_long_sub(i, v); in atomic_long_sub()
3405 * @v: pointer to atomic_long_t
3407 * Atomically updates @v to (@v - @i) with full ordering.
3411 * Return: The updated value of @v.
3414 atomic_long_sub_return(long i, atomic_long_t *v) in atomic_long_sub_return() argument
3417 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return()
3418 return raw_atomic_long_sub_return(i, v); in atomic_long_sub_return()
3424 * @v: pointer to atomic_long_t
3426 * Atomically updates @v to (@v - @i) with acquire ordering.
3430 * Return: The updated value of @v.
3433 atomic_long_sub_return_acquire(long i, atomic_long_t *v) in atomic_long_sub_return_acquire() argument
3435 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return_acquire()
3436 return raw_atomic_long_sub_return_acquire(i, v); in atomic_long_sub_return_acquire()
3442 * @v: pointer to atomic_long_t
3444 * Atomically updates @v to (@v - @i) with release ordering.
3448 * Return: The updated value of @v.
3451 atomic_long_sub_return_release(long i, atomic_long_t *v) in atomic_long_sub_return_release() argument
3454 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return_release()
3455 return raw_atomic_long_sub_return_release(i, v); in atomic_long_sub_return_release()
3461 * @v: pointer to atomic_long_t
3463 * Atomically updates @v to (@v - @i) with relaxed ordering.
3467 * Return: The updated value of @v.
3470 atomic_long_sub_return_relaxed(long i, atomic_long_t *v) in atomic_long_sub_return_relaxed() argument
3472 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return_relaxed()
3473 return raw_atomic_long_sub_return_relaxed(i, v); in atomic_long_sub_return_relaxed()
3479 * @v: pointer to atomic_long_t
3481 * Atomically updates @v to (@v - @i) with full ordering.
3485 * Return: The original value of @v.
3488 atomic_long_fetch_sub(long i, atomic_long_t *v) in atomic_long_fetch_sub() argument
3491 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub()
3492 return raw_atomic_long_fetch_sub(i, v); in atomic_long_fetch_sub()
3498 * @v: pointer to atomic_long_t
3500 * Atomically updates @v to (@v - @i) with acquire ordering.
3504 * Return: The original value of @v.
3507 atomic_long_fetch_sub_acquire(long i, atomic_long_t *v) in atomic_long_fetch_sub_acquire() argument
3509 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub_acquire()
3510 return raw_atomic_long_fetch_sub_acquire(i, v); in atomic_long_fetch_sub_acquire()
3516 * @v: pointer to atomic_long_t
3518 * Atomically updates @v to (@v - @i) with release ordering.
3522 * Return: The original value of @v.
3525 atomic_long_fetch_sub_release(long i, atomic_long_t *v) in atomic_long_fetch_sub_release() argument
3528 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub_release()
3529 return raw_atomic_long_fetch_sub_release(i, v); in atomic_long_fetch_sub_release()
3535 * @v: pointer to atomic_long_t
3537 * Atomically updates @v to (@v - @i) with relaxed ordering.
3541 * Return: The original value of @v.
3544 atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_sub_relaxed() argument
3546 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub_relaxed()
3547 return raw_atomic_long_fetch_sub_relaxed(i, v); in atomic_long_fetch_sub_relaxed()
3552 * @v: pointer to atomic_long_t
3554 * Atomically updates @v to (@v + 1) with relaxed ordering.
3561 atomic_long_inc(atomic_long_t *v) in atomic_long_inc() argument
3563 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc()
3564 raw_atomic_long_inc(v); in atomic_long_inc()
3569 * @v: pointer to atomic_long_t
3571 * Atomically updates @v to (@v + 1) with full ordering.
3575 * Return: The updated value of @v.
3578 atomic_long_inc_return(atomic_long_t *v) in atomic_long_inc_return() argument
3581 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return()
3582 return raw_atomic_long_inc_return(v); in atomic_long_inc_return()
3587 * @v: pointer to atomic_long_t
3589 * Atomically updates @v to (@v + 1) with acquire ordering.
3593 * Return: The updated value of @v.
3596 atomic_long_inc_return_acquire(atomic_long_t *v) in atomic_long_inc_return_acquire() argument
3598 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return_acquire()
3599 return raw_atomic_long_inc_return_acquire(v); in atomic_long_inc_return_acquire()
3604 * @v: pointer to atomic_long_t
3606 * Atomically updates @v to (@v + 1) with release ordering.
3610 * Return: The updated value of @v.
3613 atomic_long_inc_return_release(atomic_long_t *v) in atomic_long_inc_return_release() argument
3616 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return_release()
3617 return raw_atomic_long_inc_return_release(v); in atomic_long_inc_return_release()
3622 * @v: pointer to atomic_long_t
3624 * Atomically updates @v to (@v + 1) with relaxed ordering.
3628 * Return: The updated value of @v.
3631 atomic_long_inc_return_relaxed(atomic_long_t *v) in atomic_long_inc_return_relaxed() argument
3633 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return_relaxed()
3634 return raw_atomic_long_inc_return_relaxed(v); in atomic_long_inc_return_relaxed()
3639 * @v: pointer to atomic_long_t
3641 * Atomically updates @v to (@v + 1) with full ordering.
3645 * Return: The original value of @v.
3648 atomic_long_fetch_inc(atomic_long_t *v) in atomic_long_fetch_inc() argument
3651 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc()
3652 return raw_atomic_long_fetch_inc(v); in atomic_long_fetch_inc()
3657 * @v: pointer to atomic_long_t
3659 * Atomically updates @v to (@v + 1) with acquire ordering.
3663 * Return: The original value of @v.
3666 atomic_long_fetch_inc_acquire(atomic_long_t *v) in atomic_long_fetch_inc_acquire() argument
3668 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc_acquire()
3669 return raw_atomic_long_fetch_inc_acquire(v); in atomic_long_fetch_inc_acquire()
3674 * @v: pointer to atomic_long_t
3676 * Atomically updates @v to (@v + 1) with release ordering.
3680 * Return: The original value of @v.
3683 atomic_long_fetch_inc_release(atomic_long_t *v) in atomic_long_fetch_inc_release() argument
3686 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc_release()
3687 return raw_atomic_long_fetch_inc_release(v); in atomic_long_fetch_inc_release()
3692 * @v: pointer to atomic_long_t
3694 * Atomically updates @v to (@v + 1) with relaxed ordering.
3698 * Return: The original value of @v.
3701 atomic_long_fetch_inc_relaxed(atomic_long_t *v) in atomic_long_fetch_inc_relaxed() argument
3703 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc_relaxed()
3704 return raw_atomic_long_fetch_inc_relaxed(v); in atomic_long_fetch_inc_relaxed()
3709 * @v: pointer to atomic_long_t
3711 * Atomically updates @v to (@v - 1) with relaxed ordering.
3718 atomic_long_dec(atomic_long_t *v) in atomic_long_dec() argument
3720 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec()
3721 raw_atomic_long_dec(v); in atomic_long_dec()
3726 * @v: pointer to atomic_long_t
3728 * Atomically updates @v to (@v - 1) with full ordering.
3732 * Return: The updated value of @v.
3735 atomic_long_dec_return(atomic_long_t *v) in atomic_long_dec_return() argument
3738 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return()
3739 return raw_atomic_long_dec_return(v); in atomic_long_dec_return()
3744 * @v: pointer to atomic_long_t
3746 * Atomically updates @v to (@v - 1) with acquire ordering.
3750 * Return: The updated value of @v.
3753 atomic_long_dec_return_acquire(atomic_long_t *v) in atomic_long_dec_return_acquire() argument
3755 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return_acquire()
3756 return raw_atomic_long_dec_return_acquire(v); in atomic_long_dec_return_acquire()
3761 * @v: pointer to atomic_long_t
3763 * Atomically updates @v to (@v - 1) with release ordering.
3767 * Return: The updated value of @v.
3770 atomic_long_dec_return_release(atomic_long_t *v) in atomic_long_dec_return_release() argument
3773 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return_release()
3774 return raw_atomic_long_dec_return_release(v); in atomic_long_dec_return_release()
3779 * @v: pointer to atomic_long_t
3781 * Atomically updates @v to (@v - 1) with relaxed ordering.
3785 * Return: The updated value of @v.
3788 atomic_long_dec_return_relaxed(atomic_long_t *v) in atomic_long_dec_return_relaxed() argument
3790 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return_relaxed()
3791 return raw_atomic_long_dec_return_relaxed(v); in atomic_long_dec_return_relaxed()
3796 * @v: pointer to atomic_long_t
3798 * Atomically updates @v to (@v - 1) with full ordering.
3802 * Return: The original value of @v.
3805 atomic_long_fetch_dec(atomic_long_t *v) in atomic_long_fetch_dec() argument
3808 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec()
3809 return raw_atomic_long_fetch_dec(v); in atomic_long_fetch_dec()
3814 * @v: pointer to atomic_long_t
3816 * Atomically updates @v to (@v - 1) with acquire ordering.
3820 * Return: The original value of @v.
3823 atomic_long_fetch_dec_acquire(atomic_long_t *v) in atomic_long_fetch_dec_acquire() argument
3825 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec_acquire()
3826 return raw_atomic_long_fetch_dec_acquire(v); in atomic_long_fetch_dec_acquire()
3831 * @v: pointer to atomic_long_t
3833 * Atomically updates @v to (@v - 1) with release ordering.
3837 * Return: The original value of @v.
3840 atomic_long_fetch_dec_release(atomic_long_t *v) in atomic_long_fetch_dec_release() argument
3843 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec_release()
3844 return raw_atomic_long_fetch_dec_release(v); in atomic_long_fetch_dec_release()
3849 * @v: pointer to atomic_long_t
3851 * Atomically updates @v to (@v - 1) with relaxed ordering.
3855 * Return: The original value of @v.
3858 atomic_long_fetch_dec_relaxed(atomic_long_t *v) in atomic_long_fetch_dec_relaxed() argument
3860 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec_relaxed()
3861 return raw_atomic_long_fetch_dec_relaxed(v); in atomic_long_fetch_dec_relaxed()
3867 * @v: pointer to atomic_long_t
3869 * Atomically updates @v to (@v & @i) with relaxed ordering.
3876 atomic_long_and(long i, atomic_long_t *v) in atomic_long_and() argument
3878 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_and()
3879 raw_atomic_long_and(i, v); in atomic_long_and()
3885 * @v: pointer to atomic_long_t
3887 * Atomically updates @v to (@v & @i) with full ordering.
3891 * Return: The original value of @v.
3894 atomic_long_fetch_and(long i, atomic_long_t *v) in atomic_long_fetch_and() argument
3897 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and()
3898 return raw_atomic_long_fetch_and(i, v); in atomic_long_fetch_and()
3904 * @v: pointer to atomic_long_t
3906 * Atomically updates @v to (@v & @i) with acquire ordering.
3910 * Return: The original value of @v.
3913 atomic_long_fetch_and_acquire(long i, atomic_long_t *v) in atomic_long_fetch_and_acquire() argument
3915 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and_acquire()
3916 return raw_atomic_long_fetch_and_acquire(i, v); in atomic_long_fetch_and_acquire()
3922 * @v: pointer to atomic_long_t
3924 * Atomically updates @v to (@v & @i) with release ordering.
3928 * Return: The original value of @v.
3931 atomic_long_fetch_and_release(long i, atomic_long_t *v) in atomic_long_fetch_and_release() argument
3934 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and_release()
3935 return raw_atomic_long_fetch_and_release(i, v); in atomic_long_fetch_and_release()
3941 * @v: pointer to atomic_long_t
3943 * Atomically updates @v to (@v & @i) with relaxed ordering.
3947 * Return: The original value of @v.
3950 atomic_long_fetch_and_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_and_relaxed() argument
3952 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and_relaxed()
3953 return raw_atomic_long_fetch_and_relaxed(i, v); in atomic_long_fetch_and_relaxed()
3959 * @v: pointer to atomic_long_t
3961 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
3968 atomic_long_andnot(long i, atomic_long_t *v) in atomic_long_andnot() argument
3970 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_andnot()
3971 raw_atomic_long_andnot(i, v); in atomic_long_andnot()
3977 * @v: pointer to atomic_long_t
3979 * Atomically updates @v to (@v & ~@i) with full ordering.
3983 * Return: The original value of @v.
3986 atomic_long_fetch_andnot(long i, atomic_long_t *v) in atomic_long_fetch_andnot() argument
3989 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot()
3990 return raw_atomic_long_fetch_andnot(i, v); in atomic_long_fetch_andnot()
3996 * @v: pointer to atomic_long_t
3998 * Atomically updates @v to (@v & ~@i) with acquire ordering.
4002 * Return: The original value of @v.
4005 atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v) in atomic_long_fetch_andnot_acquire() argument
4007 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot_acquire()
4008 return raw_atomic_long_fetch_andnot_acquire(i, v); in atomic_long_fetch_andnot_acquire()
4014 * @v: pointer to atomic_long_t
4016 * Atomically updates @v to (@v & ~@i) with release ordering.
4020 * Return: The original value of @v.
4023 atomic_long_fetch_andnot_release(long i, atomic_long_t *v) in atomic_long_fetch_andnot_release() argument
4026 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot_release()
4027 return raw_atomic_long_fetch_andnot_release(i, v); in atomic_long_fetch_andnot_release()
4033 * @v: pointer to atomic_long_t
4035 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
4039 * Return: The original value of @v.
4042 atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_andnot_relaxed() argument
4044 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot_relaxed()
4045 return raw_atomic_long_fetch_andnot_relaxed(i, v); in atomic_long_fetch_andnot_relaxed()
4051 * @v: pointer to atomic_long_t
4053 * Atomically updates @v to (@v | @i) with relaxed ordering.
4060 atomic_long_or(long i, atomic_long_t *v) in atomic_long_or() argument
4062 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_or()
4063 raw_atomic_long_or(i, v); in atomic_long_or()
4069 * @v: pointer to atomic_long_t
4071 * Atomically updates @v to (@v | @i) with full ordering.
4075 * Return: The original value of @v.
4078 atomic_long_fetch_or(long i, atomic_long_t *v) in atomic_long_fetch_or() argument
4081 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or()
4082 return raw_atomic_long_fetch_or(i, v); in atomic_long_fetch_or()
4088 * @v: pointer to atomic_long_t
4090 * Atomically updates @v to (@v | @i) with acquire ordering.
4094 * Return: The original value of @v.
4097 atomic_long_fetch_or_acquire(long i, atomic_long_t *v) in atomic_long_fetch_or_acquire() argument
4099 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or_acquire()
4100 return raw_atomic_long_fetch_or_acquire(i, v); in atomic_long_fetch_or_acquire()
4106 * @v: pointer to atomic_long_t
4108 * Atomically updates @v to (@v | @i) with release ordering.
4112 * Return: The original value of @v.
4115 atomic_long_fetch_or_release(long i, atomic_long_t *v) in atomic_long_fetch_or_release() argument
4118 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or_release()
4119 return raw_atomic_long_fetch_or_release(i, v); in atomic_long_fetch_or_release()
4125 * @v: pointer to atomic_long_t
4127 * Atomically updates @v to (@v | @i) with relaxed ordering.
4131 * Return: The original value of @v.
4134 atomic_long_fetch_or_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_or_relaxed() argument
4136 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or_relaxed()
4137 return raw_atomic_long_fetch_or_relaxed(i, v); in atomic_long_fetch_or_relaxed()
4143 * @v: pointer to atomic_long_t
4145 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
4152 atomic_long_xor(long i, atomic_long_t *v) in atomic_long_xor() argument
4154 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xor()
4155 raw_atomic_long_xor(i, v); in atomic_long_xor()
4161 * @v: pointer to atomic_long_t
4163 * Atomically updates @v to (@v ^ @i) with full ordering.
4167 * Return: The original value of @v.
4170 atomic_long_fetch_xor(long i, atomic_long_t *v) in atomic_long_fetch_xor() argument
4173 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor()
4174 return raw_atomic_long_fetch_xor(i, v); in atomic_long_fetch_xor()
4180 * @v: pointer to atomic_long_t
4182 * Atomically updates @v to (@v ^ @i) with acquire ordering.
4186 * Return: The original value of @v.
4189 atomic_long_fetch_xor_acquire(long i, atomic_long_t *v) in atomic_long_fetch_xor_acquire() argument
4191 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor_acquire()
4192 return raw_atomic_long_fetch_xor_acquire(i, v); in atomic_long_fetch_xor_acquire()
4198 * @v: pointer to atomic_long_t
4200 * Atomically updates @v to (@v ^ @i) with release ordering.
4204 * Return: The original value of @v.
4207 atomic_long_fetch_xor_release(long i, atomic_long_t *v) in atomic_long_fetch_xor_release() argument
4210 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor_release()
4211 return raw_atomic_long_fetch_xor_release(i, v); in atomic_long_fetch_xor_release()
4217 * @v: pointer to atomic_long_t
4219 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
4223 * Return: The original value of @v.
4226 atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_xor_relaxed() argument
4228 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor_relaxed()
4229 return raw_atomic_long_fetch_xor_relaxed(i, v); in atomic_long_fetch_xor_relaxed()
4234 * @v: pointer to atomic_long_t
4237 * Atomically updates @v to @new with full ordering.
4241 * Return: The original value of @v.
4244 atomic_long_xchg(atomic_long_t *v, long new) in atomic_long_xchg() argument
4247 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg()
4248 return raw_atomic_long_xchg(v, new); in atomic_long_xchg()
4253 * @v: pointer to atomic_long_t
4256 * Atomically updates @v to @new with acquire ordering.
4260 * Return: The original value of @v.
4263 atomic_long_xchg_acquire(atomic_long_t *v, long new) in atomic_long_xchg_acquire() argument
4265 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg_acquire()
4266 return raw_atomic_long_xchg_acquire(v, new); in atomic_long_xchg_acquire()
4271 * @v: pointer to atomic_long_t
4274 * Atomically updates @v to @new with release ordering.
4278 * Return: The original value of @v.
4281 atomic_long_xchg_release(atomic_long_t *v, long new) in atomic_long_xchg_release() argument
4284 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg_release()
4285 return raw_atomic_long_xchg_release(v, new); in atomic_long_xchg_release()
4290 * @v: pointer to atomic_long_t
4293 * Atomically updates @v to @new with relaxed ordering.
4297 * Return: The original value of @v.
4300 atomic_long_xchg_relaxed(atomic_long_t *v, long new) in atomic_long_xchg_relaxed() argument
4302 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg_relaxed()
4303 return raw_atomic_long_xchg_relaxed(v, new); in atomic_long_xchg_relaxed()
4308 * @v: pointer to atomic_long_t
4312 * If (@v == @old), atomically updates @v to @new with full ordering.
4316 * Return: The original value of @v.
4319 atomic_long_cmpxchg(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg() argument
4322 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg()
4323 return raw_atomic_long_cmpxchg(v, old, new); in atomic_long_cmpxchg()
4328 * @v: pointer to atomic_long_t
4332 * If (@v == @old), atomically updates @v to @new with acquire ordering.
4336 * Return: The original value of @v.
4339 atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg_acquire() argument
4341 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg_acquire()
4342 return raw_atomic_long_cmpxchg_acquire(v, old, new); in atomic_long_cmpxchg_acquire()
4347 * @v: pointer to atomic_long_t
4351 * If (@v == @old), atomically updates @v to @new with release ordering.
4355 * Return: The original value of @v.
4358 atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg_release() argument
4361 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg_release()
4362 return raw_atomic_long_cmpxchg_release(v, old, new); in atomic_long_cmpxchg_release()
4367 * @v: pointer to atomic_long_t
4371 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
4375 * Return: The original value of @v.
4378 atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg_relaxed() argument
4380 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg_relaxed()
4381 return raw_atomic_long_cmpxchg_relaxed(v, old, new); in atomic_long_cmpxchg_relaxed()
4386 * @v: pointer to atomic_long_t
4390 * If (@v == @old), atomically updates @v to @new with full ordering.
4391 * Otherwise, updates @old to the current value of @v.
4398 atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg() argument
4401 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg()
4403 return raw_atomic_long_try_cmpxchg(v, old, new); in atomic_long_try_cmpxchg()
4408 * @v: pointer to atomic_long_t
4412 * If (@v == @old), atomically updates @v to @new with acquire ordering.
4413 * Otherwise, updates @old to the current value of @v.
4420 atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg_acquire() argument
4422 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg_acquire()
4424 return raw_atomic_long_try_cmpxchg_acquire(v, old, new); in atomic_long_try_cmpxchg_acquire()
4429 * @v: pointer to atomic_long_t
4433 * If (@v == @old), atomically updates @v to @new with release ordering.
4434 * Otherwise, updates @old to the current value of @v.
4441 atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg_release() argument
4444 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg_release()
4446 return raw_atomic_long_try_cmpxchg_release(v, old, new); in atomic_long_try_cmpxchg_release()
4451 * @v: pointer to atomic_long_t
4455 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
4456 * Otherwise, updates @old to the current value of @v.
4463 atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg_relaxed() argument
4465 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg_relaxed()
4467 return raw_atomic_long_try_cmpxchg_relaxed(v, old, new); in atomic_long_try_cmpxchg_relaxed()
4473 * @v: pointer to atomic_long_t
4475 * Atomically updates @v to (@v - @i) with full ordering.
4479 * Return: @true if the resulting value of @v is zero, @false otherwise.
4482 atomic_long_sub_and_test(long i, atomic_long_t *v) in atomic_long_sub_and_test() argument
4485 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_and_test()
4486 return raw_atomic_long_sub_and_test(i, v); in atomic_long_sub_and_test()
4491 * @v: pointer to atomic_long_t
4493 * Atomically updates @v to (@v - 1) with full ordering.
4497 * Return: @true if the resulting value of @v is zero, @false otherwise.
4500 atomic_long_dec_and_test(atomic_long_t *v) in atomic_long_dec_and_test() argument
4503 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_and_test()
4504 return raw_atomic_long_dec_and_test(v); in atomic_long_dec_and_test()
4509 * @v: pointer to atomic_long_t
4511 * Atomically updates @v to (@v + 1) with full ordering.
4515 * Return: @true if the resulting value of @v is zero, @false otherwise.
4518 atomic_long_inc_and_test(atomic_long_t *v) in atomic_long_inc_and_test() argument
4521 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_and_test()
4522 return raw_atomic_long_inc_and_test(v); in atomic_long_inc_and_test()
4528 * @v: pointer to atomic_long_t
4530 * Atomically updates @v to (@v + @i) with full ordering.
4534 * Return: @true if the resulting value of @v is negative, @false otherwise.
4537 atomic_long_add_negative(long i, atomic_long_t *v) in atomic_long_add_negative() argument
4540 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative()
4541 return raw_atomic_long_add_negative(i, v); in atomic_long_add_negative()
4547 * @v: pointer to atomic_long_t
4549 * Atomically updates @v to (@v + @i) with acquire ordering.
4553 * Return: @true if the resulting value of @v is negative, @false otherwise.
4556 atomic_long_add_negative_acquire(long i, atomic_long_t *v) in atomic_long_add_negative_acquire() argument
4558 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative_acquire()
4559 return raw_atomic_long_add_negative_acquire(i, v); in atomic_long_add_negative_acquire()
4565 * @v: pointer to atomic_long_t
4567 * Atomically updates @v to (@v + @i) with release ordering.
4571 * Return: @true if the resulting value of @v is negative, @false otherwise.
4574 atomic_long_add_negative_release(long i, atomic_long_t *v) in atomic_long_add_negative_release() argument
4577 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative_release()
4578 return raw_atomic_long_add_negative_release(i, v); in atomic_long_add_negative_release()
4584 * @v: pointer to atomic_long_t
4586 * Atomically updates @v to (@v + @i) with relaxed ordering.
4590 * Return: @true if the resulting value of @v is negative, @false otherwise.
4593 atomic_long_add_negative_relaxed(long i, atomic_long_t *v) in atomic_long_add_negative_relaxed() argument
4595 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative_relaxed()
4596 return raw_atomic_long_add_negative_relaxed(i, v); in atomic_long_add_negative_relaxed()
4601 * @v: pointer to atomic_long_t
4605 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
4609 * Return: The original value of @v.
4612 atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u) in atomic_long_fetch_add_unless() argument
4615 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_unless()
4616 return raw_atomic_long_fetch_add_unless(v, a, u); in atomic_long_fetch_add_unless()
4621 * @v: pointer to atomic_long_t
4625 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
4629 * Return: @true if @v was updated, @false otherwise.
4632 atomic_long_add_unless(atomic_long_t *v, long a, long u) in atomic_long_add_unless() argument
4635 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_unless()
4636 return raw_atomic_long_add_unless(v, a, u); in atomic_long_add_unless()
4641 * @v: pointer to atomic_long_t
4643 * If (@v != 0), atomically updates @v to (@v + 1) with full ordering.
4647 * Return: @true if @v was updated, @false otherwise.
4650 atomic_long_inc_not_zero(atomic_long_t *v) in atomic_long_inc_not_zero() argument
4653 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_not_zero()
4654 return raw_atomic_long_inc_not_zero(v); in atomic_long_inc_not_zero()
4659 * @v: pointer to atomic_long_t
4661 * If (@v >= 0), atomically updates @v to (@v + 1) with full ordering.
4665 * Return: @true if @v was updated, @false otherwise.
4668 atomic_long_inc_unless_negative(atomic_long_t *v) in atomic_long_inc_unless_negative() argument
4671 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_unless_negative()
4672 return raw_atomic_long_inc_unless_negative(v); in atomic_long_inc_unless_negative()
4677 * @v: pointer to atomic_long_t
4679 * If (@v <= 0), atomically updates @v to (@v - 1) with full ordering.
4683 * Return: @true if @v was updated, @false otherwise.
4686 atomic_long_dec_unless_positive(atomic_long_t *v) in atomic_long_dec_unless_positive() argument
4689 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_unless_positive()
4690 return raw_atomic_long_dec_unless_positive(v); in atomic_long_dec_unless_positive()
4695 * @v: pointer to atomic_long_t
4697 * If (@v > 0), atomically updates @v to (@v - 1) with full ordering.
4701 * Return: The old value of (@v - 1), regardless of whether @v was updated.
4704 atomic_long_dec_if_positive(atomic_long_t *v) in atomic_long_dec_if_positive() argument
4707 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_if_positive()
4708 return raw_atomic_long_dec_if_positive(v); in atomic_long_dec_if_positive()