|
[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 |