From 87bdb45d76fdbdba73be1e9cc43671f767f1367b Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 25 Oct 2007 11:38:04 +0100 Subject: [PATCH] xen: Fix new domctl/sysctl structs to be 32-/64-bit invariant. Signed-off-by: Keir Fraser --- xen/include/public/domctl.h | 14 ++++++++------ xen/include/public/sysctl.h | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index 1ff80840a0..d44e04f4af 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -474,11 +474,11 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_bind_pt_irq_t); /* Bind machine I/O address range -> HVM address range. */ #define XEN_DOMCTL_memory_mapping 39 struct xen_domctl_memory_mapping { - uint64_t first_gfn; /* first page (hvm guest phys page) in range */ - uint64_t first_mfn; /* first page (machine page) in range */ - uint64_t nr_mfns; /* number of pages in range (>0) */ - uint32_t add_mapping; /* add or remove mapping */ - uint32_t padding; /* padding for 64-bit aligned structure */ + uint64_aligned_t first_gfn; /* first page (hvm guest phys page) in range */ + uint64_aligned_t first_mfn; /* first page (machine page) in range */ + uint64_aligned_t nr_mfns; /* number of pages in range (>0) */ + uint32_t add_mapping; /* add or remove mapping */ + uint32_t padding; /* padding for 64-bit aligned structure */ }; typedef struct xen_domctl_memory_mapping xen_domctl_memory_mapping_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_memory_mapping_t); @@ -495,6 +495,7 @@ struct xen_domctl_ioport_mapping { typedef struct xen_domctl_ioport_mapping xen_domctl_ioport_mapping_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_ioport_mapping_t); + /* * Pin caching type of RAM space for x86 HVM domU. */ @@ -507,12 +508,13 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_ioport_mapping_t); #define XEN_DOMCTL_MEM_CACHEATTR_WB 6 #define XEN_DOMCTL_MEM_CACHEATTR_UCM 7 struct xen_domctl_pin_mem_cacheattr { - uint64_t start, end; + uint64_aligned_t start, end; unsigned int type; /* XEN_DOMCTL_MEM_CACHEATTR_* */ }; typedef struct xen_domctl_pin_mem_cacheattr xen_domctl_pin_mem_cacheattr_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_pin_mem_cacheattr_t); + struct xen_domctl { uint32_t cmd; uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */ diff --git a/xen/include/public/sysctl.h b/xen/include/public/sysctl.h index 5e4ad0b01a..0ea67c5b5f 100644 --- a/xen/include/public/sysctl.h +++ b/xen/include/public/sysctl.h @@ -171,7 +171,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_debug_keys_t); /* Get physical CPU information. */ #define XEN_SYSCTL_getcpuinfo 8 struct xen_sysctl_cpuinfo { - uint64_t idletime; + uint64_aligned_t idletime; }; typedef struct xen_sysctl_cpuinfo xen_sysctl_cpuinfo_t; DEFINE_XEN_GUEST_HANDLE(xen_sysctl_cpuinfo_t); @@ -192,7 +192,7 @@ struct xen_sysctl_availheap { uint32_t max_bitwidth; /* Largest address width (zero if don't care). */ int32_t node; /* NUMA node of interest (-1 for all nodes). */ /* OUT variables. */ - uint64_t avail_bytes; /* Bytes available in the specified region. */ + uint64_aligned_t avail_bytes;/* Bytes available in the specified region. */ }; typedef struct xen_sysctl_availheap xen_sysctl_availheap_t; DEFINE_XEN_GUEST_HANDLE(xen_sysctl_availheap_t); -- 2.30.2