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