Commit | Line | Data |
---|---|---|
102d8325 IM |
1 | #ifndef __LINUX_KVM_PARA_H |
2 | #define __LINUX_KVM_PARA_H | |
3 | ||
5f43238d CB |
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 | |
102d8325 | 10 | */ |
102d8325 | 11 | |
7aa81cc0 AL |
12 | /* Return values for hypercalls */ |
13 | #define KVM_ENOSYS 1000 | |
2f333bcb MT |
14 | #define KVM_EFAULT EFAULT |
15 | #define KVM_E2BIG E2BIG | |
102d8325 | 16 | |
2f333bcb MT |
17 | #define KVM_HC_VAPIC_POLL_IRQ 1 |
18 | #define KVM_HC_MMU_OP 2 | |
b93463aa | 19 | |
5f43238d CB |
20 | /* |
21 | * hypercalls use architecture specific | |
c21415e8 | 22 | */ |
5f43238d | 23 | #include <asm/kvm_para.h> |
7aa81cc0 | 24 | |
a03d7f4b | 25 | #ifdef __KERNEL__ |
0cf1bfd2 MT |
26 | #ifdef CONFIG_KVM_GUEST |
27 | void __init kvm_guest_init(void); | |
28 | #else | |
29 | #define kvm_guest_init() do { } while (0) | |
30 | #endif | |
31 | ||
7aa81cc0 AL |
32 | static inline int kvm_para_has_feature(unsigned int feature) |
33 | { | |
5f43238d | 34 | if (kvm_arch_para_features() & (1UL << feature)) |
7aa81cc0 AL |
35 | return 1; |
36 | return 0; | |
37 | } | |
5f43238d CB |
38 | #endif /* __KERNEL__ */ |
39 | #endif /* __LINUX_KVM_PARA_H */ | |
7aa81cc0 | 40 |