| #ifndef __LINUX_KVM_PARA_H | |
| #define __LINUX_KVM_PARA_H | |
| /* | |
| * This header file provides a method for making a hypercall to the host | |
| * Architectures should define: | |
| * - kvm_hypercall0, kvm_hypercall1... | |
| * - kvm_arch_para_features | |
| * - kvm_para_available | |
| */ | |
| /* Return values for hypercalls */ | |
| #define KVM_ENOSYS 1000 | |
| #define KVM_EFAULT EFAULT | |
| #define KVM_E2BIG E2BIG | |
| #define KVM_HC_VAPIC_POLL_IRQ 1 | |
| #define KVM_HC_MMU_OP 2 | |
| /* | |
| * hypercalls use architecture specific | |
| */ | |
| #include <asm/kvm_para.h> | |
| #ifdef __KERNEL__ | |
| #ifdef CONFIG_KVM_GUEST | |
| void __init kvm_guest_init(void); | |
| #else | |
| #define kvm_guest_init() do { } while (0) | |
| #endif | |
| static inline int kvm_para_has_feature(unsigned int feature) | |
| { | |
| if (kvm_arch_para_features() & (1UL << feature)) | |
| return 1; | |
| return 0; | |
| } | |
| #endif /* __KERNEL__ */ | |
| #endif /* __LINUX_KVM_PARA_H */ | |