KVM: Portability: Stop including x86-specific headers in kvm_main.c
authorHollis Blanchard <hollisb@us.ibm.com>
Mon, 3 Dec 2007 21:30:25 +0000 (15:30 -0600)
committerAvi Kivity <avi@qumranet.com>
Wed, 30 Jan 2008 15:53:17 +0000 (17:53 +0200)
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
drivers/kvm/i8259.c
drivers/kvm/irq.h
drivers/kvm/kvm.h
drivers/kvm/kvm_main.c
drivers/kvm/x86.h

index f0dc2eeadf0be8f8996e65dc43fb335856661dea..b3cad632f3d54f742cc2061b51d3622808696e96 100644 (file)
@@ -27,6 +27,7 @@
  */
 #include <linux/mm.h>
 #include "irq.h"
+#include "kvm.h"
 
 /*
  * set irq level. If an edge is detected, then the IRR is set to 1
index 803b9c7db57b5c352fc2ae9268a0c003a5109c5b..730a87c173e59f6672febfd39f046e55be330e99 100644 (file)
 #ifndef __IRQ_H
 #define __IRQ_H
 
-#include "kvm.h"
+#include <linux/mm_types.h>
+#include <linux/hrtimer.h>
+#include <asm/kvm.h>
 #include "iodev.h"
 
+struct kvm;
+struct kvm_vcpu;
+
 typedef void irq_request_func(void *opaque, int level);
 
 struct kvm_kpic_state {
index a1b7d1c00bde6f9ce5e6fce74b1835299dddced3..0d3555bf533360f0711d491b4f13aff9c0db7138 100644 (file)
@@ -288,11 +288,6 @@ static inline int irqchip_in_kernel(struct kvm *kvm)
        return pic_irqchip(kvm) != NULL;
 }
 
-struct descriptor_table {
-       u16 limit;
-       unsigned long base;
-} __attribute__((packed));
-
 /* The guest did something we don't support. */
 #define pr_unimpl(vcpu, fmt, ...)                                      \
  do {                                                                  \
@@ -457,4 +452,8 @@ struct kvm_stats_debugfs_item {
 };
 extern struct kvm_stats_debugfs_item debugfs_entries[];
 
+#if defined(CONFIG_X86)
+#include "x86.h"
+#endif
+
 #endif
index 14b376ead3da0ec54cb9466563df8e951d73ec93..0f11046b94fa5a964e1409d61e178b8924a0684d 100644 (file)
@@ -16,8 +16,6 @@
  */
 
 #include "kvm.h"
-#include "x86.h"
-#include "irq.h"
 #include "iodev.h"
 
 #include <linux/kvm.h>
@@ -46,7 +44,6 @@
 #include <asm/processor.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
-#include <asm/desc.h>
 #include <asm/pgtable.h>
 
 MODULE_AUTHOR("Qumranet");
index 78ab1e108d8b3fead568cb38728e660197a4d6bb..4b7acc76bb345915a569043da6aafd96a92e4950 100644 (file)
@@ -12,6 +12,7 @@
 #define KVM_X86_H
 
 #include "kvm.h"
+#include "irq.h"
 
 #include <linux/types.h>
 #include <linux/mm.h>
@@ -19,6 +20,8 @@
 #include <linux/kvm.h>
 #include <linux/kvm_para.h>
 
+#include <asm/desc.h>
+
 #define CR3_PAE_RESERVED_BITS ((X86_CR3_PWT | X86_CR3_PCD) - 1)
 #define CR3_NONPAE_RESERVED_BITS ((PAGE_SIZE-1) & ~(X86_CR3_PWT | X86_CR3_PCD))
 #define CR3_L_MODE_RESERVED_BITS (CR3_NONPAE_RESERVED_BITS|0xFFFFFF0000000000ULL)
@@ -156,6 +159,11 @@ struct kvm_vcpu {
        struct x86_emulate_ctxt emulate_ctxt;
 };
 
+struct descriptor_table {
+       u16 limit;
+       unsigned long base;
+} __attribute__((packed));
+
 struct kvm_x86_ops {
        int (*cpu_has_kvm_support)(void);          /* __init */
        int (*disabled_by_bios)(void);             /* __init */