1*696dfec2SVincent Donnefort /* SPDX-License-Identifier: GPL-2.0-only */ 2*696dfec2SVincent Donnefort #ifndef __ARM64_KVM_HYP_NVHE_ARM_SMCCC_H__ 3*696dfec2SVincent Donnefort #define __ARM64_KVM_HYP_NVHE_ARM_SMCCC_H__ 4*696dfec2SVincent Donnefort 5*696dfec2SVincent Donnefort #include <asm/kvm_hypevents.h> 6*696dfec2SVincent Donnefort 7*696dfec2SVincent Donnefort #include <linux/arm-smccc.h> 8*696dfec2SVincent Donnefort 9*696dfec2SVincent Donnefort #define hyp_smccc_1_1_smc(...) \ 10*696dfec2SVincent Donnefort do { \ 11*696dfec2SVincent Donnefort trace_hyp_exit(NULL, HYP_REASON_SMC); \ 12*696dfec2SVincent Donnefort arm_smccc_1_1_smc(__VA_ARGS__); \ 13*696dfec2SVincent Donnefort trace_hyp_enter(NULL, HYP_REASON_SMC); \ 14*696dfec2SVincent Donnefort } while (0) 15*696dfec2SVincent Donnefort 16*696dfec2SVincent Donnefort #define hyp_smccc_1_2_smc(...) \ 17*696dfec2SVincent Donnefort do { \ 18*696dfec2SVincent Donnefort trace_hyp_exit(NULL, HYP_REASON_SMC); \ 19*696dfec2SVincent Donnefort arm_smccc_1_2_smc(__VA_ARGS__); \ 20*696dfec2SVincent Donnefort trace_hyp_enter(NULL, HYP_REASON_SMC); \ 21*696dfec2SVincent Donnefort } while (0) 22*696dfec2SVincent Donnefort 23*696dfec2SVincent Donnefort #endif /* __ARM64_KVM_HYP_NVHE_ARM_SMCCC_H__ */ 24