| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef __ASM_LSUI_H | |
| #define __ASM_LSUI_H | |
| #include <linux/compiler_types.h> | |
| #include <linux/stringify.h> | |
| #include <asm/alternative.h> | |
| #include <asm/alternative-macros.h> | |
| #include <asm/cpucaps.h> | |
| #define __LSUI_PREAMBLE ".arch_extension lsui\n" | |
| #ifdef CONFIG_ARM64_LSUI | |
| #define __lsui_llsc_body(op, ...) \ | |
| ({ \ | |
| alternative_has_cap_unlikely(ARM64_HAS_LSUI) ? \ | |
| __lsui_##op(__VA_ARGS__) : __llsc_##op(__VA_ARGS__); \ | |
| }) | |
| #else /* CONFIG_ARM64_LSUI */ | |
| #define __lsui_llsc_body(op, ...) __llsc_##op(__VA_ARGS__) | |
| #endif /* CONFIG_ARM64_LSUI */ | |
| #endif /* __ASM_LSUI_H */ |