unsupported
  "   ˆl–Ým_J*j"Tâ�nà¸È”Å£¿ƒh¹ÁÃ      unsupported
  B   ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÀ„u¦]o_†I|¥�+a–Ým_J*j"Tâ�nà_¸ÛÊbÑ¿Æ ?÷     // SPDX-License-Identifier: GPL-2.0

// Generated by scripts/atomic/gen-atomic-fallback.sh
// DO NOT MODIFY THIS FILE DIRECTLY

#ifndef _LINUX_ATOMIC_FALLBACK_H
#define _LINUX_ATOMIC_FALLBACK_H

#include <linux/compiler.h>

#ifndef arch_xchg_relaxed
#define arch_xchg_acquire arch_xchg
#define arch_xchg_release arch_xchg
#define arch_xchg_relaxed arch_xchg
#else /* arch_xchg_relaxed */

#ifndef arch_xchg_acquire
#define arch_xchg_acquire(...) \
	__atomic_op_acquire(arch_xchg, __VA_ARGS__)
#endif

#ifndef arch_xchg_release
#define arch_xchg_release(...) \
	__atomic_op_release(arch_xchg, __VA_ARGS__)
#endif

#ifndef arch_xchg
#define arch_xchg(...) \
	__atomic_op_fence(arch_xchg, __VA_ARGS__)
#endif

#endif /* arch_xchg_relaxed */

#ifndef arch_cmpxchg_relaxed
#define arch_cmpxchg_acquire arch_cmpxchg
#define arch_cmpxchg_release arch_cmpxchg
#define arch_cmpxchg_relaxed arch_cmpxchg
#else /* arch_cmpxchg_relaxed */

#ifndef arch_cmpxchg_acquire
#define arch_cmpxchg_acquire(...) \
	__atomic_op_acquire(arch_cmpxchg, __VA_ARGS__)
#endif

#ifndef arch_cmpxchg_release
#define arch_cmpxchg_release(...) \
	__atomic_op_release(arch_cmpxchg, __VA_ARGS__)
#endif

#ifndef arch_cmpxchg
#define arch_cmpxchg(...) \
	__atomic_op_fence(arch_cmpxchg, __VA_ARGS__)
#endif

#endif /* arch_cmpxchg_relaxed */

#ifndef arch_cmpxchg64_relaxed
#define arch_cmpxchg64_acquire arch_cmpxchg64
#define arch_cmpxchg64_release arch_cmpxchg64
#define arch_cmpxchg64_relaxed arch_cmpxchg64
#else /* arch_cmpxchg64_relaxed */

#ifndef arch_cmpxchg64_acquire
#define arch_cmpxchg64_acquire(...) \
	__atomic_op_acquire(arch_cmpxchg64, __VA_ARGS__)
#endif

#ifndef arch_cmpxchg64_release
#define arch_cmpxchg64_release(...) \
	__atomic_op_release(arch_cmpxchg64, __VA_ARGS__)
#endif

#ifndef arch_cmpxchg64
#define arch_cmpxchg64(...) \
	__atomic_op_fence(arch_cmpxchg64, __VA_ARGS__)
#endif

#endif /* arch_cmpxchg64_relaxed */

#ifndef arch_cmpxchg128_relaxed
#define arch_cmpxchg128_acquire arch_cmpxchg128
#define arch_cmpxchg128_release arch_cmpxchg128
#define arch_cmpxchg128_relaxed arch_cmpxchg128
#else /* arch_cmpxchg128_relaxed */

#ifndef arch_cmpxchg128_acquire
#define arch_cmpxchg128_acquire(...) \
	__atomic_op_acquire(arch_cmpxchg128, __VA_ARGS__)
#endif

#ifndef arch_cmpxchg128_release
#define arch_cmpxchg128_release(...) \
	__atomic_op_release(arch_cmpxchg128, __VA_ARGS__)
#endif

#ifndef arch_cmpxchg128
#define arch_cmpxchg128(...) \
	__atomic_op_fence(arch_cmpxchg128, __VA_ARGS__)
#endif

#endif /* arch_cmpxchg128_relaxed */

#ifndef arch_try_cmpxchg_relaxed
#ifdef arch_try_cmpxchg
#define arch_try_cmpxchg_acquire arch_try_cmpxchg
#define arch_try_cmpxchg_release arch_try_cmpxchg
#define arch_try_cmpxchg_relaxed arch_try_cmpxchg
#endif /* arch_try_cmpxchg */

#ifndef arch_try_cmpxchg
#define arch_try_cmpxchg(_ptr, _oldp, _new) \
({ \
	typeof(*(_ptr)) *___op = (_oldp), ___o = *___op, ___r; \
	___r = arch_cmpxchg((_ptr), ___o, (_new)); \
	if (unlikely(___r != ___o)) \
		*___op = ___r; \
	likely(___r == ___o); \
})
#endif /* arch_try_cmpxchg */

#ifndef arch_try_cmpxchg_acquire
#define arch_try_cmpxchg_acquire(_ptr, _oldp, _new) \
({ \
	typeof(*(_ptr)) *___op = (_oldp), ___o = *___op, ___r; \
	___r = arch_cmpxchg_acquire((_ptr), ___o, (_new)); \
	if (unlikely(___r != ___o)) \
		*___op = ___r; \
	likely(___r == ___o); \
})
#endif /* arch_try_cmpxchg_acquire */

#ifndef arch_try_cmpxchg_release
#define arch_try_cmpxchg_release(_ptr, _oldp, _new) \
({ \
	typeof(*(_ptr)) *___op = (_oldp), ___o = *___op, ___r; \
	___r = arch_cmpxchg_release((_ptr), ___o, (_new)); \
	if (unlikely(___r != ___o)) \
		*___op = ___r; \
	likely(___r == ___o); \
})
#endif /* arch_try_cmpxchg_release */

#ifndef arch_try_cmpxchg_relaxed
#define arch_try_cmpxchg_relaxed(_ptr, _oldp, _new) \
({ \
	typeof(*(_ptr)) *___op = (_oldp), ___o = *___op, ___r; \
	___r = arch_cmpxchg_relaxed((_ptr), ___o, (_new)); \
	if (unlikely(___r != ___o)