summaryrefslogtreecommitdiffstats
path: root/include/xen
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2009-02-06 19:09:48 -0800
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-10-22 12:57:27 -0700
commit35ae11fd146384d222f3bb1f17eed1970cc92c36 (patch)
tree5d8298d9e8c41525f501003cc3c4ed18ac23ace2 /include/xen
parentcfd8951e082a589637f9de3c33efd3218fdb3c03 (diff)
downloadlinux-35ae11fd146384d222f3bb1f17eed1970cc92c36.tar.gz
linux-35ae11fd146384d222f3bb1f17eed1970cc92c36.tar.bz2
linux-35ae11fd146384d222f3bb1f17eed1970cc92c36.zip
xen: Use host-provided E820 map
Rather than simply using a flat memory map from Xen, use its provided E820 map. This allows the domain builder to tell the domain to reserve space for more pages than those initially provided at domain-build time. It also allows the host to specify holes in the address space (for PCI-passthrough, for example). Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'include/xen')
-rw-r--r--include/xen/interface/memory.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
index d3938d3e71f8..d7a6c13bde69 100644
--- a/include/xen/interface/memory.h
+++ b/include/xen/interface/memory.h
@@ -186,6 +186,35 @@ struct xen_translate_gpfn_list {
};
DEFINE_GUEST_HANDLE_STRUCT(xen_translate_gpfn_list);
+/*
+ * Returns the pseudo-physical memory map as it was when the domain
+ * was started (specified by XENMEM_set_memory_map).
+ * arg == addr of struct xen_memory_map.
+ */
+#define XENMEM_memory_map 9
+struct xen_memory_map {
+ /*
+ * On call the number of entries which can be stored in buffer. On
+ * return the number of entries which have been stored in
+ * buffer.
+ */
+ unsigned int nr_entries;
+
+ /*
+ * Entries in the buffer are in the same format as returned by the
+ * BIOS INT 0x15 EAX=0xE820 call.
+ */
+ GUEST_HANDLE(void) buffer;
+};
+DEFINE_GUEST_HANDLE_STRUCT(xen_memory_map);
+
+/*
+ * Returns the real physical memory map. Passes the same structure as
+ * XENMEM_memory_map.
+ * arg == addr of struct xen_memory_map.
+ */
+#define XENMEM_machine_memory_map 10
+
/*
* Prevent the balloon driver from changing the memory reservation