]>
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 | |
07708c4a | 16 | #define KVM_EPERM EPERM |
102d8325 | 17 | |
2f333bcb MT |
18 | #define KVM_HC_VAPIC_POLL_IRQ 1 |
19 | #define KVM_HC_MMU_OP 2 | |
b93463aa | 20 | |
5f43238d CB |
21 | /* |
22 | * hypercalls use architecture specific | |
c21415e8 | 23 | */ |
5f43238d | 24 | #include <asm/kvm_para.h> |
7aa81cc0 | 25 | |
a03d7f4b | 26 | #ifdef __KERNEL__ |
0cf1bfd2 MT |
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 | ||
7aa81cc0 AL |
33 | static inline int kvm_para_has_feature(unsigned int feature) |
34 | { | |
5f43238d | 35 | if (kvm_arch_para_features() & (1UL << feature)) |
7aa81cc0 AL |
36 | return 1; |
37 | return 0; | |
38 | } | |
5f43238d CB |
39 | #endif /* __KERNEL__ */ |
40 | #endif /* __LINUX_KVM_PARA_H */ | |
7aa81cc0 | 41 |