diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2010-10-18 17:14:07 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2010-10-18 17:14:07 +0100 |
commit | 9bf9eada0dad47460fbecd632b944424a3255664 (patch) | |
tree | 4b872ab2f39740cdd256a8b0c2267b94fcacf944 /tools/libxc/xc_offline_page.c | |
parent | 2674a296982598b97ffdd90fa407e4cdd1df3e13 (diff) | |
download | xen-9bf9eada0dad47460fbecd632b944424a3255664.tar.gz xen-9bf9eada0dad47460fbecd632b944424a3255664.tar.bz2 xen-9bf9eada0dad47460fbecd632b944424a3255664.zip |
libxc: add xc_domain_memory_exchange_pages to wrap XENMEM_exchange
Generalised from exchange_page in xc_offline_page.c
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxc/xc_offline_page.c')
-rw-r--r-- | tools/libxc/xc_offline_page.c | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/tools/libxc/xc_offline_page.c b/tools/libxc/xc_offline_page.c index a23cb64e32..99d7d705ab 100644 --- a/tools/libxc/xc_offline_page.c +++ b/tools/libxc/xc_offline_page.c @@ -512,35 +512,6 @@ static int clear_pte(xc_interface *xch, int domid, __clear_pte, mfn); } -static int exchange_page(xc_interface *xch, xen_pfn_t mfn, - xen_pfn_t *new_mfn, int domid) -{ - int rc; - xen_pfn_t out_mfn; - - struct xen_memory_exchange exchange = { - .in = { - .nr_extents = 1, - .extent_order = 0, - .domid = domid - }, - .out = { - .nr_extents = 1, - .extent_order = 0, - .domid = domid - } - }; - set_xen_guest_handle(exchange.in.extent_start, &mfn); - set_xen_guest_handle(exchange.out.extent_start, &out_mfn); - - rc = xc_memory_op(xch, XENMEM_exchange, &exchange); - - if (!rc) - *new_mfn = out_mfn; - - return rc; -} - /* * Check if a page can be exchanged successfully */ @@ -704,7 +675,9 @@ int xc_exchange_page(xc_interface *xch, int domid, xen_pfn_t mfn) goto failed; } - rc = exchange_page(xch, mfn, &new_mfn, domid); + rc = xc_domain_memory_exchange_pages(xch, domid, + 1, 0, &mfn, + 1, 0, &new_mfn); if (rc) { |