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.
1185 * Otherwise, @v is not modified and relaxed ordering is provided.
1189 * Return: The original value of @v.
1192 atomic_cmpxchg(atomic_t *v, int old, int new) in atomic_cmpxchg() argument
1195 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg()
1196 return raw_atomic_cmpxchg(v, old, new); in atomic_cmpxchg()
1201 * @v: pointer to atomic_t
1205 * If (@v == @old), atomically updates @v to @new with acquire ordering.
1206 * Otherwise, @v is not modified and relaxed ordering is provided.
1210 * Return: The original value of @v.
1213 atomic_cmpxchg_acquire(atomic_t *v, int old, int new) in atomic_cmpxchg_acquire() argument
1215 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg_acquire()
1216 return raw_atomic_cmpxchg_acquire(v, old, new); in atomic_cmpxchg_acquire()
1221 * @v: pointer to atomic_t
1225 * If (@v == @old), atomically updates @v to @new with release ordering.
1226 * Otherwise, @v is not modified and relaxed ordering is provided.
1230 * Return: The original value of @v.
1233 atomic_cmpxchg_release(atomic_t *v, int old, int new) in atomic_cmpxchg_release() argument
1236 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg_release()
1237 return raw_atomic_cmpxchg_release(v, old, new); in atomic_cmpxchg_release()
1242 * @v: pointer to atomic_t
1246 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
1247 * Otherwise, @v is not modified and relaxed ordering is provided.
1251 * Return: The original value of @v.
1254 atomic_cmpxchg_relaxed(atomic_t *v, int old, int new) in atomic_cmpxchg_relaxed() argument
1256 instrument_atomic_read_write(v, sizeof(*v)); in atomic_cmpxchg_relaxed()
1257 return raw_atomic_cmpxchg_relaxed(v, old, new); in atomic_cmpxchg_relaxed()
1262 * @v: pointer to atomic_t
1266 * If (@v == @old), atomically updates @v to @new with full ordering.
1267 * Otherwise, @v is not modified, @old is updated to the current value of @v,
1275 atomic_try_cmpxchg(atomic_t *v, int *old, int new) in atomic_try_cmpxchg() argument
1278 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg()
1280 return raw_atomic_try_cmpxchg(v, old, new); in atomic_try_cmpxchg()
1285 * @v: pointer to atomic_t
1289 * If (@v == @old), atomically updates @v to @new with acquire ordering.
1290 * Otherwise, @v is not modified, @old is updated to the current value of @v,
1298 atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) in atomic_try_cmpxchg_acquire() argument
1300 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg_acquire()
1302 return raw_atomic_try_cmpxchg_acquire(v, old, new); in atomic_try_cmpxchg_acquire()
1307 * @v: pointer to atomic_t
1311 * If (@v == @old), atomically updates @v to @new with release ordering.
1312 * Otherwise, @v is not modified, @old is updated to the current value of @v,
1320 atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) in atomic_try_cmpxchg_release() argument
1323 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg_release()
1325 return raw_atomic_try_cmpxchg_release(v, old, new); in atomic_try_cmpxchg_release()
1330 * @v: pointer to atomic_t
1334 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
1335 * Otherwise, @v is not modified, @old is updated to the current value of @v,
1343 atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new) in atomic_try_cmpxchg_relaxed() argument
1345 instrument_atomic_read_write(v, sizeof(*v)); in atomic_try_cmpxchg_relaxed()
1347 return raw_atomic_try_cmpxchg_relaxed(v, old, new); in atomic_try_cmpxchg_relaxed()
1353 * @v: pointer to atomic_t
1355 * Atomically updates @v to (@v - @i) with full ordering.
1359 * Return: @true if the resulting value of @v is zero, @false otherwise.
1362 atomic_sub_and_test(int i, atomic_t *v) in atomic_sub_and_test() argument
1365 instrument_atomic_read_write(v, sizeof(*v)); in atomic_sub_and_test()
1366 return raw_atomic_sub_and_test(i, v); in atomic_sub_and_test()
1371 * @v: pointer to atomic_t
1373 * Atomically updates @v to (@v - 1) with full ordering.
1377 * Return: @true if the resulting value of @v is zero, @false otherwise.
1380 atomic_dec_and_test(atomic_t *v) in atomic_dec_and_test() argument
1383 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_and_test()
1384 return raw_atomic_dec_and_test(v); in atomic_dec_and_test()
1389 * @v: pointer to atomic_t
1391 * Atomically updates @v to (@v + 1) with full ordering.
1395 * Return: @true if the resulting value of @v is zero, @false otherwise.
1398 atomic_inc_and_test(atomic_t *v) in atomic_inc_and_test() argument
1401 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_and_test()
1402 return raw_atomic_inc_and_test(v); in atomic_inc_and_test()
1408 * @v: pointer to atomic_t
1410 * Atomically updates @v to (@v + @i) with full ordering.
1414 * Return: @true if the resulting value of @v is negative, @false otherwise.
1417 atomic_add_negative(int i, atomic_t *v) in atomic_add_negative() argument
1420 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative()
1421 return raw_atomic_add_negative(i, v); in atomic_add_negative()
1427 * @v: pointer to atomic_t
1429 * Atomically updates @v to (@v + @i) with acquire ordering.
1433 * Return: @true if the resulting value of @v is negative, @false otherwise.
1436 atomic_add_negative_acquire(int i, atomic_t *v) in atomic_add_negative_acquire() argument
1438 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative_acquire()
1439 return raw_atomic_add_negative_acquire(i, v); in atomic_add_negative_acquire()
1445 * @v: pointer to atomic_t
1447 * Atomically updates @v to (@v + @i) with release ordering.
1451 * Return: @true if the resulting value of @v is negative, @false otherwise.
1454 atomic_add_negative_release(int i, atomic_t *v) in atomic_add_negative_release() argument
1457 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative_release()
1458 return raw_atomic_add_negative_release(i, v); in atomic_add_negative_release()
1464 * @v: pointer to atomic_t
1466 * Atomically updates @v to (@v + @i) with relaxed ordering.
1470 * Return: @true if the resulting value of @v is negative, @false otherwise.
1473 atomic_add_negative_relaxed(int i, atomic_t *v) in atomic_add_negative_relaxed() argument
1475 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_negative_relaxed()
1476 return raw_atomic_add_negative_relaxed(i, v); in atomic_add_negative_relaxed()
1481 * @v: pointer to atomic_t
1485 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
1486 * Otherwise, @v is not modified and relaxed ordering is provided.
1490 * Return: The original value of @v.
1493 atomic_fetch_add_unless(atomic_t *v, int a, int u) in atomic_fetch_add_unless() argument
1496 instrument_atomic_read_write(v, sizeof(*v)); in atomic_fetch_add_unless()
1497 return raw_atomic_fetch_add_unless(v, a, u); in atomic_fetch_add_unless()
1502 * @v: pointer to atomic_t
1506 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
1507 * Otherwise, @v is not modified and relaxed ordering is provided.
1511 * Return: @true if @v was updated, @false otherwise.
1514 atomic_add_unless(atomic_t *v, int a, int u) in atomic_add_unless() argument
1517 instrument_atomic_read_write(v, sizeof(*v)); in atomic_add_unless()
1518 return raw_atomic_add_unless(v, a, u); in atomic_add_unless()
1523 * @v: pointer to atomic_t
1525 * If (@v != 0), atomically updates @v to (@v + 1) with full ordering.
1526 * Otherwise, @v is not modified and relaxed ordering is provided.
1530 * Return: @true if @v was updated, @false otherwise.
1533 atomic_inc_not_zero(atomic_t *v) in atomic_inc_not_zero() argument
1536 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_not_zero()
1537 return raw_atomic_inc_not_zero(v); in atomic_inc_not_zero()
1542 * @v: pointer to atomic_t
1544 * If (@v >= 0), atomically updates @v to (@v + 1) with full ordering.
1545 * Otherwise, @v is not modified and relaxed ordering is provided.
1549 * Return: @true if @v was updated, @false otherwise.
1552 atomic_inc_unless_negative(atomic_t *v) in atomic_inc_unless_negative() argument
1555 instrument_atomic_read_write(v, sizeof(*v)); in atomic_inc_unless_negative()
1556 return raw_atomic_inc_unless_negative(v); in atomic_inc_unless_negative()
1561 * @v: pointer to atomic_t
1563 * If (@v <= 0), atomically updates @v to (@v - 1) with full ordering.
1564 * Otherwise, @v is not modified and relaxed ordering is provided.
1568 * Return: @true if @v was updated, @false otherwise.
1571 atomic_dec_unless_positive(atomic_t *v) in atomic_dec_unless_positive() argument
1574 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_unless_positive()
1575 return raw_atomic_dec_unless_positive(v); in atomic_dec_unless_positive()
1580 * @v: pointer to atomic_t
1582 * If (@v > 0), atomically updates @v to (@v - 1) with full ordering.
1583 * Otherwise, @v is not modified and relaxed ordering is provided.
1587 * Return: The old value of (@v - 1), regardless of whether @v was updated.
1590 atomic_dec_if_positive(atomic_t *v) in atomic_dec_if_positive() argument
1593 instrument_atomic_read_write(v, sizeof(*v)); in atomic_dec_if_positive()
1594 return raw_atomic_dec_if_positive(v); in atomic_dec_if_positive()
1599 * @v: pointer to atomic64_t
1601 * Atomically loads the value of @v with relaxed ordering.
1605 * Return: The value loaded from @v.
1608 atomic64_read(const atomic64_t *v) in atomic64_read() argument
1610 instrument_atomic_read(v, sizeof(*v)); in atomic64_read()
1611 return raw_atomic64_read(v); in atomic64_read()
1616 * @v: pointer to atomic64_t
1618 * Atomically loads the value of @v with acquire ordering.
1622 * Return: The value loaded from @v.
1625 atomic64_read_acquire(const atomic64_t *v) in atomic64_read_acquire() argument
1627 instrument_atomic_read(v, sizeof(*v)); in atomic64_read_acquire()
1628 return raw_atomic64_read_acquire(v); in atomic64_read_acquire()
1633 * @v: pointer to atomic64_t
1636 * Atomically sets @v to @i with relaxed ordering.
1643 atomic64_set(atomic64_t *v, s64 i) in atomic64_set() argument
1645 instrument_atomic_write(v, sizeof(*v)); in atomic64_set()
1646 raw_atomic64_set(v, i); in atomic64_set()
1651 * @v: pointer to atomic64_t
1654 * Atomically sets @v to @i with release ordering.
1661 atomic64_set_release(atomic64_t *v, s64 i) in atomic64_set_release() argument
1664 instrument_atomic_write(v, sizeof(*v)); in atomic64_set_release()
1665 raw_atomic64_set_release(v, i); in atomic64_set_release()
1671 * @v: pointer to atomic64_t
1673 * Atomically updates @v to (@v + @i) with relaxed ordering.
1680 atomic64_add(s64 i, atomic64_t *v) in atomic64_add() argument
1682 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add()
1683 raw_atomic64_add(i, v); in atomic64_add()
1689 * @v: pointer to atomic64_t
1691 * Atomically updates @v to (@v + @i) with full ordering.
1695 * Return: The updated value of @v.
1698 atomic64_add_return(s64 i, atomic64_t *v) in atomic64_add_return() argument
1701 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return()
1702 return raw_atomic64_add_return(i, v); in atomic64_add_return()
1708 * @v: pointer to atomic64_t
1710 * Atomically updates @v to (@v + @i) with acquire ordering.
1714 * Return: The updated value of @v.
1717 atomic64_add_return_acquire(s64 i, atomic64_t *v) in atomic64_add_return_acquire() argument
1719 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return_acquire()
1720 return raw_atomic64_add_return_acquire(i, v); in atomic64_add_return_acquire()
1726 * @v: pointer to atomic64_t
1728 * Atomically updates @v to (@v + @i) with release ordering.
1732 * Return: The updated value of @v.
1735 atomic64_add_return_release(s64 i, atomic64_t *v) in atomic64_add_return_release() argument
1738 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return_release()
1739 return raw_atomic64_add_return_release(i, v); in atomic64_add_return_release()
1745 * @v: pointer to atomic64_t
1747 * Atomically updates @v to (@v + @i) with relaxed ordering.
1751 * Return: The updated value of @v.
1754 atomic64_add_return_relaxed(s64 i, atomic64_t *v) in atomic64_add_return_relaxed() argument
1756 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_return_relaxed()
1757 return raw_atomic64_add_return_relaxed(i, v); in atomic64_add_return_relaxed()
1763 * @v: pointer to atomic64_t
1765 * Atomically updates @v to (@v + @i) with full ordering.
1769 * Return: The original value of @v.
1772 atomic64_fetch_add(s64 i, atomic64_t *v) in atomic64_fetch_add() argument
1775 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add()
1776 return raw_atomic64_fetch_add(i, v); in atomic64_fetch_add()
1782 * @v: pointer to atomic64_t
1784 * Atomically updates @v to (@v + @i) with acquire ordering.
1788 * Return: The original value of @v.
1791 atomic64_fetch_add_acquire(s64 i, atomic64_t *v) in atomic64_fetch_add_acquire() argument
1793 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_acquire()
1794 return raw_atomic64_fetch_add_acquire(i, v); in atomic64_fetch_add_acquire()
1800 * @v: pointer to atomic64_t
1802 * Atomically updates @v to (@v + @i) with release ordering.
1806 * Return: The original value of @v.
1809 atomic64_fetch_add_release(s64 i, atomic64_t *v) in atomic64_fetch_add_release() argument
1812 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_release()
1813 return raw_atomic64_fetch_add_release(i, v); in atomic64_fetch_add_release()
1819 * @v: pointer to atomic64_t
1821 * Atomically updates @v to (@v + @i) with relaxed ordering.
1825 * Return: The original value of @v.
1828 atomic64_fetch_add_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_add_relaxed() argument
1830 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_relaxed()
1831 return raw_atomic64_fetch_add_relaxed(i, v); in atomic64_fetch_add_relaxed()
1837 * @v: pointer to atomic64_t
1839 * Atomically updates @v to (@v - @i) with relaxed ordering.
1846 atomic64_sub(s64 i, atomic64_t *v) in atomic64_sub() argument
1848 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub()
1849 raw_atomic64_sub(i, v); in atomic64_sub()
1855 * @v: pointer to atomic64_t
1857 * Atomically updates @v to (@v - @i) with full ordering.
1861 * Return: The updated value of @v.
1864 atomic64_sub_return(s64 i, atomic64_t *v) in atomic64_sub_return() argument
1867 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return()
1868 return raw_atomic64_sub_return(i, v); in atomic64_sub_return()
1874 * @v: pointer to atomic64_t
1876 * Atomically updates @v to (@v - @i) with acquire ordering.
1880 * Return: The updated value of @v.
1883 atomic64_sub_return_acquire(s64 i, atomic64_t *v) in atomic64_sub_return_acquire() argument
1885 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return_acquire()
1886 return raw_atomic64_sub_return_acquire(i, v); in atomic64_sub_return_acquire()
1892 * @v: pointer to atomic64_t
1894 * Atomically updates @v to (@v - @i) with release ordering.
1898 * Return: The updated value of @v.
1901 atomic64_sub_return_release(s64 i, atomic64_t *v) in atomic64_sub_return_release() argument
1904 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return_release()
1905 return raw_atomic64_sub_return_release(i, v); in atomic64_sub_return_release()
1911 * @v: pointer to atomic64_t
1913 * Atomically updates @v to (@v - @i) with relaxed ordering.
1917 * Return: The updated value of @v.
1920 atomic64_sub_return_relaxed(s64 i, atomic64_t *v) in atomic64_sub_return_relaxed() argument
1922 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_return_relaxed()
1923 return raw_atomic64_sub_return_relaxed(i, v); in atomic64_sub_return_relaxed()
1929 * @v: pointer to atomic64_t
1931 * Atomically updates @v to (@v - @i) with full ordering.
1935 * Return: The original value of @v.
1938 atomic64_fetch_sub(s64 i, atomic64_t *v) in atomic64_fetch_sub() argument
1941 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub()
1942 return raw_atomic64_fetch_sub(i, v); in atomic64_fetch_sub()
1948 * @v: pointer to atomic64_t
1950 * Atomically updates @v to (@v - @i) with acquire ordering.
1954 * Return: The original value of @v.
1957 atomic64_fetch_sub_acquire(s64 i, atomic64_t *v) in atomic64_fetch_sub_acquire() argument
1959 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub_acquire()
1960 return raw_atomic64_fetch_sub_acquire(i, v); in atomic64_fetch_sub_acquire()
1966 * @v: pointer to atomic64_t
1968 * Atomically updates @v to (@v - @i) with release ordering.
1972 * Return: The original value of @v.
1975 atomic64_fetch_sub_release(s64 i, atomic64_t *v) in atomic64_fetch_sub_release() argument
1978 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub_release()
1979 return raw_atomic64_fetch_sub_release(i, v); in atomic64_fetch_sub_release()
1985 * @v: pointer to atomic64_t
1987 * Atomically updates @v to (@v - @i) with relaxed ordering.
1991 * Return: The original value of @v.
1994 atomic64_fetch_sub_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_sub_relaxed() argument
1996 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_sub_relaxed()
1997 return raw_atomic64_fetch_sub_relaxed(i, v); in atomic64_fetch_sub_relaxed()
2002 * @v: pointer to atomic64_t
2004 * Atomically updates @v to (@v + 1) with relaxed ordering.
2011 atomic64_inc(atomic64_t *v) in atomic64_inc() argument
2013 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc()
2014 raw_atomic64_inc(v); in atomic64_inc()
2019 * @v: pointer to atomic64_t
2021 * Atomically updates @v to (@v + 1) with full ordering.
2025 * Return: The updated value of @v.
2028 atomic64_inc_return(atomic64_t *v) in atomic64_inc_return() argument
2031 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return()
2032 return raw_atomic64_inc_return(v); in atomic64_inc_return()
2037 * @v: pointer to atomic64_t
2039 * Atomically updates @v to (@v + 1) with acquire ordering.
2043 * Return: The updated value of @v.
2046 atomic64_inc_return_acquire(atomic64_t *v) in atomic64_inc_return_acquire() argument
2048 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return_acquire()
2049 return raw_atomic64_inc_return_acquire(v); in atomic64_inc_return_acquire()
2054 * @v: pointer to atomic64_t
2056 * Atomically updates @v to (@v + 1) with release ordering.
2060 * Return: The updated value of @v.
2063 atomic64_inc_return_release(atomic64_t *v) in atomic64_inc_return_release() argument
2066 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return_release()
2067 return raw_atomic64_inc_return_release(v); in atomic64_inc_return_release()
2072 * @v: pointer to atomic64_t
2074 * Atomically updates @v to (@v + 1) with relaxed ordering.
2078 * Return: The updated value of @v.
2081 atomic64_inc_return_relaxed(atomic64_t *v) in atomic64_inc_return_relaxed() argument
2083 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_return_relaxed()
2084 return raw_atomic64_inc_return_relaxed(v); in atomic64_inc_return_relaxed()
2089 * @v: pointer to atomic64_t
2091 * Atomically updates @v to (@v + 1) with full ordering.
2095 * Return: The original value of @v.
2098 atomic64_fetch_inc(atomic64_t *v) in atomic64_fetch_inc() argument
2101 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc()
2102 return raw_atomic64_fetch_inc(v); in atomic64_fetch_inc()
2107 * @v: pointer to atomic64_t
2109 * Atomically updates @v to (@v + 1) with acquire ordering.
2113 * Return: The original value of @v.
2116 atomic64_fetch_inc_acquire(atomic64_t *v) in atomic64_fetch_inc_acquire() argument
2118 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc_acquire()
2119 return raw_atomic64_fetch_inc_acquire(v); in atomic64_fetch_inc_acquire()
2124 * @v: pointer to atomic64_t
2126 * Atomically updates @v to (@v + 1) with release ordering.
2130 * Return: The original value of @v.
2133 atomic64_fetch_inc_release(atomic64_t *v) in atomic64_fetch_inc_release() argument
2136 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc_release()
2137 return raw_atomic64_fetch_inc_release(v); in atomic64_fetch_inc_release()
2142 * @v: pointer to atomic64_t
2144 * Atomically updates @v to (@v + 1) with relaxed ordering.
2148 * Return: The original value of @v.
2151 atomic64_fetch_inc_relaxed(atomic64_t *v) in atomic64_fetch_inc_relaxed() argument
2153 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_inc_relaxed()
2154 return raw_atomic64_fetch_inc_relaxed(v); in atomic64_fetch_inc_relaxed()
2159 * @v: pointer to atomic64_t
2161 * Atomically updates @v to (@v - 1) with relaxed ordering.
2168 atomic64_dec(atomic64_t *v) in atomic64_dec() argument
2170 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec()
2171 raw_atomic64_dec(v); in atomic64_dec()
2176 * @v: pointer to atomic64_t
2178 * Atomically updates @v to (@v - 1) with full ordering.
2182 * Return: The updated value of @v.
2185 atomic64_dec_return(atomic64_t *v) in atomic64_dec_return() argument
2188 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return()
2189 return raw_atomic64_dec_return(v); in atomic64_dec_return()
2194 * @v: pointer to atomic64_t
2196 * Atomically updates @v to (@v - 1) with acquire ordering.
2200 * Return: The updated value of @v.
2203 atomic64_dec_return_acquire(atomic64_t *v) in atomic64_dec_return_acquire() argument
2205 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return_acquire()
2206 return raw_atomic64_dec_return_acquire(v); in atomic64_dec_return_acquire()
2211 * @v: pointer to atomic64_t
2213 * Atomically updates @v to (@v - 1) with release ordering.
2217 * Return: The updated value of @v.
2220 atomic64_dec_return_release(atomic64_t *v) in atomic64_dec_return_release() argument
2223 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return_release()
2224 return raw_atomic64_dec_return_release(v); in atomic64_dec_return_release()
2229 * @v: pointer to atomic64_t
2231 * Atomically updates @v to (@v - 1) with relaxed ordering.
2235 * Return: The updated value of @v.
2238 atomic64_dec_return_relaxed(atomic64_t *v) in atomic64_dec_return_relaxed() argument
2240 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_return_relaxed()
2241 return raw_atomic64_dec_return_relaxed(v); in atomic64_dec_return_relaxed()
2246 * @v: pointer to atomic64_t
2248 * Atomically updates @v to (@v - 1) with full ordering.
2252 * Return: The original value of @v.
2255 atomic64_fetch_dec(atomic64_t *v) in atomic64_fetch_dec() argument
2258 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec()
2259 return raw_atomic64_fetch_dec(v); in atomic64_fetch_dec()
2264 * @v: pointer to atomic64_t
2266 * Atomically updates @v to (@v - 1) with acquire ordering.
2270 * Return: The original value of @v.
2273 atomic64_fetch_dec_acquire(atomic64_t *v) in atomic64_fetch_dec_acquire() argument
2275 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec_acquire()
2276 return raw_atomic64_fetch_dec_acquire(v); in atomic64_fetch_dec_acquire()
2281 * @v: pointer to atomic64_t
2283 * Atomically updates @v to (@v - 1) with release ordering.
2287 * Return: The original value of @v.
2290 atomic64_fetch_dec_release(atomic64_t *v) in atomic64_fetch_dec_release() argument
2293 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec_release()
2294 return raw_atomic64_fetch_dec_release(v); in atomic64_fetch_dec_release()
2299 * @v: pointer to atomic64_t
2301 * Atomically updates @v to (@v - 1) with relaxed ordering.
2305 * Return: The original value of @v.
2308 atomic64_fetch_dec_relaxed(atomic64_t *v) in atomic64_fetch_dec_relaxed() argument
2310 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_dec_relaxed()
2311 return raw_atomic64_fetch_dec_relaxed(v); in atomic64_fetch_dec_relaxed()
2317 * @v: pointer to atomic64_t
2319 * Atomically updates @v to (@v & @i) with relaxed ordering.
2326 atomic64_and(s64 i, atomic64_t *v) in atomic64_and() argument
2328 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_and()
2329 raw_atomic64_and(i, v); in atomic64_and()
2335 * @v: pointer to atomic64_t
2337 * Atomically updates @v to (@v & @i) with full ordering.
2341 * Return: The original value of @v.
2344 atomic64_fetch_and(s64 i, atomic64_t *v) in atomic64_fetch_and() argument
2347 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and()
2348 return raw_atomic64_fetch_and(i, v); in atomic64_fetch_and()
2354 * @v: pointer to atomic64_t
2356 * Atomically updates @v to (@v & @i) with acquire ordering.
2360 * Return: The original value of @v.
2363 atomic64_fetch_and_acquire(s64 i, atomic64_t *v) in atomic64_fetch_and_acquire() argument
2365 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and_acquire()
2366 return raw_atomic64_fetch_and_acquire(i, v); in atomic64_fetch_and_acquire()
2372 * @v: pointer to atomic64_t
2374 * Atomically updates @v to (@v & @i) with release ordering.
2378 * Return: The original value of @v.
2381 atomic64_fetch_and_release(s64 i, atomic64_t *v) in atomic64_fetch_and_release() argument
2384 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and_release()
2385 return raw_atomic64_fetch_and_release(i, v); in atomic64_fetch_and_release()
2391 * @v: pointer to atomic64_t
2393 * Atomically updates @v to (@v & @i) with relaxed ordering.
2397 * Return: The original value of @v.
2400 atomic64_fetch_and_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_and_relaxed() argument
2402 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_and_relaxed()
2403 return raw_atomic64_fetch_and_relaxed(i, v); in atomic64_fetch_and_relaxed()
2409 * @v: pointer to atomic64_t
2411 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
2418 atomic64_andnot(s64 i, atomic64_t *v) in atomic64_andnot() argument
2420 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_andnot()
2421 raw_atomic64_andnot(i, v); in atomic64_andnot()
2427 * @v: pointer to atomic64_t
2429 * Atomically updates @v to (@v & ~@i) with full ordering.
2433 * Return: The original value of @v.
2436 atomic64_fetch_andnot(s64 i, atomic64_t *v) in atomic64_fetch_andnot() argument
2439 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot()
2440 return raw_atomic64_fetch_andnot(i, v); in atomic64_fetch_andnot()
2446 * @v: pointer to atomic64_t
2448 * Atomically updates @v to (@v & ~@i) with acquire ordering.
2452 * Return: The original value of @v.
2455 atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) in atomic64_fetch_andnot_acquire() argument
2457 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot_acquire()
2458 return raw_atomic64_fetch_andnot_acquire(i, v); in atomic64_fetch_andnot_acquire()
2464 * @v: pointer to atomic64_t
2466 * Atomically updates @v to (@v & ~@i) with release ordering.
2470 * Return: The original value of @v.
2473 atomic64_fetch_andnot_release(s64 i, atomic64_t *v) in atomic64_fetch_andnot_release() argument
2476 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot_release()
2477 return raw_atomic64_fetch_andnot_release(i, v); in atomic64_fetch_andnot_release()
2483 * @v: pointer to atomic64_t
2485 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
2489 * Return: The original value of @v.
2492 atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_andnot_relaxed() argument
2494 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_andnot_relaxed()
2495 return raw_atomic64_fetch_andnot_relaxed(i, v); in atomic64_fetch_andnot_relaxed()
2501 * @v: pointer to atomic64_t
2503 * Atomically updates @v to (@v | @i) with relaxed ordering.
2510 atomic64_or(s64 i, atomic64_t *v) in atomic64_or() argument
2512 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_or()
2513 raw_atomic64_or(i, v); in atomic64_or()
2519 * @v: pointer to atomic64_t
2521 * Atomically updates @v to (@v | @i) with full ordering.
2525 * Return: The original value of @v.
2528 atomic64_fetch_or(s64 i, atomic64_t *v) in atomic64_fetch_or() argument
2531 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or()
2532 return raw_atomic64_fetch_or(i, v); in atomic64_fetch_or()
2538 * @v: pointer to atomic64_t
2540 * Atomically updates @v to (@v | @i) with acquire ordering.
2544 * Return: The original value of @v.
2547 atomic64_fetch_or_acquire(s64 i, atomic64_t *v) in atomic64_fetch_or_acquire() argument
2549 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or_acquire()
2550 return raw_atomic64_fetch_or_acquire(i, v); in atomic64_fetch_or_acquire()
2556 * @v: pointer to atomic64_t
2558 * Atomically updates @v to (@v | @i) with release ordering.
2562 * Return: The original value of @v.
2565 atomic64_fetch_or_release(s64 i, atomic64_t *v) in atomic64_fetch_or_release() argument
2568 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or_release()
2569 return raw_atomic64_fetch_or_release(i, v); in atomic64_fetch_or_release()
2575 * @v: pointer to atomic64_t
2577 * Atomically updates @v to (@v | @i) with relaxed ordering.
2581 * Return: The original value of @v.
2584 atomic64_fetch_or_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_or_relaxed() argument
2586 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_or_relaxed()
2587 return raw_atomic64_fetch_or_relaxed(i, v); in atomic64_fetch_or_relaxed()
2593 * @v: pointer to atomic64_t
2595 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
2602 atomic64_xor(s64 i, atomic64_t *v) in atomic64_xor() argument
2604 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xor()
2605 raw_atomic64_xor(i, v); in atomic64_xor()
2611 * @v: pointer to atomic64_t
2613 * Atomically updates @v to (@v ^ @i) with full ordering.
2617 * Return: The original value of @v.
2620 atomic64_fetch_xor(s64 i, atomic64_t *v) in atomic64_fetch_xor() argument
2623 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor()
2624 return raw_atomic64_fetch_xor(i, v); in atomic64_fetch_xor()
2630 * @v: pointer to atomic64_t
2632 * Atomically updates @v to (@v ^ @i) with acquire ordering.
2636 * Return: The original value of @v.
2639 atomic64_fetch_xor_acquire(s64 i, atomic64_t *v) in atomic64_fetch_xor_acquire() argument
2641 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor_acquire()
2642 return raw_atomic64_fetch_xor_acquire(i, v); in atomic64_fetch_xor_acquire()
2648 * @v: pointer to atomic64_t
2650 * Atomically updates @v to (@v ^ @i) with release ordering.
2654 * Return: The original value of @v.
2657 atomic64_fetch_xor_release(s64 i, atomic64_t *v) in atomic64_fetch_xor_release() argument
2660 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor_release()
2661 return raw_atomic64_fetch_xor_release(i, v); in atomic64_fetch_xor_release()
2667 * @v: pointer to atomic64_t
2669 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
2673 * Return: The original value of @v.
2676 atomic64_fetch_xor_relaxed(s64 i, atomic64_t *v) in atomic64_fetch_xor_relaxed() argument
2678 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_xor_relaxed()
2679 return raw_atomic64_fetch_xor_relaxed(i, v); in atomic64_fetch_xor_relaxed()
2684 * @v: pointer to atomic64_t
2687 * Atomically updates @v to @new with full ordering.
2691 * Return: The original value of @v.
2694 atomic64_xchg(atomic64_t *v, s64 new) in atomic64_xchg() argument
2697 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg()
2698 return raw_atomic64_xchg(v, new); in atomic64_xchg()
2703 * @v: pointer to atomic64_t
2706 * Atomically updates @v to @new with acquire ordering.
2710 * Return: The original value of @v.
2713 atomic64_xchg_acquire(atomic64_t *v, s64 new) in atomic64_xchg_acquire() argument
2715 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg_acquire()
2716 return raw_atomic64_xchg_acquire(v, new); in atomic64_xchg_acquire()
2721 * @v: pointer to atomic64_t
2724 * Atomically updates @v to @new with release ordering.
2728 * Return: The original value of @v.
2731 atomic64_xchg_release(atomic64_t *v, s64 new) in atomic64_xchg_release() argument
2734 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg_release()
2735 return raw_atomic64_xchg_release(v, new); in atomic64_xchg_release()
2740 * @v: pointer to atomic64_t
2743 * Atomically updates @v to @new with relaxed ordering.
2747 * Return: The original value of @v.
2750 atomic64_xchg_relaxed(atomic64_t *v, s64 new) in atomic64_xchg_relaxed() argument
2752 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_xchg_relaxed()
2753 return raw_atomic64_xchg_relaxed(v, new); in atomic64_xchg_relaxed()
2758 * @v: pointer to atomic64_t
2762 * If (@v == @old), atomically updates @v to @new with full ordering.
2763 * Otherwise, @v is not modified and relaxed ordering is provided.
2767 * Return: The original value of @v.
2770 atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg() argument
2773 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg()
2774 return raw_atomic64_cmpxchg(v, old, new); in atomic64_cmpxchg()
2779 * @v: pointer to atomic64_t
2783 * If (@v == @old), atomically updates @v to @new with acquire ordering.
2784 * Otherwise, @v is not modified and relaxed ordering is provided.
2788 * Return: The original value of @v.
2791 atomic64_cmpxchg_acquire(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg_acquire() argument
2793 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg_acquire()
2794 return raw_atomic64_cmpxchg_acquire(v, old, new); in atomic64_cmpxchg_acquire()
2799 * @v: pointer to atomic64_t
2803 * If (@v == @old), atomically updates @v to @new with release ordering.
2804 * Otherwise, @v is not modified and relaxed ordering is provided.
2808 * Return: The original value of @v.
2811 atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg_release() argument
2814 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg_release()
2815 return raw_atomic64_cmpxchg_release(v, old, new); in atomic64_cmpxchg_release()
2820 * @v: pointer to atomic64_t
2824 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
2825 * Otherwise, @v is not modified and relaxed ordering is provided.
2829 * Return: The original value of @v.
2832 atomic64_cmpxchg_relaxed(atomic64_t *v, s64 old, s64 new) in atomic64_cmpxchg_relaxed() argument
2834 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_cmpxchg_relaxed()
2835 return raw_atomic64_cmpxchg_relaxed(v, old, new); in atomic64_cmpxchg_relaxed()
2840 * @v: pointer to atomic64_t
2844 * If (@v == @old), atomically updates @v to @new with full ordering.
2845 * Otherwise, @v is not modified, @old is updated to the current value of @v,
2853 atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg() argument
2856 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg()
2858 return raw_atomic64_try_cmpxchg(v, old, new); in atomic64_try_cmpxchg()
2863 * @v: pointer to atomic64_t
2867 * If (@v == @old), atomically updates @v to @new with acquire ordering.
2868 * Otherwise, @v is not modified, @old is updated to the current value of @v,
2876 atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg_acquire() argument
2878 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg_acquire()
2880 return raw_atomic64_try_cmpxchg_acquire(v, old, new); in atomic64_try_cmpxchg_acquire()
2885 * @v: pointer to atomic64_t
2889 * If (@v == @old), atomically updates @v to @new with release ordering.
2890 * Otherwise, @v is not modified, @old is updated to the current value of @v,
2898 atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg_release() argument
2901 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg_release()
2903 return raw_atomic64_try_cmpxchg_release(v, old, new); in atomic64_try_cmpxchg_release()
2908 * @v: pointer to atomic64_t
2912 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
2913 * Otherwise, @v is not modified, @old is updated to the current value of @v,
2921 atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new) in atomic64_try_cmpxchg_relaxed() argument
2923 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_try_cmpxchg_relaxed()
2925 return raw_atomic64_try_cmpxchg_relaxed(v, old, new); in atomic64_try_cmpxchg_relaxed()
2931 * @v: pointer to atomic64_t
2933 * Atomically updates @v to (@v - @i) with full ordering.
2937 * Return: @true if the resulting value of @v is zero, @false otherwise.
2940 atomic64_sub_and_test(s64 i, atomic64_t *v) in atomic64_sub_and_test() argument
2943 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_sub_and_test()
2944 return raw_atomic64_sub_and_test(i, v); in atomic64_sub_and_test()
2949 * @v: pointer to atomic64_t
2951 * Atomically updates @v to (@v - 1) with full ordering.
2955 * Return: @true if the resulting value of @v is zero, @false otherwise.
2958 atomic64_dec_and_test(atomic64_t *v) in atomic64_dec_and_test() argument
2961 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_and_test()
2962 return raw_atomic64_dec_and_test(v); in atomic64_dec_and_test()
2967 * @v: pointer to atomic64_t
2969 * Atomically updates @v to (@v + 1) with full ordering.
2973 * Return: @true if the resulting value of @v is zero, @false otherwise.
2976 atomic64_inc_and_test(atomic64_t *v) in atomic64_inc_and_test() argument
2979 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_and_test()
2980 return raw_atomic64_inc_and_test(v); in atomic64_inc_and_test()
2986 * @v: pointer to atomic64_t
2988 * Atomically updates @v to (@v + @i) with full ordering.
2992 * Return: @true if the resulting value of @v is negative, @false otherwise.
2995 atomic64_add_negative(s64 i, atomic64_t *v) in atomic64_add_negative() argument
2998 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative()
2999 return raw_atomic64_add_negative(i, v); in atomic64_add_negative()
3005 * @v: pointer to atomic64_t
3007 * Atomically updates @v to (@v + @i) with acquire ordering.
3011 * Return: @true if the resulting value of @v is negative, @false otherwise.
3014 atomic64_add_negative_acquire(s64 i, atomic64_t *v) in atomic64_add_negative_acquire() argument
3016 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative_acquire()
3017 return raw_atomic64_add_negative_acquire(i, v); in atomic64_add_negative_acquire()
3023 * @v: pointer to atomic64_t
3025 * Atomically updates @v to (@v + @i) with release ordering.
3029 * Return: @true if the resulting value of @v is negative, @false otherwise.
3032 atomic64_add_negative_release(s64 i, atomic64_t *v) in atomic64_add_negative_release() argument
3035 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative_release()
3036 return raw_atomic64_add_negative_release(i, v); in atomic64_add_negative_release()
3042 * @v: pointer to atomic64_t
3044 * Atomically updates @v to (@v + @i) with relaxed ordering.
3048 * Return: @true if the resulting value of @v is negative, @false otherwise.
3051 atomic64_add_negative_relaxed(s64 i, atomic64_t *v) in atomic64_add_negative_relaxed() argument
3053 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_negative_relaxed()
3054 return raw_atomic64_add_negative_relaxed(i, v); in atomic64_add_negative_relaxed()
3059 * @v: pointer to atomic64_t
3063 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
3064 * Otherwise, @v is not modified and relaxed ordering is provided.
3068 * Return: The original value of @v.
3071 atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) in atomic64_fetch_add_unless() argument
3074 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_fetch_add_unless()
3075 return raw_atomic64_fetch_add_unless(v, a, u); in atomic64_fetch_add_unless()
3080 * @v: pointer to atomic64_t
3084 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
3085 * Otherwise, @v is not modified and relaxed ordering is provided.
3089 * Return: @true if @v was updated, @false otherwise.
3092 atomic64_add_unless(atomic64_t *v, s64 a, s64 u) in atomic64_add_unless() argument
3095 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_add_unless()
3096 return raw_atomic64_add_unless(v, a, u); in atomic64_add_unless()
3101 * @v: pointer to atomic64_t
3103 * If (@v != 0), atomically updates @v to (@v + 1) with full ordering.
3104 * Otherwise, @v is not modified and relaxed ordering is provided.
3108 * Return: @true if @v was updated, @false otherwise.
3111 atomic64_inc_not_zero(atomic64_t *v) in atomic64_inc_not_zero() argument
3114 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_not_zero()
3115 return raw_atomic64_inc_not_zero(v); in atomic64_inc_not_zero()
3120 * @v: pointer to atomic64_t
3122 * If (@v >= 0), atomically updates @v to (@v + 1) with full ordering.
3123 * Otherwise, @v is not modified and relaxed ordering is provided.
3127 * Return: @true if @v was updated, @false otherwise.
3130 atomic64_inc_unless_negative(atomic64_t *v) in atomic64_inc_unless_negative() argument
3133 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_inc_unless_negative()
3134 return raw_atomic64_inc_unless_negative(v); in atomic64_inc_unless_negative()
3139 * @v: pointer to atomic64_t
3141 * If (@v <= 0), atomically updates @v to (@v - 1) with full ordering.
3142 * Otherwise, @v is not modified and relaxed ordering is provided.
3146 * Return: @true if @v was updated, @false otherwise.
3149 atomic64_dec_unless_positive(atomic64_t *v) in atomic64_dec_unless_positive() argument
3152 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_unless_positive()
3153 return raw_atomic64_dec_unless_positive(v); in atomic64_dec_unless_positive()
3158 * @v: pointer to atomic64_t
3160 * If (@v > 0), atomically updates @v to (@v - 1) with full ordering.
3161 * Otherwise, @v is not modified and relaxed ordering is provided.
3165 * Return: The old value of (@v - 1), regardless of whether @v was updated.
3168 atomic64_dec_if_positive(atomic64_t *v) in atomic64_dec_if_positive() argument
3171 instrument_atomic_read_write(v, sizeof(*v)); in atomic64_dec_if_positive()
3172 return raw_atomic64_dec_if_positive(v); in atomic64_dec_if_positive()
3177 * @v: pointer to atomic_long_t
3179 * Atomically loads the value of @v with relaxed ordering.
3183 * Return: The value loaded from @v.
3186 atomic_long_read(const atomic_long_t *v) in atomic_long_read() argument
3188 instrument_atomic_read(v, sizeof(*v)); in atomic_long_read()
3189 return raw_atomic_long_read(v); in atomic_long_read()
3194 * @v: pointer to atomic_long_t
3196 * Atomically loads the value of @v with acquire ordering.
3200 * Return: The value loaded from @v.
3203 atomic_long_read_acquire(const atomic_long_t *v) in atomic_long_read_acquire() argument
3205 instrument_atomic_read(v, sizeof(*v)); in atomic_long_read_acquire()
3206 return raw_atomic_long_read_acquire(v); in atomic_long_read_acquire()
3211 * @v: pointer to atomic_long_t
3214 * Atomically sets @v to @i with relaxed ordering.
3221 atomic_long_set(atomic_long_t *v, long i) in atomic_long_set() argument
3223 instrument_atomic_write(v, sizeof(*v)); in atomic_long_set()
3224 raw_atomic_long_set(v, i); in atomic_long_set()
3229 * @v: pointer to atomic_long_t
3232 * Atomically sets @v to @i with release ordering.
3239 atomic_long_set_release(atomic_long_t *v, long i) in atomic_long_set_release() argument
3242 instrument_atomic_write(v, sizeof(*v)); in atomic_long_set_release()
3243 raw_atomic_long_set_release(v, i); in atomic_long_set_release()
3249 * @v: pointer to atomic_long_t
3251 * Atomically updates @v to (@v + @i) with relaxed ordering.
3258 atomic_long_add(long i, atomic_long_t *v) in atomic_long_add() argument
3260 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add()
3261 raw_atomic_long_add(i, v); in atomic_long_add()
3267 * @v: pointer to atomic_long_t
3269 * Atomically updates @v to (@v + @i) with full ordering.
3273 * Return: The updated value of @v.
3276 atomic_long_add_return(long i, atomic_long_t *v) in atomic_long_add_return() argument
3279 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return()
3280 return raw_atomic_long_add_return(i, v); in atomic_long_add_return()
3286 * @v: pointer to atomic_long_t
3288 * Atomically updates @v to (@v + @i) with acquire ordering.
3292 * Return: The updated value of @v.
3295 atomic_long_add_return_acquire(long i, atomic_long_t *v) in atomic_long_add_return_acquire() argument
3297 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return_acquire()
3298 return raw_atomic_long_add_return_acquire(i, v); in atomic_long_add_return_acquire()
3304 * @v: pointer to atomic_long_t
3306 * Atomically updates @v to (@v + @i) with release ordering.
3310 * Return: The updated value of @v.
3313 atomic_long_add_return_release(long i, atomic_long_t *v) in atomic_long_add_return_release() argument
3316 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return_release()
3317 return raw_atomic_long_add_return_release(i, v); in atomic_long_add_return_release()
3323 * @v: pointer to atomic_long_t
3325 * Atomically updates @v to (@v + @i) with relaxed ordering.
3329 * Return: The updated value of @v.
3332 atomic_long_add_return_relaxed(long i, atomic_long_t *v) in atomic_long_add_return_relaxed() argument
3334 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_return_relaxed()
3335 return raw_atomic_long_add_return_relaxed(i, v); in atomic_long_add_return_relaxed()
3341 * @v: pointer to atomic_long_t
3343 * Atomically updates @v to (@v + @i) with full ordering.
3347 * Return: The original value of @v.
3350 atomic_long_fetch_add(long i, atomic_long_t *v) in atomic_long_fetch_add() argument
3353 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add()
3354 return raw_atomic_long_fetch_add(i, v); in atomic_long_fetch_add()
3360 * @v: pointer to atomic_long_t
3362 * Atomically updates @v to (@v + @i) with acquire ordering.
3366 * Return: The original value of @v.
3369 atomic_long_fetch_add_acquire(long i, atomic_long_t *v) in atomic_long_fetch_add_acquire() argument
3371 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_acquire()
3372 return raw_atomic_long_fetch_add_acquire(i, v); in atomic_long_fetch_add_acquire()
3378 * @v: pointer to atomic_long_t
3380 * Atomically updates @v to (@v + @i) with release ordering.
3384 * Return: The original value of @v.
3387 atomic_long_fetch_add_release(long i, atomic_long_t *v) in atomic_long_fetch_add_release() argument
3390 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_release()
3391 return raw_atomic_long_fetch_add_release(i, v); in atomic_long_fetch_add_release()
3397 * @v: pointer to atomic_long_t
3399 * Atomically updates @v to (@v + @i) with relaxed ordering.
3403 * Return: The original value of @v.
3406 atomic_long_fetch_add_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_add_relaxed() argument
3408 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_relaxed()
3409 return raw_atomic_long_fetch_add_relaxed(i, v); in atomic_long_fetch_add_relaxed()
3415 * @v: pointer to atomic_long_t
3417 * Atomically updates @v to (@v - @i) with relaxed ordering.
3424 atomic_long_sub(long i, atomic_long_t *v) in atomic_long_sub() argument
3426 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub()
3427 raw_atomic_long_sub(i, v); in atomic_long_sub()
3433 * @v: pointer to atomic_long_t
3435 * Atomically updates @v to (@v - @i) with full ordering.
3439 * Return: The updated value of @v.
3442 atomic_long_sub_return(long i, atomic_long_t *v) in atomic_long_sub_return() argument
3445 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return()
3446 return raw_atomic_long_sub_return(i, v); in atomic_long_sub_return()
3452 * @v: pointer to atomic_long_t
3454 * Atomically updates @v to (@v - @i) with acquire ordering.
3458 * Return: The updated value of @v.
3461 atomic_long_sub_return_acquire(long i, atomic_long_t *v) in atomic_long_sub_return_acquire() argument
3463 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return_acquire()
3464 return raw_atomic_long_sub_return_acquire(i, v); in atomic_long_sub_return_acquire()
3470 * @v: pointer to atomic_long_t
3472 * Atomically updates @v to (@v - @i) with release ordering.
3476 * Return: The updated value of @v.
3479 atomic_long_sub_return_release(long i, atomic_long_t *v) in atomic_long_sub_return_release() argument
3482 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return_release()
3483 return raw_atomic_long_sub_return_release(i, v); in atomic_long_sub_return_release()
3489 * @v: pointer to atomic_long_t
3491 * Atomically updates @v to (@v - @i) with relaxed ordering.
3495 * Return: The updated value of @v.
3498 atomic_long_sub_return_relaxed(long i, atomic_long_t *v) in atomic_long_sub_return_relaxed() argument
3500 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_return_relaxed()
3501 return raw_atomic_long_sub_return_relaxed(i, v); in atomic_long_sub_return_relaxed()
3507 * @v: pointer to atomic_long_t
3509 * Atomically updates @v to (@v - @i) with full ordering.
3513 * Return: The original value of @v.
3516 atomic_long_fetch_sub(long i, atomic_long_t *v) in atomic_long_fetch_sub() argument
3519 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub()
3520 return raw_atomic_long_fetch_sub(i, v); in atomic_long_fetch_sub()
3526 * @v: pointer to atomic_long_t
3528 * Atomically updates @v to (@v - @i) with acquire ordering.
3532 * Return: The original value of @v.
3535 atomic_long_fetch_sub_acquire(long i, atomic_long_t *v) in atomic_long_fetch_sub_acquire() argument
3537 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub_acquire()
3538 return raw_atomic_long_fetch_sub_acquire(i, v); in atomic_long_fetch_sub_acquire()
3544 * @v: pointer to atomic_long_t
3546 * Atomically updates @v to (@v - @i) with release ordering.
3550 * Return: The original value of @v.
3553 atomic_long_fetch_sub_release(long i, atomic_long_t *v) in atomic_long_fetch_sub_release() argument
3556 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub_release()
3557 return raw_atomic_long_fetch_sub_release(i, v); in atomic_long_fetch_sub_release()
3563 * @v: pointer to atomic_long_t
3565 * Atomically updates @v to (@v - @i) with relaxed ordering.
3569 * Return: The original value of @v.
3572 atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_sub_relaxed() argument
3574 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_sub_relaxed()
3575 return raw_atomic_long_fetch_sub_relaxed(i, v); in atomic_long_fetch_sub_relaxed()
3580 * @v: pointer to atomic_long_t
3582 * Atomically updates @v to (@v + 1) with relaxed ordering.
3589 atomic_long_inc(atomic_long_t *v) in atomic_long_inc() argument
3591 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc()
3592 raw_atomic_long_inc(v); in atomic_long_inc()
3597 * @v: pointer to atomic_long_t
3599 * Atomically updates @v to (@v + 1) with full ordering.
3603 * Return: The updated value of @v.
3606 atomic_long_inc_return(atomic_long_t *v) in atomic_long_inc_return() argument
3609 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return()
3610 return raw_atomic_long_inc_return(v); in atomic_long_inc_return()
3615 * @v: pointer to atomic_long_t
3617 * Atomically updates @v to (@v + 1) with acquire ordering.
3621 * Return: The updated value of @v.
3624 atomic_long_inc_return_acquire(atomic_long_t *v) in atomic_long_inc_return_acquire() argument
3626 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return_acquire()
3627 return raw_atomic_long_inc_return_acquire(v); in atomic_long_inc_return_acquire()
3632 * @v: pointer to atomic_long_t
3634 * Atomically updates @v to (@v + 1) with release ordering.
3638 * Return: The updated value of @v.
3641 atomic_long_inc_return_release(atomic_long_t *v) in atomic_long_inc_return_release() argument
3644 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return_release()
3645 return raw_atomic_long_inc_return_release(v); in atomic_long_inc_return_release()
3650 * @v: pointer to atomic_long_t
3652 * Atomically updates @v to (@v + 1) with relaxed ordering.
3656 * Return: The updated value of @v.
3659 atomic_long_inc_return_relaxed(atomic_long_t *v) in atomic_long_inc_return_relaxed() argument
3661 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_return_relaxed()
3662 return raw_atomic_long_inc_return_relaxed(v); in atomic_long_inc_return_relaxed()
3667 * @v: pointer to atomic_long_t
3669 * Atomically updates @v to (@v + 1) with full ordering.
3673 * Return: The original value of @v.
3676 atomic_long_fetch_inc(atomic_long_t *v) in atomic_long_fetch_inc() argument
3679 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc()
3680 return raw_atomic_long_fetch_inc(v); in atomic_long_fetch_inc()
3685 * @v: pointer to atomic_long_t
3687 * Atomically updates @v to (@v + 1) with acquire ordering.
3691 * Return: The original value of @v.
3694 atomic_long_fetch_inc_acquire(atomic_long_t *v) in atomic_long_fetch_inc_acquire() argument
3696 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc_acquire()
3697 return raw_atomic_long_fetch_inc_acquire(v); in atomic_long_fetch_inc_acquire()
3702 * @v: pointer to atomic_long_t
3704 * Atomically updates @v to (@v + 1) with release ordering.
3708 * Return: The original value of @v.
3711 atomic_long_fetch_inc_release(atomic_long_t *v) in atomic_long_fetch_inc_release() argument
3714 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc_release()
3715 return raw_atomic_long_fetch_inc_release(v); in atomic_long_fetch_inc_release()
3720 * @v: pointer to atomic_long_t
3722 * Atomically updates @v to (@v + 1) with relaxed ordering.
3726 * Return: The original value of @v.
3729 atomic_long_fetch_inc_relaxed(atomic_long_t *v) in atomic_long_fetch_inc_relaxed() argument
3731 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_inc_relaxed()
3732 return raw_atomic_long_fetch_inc_relaxed(v); in atomic_long_fetch_inc_relaxed()
3737 * @v: pointer to atomic_long_t
3739 * Atomically updates @v to (@v - 1) with relaxed ordering.
3746 atomic_long_dec(atomic_long_t *v) in atomic_long_dec() argument
3748 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec()
3749 raw_atomic_long_dec(v); in atomic_long_dec()
3754 * @v: pointer to atomic_long_t
3756 * Atomically updates @v to (@v - 1) with full ordering.
3760 * Return: The updated value of @v.
3763 atomic_long_dec_return(atomic_long_t *v) in atomic_long_dec_return() argument
3766 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return()
3767 return raw_atomic_long_dec_return(v); in atomic_long_dec_return()
3772 * @v: pointer to atomic_long_t
3774 * Atomically updates @v to (@v - 1) with acquire ordering.
3778 * Return: The updated value of @v.
3781 atomic_long_dec_return_acquire(atomic_long_t *v) in atomic_long_dec_return_acquire() argument
3783 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return_acquire()
3784 return raw_atomic_long_dec_return_acquire(v); in atomic_long_dec_return_acquire()
3789 * @v: pointer to atomic_long_t
3791 * Atomically updates @v to (@v - 1) with release ordering.
3795 * Return: The updated value of @v.
3798 atomic_long_dec_return_release(atomic_long_t *v) in atomic_long_dec_return_release() argument
3801 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return_release()
3802 return raw_atomic_long_dec_return_release(v); in atomic_long_dec_return_release()
3807 * @v: pointer to atomic_long_t
3809 * Atomically updates @v to (@v - 1) with relaxed ordering.
3813 * Return: The updated value of @v.
3816 atomic_long_dec_return_relaxed(atomic_long_t *v) in atomic_long_dec_return_relaxed() argument
3818 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_return_relaxed()
3819 return raw_atomic_long_dec_return_relaxed(v); in atomic_long_dec_return_relaxed()
3824 * @v: pointer to atomic_long_t
3826 * Atomically updates @v to (@v - 1) with full ordering.
3830 * Return: The original value of @v.
3833 atomic_long_fetch_dec(atomic_long_t *v) in atomic_long_fetch_dec() argument
3836 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec()
3837 return raw_atomic_long_fetch_dec(v); in atomic_long_fetch_dec()
3842 * @v: pointer to atomic_long_t
3844 * Atomically updates @v to (@v - 1) with acquire ordering.
3848 * Return: The original value of @v.
3851 atomic_long_fetch_dec_acquire(atomic_long_t *v) in atomic_long_fetch_dec_acquire() argument
3853 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec_acquire()
3854 return raw_atomic_long_fetch_dec_acquire(v); in atomic_long_fetch_dec_acquire()
3859 * @v: pointer to atomic_long_t
3861 * Atomically updates @v to (@v - 1) with release ordering.
3865 * Return: The original value of @v.
3868 atomic_long_fetch_dec_release(atomic_long_t *v) in atomic_long_fetch_dec_release() argument
3871 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec_release()
3872 return raw_atomic_long_fetch_dec_release(v); in atomic_long_fetch_dec_release()
3877 * @v: pointer to atomic_long_t
3879 * Atomically updates @v to (@v - 1) with relaxed ordering.
3883 * Return: The original value of @v.
3886 atomic_long_fetch_dec_relaxed(atomic_long_t *v) in atomic_long_fetch_dec_relaxed() argument
3888 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_dec_relaxed()
3889 return raw_atomic_long_fetch_dec_relaxed(v); in atomic_long_fetch_dec_relaxed()
3895 * @v: pointer to atomic_long_t
3897 * Atomically updates @v to (@v & @i) with relaxed ordering.
3904 atomic_long_and(long i, atomic_long_t *v) in atomic_long_and() argument
3906 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_and()
3907 raw_atomic_long_and(i, v); in atomic_long_and()
3913 * @v: pointer to atomic_long_t
3915 * Atomically updates @v to (@v & @i) with full ordering.
3919 * Return: The original value of @v.
3922 atomic_long_fetch_and(long i, atomic_long_t *v) in atomic_long_fetch_and() argument
3925 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and()
3926 return raw_atomic_long_fetch_and(i, v); in atomic_long_fetch_and()
3932 * @v: pointer to atomic_long_t
3934 * Atomically updates @v to (@v & @i) with acquire ordering.
3938 * Return: The original value of @v.
3941 atomic_long_fetch_and_acquire(long i, atomic_long_t *v) in atomic_long_fetch_and_acquire() argument
3943 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and_acquire()
3944 return raw_atomic_long_fetch_and_acquire(i, v); in atomic_long_fetch_and_acquire()
3950 * @v: pointer to atomic_long_t
3952 * Atomically updates @v to (@v & @i) with release ordering.
3956 * Return: The original value of @v.
3959 atomic_long_fetch_and_release(long i, atomic_long_t *v) in atomic_long_fetch_and_release() argument
3962 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and_release()
3963 return raw_atomic_long_fetch_and_release(i, v); in atomic_long_fetch_and_release()
3969 * @v: pointer to atomic_long_t
3971 * Atomically updates @v to (@v & @i) with relaxed ordering.
3975 * Return: The original value of @v.
3978 atomic_long_fetch_and_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_and_relaxed() argument
3980 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_and_relaxed()
3981 return raw_atomic_long_fetch_and_relaxed(i, v); in atomic_long_fetch_and_relaxed()
3987 * @v: pointer to atomic_long_t
3989 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
3996 atomic_long_andnot(long i, atomic_long_t *v) in atomic_long_andnot() argument
3998 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_andnot()
3999 raw_atomic_long_andnot(i, v); in atomic_long_andnot()
4005 * @v: pointer to atomic_long_t
4007 * Atomically updates @v to (@v & ~@i) with full ordering.
4011 * Return: The original value of @v.
4014 atomic_long_fetch_andnot(long i, atomic_long_t *v) in atomic_long_fetch_andnot() argument
4017 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot()
4018 return raw_atomic_long_fetch_andnot(i, v); in atomic_long_fetch_andnot()
4024 * @v: pointer to atomic_long_t
4026 * Atomically updates @v to (@v & ~@i) with acquire ordering.
4030 * Return: The original value of @v.
4033 atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v) in atomic_long_fetch_andnot_acquire() argument
4035 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot_acquire()
4036 return raw_atomic_long_fetch_andnot_acquire(i, v); in atomic_long_fetch_andnot_acquire()
4042 * @v: pointer to atomic_long_t
4044 * Atomically updates @v to (@v & ~@i) with release ordering.
4048 * Return: The original value of @v.
4051 atomic_long_fetch_andnot_release(long i, atomic_long_t *v) in atomic_long_fetch_andnot_release() argument
4054 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot_release()
4055 return raw_atomic_long_fetch_andnot_release(i, v); in atomic_long_fetch_andnot_release()
4061 * @v: pointer to atomic_long_t
4063 * Atomically updates @v to (@v & ~@i) with relaxed ordering.
4067 * Return: The original value of @v.
4070 atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_andnot_relaxed() argument
4072 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_andnot_relaxed()
4073 return raw_atomic_long_fetch_andnot_relaxed(i, v); in atomic_long_fetch_andnot_relaxed()
4079 * @v: pointer to atomic_long_t
4081 * Atomically updates @v to (@v | @i) with relaxed ordering.
4088 atomic_long_or(long i, atomic_long_t *v) in atomic_long_or() argument
4090 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_or()
4091 raw_atomic_long_or(i, v); in atomic_long_or()
4097 * @v: pointer to atomic_long_t
4099 * Atomically updates @v to (@v | @i) with full ordering.
4103 * Return: The original value of @v.
4106 atomic_long_fetch_or(long i, atomic_long_t *v) in atomic_long_fetch_or() argument
4109 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or()
4110 return raw_atomic_long_fetch_or(i, v); in atomic_long_fetch_or()
4116 * @v: pointer to atomic_long_t
4118 * Atomically updates @v to (@v | @i) with acquire ordering.
4122 * Return: The original value of @v.
4125 atomic_long_fetch_or_acquire(long i, atomic_long_t *v) in atomic_long_fetch_or_acquire() argument
4127 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or_acquire()
4128 return raw_atomic_long_fetch_or_acquire(i, v); in atomic_long_fetch_or_acquire()
4134 * @v: pointer to atomic_long_t
4136 * Atomically updates @v to (@v | @i) with release ordering.
4140 * Return: The original value of @v.
4143 atomic_long_fetch_or_release(long i, atomic_long_t *v) in atomic_long_fetch_or_release() argument
4146 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or_release()
4147 return raw_atomic_long_fetch_or_release(i, v); in atomic_long_fetch_or_release()
4153 * @v: pointer to atomic_long_t
4155 * Atomically updates @v to (@v | @i) with relaxed ordering.
4159 * Return: The original value of @v.
4162 atomic_long_fetch_or_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_or_relaxed() argument
4164 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_or_relaxed()
4165 return raw_atomic_long_fetch_or_relaxed(i, v); in atomic_long_fetch_or_relaxed()
4171 * @v: pointer to atomic_long_t
4173 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
4180 atomic_long_xor(long i, atomic_long_t *v) in atomic_long_xor() argument
4182 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xor()
4183 raw_atomic_long_xor(i, v); in atomic_long_xor()
4189 * @v: pointer to atomic_long_t
4191 * Atomically updates @v to (@v ^ @i) with full ordering.
4195 * Return: The original value of @v.
4198 atomic_long_fetch_xor(long i, atomic_long_t *v) in atomic_long_fetch_xor() argument
4201 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor()
4202 return raw_atomic_long_fetch_xor(i, v); in atomic_long_fetch_xor()
4208 * @v: pointer to atomic_long_t
4210 * Atomically updates @v to (@v ^ @i) with acquire ordering.
4214 * Return: The original value of @v.
4217 atomic_long_fetch_xor_acquire(long i, atomic_long_t *v) in atomic_long_fetch_xor_acquire() argument
4219 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor_acquire()
4220 return raw_atomic_long_fetch_xor_acquire(i, v); in atomic_long_fetch_xor_acquire()
4226 * @v: pointer to atomic_long_t
4228 * Atomically updates @v to (@v ^ @i) with release ordering.
4232 * Return: The original value of @v.
4235 atomic_long_fetch_xor_release(long i, atomic_long_t *v) in atomic_long_fetch_xor_release() argument
4238 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor_release()
4239 return raw_atomic_long_fetch_xor_release(i, v); in atomic_long_fetch_xor_release()
4245 * @v: pointer to atomic_long_t
4247 * Atomically updates @v to (@v ^ @i) with relaxed ordering.
4251 * Return: The original value of @v.
4254 atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v) in atomic_long_fetch_xor_relaxed() argument
4256 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_xor_relaxed()
4257 return raw_atomic_long_fetch_xor_relaxed(i, v); in atomic_long_fetch_xor_relaxed()
4262 * @v: pointer to atomic_long_t
4265 * Atomically updates @v to @new with full ordering.
4269 * Return: The original value of @v.
4272 atomic_long_xchg(atomic_long_t *v, long new) in atomic_long_xchg() argument
4275 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg()
4276 return raw_atomic_long_xchg(v, new); in atomic_long_xchg()
4281 * @v: pointer to atomic_long_t
4284 * Atomically updates @v to @new with acquire ordering.
4288 * Return: The original value of @v.
4291 atomic_long_xchg_acquire(atomic_long_t *v, long new) in atomic_long_xchg_acquire() argument
4293 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg_acquire()
4294 return raw_atomic_long_xchg_acquire(v, new); in atomic_long_xchg_acquire()
4299 * @v: pointer to atomic_long_t
4302 * Atomically updates @v to @new with release ordering.
4306 * Return: The original value of @v.
4309 atomic_long_xchg_release(atomic_long_t *v, long new) in atomic_long_xchg_release() argument
4312 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg_release()
4313 return raw_atomic_long_xchg_release(v, new); in atomic_long_xchg_release()
4318 * @v: pointer to atomic_long_t
4321 * Atomically updates @v to @new with relaxed ordering.
4325 * Return: The original value of @v.
4328 atomic_long_xchg_relaxed(atomic_long_t *v, long new) in atomic_long_xchg_relaxed() argument
4330 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_xchg_relaxed()
4331 return raw_atomic_long_xchg_relaxed(v, new); in atomic_long_xchg_relaxed()
4336 * @v: pointer to atomic_long_t
4340 * If (@v == @old), atomically updates @v to @new with full ordering.
4341 * Otherwise, @v is not modified and relaxed ordering is provided.
4345 * Return: The original value of @v.
4348 atomic_long_cmpxchg(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg() argument
4351 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg()
4352 return raw_atomic_long_cmpxchg(v, old, new); in atomic_long_cmpxchg()
4357 * @v: pointer to atomic_long_t
4361 * If (@v == @old), atomically updates @v to @new with acquire ordering.
4362 * Otherwise, @v is not modified and relaxed ordering is provided.
4366 * Return: The original value of @v.
4369 atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg_acquire() argument
4371 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg_acquire()
4372 return raw_atomic_long_cmpxchg_acquire(v, old, new); in atomic_long_cmpxchg_acquire()
4377 * @v: pointer to atomic_long_t
4381 * If (@v == @old), atomically updates @v to @new with release ordering.
4382 * Otherwise, @v is not modified and relaxed ordering is provided.
4386 * Return: The original value of @v.
4389 atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg_release() argument
4392 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg_release()
4393 return raw_atomic_long_cmpxchg_release(v, old, new); in atomic_long_cmpxchg_release()
4398 * @v: pointer to atomic_long_t
4402 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
4403 * Otherwise, @v is not modified and relaxed ordering is provided.
4407 * Return: The original value of @v.
4410 atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new) in atomic_long_cmpxchg_relaxed() argument
4412 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_cmpxchg_relaxed()
4413 return raw_atomic_long_cmpxchg_relaxed(v, old, new); in atomic_long_cmpxchg_relaxed()
4418 * @v: pointer to atomic_long_t
4422 * If (@v == @old), atomically updates @v to @new with full ordering.
4423 * Otherwise, @v is not modified, @old is updated to the current value of @v,
4431 atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg() argument
4434 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg()
4436 return raw_atomic_long_try_cmpxchg(v, old, new); in atomic_long_try_cmpxchg()
4441 * @v: pointer to atomic_long_t
4445 * If (@v == @old), atomically updates @v to @new with acquire ordering.
4446 * Otherwise, @v is not modified, @old is updated to the current value of @v,
4454 atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg_acquire() argument
4456 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg_acquire()
4458 return raw_atomic_long_try_cmpxchg_acquire(v, old, new); in atomic_long_try_cmpxchg_acquire()
4463 * @v: pointer to atomic_long_t
4467 * If (@v == @old), atomically updates @v to @new with release ordering.
4468 * Otherwise, @v is not modified, @old is updated to the current value of @v,
4476 atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg_release() argument
4479 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg_release()
4481 return raw_atomic_long_try_cmpxchg_release(v, old, new); in atomic_long_try_cmpxchg_release()
4486 * @v: pointer to atomic_long_t
4490 * If (@v == @old), atomically updates @v to @new with relaxed ordering.
4491 * Otherwise, @v is not modified, @old is updated to the current value of @v,
4499 atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new) in atomic_long_try_cmpxchg_relaxed() argument
4501 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_try_cmpxchg_relaxed()
4503 return raw_atomic_long_try_cmpxchg_relaxed(v, old, new); in atomic_long_try_cmpxchg_relaxed()
4509 * @v: pointer to atomic_long_t
4511 * Atomically updates @v to (@v - @i) with full ordering.
4515 * Return: @true if the resulting value of @v is zero, @false otherwise.
4518 atomic_long_sub_and_test(long i, atomic_long_t *v) in atomic_long_sub_and_test() argument
4521 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_sub_and_test()
4522 return raw_atomic_long_sub_and_test(i, v); in atomic_long_sub_and_test()
4527 * @v: pointer to atomic_long_t
4529 * Atomically updates @v to (@v - 1) with full ordering.
4533 * Return: @true if the resulting value of @v is zero, @false otherwise.
4536 atomic_long_dec_and_test(atomic_long_t *v) in atomic_long_dec_and_test() argument
4539 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_and_test()
4540 return raw_atomic_long_dec_and_test(v); in atomic_long_dec_and_test()
4545 * @v: pointer to atomic_long_t
4547 * Atomically updates @v to (@v + 1) with full ordering.
4551 * Return: @true if the resulting value of @v is zero, @false otherwise.
4554 atomic_long_inc_and_test(atomic_long_t *v) in atomic_long_inc_and_test() argument
4557 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_and_test()
4558 return raw_atomic_long_inc_and_test(v); in atomic_long_inc_and_test()
4564 * @v: pointer to atomic_long_t
4566 * Atomically updates @v to (@v + @i) with full ordering.
4570 * Return: @true if the resulting value of @v is negative, @false otherwise.
4573 atomic_long_add_negative(long i, atomic_long_t *v) in atomic_long_add_negative() argument
4576 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative()
4577 return raw_atomic_long_add_negative(i, v); in atomic_long_add_negative()
4583 * @v: pointer to atomic_long_t
4585 * Atomically updates @v to (@v + @i) with acquire ordering.
4589 * Return: @true if the resulting value of @v is negative, @false otherwise.
4592 atomic_long_add_negative_acquire(long i, atomic_long_t *v) in atomic_long_add_negative_acquire() argument
4594 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative_acquire()
4595 return raw_atomic_long_add_negative_acquire(i, v); in atomic_long_add_negative_acquire()
4601 * @v: pointer to atomic_long_t
4603 * Atomically updates @v to (@v + @i) with release ordering.
4607 * Return: @true if the resulting value of @v is negative, @false otherwise.
4610 atomic_long_add_negative_release(long i, atomic_long_t *v) in atomic_long_add_negative_release() argument
4613 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative_release()
4614 return raw_atomic_long_add_negative_release(i, v); in atomic_long_add_negative_release()
4620 * @v: pointer to atomic_long_t
4622 * Atomically updates @v to (@v + @i) with relaxed ordering.
4626 * Return: @true if the resulting value of @v is negative, @false otherwise.
4629 atomic_long_add_negative_relaxed(long i, atomic_long_t *v) in atomic_long_add_negative_relaxed() argument
4631 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_negative_relaxed()
4632 return raw_atomic_long_add_negative_relaxed(i, v); in atomic_long_add_negative_relaxed()
4637 * @v: pointer to atomic_long_t
4641 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
4642 * Otherwise, @v is not modified and relaxed ordering is provided.
4646 * Return: The original value of @v.
4649 atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u) in atomic_long_fetch_add_unless() argument
4652 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_fetch_add_unless()
4653 return raw_atomic_long_fetch_add_unless(v, a, u); in atomic_long_fetch_add_unless()
4658 * @v: pointer to atomic_long_t
4662 * If (@v != @u), atomically updates @v to (@v + @a) with full ordering.
4663 * Otherwise, @v is not modified and relaxed ordering is provided.
4667 * Return: @true if @v was updated, @false otherwise.
4670 atomic_long_add_unless(atomic_long_t *v, long a, long u) in atomic_long_add_unless() argument
4673 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_add_unless()
4674 return raw_atomic_long_add_unless(v, a, u); in atomic_long_add_unless()
4679 * @v: pointer to atomic_long_t
4681 * If (@v != 0), atomically updates @v to (@v + 1) with full ordering.
4682 * Otherwise, @v is not modified and relaxed ordering is provided.
4686 * Return: @true if @v was updated, @false otherwise.
4689 atomic_long_inc_not_zero(atomic_long_t *v) in atomic_long_inc_not_zero() argument
4692 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_not_zero()
4693 return raw_atomic_long_inc_not_zero(v); in atomic_long_inc_not_zero()
4698 * @v: pointer to atomic_long_t
4700 * If (@v >= 0), atomically updates @v to (@v + 1) with full ordering.
4701 * Otherwise, @v is not modified and relaxed ordering is provided.
4705 * Return: @true if @v was updated, @false otherwise.
4708 atomic_long_inc_unless_negative(atomic_long_t *v) in atomic_long_inc_unless_negative() argument
4711 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_inc_unless_negative()
4712 return raw_atomic_long_inc_unless_negative(v); in atomic_long_inc_unless_negative()
4717 * @v: pointer to atomic_long_t
4719 * If (@v <= 0), atomically updates @v to (@v - 1) with full ordering.
4720 * Otherwise, @v is not modified and relaxed ordering is provided.
4724 * Return: @true if @v was updated, @false otherwise.
4727 atomic_long_dec_unless_positive(atomic_long_t *v) in atomic_long_dec_unless_positive() argument
4730 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_unless_positive()
4731 return raw_atomic_long_dec_unless_positive(v); in atomic_long_dec_unless_positive()
4736 * @v: pointer to atomic_long_t
4738 * If (@v > 0), atomically updates @v to (@v - 1) with full ordering.
4739 * Otherwise, @v is not modified and relaxed ordering is provided.
4743 * Return: The old value of (@v - 1), regardless of whether @v was updated.
4746 atomic_long_dec_if_positive(atomic_long_t *v) in atomic_long_dec_if_positive() argument
4749 instrument_atomic_read_write(v, sizeof(*v)); in atomic_long_dec_if_positive()
4750 return raw_atomic_long_dec_if_positive(v); in atomic_long_dec_if_positive()