From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Castro Subject: [PATCH 01/10] Xen: Guest Handlers and Copyrights Date: Fri, 19 Aug 2011 01:03:18 +0900 Message-ID: <1313683408-32306-2-git-send-email-evil.dani@gmail.com> References: <1313683408-32306-1-git-send-email-evil.dani@gmail.com> Return-path: In-Reply-To: <1313683408-32306-1-git-send-email-evil.dani@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: Daniel Castro List-Id: xen-devel@lists.xenproject.org These are used as part of the Xen hypercall interfaces. Signed-off-by: Daniel Castro --- src/xen.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/xen.h b/src/xen.h index 0ed1e9f..f65078a 100644 --- a/src/xen.h +++ b/src/xen.h @@ -17,6 +17,8 @@ static inline int usingXen(void) { } unsigned long xen_hypercall_page; +typedef unsigned long xen_ulong_t; +typedef unsigned long xen_pfn_t; #define _hypercall0(type, name) \ ({ \ @@ -121,15 +123,68 @@ unsigned long xen_hypercall_page; * DEALINGS IN THE SOFTWARE. */ -/* xen.h */ +/****************************************************************************** + * arch-x86/xen.h + * + * Guest OS interface to x86 Xen. + * + * Copyright (c) 2004-2006, K A Fraser + */ -#define __HYPERVISOR_xen_version 17 -/* version.h */ +/* Structural guest handles introduced in 0x00030201. */ +#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \ + typedef struct { type *p; } __guest_handle_ ## name + +#define __DEFINE_XEN_GUEST_HANDLE(name, type) \ + ___DEFINE_XEN_GUEST_HANDLE(name, type); \ + ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type) +#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_raw(hnd, val) do { (hnd).p = val; } while (0) +#define set_xen_guest_handle(hnd, val) set_xen_guest_handle_raw(hnd, val) + +/****************************************************************************** + * version.h + * + * Xen version, type, and compile information. + * + * Copyright (c) 2005, Nguyen Anh Quynh + * Copyright (c) 2005, Keir Fraser + */ /* arg == xen_extraversion_t. */ #define XENVER_extraversion 1 typedef char xen_extraversion_t[16]; #define XEN_EXTRAVERSION_LEN (sizeof(xen_extraversion_t)) +/****************************************************************************** + * xen.h + * + * Guest OS interface to Xen. + * + * Copyright (c) 2004, K A Fraser + */ + +#define DOMID_SELF (0x7FF0U) + +/* Guest handles for primitive C types. */ +DEFINE_XEN_GUEST_HANDLE(char); +__DEFINE_XEN_GUEST_HANDLE(uchar, unsigned char); +DEFINE_XEN_GUEST_HANDLE(int); +__DEFINE_XEN_GUEST_HANDLE(uint, unsigned int); +DEFINE_XEN_GUEST_HANDLE(long); +__DEFINE_XEN_GUEST_HANDLE(ulong, unsigned long); +DEFINE_XEN_GUEST_HANDLE(void); + +DEFINE_XEN_GUEST_HANDLE(u64); +DEFINE_XEN_GUEST_HANDLE(xen_pfn_t); + +__DEFINE_XEN_GUEST_HANDLE(u8, u8); +__DEFINE_XEN_GUEST_HANDLE(u16, u16); +__DEFINE_XEN_GUEST_HANDLE(u32, u32); + +#define __HYPERVISOR_xen_version 17 + #endif -- 1.7.4.1