aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_dom_x86.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-07-20 15:45:50 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-07-20 15:45:50 +0100
commit5301fe9943e8d6b4bee5fb8739775450ac3cbde4 (patch)
tree09eef4026350457f048e4bbd93512b7f3004f945 /tools/libxc/xc_dom_x86.c
parent07a34def028cf0737533b834a0e29f0ce639d9ea (diff)
downloadxen-5301fe9943e8d6b4bee5fb8739775450ac3cbde4.tar.gz
xen-5301fe9943e8d6b4bee5fb8739775450ac3cbde4.tar.bz2
xen-5301fe9943e8d6b4bee5fb8739775450ac3cbde4.zip
libxenguest: Revert domain builder interface changes for 'superpages'
parameter, and place the flag in a pad byte of 'struct xc_dom_image' instead. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'tools/libxc/xc_dom_x86.c')
-rw-r--r--tools/libxc/xc_dom_x86.c41
1 files changed, 20 insertions, 21 deletions
diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c
index 30f13970ac..eddb93aef5 100644
--- a/tools/libxc/xc_dom_x86.c
+++ b/tools/libxc/xc_dom_x86.c
@@ -694,10 +694,10 @@ static int x86_shadow(int xc, domid_t domid)
return rc;
}
-int arch_setup_meminit(struct xc_dom_image *dom, int superpages)
+int arch_setup_meminit(struct xc_dom_image *dom)
{
int rc;
- xen_pfn_t pfn, allocsz, i;
+ xen_pfn_t pfn, allocsz, i, j, mfn;
rc = x86_compat(dom->guest_xc, dom->guest_domid, dom->guest_type);
if ( rc )
@@ -711,47 +711,46 @@ int arch_setup_meminit(struct xc_dom_image *dom, int superpages)
}
dom->p2m_host = xc_dom_malloc(dom, sizeof(xen_pfn_t) * dom->total_pages);
- if (superpages)
+ if ( dom->superpages )
{
int count = dom->total_pages >> SUPERPAGE_PFN_SHIFT;
xen_pfn_t extents[count];
xc_dom_printf("Populating memory with %d superpages\n", count);
- for (pfn = 0; pfn < count; pfn++)
+ for ( pfn = 0; pfn < count; pfn++ )
extents[pfn] = pfn << SUPERPAGE_PFN_SHIFT;
rc = xc_domain_memory_populate_physmap(dom->guest_xc, dom->guest_domid,
count, SUPERPAGE_PFN_SHIFT, 0,
extents);
- if (!rc)
- {
- int i, j;
- xen_pfn_t mfn;
+ if ( rc )
+ return rc;
- /* Expand the returned mfn into the p2m array */
- pfn = 0;
- for (i = 0; i < count; i++)
- {
- mfn = extents[i];
- for (j = 0; j < SUPERPAGE_NR_PFNS; j++, pfn++)
- {
- dom->p2m_host[pfn] = mfn + j;
- }
- }
+ /* Expand the returned mfn into the p2m array */
+ pfn = 0;
+ for ( i = 0; i < count; i++ )
+ {
+ mfn = extents[i];
+ for ( j = 0; j < SUPERPAGE_NR_PFNS; j++, pfn++ )
+ dom->p2m_host[pfn] = mfn + j;
}
- } else
+ }
+ else
{
/* setup initial p2m */
for ( pfn = 0; pfn < dom->total_pages; pfn++ )
dom->p2m_host[pfn] = pfn;
/* allocate guest memory */
- for ( i = rc = allocsz = 0; (i < dom->total_pages) && !rc; i += allocsz )
+ for ( i = rc = allocsz = 0;
+ (i < dom->total_pages) && !rc;
+ i += allocsz )
{
allocsz = dom->total_pages - i;
if ( allocsz > 1024*1024 )
allocsz = 1024*1024;
rc = xc_domain_memory_populate_physmap(
- dom->guest_xc, dom->guest_domid, allocsz, 0, 0, &dom->p2m_host[i]);
+ dom->guest_xc, dom->guest_domid, allocsz,
+ 0, 0, &dom->p2m_host[i]);
}
}