aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_domain_restore.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2013-01-24 14:49:14 +0100
committerJan Beulich <jbeulich@suse.com>2013-01-24 14:49:14 +0100
commit60ee4fbc385f386dc46ba5e61c9fe280424ed368 (patch)
tree78f9ee1f9111e57b3edf4dc4920dff748982ff2c /tools/libxc/xc_domain_restore.c
parent3e9ba471226315fd54e52594ecc021155ef31221 (diff)
downloadxen-60ee4fbc385f386dc46ba5e61c9fe280424ed368.tar.gz
xen-60ee4fbc385f386dc46ba5e61c9fe280424ed368.tar.bz2
xen-60ee4fbc385f386dc46ba5e61c9fe280424ed368.zip
libxc: drop relics of running on non-PAE 32-bit hosts
Additionally drop unused (and dangerous) defines and typedefs, plus a minor legibility improvement to setup_pgtables_x86_{32_pae,64}(). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
Diffstat (limited to 'tools/libxc/xc_domain_restore.c')
-rw-r--r--tools/libxc/xc_domain_restore.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/tools/libxc/xc_domain_restore.c b/tools/libxc/xc_domain_restore.c
index 454d2cbd49..92ad3346f9 100644
--- a/tools/libxc/xc_domain_restore.c
+++ b/tools/libxc/xc_domain_restore.c
@@ -172,15 +172,12 @@ static int uncanonicalize_pagetable(
uint64_t pte;
struct domain_info_context *dinfo = &ctx->dinfo;
- pte_last = PAGE_SIZE / ((ctx->pt_levels == 2)? 4 : 8);
+ pte_last = PAGE_SIZE / 8;
/* First pass: work out how many (if any) MFNs we need to alloc */
for ( i = 0; i < pte_last; i++ )
{
- if ( ctx->pt_levels == 2 )
- pte = ((uint32_t *)page)[i];
- else
- pte = ((uint64_t *)page)[i];
+ pte = ((uint64_t *)page)[i];
/* XXX SMH: below needs fixing for PROT_NONE etc */
if ( !(pte & _PAGE_PRESENT) )
@@ -226,10 +223,7 @@ static int uncanonicalize_pagetable(
nr_mfns = 0;
for ( i = 0; i < pte_last; i++ )
{
- if ( ctx->pt_levels == 2 )
- pte = ((uint32_t *)page)[i];
- else
- pte = ((uint64_t *)page)[i];
+ pte = ((uint64_t *)page)[i];
/* XXX SMH: below needs fixing for PROT_NONE etc */
if ( !(pte & _PAGE_PRESENT) )
@@ -243,10 +237,7 @@ static int uncanonicalize_pagetable(
pte &= ~MADDR_MASK_X86;
pte |= (uint64_t)ctx->p2m[pfn] << PAGE_SHIFT;
- if ( ctx->pt_levels == 2 )
- ((uint32_t *)page)[i] = (uint32_t)pte;
- else
- ((uint64_t *)page)[i] = (uint64_t)pte;
+ ((uint64_t *)page)[i] = (uint64_t)pte;
}
return 1;
@@ -304,8 +295,7 @@ static xen_pfn_t *load_p2m_frame_list(
if ( chunk_bytes == sizeof (ctxt.x32) )
{
dinfo->guest_width = 4;
- if ( ctx->pt_levels > 2 )
- ctx->pt_levels = 3;
+ ctx->pt_levels = 3;
}
else if ( chunk_bytes == sizeof (ctxt.x64) )
{
@@ -1508,7 +1498,7 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
* assume the guest will be the same as we are. We'll fix that later
* if we discover otherwise. */
dinfo->guest_width = sizeof(unsigned long);
- ctx->pt_levels = (dinfo->guest_width == 8) ? 4 : (ctx->pt_levels == 2) ? 2 : 3;
+ ctx->pt_levels = (dinfo->guest_width == 8) ? 4 : 3;
if ( !hvm )
{