summaryrefslogtreecommitdiff
path: root/libdde_linux26/contrib/include/linux/kvm_para.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2012-02-19 06:16:15 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-02-19 06:16:15 +0000
commit34e3b522eca7e8741cecb7c2241091f181d1bd1f (patch)
tree3b64ac3aa4603539b8f8f384bc39998e29948900 /libdde_linux26/contrib/include/linux/kvm_para.h
parentd4e6a14eb3fad1b43a21214db139db441025baf5 (diff)
parent6fafeb146e9efd59140ea58cebd7dd38ae9a6379 (diff)
Merge branch 'upstream-merged'
Diffstat (limited to 'libdde_linux26/contrib/include/linux/kvm_para.h')
-rw-r--r--libdde_linux26/contrib/include/linux/kvm_para.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/libdde_linux26/contrib/include/linux/kvm_para.h b/libdde_linux26/contrib/include/linux/kvm_para.h
new file mode 100644
index 00000000..3ddce037
--- /dev/null
+++ b/libdde_linux26/contrib/include/linux/kvm_para.h
@@ -0,0 +1,40 @@
+#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 */
+