diff options
author | Jan Beulich <jbeulich@suse.com> | 2013-01-24 14:49:14 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-01-24 14:49:14 +0100 |
commit | 60ee4fbc385f386dc46ba5e61c9fe280424ed368 (patch) | |
tree | 78f9ee1f9111e57b3edf4dc4920dff748982ff2c /tools/libxc/xc_domain_restore.c | |
parent | 3e9ba471226315fd54e52594ecc021155ef31221 (diff) | |
download | xen-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.c | 22 |
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 ) { |