tools/libxc: rename pfn_to_mfn to xc_pfn_to_mfn

Also refactor the contents of xc_pfn_to_mfn().  It is functionally identical,
but contains less lisp, fewer magic numbers, and more description of why 32bit
guests are treated differently.

Note that this does not affect pfn_to_mfn() in xc_domain_save.c  That was
already a macro which aliased pfn_to_mfn() in xg_private.h but without
actually using it.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Andrew Cooper authored and Ian Campbell committed 2014-06-18 16:22:49 +01:00
1 parent d56f1994b0
commit eba7e67bc4
3 files changed
+16 -10

No files matched your search

+2 -2
View File
@@ -1879,8 +1879,8 @@ int xc_map_domain_meminfo(xc_interface *xch, int domid,
goto failed;
}
for ( i = 0; i < minfo->p2m_size; i++ )
minfo->pfn_type[i] = pfn_to_mfn(i, minfo->p2m_table,
minfo->guest_width);
minfo->pfn_type[i] = xc_pfn_to_mfn(i, minfo->p2m_table,
minfo->guest_width);
/* Retrieve PFN types in batches */
for ( i = 0; i < minfo->p2m_size ; i+=1024 )
+2 -2
View File
@@ -272,8 +272,8 @@ static int change_pte(xc_interface *xch, int domid,
for (i = 0; i < minfo->p2m_size; i++)
{
xen_pfn_t table_mfn = pfn_to_mfn(i, minfo->p2m_table,
minfo->guest_width);
xen_pfn_t table_mfn = xc_pfn_to_mfn(i, minfo->p2m_table,
minfo->guest_width);
uint64_t pte, new_pte;
int j;
+12 -6
View File
@@ -132,13 +132,19 @@ struct domain_info_context {
unsigned long p2m_size;
};
static inline xen_pfn_t pfn_to_mfn(xen_pfn_t pfn, xen_pfn_t *p2m, int gwidth)
static inline xen_pfn_t xc_pfn_to_mfn(xen_pfn_t pfn, xen_pfn_t *p2m,
unsigned gwidth)
{
return ((xen_pfn_t) ((gwidth==8)?
(((uint64_t *)p2m)[(pfn)]):
((((uint32_t *)p2m)[(pfn)]) == 0xffffffffU ?
(-1UL) :
(((uint32_t *)p2m)[(pfn)]))));
if ( gwidth == sizeof(uint64_t) )
/* 64 bit guest. Need to truncate their pfns for 32 bit toolstacks. */
return ((uint64_t *)p2m)[pfn];
else
{
/* 32 bit guest. Need to expand INVALID_MFN for 64 bit toolstacks. */
uint32_t mfn = ((uint32_t *)p2m)[pfn];
return mfn == ~0U ? INVALID_MFN : mfn;
}
}
/* Number of xen_pfn_t in a page */
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.