aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_tbuf.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-01-19 14:41:17 +0000
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-01-19 14:41:17 +0000
commit2e68ac5f9753eaf889ac524cc7ee1dd117815ffb (patch)
tree699faf4d7bce06f0f0c9b074ed51a9d0598bb5a3 /tools/libxc/xc_tbuf.c
parente74411be0bfc740c14e2bd2fb9179c8d2708a2cc (diff)
downloadxen-2e68ac5f9753eaf889ac524cc7ee1dd117815ffb.tar.gz
xen-2e68ac5f9753eaf889ac524cc7ee1dd117815ffb.tar.bz2
xen-2e68ac5f9753eaf889ac524cc7ee1dd117815ffb.zip
[LIBXC] Handle trace-buffer cpumap endianness.
Original patch from Jimi Xenidis <jimix@watson.ibm.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools/libxc/xc_tbuf.c')
-rw-r--r--tools/libxc/xc_tbuf.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/tools/libxc/xc_tbuf.c b/tools/libxc/xc_tbuf.c
index 920c5b5abd..266732608a 100644
--- a/tools/libxc/xc_tbuf.c
+++ b/tools/libxc/xc_tbuf.c
@@ -96,15 +96,19 @@ int xc_tbuf_set_cpu_mask(int xc_handle, uint32_t mask)
{
DECLARE_SYSCTL;
int ret = -1;
+ uint64_t mask64 = mask;
+ uint8_t bytemap[sizeof(mask64)];
sysctl.cmd = XEN_SYSCTL_tbuf_op;
sysctl.interface_version = XEN_SYSCTL_INTERFACE_VERSION;
sysctl.u.tbuf_op.cmd = XEN_SYSCTL_TBUFOP_set_cpu_mask;
- set_xen_guest_handle(sysctl.u.tbuf_op.cpu_mask.bitmap, (uint8_t *)&mask);
- sysctl.u.tbuf_op.cpu_mask.nr_cpus = sizeof(mask) * 8;
+ bitmap_64_to_byte(bytemap, &mask64, sizeof (mask64));
- if ( lock_pages(&mask, sizeof(mask)) != 0 )
+ set_xen_guest_handle(sysctl.u.tbuf_op.cpu_mask.bitmap, bytemap);
+ sysctl.u.tbuf_op.cpu_mask.nr_cpus = sizeof(bytemap) * 8;
+
+ if ( lock_pages(&bytemap, sizeof(bytemap)) != 0 )
{
PERROR("Could not lock memory for Xen hypercall");
goto out;
@@ -112,7 +116,7 @@ int xc_tbuf_set_cpu_mask(int xc_handle, uint32_t mask)
ret = do_sysctl(xc_handle, &sysctl);
- unlock_pages(&mask, sizeof(mask));
+ unlock_pages(&bytemap, sizeof(bytemap));
out:
return ret;