diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-09-13 17:29:53 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-09-13 17:29:53 +0100 |
commit | 987c1f6080d05228ab81b27fad606af6c51537e4 (patch) | |
tree | a796d5fb55f830c8aba50cd1b033f9fc13b5db75 | |
parent | bdc9bc5f487857f69d84e334a1bbd491c9d9b527 (diff) | |
download | xen-987c1f6080d05228ab81b27fad606af6c51537e4.tar.gz xen-987c1f6080d05228ab81b27fad606af6c51537e4.tar.bz2 xen-987c1f6080d05228ab81b27fad606af6c51537e4.zip |
xen: define raw version of set_xen_guest_handle
allows users to define more complex (e.g. type-safer) variations on
set_xen_guest_handle if they wish.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-rw-r--r-- | xen/include/public/arch-ia64.h | 3 | ||||
-rw-r--r-- | xen/include/public/arch-x86/xen-x86_32.h | 4 | ||||
-rw-r--r-- | xen/include/public/arch-x86/xen.h | 3 |
3 files changed, 6 insertions, 4 deletions
diff --git a/xen/include/public/arch-ia64.h b/xen/include/public/arch-ia64.h index 8333a78fdc..c9da5d4f82 100644 --- a/xen/include/public/arch-ia64.h +++ b/xen/include/public/arch-ia64.h @@ -49,10 +49,11 @@ #define XEN_GUEST_HANDLE(name) __guest_handle_ ## name #define XEN_GUEST_HANDLE_64(name) XEN_GUEST_HANDLE(name) #define uint64_aligned_t uint64_t -#define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) +#define set_xen_guest_handle_raw(hnd, val) do { (hnd).p = val; } while (0) #ifdef __XEN_TOOLS__ #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) #endif +#define set_xen_guest_handle(hnd, val) set_xen_guest_handle_raw(hnd, val) #ifndef __ASSEMBLY__ typedef unsigned long xen_pfn_t; diff --git a/xen/include/public/arch-x86/xen-x86_32.h b/xen/include/public/arch-x86/xen-x86_32.h index 7cb6a0179f..82a7f5b776 100644 --- a/xen/include/public/arch-x86/xen-x86_32.h +++ b/xen/include/public/arch-x86/xen-x86_32.h @@ -108,8 +108,8 @@ __guest_handle_ ## name; \ typedef struct { union { type *p; uint64_aligned_t q; }; } \ __guest_handle_64_ ## name -#undef set_xen_guest_handle -#define set_xen_guest_handle(hnd, val) \ +#undef set_xen_guest_handle_raw +#define set_xen_guest_handle_raw(hnd, val) \ do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0; \ (hnd).p = val; \ } while ( 0 ) diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h index b08ac7a898..79ec633725 100644 --- a/xen/include/public/arch-x86/xen.h +++ b/xen/include/public/arch-x86/xen.h @@ -44,10 +44,11 @@ #define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name) #define __XEN_GUEST_HANDLE(name) __guest_handle_ ## name #define XEN_GUEST_HANDLE(name) __XEN_GUEST_HANDLE(name) -#define set_xen_guest_handle(hnd, val) do { (hnd).p = val; } while (0) +#define set_xen_guest_handle_raw(hnd, val) do { (hnd).p = val; } while (0) #ifdef __XEN_TOOLS__ #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) #endif +#define set_xen_guest_handle(hnd, val) set_xen_guest_handle_raw(hnd, val) #if defined(__i386__) #include "xen-x86_32.h" |