1 #ifndef __LINUX_KVM_PARA_H 2 #define __LINUX_KVM_PARA_H 3 4 /* 5 * This header file provides a method for making a hypercall to the host 6 * Architectures should define: 7 * - kvm_hypercall0, kvm_hypercall1... 8 * - kvm_arch_para_features 9 * - kvm_para_available 10 */ 11 12 /* Return values for hypercalls */ 13 #define KVM_ENOSYS 1000 14 #define KVM_EFAULT EFAULT 15 #define KVM_E2BIG E2BIG 16 #define KVM_EPERM EPERM 17 18 #define KVM_HC_VAPIC_POLL_IRQ 1 19 #define KVM_HC_MMU_OP 2 20 21 /* 22 * hypercalls use architecture specific 23 */ 24 #include <asm/kvm_para.h> 25 26 #ifdef __KERNEL__ 27 #ifdef CONFIG_KVM_GUEST 28 void __init kvm_guest_init(void); 29 #else 30 #define kvm_guest_init() do { } while (0) 31 #endif 32 33 static inline int kvm_para_has_feature(unsigned int feature) 34 { 35 if (kvm_arch_para_features() & (1UL << feature)) 36 return 1; 37 return 0; 38 } 39 #endif /* __KERNEL__ */ 40 #endif /* __LINUX_KVM_PARA_H */ 41 42