[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] sync Xen public headers
# HG changeset patch # User Jan Beulich # Date 1363104595 -3600 # Node ID 870ad354925b6e9ace2637a51a5c8b2dd78a9d7e # Parent 805186ebb4ab418f1ff968a634a59d7658ba126c sync Xen public headers (once again without dropping ia64 bits) --- diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/arch-arm.h --- a/include/xen/interface/arch-arm.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/arch-arm.h Tue Mar 12 17:09:55 2013 +0100 @@ -86,52 +86,80 @@ #endif #define set_xen_guest_handle(hnd, val) set_xen_guest_handle_raw(hnd, val) -struct cpu_user_regs +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +/* Anonymous union includes both 32- and 64-bit names (e.g., r0/x0). */ +# define __DECL_REG(n64, n32) union { \ + uint64_t n64; \ + uint32_t n32; \ + } +#else +/* Non-gcc sources must always use the proper 64-bit name (e.g., x0). */ +#define __DECL_REG(n64, n32) uint64_t n64 +#endif + +struct vcpu_guest_core_regs { - uint32_t r0; - uint32_t r1; - uint32_t r2; - uint32_t r3; - uint32_t r4; - uint32_t r5; - uint32_t r6; - uint32_t r7; - uint32_t r8; - uint32_t r9; - uint32_t r10; + /* Aarch64 Aarch32 */ + __DECL_REG(x0, r0_usr); + __DECL_REG(x1, r1_usr); + __DECL_REG(x2, r2_usr); + __DECL_REG(x3, r3_usr); + __DECL_REG(x4, r4_usr); + __DECL_REG(x5, r5_usr); + __DECL_REG(x6, r6_usr); + __DECL_REG(x7, r7_usr); + __DECL_REG(x8, r8_usr); + __DECL_REG(x9, r9_usr); + __DECL_REG(x10, r10_usr); + __DECL_REG(x11, r11_usr); + __DECL_REG(x12, r12_usr); + + __DECL_REG(x13, sp_usr); + __DECL_REG(x14, lr_usr); + + __DECL_REG(x15, __unused_sp_hyp); + + __DECL_REG(x16, lr_irq); + __DECL_REG(x17, sp_irq); + + __DECL_REG(x18, lr_svc); + __DECL_REG(x19, sp_svc); + + __DECL_REG(x20, lr_abt); + __DECL_REG(x21, sp_abt); + + __DECL_REG(x22, lr_und); + __DECL_REG(x23, sp_und); + + __DECL_REG(x24, r8_fiq); + __DECL_REG(x25, r9_fiq); + __DECL_REG(x26, r10_fiq); + __DECL_REG(x27, r11_fiq); + __DECL_REG(x28, r12_fiq); + + __DECL_REG(x29, sp_fiq); + __DECL_REG(x30, lr_fiq); + + /* Return address and mode */ + __DECL_REG(pc64, pc32); /* ELR_EL2 */ + uint32_t cpsr; /* SPSR_EL2 */ + union { - uint32_t r11; - uint32_t fp; - }; - uint32_t r12; - - uint32_t sp; /* r13 - SP: Valid for Hyp. frames only, o/w banked (see below) */ - - /* r14 - LR: is the same physical register as LR_usr */ - union { - uint32_t lr; /* r14 - LR: Valid for Hyp. Same physical register as lr_usr. */ - uint32_t lr_usr; + uint32_t spsr_el1; /* AArch64 */ + uint32_t spsr_svc; /* AArch32 */ }; - uint32_t pc; /* Return IP */ - uint32_t cpsr; /* Return mode */ - uint32_t pad0; /* Doubleword-align the kernel half of the frame */ + /* AArch32 guests only */ + uint32_t spsr_fiq, spsr_irq, spsr_und, spsr_abt; - /* Outer guest frame only from here on... */ + /* AArch64 guests only */ + uint64_t sp_el0; + uint64_t sp_el1, elr_el1; +}; +typedef struct vcpu_guest_core_regs vcpu_guest_core_regs_t; +DEFINE_XEN_GUEST_HANDLE(vcpu_guest_core_regs_t); - uint32_t r8_fiq, r9_fiq, r10_fiq, r11_fiq, r12_fiq; - - uint32_t sp_usr; /* LR_usr is the same register as LR, see above */ - - uint32_t sp_svc, sp_abt, sp_und, sp_irq, sp_fiq; - uint32_t lr_svc, lr_abt, lr_und, lr_irq, lr_fiq; - - uint32_t spsr_svc, spsr_abt, spsr_und, spsr_irq, spsr_fiq; - - uint32_t pad1; /* Doubleword-align the user half of the frame */ -}; -typedef struct cpu_user_regs cpu_user_regs_t; -DEFINE_XEN_GUEST_HANDLE(cpu_user_regs_t); +#undef __DECL_REG typedef uint64_t xen_pfn_t; #define PRI_xen_pfn PRIx64 @@ -148,10 +176,10 @@ struct vcpu_guest_context { #define VGCF_online (1<<_VGCF_online) uint32_t flags; /* VGCF_* */ - struct cpu_user_regs user_regs; /* User-level CPU registers */ + struct vcpu_guest_core_regs user_regs; /* Core CPU registers */ - uint32_t sctlr; - uint32_t ttbr0, ttbr1, ttbcr; + uint32_t sctlr, ttbcr; + uint64_t ttbr0, ttbr1; }; typedef struct vcpu_guest_context vcpu_guest_context_t; DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t); @@ -169,6 +197,8 @@ typedef uint64_t xen_callback_t; /* 0-4: Mode */ #define PSR_MODE_MASK 0x1f + +/* 32 bit modes */ #define PSR_MODE_USR 0x10 #define PSR_MODE_FIQ 0x11 #define PSR_MODE_IRQ 0x12 @@ -179,6 +209,18 @@ typedef uint64_t xen_callback_t; #define PSR_MODE_UND 0x1b #define PSR_MODE_SYS 0x1f +/* 64 bit modes */ +#ifdef CONFIG_ARM_64 +#define PSR_MODE_BIT 0x10 /* Set iff AArch32 */ +#define PSR_MODE_EL3h 0x0d +#define PSR_MODE_EL3t 0x0c +#define PSR_MODE_EL2h 0x09 +#define PSR_MODE_EL2t 0x08 +#define PSR_MODE_EL1h 0x05 +#define PSR_MODE_EL1t 0x04 +#define PSR_MODE_EL0t 0x00 +#endif + #define PSR_THUMB (1<<5) /* Thumb Mode enable */ #define PSR_FIQ_MASK (1<<6) /* Fast Interrupt mask */ #define PSR_IRQ_MASK (1<<7) /* Interrupt mask */ @@ -191,7 +233,7 @@ typedef uint64_t xen_callback_t; /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/arch-arm/hvm/save.h --- a/include/xen/interface/arch-arm/hvm/save.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/arch-arm/hvm/save.h Tue Mar 12 17:09:55 2013 +0100 @@ -31,7 +31,7 @@ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/arch-x86/hvm/save.h --- a/include/xen/interface/arch-x86/hvm/save.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/arch-x86/hvm/save.h Tue Mar 12 17:09:55 2013 +0100 @@ -269,15 +269,18 @@ struct hvm_hw_cpu_compat { }; static inline int _hvm_hw_fix_cpu(void *h) { - struct hvm_hw_cpu *new=h; - struct hvm_hw_cpu_compat *old=h; + + union hvm_hw_cpu_union { + struct hvm_hw_cpu nat; + struct hvm_hw_cpu_compat cmp; + } *ucpu = (union hvm_hw_cpu_union *)h; /* If we copy from the end backwards, we should * be able to do the modification in-place */ - new->error_code=old->error_code; - new->pending_event=old->pending_event; - new->tsc=old->tsc; - new->msr_tsc_aux=0; + ucpu->nat.error_code = ucpu->cmp.error_code; + ucpu->nat.pending_event = ucpu->cmp.pending_event; + ucpu->nat.tsc = ucpu->cmp.tsc; + ucpu->nat.msr_tsc_aux = 0; return 0; } diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/arch-x86/xen-x86_32.h --- a/include/xen/interface/arch-x86/xen-x86_32.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/arch-x86/xen-x86_32.h Tue Mar 12 17:09:55 2013 +0100 @@ -163,7 +163,7 @@ typedef struct xen_callback xen_callback /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/arch-x86/xen-x86_64.h --- a/include/xen/interface/arch-x86/xen-x86_64.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/arch-x86/xen-x86_64.h Tue Mar 12 17:09:55 2013 +0100 @@ -194,7 +194,7 @@ typedef unsigned long xen_callback_t; /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/arch-x86/xen.h --- a/include/xen/interface/arch-x86/xen.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/arch-x86/xen.h Tue Mar 12 17:09:55 2013 +0100 @@ -252,7 +252,7 @@ typedef struct arch_shared_info arch_sha /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/callback.h --- a/include/xen/interface/callback.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/callback.h Tue Mar 12 17:09:55 2013 +0100 @@ -113,7 +113,7 @@ DEFINE_XEN_GUEST_HANDLE(callback_unregis /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/dom0_ops.h --- a/include/xen/interface/dom0_ops.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/dom0_ops.h Tue Mar 12 17:09:55 2013 +0100 @@ -112,7 +112,7 @@ DEFINE_XEN_GUEST_HANDLE(dom0_op_t); /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/domctl.h --- a/include/xen/interface/domctl.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/domctl.h Tue Mar 12 17:09:55 2013 +0100 @@ -36,7 +36,7 @@ #include "grant_table.h" #include "hvm/save.h" -#define XEN_DOMCTL_INTERFACE_VERSION 0x00000008 +#define XEN_DOMCTL_INTERFACE_VERSION 0x00000009 /* * NB. xen_domctl.domain is an IN/OUT parameter for this operation. @@ -95,6 +95,7 @@ struct xen_domctl_getdomaininfo { uint32_t flags; /* XEN_DOMINF_* */ uint64_aligned_t tot_pages; uint64_aligned_t max_pages; + uint64_aligned_t outstanding_pages; uint64_aligned_t shr_pages; uint64_aligned_t paged_pages; uint64_aligned_t shared_info_frame; /* GMFN of shared_info struct */ @@ -999,7 +1000,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_t); /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/elfnote.h --- a/include/xen/interface/elfnote.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/elfnote.h Tue Mar 12 17:09:55 2013 +0100 @@ -255,7 +255,7 @@ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/event_channel.h --- a/include/xen/interface/event_channel.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/event_channel.h Tue Mar 12 17:09:55 2013 +0100 @@ -286,7 +286,7 @@ DEFINE_XEN_GUEST_HANDLE(evtchn_op_t); /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/features.h --- a/include/xen/interface/features.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/features.h Tue Mar 12 17:09:55 2013 +0100 @@ -87,7 +87,7 @@ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/gcov.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/xen/interface/gcov.h Tue Mar 12 17:09:55 2013 +0100 @@ -0,0 +1,115 @@ +/****************************************************************************** + * gcov.h + * + * Coverage structures exported by Xen. + * Structure is different from Gcc one. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Copyright (c) 2013, Citrix Systems R&D Ltd. + */ + +#ifndef __XEN_PUBLIC_GCOV_H__ +#define __XEN_PUBLIC_GCOV_H__ __XEN_PUBLIC_GCOV_H__ + +#define XENCOV_COUNTERS 5 +#define XENCOV_TAG_BASE 0x58544300u +#define XENCOV_TAG_FILE (XENCOV_TAG_BASE+0x46u) +#define XENCOV_TAG_FUNC (XENCOV_TAG_BASE+0x66u) +#define XENCOV_TAG_COUNTER(n) (XENCOV_TAG_BASE+0x30u+((n)&0xfu)) +#define XENCOV_TAG_END (XENCOV_TAG_BASE+0x2eu) +#define XENCOV_IS_TAG_COUNTER(n) \ + ((n) >= XENCOV_TAG_COUNTER(0) && (n) < XENCOV_TAG_COUNTER(XENCOV_COUNTERS)) +#define XENCOV_COUNTER_NUM(n) ((n)-XENCOV_TAG_COUNTER(0)) + +/* + * The main structure for the blob is + * BLOB := FILE.. END + * FILE := TAG_FILE VERSION STAMP FILENAME COUNTERS FUNCTIONS + * FILENAME := LEN characters + * characters are padded to 32 bit + * LEN := 32 bit value + * COUNTERS := TAG_COUNTER(n) NUM COUNTER.. + * NUM := 32 bit valie + * COUNTER := 64 bit value + * FUNCTIONS := TAG_FUNC NUM FUNCTION.. + * FUNCTION := IDENT CHECKSUM NUM_COUNTERS + * + * All tagged structures are aligned to 8 bytes + */ + +/** + * File information + * Prefixed with XENCOV_TAG_FILE and a string with filename + * Aligned to 8 bytes + */ +struct xencov_file +{ + uint32_t tag; /* XENCOV_TAG_FILE */ + uint32_t version; + uint32_t stamp; + uint32_t fn_len; + char filename[1]; +}; + + +/** + * Counters information + * Prefixed with XENCOV_TAG_COUNTER(n) where n is 0..(XENCOV_COUNTERS-1) + * Aligned to 8 bytes + */ +struct xencov_counter +{ + uint32_t tag; /* XENCOV_TAG_COUNTER(n) */ + uint32_t num; + uint64_t values[1]; +}; + +/** + * Information for each function + * Number of counter is equal to the number of counter structures got before + */ +struct xencov_function +{ + uint32_t ident; + uint32_t checksum; + uint32_t num_counters[1]; +}; + +/** + * Information for all functions + * Aligned to 8 bytes + */ +struct xencov_functions +{ + uint32_t tag; /* XENCOV_TAG_FUNC */ + uint32_t num; + struct xencov_function xencov_function[1]; +}; + +/** + * Terminator + */ +struct xencov_end +{ + uint32_t tag; /* XENCOV_TAG_END */ +}; + +#endif /* __XEN_PUBLIC_GCOV_H__ */ + diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/grant_table.h --- a/include/xen/interface/grant_table.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/grant_table.h Tue Mar 12 17:09:55 2013 +0100 @@ -656,7 +656,7 @@ DEFINE_XEN_GUEST_HANDLE(gnttab_swap_gran /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/hvm/hvm_xs_strings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/include/xen/interface/hvm/hvm_xs_strings.h Tue Mar 12 17:09:55 2013 +0100 @@ -0,0 +1,79 @@ +/****************************************************************************** + * hvm/hvm_xs_strings.h + * + * HVM xenstore strings used in HVMLOADER. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef __XEN_PUBLIC_HVM_HVM_XS_STRINGS_H__ +#define __XEN_PUBLIC_HVM_HVM_XS_STRINGS_H__ + +#define HVM_XS_HVMLOADER "hvmloader" +#define HVM_XS_BIOS "hvmloader/bios" +#define HVM_XS_GENERATION_ID_ADDRESS "hvmloader/generation-id-address" + +/* The following values allow additional ACPI tables to be added to the + * virtual ACPI BIOS that hvmloader constructs. The values specify the guest + * physical address and length of a block of ACPI tables to add. The format of + * the block is simply concatenated raw tables (which specify their own length + * in the ACPI header). + */ +#define HVM_XS_ACPI_PT_ADDRESS "hvmloader/acpi/address" +#define HVM_XS_ACPI_PT_LENGTH "hvmloader/acpi/length" + +/* Any number of SMBIOS types can be passed through to an HVM guest using + * the following xenstore values. The values specify the guest physical + * address and length of a block of SMBIOS structures for hvmloader to use. + * The block is formatted in the following way: + * + * <length><struct><length><struct>... + * + * Each length separator is a 32b integer indicating the length of the next + * SMBIOS structure. For DMTF defined types (0 - 121), the passed in struct + * will replace the default structure in hvmloader. In addition, any + * OEM/vendortypes (128 - 255) will all be added. + */ +#define HVM_XS_SMBIOS_PT_ADDRESS "hvmloader/smbios/address" +#define HVM_XS_SMBIOS_PT_LENGTH "hvmloader/smbios/length" + +/* Set to 1 to enable SMBIOS default portable battery (type 22) values. */ +#define HVM_XS_SMBIOS_DEFAULT_BATTERY "hvmloader/smbios/default_battery" + +/* The following xenstore values are used to override some of the default + * string values in the SMBIOS table constructed in hvmloader. + */ +#define HVM_XS_BIOS_STRINGS "bios-strings" +#define HVM_XS_BIOS_VENDOR "bios-strings/bios-vendor" +#define HVM_XS_BIOS_VERSION "bios-strings/bios-version" +#define HVM_XS_SYSTEM_MANUFACTURER "bios-strings/system-manufacturer" +#define HVM_XS_SYSTEM_PRODUCT_NAME "bios-strings/system-product-name" +#define HVM_XS_SYSTEM_VERSION "bios-strings/system-version" +#define HVM_XS_SYSTEM_SERIAL_NUMBER "bios-strings/system-serial-number" +#define HVM_XS_ENCLOSURE_MANUFACTURER "bios-strings/enclosure-manufacturer" +#define HVM_XS_ENCLOSURE_SERIAL_NUMBER "bios-strings/enclosure-serial-number" +#define HVM_XS_BATTERY_MANUFACTURER "bios-strings/battery-manufacturer" +#define HVM_XS_BATTERY_DEVICE_NAME "bios-strings/battery-device-name" + +/* 1 to 99 OEM strings can be set in xenstore using values of the form + * below. These strings will be loaded into the SMBIOS type 11 structure. + */ +#define HVM_XS_OEM_STRINGS "bios-strings/oem-%02d" + +#endif /* __XEN_PUBLIC_HVM_HVM_XS_STRINGS_H__ */ diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/hvm/ioreq.h --- a/include/xen/interface/hvm/ioreq.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/hvm/ioreq.h Tue Mar 12 17:09:55 2013 +0100 @@ -132,7 +132,7 @@ struct buffered_piopage { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/hvm/params.h --- a/include/xen/interface/hvm/params.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/hvm/params.h Tue Mar 12 17:09:55 2013 +0100 @@ -132,6 +132,7 @@ #define HVM_PARAM_MEMORY_EVENT_CR4 22 #define HVM_PARAM_MEMORY_EVENT_INT3 23 #define HVM_PARAM_MEMORY_EVENT_SINGLE_STEP 25 +#define HVM_PARAM_MEMORY_EVENT_MSR 30 #define HVMPME_MODE_MASK (3 << 0) #define HVMPME_mode_disabled 0 @@ -147,6 +148,9 @@ #define HVM_PARAM_ACCESS_RING_PFN 28 #define HVM_PARAM_SHARING_RING_PFN 29 -#define HVM_NR_PARAMS 30 +/* SHUTDOWN_* action in case of a triple fault */ +#define HVM_PARAM_TRIPLE_FAULT_REASON 31 + +#define HVM_NR_PARAMS 32 #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */ diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/hvm/save.h --- a/include/xen/interface/hvm/save.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/hvm/save.h Tue Mar 12 17:09:55 2013 +0100 @@ -104,7 +104,7 @@ DECLARE_HVM_SAVE_TYPE(END, 0, struct hvm #include "../arch-x86/hvm/save.h" #elif defined(__ia64__) #include "../arch-ia64/hvm/save.h" -#elif defined(__arm__) +#elif defined(__arm__) || defined(__aarch64__) #include "../arch-arm/hvm/save.h" #else #error "unsupported architecture" diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/blkif.h --- a/include/xen/interface/io/blkif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/blkif.h Tue Mar 12 17:09:55 2013 +0100 @@ -542,7 +542,7 @@ DEFINE_RING_TYPES(blkif, struct blkif_re /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/console.h --- a/include/xen/interface/io/console.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/console.h Tue Mar 12 17:09:55 2013 +0100 @@ -43,7 +43,7 @@ struct xencons_interface { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/fbif.h --- a/include/xen/interface/io/fbif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/fbif.h Tue Mar 12 17:09:55 2013 +0100 @@ -168,7 +168,7 @@ struct xenfb_page /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/kbdif.h --- a/include/xen/interface/io/kbdif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/kbdif.h Tue Mar 12 17:09:55 2013 +0100 @@ -124,7 +124,7 @@ struct xenkbd_page /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/netif.h --- a/include/xen/interface/io/netif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/netif.h Tue Mar 12 17:09:55 2013 +0100 @@ -197,7 +197,7 @@ DEFINE_RING_TYPES(netif_rx, struct netif /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/pciif.h --- a/include/xen/interface/io/pciif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/pciif.h Tue Mar 12 17:09:55 2013 +0100 @@ -116,7 +116,7 @@ struct xen_pci_sharedinfo { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/ring.h --- a/include/xen/interface/io/ring.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/ring.h Tue Mar 12 17:09:55 2013 +0100 @@ -315,7 +315,7 @@ typedef struct __name##_back_ring __name /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/tpmif.h --- a/include/xen/interface/io/tpmif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/tpmif.h Tue Mar 12 17:09:55 2013 +0100 @@ -69,7 +69,7 @@ typedef struct tpmif_tx_interface tpmif_ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/usbif.h --- a/include/xen/interface/io/usbif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/usbif.h Tue Mar 12 17:09:55 2013 +0100 @@ -71,7 +71,6 @@ enum usb_spec_version { #define usbif_pipesubmit(pipe) (!usbif_pipeunlink(pipe)) #define usbif_setunlink_pipe(pipe) ((pipe)|(0x20)) -#define USBIF_BACK_MAX_PENDING_REQS (128) #define USBIF_MAX_SEGMENTS_PER_REQUEST (16) /* diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/vscsiif.h --- a/include/xen/interface/io/vscsiif.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/vscsiif.h Tue Mar 12 17:09:55 2013 +0100 @@ -109,7 +109,7 @@ DEFINE_RING_TYPES(vscsiif, struct vscsii /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/xenbus.h --- a/include/xen/interface/io/xenbus.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/xenbus.h Tue Mar 12 17:09:55 2013 +0100 @@ -72,7 +72,7 @@ typedef enum xenbus_state XenbusState; /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/io/xs_wire.h --- a/include/xen/interface/io/xs_wire.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/io/xs_wire.h Tue Mar 12 17:09:55 2013 +0100 @@ -126,7 +126,7 @@ struct xenstore_domain_interface { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/kexec.h --- a/include/xen/interface/kexec.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/kexec.h Tue Mar 12 17:09:55 2013 +0100 @@ -160,7 +160,7 @@ typedef struct xen_kexec_range { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/mem_event.h --- a/include/xen/interface/mem_event.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/mem_event.h Tue Mar 12 17:09:55 2013 +0100 @@ -45,6 +45,8 @@ #define MEM_EVENT_REASON_CR4 4 /* CR4 was hit: gfn is CR4 value */ #define MEM_EVENT_REASON_INT3 5 /* int3 was hit: gla/gfn are RIP */ #define MEM_EVENT_REASON_SINGLESTEP 6 /* single step was invoked: gla/gfn are RIP */ +#define MEM_EVENT_REASON_MSR 7 /* MSR was hit: gfn is MSR value, gla is MSR address; + does NOT honour HVMPME_onchangeonly */ typedef struct mem_event_st { uint32_t flags; @@ -72,7 +74,7 @@ DEFINE_RING_TYPES(mem_event, mem_event_r /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/memory.h --- a/include/xen/interface/memory.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/memory.h Tue Mar 12 17:09:55 2013 +0100 @@ -68,6 +68,8 @@ struct xen_memory_reservation { * IN: GPFN bases of extents to populate with memory * OUT: GMFN bases of extents that were allocated * (NB. This command also updates the mach_to_phys translation table) + * XENMEM_claim_pages: + * IN: must be zero */ XEN_GUEST_HANDLE(xen_pfn_t) extent_start; @@ -203,8 +205,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_map #define XENMAPSPACE_shared_info 0 /* shared info page */ #define XENMAPSPACE_grant_table 1 /* grant table page */ #define XENMAPSPACE_gmfn 2 /* GMFN */ -#define XENMAPSPACE_gmfn_range 3 /* GMFN range */ -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */ +#define XENMAPSPACE_gmfn_range 3 /* GMFN range, XENMEM_add_to_physmap only. */ +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom, + * XENMEM_add_to_physmap_range only. + */ /* ` } */ /* @@ -236,6 +240,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_add_to_physm /* A batched version of add_to_physmap. */ #define XENMEM_add_to_physmap_range 23 struct xen_add_to_physmap_range { + /* IN */ /* Which domain to change the mapping for. */ domid_t domid; uint16_t space; /* => enum phys_map_space */ @@ -247,8 +252,13 @@ struct xen_add_to_physmap_range { /* Indexes into space being mapped. */ XEN_GUEST_HANDLE(xen_ulong_t) idxs; - /* GPFN in domdwhere the source mapping page should appear. */ + /* GPFN in domid where the source mapping page should appear. */ XEN_GUEST_HANDLE(xen_pfn_t) gpfns; + + /* OUT */ + + /* Per index error code. */ + XEN_GUEST_HANDLE(int) errs; }; typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t; DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t); @@ -422,10 +432,39 @@ typedef struct xen_mem_sharing_op xen_me DEFINE_XEN_GUEST_HANDLE(xen_mem_sharing_op_t); /* - * Reserve ops for future/out-of-tree "claim" patches (Oracle) + * Attempt to stake a claim for a domain on a quantity of pages + * of system RAM, but _not_ assign specific pageframes. Only + * arithmetic is performed so the hypercall is very fast and need + * not be preemptible, thus sidestepping time-of-check-time-of-use + * races for memory allocation. Returns 0 if the hypervisor page + * allocator has atomically and successfully claimed the requested + * number of pages, else non-zero. + * + * Any domain may have only one active claim. When sufficient memory + * has been allocated to resolve the claim, the claim silently expires. + * Claiming zero pages effectively resets any outstanding claim and + * is always successful. + * + * Note that a valid claim may be staked even after memory has been + * allocated for a domain. In this case, the claim is not incremental, + * i.e. if the domain's tot_pages is 3, and a claim is staked for 10, + * only 7 additional pages are claimed. + * + * Caller must be privileged or the hypercall fails. */ #define XENMEM_claim_pages 24 -#define XENMEM_get_unclaimed_pages 25 + +/* + * XENMEM_claim_pages flags - the are no flags at this time. + * The zero value is appropiate. + */ + +/* + * Get the number of pages currently claimed (but not yet "possessed") + * across all domains. The caller must be privileged but otherwise + * the call never fails. + */ +#define XENMEM_get_outstanding_pages 25 #endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */ @@ -434,7 +473,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_mem_sharing_ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/nmi.h --- a/include/xen/interface/nmi.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/nmi.h Tue Mar 12 17:09:55 2013 +0100 @@ -36,9 +36,14 @@ /* I/O-check error reported via ISA port 0x61, bit 6. */ #define _XEN_NMIREASON_io_error 0 #define XEN_NMIREASON_io_error (1UL << _XEN_NMIREASON_io_error) + /* PCI SERR reported via ISA port 0x61, bit 7. */ +#define _XEN_NMIREASON_pci_serr 1 +#define XEN_NMIREASON_pci_serr (1UL << _XEN_NMIREASON_pci_serr) +#if __XEN_INTERFACE_VERSION__ < 0x00040300 /* legacy alias of the above */ /* Parity error reported via ISA port 0x61, bit 7. */ #define _XEN_NMIREASON_parity_error 1 #define XEN_NMIREASON_parity_error (1UL << _XEN_NMIREASON_parity_error) +#endif /* Unknown hardware-generated NMI. */ #define _XEN_NMIREASON_unknown 2 #define XEN_NMIREASON_unknown (1UL << _XEN_NMIREASON_unknown) @@ -72,7 +77,7 @@ DEFINE_XEN_GUEST_HANDLE(xennmi_callback_ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/physdev.h --- a/include/xen/interface/physdev.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/physdev.h Tue Mar 12 17:09:55 2013 +0100 @@ -303,6 +303,12 @@ DEFINE_XEN_GUEST_HANDLE(physdev_pci_devi #define PHYSDEVOP_pci_device_remove 26 #define PHYSDEVOP_restore_msi_ext 27 +/* + * Dom0 should use these two to announce MMIO resources assigned to + * MSI-X capable devices won't (prepare) or may (release) change. + */ +#define PHYSDEVOP_prepare_msix 30 +#define PHYSDEVOP_release_msix 31 struct physdev_pci_device { /* IN */ uint16_t seg; @@ -362,7 +368,7 @@ DEFINE_XEN_GUEST_HANDLE(physdev_dbgp_op_ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/platform.h --- a/include/xen/interface/platform.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/platform.h Tue Mar 12 17:09:55 2013 +0100 @@ -218,6 +218,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_efi_runtim #define XEN_FW_EFI_VENDOR 2 #define XEN_FW_EFI_MEM_INFO 3 #define XEN_FW_EFI_RT_VERSION 4 +#define XEN_FW_EFI_PCI_ROM 5 #define XEN_FW_KBD_SHIFT_FLAGS 5 struct xenpf_firmware_info { /* IN variables. */ @@ -266,6 +267,17 @@ struct xenpf_firmware_info { uint64_t attr; uint32_t type; } mem; + struct { + /* IN variables */ + uint16_t segment; + uint8_t bus; + uint8_t devfn; + uint16_t vendor; + uint16_t devid; + /* OUT variables */ + uint64_t address; + xen_ulong_t size; + } pci_rom; } efi_info; /* XEN_FW_EFI_INFO */ /* Int16, Fn02: Get keyboard shift flags. */ @@ -278,10 +290,16 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_firmware_i #define XENPF_enter_acpi_sleep 51 struct xenpf_enter_acpi_sleep { /* IN variables */ +#if __XEN_INTERFACE_VERSION__ < 0x00040300 uint16_t pm1a_cnt_val; /* PM1a control value. */ uint16_t pm1b_cnt_val; /* PM1b control value. */ +#else + uint16_t val_a; /* PM1a control / sleep type A. */ + uint16_t val_b; /* PM1b control / sleep type B. */ +#endif uint32_t sleep_state; /* Which state to enter (Sn). */ - uint32_t flags; /* Must be zero. */ +#define XENPF_ACPI_SLEEP_EXTENDED 0x00000001 + uint32_t flags; /* XENPF_ACPI_SLEEP_*. */ }; typedef struct xenpf_enter_acpi_sleep xenpf_enter_acpi_sleep_t; DEFINE_XEN_GUEST_HANDLE(xenpf_enter_acpi_sleep_t); @@ -545,7 +563,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_platform_op_ /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/sched.h --- a/include/xen/interface/sched.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/sched.h Tue Mar 12 17:09:55 2013 +0100 @@ -158,6 +158,7 @@ DEFINE_XEN_GUEST_HANDLE(sched_watchdog_t #define SHUTDOWN_suspend 2 /* Clean up, save suspend info, kill. */ #define SHUTDOWN_crash 3 /* Tell controller we've crashed. */ #define SHUTDOWN_watchdog 4 /* Restart because watchdog time expired. */ +#define SHUTDOWN_MAX 4 /* Maximum valid shutdown reason. */ /* ` } */ #endif /* __XEN_PUBLIC_SCHED_H__ */ @@ -165,7 +166,7 @@ DEFINE_XEN_GUEST_HANDLE(sched_watchdog_t /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/sysctl.h --- a/include/xen/interface/sysctl.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/sysctl.h Tue Mar 12 17:09:55 2013 +0100 @@ -596,6 +596,42 @@ struct xen_sysctl_scheduler_op { typedef struct xen_sysctl_scheduler_op xen_sysctl_scheduler_op_t; DEFINE_XEN_GUEST_HANDLE(xen_sysctl_scheduler_op_t); +/* XEN_SYSCTL_coverage_op */ +/* + * Get total size of information, to help allocate + * the buffer. The pointer points to a 32 bit value. + */ +#define XEN_SYSCTL_COVERAGE_get_total_size 0 + +/* + * Read coverage information in a single run + * You must use a tool to split them. + */ +#define XEN_SYSCTL_COVERAGE_read 1 + +/* + * Reset all the coverage counters to 0 + * No parameters. + */ +#define XEN_SYSCTL_COVERAGE_reset 2 + +/* + * Like XEN_SYSCTL_COVERAGE_read but reset also + * counters to 0 in a single call. + */ +#define XEN_SYSCTL_COVERAGE_read_and_reset 3 + +struct xen_sysctl_coverage_op { + uint32_t cmd; /* XEN_SYSCTL_COVERAGE_* */ + union { + uint32_t total_size; /* OUT */ + XEN_GUEST_HANDLE_64(uint8) raw_info; /* OUT */ + } u; +}; +typedef struct xen_sysctl_coverage_op xen_sysctl_coverage_op_t; +DEFINE_XEN_GUEST_HANDLE(xen_sysctl_coverage_op_t); + + struct xen_sysctl { uint32_t cmd; #define XEN_SYSCTL_readconsole 1 @@ -616,6 +652,7 @@ struct xen_sysctl { #define XEN_SYSCTL_numainfo 17 #define XEN_SYSCTL_cpupool_op 18 #define XEN_SYSCTL_scheduler_op 19 +#define XEN_SYSCTL_coverage_op 20 uint32_t interface_version; /* XEN_SYSCTL_INTERFACE_VERSION */ union { struct xen_sysctl_readconsole readconsole; @@ -636,6 +673,7 @@ struct xen_sysctl { struct xen_sysctl_lockprof_op lockprof_op; struct xen_sysctl_cpupool_op cpupool_op; struct xen_sysctl_scheduler_op scheduler_op; + struct xen_sysctl_coverage_op coverage_op; uint8_t pad[128]; } u; }; @@ -647,7 +685,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_sysctl_t); /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/tmem.h --- a/include/xen/interface/tmem.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/tmem.h Tue Mar 12 17:09:55 2013 +0100 @@ -140,7 +140,7 @@ struct tmem_handle { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/trace.h --- a/include/xen/interface/trace.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/trace.h Tue Mar 12 17:09:55 2013 +0100 @@ -57,6 +57,32 @@ #define TRC_SCHED_CLASS 0x00022000 /* Scheduler-specific */ #define TRC_SCHED_VERBOSE 0x00028000 /* More inclusive scheduling */ +/* + * The highest 3 bits of the last 12 bits of TRC_SCHED_CLASS above are + * reserved for encoding what scheduler produced the information. The + * actual event is encoded in the last 9 bits. + * + * This means we have 8 scheduling IDs available (which means at most 8 + * schedulers generating events) and, in each scheduler, up to 512 + * different events. + */ +#define TRC_SCHED_ID_BITS 3 +#define TRC_SCHED_ID_SHIFT (TRC_SUBCLS_SHIFT - TRC_SCHED_ID_BITS) +#define TRC_SCHED_ID_MASK (((1UL<<TRC_SCHED_ID_BITS) - 1) << TRC_SCHED_ID_SHIFT) +#define TRC_SCHED_EVT_MASK (~(TRC_SCHED_ID_MASK)) + +/* Per-scheduler IDs, to identify scheduler specific events */ +#define TRC_SCHED_CSCHED 0 +#define TRC_SCHED_CSCHED2 1 +#define TRC_SCHED_SEDF 2 +#define TRC_SCHED_ARINC653 3 + +/* Per-scheduler tracing */ +#define TRC_SCHED_CLASS_EVT(_c, _e) \ + ( ( TRC_SCHED_CLASS | \ + ((TRC_SCHED_##_c << TRC_SCHED_ID_SHIFT) & TRC_SCHED_ID_MASK) ) + \ + (_e & TRC_SCHED_EVT_MASK) ) + /* Trace classes for Hardware */ #define TRC_HW_PM 0x00801000 /* Power management traces */ #define TRC_HW_IRQ 0x00802000 /* Traces relating to the handling of IRQs */ @@ -276,7 +302,7 @@ struct t_info { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/vcpu.h --- a/include/xen/interface/vcpu.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/vcpu.h Tue Mar 12 17:09:55 2013 +0100 @@ -232,7 +232,7 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_register_ti /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/version.h --- a/include/xen/interface/version.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/version.h Tue Mar 12 17:09:55 2013 +0100 @@ -88,7 +88,7 @@ typedef char xen_commandline_t[1024]; /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/xen.h --- a/include/xen/interface/xen.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/xen.h Tue Mar 12 17:09:55 2013 +0100 @@ -33,7 +33,7 @@ #include "arch-x86/xen.h" #elif defined(__ia64__) #include "arch-ia64.h" -#elif defined(__arm__) +#elif defined(__arm__) || defined (__aarch64__) #include "arch-arm.h" #else #error "Unsupported architecture" @@ -558,7 +558,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_ * Event channel endpoints per domain: * 1024 if a long is 32 bits; 4096 if a long is 64 bits. */ -#define NR_EVENT_CHANNELS (sizeof(unsigned long) * sizeof(unsigned long) * 64) +#define NR_EVENT_CHANNELS (sizeof(xen_ulong_t) * sizeof(xen_ulong_t) * 64) struct vcpu_time_info { /* @@ -615,7 +615,7 @@ struct vcpu_info { */ uint8_t evtchn_upcall_pending; uint8_t evtchn_upcall_mask; - unsigned long evtchn_pending_sel; + xen_ulong_t evtchn_pending_sel; struct arch_vcpu_info arch; struct vcpu_time_info time; }; /* 64 bytes (x86) */ @@ -665,8 +665,8 @@ struct shared_info { * per-vcpu selector word to be set. Each bit in the selector covers a * 'C long' in the PENDING bitfield array. */ - unsigned long evtchn_pending[sizeof(unsigned long) * 8]; - unsigned long evtchn_mask[sizeof(unsigned long) * 8]; + xen_ulong_t evtchn_pending[sizeof(xen_ulong_t) * 8]; + xen_ulong_t evtchn_mask[sizeof(xen_ulong_t) * 8]; /* * Wallclock time: updated only by control software. Guests should base @@ -866,7 +866,7 @@ struct xenctl_cpumap { /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil diff -r 805186ebb4ab -r 870ad354925b include/xen/interface/xenoprof.h --- a/include/xen/interface/xenoprof.h Mon Mar 04 10:09:05 2013 +0100 +++ b/include/xen/interface/xenoprof.h Tue Mar 12 17:09:55 2013 +0100 @@ -144,7 +144,7 @@ DEFINE_XEN_GUEST_HANDLE(xenoprof_ibs_cou /* * Local variables: * mode: C - * c-set-style: "BSD" + * c-file-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * indent-tabs-mode: nil _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |