aboutsummaryrefslogtreecommitdiffstats
path: root/hw/xen_common.h
diff options
context:
space:
mode:
authorJun Nakajima <jun.nakajima@intel.com>2010-08-31 16:41:25 +0100
committerAlexander Graf <agraf@suse.de>2011-05-08 10:10:01 +0200
commit432d268c0552fd30c8be564f7ea2504a2b546101 (patch)
treed74d75e9b70fd2ced0daf705062260dab19b40c4 /hw/xen_common.h
parent9c11a8ac886ccbb5f8e1b08e8ae12f045d783031 (diff)
xen: Introduce the Xen mapcache
On IA32 host or IA32 PAE host, at present, generally, we can't create an HVM guest with more than 2G memory, because generally it's almost impossible for Qemu to find a large enough and consecutive virtual address space to map an HVM guest's whole physical address space. The attached patch fixes this issue using dynamic mapping based on little blocks of memory. Each call to qemu_get_ram_ptr makes a call to qemu_map_cache with the lock option, so mapcache will not unmap these ram_ptr. Blocks that do not belong to the RAM, but usually to a device ROM or to a framebuffer, are handled in a separate function. So the whole RAMBlock can be map. Signed-off-by: Jun Nakajima <jun.nakajima@intel.com> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'hw/xen_common.h')
-rw-r--r--hw/xen_common.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/xen_common.h b/hw/xen_common.h
index 47b8afea0..dd3e896e9 100644
--- a/hw/xen_common.h
+++ b/hw/xen_common.h
@@ -63,6 +63,15 @@ static inline int xc_fd(int xen_xc)
}
+static inline int xc_domain_populate_physmap_exact
+ (XenXC xc_handle, uint32_t domid, unsigned long nr_extents,
+ unsigned int extent_order, unsigned int mem_flags, xen_pfn_t *extent_start)
+{
+ return xc_domain_memory_populate_physmap
+ (xc_handle, domid, nr_extents, extent_order, mem_flags, extent_start);
+}
+
+
/* Xen 4.1 */
#else