diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2010-10-18 17:35:59 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2010-10-18 17:35:59 +0100 |
commit | 35e135f116d77823e960671db82ca667f125d617 (patch) | |
tree | 991c3aa7f22952398f8f9799e9432e888e2ca9ec /tools/libxc/xc_domain.c | |
parent | 932b3645d2c3d0d105c2dc0a3a8191bad606c48f (diff) | |
download | xen-35e135f116d77823e960671db82ca667f125d617.tar.gz xen-35e135f116d77823e960671db82ca667f125d617.tar.bz2 xen-35e135f116d77823e960671db82ca667f125d617.zip |
libxc: make xc_memory_op library private
Now that all XENMEM_* callers go via an op specific function make
xc_memory_op private to libxc (and rename to do_memory_op for
consistency with other private functions).
Also change the interface to take a size parameter so that
do_memory_op knows how much memory to lock for the top-level argument,
removing some of the introspection.
[ Compatibility note: this breaks qemu-xen before 706bc8c588cb ]
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_domain.c')
-rw-r--r-- | tools/libxc/xc_domain.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c index a3bbc638eb..2de70c1c60 100644 --- a/tools/libxc/xc_domain.c +++ b/tools/libxc/xc_domain.c @@ -488,17 +488,16 @@ int xc_domain_set_memmap_limit(xc_interface *xch, set_xen_guest_handle(fmap.map.buffer, &e820); - if ( lock_pages(xch, &fmap, sizeof(fmap)) || lock_pages(xch, &e820, sizeof(e820)) ) + if ( lock_pages(xch, &e820, sizeof(e820)) ) { PERROR("Could not lock memory for Xen hypercall"); rc = -1; goto out; } - rc = xc_memory_op(xch, XENMEM_set_memory_map, &fmap); + rc = do_memory_op(xch, XENMEM_set_memory_map, &fmap, sizeof(fmap)); out: - unlock_pages(xch, &fmap, sizeof(fmap)); unlock_pages(xch, &e820, sizeof(e820)); return rc; } @@ -581,7 +580,7 @@ int xc_domain_get_tsc_info(xc_interface *xch, int xc_domain_maximum_gpfn(xc_interface *xch, domid_t domid) { - return xc_memory_op(xch, XENMEM_maximum_gpfn, &domid); + return do_memory_op(xch, XENMEM_maximum_gpfn, &domid, sizeof(domid)); } int xc_domain_increase_reservation(xc_interface *xch, @@ -602,7 +601,7 @@ int xc_domain_increase_reservation(xc_interface *xch, /* may be NULL */ set_xen_guest_handle(reservation.extent_start, extent_start); - err = xc_memory_op(xch, XENMEM_increase_reservation, &reservation); + err = do_memory_op(xch, XENMEM_increase_reservation, &reservation, sizeof(reservation)); return err; } @@ -657,7 +656,7 @@ int xc_domain_decrease_reservation(xc_interface *xch, return -1; } - err = xc_memory_op(xch, XENMEM_decrease_reservation, &reservation); + err = do_memory_op(xch, XENMEM_decrease_reservation, &reservation, sizeof(reservation)); return err; } @@ -699,7 +698,7 @@ int xc_domain_add_to_physmap(xc_interface *xch, .idx = idx, .gpfn = gpfn, }; - return xc_memory_op(xch, XENMEM_add_to_physmap, &xatp); + return do_memory_op(xch, XENMEM_add_to_physmap, &xatp, sizeof(xatp)); } int xc_domain_populate_physmap(xc_interface *xch, @@ -718,7 +717,7 @@ int xc_domain_populate_physmap(xc_interface *xch, }; set_xen_guest_handle(reservation.extent_start, extent_start); - err = xc_memory_op(xch, XENMEM_populate_physmap, &reservation); + err = do_memory_op(xch, XENMEM_populate_physmap, &reservation, sizeof(reservation)); return err; } @@ -774,7 +773,7 @@ int xc_domain_memory_exchange_pages(xc_interface *xch, set_xen_guest_handle(exchange.in.extent_start, in_extents); set_xen_guest_handle(exchange.out.extent_start, out_extents); - rc = xc_memory_op(xch, XENMEM_exchange, &exchange); + rc = do_memory_op(xch, XENMEM_exchange, &exchange, sizeof(exchange)); return rc; } @@ -794,7 +793,7 @@ static int xc_domain_pod_target(xc_interface *xch, .target_pages = target_pages }; - err = xc_memory_op(xch, op, &pod_target); + err = do_memory_op(xch, op, &pod_target, sizeof(pod_target)); if ( err < 0 ) { |