mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
1 parent
d56f1994b0
commit
eba7e67bc4
3 files changed
+16
-10
No files matched your search
@@ -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 )
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||