diff options
author | kaf24@localhost.localdomain <kaf24@localhost.localdomain> | 2006-08-13 17:47:59 +0100 |
---|---|---|
committer | kaf24@localhost.localdomain <kaf24@localhost.localdomain> | 2006-08-13 17:47:59 +0100 |
commit | 848ded1e096d01c634924b5c8306fa5143de8293 (patch) | |
tree | 2ce32611896fcf989e322f4a85b406ca9abca7c2 | |
parent | c730da041b1e73dc3e430e37a4e19ac446e74fd2 (diff) | |
download | xen-848ded1e096d01c634924b5c8306fa5143de8293.tar.gz xen-848ded1e096d01c634924b5c8306fa5143de8293.tar.bz2 xen-848ded1e096d01c634924b5c8306fa5143de8293.zip |
[XEN] Clean up e820 definitions. Define shared set in hvm public dir.
Signed-off-by: Keir Fraser <keir@xensource.com>
-rw-r--r-- | tools/firmware/vmxassist/setup.c | 8 | ||||
-rw-r--r-- | tools/firmware/vmxassist/util.h | 20 | ||||
-rw-r--r-- | tools/libxc/xc_hvm_build.c | 22 | ||||
-rw-r--r-- | xen/arch/x86/e820.c | 12 | ||||
-rw-r--r-- | xen/arch/x86/hvm/hvm.c | 1 | ||||
-rw-r--r-- | xen/arch/x86/mm.c | 1 | ||||
-rw-r--r-- | xen/include/asm-x86/e820.h | 31 | ||||
-rw-r--r-- | xen/include/asm-x86/hvm/domain.h | 1 | ||||
-rw-r--r-- | xen/include/asm-x86/page.h | 5 | ||||
-rw-r--r-- | xen/include/public/hvm/e820.h | 27 |
10 files changed, 44 insertions, 84 deletions
diff --git a/tools/firmware/vmxassist/setup.c b/tools/firmware/vmxassist/setup.c index fcaf676e44..07ef70a1df 100644 --- a/tools/firmware/vmxassist/setup.c +++ b/tools/firmware/vmxassist/setup.c @@ -56,7 +56,7 @@ struct e820entry e820map[] = { { 0x00000000000A0000ULL, 0x0000000000020000ULL, E820_IO }, { 0x00000000000C0000ULL, 0x0000000000040000ULL, E820_RESERVED }, { 0x0000000000100000ULL, 0x0000000000000000ULL, E820_RAM }, - { 0x0000000000000000ULL, 0x0000000000001000ULL, E820_SHARED }, + { 0x0000000000000000ULL, 0x0000000000001000ULL, E820_SHARED_PAGE }, { 0x0000000000000000ULL, 0x0000000000003000ULL, E820_NVS }, { 0x0000000000003000ULL, 0x000000000000A000ULL, E820_ACPI }, { 0x00000000FEC00000ULL, 0x0000000001400000ULL, E820_IO }, @@ -94,13 +94,13 @@ banner(void) e820map[6].addr = memory_size; e820map[7].addr += memory_size; - *LINUX_E820_MAP_NR = sizeof(e820map)/sizeof(e820map[0]); - memcpy(LINUX_E820_MAP, e820map, sizeof(e820map)); + *E820_MAP_NR = sizeof(e820map)/sizeof(e820map[0]); + memcpy(E820_MAP, e820map, sizeof(e820map)); #endif printf("Memory size %ld MB\n", memory_size >> 20); printf("E820 map:\n"); - print_e820_map(LINUX_E820_MAP, *LINUX_E820_MAP_NR); + print_e820_map(E820_MAP, *E820_MAP_NR); printf("\n"); } diff --git a/tools/firmware/vmxassist/util.h b/tools/firmware/vmxassist/util.h index 37a539c7e5..b2ace92b8f 100644 --- a/tools/firmware/vmxassist/util.h +++ b/tools/firmware/vmxassist/util.h @@ -23,23 +23,9 @@ #include <stdarg.h> #include <vm86.h> - -#define LINUX_E820_MAP_NR ((unsigned char *)0x901E8) -#define LINUX_E820_MAP ((struct e820entry *)0x902D0) - -#define E820_RAM 1 -#define E820_RESERVED 2 -#define E820_ACPI 3 -#define E820_NVS 4 -#define E820_IO 16 -#define E820_SHARED 17 - -struct e820entry { - unsigned long long addr; - unsigned long long size; - unsigned long type; -} __attribute__((packed)); - +#include <xen/hvm/e820.h> +#define E820_MAP_NR ((unsigned char *)E820_MAP_PAGE + E820_MAP_NR_OFFSET) +#define E820_MAP ((struct e820entry *)(E820_MAP_PAGE + E820_MAP_OFFSET)) #define offsetof(type, member) ((unsigned) &((type *)0)->member) diff --git a/tools/libxc/xc_hvm_build.c b/tools/libxc/xc_hvm_build.c index 3aebbbe8ef..08d2299823 100644 --- a/tools/libxc/xc_hvm_build.c +++ b/tools/libxc/xc_hvm_build.c @@ -14,30 +14,10 @@ #include <xen/hvm/hvm_info_table.h> #include <xen/hvm/ioreq.h> #include <xen/hvm/params.h> +#include <xen/hvm/e820.h> #define HVM_LOADER_ENTR_ADDR 0x00100000 -#define E820MAX 128 - -#define E820_RAM 1 -#define E820_RESERVED 2 -#define E820_ACPI 3 -#define E820_NVS 4 -#define E820_IO 16 -#define E820_SHARED_PAGE 17 -#define E820_XENSTORE 18 -#define E820_BUFFERED_IO 19 - -#define E820_MAP_PAGE 0x00090000 -#define E820_MAP_NR_OFFSET 0x000001E8 -#define E820_MAP_OFFSET 0x000002D0 - -struct e820entry { - uint64_t addr; - uint64_t size; - uint32_t type; -} __attribute__((packed)); - static int parseelfimage( char *elfbase, unsigned long elfsize, struct domain_setup_info *dsi); diff --git a/xen/arch/x86/e820.c b/xen/arch/x86/e820.c index ad2bfd95e5..bbc147139c 100644 --- a/xen/arch/x86/e820.c +++ b/xen/arch/x86/e820.c @@ -2,6 +2,7 @@ #include <xen/init.h> #include <xen/lib.h> #include <asm/e820.h> +#include <asm/page.h> /* opt_mem: Limit of physical RAM. Any RAM beyond this point is ignored. */ unsigned long long opt_mem; @@ -30,16 +31,7 @@ static void __init add_memory_region(unsigned long long start, } } /* add_memory_region */ -#define E820_DEBUG 1 - -#ifndef NDEBUG -#define __init_unless_debugging -#else -#define __init_unless_debugging __init -#endif - -void __init_unless_debugging -print_e820_memory_map(struct e820entry *map, int entries) +static void __init print_e820_memory_map(struct e820entry *map, int entries) { int i; diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index eb868ab738..3e1cfa44d2 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -31,6 +31,7 @@ #include <xen/guest_access.h> #include <xen/event.h> #include <asm/current.h> +#include <asm/e820.h> #include <asm/io.h> #include <asm/shadow.h> #include <asm/regs.h> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 39bcc6c1f0..35c73a83a5 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -105,6 +105,7 @@ #include <asm/io.h> #include <asm/ldt.h> #include <asm/x86_emulate.h> +#include <asm/e820.h> #include <public/memory.h> #ifdef VERBOSE diff --git a/xen/include/asm-x86/e820.h b/xen/include/asm-x86/e820.h index 8053fbd790..7730ce4a4e 100644 --- a/xen/include/asm-x86/e820.h +++ b/xen/include/asm-x86/e820.h @@ -1,30 +1,10 @@ #ifndef __E820_HEADER #define __E820_HEADER -#include <asm/page.h> +#include <public/hvm/e820.h> #define E820MAX 128 -#define E820_RAM 1 -#define E820_RESERVED 2 -#define E820_ACPI 3 -#define E820_NVS 4 -#define E820_IO 16 -#define E820_SHARED_PAGE 17 -#define E820_XENSTORE 18 -#define E820_BUFFERED_IO 19 - -#define E820_MAP_PAGE 0x00090000 -#define E820_MAP_NR_OFFSET 0x000001E8 -#define E820_MAP_OFFSET 0x000002D0 - -#ifndef __ASSEMBLY__ -struct e820entry { - u64 addr; - u64 size; - u32 type; -} __attribute__((packed)); - struct e820map { int nr_map; struct e820entry map[E820MAX]; @@ -33,13 +13,4 @@ struct e820map { extern unsigned long init_e820(struct e820entry *, int *); extern struct e820map e820; -#ifndef NDEBUG -extern void print_e820_memory_map(struct e820entry *map, int entries); -#endif - -#endif /*!__ASSEMBLY__*/ - -#define PFN_DOWN(x) ((x) >> PAGE_SHIFT) -#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) - #endif /*__E820_HEADER*/ diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/include/asm-x86/hvm/domain.h index c69d692502..6561519cb1 100644 --- a/xen/include/asm-x86/hvm/domain.h +++ b/xen/include/asm-x86/hvm/domain.h @@ -22,7 +22,6 @@ #ifndef __ASM_X86_HVM_DOMAIN_H__ #define __ASM_X86_HVM_DOMAIN_H__ -#include <asm/e820.h> #include <asm/hvm/vpic.h> #include <asm/hvm/vpit.h> #include <asm/hvm/vlapic.h> diff --git a/xen/include/asm-x86/page.h b/xen/include/asm-x86/page.h index b0c14591ef..6432402066 100644 --- a/xen/include/asm-x86/page.h +++ b/xen/include/asm-x86/page.h @@ -354,7 +354,10 @@ map_pages_to_xen( #endif /* !__ASSEMBLY__ */ -#endif /* __I386_PAGE_H__ */ +#define PFN_DOWN(x) ((x) >> PAGE_SHIFT) +#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) + +#endif /* __X86_PAGE_H__ */ /* * Local variables: diff --git a/xen/include/public/hvm/e820.h b/xen/include/public/hvm/e820.h new file mode 100644 index 0000000000..f2f8889e7d --- /dev/null +++ b/xen/include/public/hvm/e820.h @@ -0,0 +1,27 @@ +#ifndef __XEN_PUBLIC_HVM_E820_H__ +#define __XEN_PUBLIC_HVM_E820_H__ + +/* PC BIOS standard E820 types. */ +#define E820_RAM 1 +#define E820_RESERVED 2 +#define E820_ACPI 3 +#define E820_NVS 4 + +/* Xen HVM extended E820 types. */ +#define E820_IO 16 +#define E820_SHARED_PAGE 17 +#define E820_XENSTORE 18 +#define E820_BUFFERED_IO 19 + +/* E820 location in HVM virtual address space. */ +#define E820_MAP_PAGE 0x00090000 +#define E820_MAP_NR_OFFSET 0x000001E8 +#define E820_MAP_OFFSET 0x000002D0 + +struct e820entry { + uint64_t addr; + uint64_t size; + uint32_t type; +} __attribute__((packed)); + +#endif /* __XEN_PUBLIC_HVM_E820_H__ */ |