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)28static inline void kvm_init_memrelinquish_services(void) {} 29 #endif 30 31 #endif 32