xref: /linux/arch/arm64/include/asm/hypervisor.h (revision 85cdaca6970028bf6f544c355c90035586836ddf)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_ARM64_HYPERVISOR_H
3 #define _ASM_ARM64_HYPERVISOR_H
4 
5 #include <asm/xen/hypervisor.h>
6 #include <linux/jump_label.h>
7 
8 DECLARE_STATIC_KEY_FALSE(pkvm_guest);
9 
10 void kvm_init_hyp_services(void);
11 bool kvm_arm_hyp_service_available(u32 func_id);
12 void kvm_arm_target_impl_cpu_init(void);
13 
14 #ifdef CONFIG_ARM_PKVM_GUEST
15 void pkvm_init_hyp_services(void);
16 
17 static inline bool is_protected_kvm_guest(void)
18 {
19 	return static_branch_unlikely(&pkvm_guest);
20 }
21 #else
22 static inline void pkvm_init_hyp_services(void) { };
23 
24 static inline bool is_protected_kvm_guest(void)
25 {
26 	return false;
27 }
28 #endif
29 
30 static inline void kvm_arch_init_hyp_services(void)
31 {
32 	pkvm_init_hyp_services();
33 };
34 
35 #endif
36