[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] libxc: export xc_map_m2p() so that it can be called outside.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1243861973 -3600
# Node ID bd39df93a29e015e93b708639756661c3419b602
# Parent  84c1f7c46444eaa33fc14fc519ebfc5f11098903
libxc: export xc_map_m2p() so that it can be called outside.

Signed-off-by: Jiang, Yunhong <yunhong.jiang@xxxxxxxxx>
---
 tools/libxc/xc_domain_save.c |   10 ++++++----
 tools/libxc/xenguest.h       |   13 +++++++++++++
 2 files changed, 19 insertions(+), 4 deletions(-)

diff -r 84c1f7c46444 -r bd39df93a29e tools/libxc/xc_domain_save.c
--- a/tools/libxc/xc_domain_save.c      Mon Jun 01 14:08:58 2009 +0100
+++ b/tools/libxc/xc_domain_save.c      Mon Jun 01 14:12:53 2009 +0100
@@ -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 84c1f7c46444 -r bd39df93a29e tools/libxc/xenguest.h
--- a/tools/libxc/xenguest.h    Mon Jun 01 14:08:58 2009 +0100
+++ b/tools/libxc/xenguest.h    Mon Jun 01 14:12:53 2009 +0100
@@ -163,4 +163,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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.