Loading...
1// SPDX-License-Identifier: GPL-2.0
2
3// Generated by scripts/atomic/gen-atomic-long.sh
4// DO NOT MODIFY THIS FILE DIRECTLY
5
6#ifndef _ASM_GENERIC_ATOMIC_LONG_H
7#define _ASM_GENERIC_ATOMIC_LONG_H
8
9#include <asm/types.h>
10
11#ifdef CONFIG_64BIT
12typedef atomic64_t atomic_long_t;
13#define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
14#define atomic_long_cond_read_acquire atomic64_cond_read_acquire
15#define atomic_long_cond_read_relaxed atomic64_cond_read_relaxed
16#else
17typedef atomic_t atomic_long_t;
18#define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
19#define atomic_long_cond_read_acquire atomic_cond_read_acquire
20#define atomic_long_cond_read_relaxed atomic_cond_read_relaxed
21#endif
22
23#ifdef CONFIG_64BIT
24
25static inline long
26atomic_long_read(const atomic_long_t *v)
27{
28 return atomic64_read(v);
29}
30
31static inline long
32atomic_long_read_acquire(const atomic_long_t *v)
33{
34 return atomic64_read_acquire(v);
35}
36
37static inline void
38atomic_long_set(atomic_long_t *v, long i)
39{
40 atomic64_set(v, i);
41}
42
43static inline void
44atomic_long_set_release(atomic_long_t *v, long i)
45{
46 atomic64_set_release(v, i);
47}
48
49static inline void
50atomic_long_add(long i, atomic_long_t *v)
51{
52 atomic64_add(i, v);
53}
54
55static inline long
56atomic_long_add_return(long i, atomic_long_t *v)
57{
58 return atomic64_add_return(i, v);
59}
60
61static inline long
62atomic_long_add_return_acquire(long i, atomic_long_t *v)
63{
64 return atomic64_add_return_acquire(i, v);
65}
66
67static inline long
68atomic_long_add_return_release(long i, atomic_long_t *v)
69{
70 return atomic64_add_return_release(i, v);
71}
72
73static inline long
74atomic_long_add_return_relaxed(long i, atomic_long_t *v)
75{
76 return atomic64_add_return_relaxed(i, v);
77}
78
79static inline long
80atomic_long_fetch_add(long i, atomic_long_t *v)
81{
82 return atomic64_fetch_add(i, v);
83}
84
85static inline long
86atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
87{
88 return atomic64_fetch_add_acquire(i, v);
89}
90
91static inline long
92atomic_long_fetch_add_release(long i, atomic_long_t *v)
93{
94 return atomic64_fetch_add_release(i, v);
95}
96
97static inline long
98atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
99{
100 return atomic64_fetch_add_relaxed(i, v);
101}
102
103static inline void
104atomic_long_sub(long i, atomic_long_t *v)
105{
106 atomic64_sub(i, v);
107}
108
109static inline long
110atomic_long_sub_return(long i, atomic_long_t *v)
111{
112 return atomic64_sub_return(i, v);
113}
114
115static inline long
116atomic_long_sub_return_acquire(long i, atomic_long_t *v)
117{
118 return atomic64_sub_return_acquire(i, v);
119}
120
121static inline long
122atomic_long_sub_return_release(long i, atomic_long_t *v)
123{
124 return atomic64_sub_return_release(i, v);
125}
126
127static inline long
128atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
129{
130 return atomic64_sub_return_relaxed(i, v);
131}
132
133static inline long
134atomic_long_fetch_sub(long i, atomic_long_t *v)
135{
136 return atomic64_fetch_sub(i, v);
137}
138
139static inline long
140atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
141{
142 return atomic64_fetch_sub_acquire(i, v);
143}
144
145static inline long
146atomic_long_fetch_sub_release(long i, atomic_long_t *v)
147{
148 return atomic64_fetch_sub_release(i, v);
149}
150
151static inline long
152atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
153{
154 return atomic64_fetch_sub_relaxed(i, v);
155}
156
157static inline void
158atomic_long_inc(atomic_long_t *v)
159{
160 atomic64_inc(v);
161}
162
163static inline long
164atomic_long_inc_return(atomic_long_t *v)
165{
166 return atomic64_inc_return(v);
167}
168
169static inline long
170atomic_long_inc_return_acquire(atomic_long_t *v)
171{
172 return atomic64_inc_return_acquire(v);
173}
174
175static inline long
176atomic_long_inc_return_release(atomic_long_t *v)
177{
178 return atomic64_inc_return_release(v);
179}
180
181static inline long
182atomic_long_inc_return_relaxed(atomic_long_t *v)
183{
184 return atomic64_inc_return_relaxed(v);
185}
186
187static inline long
188atomic_long_fetch_inc(atomic_long_t *v)
189{
190 return atomic64_fetch_inc(v);
191}
192
193static inline long
194atomic_long_fetch_inc_acquire(atomic_long_t *v)
195{
196 return atomic64_fetch_inc_acquire(v);
197}
198
199static inline long
200atomic_long_fetch_inc_release(atomic_long_t *v)
201{
202 return atomic64_fetch_inc_release(v);
203}
204
205static inline long
206atomic_long_fetch_inc_relaxed(atomic_long_t *v)
207{
208 return atomic64_fetch_inc_relaxed(v);
209}
210
211static inline void
212atomic_long_dec(atomic_long_t *v)
213{
214 atomic64_dec(v);
215}
216
217static inline long
218atomic_long_dec_return(atomic_long_t *v)
219{
220 return atomic64_dec_return(v);
221}
222
223static inline long
224atomic_long_dec_return_acquire(atomic_long_t *v)
225{
226 return atomic64_dec_return_acquire(v);
227}
228
229static inline long
230atomic_long_dec_return_release(atomic_long_t *v)
231{
232 return atomic64_dec_return_release(v);
233}
234
235static inline long
236atomic_long_dec_return_relaxed(atomic_long_t *v)
237{
238 return atomic64_dec_return_relaxed(v);
239}
240
241static inline long
242atomic_long_fetch_dec(atomic_long_t *v)
243{
244 return atomic64_fetch_dec(v);
245}
246
247static inline long
248atomic_long_fetch_dec_acquire(atomic_long_t *v)
249{
250 return atomic64_fetch_dec_acquire(v);
251}
252
253static inline long
254atomic_long_fetch_dec_release(atomic_long_t *v)
255{
256 return atomic64_fetch_dec_release(v);
257}
258
259static inline long
260atomic_long_fetch_dec_relaxed(atomic_long_t *v)
261{
262 return atomic64_fetch_dec_relaxed(v);
263}
264
265static inline void
266atomic_long_and(long i, atomic_long_t *v)
267{
268 atomic64_and(i, v);
269}
270
271static inline long
272atomic_long_fetch_and(long i, atomic_long_t *v)
273{
274 return atomic64_fetch_and(i, v);
275}
276
277static inline long
278atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
279{
280 return atomic64_fetch_and_acquire(i, v);
281}
282
283static inline long
284atomic_long_fetch_and_release(long i, atomic_long_t *v)
285{
286 return atomic64_fetch_and_release(i, v);
287}
288
289static inline long
290atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
291{
292 return atomic64_fetch_and_relaxed(i, v);
293}
294
295static inline void
296atomic_long_andnot(long i, atomic_long_t *v)
297{
298 atomic64_andnot(i, v);
299}
300
301static inline long
302atomic_long_fetch_andnot(long i, atomic_long_t *v)
303{
304 return atomic64_fetch_andnot(i, v);
305}
306
307static inline long
308atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
309{
310 return atomic64_fetch_andnot_acquire(i, v);
311}
312
313static inline long
314atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
315{
316 return atomic64_fetch_andnot_release(i, v);
317}
318
319static inline long
320atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
321{
322 return atomic64_fetch_andnot_relaxed(i, v);
323}
324
325static inline void
326atomic_long_or(long i, atomic_long_t *v)
327{
328 atomic64_or(i, v);
329}
330
331static inline long
332atomic_long_fetch_or(long i, atomic_long_t *v)
333{
334 return atomic64_fetch_or(i, v);
335}
336
337static inline long
338atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
339{
340 return atomic64_fetch_or_acquire(i, v);
341}
342
343static inline long
344atomic_long_fetch_or_release(long i, atomic_long_t *v)
345{
346 return atomic64_fetch_or_release(i, v);
347}
348
349static inline long
350atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
351{
352 return atomic64_fetch_or_relaxed(i, v);
353}
354
355static inline void
356atomic_long_xor(long i, atomic_long_t *v)
357{
358 atomic64_xor(i, v);
359}
360
361static inline long
362atomic_long_fetch_xor(long i, atomic_long_t *v)
363{
364 return atomic64_fetch_xor(i, v);
365}
366
367static inline long
368atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
369{
370 return atomic64_fetch_xor_acquire(i, v);
371}
372
373static inline long
374atomic_long_fetch_xor_release(long i, atomic_long_t *v)
375{
376 return atomic64_fetch_xor_release(i, v);
377}
378
379static inline long
380atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
381{
382 return atomic64_fetch_xor_relaxed(i, v);
383}
384
385static inline long
386atomic_long_xchg(atomic_long_t *v, long i)
387{
388 return atomic64_xchg(v, i);
389}
390
391static inline long
392atomic_long_xchg_acquire(atomic_long_t *v, long i)
393{
394 return atomic64_xchg_acquire(v, i);
395}
396
397static inline long
398atomic_long_xchg_release(atomic_long_t *v, long i)
399{
400 return atomic64_xchg_release(v, i);
401}
402
403static inline long
404atomic_long_xchg_relaxed(atomic_long_t *v, long i)
405{
406 return atomic64_xchg_relaxed(v, i);
407}
408
409static inline long
410atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
411{
412 return atomic64_cmpxchg(v, old, new);
413}
414
415static inline long
416atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
417{
418 return atomic64_cmpxchg_acquire(v, old, new);
419}
420
421static inline long
422atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
423{
424 return atomic64_cmpxchg_release(v, old, new);
425}
426
427static inline long
428atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
429{
430 return atomic64_cmpxchg_relaxed(v, old, new);
431}
432
433static inline bool
434atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
435{
436 return atomic64_try_cmpxchg(v, (s64 *)old, new);
437}
438
439static inline bool
440atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
441{
442 return atomic64_try_cmpxchg_acquire(v, (s64 *)old, new);
443}
444
445static inline bool
446atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
447{
448 return atomic64_try_cmpxchg_release(v, (s64 *)old, new);
449}
450
451static inline bool
452atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
453{
454 return atomic64_try_cmpxchg_relaxed(v, (s64 *)old, new);
455}
456
457static inline bool
458atomic_long_sub_and_test(long i, atomic_long_t *v)
459{
460 return atomic64_sub_and_test(i, v);
461}
462
463static inline bool
464atomic_long_dec_and_test(atomic_long_t *v)
465{
466 return atomic64_dec_and_test(v);
467}
468
469static inline bool
470atomic_long_inc_and_test(atomic_long_t *v)
471{
472 return atomic64_inc_and_test(v);
473}
474
475static inline bool
476atomic_long_add_negative(long i, atomic_long_t *v)
477{
478 return atomic64_add_negative(i, v);
479}
480
481static inline long
482atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
483{
484 return atomic64_fetch_add_unless(v, a, u);
485}
486
487static inline bool
488atomic_long_add_unless(atomic_long_t *v, long a, long u)
489{
490 return atomic64_add_unless(v, a, u);
491}
492
493static inline bool
494atomic_long_inc_not_zero(atomic_long_t *v)
495{
496 return atomic64_inc_not_zero(v);
497}
498
499static inline bool
500atomic_long_inc_unless_negative(atomic_long_t *v)
501{
502 return atomic64_inc_unless_negative(v);
503}
504
505static inline bool
506atomic_long_dec_unless_positive(atomic_long_t *v)
507{
508 return atomic64_dec_unless_positive(v);
509}
510
511static inline long
512atomic_long_dec_if_positive(atomic_long_t *v)
513{
514 return atomic64_dec_if_positive(v);
515}
516
517#else /* CONFIG_64BIT */
518
519static inline long
520atomic_long_read(const atomic_long_t *v)
521{
522 return atomic_read(v);
523}
524
525static inline long
526atomic_long_read_acquire(const atomic_long_t *v)
527{
528 return atomic_read_acquire(v);
529}
530
531static inline void
532atomic_long_set(atomic_long_t *v, long i)
533{
534 atomic_set(v, i);
535}
536
537static inline void
538atomic_long_set_release(atomic_long_t *v, long i)
539{
540 atomic_set_release(v, i);
541}
542
543static inline void
544atomic_long_add(long i, atomic_long_t *v)
545{
546 atomic_add(i, v);
547}
548
549static inline long
550atomic_long_add_return(long i, atomic_long_t *v)
551{
552 return atomic_add_return(i, v);
553}
554
555static inline long
556atomic_long_add_return_acquire(long i, atomic_long_t *v)
557{
558 return atomic_add_return_acquire(i, v);
559}
560
561static inline long
562atomic_long_add_return_release(long i, atomic_long_t *v)
563{
564 return atomic_add_return_release(i, v);
565}
566
567static inline long
568atomic_long_add_return_relaxed(long i, atomic_long_t *v)
569{
570 return atomic_add_return_relaxed(i, v);
571}
572
573static inline long
574atomic_long_fetch_add(long i, atomic_long_t *v)
575{
576 return atomic_fetch_add(i, v);
577}
578
579static inline long
580atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
581{
582 return atomic_fetch_add_acquire(i, v);
583}
584
585static inline long
586atomic_long_fetch_add_release(long i, atomic_long_t *v)
587{
588 return atomic_fetch_add_release(i, v);
589}
590
591static inline long
592atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
593{
594 return atomic_fetch_add_relaxed(i, v);
595}
596
597static inline void
598atomic_long_sub(long i, atomic_long_t *v)
599{
600 atomic_sub(i, v);
601}
602
603static inline long
604atomic_long_sub_return(long i, atomic_long_t *v)
605{
606 return atomic_sub_return(i, v);
607}
608
609static inline long
610atomic_long_sub_return_acquire(long i, atomic_long_t *v)
611{
612 return atomic_sub_return_acquire(i, v);
613}
614
615static inline long
616atomic_long_sub_return_release(long i, atomic_long_t *v)
617{
618 return atomic_sub_return_release(i, v);
619}
620
621static inline long
622atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
623{
624 return atomic_sub_return_relaxed(i, v);
625}
626
627static inline long
628atomic_long_fetch_sub(long i, atomic_long_t *v)
629{
630 return atomic_fetch_sub(i, v);
631}
632
633static inline long
634atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
635{
636 return atomic_fetch_sub_acquire(i, v);
637}
638
639static inline long
640atomic_long_fetch_sub_release(long i, atomic_long_t *v)
641{
642 return atomic_fetch_sub_release(i, v);
643}
644
645static inline long
646atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
647{
648 return atomic_fetch_sub_relaxed(i, v);
649}
650
651static inline void
652atomic_long_inc(atomic_long_t *v)
653{
654 atomic_inc(v);
655}
656
657static inline long
658atomic_long_inc_return(atomic_long_t *v)
659{
660 return atomic_inc_return(v);
661}
662
663static inline long
664atomic_long_inc_return_acquire(atomic_long_t *v)
665{
666 return atomic_inc_return_acquire(v);
667}
668
669static inline long
670atomic_long_inc_return_release(atomic_long_t *v)
671{
672 return atomic_inc_return_release(v);
673}
674
675static inline long
676atomic_long_inc_return_relaxed(atomic_long_t *v)
677{
678 return atomic_inc_return_relaxed(v);
679}
680
681static inline long
682atomic_long_fetch_inc(atomic_long_t *v)
683{
684 return atomic_fetch_inc(v);
685}
686
687static inline long
688atomic_long_fetch_inc_acquire(atomic_long_t *v)
689{
690 return atomic_fetch_inc_acquire(v);
691}
692
693static inline long
694atomic_long_fetch_inc_release(atomic_long_t *v)
695{
696 return atomic_fetch_inc_release(v);
697}
698
699static inline long
700atomic_long_fetch_inc_relaxed(atomic_long_t *v)
701{
702 return atomic_fetch_inc_relaxed(v);
703}
704
705static inline void
706atomic_long_dec(atomic_long_t *v)
707{
708 atomic_dec(v);
709}
710
711static inline long
712atomic_long_dec_return(atomic_long_t *v)
713{
714 return atomic_dec_return(v);
715}
716
717static inline long
718atomic_long_dec_return_acquire(atomic_long_t *v)
719{
720 return atomic_dec_return_acquire(v);
721}
722
723static inline long
724atomic_long_dec_return_release(atomic_long_t *v)
725{
726 return atomic_dec_return_release(v);
727}
728
729static inline long
730atomic_long_dec_return_relaxed(atomic_long_t *v)
731{
732 return atomic_dec_return_relaxed(v);
733}
734
735static inline long
736atomic_long_fetch_dec(atomic_long_t *v)
737{
738 return atomic_fetch_dec(v);
739}
740
741static inline long
742atomic_long_fetch_dec_acquire(atomic_long_t *v)
743{
744 return atomic_fetch_dec_acquire(v);
745}
746
747static inline long
748atomic_long_fetch_dec_release(atomic_long_t *v)
749{
750 return atomic_fetch_dec_release(v);
751}
752
753static inline long
754atomic_long_fetch_dec_relaxed(atomic_long_t *v)
755{
756 return atomic_fetch_dec_relaxed(v);
757}
758
759static inline void
760atomic_long_and(long i, atomic_long_t *v)
761{
762 atomic_and(i, v);
763}
764
765static inline long
766atomic_long_fetch_and(long i, atomic_long_t *v)
767{
768 return atomic_fetch_and(i, v);
769}
770
771static inline long
772atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
773{
774 return atomic_fetch_and_acquire(i, v);
775}
776
777static inline long
778atomic_long_fetch_and_release(long i, atomic_long_t *v)
779{
780 return atomic_fetch_and_release(i, v);
781}
782
783static inline long
784atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
785{
786 return atomic_fetch_and_relaxed(i, v);
787}
788
789static inline void
790atomic_long_andnot(long i, atomic_long_t *v)
791{
792 atomic_andnot(i, v);
793}
794
795static inline long
796atomic_long_fetch_andnot(long i, atomic_long_t *v)
797{
798 return atomic_fetch_andnot(i, v);
799}
800
801static inline long
802atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
803{
804 return atomic_fetch_andnot_acquire(i, v);
805}
806
807static inline long
808atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
809{
810 return atomic_fetch_andnot_release(i, v);
811}
812
813static inline long
814atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
815{
816 return atomic_fetch_andnot_relaxed(i, v);
817}
818
819static inline void
820atomic_long_or(long i, atomic_long_t *v)
821{
822 atomic_or(i, v);
823}
824
825static inline long
826atomic_long_fetch_or(long i, atomic_long_t *v)
827{
828 return atomic_fetch_or(i, v);
829}
830
831static inline long
832atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
833{
834 return atomic_fetch_or_acquire(i, v);
835}
836
837static inline long
838atomic_long_fetch_or_release(long i, atomic_long_t *v)
839{
840 return atomic_fetch_or_release(i, v);
841}
842
843static inline long
844atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
845{
846 return atomic_fetch_or_relaxed(i, v);
847}
848
849static inline void
850atomic_long_xor(long i, atomic_long_t *v)
851{
852 atomic_xor(i, v);
853}
854
855static inline long
856atomic_long_fetch_xor(long i, atomic_long_t *v)
857{
858 return atomic_fetch_xor(i, v);
859}
860
861static inline long
862atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
863{
864 return atomic_fetch_xor_acquire(i, v);
865}
866
867static inline long
868atomic_long_fetch_xor_release(long i, atomic_long_t *v)
869{
870 return atomic_fetch_xor_release(i, v);
871}
872
873static inline long
874atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
875{
876 return atomic_fetch_xor_relaxed(i, v);
877}
878
879static inline long
880atomic_long_xchg(atomic_long_t *v, long i)
881{
882 return atomic_xchg(v, i);
883}
884
885static inline long
886atomic_long_xchg_acquire(atomic_long_t *v, long i)
887{
888 return atomic_xchg_acquire(v, i);
889}
890
891static inline long
892atomic_long_xchg_release(atomic_long_t *v, long i)
893{
894 return atomic_xchg_release(v, i);
895}
896
897static inline long
898atomic_long_xchg_relaxed(atomic_long_t *v, long i)
899{
900 return atomic_xchg_relaxed(v, i);
901}
902
903static inline long
904atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
905{
906 return atomic_cmpxchg(v, old, new);
907}
908
909static inline long
910atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
911{
912 return atomic_cmpxchg_acquire(v, old, new);
913}
914
915static inline long
916atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
917{
918 return atomic_cmpxchg_release(v, old, new);
919}
920
921static inline long
922atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
923{
924 return atomic_cmpxchg_relaxed(v, old, new);
925}
926
927static inline bool
928atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
929{
930 return atomic_try_cmpxchg(v, (int *)old, new);
931}
932
933static inline bool
934atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
935{
936 return atomic_try_cmpxchg_acquire(v, (int *)old, new);
937}
938
939static inline bool
940atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
941{
942 return atomic_try_cmpxchg_release(v, (int *)old, new);
943}
944
945static inline bool
946atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
947{
948 return atomic_try_cmpxchg_relaxed(v, (int *)old, new);
949}
950
951static inline bool
952atomic_long_sub_and_test(long i, atomic_long_t *v)
953{
954 return atomic_sub_and_test(i, v);
955}
956
957static inline bool
958atomic_long_dec_and_test(atomic_long_t *v)
959{
960 return atomic_dec_and_test(v);
961}
962
963static inline bool
964atomic_long_inc_and_test(atomic_long_t *v)
965{
966 return atomic_inc_and_test(v);
967}
968
969static inline bool
970atomic_long_add_negative(long i, atomic_long_t *v)
971{
972 return atomic_add_negative(i, v);
973}
974
975static inline long
976atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
977{
978 return atomic_fetch_add_unless(v, a, u);
979}
980
981static inline bool
982atomic_long_add_unless(atomic_long_t *v, long a, long u)
983{
984 return atomic_add_unless(v, a, u);
985}
986
987static inline bool
988atomic_long_inc_not_zero(atomic_long_t *v)
989{
990 return atomic_inc_not_zero(v);
991}
992
993static inline bool
994atomic_long_inc_unless_negative(atomic_long_t *v)
995{
996 return atomic_inc_unless_negative(v);
997}
998
999static inline bool
1000atomic_long_dec_unless_positive(atomic_long_t *v)
1001{
1002 return atomic_dec_unless_positive(v);
1003}
1004
1005static inline long
1006atomic_long_dec_if_positive(atomic_long_t *v)
1007{
1008 return atomic_dec_if_positive(v);
1009}
1010
1011#endif /* CONFIG_64BIT */
1012#endif /* _ASM_GENERIC_ATOMIC_LONG_H */
1013// 77558968132ce4f911ad53f6f52ce423006f6268
1// SPDX-License-Identifier: GPL-2.0
2
3// Generated by scripts/atomic/gen-atomic-long.sh
4// DO NOT MODIFY THIS FILE DIRECTLY
5
6#ifndef _ASM_GENERIC_ATOMIC_LONG_H
7#define _ASM_GENERIC_ATOMIC_LONG_H
8
9#include <linux/compiler.h>
10#include <asm/types.h>
11
12#ifdef CONFIG_64BIT
13typedef 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
17#else
18typedef 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
22#endif
23
24#ifdef CONFIG_64BIT
25
26static __always_inline long
27atomic_long_read(const atomic_long_t *v)
28{
29 return atomic64_read(v);
30}
31
32static __always_inline long
33atomic_long_read_acquire(const atomic_long_t *v)
34{
35 return atomic64_read_acquire(v);
36}
37
38static __always_inline void
39atomic_long_set(atomic_long_t *v, long i)
40{
41 atomic64_set(v, i);
42}
43
44static __always_inline void
45atomic_long_set_release(atomic_long_t *v, long i)
46{
47 atomic64_set_release(v, i);
48}
49
50static __always_inline void
51atomic_long_add(long i, atomic_long_t *v)
52{
53 atomic64_add(i, v);
54}
55
56static __always_inline long
57atomic_long_add_return(long i, atomic_long_t *v)
58{
59 return atomic64_add_return(i, v);
60}
61
62static __always_inline long
63atomic_long_add_return_acquire(long i, atomic_long_t *v)
64{
65 return atomic64_add_return_acquire(i, v);
66}
67
68static __always_inline long
69atomic_long_add_return_release(long i, atomic_long_t *v)
70{
71 return atomic64_add_return_release(i, v);
72}
73
74static __always_inline long
75atomic_long_add_return_relaxed(long i, atomic_long_t *v)
76{
77 return atomic64_add_return_relaxed(i, v);
78}
79
80static __always_inline long
81atomic_long_fetch_add(long i, atomic_long_t *v)
82{
83 return atomic64_fetch_add(i, v);
84}
85
86static __always_inline long
87atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
88{
89 return atomic64_fetch_add_acquire(i, v);
90}
91
92static __always_inline long
93atomic_long_fetch_add_release(long i, atomic_long_t *v)
94{
95 return atomic64_fetch_add_release(i, v);
96}
97
98static __always_inline long
99atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
100{
101 return atomic64_fetch_add_relaxed(i, v);
102}
103
104static __always_inline void
105atomic_long_sub(long i, atomic_long_t *v)
106{
107 atomic64_sub(i, v);
108}
109
110static __always_inline long
111atomic_long_sub_return(long i, atomic_long_t *v)
112{
113 return atomic64_sub_return(i, v);
114}
115
116static __always_inline long
117atomic_long_sub_return_acquire(long i, atomic_long_t *v)
118{
119 return atomic64_sub_return_acquire(i, v);
120}
121
122static __always_inline long
123atomic_long_sub_return_release(long i, atomic_long_t *v)
124{
125 return atomic64_sub_return_release(i, v);
126}
127
128static __always_inline long
129atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
130{
131 return atomic64_sub_return_relaxed(i, v);
132}
133
134static __always_inline long
135atomic_long_fetch_sub(long i, atomic_long_t *v)
136{
137 return atomic64_fetch_sub(i, v);
138}
139
140static __always_inline long
141atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
142{
143 return atomic64_fetch_sub_acquire(i, v);
144}
145
146static __always_inline long
147atomic_long_fetch_sub_release(long i, atomic_long_t *v)
148{
149 return atomic64_fetch_sub_release(i, v);
150}
151
152static __always_inline long
153atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
154{
155 return atomic64_fetch_sub_relaxed(i, v);
156}
157
158static __always_inline void
159atomic_long_inc(atomic_long_t *v)
160{
161 atomic64_inc(v);
162}
163
164static __always_inline long
165atomic_long_inc_return(atomic_long_t *v)
166{
167 return atomic64_inc_return(v);
168}
169
170static __always_inline long
171atomic_long_inc_return_acquire(atomic_long_t *v)
172{
173 return atomic64_inc_return_acquire(v);
174}
175
176static __always_inline long
177atomic_long_inc_return_release(atomic_long_t *v)
178{
179 return atomic64_inc_return_release(v);
180}
181
182static __always_inline long
183atomic_long_inc_return_relaxed(atomic_long_t *v)
184{
185 return atomic64_inc_return_relaxed(v);
186}
187
188static __always_inline long
189atomic_long_fetch_inc(atomic_long_t *v)
190{
191 return atomic64_fetch_inc(v);
192}
193
194static __always_inline long
195atomic_long_fetch_inc_acquire(atomic_long_t *v)
196{
197 return atomic64_fetch_inc_acquire(v);
198}
199
200static __always_inline long
201atomic_long_fetch_inc_release(atomic_long_t *v)
202{
203 return atomic64_fetch_inc_release(v);
204}
205
206static __always_inline long
207atomic_long_fetch_inc_relaxed(atomic_long_t *v)
208{
209 return atomic64_fetch_inc_relaxed(v);
210}
211
212static __always_inline void
213atomic_long_dec(atomic_long_t *v)
214{
215 atomic64_dec(v);
216}
217
218static __always_inline long
219atomic_long_dec_return(atomic_long_t *v)
220{
221 return atomic64_dec_return(v);
222}
223
224static __always_inline long
225atomic_long_dec_return_acquire(atomic_long_t *v)
226{
227 return atomic64_dec_return_acquire(v);
228}
229
230static __always_inline long
231atomic_long_dec_return_release(atomic_long_t *v)
232{
233 return atomic64_dec_return_release(v);
234}
235
236static __always_inline long
237atomic_long_dec_return_relaxed(atomic_long_t *v)
238{
239 return atomic64_dec_return_relaxed(v);
240}
241
242static __always_inline long
243atomic_long_fetch_dec(atomic_long_t *v)
244{
245 return atomic64_fetch_dec(v);
246}
247
248static __always_inline long
249atomic_long_fetch_dec_acquire(atomic_long_t *v)
250{
251 return atomic64_fetch_dec_acquire(v);
252}
253
254static __always_inline long
255atomic_long_fetch_dec_release(atomic_long_t *v)
256{
257 return atomic64_fetch_dec_release(v);
258}
259
260static __always_inline long
261atomic_long_fetch_dec_relaxed(atomic_long_t *v)
262{
263 return atomic64_fetch_dec_relaxed(v);
264}
265
266static __always_inline void
267atomic_long_and(long i, atomic_long_t *v)
268{
269 atomic64_and(i, v);
270}
271
272static __always_inline long
273atomic_long_fetch_and(long i, atomic_long_t *v)
274{
275 return atomic64_fetch_and(i, v);
276}
277
278static __always_inline long
279atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
280{
281 return atomic64_fetch_and_acquire(i, v);
282}
283
284static __always_inline long
285atomic_long_fetch_and_release(long i, atomic_long_t *v)
286{
287 return atomic64_fetch_and_release(i, v);
288}
289
290static __always_inline long
291atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
292{
293 return atomic64_fetch_and_relaxed(i, v);
294}
295
296static __always_inline void
297atomic_long_andnot(long i, atomic_long_t *v)
298{
299 atomic64_andnot(i, v);
300}
301
302static __always_inline long
303atomic_long_fetch_andnot(long i, atomic_long_t *v)
304{
305 return atomic64_fetch_andnot(i, v);
306}
307
308static __always_inline long
309atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
310{
311 return atomic64_fetch_andnot_acquire(i, v);
312}
313
314static __always_inline long
315atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
316{
317 return atomic64_fetch_andnot_release(i, v);
318}
319
320static __always_inline long
321atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
322{
323 return atomic64_fetch_andnot_relaxed(i, v);
324}
325
326static __always_inline void
327atomic_long_or(long i, atomic_long_t *v)
328{
329 atomic64_or(i, v);
330}
331
332static __always_inline long
333atomic_long_fetch_or(long i, atomic_long_t *v)
334{
335 return atomic64_fetch_or(i, v);
336}
337
338static __always_inline long
339atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
340{
341 return atomic64_fetch_or_acquire(i, v);
342}
343
344static __always_inline long
345atomic_long_fetch_or_release(long i, atomic_long_t *v)
346{
347 return atomic64_fetch_or_release(i, v);
348}
349
350static __always_inline long
351atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
352{
353 return atomic64_fetch_or_relaxed(i, v);
354}
355
356static __always_inline void
357atomic_long_xor(long i, atomic_long_t *v)
358{
359 atomic64_xor(i, v);
360}
361
362static __always_inline long
363atomic_long_fetch_xor(long i, atomic_long_t *v)
364{
365 return atomic64_fetch_xor(i, v);
366}
367
368static __always_inline long
369atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
370{
371 return atomic64_fetch_xor_acquire(i, v);
372}
373
374static __always_inline long
375atomic_long_fetch_xor_release(long i, atomic_long_t *v)
376{
377 return atomic64_fetch_xor_release(i, v);
378}
379
380static __always_inline long
381atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
382{
383 return atomic64_fetch_xor_relaxed(i, v);
384}
385
386static __always_inline long
387atomic_long_xchg(atomic_long_t *v, long i)
388{
389 return atomic64_xchg(v, i);
390}
391
392static __always_inline long
393atomic_long_xchg_acquire(atomic_long_t *v, long i)
394{
395 return atomic64_xchg_acquire(v, i);
396}
397
398static __always_inline long
399atomic_long_xchg_release(atomic_long_t *v, long i)
400{
401 return atomic64_xchg_release(v, i);
402}
403
404static __always_inline long
405atomic_long_xchg_relaxed(atomic_long_t *v, long i)
406{
407 return atomic64_xchg_relaxed(v, i);
408}
409
410static __always_inline long
411atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
412{
413 return atomic64_cmpxchg(v, old, new);
414}
415
416static __always_inline long
417atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
418{
419 return atomic64_cmpxchg_acquire(v, old, new);
420}
421
422static __always_inline long
423atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
424{
425 return atomic64_cmpxchg_release(v, old, new);
426}
427
428static __always_inline long
429atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
430{
431 return atomic64_cmpxchg_relaxed(v, old, new);
432}
433
434static __always_inline bool
435atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
436{
437 return atomic64_try_cmpxchg(v, (s64 *)old, new);
438}
439
440static __always_inline bool
441atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
442{
443 return atomic64_try_cmpxchg_acquire(v, (s64 *)old, new);
444}
445
446static __always_inline bool
447atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
448{
449 return atomic64_try_cmpxchg_release(v, (s64 *)old, new);
450}
451
452static __always_inline bool
453atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
454{
455 return atomic64_try_cmpxchg_relaxed(v, (s64 *)old, new);
456}
457
458static __always_inline bool
459atomic_long_sub_and_test(long i, atomic_long_t *v)
460{
461 return atomic64_sub_and_test(i, v);
462}
463
464static __always_inline bool
465atomic_long_dec_and_test(atomic_long_t *v)
466{
467 return atomic64_dec_and_test(v);
468}
469
470static __always_inline bool
471atomic_long_inc_and_test(atomic_long_t *v)
472{
473 return atomic64_inc_and_test(v);
474}
475
476static __always_inline bool
477atomic_long_add_negative(long i, atomic_long_t *v)
478{
479 return atomic64_add_negative(i, v);
480}
481
482static __always_inline long
483atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
484{
485 return atomic64_fetch_add_unless(v, a, u);
486}
487
488static __always_inline bool
489atomic_long_add_unless(atomic_long_t *v, long a, long u)
490{
491 return atomic64_add_unless(v, a, u);
492}
493
494static __always_inline bool
495atomic_long_inc_not_zero(atomic_long_t *v)
496{
497 return atomic64_inc_not_zero(v);
498}
499
500static __always_inline bool
501atomic_long_inc_unless_negative(atomic_long_t *v)
502{
503 return atomic64_inc_unless_negative(v);
504}
505
506static __always_inline bool
507atomic_long_dec_unless_positive(atomic_long_t *v)
508{
509 return atomic64_dec_unless_positive(v);
510}
511
512static __always_inline long
513atomic_long_dec_if_positive(atomic_long_t *v)
514{
515 return atomic64_dec_if_positive(v);
516}
517
518#else /* CONFIG_64BIT */
519
520static __always_inline long
521atomic_long_read(const atomic_long_t *v)
522{
523 return atomic_read(v);
524}
525
526static __always_inline long
527atomic_long_read_acquire(const atomic_long_t *v)
528{
529 return atomic_read_acquire(v);
530}
531
532static __always_inline void
533atomic_long_set(atomic_long_t *v, long i)
534{
535 atomic_set(v, i);
536}
537
538static __always_inline void
539atomic_long_set_release(atomic_long_t *v, long i)
540{
541 atomic_set_release(v, i);
542}
543
544static __always_inline void
545atomic_long_add(long i, atomic_long_t *v)
546{
547 atomic_add(i, v);
548}
549
550static __always_inline long
551atomic_long_add_return(long i, atomic_long_t *v)
552{
553 return atomic_add_return(i, v);
554}
555
556static __always_inline long
557atomic_long_add_return_acquire(long i, atomic_long_t *v)
558{
559 return atomic_add_return_acquire(i, v);
560}
561
562static __always_inline long
563atomic_long_add_return_release(long i, atomic_long_t *v)
564{
565 return atomic_add_return_release(i, v);
566}
567
568static __always_inline long
569atomic_long_add_return_relaxed(long i, atomic_long_t *v)
570{
571 return atomic_add_return_relaxed(i, v);
572}
573
574static __always_inline long
575atomic_long_fetch_add(long i, atomic_long_t *v)
576{
577 return atomic_fetch_add(i, v);
578}
579
580static __always_inline long
581atomic_long_fetch_add_acquire(long i, atomic_long_t *v)
582{
583 return atomic_fetch_add_acquire(i, v);
584}
585
586static __always_inline long
587atomic_long_fetch_add_release(long i, atomic_long_t *v)
588{
589 return atomic_fetch_add_release(i, v);
590}
591
592static __always_inline long
593atomic_long_fetch_add_relaxed(long i, atomic_long_t *v)
594{
595 return atomic_fetch_add_relaxed(i, v);
596}
597
598static __always_inline void
599atomic_long_sub(long i, atomic_long_t *v)
600{
601 atomic_sub(i, v);
602}
603
604static __always_inline long
605atomic_long_sub_return(long i, atomic_long_t *v)
606{
607 return atomic_sub_return(i, v);
608}
609
610static __always_inline long
611atomic_long_sub_return_acquire(long i, atomic_long_t *v)
612{
613 return atomic_sub_return_acquire(i, v);
614}
615
616static __always_inline long
617atomic_long_sub_return_release(long i, atomic_long_t *v)
618{
619 return atomic_sub_return_release(i, v);
620}
621
622static __always_inline long
623atomic_long_sub_return_relaxed(long i, atomic_long_t *v)
624{
625 return atomic_sub_return_relaxed(i, v);
626}
627
628static __always_inline long
629atomic_long_fetch_sub(long i, atomic_long_t *v)
630{
631 return atomic_fetch_sub(i, v);
632}
633
634static __always_inline long
635atomic_long_fetch_sub_acquire(long i, atomic_long_t *v)
636{
637 return atomic_fetch_sub_acquire(i, v);
638}
639
640static __always_inline long
641atomic_long_fetch_sub_release(long i, atomic_long_t *v)
642{
643 return atomic_fetch_sub_release(i, v);
644}
645
646static __always_inline long
647atomic_long_fetch_sub_relaxed(long i, atomic_long_t *v)
648{
649 return atomic_fetch_sub_relaxed(i, v);
650}
651
652static __always_inline void
653atomic_long_inc(atomic_long_t *v)
654{
655 atomic_inc(v);
656}
657
658static __always_inline long
659atomic_long_inc_return(atomic_long_t *v)
660{
661 return atomic_inc_return(v);
662}
663
664static __always_inline long
665atomic_long_inc_return_acquire(atomic_long_t *v)
666{
667 return atomic_inc_return_acquire(v);
668}
669
670static __always_inline long
671atomic_long_inc_return_release(atomic_long_t *v)
672{
673 return atomic_inc_return_release(v);
674}
675
676static __always_inline long
677atomic_long_inc_return_relaxed(atomic_long_t *v)
678{
679 return atomic_inc_return_relaxed(v);
680}
681
682static __always_inline long
683atomic_long_fetch_inc(atomic_long_t *v)
684{
685 return atomic_fetch_inc(v);
686}
687
688static __always_inline long
689atomic_long_fetch_inc_acquire(atomic_long_t *v)
690{
691 return atomic_fetch_inc_acquire(v);
692}
693
694static __always_inline long
695atomic_long_fetch_inc_release(atomic_long_t *v)
696{
697 return atomic_fetch_inc_release(v);
698}
699
700static __always_inline long
701atomic_long_fetch_inc_relaxed(atomic_long_t *v)
702{
703 return atomic_fetch_inc_relaxed(v);
704}
705
706static __always_inline void
707atomic_long_dec(atomic_long_t *v)
708{
709 atomic_dec(v);
710}
711
712static __always_inline long
713atomic_long_dec_return(atomic_long_t *v)
714{
715 return atomic_dec_return(v);
716}
717
718static __always_inline long
719atomic_long_dec_return_acquire(atomic_long_t *v)
720{
721 return atomic_dec_return_acquire(v);
722}
723
724static __always_inline long
725atomic_long_dec_return_release(atomic_long_t *v)
726{
727 return atomic_dec_return_release(v);
728}
729
730static __always_inline long
731atomic_long_dec_return_relaxed(atomic_long_t *v)
732{
733 return atomic_dec_return_relaxed(v);
734}
735
736static __always_inline long
737atomic_long_fetch_dec(atomic_long_t *v)
738{
739 return atomic_fetch_dec(v);
740}
741
742static __always_inline long
743atomic_long_fetch_dec_acquire(atomic_long_t *v)
744{
745 return atomic_fetch_dec_acquire(v);
746}
747
748static __always_inline long
749atomic_long_fetch_dec_release(atomic_long_t *v)
750{
751 return atomic_fetch_dec_release(v);
752}
753
754static __always_inline long
755atomic_long_fetch_dec_relaxed(atomic_long_t *v)
756{
757 return atomic_fetch_dec_relaxed(v);
758}
759
760static __always_inline void
761atomic_long_and(long i, atomic_long_t *v)
762{
763 atomic_and(i, v);
764}
765
766static __always_inline long
767atomic_long_fetch_and(long i, atomic_long_t *v)
768{
769 return atomic_fetch_and(i, v);
770}
771
772static __always_inline long
773atomic_long_fetch_and_acquire(long i, atomic_long_t *v)
774{
775 return atomic_fetch_and_acquire(i, v);
776}
777
778static __always_inline long
779atomic_long_fetch_and_release(long i, atomic_long_t *v)
780{
781 return atomic_fetch_and_release(i, v);
782}
783
784static __always_inline long
785atomic_long_fetch_and_relaxed(long i, atomic_long_t *v)
786{
787 return atomic_fetch_and_relaxed(i, v);
788}
789
790static __always_inline void
791atomic_long_andnot(long i, atomic_long_t *v)
792{
793 atomic_andnot(i, v);
794}
795
796static __always_inline long
797atomic_long_fetch_andnot(long i, atomic_long_t *v)
798{
799 return atomic_fetch_andnot(i, v);
800}
801
802static __always_inline long
803atomic_long_fetch_andnot_acquire(long i, atomic_long_t *v)
804{
805 return atomic_fetch_andnot_acquire(i, v);
806}
807
808static __always_inline long
809atomic_long_fetch_andnot_release(long i, atomic_long_t *v)
810{
811 return atomic_fetch_andnot_release(i, v);
812}
813
814static __always_inline long
815atomic_long_fetch_andnot_relaxed(long i, atomic_long_t *v)
816{
817 return atomic_fetch_andnot_relaxed(i, v);
818}
819
820static __always_inline void
821atomic_long_or(long i, atomic_long_t *v)
822{
823 atomic_or(i, v);
824}
825
826static __always_inline long
827atomic_long_fetch_or(long i, atomic_long_t *v)
828{
829 return atomic_fetch_or(i, v);
830}
831
832static __always_inline long
833atomic_long_fetch_or_acquire(long i, atomic_long_t *v)
834{
835 return atomic_fetch_or_acquire(i, v);
836}
837
838static __always_inline long
839atomic_long_fetch_or_release(long i, atomic_long_t *v)
840{
841 return atomic_fetch_or_release(i, v);
842}
843
844static __always_inline long
845atomic_long_fetch_or_relaxed(long i, atomic_long_t *v)
846{
847 return atomic_fetch_or_relaxed(i, v);
848}
849
850static __always_inline void
851atomic_long_xor(long i, atomic_long_t *v)
852{
853 atomic_xor(i, v);
854}
855
856static __always_inline long
857atomic_long_fetch_xor(long i, atomic_long_t *v)
858{
859 return atomic_fetch_xor(i, v);
860}
861
862static __always_inline long
863atomic_long_fetch_xor_acquire(long i, atomic_long_t *v)
864{
865 return atomic_fetch_xor_acquire(i, v);
866}
867
868static __always_inline long
869atomic_long_fetch_xor_release(long i, atomic_long_t *v)
870{
871 return atomic_fetch_xor_release(i, v);
872}
873
874static __always_inline long
875atomic_long_fetch_xor_relaxed(long i, atomic_long_t *v)
876{
877 return atomic_fetch_xor_relaxed(i, v);
878}
879
880static __always_inline long
881atomic_long_xchg(atomic_long_t *v, long i)
882{
883 return atomic_xchg(v, i);
884}
885
886static __always_inline long
887atomic_long_xchg_acquire(atomic_long_t *v, long i)
888{
889 return atomic_xchg_acquire(v, i);
890}
891
892static __always_inline long
893atomic_long_xchg_release(atomic_long_t *v, long i)
894{
895 return atomic_xchg_release(v, i);
896}
897
898static __always_inline long
899atomic_long_xchg_relaxed(atomic_long_t *v, long i)
900{
901 return atomic_xchg_relaxed(v, i);
902}
903
904static __always_inline long
905atomic_long_cmpxchg(atomic_long_t *v, long old, long new)
906{
907 return atomic_cmpxchg(v, old, new);
908}
909
910static __always_inline long
911atomic_long_cmpxchg_acquire(atomic_long_t *v, long old, long new)
912{
913 return atomic_cmpxchg_acquire(v, old, new);
914}
915
916static __always_inline long
917atomic_long_cmpxchg_release(atomic_long_t *v, long old, long new)
918{
919 return atomic_cmpxchg_release(v, old, new);
920}
921
922static __always_inline long
923atomic_long_cmpxchg_relaxed(atomic_long_t *v, long old, long new)
924{
925 return atomic_cmpxchg_relaxed(v, old, new);
926}
927
928static __always_inline bool
929atomic_long_try_cmpxchg(atomic_long_t *v, long *old, long new)
930{
931 return atomic_try_cmpxchg(v, (int *)old, new);
932}
933
934static __always_inline bool
935atomic_long_try_cmpxchg_acquire(atomic_long_t *v, long *old, long new)
936{
937 return atomic_try_cmpxchg_acquire(v, (int *)old, new);
938}
939
940static __always_inline bool
941atomic_long_try_cmpxchg_release(atomic_long_t *v, long *old, long new)
942{
943 return atomic_try_cmpxchg_release(v, (int *)old, new);
944}
945
946static __always_inline bool
947atomic_long_try_cmpxchg_relaxed(atomic_long_t *v, long *old, long new)
948{
949 return atomic_try_cmpxchg_relaxed(v, (int *)old, new);
950}
951
952static __always_inline bool
953atomic_long_sub_and_test(long i, atomic_long_t *v)
954{
955 return atomic_sub_and_test(i, v);
956}
957
958static __always_inline bool
959atomic_long_dec_and_test(atomic_long_t *v)
960{
961 return atomic_dec_and_test(v);
962}
963
964static __always_inline bool
965atomic_long_inc_and_test(atomic_long_t *v)
966{
967 return atomic_inc_and_test(v);
968}
969
970static __always_inline bool
971atomic_long_add_negative(long i, atomic_long_t *v)
972{
973 return atomic_add_negative(i, v);
974}
975
976static __always_inline long
977atomic_long_fetch_add_unless(atomic_long_t *v, long a, long u)
978{
979 return atomic_fetch_add_unless(v, a, u);
980}
981
982static __always_inline bool
983atomic_long_add_unless(atomic_long_t *v, long a, long u)
984{
985 return atomic_add_unless(v, a, u);
986}
987
988static __always_inline bool
989atomic_long_inc_not_zero(atomic_long_t *v)
990{
991 return atomic_inc_not_zero(v);
992}
993
994static __always_inline bool
995atomic_long_inc_unless_negative(atomic_long_t *v)
996{
997 return atomic_inc_unless_negative(v);
998}
999
1000static __always_inline bool
1001atomic_long_dec_unless_positive(atomic_long_t *v)
1002{
1003 return atomic_dec_unless_positive(v);
1004}
1005
1006static __always_inline long
1007atomic_long_dec_if_positive(atomic_long_t *v)
1008{
1009 return atomic_dec_if_positive(v);
1010}
1011
1012#endif /* CONFIG_64BIT */
1013#endif /* _ASM_GENERIC_ATOMIC_LONG_H */
1014// a624200981f552b2c6be4f32fe44da8289f30d87