aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_efi.h
diff options
context:
space:
mode:
authorKeir Fraser <keir@xensource.com>2007-02-24 14:31:42 +0000
committerKeir Fraser <keir@xensource.com>2007-02-24 14:31:42 +0000
commite3ce7ff90fbce79dbb3d5a2c82c467699dd6e57e (patch)
tree562a4377e1aae9fc4337ef026b9a4ee557335f4d /tools/libxc/xc_efi.h
parent4062095bcbc7a0bf38a65ee90e8ffd2506d83950 (diff)
downloadxen-e3ce7ff90fbce79dbb3d5a2c82c467699dd6e57e.tar.gz
xen-e3ce7ff90fbce79dbb3d5a2c82c467699dd6e57e.tar.bz2
xen-e3ce7ff90fbce79dbb3d5a2c82c467699dd6e57e.zip
Xen coredump format: ELF formatified with note section.
added PFN-GMFN table for non-auto translated physmap added PFN table for auto translated physmap. HVM domain support. IA64 support Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Use the guest's own p2m table instead of xc_get_pfn_list(), which cannot handle PFNs with no MFN. Dump a zeroed page for PFNs with no MFN. Clearly deprecate xc_get_pfn_list(). Do not include a P2M table with HVM domains. Refuse to dump HVM until we can map its pages with PFNs. Signed-off-by: John Levon <john.levon@sun.com>
Diffstat (limited to 'tools/libxc/xc_efi.h')
-rw-r--r--tools/libxc/xc_efi.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/libxc/xc_efi.h b/tools/libxc/xc_efi.h
new file mode 100644
index 0000000000..c204a50bcb
--- /dev/null
+++ b/tools/libxc/xc_efi.h
@@ -0,0 +1,68 @@
+#ifndef XC_EFI_H
+#define XC_EFI_H
+
+/* definitions from xen/include/asm-ia64/linux-xen/linux/efi.h */
+
+/*
+ * Extensible Firmware Interface
+ * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999
+ *
+ * Copyright (C) 1999 VA Linux Systems
+ * Copyright (C) 1999 Walt Drummond <drummond@valinux.com>
+ * Copyright (C) 1999, 2002-2003 Hewlett-Packard Co.
+ * David Mosberger-Tang <davidm@hpl.hp.com>
+ * Stephane Eranian <eranian@hpl.hp.com>
+ */
+
+/*
+ * Memory map descriptor:
+ */
+
+/* Memory types: */
+#define EFI_RESERVED_TYPE 0
+#define EFI_LOADER_CODE 1
+#define EFI_LOADER_DATA 2
+#define EFI_BOOT_SERVICES_CODE 3
+#define EFI_BOOT_SERVICES_DATA 4
+#define EFI_RUNTIME_SERVICES_CODE 5
+#define EFI_RUNTIME_SERVICES_DATA 6
+#define EFI_CONVENTIONAL_MEMORY 7
+#define EFI_UNUSABLE_MEMORY 8
+#define EFI_ACPI_RECLAIM_MEMORY 9
+#define EFI_ACPI_MEMORY_NVS 10
+#define EFI_MEMORY_MAPPED_IO 11
+#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12
+#define EFI_PAL_CODE 13
+#define EFI_MAX_MEMORY_TYPE 14
+
+/* Attribute values: */
+#define EFI_MEMORY_UC ((uint64_t)0x0000000000000001ULL) /* uncached */
+#define EFI_MEMORY_WC ((uint64_t)0x0000000000000002ULL) /* write-coalescing */
+#define EFI_MEMORY_WT ((uint64_t)0x0000000000000004ULL) /* write-through */
+#define EFI_MEMORY_WB ((uint64_t)0x0000000000000008ULL) /* write-back */
+#define EFI_MEMORY_WP ((uint64_t)0x0000000000001000ULL) /* write-protect */
+#define EFI_MEMORY_RP ((uint64_t)0x0000000000002000ULL) /* read-protect */
+#define EFI_MEMORY_XP ((uint64_t)0x0000000000004000ULL) /* execute-protect */
+#define EFI_MEMORY_RUNTIME ((uint64_t)0x8000000000000000ULL) /* range requires runtime mapping */
+#define EFI_MEMORY_DESCRIPTOR_VERSION 1
+
+#define EFI_PAGE_SHIFT 12
+
+/*
+ * For current x86 implementations of EFI, there is
+ * additional padding in the mem descriptors. This is not
+ * the case in ia64. Need to have this fixed in the f/w.
+ */
+typedef struct {
+ uint32_t type;
+ uint32_t pad;
+ uint64_t phys_addr;
+ uint64_t virt_addr;
+ uint64_t num_pages;
+ uint64_t attribute;
+#if defined (__i386__)
+ uint64_t pad1;
+#endif
+} efi_memory_desc_t;
+
+#endif /* XC_EFI_H */