From 80fd2ef9ec91ba5f93f93e2431dfb70e8c61c3cc Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Fri, 14 Sep 2012 13:34:43 +0000 Subject: [PATCH] --- yaml --- r: 330393 b: refs/heads/master c: 256f631f1f7e7bedc882510679ad4473a2274708 h: refs/heads/master i: 330391: 02c60663550fdd5f5387b7fa311e587971fb1b91 v: v3 --- [refs] | 2 +- trunk/arch/arm/include/asm/xen/interface.h | 8 ++++++-- trunk/arch/ia64/include/asm/xen/interface.h | 1 + trunk/arch/x86/include/asm/xen/interface.h | 1 + trunk/include/xen/interface/memory.h | 12 ++++++------ trunk/include/xen/interface/physdev.h | 2 +- trunk/include/xen/interface/version.h | 2 +- 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 6819e055f7a5..557a74630a32 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2e01f16601d8924b12b1acf1cdc49a0d1cc1cfb2 +refs/heads/master: 256f631f1f7e7bedc882510679ad4473a2274708 diff --git a/trunk/arch/arm/include/asm/xen/interface.h b/trunk/arch/arm/include/asm/xen/interface.h index 74c72b5083a6..ae05e56dd17d 100644 --- a/trunk/arch/arm/include/asm/xen/interface.h +++ b/trunk/arch/arm/include/asm/xen/interface.h @@ -9,8 +9,11 @@ #include +#define uint64_aligned_t uint64_t __attribute__((aligned(8))) + #define __DEFINE_GUEST_HANDLE(name, type) \ - typedef type * __guest_handle_ ## name + typedef struct { union { type *p; uint64_aligned_t q; }; } \ + __guest_handle_ ## name #define DEFINE_GUEST_HANDLE_STRUCT(name) \ __DEFINE_GUEST_HANDLE(name, struct name) @@ -21,13 +24,14 @@ do { \ if (sizeof(hnd) == 8) \ *(uint64_t *)&(hnd) = 0; \ - (hnd) = val; \ + (hnd).p = val; \ } while (0) #ifndef __ASSEMBLY__ /* Explicitly size integers that represent pfns in the interface with * Xen so that we can have one ABI that works for 32 and 64 bit guests. */ typedef uint64_t xen_pfn_t; +typedef uint64_t xen_ulong_t; /* Guest handles for primitive C types. */ __DEFINE_GUEST_HANDLE(uchar, unsigned char); __DEFINE_GUEST_HANDLE(uint, unsigned int); diff --git a/trunk/arch/ia64/include/asm/xen/interface.h b/trunk/arch/ia64/include/asm/xen/interface.h index 3d52a5bbd857..e88c5de27410 100644 --- a/trunk/arch/ia64/include/asm/xen/interface.h +++ b/trunk/arch/ia64/include/asm/xen/interface.h @@ -71,6 +71,7 @@ * with Xen so that we could have one ABI that works for 32 and 64 bit * guests. */ typedef unsigned long xen_pfn_t; +typedef unsigned long xen_ulong_t; /* Guest handles for primitive C types. */ __DEFINE_GUEST_HANDLE(uchar, unsigned char); __DEFINE_GUEST_HANDLE(uint, unsigned int); diff --git a/trunk/arch/x86/include/asm/xen/interface.h b/trunk/arch/x86/include/asm/xen/interface.h index 555f94d3637b..28fc6211a79a 100644 --- a/trunk/arch/x86/include/asm/xen/interface.h +++ b/trunk/arch/x86/include/asm/xen/interface.h @@ -51,6 +51,7 @@ * with Xen so that on ARM we can have one ABI that works for 32 and 64 * bit guests. */ typedef unsigned long xen_pfn_t; +typedef unsigned long xen_ulong_t; /* Guest handles for primitive C types. */ __DEFINE_GUEST_HANDLE(uchar, unsigned char); __DEFINE_GUEST_HANDLE(uint, unsigned int); diff --git a/trunk/include/xen/interface/memory.h b/trunk/include/xen/interface/memory.h index d8e33a93ea4d..b66d04ce6957 100644 --- a/trunk/include/xen/interface/memory.h +++ b/trunk/include/xen/interface/memory.h @@ -34,7 +34,7 @@ struct xen_memory_reservation { GUEST_HANDLE(xen_pfn_t) extent_start; /* Number of extents, and size/alignment of each (2^extent_order pages). */ - unsigned long nr_extents; + xen_ulong_t nr_extents; unsigned int extent_order; /* @@ -92,7 +92,7 @@ struct xen_memory_exchange { * command will be non-zero. * 5. THIS FIELD MUST BE INITIALISED TO ZERO BY THE CALLER! */ - unsigned long nr_exchanged; + xen_ulong_t nr_exchanged; }; DEFINE_GUEST_HANDLE_STRUCT(xen_memory_exchange); @@ -148,8 +148,8 @@ DEFINE_GUEST_HANDLE_STRUCT(xen_machphys_mfn_list); */ #define XENMEM_machphys_mapping 12 struct xen_machphys_mapping { - unsigned long v_start, v_end; /* Start and end virtual addresses. */ - unsigned long max_mfn; /* Maximum MFN that can be looked up. */ + xen_ulong_t v_start, v_end; /* Start and end virtual addresses. */ + xen_ulong_t max_mfn; /* Maximum MFN that can be looked up. */ }; DEFINE_GUEST_HANDLE_STRUCT(xen_machphys_mapping_t); @@ -172,7 +172,7 @@ struct xen_add_to_physmap { unsigned int space; /* Index into source mapping space. */ - unsigned long idx; + xen_ulong_t idx; /* GPFN where the source mapping page should appear. */ xen_pfn_t gpfn; @@ -189,7 +189,7 @@ struct xen_translate_gpfn_list { domid_t domid; /* Length of list. */ - unsigned long nr_gpfns; + xen_ulong_t nr_gpfns; /* List of GPFNs to translate. */ GUEST_HANDLE(ulong) gpfn_list; diff --git a/trunk/include/xen/interface/physdev.h b/trunk/include/xen/interface/physdev.h index 9ce788d8cf49..f616514f781b 100644 --- a/trunk/include/xen/interface/physdev.h +++ b/trunk/include/xen/interface/physdev.h @@ -56,7 +56,7 @@ struct physdev_eoi { #define PHYSDEVOP_pirq_eoi_gmfn_v2 28 struct physdev_pirq_eoi_gmfn { /* IN */ - unsigned long gmfn; + xen_ulong_t gmfn; }; /* diff --git a/trunk/include/xen/interface/version.h b/trunk/include/xen/interface/version.h index dd58cf5ea3e4..3030c81c09ce 100644 --- a/trunk/include/xen/interface/version.h +++ b/trunk/include/xen/interface/version.h @@ -45,7 +45,7 @@ struct xen_changeset_info { #define XENVER_platform_parameters 5 struct xen_platform_parameters { - unsigned long virt_start; + xen_ulong_t virt_start; }; #define XENVER_get_features 6