# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1286892402 -3600
# Node ID 901ec3e53b42d599fe8d8e148797cfc729774702
# Parent d284f5cbda808a8ac816829bdd67c8a9f692c8e4
libxc: add xc_domain_add_to_physmap to wrap XENMEM_add_to_physmap
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
diff -r d284f5cbda80 -r 901ec3e53b42 tools/libxc/xc_dom_x86.c
--- a/tools/libxc/xc_dom_x86.c Tue Oct 12 15:06:42 2010 +0100
+++ b/tools/libxc/xc_dom_x86.c Tue Oct 12 15:06:42 2010 +0100
@@ -815,31 +815,26 @@ int arch_setup_bootlate(struct xc_dom_im
else
{
/* paravirtualized guest with auto-translation */
- struct xen_add_to_physmap xatp;
int i;
/* Map shared info frame into guest physmap. */
- xatp.domid = dom->guest_domid;
- xatp.space = XENMAPSPACE_shared_info;
- xatp.idx = 0;
- xatp.gpfn = dom->shared_info_pfn;
- rc = xc_memory_op(dom->xch, XENMEM_add_to_physmap, &xatp);
+ rc = xc_domain_add_to_physmap(dom->xch, dom->guest_domid,
+ XENMAPSPACE_shared_info,
+ 0, dom->shared_info_pfn);
if ( rc != 0 )
{
xc_dom_panic(dom->xch, XC_INTERNAL_ERROR, "%s: mapping"
" shared_info failed (pfn=0x%" PRIpfn ", rc=%d)",
- __FUNCTION__, xatp.gpfn, rc);
+ __FUNCTION__, dom->shared_info_pfn, rc);
return rc;
}
/* Map grant table frames into guest physmap. */
for ( i = 0; ; i++ )
{
- xatp.domid = dom->guest_domid;
- xatp.space = XENMAPSPACE_grant_table;
- xatp.idx = i;
- xatp.gpfn = dom->total_pages + i;
- rc = xc_memory_op(dom->xch, XENMEM_add_to_physmap, &xatp);
+ rc = xc_domain_add_to_physmap(dom->xch, dom->guest_domid,
+ XENMAPSPACE_grant_table,
+ i, dom->total_pages + i);
if ( rc != 0 )
{
if ( (i > 0) && (errno == EINVAL) )
@@ -849,7 +844,7 @@ int arch_setup_bootlate(struct xc_dom_im
}
xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
"%s: mapping grant tables failed " "(pfn=0x%"
- PRIpfn ", rc=%d)", __FUNCTION__, xatp.gpfn, rc);
+ PRIpfn ", rc=%d)", __FUNCTION__, dom->total_pages
+ i, rc);
return rc;
}
}
diff -r d284f5cbda80 -r 901ec3e53b42 tools/libxc/xc_domain.c
--- a/tools/libxc/xc_domain.c Tue Oct 12 15:06:42 2010 +0100
+++ b/tools/libxc/xc_domain.c Tue Oct 12 15:06:42 2010 +0100
@@ -680,6 +680,21 @@ int xc_domain_decrease_reservation_exact
}
return err;
+}
+
+int xc_domain_add_to_physmap(xc_interface *xch,
+ uint32_t domid,
+ unsigned int space,
+ unsigned long idx,
+ xen_pfn_t gpfn)
+{
+ struct xen_add_to_physmap xatp = {
+ .domid = domid,
+ .space = space,
+ .idx = idx,
+ .gpfn = gpfn,
+ };
+ return xc_memory_op(xch, XENMEM_add_to_physmap, &xatp);
}
int xc_domain_populate_physmap(xc_interface *xch,
diff -r d284f5cbda80 -r 901ec3e53b42 tools/libxc/xenctrl.h
--- a/tools/libxc/xenctrl.h Tue Oct 12 15:06:42 2010 +0100
+++ b/tools/libxc/xenctrl.h Tue Oct 12 15:06:42 2010 +0100
@@ -810,6 +810,12 @@ int xc_domain_decrease_reservation_exact
unsigned long nr_extents,
unsigned int extent_order,
xen_pfn_t *extent_start);
+
+int xc_domain_add_to_physmap(xc_interface *xch,
+ uint32_t domid,
+ unsigned int space,
+ unsigned long idx,
+ xen_pfn_t gpfn);
int xc_domain_populate_physmap(xc_interface *xch,
uint32_t domid,
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|