| Ingo Molnar | 102d832 | 2007-02-19 14:37:47 +0200 | [diff] [blame] | 1 | #ifndef __LINUX_KVM_PARA_H | 
|  | 2 | #define __LINUX_KVM_PARA_H | 
|  | 3 |  | 
| Christian Borntraeger | 5f43238 | 2007-10-11 15:34:17 +0200 | [diff] [blame] | 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 | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 10 | */ | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 11 |  | 
|  | 12 | /* Return values for hypercalls */ | 
|  | 13 | #define KVM_ENOSYS		1000 | 
| Marcelo Tosatti | 2f333bc | 2008-02-22 12:21:37 -0500 | [diff] [blame] | 14 | #define KVM_EFAULT		EFAULT | 
|  | 15 | #define KVM_E2BIG		E2BIG | 
| Jan Kiszka | 07708c4 | 2009-08-03 18:43:28 +0200 | [diff] [blame] | 16 | #define KVM_EPERM		EPERM | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 17 |  | 
| Marcelo Tosatti | 2f333bc | 2008-02-22 12:21:37 -0500 | [diff] [blame] | 18 | #define KVM_HC_VAPIC_POLL_IRQ		1 | 
|  | 19 | #define KVM_HC_MMU_OP			2 | 
| Avi Kivity | b93463a | 2007-10-25 16:52:32 +0200 | [diff] [blame] | 20 |  | 
| Christian Borntraeger | 5f43238 | 2007-10-11 15:34:17 +0200 | [diff] [blame] | 21 | /* | 
|  | 22 | * hypercalls use architecture specific | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 23 | */ | 
| Christian Borntraeger | 5f43238 | 2007-10-11 15:34:17 +0200 | [diff] [blame] | 24 | #include <asm/kvm_para.h> | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 25 |  | 
| Glauber de Oliveira Costa | a03d7f4 | 2008-01-15 13:10:15 -0200 | [diff] [blame] | 26 | #ifdef __KERNEL__ | 
| Marcelo Tosatti | 0cf1bfd | 2008-02-22 12:21:36 -0500 | [diff] [blame] | 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 |  | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 33 | static inline int kvm_para_has_feature(unsigned int feature) | 
|  | 34 | { | 
| Christian Borntraeger | 5f43238 | 2007-10-11 15:34:17 +0200 | [diff] [blame] | 35 | if (kvm_arch_para_features() & (1UL << feature)) | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 36 | return 1; | 
|  | 37 | return 0; | 
|  | 38 | } | 
| Christian Borntraeger | 5f43238 | 2007-10-11 15:34:17 +0200 | [diff] [blame] | 39 | #endif /* __KERNEL__ */ | 
|  | 40 | #endif /* __LINUX_KVM_PARA_H */ | 
| Anthony Liguori | 7aa81cc | 2007-09-17 14:57:50 -0500 | [diff] [blame] | 41 |  |