[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3/4] xen/public: Don't expose XEN_GUEST_HANDLE_PARAM outside of the hypervisor
A XEN_GUEST_HANDLE_PARAM is used to represent a guest pointer passed as an hypercall register. It will always be the size of a native register. This is only used in Xen for type-safety, the guest will directly pass a pointer in the hypercall parameter. Note that for ARM we only hide XEN_GUEST_HANDLE_PARAM. The type __guest_handle_param_* is still exposed because it would result to duplicating the macro to create the type. I find this solution more difficult to read. Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> --- Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Keir Fraser <keir@xxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> --- xen/include/public/arch-arm.h | 4 ++++ xen/include/public/arch-x86/xen.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h index 477254f..b278bc0 100644 --- a/xen/include/public/arch-arm.h +++ b/xen/include/public/arch-arm.h @@ -188,7 +188,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) + +#ifdef __XEN__ /* Internal only, should never be exposed to the guest */ #define XEN_GUEST_HANDLE_PARAM(name) __guest_handle_param_ ## name +#endif + #define set_xen_guest_handle_raw(hnd, val) \ do { \ typeof(&(hnd)) _sxghr_tmp = &(hnd); \ diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h index 5187560..8036b3c 100644 --- a/xen/include/public/arch-x86/xen.h +++ b/xen/include/public/arch-x86/xen.h @@ -52,7 +52,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) + +#ifdef __XEN__ /* Internal only, should never be exposed to the guest */ #define XEN_GUEST_HANDLE_PARAM(name) XEN_GUEST_HANDLE(name) +#endif + #define set_xen_guest_handle_raw(hnd, val) do { (hnd).p = val; } while (0) #define set_xen_guest_handle(hnd, val) set_xen_guest_handle_raw(hnd, val) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |