projects/linux·blob master · refs

35 lines · 720 B

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
8DECLARE_STATIC_KEY_FALSE(pkvm_guest);
9
10void kvm_init_hyp_services(void);
11bool kvm_arm_hyp_service_available(u32 func_id);
12void kvm_arm_target_impl_cpu_init(void);
13
14#ifdef CONFIG_ARM_PKVM_GUEST
15void pkvm_init_hyp_services(void);
16
17static inline bool is_protected_kvm_guest(void)
18{
19 return static_branch_unlikely(&pkvm_guest);
20}
21#else
22static inline void pkvm_init_hyp_services(void) { };
23
24static inline bool is_protected_kvm_guest(void)
25{
26 return false;
27}
28#endif
29
30static inline void kvm_arch_init_hyp_services(void)
31{
32 pkvm_init_hyp_services();
33};
34
35#endif