aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-01-03 14:58:34 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-01-03 14:58:34 +0100
commit6b38c4a0e1a12ad3f1f869459a814da06c13b1c3 (patch)
tree93235df259d6c4ec1e9a02c536953082af44ff74
parent8f5424c6bb7becdf17aee005d285de9d83b293b3 (diff)
downloadxen-6b38c4a0e1a12ad3f1f869459a814da06c13b1c3.tar.gz
xen-6b38c4a0e1a12ad3f1f869459a814da06c13b1c3.tar.bz2
xen-6b38c4a0e1a12ad3f1f869459a814da06c13b1c3.zip
Move public hvm interfaces into xen/include/public/hvm.
Add new header hvm_info_table.h for defining location and contents of acpi-style hvm_info_table. Remove duplicate definition in vmxassist/acpi_madt.c. Signed-off-by: Keir Fraser <keir@xensource.com>
-rw-r--r--tools/Rules.mk2
-rw-r--r--tools/firmware/vmxassist/acpi_madt.c18
-rw-r--r--tools/firmware/vmxassist/vm86.h2
-rw-r--r--tools/ioemu/hw/i8254.c2
-rw-r--r--tools/ioemu/hw/i8259.c2
-rw-r--r--tools/ioemu/hw/i8259_stub.c2
-rw-r--r--tools/ioemu/target-i386-dm/helper2.c2
-rw-r--r--tools/libxc/xc_ia64_stubs.c2
-rw-r--r--tools/libxc/xc_vmx_build.c13
-rw-r--r--xen/arch/ia64/vmx/mmio.c2
-rw-r--r--xen/arch/ia64/vmx/vmx_init.c2
-rw-r--r--xen/arch/ia64/vmx/vmx_support.c2
-rw-r--r--xen/arch/ia64/xen/domain.c2
-rw-r--r--xen/arch/x86/dm/i8259.c2
-rw-r--r--xen/arch/x86/dm/vmx_vioapic.c2
-rw-r--r--xen/arch/x86/vmx.c2
-rw-r--r--xen/arch/x86/vmx_intercept.c2
-rw-r--r--xen/arch/x86/vmx_io.c2
-rw-r--r--xen/arch/x86/vmx_platform.c2
-rw-r--r--xen/arch/x86/vmx_vlapic.c2
-rw-r--r--xen/arch/x86/vmx_vmcs.c4
-rw-r--r--xen/include/asm-ia64/vmx.h2
-rw-r--r--xen/include/asm-x86/vmx.h2
-rw-r--r--xen/include/asm-x86/vmx_intercept.h2
-rw-r--r--xen/include/asm-x86/vmx_vlapic.h2
-rw-r--r--xen/include/asm-x86/vmx_vmcs.h2
-rw-r--r--xen/include/public/hvm/hvm_info_table.h24
-rw-r--r--xen/include/public/hvm/ioreq.h (renamed from xen/include/public/io/ioreq.h)13
-rw-r--r--xen/include/public/hvm/vmx_assist.h (renamed from xen/include/public/vmx_assist.h)0
29 files changed, 63 insertions, 55 deletions
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 2a003b1d7a..4672a40888 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -35,6 +35,8 @@ mk-symlinks: LINUX_ROOT=$(XEN_ROOT)/linux-2.6-xen-sparse
mk-symlinks:
mkdir -p xen
( cd xen && ln -sf ../$(XEN_ROOT)/xen/include/public/*.h . )
+ mkdir -p xen/hvm
+ ( cd xen/hvm && ln -sf ../../$(XEN_ROOT)/xen/include/public/hvm/*.h . )
mkdir -p xen/io
( cd xen/io && ln -sf ../../$(XEN_ROOT)/xen/include/public/io/*.h . )
mkdir -p xen/linux
diff --git a/tools/firmware/vmxassist/acpi_madt.c b/tools/firmware/vmxassist/acpi_madt.c
index 6f29ec9345..8e86646067 100644
--- a/tools/firmware/vmxassist/acpi_madt.c
+++ b/tools/firmware/vmxassist/acpi_madt.c
@@ -17,26 +17,16 @@
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307 USA.
*/
+
#include "../acpi/acpi2_0.h"
#include "../acpi/acpi_madt.h"
+#include <xen/hvm/hvm_info_table.h>
+
#define NULL ((void*)0)
extern int puts(const char *s);
-#define HVM_INFO_PAGE 0x0009F000
-#define HVM_INFO_OFFSET 0x00000800
-
-struct hvm_info_table {
- char signature[8]; /* "HVM INFO" */
- uint32_t length;
- uint8_t checksum;
- uint8_t acpi_enabled;
- uint8_t apic_enabled;
- uint8_t pad[1];
- uint32_t nr_vcpus;
-};
-
static struct hvm_info_table *table = NULL;
static int validate_hvm_info(struct hvm_info_table *t)
@@ -70,7 +60,7 @@ get_hvm_info_table(void)
if (table != NULL)
return table;
- t = (struct hvm_info_table *)(HVM_INFO_PAGE + HVM_INFO_OFFSET);
+ t = (struct hvm_info_table *)HVM_INFO_PADDR;
if (!validate_hvm_info(t)) {
puts("Bad hvm info table\n");
diff --git a/tools/firmware/vmxassist/vm86.h b/tools/firmware/vmxassist/vm86.h
index 2b6c64d183..d9798bce7e 100644
--- a/tools/firmware/vmxassist/vm86.h
+++ b/tools/firmware/vmxassist/vm86.h
@@ -24,7 +24,7 @@
#include <stdint.h>
#endif
-#include <xen/vmx_assist.h>
+#include <xen/hvm/vmx_assist.h>
#define NR_EXCEPTION_HANDLER 32
#define NR_INTERRUPT_HANDLERS 16
diff --git a/tools/ioemu/hw/i8254.c b/tools/ioemu/hw/i8254.c
index 111a6c6144..226db96962 100644
--- a/tools/ioemu/hw/i8254.c
+++ b/tools/ioemu/hw/i8254.c
@@ -23,7 +23,7 @@
*/
#include "vl.h"
#include <xenctrl.h>
-#include <xen/io/ioreq.h>
+#include <xen/hvm/ioreq.h>
//#define DEBUG_PIT
diff --git a/tools/ioemu/hw/i8259.c b/tools/ioemu/hw/i8259.c
index 8009eea130..6385bca28f 100644
--- a/tools/ioemu/hw/i8259.c
+++ b/tools/ioemu/hw/i8259.c
@@ -23,7 +23,7 @@
*/
#include "vl.h"
#include <xenctrl.h>
-#include <xen/io/ioreq.h>
+#include <xen/hvm/ioreq.h>
/* debug PIC */
//#define DEBUG_PIC
diff --git a/tools/ioemu/hw/i8259_stub.c b/tools/ioemu/hw/i8259_stub.c
index 7dd0062803..1ca5dc9cf3 100644
--- a/tools/ioemu/hw/i8259_stub.c
+++ b/tools/ioemu/hw/i8259_stub.c
@@ -22,7 +22,7 @@
* THE SOFTWARE.
*/
#include "xenctrl.h"
-#include <xen/io/ioreq.h>
+#include <xen/hvm/ioreq.h>
#include <stdio.h>
#include "cpu.h"
#include "cpu-all.h"
diff --git a/tools/ioemu/target-i386-dm/helper2.c b/tools/ioemu/target-i386-dm/helper2.c
index d2a618c580..4d3088ce3b 100644
--- a/tools/ioemu/target-i386-dm/helper2.c
+++ b/tools/ioemu/target-i386-dm/helper2.c
@@ -48,7 +48,7 @@
#include <sys/ioctl.h>
#include <xenctrl.h>
-#include <xen/io/ioreq.h>
+#include <xen/hvm/ioreq.h>
#include <xen/linux/evtchn.h>
#include "cpu.h"
diff --git a/tools/libxc/xc_ia64_stubs.c b/tools/libxc/xc_ia64_stubs.c
index ab3a6c1222..a5ae925a40 100644
--- a/tools/libxc/xc_ia64_stubs.c
+++ b/tools/libxc/xc_ia64_stubs.c
@@ -5,7 +5,7 @@
#include <stdlib.h>
#include <zlib.h>
#include "xen/arch-ia64.h"
-#include <xen/io/ioreq.h>
+#include <xen/hvm/ioreq.h>
/* this is a very ugly way of getting FPSR_DEFAULT. struct ia64_fpreg is
* mysteriously declared in two places: /usr/include/asm/fpu.h and
diff --git a/tools/libxc/xc_vmx_build.c b/tools/libxc/xc_vmx_build.c
index d13026e1bd..7e6839b65d 100644
--- a/tools/libxc/xc_vmx_build.c
+++ b/tools/libxc/xc_vmx_build.c
@@ -9,7 +9,8 @@
#include <stdlib.h>
#include <unistd.h>
#include <zlib.h>
-#include <xen/io/ioreq.h>
+#include <xen/hvm/hvm_info_table.h>
+#include <xen/hvm/ioreq.h>
#define VMX_LOADER_ENTR_ADDR 0x00100000
@@ -141,9 +142,13 @@ static int set_hvm_info(int xc_handle, uint32_t dom,
char *va_map;
struct hvm_info_table *va_hvm;
- va_map = xc_map_foreign_range(xc_handle, dom,
- PAGE_SIZE, PROT_READ|PROT_WRITE,
- pfn_list[HVM_INFO_PAGE >> PAGE_SHIFT]);
+ va_map = xc_map_foreign_range(
+ xc_handle,
+ dom,
+ PAGE_SIZE,
+ PROT_READ|PROT_WRITE,
+ pfn_list[HVM_INFO_PFN]);
+
if ( va_map == NULL )
return -1;
diff --git a/xen/arch/ia64/vmx/mmio.c b/xen/arch/ia64/vmx/mmio.c
index b3668acb81..342fa87621 100644
--- a/xen/arch/ia64/vmx/mmio.c
+++ b/xen/arch/ia64/vmx/mmio.c
@@ -29,7 +29,7 @@
#include <asm/vmx_vcpu.h>
#include <asm/privop.h>
#include <asm/types.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <asm/mm.h>
#include <asm/vmx.h>
diff --git a/xen/arch/ia64/vmx/vmx_init.c b/xen/arch/ia64/vmx/vmx_init.c
index 0920b8c14c..788b7bc1a0 100644
--- a/xen/arch/ia64/vmx/vmx_init.c
+++ b/xen/arch/ia64/vmx/vmx_init.c
@@ -42,7 +42,7 @@
#include <xen/lib.h>
#include <asm/vmmu.h>
#include <public/arch-ia64.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <asm/vmx_phy_mode.h>
#include <asm/processor.h>
#include <asm/vmx.h>
diff --git a/xen/arch/ia64/vmx/vmx_support.c b/xen/arch/ia64/vmx/vmx_support.c
index 19ea7be6de..801eba6cf8 100644
--- a/xen/arch/ia64/vmx/vmx_support.c
+++ b/xen/arch/ia64/vmx/vmx_support.c
@@ -21,7 +21,7 @@
*/
#include <xen/config.h>
#include <xen/sched.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <asm/vmx.h>
#include <asm/vmx_vcpu.h>
diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c
index b784372cd8..129294c840 100644
--- a/xen/arch/ia64/xen/domain.c
+++ b/xen/arch/ia64/xen/domain.c
@@ -45,7 +45,7 @@
#include <asm/vmx_vcpu.h>
#include <asm/vmx_vpd.h>
#include <asm/pal.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#define CONFIG_DOMAIN0_CONTIGUOUS
unsigned long dom0_start = -1L;
diff --git a/xen/arch/x86/dm/i8259.c b/xen/arch/x86/dm/i8259.c
index c0d735dc52..8a27835e9f 100644
--- a/xen/arch/x86/dm/i8259.c
+++ b/xen/arch/x86/dm/i8259.c
@@ -29,7 +29,7 @@
#include <xen/lib.h>
#include <xen/errno.h>
#include <xen/sched.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <asm/vmx.h>
#include <asm/vmx_vpic.h>
#include <asm/current.h>
diff --git a/xen/arch/x86/dm/vmx_vioapic.c b/xen/arch/x86/dm/vmx_vioapic.c
index 769eb59f22..201788e858 100644
--- a/xen/arch/x86/dm/vmx_vioapic.c
+++ b/xen/arch/x86/dm/vmx_vioapic.c
@@ -37,7 +37,7 @@
#include <xen/lib.h>
#include <xen/errno.h>
#include <xen/sched.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <asm/vmx.h>
#include <asm/vmx_vpic.h>
#include <asm/current.h>
diff --git a/xen/arch/x86/vmx.c b/xen/arch/x86/vmx.c
index 46ee63584b..4e64e193d5 100644
--- a/xen/arch/x86/vmx.c
+++ b/xen/arch/x86/vmx.c
@@ -42,7 +42,7 @@
#include <asm/shadow_64.h>
#endif
#include <public/sched.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <asm/vmx_vpic.h>
#include <asm/vmx_vlapic.h>
diff --git a/xen/arch/x86/vmx_intercept.c b/xen/arch/x86/vmx_intercept.c
index 8bac8a8e5c..b4633b6c35 100644
--- a/xen/arch/x86/vmx_intercept.c
+++ b/xen/arch/x86/vmx_intercept.c
@@ -24,7 +24,7 @@
#include <asm/vmx_vpit.h>
#include <asm/vmx_intercept.h>
#include <asm/vmx_vlapic.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <xen/lib.h>
#include <xen/sched.h>
#include <asm/current.h>
diff --git a/xen/arch/x86/vmx_io.c b/xen/arch/x86/vmx_io.c
index b7689228bf..955763f125 100644
--- a/xen/arch/x86/vmx_io.c
+++ b/xen/arch/x86/vmx_io.c
@@ -37,7 +37,7 @@
#include <asm/shadow.h>
#include <asm/vmx_vpic.h>
#include <asm/vmx_vlapic.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#ifdef CONFIG_VMX
#if defined (__i386__)
diff --git a/xen/arch/x86/vmx_platform.c b/xen/arch/x86/vmx_platform.c
index 2ee14c65ec..45d1e0052b 100644
--- a/xen/arch/x86/vmx_platform.c
+++ b/xen/arch/x86/vmx_platform.c
@@ -27,7 +27,7 @@
#include <xen/trace.h>
#include <asm/vmx.h>
#include <asm/vmx_platform.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#include <xen/lib.h>
#include <xen/sched.h>
diff --git a/xen/arch/x86/vmx_vlapic.c b/xen/arch/x86/vmx_vlapic.c
index 2574ba4db5..82b167b117 100644
--- a/xen/arch/x86/vmx_vlapic.c
+++ b/xen/arch/x86/vmx_vlapic.c
@@ -32,7 +32,7 @@
#include <xen/lib.h>
#include <xen/sched.h>
#include <asm/current.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#ifdef CONFIG_VMX
diff --git a/xen/arch/x86/vmx_vmcs.c b/xen/arch/x86/vmx_vmcs.c
index 489482358a..64fa3b467e 100644
--- a/xen/arch/x86/vmx_vmcs.c
+++ b/xen/arch/x86/vmx_vmcs.c
@@ -32,7 +32,7 @@
#include <asm/flushtlb.h>
#include <xen/event.h>
#include <xen/kernel.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/hvm_info_table.h>
#if CONFIG_PAGING_LEVELS >= 4
#include <asm/shadow_64.h>
#endif
@@ -233,7 +233,7 @@ static void vmx_get_hvm_info(struct domain *d)
unsigned long mpfn;
struct hvm_info_table *t;
- mpfn = get_mfn_from_pfn(HVM_INFO_PAGE >> PAGE_SHIFT);
+ mpfn = get_mfn_from_pfn(HVM_INFO_PFN);
if ( mpfn == INVALID_MFN ) {
printk("Can not get hvm info page mfn for VMX domain.\n");
domain_crash_synchronous();
diff --git a/xen/include/asm-ia64/vmx.h b/xen/include/asm-ia64/vmx.h
index f682b5acd1..910cc9b035 100644
--- a/xen/include/asm-ia64/vmx.h
+++ b/xen/include/asm-ia64/vmx.h
@@ -23,7 +23,7 @@
#define _ASM_IA64_VT_H
#define RR7_SWITCH_SHIFT 12 /* 4k enough */
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
extern void identify_vmx_feature(void);
extern unsigned int vmx_enabled;
diff --git a/xen/include/asm-x86/vmx.h b/xen/include/asm-x86/vmx.h
index 8796482e5b..f109a9cf53 100644
--- a/xen/include/asm-x86/vmx.h
+++ b/xen/include/asm-x86/vmx.h
@@ -26,7 +26,7 @@
#include <asm/vmx_vmcs.h>
#include <asm/i387.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
extern int hvm_enabled;
diff --git a/xen/include/asm-x86/vmx_intercept.h b/xen/include/asm-x86/vmx_intercept.h
index d832ecf12c..11487ebe1b 100644
--- a/xen/include/asm-x86/vmx_intercept.h
+++ b/xen/include/asm-x86/vmx_intercept.h
@@ -6,7 +6,7 @@
#include <xen/lib.h>
#include <xen/time.h>
#include <xen/errno.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#define MAX_IO_HANDLER 8
diff --git a/xen/include/asm-x86/vmx_vlapic.h b/xen/include/asm-x86/vmx_vlapic.h
index ef33d42dab..da280d1d0b 100644
--- a/xen/include/asm-x86/vmx_vlapic.h
+++ b/xen/include/asm-x86/vmx_vlapic.h
@@ -21,7 +21,7 @@
#define VMX_VLAPIC_H
#include <asm/msr.h>
-#include <public/io/ioreq.h>
+#include <public/hvm/ioreq.h>
#if defined(__i386__) || defined(__x86_64__)
static inline int __fls(uint32_t word)
diff --git a/xen/include/asm-x86/vmx_vmcs.h b/xen/include/asm-x86/vmx_vmcs.h
index 53bde6dc5a..ee3cc77820 100644
--- a/xen/include/asm-x86/vmx_vmcs.h
+++ b/xen/include/asm-x86/vmx_vmcs.h
@@ -23,7 +23,7 @@
#include <asm/vmx_cpu.h>
#include <asm/vmx_platform.h>
#include <asm/vmx_vlapic.h>
-#include <public/vmx_assist.h>
+#include <public/hvm/vmx_assist.h>
extern int start_vmx(void);
extern void stop_vmx(void);
diff --git a/xen/include/public/hvm/hvm_info_table.h b/xen/include/public/hvm/hvm_info_table.h
new file mode 100644
index 0000000000..a576eb7c50
--- /dev/null
+++ b/xen/include/public/hvm/hvm_info_table.h
@@ -0,0 +1,24 @@
+/******************************************************************************
+ * hvm/hvm_info_table.h
+ *
+ * HVM parameter and information table, written into guest memory map.
+ */
+
+#ifndef __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__
+#define __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__
+
+#define HVM_INFO_PFN 0x09F
+#define HVM_INFO_OFFSET 0x800
+#define HVM_INFO_PADDR ((HVM_INFO_PFN << 12) + HVM_INFO_OFFSET)
+
+struct hvm_info_table {
+ char signature[8]; /* "HVM INFO" */
+ uint32_t length;
+ uint8_t checksum;
+ uint8_t acpi_enabled;
+ uint8_t apic_enabled;
+ uint8_t pad[1];
+ uint32_t nr_vcpus;
+};
+
+#endif /* __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__ */
diff --git a/xen/include/public/io/ioreq.h b/xen/include/public/hvm/ioreq.h
index 22f4fcb6bc..308ac39c9a 100644
--- a/xen/include/public/io/ioreq.h
+++ b/xen/include/public/hvm/ioreq.h
@@ -77,19 +77,6 @@ typedef struct {
vcpu_iodata_t vcpu_iodata[1];
} shared_iopage_t;
-#define HVM_INFO_PAGE 0x0009F000
-#define HVM_INFO_OFFSET 0x00000800
-
-struct hvm_info_table {
- char signature[8]; /* "HVM INFO" */
- uint32_t length;
- uint8_t checksum;
- uint8_t acpi_enabled;
- uint8_t apic_enabled;
- uint8_t pad[1];
- uint32_t nr_vcpus;
-};
-
#endif /* _IOREQ_H_ */
/*
diff --git a/xen/include/public/vmx_assist.h b/xen/include/public/hvm/vmx_assist.h
index 4826628c2f..4826628c2f 100644
--- a/xen/include/public/vmx_assist.h
+++ b/xen/include/public/hvm/vmx_assist.h