• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _ASM_ARM64_HYPERVISOR_H
3 #define _ASM_ARM64_HYPERVISOR_H
4 
5 #include <linux/memory.h>
6 #include <linux/mm.h>
7 
8 #include <asm/xen/hypervisor.h>
9 
10 void kvm_init_hyp_services(void);
11 bool kvm_arm_hyp_service_available(u32 func_id);
12 void kvm_arm_init_hyp_services(void);
13 void kvm_init_memshare_services(void);
14 void kvm_init_ioremap_services(void);
15 
16 struct hypervisor_ops {
17 #ifdef CONFIG_MEMORY_RELINQUISH
18 	void (*page_relinquish)(struct page *page);
19 	void (*post_page_relinquish_tlb_inv)(void);
20 #endif
21 };
22 
23 extern struct hypervisor_ops hyp_ops;
24 
25 #ifdef CONFIG_MEMORY_RELINQUISH
26 void kvm_init_memrelinquish_services(void);
27 #else
kvm_init_memrelinquish_services(void)28 static inline void kvm_init_memrelinquish_services(void) {}
29 #endif
30 
31 #endif
32