1 // SPDX-License-Identifier: GPL-2.0
3 // Generated by scripts/atomic/gen-atomic-long.sh
4 // DO NOT MODIFY THIS FILE DIRECTLY
6 #ifndef _LINUX_ATOMIC_LONG_H
7 #define _LINUX_ATOMIC_LONG_H
9 #include <linux/compiler.h>
10 #include <asm/types.h>
13 typedef atomic64_t atomic_long_t;
14 #define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
15 #define atomic_long_cond_read_acquire atomic64_cond_read_acquire
16 #define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed
18 typedef atomic_t atomic_long_t;
19 #define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
20 #define atomic_long_cond_read_acquire atomic_cond_read_acquire
21 #define atomic_long_cond_read_relaxed atomic_cond_read_relaxed
26 static __always_inline long
27 arch_atomic_long_read(const atomic_long_t *v)
29 return arch_atomic64_read(v);
32 static __always_inline long
33 arch_atomic_long_read_acquire(const atomic_long_t *v)
35 return arch_atomic64_read_acquire(v);
38 static __always_inline void
39 arch_atomic_long_set(atomic_long_t *v, long i)
41 arch_atomic64_set(v, i);
44 static __always_inline void
45 arch_atomic_long_set_release(atomic_long_t *v, long i)
47 arch_atomic64_set_release(v, i);
50 static __always_inline void
51 arch_atomic_long_add(long i, atomic_long_t *v)
53 arch_atomic64_add(i, v);
56 static __always_inline long
57 arch_atomic_long_add_return(long i, atomic_long_t *v)
59 return arch_atomic64_add_return(i, v);
62 static __always_inline long
63 arch_atomic_long_add_return_acquire(long i, atomic_long_t *v)
65 return arch_atomic64_add_return_acquire(i, v);
68 static __always_inline long
69 arch_atomic_long_add_return_release(long i, atomic_long_t *v)
71 return arch_atomic64_add_return_release(i, v);
74 static __always_inline long
75 arch_atomic_long_add_return_relaxed(long i, atomic_long_t *v)
77 return arch_atomic64_add_return_relaxed(i, v);
80 static __always_inline long
81 arch_atomic_long_fetch_add(long i, atomic_long_t *v)
83 return arch_atomic64_fetch_add(i, v);
86 static __always_inline long
87 arch_atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
89 return arch_atomic64_fetch_add_acquire(i, v);
92 static __always_inline long
93 arch_atomic_long_fetch_add_release(long i, atomic_long_t *v)
95 return arch_atomic64_fetch_add_release(i, v);
98 static __always_inline long
99 arch_atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
101 return arch_atomic64_fetch_add_relaxed(i, v);
104 static __always_inline void
105 arch_atomic_long_sub(long i, atomic_long_t *v)
107 arch_atomic64_sub(i, v);
110 static __always_inline long
111 arch_atomic_long_sub_return(long i, atomic_long_t *v)
113 return arch_atomic64_sub_return(i, v);
116 static __always_inline long
117 arch_atomic_long_sub_return_acquire(long i, atomic_long_t *v)
119 return arch_atomic64_sub_return_acquire(i, v);
122 static __always_inline long
123 arch_atomic_long_sub_return_release(long i, atomic_long_t *v)
125 return arch_atomic64_sub_return_release(i, v);
128 static __always_inline long
129 arch_atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
131 return arch_atomic64_sub_return_relaxed(i, v);
134 static __always_inline long
135 arch_atomic_long_fetch_sub(long i, atomic_long_t *v)
137 return arch_atomic64_fetch_sub(i, v);
140 static __always_inline long
141 arch_atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
143 return arch_atomic64_fetch_sub_acquire(i, v);
146 static __always_inline long
147 arch_atomic_long_fetch_sub_release(long i, atomic_long_t *v)
149 return arch_atomic64_fetch_sub_release(i, v);
152 static __always_inline long
153 arch_atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
155 return arch_atomic64_fetch_sub_relaxed(i, v);
158 static __always_inline void
159 arch_atomic_long_inc(atomic_long_t *v)
161 arch_atomic64_inc(v);
164 static __always_inline long
165 arch_atomic_long_inc_return(atomic_long_t *v)
167 return arch_atomic64_inc_return(v);
170 static __always_inline long
171 arch_atomic_long_inc_return_acquire(atomic_long_t *v)
173 return arch_atomic64_inc_return_acquire(v);
176 static __always_inline long
177 arch_atomic_long_inc_return_release(atomic_long_t *v)
179 return arch_atomic64_inc_return_release(v);
182 static __always_inline long
183 arch_atomic_long_inc_return_relaxed(atomic_long_t *v)
185 return arch_atomic64_inc_return_relaxed(v);
188 static __always_inline long
189 arch_atomic_long_fetch_inc(atomic_long_t *v)
191 return arch_atomic64_fetch_inc(v);
194 static __always_inline long
195 arch_atomic_long_fetch_inc_acquire(atomic_long_t *v)
197 return arch_atomic64_fetch_inc_acquire(v);
200 static __always_inline long
201 arch_atomic_long_fetch_inc_release(atomic_long_t *v)
203 return arch_atomic64_fetch_inc_release(v);
206 static __always_inline long
207 arch_atomic_long_fetch_inc_relaxed(atomic_long_t *v)
209 return arch_atomic64_fetch_inc_relaxed(v);
212 static __always_inline void
213 arch_atomic_long_dec(atomic_long_t *v)
215 arch_atomic64_dec(v);
218 static __always_inline long
219 arch_atomic_long_dec_return(atomic_long_t *v)
221 return arch_atomic64_dec_return(v);
224 static __always_inline long
225 arch_atomic_long_dec_return_acquire(atomic_long_t *v)
227 return arch_atomic64_dec_return_acquire(v);
230 static __always_inline long
231 arch_atomic_long_dec_return_release(atomic_long_t *v)
233 return arch_atomic64_dec_return_release(v);
236 static __always_inline long
237 arch_atomic_long_dec_return_relaxed(atomic_long_t *v)
239 return arch_atomic64_dec_return_relaxed(v);
242 static __always_inline long
243 arch_atomic_long_fetch_dec(atomic_long_t *v)
245 return arch_atomic64_fetch_dec(v);
248 static __always_inline long
249 arch_atomic_long_fetch_dec_acquire(atomic_long_t *v)
251 return arch_atomic64_fetch_dec_acquire(v);
254 static __always_inline long
255 arch_atomic_long_fetch_dec_release(atomic_long_t *v)
257 return arch_atomic64_fetch_dec_release(v);
260 static __always_inline long
261 arch_atomic_long_fetch_dec_relaxed(atomic_long_t *v)
263 return arch_atomic64_fetch_dec_relaxed(v);
266 static __always_inline void
267 arch_atomic_long_and(long i, atomic_long_t *v)
269 arch_atomic64_and(i, v);
272 static __always_inline long
273 arch_atomic_long_fetch_and(long i, atomic_long_t *v)
275 return arch_atomic64_fetch_and(i, v);
278 static __always_inline long
279 arch_atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
281 return arch_atomic64_fetch_and_acquire(i, v);
284 static __always_inline long
285 arch_atomic_long_fetch_and_release(long i, atomic_long_t *v)
287 return arch_atomic64_fetch_and_release(i, v);
290 static __always_inline long
291 arch_atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
293 return arch_atomic64_fetch_and_relaxed(i, v);
296 static __always_inline void
297 arch_atomic_long_andnot(long i, atomic_long_t *v)
299 arch_atomic64_andnot(i, v);
302 static __always_inline long
303 arch_atomic_long_fetch_andnot(long i, atomic_long_t *v)
305 return arch_atomic64_fetch_andnot(i, v);
308 static __always_inline long
309 arch_atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
311 return arch_atomic64_fetch_andnot_acquire(i, v);
314 static __always_inline long
315 arch_atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
317 return arch_atomic64_fetch_andnot_release(i, v);
320 static __always_inline long
321 arch_atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
323 return arch_atomic64_fetch_andnot_relaxed(i, v);
326 static __always_inline void
327 arch_atomic_long_or(long i, atomic_long_t *v)
329 arch_atomic64_or(i, v);
332 static __always_inline long
333 arch_atomic_long_fetch_or(long i, atomic_long_t *v)
335 return arch_atomic64_fetch_or(i, v);
338 static __always_inline long
339 arch_atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
341 return arch_atomic64_fetch_or_acquire(i, v);
344 static __always_inline long
345 arch_atomic_long_fetch_or_release(long i, atomic_long_t *v)
347 return arch_atomic64_fetch_or_release(i, v);
350 static __always_inline long
351 arch_atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
353 return arch_atomic64_fetch_or_relaxed(i, v);
356 static __always_inline void
357 arch_atomic_long_xor(long i, atomic_long_t *v)
359 arch_atomic64_xor(i, v);
362 static __always_inline long
363 arch_atomic_long_fetch_xor(long i, atomic_long_t *v)
365 return arch_atomic64_fetch_xor(i, v);
368 static __always_inline long
369 arch_atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
371 return arch_atomic64_fetch_xor_acquire(i, v);
374 static __always_inline long
375 arch_atomic_long_fetch_xor_release(long i, atomic_long_t *v)
377 return arch_atomic64_fetch_xor_release(i, v);
380 static __always_inline long
381 arch_atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
383 return arch_atomic64_fetch_xor_relaxed(i, v);
386 static __always_inline long
387 arch_atomic_long_xchg(atomic_long_t *v, long i)
389 return arch_atomic64_xchg(v, i);
392 static __always_inline long
393 arch_atomic_long_xchg_acquire(atomic_long_t *v, long i)
395 return arch_atomic64_xchg_acquire(v, i);
398 static __always_inline long
399 arch_atomic_long_xchg_release(atomic_long_t *v, long i)
401 return arch_atomic64_xchg_release(v, i);
404 static __always_inline long
405 arch_atomic_long_xchg_relaxed(atomic_long_t *v, long i)
407 return arch_atomic64_xchg_relaxed(v, i);
410 static __always_inline long
411 arch_atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
413 return arch_atomic64_cmpxchg(v, old, new);
416 static __always_inline long
417 arch_atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
419 return arch_atomic64_cmpxchg_acquire(v, old, new);
422 static __always_inline long
423 arch_atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
425 return arch_atomic64_cmpxchg_release(v, old, new);
428 static __always_inline long
429 arch_atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
431 return arch_atomic64_cmpxchg_relaxed(v, old, new);
434 static __always_inline bool
435 arch_atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
437 return arch_atomic64_try_cmpxchg(v, (s64 *)old, new);
440 static __always_inline bool
441 arch_atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
443 return arch_atomic64_try_cmpxchg_acquire(v, (s64 *)old, new);
446 static __always_inline bool
447 arch_atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
449 return arch_atomic64_try_cmpxchg_release(v, (s64 *)old, new);
452 static __always_inline bool
453 arch_atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
455 return arch_atomic64_try_cmpxchg_relaxed(v, (s64 *)old, new);
458 static __always_inline bool
459 arch_atomic_long_sub_and_test(long i, atomic_long_t *v)
461 return arch_atomic64_sub_and_test(i, v);
464 static __always_inline bool
465 arch_atomic_long_dec_and_test(atomic_long_t *v)
467 return arch_atomic64_dec_and_test(v);
470 static __always_inline bool
471 arch_atomic_long_inc_and_test(atomic_long_t *v)
473 return arch_atomic64_inc_and_test(v);
476 static __always_inline bool
477 arch_atomic_long_add_negative(long i, atomic_long_t *v)
479 return arch_atomic64_add_negative(i, v);
482 static __always_inline long
483 arch_atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
485 return arch_atomic64_fetch_add_unless(v, a, u);
488 static __always_inline bool
489 arch_atomic_long_add_unless(atomic_long_t *v, long a, long u)
491 return arch_atomic64_add_unless(v, a, u);
494 static __always_inline bool
495 arch_atomic_long_inc_not_zero(atomic_long_t *v)
497 return arch_atomic64_inc_not_zero(v);
500 static __always_inline bool
501 arch_atomic_long_inc_unless_negative(atomic_long_t *v)
503 return arch_atomic64_inc_unless_negative(v);
506 static __always_inline bool
507 arch_atomic_long_dec_unless_positive(atomic_long_t *v)
509 return arch_atomic64_dec_unless_positive(v);
512 static __always_inline long
513 arch_atomic_long_dec_if_positive(atomic_long_t *v)
515 return arch_atomic64_dec_if_positive(v);
518 #else /* CONFIG_64BIT */
520 static __always_inline long
521 arch_atomic_long_read(const atomic_long_t *v)
523 return arch_atomic_read(v);
526 static __always_inline long
527 arch_atomic_long_read_acquire(const atomic_long_t *v)
529 return arch_atomic_read_acquire(v);
532 static __always_inline void
533 arch_atomic_long_set(atomic_long_t *v, long i)
535 arch_atomic_set(v, i);
538 static __always_inline void
539 arch_atomic_long_set_release(atomic_long_t *v, long i)
541 arch_atomic_set_release(v, i);
544 static __always_inline void
545 arch_atomic_long_add(long i, atomic_long_t *v)
547 arch_atomic_add(i, v);
550 static __always_inline long
551 arch_atomic_long_add_return(long i, atomic_long_t *v)
553 return arch_atomic_add_return(i, v);
556 static __always_inline long
557 arch_atomic_long_add_return_acquire(long i, atomic_long_t *v)
559 return arch_atomic_add_return_acquire(i, v);
562 static __always_inline long
563 arch_atomic_long_add_return_release(long i, atomic_long_t *v)
565 return arch_atomic_add_return_release(i, v);
568 static __always_inline long
569 arch_atomic_long_add_return_relaxed(long i, atomic_long_t *v)
571 return arch_atomic_add_return_relaxed(i, v);
574 static __always_inline long
575 arch_atomic_long_fetch_add(long i, atomic_long_t *v)
577 return arch_atomic_fetch_add(i, v);
580 static __always_inline long
581 arch_atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
583 return arch_atomic_fetch_add_acquire(i, v);
586 static __always_inline long
587 arch_atomic_long_fetch_add_release(long i, atomic_long_t *v)
589 return arch_atomic_fetch_add_release(i, v);
592 static __always_inline long
593 arch_atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
595 return arch_atomic_fetch_add_relaxed(i, v);
598 static __always_inline void
599 arch_atomic_long_sub(long i, atomic_long_t *v)
601 arch_atomic_sub(i, v);
604 static __always_inline long
605 arch_atomic_long_sub_return(long i, atomic_long_t *v)
607 return arch_atomic_sub_return(i, v);
610 static __always_inline long
611 arch_atomic_long_sub_return_acquire(long i, atomic_long_t *v)
613 return arch_atomic_sub_return_acquire(i, v);
616 static __always_inline long
617 arch_atomic_long_sub_return_release(long i, atomic_long_t *v)
619 return arch_atomic_sub_return_release(i, v);
622 static __always_inline long
623 arch_atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
625 return arch_atomic_sub_return_relaxed(i, v);
628 static __always_inline long
629 arch_atomic_long_fetch_sub(long i, atomic_long_t *v)
631 return arch_atomic_fetch_sub(i, v);
634 static __always_inline long
635 arch_atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
637 return arch_atomic_fetch_sub_acquire(i, v);
640 static __always_inline long
641 arch_atomic_long_fetch_sub_release(long i, atomic_long_t *v)
643 return arch_atomic_fetch_sub_release(i, v);
646 static __always_inline long
647 arch_atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
649 return arch_atomic_fetch_sub_relaxed(i, v);
652 static __always_inline void
653 arch_atomic_long_inc(atomic_long_t *v)
658 static __always_inline long
659 arch_atomic_long_inc_return(atomic_long_t *v)
661 return arch_atomic_inc_return(v);
664 static __always_inline long
665 arch_atomic_long_inc_return_acquire(atomic_long_t *v)
667 return arch_atomic_inc_return_acquire(v);
670 static __always_inline long
671 arch_atomic_long_inc_return_release(atomic_long_t *v)
673 return arch_atomic_inc_return_release(v);
676 static __always_inline long
677 arch_atomic_long_inc_return_relaxed(atomic_long_t *v)
679 return arch_atomic_inc_return_relaxed(v);
682 static __always_inline long
683 arch_atomic_long_fetch_inc(atomic_long_t *v)
685 return arch_atomic_fetch_inc(v);
688 static __always_inline long
689 arch_atomic_long_fetch_inc_acquire(atomic_long_t *v)
691 return arch_atomic_fetch_inc_acquire(v);
694 static __always_inline long
695 arch_atomic_long_fetch_inc_release(atomic_long_t *v)
697 return arch_atomic_fetch_inc_release(v);
700 static __always_inline long
701 arch_atomic_long_fetch_inc_relaxed(atomic_long_t *v)
703 return arch_atomic_fetch_inc_relaxed(v);
706 static __always_inline void
707 arch_atomic_long_dec(atomic_long_t *v)
712 static __always_inline long
713 arch_atomic_long_dec_return(atomic_long_t *v)
715 return arch_atomic_dec_return(v);
718 static __always_inline long
719 arch_atomic_long_dec_return_acquire(atomic_long_t *v)
721 return arch_atomic_dec_return_acquire(v);
724 static __always_inline long
725 arch_atomic_long_dec_return_release(atomic_long_t *v)
727 return arch_atomic_dec_return_release(v);
730 static __always_inline long
731 arch_atomic_long_dec_return_relaxed(atomic_long_t *v)
733 return arch_atomic_dec_return_relaxed(v);
736 static __always_inline long
737 arch_atomic_long_fetch_dec(atomic_long_t *v)
739 return arch_atomic_fetch_dec(v);
742 static __always_inline long
743 arch_atomic_long_fetch_dec_acquire(atomic_long_t *v)
745 return arch_atomic_fetch_dec_acquire(v);
748 static __always_inline long
749 arch_atomic_long_fetch_dec_release(atomic_long_t *v)
751 return arch_atomic_fetch_dec_release(v);
754 static __always_inline long
755 arch_atomic_long_fetch_dec_relaxed(atomic_long_t *v)
757 return arch_atomic_fetch_dec_relaxed(v);
760 static __always_inline void
761 arch_atomic_long_and(long i, atomic_long_t *v)
763 arch_atomic_and(i, v);
766 static __always_inline long
767 arch_atomic_long_fetch_and(long i, atomic_long_t *v)
769 return arch_atomic_fetch_and(i, v);
772 static __always_inline long
773 arch_atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
775 return arch_atomic_fetch_and_acquire(i, v);
778 static __always_inline long
779 arch_atomic_long_fetch_and_release(long i, atomic_long_t *v)
781 return arch_atomic_fetch_and_release(i, v);
784 static __always_inline long
785 arch_atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
787 return arch_atomic_fetch_and_relaxed(i, v);
790 static __always_inline void
791 arch_atomic_long_andnot(long i, atomic_long_t *v)
793 arch_atomic_andnot(i, v);
796 static __always_inline long
797 arch_atomic_long_fetch_andnot(long i, atomic_long_t *v)
799 return arch_atomic_fetch_andnot(i, v);
802 static __always_inline long
803 arch_atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
805 return arch_atomic_fetch_andnot_acquire(i, v);
808 static __always_inline long
809 arch_atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
811 return arch_atomic_fetch_andnot_release(i, v);
814 static __always_inline long
815 arch_atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
817 return arch_atomic_fetch_andnot_relaxed(i, v);
820 static __always_inline void
821 arch_atomic_long_or(long i, atomic_long_t *v)
823 arch_atomic_or(i, v);
826 static __always_inline long
827 arch_atomic_long_fetch_or(long i, atomic_long_t *v)
829 return arch_atomic_fetch_or(i, v);
832 static __always_inline long
833 arch_atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
835 return arch_atomic_fetch_or_acquire(i, v);
838 static __always_inline long
839 arch_atomic_long_fetch_or_release(long i, atomic_long_t *v)
841 return arch_atomic_fetch_or_release(i, v);
844 static __always_inline long
845 arch_atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
847 return arch_atomic_fetch_or_relaxed(i, v);
850 static __always_inline void
851 arch_atomic_long_xor(long i, atomic_long_t *v)
853 arch_atomic_xor(i, v);
856 static __always_inline long
857 arch_atomic_long_fetch_xor(long i, atomic_long_t *v)
859 return arch_atomic_fetch_xor(i, v);
862 static __always_inline long
863 arch_atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
865 return arch_atomic_fetch_xor_acquire(i, v);
868 static __always_inline long
869 arch_atomic_long_fetch_xor_release(long i, atomic_long_t *v)
871 return arch_atomic_fetch_xor_release(i, v);
874 static __always_inline long
875 arch_atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
877 return arch_atomic_fetch_xor_relaxed(i, v);
880 static __always_inline long
881 arch_atomic_long_xchg(atomic_long_t *v, long i)
883 return arch_atomic_xchg(v, i);
886 static __always_inline long
887 arch_atomic_long_xchg_acquire(atomic_long_t *v, long i)
889 return arch_atomic_xchg_acquire(v, i);
892 static __always_inline long
893 arch_atomic_long_xchg_release(atomic_long_t *v, long i)
895 return arch_atomic_xchg_release(v, i);
898 static __always_inline long
899 arch_atomic_long_xchg_relaxed(atomic_long_t *v, long i)
901 return arch_atomic_xchg_relaxed(v, i);
904 static __always_inline long
905 arch_atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
907 return arch_atomic_cmpxchg(v, old, new);
910 static __always_inline long
911 arch_atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
913 return arch_atomic_cmpxchg_acquire(v, old, new);
916 static __always_inline long
917 arch_atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
919 return arch_atomic_cmpxchg_release(v, old, new);
922 static __always_inline long
923 arch_atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
925 return arch_atomic_cmpxchg_relaxed(v, old, new);
928 static __always_inline bool
929 arch_atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
931 return arch_atomic_try_cmpxchg(v, (int *)old, new);
934 static __always_inline bool
935 arch_atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
937 return arch_atomic_try_cmpxchg_acquire(v, (int *)old, new);
940 static __always_inline bool
941 arch_atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
943 return arch_atomic_try_cmpxchg_release(v, (int *)old, new);
946 static __always_inline bool
947 arch_atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
949 return arch_atomic_try_cmpxchg_relaxed(v, (int *)old, new);
952 static __always_inline bool
953 arch_atomic_long_sub_and_test(long i, atomic_long_t *v)
955 return arch_atomic_sub_and_test(i, v);
958 static __always_inline bool
959 arch_atomic_long_dec_and_test(atomic_long_t *v)
961 return arch_atomic_dec_and_test(v);
964 static __always_inline bool
965 arch_atomic_long_inc_and_test(atomic_long_t *v)
967 return arch_atomic_inc_and_test(v);
970 static __always_inline bool
971 arch_atomic_long_add_negative(long i, atomic_long_t *v)
973 return arch_atomic_add_negative(i, v);
976 static __always_inline long
977 arch_atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
979 return arch_atomic_fetch_add_unless(v, a, u);
982 static __always_inline bool
983 arch_atomic_long_add_unless(atomic_long_t *v, long a, long u)
985 return arch_atomic_add_unless(v, a, u);
988 static __always_inline bool
989 arch_atomic_long_inc_not_zero(atomic_long_t *v)
991 return arch_atomic_inc_not_zero(v);
994 static __always_inline bool
995 arch_atomic_long_inc_unless_negative(atomic_long_t *v)
997 return arch_atomic_inc_unless_negative(v);
1000 static __always_inline bool
1001 arch_atomic_long_dec_unless_positive(atomic_long_t *v)
1003 return arch_atomic_dec_unless_positive(v);
1006 static __always_inline long
1007 arch_atomic_long_dec_if_positive(atomic_long_t *v)
1009 return arch_atomic_dec_if_positive(v);
1012 #endif /* CONFIG_64BIT */
1013 #endif /* _LINUX_ATOMIC_LONG_H */
1014 // e8f0e08ff072b74d180eabe2ad001282b38c2c88