Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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