Jiang, Yunhong
2009-May-31 11:10 UTC
[Xen-devel] [PATCH 1/6] export xc_map_m2p() so that it can be called outside.
export xc_map_m2p() so that it can be called outside. signed-off-by: Jiang, Yunhogn <yunhong.jiang@intel.com> diff -r d6c212abfed9 tools/libxc/xc_domain_save.c --- a/tools/libxc/xc_domain_save.c Tue May 19 02:57:37 2009 +0800 +++ b/tools/libxc/xc_domain_save.c Tue May 19 03:02:12 2009 +0800 @@ -510,9 +510,10 @@ static int canonicalize_pagetable(unsign return race; } -static xen_pfn_t *xc_map_m2p(int xc_handle, +xen_pfn_t *xc_map_m2p(int xc_handle, unsigned long max_mfn, - int prot) + int prot, + unsigned long *mfn0) { struct xen_machphys_mfn_list xmml; privcmd_mmap_entry_t *entries; @@ -561,7 +562,8 @@ static xen_pfn_t *xc_map_m2p(int xc_hand goto err2; } - m2p_mfn0 = entries[0].mfn; + if (mfn0) + *mfn0 = entries[0].mfn; err2: free(entries); @@ -949,7 +951,7 @@ int xc_domain_save(int xc_handle, int io } /* Setup the mfn_to_pfn table mapping */ - if ( !(live_m2p = xc_map_m2p(xc_handle, max_mfn, PROT_READ)) ) + if ( !(live_m2p = xc_map_m2p(xc_handle, max_mfn, PROT_READ, &m2p_mfn0)) ) { ERROR("Failed to map live M2P table"); goto out; diff -r d6c212abfed9 tools/libxc/xenguest.h --- a/tools/libxc/xenguest.h Tue May 19 02:57:37 2009 +0800 +++ b/tools/libxc/xenguest.h Tue May 19 03:13:47 2009 +0800 @@ -157,4 +157,17 @@ int xc_query_page_offline_status(int xc, int xc_query_page_offline_status(int xc, unsigned long start, unsigned long end, uint32_t *status); + +/** + * This function map m2p table + * @parm xc_handle a handle to an open hypervisor interface + * @parm max_mfn the max pfn + * @parm prot the flags to map, such as read/write etc + * @parm mfn0 return the first mfn, can be NULL + * @return mapped m2p table on success, NULL on failure + */ +xen_pfn_t *xc_map_m2p(int xc_handle, + unsigned long max_mfn, + int prot, + unsigned long *mfn0); #endif /* XENGUEST_H */ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel