[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] Sync Xen public headers with xen-unstable tip.
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1206983261 -3600 # Node ID 06ffa3eb5e3ff1cf517c15b40a8cd757bc827950 # Parent 4018c0da336008e5dfb1163bddbdfbc328c8f5c4 Sync Xen public headers with xen-unstable tip. Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> --- include/xen/interface/arch-ia64.h | 6 ++++ include/xen/interface/arch-ia64/sioemu.h | 42 ++++++++++++++++++++++++++++ include/xen/interface/arch-powerpc.h | 2 + include/xen/interface/arch-x86/hvm/save.h | 3 -- include/xen/interface/arch-x86/xen-x86_64.h | 2 - include/xen/interface/arch-x86/xen.h | 2 + include/xen/interface/domctl.h | 19 ++++++++++++ include/xen/interface/hvm/ioreq.h | 10 +----- include/xen/interface/hvm/params.h | 5 ++- include/xen/interface/hvm/save.h | 4 ++ include/xen/interface/io/ring.h | 24 ++++++++++------ include/xen/interface/io/xs_wire.h | 3 +- include/xen/interface/kexec.h | 8 ++--- include/xen/interface/physdev.h | 6 +++- include/xen/interface/trace.h | 8 +++++ include/xen/interface/xen-compat.h | 9 ------ include/xen/interface/xen.h | 6 +++- 17 files changed, 124 insertions(+), 35 deletions(-) diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/arch-ia64.h --- a/include/xen/interface/arch-ia64.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/arch-ia64.h Mon Mar 31 18:07:41 2008 +0100 @@ -23,8 +23,14 @@ * */ +#include "xen.h" + #ifndef __HYPERVISOR_IF_IA64_H__ #define __HYPERVISOR_IF_IA64_H__ + +#if !defined(__GNUC__) || defined(__STRICT_ANSI__) +#error "Anonymous structs/unions are a GNU extension." +#endif /* Structural guest handles introduced in 0x00030201. */ #if __XEN_INTERFACE_VERSION__ >= 0x00030201 diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/arch-ia64/sioemu.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/xen/interface/arch-ia64/sioemu.h Mon Mar 31 18:07:41 2008 +0100 @@ -0,0 +1,42 @@ +/****************************************************************************** + * sioemu.h + * + * Copyright (c) 2008 Tristan Gingold <tgingold@xxxxxxx> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#ifndef __XEN_PUBLIC_IA64_SIOEMU_H__ +#define __XEN_PUBLIC_IA64_SIOEMU_H__ + +/* Defines the callback entry point. r8=ip, r9=data. + Must be called per-vcpu. */ +#define SIOEMU_HYPERCALL_SET_CALLBACK 0x01 + +/* Finish sioemu fw initialization and start firmware. r8=ip. */ +#define SIOEMU_HYPERCALL_START_FW 0x02 + +/* Add IO pages in physmap. */ +#define SIOEMU_HYPERCALL_ADD_IO_PHYSMAP 0x03 + +/* Get wallclock time. */ +#define SIOEMU_HYPERCALL_GET_TIME 0x04 + +/* Return from callback. r16=0. + Unmask vcpu events. */ +#define SIOEMU_HYPERPRIVOP_CALLBACK_RETURN 0x01 + +#endif /* __XEN_PUBLIC_IA64_SIOEMU_H__ */ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/arch-powerpc.h --- a/include/xen/interface/arch-powerpc.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/arch-powerpc.h Mon Mar 31 18:07:41 2008 +0100 @@ -21,6 +21,8 @@ * * Authors: Hollis Blanchard <hollisb@xxxxxxxxxx> */ + +#include "xen.h" #ifndef __XEN_PUBLIC_ARCH_PPC_64_H__ #define __XEN_PUBLIC_ARCH_PPC_64_H__ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/arch-x86/hvm/save.h --- a/include/xen/interface/arch-x86/hvm/save.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/arch-x86/hvm/save.h Mon Mar 31 18:07:41 2008 +0100 @@ -271,8 +271,7 @@ DECLARE_HVM_SAVE_TYPE(LAPIC, 5, struct h DECLARE_HVM_SAVE_TYPE(LAPIC, 5, struct hvm_hw_lapic); struct hvm_hw_lapic_regs { - /* A 4k page of register state */ - uint8_t data[0x400]; + uint8_t data[1024]; }; DECLARE_HVM_SAVE_TYPE(LAPIC_REGS, 6, struct hvm_hw_lapic_regs); diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/arch-x86/xen-x86_64.h --- a/include/xen/interface/arch-x86/xen-x86_64.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/arch-x86/xen-x86_64.h Mon Mar 31 18:07:41 2008 +0100 @@ -140,7 +140,7 @@ struct iret_context { /* Bottom of iret stack frame. */ }; -#ifdef __GNUC__ +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) /* Anonymous union includes both 32- and 64-bit names (e.g., eax/rax). */ #define __DECL_REG(name) union { \ uint64_t r ## name, e ## name; \ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/arch-x86/xen.h --- a/include/xen/interface/arch-x86/xen.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/arch-x86/xen.h Mon Mar 31 18:07:41 2008 +0100 @@ -23,6 +23,8 @@ * * Copyright (c) 2004-2006, K A Fraser */ + +#include "../xen.h" #ifndef __XEN_PUBLIC_ARCH_X86_XEN_H__ #define __XEN_PUBLIC_ARCH_X86_XEN_H__ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/domctl.h --- a/include/xen/interface/domctl.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/domctl.h Mon Mar 31 18:07:41 2008 +0100 @@ -53,6 +53,9 @@ struct xen_domctl_createdomain { /* Is this an HVM guest (as opposed to a PV guest)? */ #define _XEN_DOMCTL_CDF_hvm_guest 0 #define XEN_DOMCTL_CDF_hvm_guest (1U<<_XEN_DOMCTL_CDF_hvm_guest) + /* Use hardware-assisted paging if available? */ +#define _XEN_DOMCTL_CDF_hap 1 +#define XEN_DOMCTL_CDF_hap (1U<<_XEN_DOMCTL_CDF_hap) uint32_t flags; }; typedef struct xen_domctl_createdomain xen_domctl_createdomain_t; @@ -373,6 +376,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_hyper #define XEN_DOMAINSETUP_hvm_guest (1UL<<_XEN_DOMAINSETUP_hvm_guest) #define _XEN_DOMAINSETUP_query 1 /* Get parameters (for save) */ #define XEN_DOMAINSETUP_query (1UL<<_XEN_DOMAINSETUP_query) +#define _XEN_DOMAINSETUP_sioemu_guest 2 +#define XEN_DOMAINSETUP_sioemu_guest (1UL<<_XEN_DOMAINSETUP_sioemu_guest) typedef struct xen_domctl_arch_setup { uint64_aligned_t flags; /* XEN_DOMAINSETUP_* */ #ifdef __ia64__ @@ -436,6 +441,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_sendt /* Assign PCI device to HVM guest. Sets up IOMMU structures. */ #define XEN_DOMCTL_assign_device 37 #define XEN_DOMCTL_test_assign_device 45 +#define XEN_DOMCTL_deassign_device 47 struct xen_domctl_assign_device { uint32_t machine_bdf; /* machine PCI ID of assigned device */ }; @@ -445,6 +451,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_assig /* Pass-through interrupts: bind real irq -> hvm devfn. */ #define XEN_DOMCTL_bind_pt_irq 38 +#define XEN_DOMCTL_unbind_pt_irq 48 typedef enum pt_irq_type_e { PT_IRQ_TYPE_PCI, PT_IRQ_TYPE_ISA @@ -553,6 +560,17 @@ struct xen_domctl_set_opt_feature { }; typedef struct xen_domctl_set_opt_feature xen_domctl_set_opt_feature_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_set_opt_feature_t); + +/* + * Set the target domain for a domain + */ +#define XEN_DOMCTL_set_target 46 +struct xen_domctl_set_target { + domid_t target; +}; +typedef struct xen_domctl_set_target xen_domctl_set_target_t; +DEFINE_XEN_GUEST_HANDLE(xen_domctl_set_target_t); + struct xen_domctl { uint32_t cmd; @@ -590,6 +608,7 @@ struct xen_domctl { struct xen_domctl_pin_mem_cacheattr pin_mem_cacheattr; struct xen_domctl_ext_vcpucontext ext_vcpucontext; struct xen_domctl_set_opt_feature set_opt_feature; + struct xen_domctl_set_target set_target; uint8_t pad[128]; } u; }; diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/hvm/ioreq.h --- a/include/xen/interface/hvm/ioreq.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/hvm/ioreq.h Mon Mar 31 18:07:41 2008 +0100 @@ -34,14 +34,8 @@ #define IOREQ_TYPE_PIO 0 /* pio */ #define IOREQ_TYPE_COPY 1 /* mmio ops */ -#define IOREQ_TYPE_AND 2 -#define IOREQ_TYPE_OR 3 -#define IOREQ_TYPE_XOR 4 -#define IOREQ_TYPE_XCHG 5 -#define IOREQ_TYPE_ADD 6 #define IOREQ_TYPE_TIMEOFFSET 7 #define IOREQ_TYPE_INVALIDATE 8 /* mapcache */ -#define IOREQ_TYPE_SUB 9 /* * VMExit dispatcher should cooperate with instruction decoder to @@ -114,11 +108,11 @@ struct buffered_piopage { }; #endif /* defined(__ia64__) */ -#if defined(__i386__) || defined(__x86_64__) #define ACPI_PM1A_EVT_BLK_ADDRESS 0x0000000000001f40 #define ACPI_PM1A_CNT_BLK_ADDRESS (ACPI_PM1A_EVT_BLK_ADDRESS + 0x04) #define ACPI_PM_TMR_BLK_ADDRESS (ACPI_PM1A_EVT_BLK_ADDRESS + 0x08) -#endif /* defined(__i386__) || defined(__x86_64__) */ +#define ACPI_GPE0_BLK_ADDRESS (ACPI_PM_TMR_BLK_ADDRESS + 0x20) +#define ACPI_GPE0_BLK_LEN 0x08 #endif /* _IOREQ_H_ */ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/hvm/params.h --- a/include/xen/interface/hvm/params.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/hvm/params.h Mon Mar 31 18:07:41 2008 +0100 @@ -81,6 +81,9 @@ #define HVMPTM_no_missed_ticks_pending 2 #define HVMPTM_one_missed_tick_pending 3 -#define HVM_NR_PARAMS 11 +/* Boolean: Enable virtual HPET (high-precision event timer)? (x86-only) */ +#define HVM_PARAM_HPET_ENABLED 11 + +#define HVM_NR_PARAMS 12 #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/hvm/save.h --- a/include/xen/interface/hvm/save.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/hvm/save.h Mon Mar 31 18:07:41 2008 +0100 @@ -39,6 +39,10 @@ * Internal mechanisms should be kept in Xen-private headers. */ +#if !defined(__GNUC__) || defined(__STRICT_ANSI__) +#error "Anonymous structs/unions are a GNU extension." +#endif + /* * Each entry is preceded by a descriptor giving its type and length */ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/io/ring.h --- a/include/xen/interface/io/ring.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/io/ring.h Mon Mar 31 18:07:41 2008 +0100 @@ -26,6 +26,14 @@ #ifndef __XEN_PUBLIC_IO_RING_H__ #define __XEN_PUBLIC_IO_RING_H__ + +#include "../xen-compat.h" + +#if __XEN_INTERFACE_VERSION__ < 0x00030208 +#define xen_mb() mb() +#define xen_rmb() rmb() +#define xen_wmb() wmb() +#endif typedef unsigned int RING_IDX; @@ -211,12 +219,12 @@ typedef struct __name##_back_ring __name (((_cons) - (_r)->rsp_prod_pvt) >= RING_SIZE(_r)) #define RING_PUSH_REQUESTS(_r) do { \ - wmb(); /* back sees requests /before/ updated producer index */ \ + xen_wmb(); /* back sees requests /before/ updated producer index */ \ (_r)->sring->req_prod = (_r)->req_prod_pvt; \ } while (0) #define RING_PUSH_RESPONSES(_r) do { \ - wmb(); /* front sees responses /before/ updated producer index */ \ + xen_wmb(); /* front sees resps /before/ updated producer index */ \ (_r)->sring->rsp_prod = (_r)->rsp_prod_pvt; \ } while (0) @@ -253,9 +261,9 @@ typedef struct __name##_back_ring __name #define RING_PUSH_REQUESTS_AND_CHECK_NOTIFY(_r, _notify) do { \ RING_IDX __old = (_r)->sring->req_prod; \ RING_IDX __new = (_r)->req_prod_pvt; \ - wmb(); /* back sees requests /before/ updated producer index */ \ + xen_wmb(); /* back sees requests /before/ updated producer index */ \ (_r)->sring->req_prod = __new; \ - mb(); /* back sees new requests /before/ we check req_event */ \ + xen_mb(); /* back sees new requests /before/ we check req_event */ \ (_notify) = ((RING_IDX)(__new - (_r)->sring->req_event) < \ (RING_IDX)(__new - __old)); \ } while (0) @@ -263,9 +271,9 @@ typedef struct __name##_back_ring __name #define RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(_r, _notify) do { \ RING_IDX __old = (_r)->sring->rsp_prod; \ RING_IDX __new = (_r)->rsp_prod_pvt; \ - wmb(); /* front sees responses /before/ updated producer index */ \ + xen_wmb(); /* front sees resps /before/ updated producer index */ \ (_r)->sring->rsp_prod = __new; \ - mb(); /* front sees new responses /before/ we check rsp_event */ \ + xen_mb(); /* front sees new resps /before/ we check rsp_event */ \ (_notify) = ((RING_IDX)(__new - (_r)->sring->rsp_event) < \ (RING_IDX)(__new - __old)); \ } while (0) @@ -274,7 +282,7 @@ typedef struct __name##_back_ring __name (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \ if (_work_to_do) break; \ (_r)->sring->req_event = (_r)->req_cons + 1; \ - mb(); \ + xen_mb(); \ (_work_to_do) = RING_HAS_UNCONSUMED_REQUESTS(_r); \ } while (0) @@ -282,7 +290,7 @@ typedef struct __name##_back_ring __name (_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \ if (_work_to_do) break; \ (_r)->sring->rsp_event = (_r)->rsp_cons + 1; \ - mb(); \ + xen_mb(); \ (_work_to_do) = RING_HAS_UNCONSUMED_RESPONSES(_r); \ } while (0) diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/io/xs_wire.h --- a/include/xen/interface/io/xs_wire.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/io/xs_wire.h Mon Mar 31 18:07:41 2008 +0100 @@ -46,7 +46,8 @@ enum xsd_sockmsg_type XS_WATCH_EVENT, XS_ERROR, XS_IS_DOMAIN_INTRODUCED, - XS_RESUME + XS_RESUME, + XS_SET_TARGET }; #define XS_WRITE_NONE "NONE" diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/kexec.h --- a/include/xen/interface/kexec.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/kexec.h Mon Mar 31 18:07:41 2008 +0100 @@ -130,10 +130,10 @@ typedef struct xen_kexec_load { #define KEXEC_RANGE_MA_XEN 1 /* machine address and size of Xen itself */ #define KEXEC_RANGE_MA_CPU 2 /* machine address and size of a CPU note */ #define KEXEC_RANGE_MA_XENHEAP 3 /* machine address and size of xenheap - * Note that although this is adjacent - * to Xen it exists in a separate EFI - * region on ia64, and thus needs to be - * inserted into iomem_machine separately */ + * Note that although this is adjacent + * to Xen it exists in a separate EFI + * region on ia64, and thus needs to be + * inserted into iomem_machine separately */ #define KEXEC_RANGE_MA_BOOT_PARAM 4 /* machine address and size of * the ia64_boot_param */ #define KEXEC_RANGE_MA_EFI_MEMMAP 5 /* machine address and size of diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/physdev.h --- a/include/xen/interface/physdev.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/physdev.h Mon Mar 31 18:07:41 2008 +0100 @@ -81,7 +81,11 @@ DEFINE_XEN_GUEST_HANDLE(physdev_set_iopl #define PHYSDEVOP_set_iobitmap 7 struct physdev_set_iobitmap { /* IN */ - XEN_GUEST_HANDLE_00030205(uint8) bitmap; +#if __XEN_INTERFACE_VERSION__ >= 0x00030205 + XEN_GUEST_HANDLE(uint8) bitmap; +#else + uint8_t *bitmap; +#endif uint32_t nr_ports; }; typedef struct physdev_set_iobitmap physdev_set_iobitmap_t; diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/trace.h --- a/include/xen/interface/trace.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/trace.h Mon Mar 31 18:07:41 2008 +0100 @@ -141,6 +141,14 @@ struct t_rec { * field, indexes into an array of struct t_rec's. */ struct t_buf { + /* Assume the data buffer size is X. X is generally not a power of 2. + * CONS and PROD are incremented modulo (2*X): + * 0 <= cons < 2*X + * 0 <= prod < 2*X + * This is done because addition modulo X breaks at 2^32 when X is not a + * power of 2: + * (((2^32 - 1) % X) + 1) % X != (2^32) % X + */ uint32_t cons; /* Offset of next item to be consumed by control tools. */ uint32_t prod; /* Offset of next item to be produced by Xen. */ /* Records follow immediately after the meta-data header. */ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/xen-compat.h --- a/include/xen/interface/xen-compat.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/xen-compat.h Mon Mar 31 18:07:41 2008 +0100 @@ -27,7 +27,7 @@ #ifndef __XEN_PUBLIC_XEN_COMPAT_H__ #define __XEN_PUBLIC_XEN_COMPAT_H__ -#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030207 +#define __XEN_LATEST_INTERFACE_VERSION__ 0x00030208 #if defined(__XEN__) || defined(__XEN_TOOLS__) /* Xen is built with matching headers and implements the latest interface. */ @@ -41,11 +41,4 @@ #error "These header files do not support the requested interface version." #endif -/* Fields defined as a Xen guest handle since 0x00030205. */ -#if __XEN_INTERFACE_VERSION__ >= 0x00030205 -#define XEN_GUEST_HANDLE_00030205(type) XEN_GUEST_HANDLE(type) -#else -#define XEN_GUEST_HANDLE_00030205(type) type * -#endif - #endif /* __XEN_PUBLIC_XEN_COMPAT_H__ */ diff -r 4018c0da3360 -r 06ffa3eb5e3f include/xen/interface/xen.h --- a/include/xen/interface/xen.h Mon Mar 31 11:03:07 2008 +0100 +++ b/include/xen/interface/xen.h Mon Mar 31 18:07:41 2008 +0100 @@ -263,7 +263,11 @@ struct mmuext_op { /* SET_LDT */ unsigned int nr_ents; /* TLB_FLUSH_MULTI, INVLPG_MULTI */ - XEN_GUEST_HANDLE_00030205(void) vcpumask; +#if __XEN_INTERFACE_VERSION__ >= 0x00030205 + XEN_GUEST_HANDLE(void) vcpumask; +#else + void *vcpumask; +#endif } arg2; }; typedef struct mmuext_op mmuext_op_t; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |