xref: /linux/arch/arm64/kvm/hyp/include/nvhe/arm-smccc.h (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
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