]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
imported patch sync-xen-interface revert-linux-2.6-net-bonding-update-to-upstream-version-3-2-2.patch
authort_jeang <devnull@localhost>
Tue, 6 Jan 2009 12:05:56 +0000 (12:05 +0000)
committert_jeang <devnull@localhost>
Tue, 6 Jan 2009 12:05:56 +0000 (12:05 +0000)
22 files changed:
include/xen/interface/acm.h [deleted file]
include/xen/interface/acm_ops.h [deleted file]
include/xen/interface/arch-ia64.h
include/xen/interface/arch-powerpc.h [deleted file]
include/xen/interface/arch-x86/hvm/save.h
include/xen/interface/dom0_ops.h
include/xen/interface/domctl.h
include/xen/interface/foreign/Makefile [deleted file]
include/xen/interface/foreign/mkchecker.py [deleted file]
include/xen/interface/foreign/mkheader.py [deleted file]
include/xen/interface/foreign/reference.size [deleted file]
include/xen/interface/foreign/structs.py [deleted file]
include/xen/interface/hvm/hvm_info_table.h
include/xen/interface/hvm/hvm_op.h
include/xen/interface/hvm/params.h
include/xen/interface/hvm/vmx_assist.h [deleted file]
include/xen/interface/io/xs_wire.h
include/xen/interface/memory.h
include/xen/interface/platform.h
include/xen/interface/sched.h
include/xen/interface/stratus.h [deleted file]
include/xen/interface/trace.h

diff --git a/include/xen/interface/acm.h b/include/xen/interface/acm.h
deleted file mode 100644 (file)
index ef62da0..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * acm.h: Xen access control module interface defintions
- *
- * 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.
- *
- * Reiner Sailer <sailer@watson.ibm.com>
- * Copyright (c) 2005, International Business Machines Corporation.
- */
-
-#ifndef _XEN_PUBLIC_ACM_H
-#define _XEN_PUBLIC_ACM_H
-
-#include "xen.h"
-
-/* if ACM_DEBUG defined, all hooks should
- * print a short trace message (comment it out
- * when not in testing mode )
- */
-/* #define ACM_DEBUG */
-
-#ifdef ACM_DEBUG
-#  define printkd(fmt, args...) printk(fmt,## args)
-#else
-#  define printkd(fmt, args...)
-#endif
-
-/* default ssid reference value if not supplied */
-#define ACM_DEFAULT_SSID  0x0
-#define ACM_DEFAULT_LOCAL_SSID  0x0
-
-/* Internal ACM ERROR types */
-#define ACM_OK     0
-#define ACM_UNDEF   -1
-#define ACM_INIT_SSID_ERROR  -2
-#define ACM_INIT_SOID_ERROR  -3
-#define ACM_ERROR          -4
-
-/* External ACCESS DECISIONS */
-#define ACM_ACCESS_PERMITTED        0
-#define ACM_ACCESS_DENIED           -111
-#define ACM_NULL_POINTER_ERROR      -200
-
-/*
-   Error codes reported in when trying to test for a new policy
-   These error codes are reported in an array of tuples where
-   each error code is followed by a parameter describing the error
-   more closely, such as a domain id.
-*/
-#define ACM_EVTCHN_SHARING_VIOLATION       0x100
-#define ACM_GNTTAB_SHARING_VIOLATION       0x101
-#define ACM_DOMAIN_LOOKUP                  0x102
-#define ACM_CHWALL_CONFLICT                0x103
-#define ACM_SSIDREF_IN_USE                 0x104
-
-
-/* primary policy in lower 4 bits */
-#define ACM_NULL_POLICY 0
-#define ACM_CHINESE_WALL_POLICY 1
-#define ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY 2
-#define ACM_POLICY_UNDEFINED 15
-
-/* combinations have secondary policy component in higher 4bit */
-#define ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY \
-    ((ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY << 4) | ACM_CHINESE_WALL_POLICY)
-
-/* policy: */
-#define ACM_POLICY_NAME(X) \
- ((X) == (ACM_NULL_POLICY)) ? "NULL" :                        \
-    ((X) == (ACM_CHINESE_WALL_POLICY)) ? "CHINESE WALL" :        \
-    ((X) == (ACM_SIMPLE_TYPE_ENFORCEMENT_POLICY)) ? "SIMPLE TYPE ENFORCEMENT" : \
-    ((X) == (ACM_CHINESE_WALL_AND_SIMPLE_TYPE_ENFORCEMENT_POLICY)) ? "CHINESE WALL AND SIMPLE TYPE ENFORCEMENT" : \
-     "UNDEFINED"
-
-/* the following policy versions must be increased
- * whenever the interpretation of the related
- * policy's data structure changes
- */
-#define ACM_POLICY_VERSION 3
-#define ACM_CHWALL_VERSION 1
-#define ACM_STE_VERSION  1
-
-/* defines a ssid reference used by xen */
-typedef uint32_t ssidref_t;
-
-/* hooks that are known to domains */
-#define ACMHOOK_none    0
-#define ACMHOOK_sharing 1
-
-/* -------security policy relevant type definitions-------- */
-
-/* type identifier; compares to "equal" or "not equal" */
-typedef uint16_t domaintype_t;
-
-/* CHINESE WALL POLICY DATA STRUCTURES
- *
- * current accumulated conflict type set:
- * When a domain is started and has a type that is in
- * a conflict set, the conflicting types are incremented in
- * the aggregate set. When a domain is destroyed, the 
- * conflicting types to its type are decremented.
- * If a domain has multiple types, this procedure works over
- * all those types.
- *
- * conflict_aggregate_set[i] holds the number of
- *   running domains that have a conflict with type i.
- *
- * running_types[i] holds the number of running domains
- *        that include type i in their ssidref-referenced type set
- *
- * conflict_sets[i][j] is "0" if type j has no conflict
- *    with type i and is "1" otherwise.
- */
-/* high-16 = version, low-16 = check magic */
-#define ACM_MAGIC  0x0001debc
-
-/* each offset in bytes from start of the struct they
- * are part of */
-
-/* V3 of the policy buffer aded a version structure */
-struct acm_policy_version
-{
-    uint32_t major;
-    uint32_t minor;
-};
-
-
-/* each buffer consists of all policy information for
- * the respective policy given in the policy code
- *
- * acm_policy_buffer, acm_chwall_policy_buffer,
- * and acm_ste_policy_buffer need to stay 32-bit aligned
- * because we create binary policies also with external
- * tools that assume packed representations (e.g. the java tool)
- */
-struct acm_policy_buffer {
-    uint32_t policy_version; /* ACM_POLICY_VERSION */
-    uint32_t magic;
-    uint32_t len;
-    uint32_t policy_reference_offset;
-    uint32_t primary_policy_code;
-    uint32_t primary_buffer_offset;
-    uint32_t secondary_policy_code;
-    uint32_t secondary_buffer_offset;
-    struct acm_policy_version xml_pol_version; /* add in V3 */
-};
-
-
-struct acm_policy_reference_buffer {
-    uint32_t len;
-};
-
-struct acm_chwall_policy_buffer {
-    uint32_t policy_version; /* ACM_CHWALL_VERSION */
-    uint32_t policy_code;
-    uint32_t chwall_max_types;
-    uint32_t chwall_max_ssidrefs;
-    uint32_t chwall_max_conflictsets;
-    uint32_t chwall_ssid_offset;
-    uint32_t chwall_conflict_sets_offset;
-    uint32_t chwall_running_types_offset;
-    uint32_t chwall_conflict_aggregate_offset;
-};
-
-struct acm_ste_policy_buffer {
-    uint32_t policy_version; /* ACM_STE_VERSION */
-    uint32_t policy_code;
-    uint32_t ste_max_types;
-    uint32_t ste_max_ssidrefs;
-    uint32_t ste_ssid_offset;
-};
-
-struct acm_stats_buffer {
-    uint32_t magic;
-    uint32_t len;
-    uint32_t primary_policy_code;
-    uint32_t primary_stats_offset;
-    uint32_t secondary_policy_code;
-    uint32_t secondary_stats_offset;
-};
-
-struct acm_ste_stats_buffer {
-    uint32_t ec_eval_count;
-    uint32_t gt_eval_count;
-    uint32_t ec_denied_count;
-    uint32_t gt_denied_count;
-    uint32_t ec_cachehit_count;
-    uint32_t gt_cachehit_count;
-};
-
-struct acm_ssid_buffer {
-    uint32_t len;
-    ssidref_t ssidref;
-    uint32_t policy_reference_offset;
-    uint32_t primary_policy_code;
-    uint32_t primary_max_types;
-    uint32_t primary_types_offset;
-    uint32_t secondary_policy_code;
-    uint32_t secondary_max_types;
-    uint32_t secondary_types_offset;
-};
-
-#endif
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
diff --git a/include/xen/interface/acm_ops.h b/include/xen/interface/acm_ops.h
deleted file mode 100644 (file)
index 27a8872..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * acm_ops.h: Xen access control module hypervisor commands
- *
- * 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.
- *
- * Reiner Sailer <sailer@watson.ibm.com>
- * Copyright (c) 2005,2006 International Business Machines Corporation.
- */
-
-#ifndef __XEN_PUBLIC_ACM_OPS_H__
-#define __XEN_PUBLIC_ACM_OPS_H__
-
-#include "xen.h"
-#include "acm.h"
-
-/*
- * Make sure you increment the interface version whenever you modify this file!
- * This makes sure that old versions of acm tools will stop working in a
- * well-defined way (rather than crashing the machine, for instance).
- */
-#define ACM_INTERFACE_VERSION   0xAAAA000A
-
-/************************************************************************/
-
-/*
- * Prototype for this hypercall is:
- *  int acm_op(int cmd, void *args)
- * @cmd  == ACMOP_??? (access control module operation).
- * @args == Operation-specific extra arguments (NULL if none).
- */
-
-
-#define ACMOP_setpolicy         1
-struct acm_setpolicy {
-    /* IN */
-    XEN_GUEST_HANDLE_64(void) pushcache;
-    uint32_t pushcache_size;
-};
-
-
-#define ACMOP_getpolicy         2
-struct acm_getpolicy {
-    /* IN */
-    XEN_GUEST_HANDLE_64(void) pullcache;
-    uint32_t pullcache_size;
-};
-
-
-#define ACMOP_dumpstats         3
-struct acm_dumpstats {
-    /* IN */
-    XEN_GUEST_HANDLE_64(void) pullcache;
-    uint32_t pullcache_size;
-};
-
-
-#define ACMOP_getssid           4
-#define ACM_GETBY_ssidref  1
-#define ACM_GETBY_domainid 2
-struct acm_getssid {
-    /* IN */
-    uint32_t get_ssid_by; /* ACM_GETBY_* */
-    union {
-        domaintype_t domainid;
-        ssidref_t    ssidref;
-    } id;
-    XEN_GUEST_HANDLE_64(void) ssidbuf;
-    uint32_t ssidbuf_size;
-};
-
-#define ACMOP_getdecision      5
-struct acm_getdecision {
-    /* IN */
-    uint32_t get_decision_by1; /* ACM_GETBY_* */
-    uint32_t get_decision_by2; /* ACM_GETBY_* */
-    union {
-        domaintype_t domainid;
-        ssidref_t    ssidref;
-    } id1;
-    union {
-        domaintype_t domainid;
-        ssidref_t    ssidref;
-    } id2;
-    uint32_t hook;
-    /* OUT */
-    uint32_t acm_decision;
-};
-
-
-#define ACMOP_chgpolicy        6
-struct acm_change_policy {
-    /* IN */
-    XEN_GUEST_HANDLE_64(void) policy_pushcache;
-    uint32_t policy_pushcache_size;
-    XEN_GUEST_HANDLE_64(void) del_array;
-    uint32_t delarray_size;
-    XEN_GUEST_HANDLE_64(void) chg_array;
-    uint32_t chgarray_size;
-    /* OUT */
-    /* array with error code */
-    XEN_GUEST_HANDLE_64(void) err_array;
-    uint32_t errarray_size;
-};
-
-#define ACMOP_relabeldoms       7
-struct acm_relabel_doms {
-    /* IN */
-    XEN_GUEST_HANDLE_64(void) relabel_map;
-    uint32_t relabel_map_size;
-    /* OUT */
-    XEN_GUEST_HANDLE_64(void) err_array;
-    uint32_t errarray_size;
-};
-
-/* future interface to Xen */
-struct xen_acmctl {
-    uint32_t cmd;
-    uint32_t interface_version;
-    union {
-        struct acm_setpolicy     setpolicy;
-        struct acm_getpolicy     getpolicy;
-        struct acm_dumpstats     dumpstats;
-        struct acm_getssid       getssid;
-        struct acm_getdecision   getdecision;
-        struct acm_change_policy change_policy;
-        struct acm_relabel_doms  relabel_doms;
-    } u;
-};
-
-typedef struct xen_acmctl xen_acmctl_t;
-DEFINE_XEN_GUEST_HANDLE(xen_acmctl_t);
-
-#endif /* __XEN_PUBLIC_ACM_OPS_H__ */
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
index 3dc1d181356d9f19cd1a567fc9d8d38db76dbe14..0c43cee8550216f55fd8b440a9b1315ae7e621a7 100644 (file)
@@ -453,9 +453,6 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
 /* unexpose the foreign domain's p2m table into privileged domain */
 #define IA64_DOM0VP_unexpose_foreign_p2m        13
 
-/* Add an I/O port space range */
-#define IA64_DOM0VP_add_io_space        11
-
 // flags for page assignement to pseudo physical address space
 #define _ASSIGN_readonly                0
 #define ASSIGN_readonly                 (1UL << _ASSIGN_readonly)
diff --git a/include/xen/interface/arch-powerpc.h b/include/xen/interface/arch-powerpc.h
deleted file mode 100644 (file)
index d92532f..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * 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) IBM Corp. 2005, 2006
- *
- * Authors: Hollis Blanchard <hollisb@us.ibm.com>
- */
-
-#include "xen.h"
-
-#ifndef __XEN_PUBLIC_ARCH_PPC_64_H__
-#define __XEN_PUBLIC_ARCH_PPC_64_H__
-
-#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
-    typedef struct { \
-        int __pad[(sizeof (long long) - sizeof (void *)) / sizeof (int)]; \
-        type *p; \
-    } __attribute__((__aligned__(8))) __guest_handle_ ## name
-
-#define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-    ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-    ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
-#define DEFINE_XEN_GUEST_HANDLE(name) __DEFINE_XEN_GUEST_HANDLE(name, name)
-#define XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
-#define set_xen_guest_handle(hnd, val) \
-    do { \
-        if (sizeof ((hnd).__pad)) \
-            (hnd).__pad[0] = 0; \
-        (hnd).p = val; \
-    } while (0)
-
-#ifdef __XEN_TOOLS__
-#define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
-#endif
-
-#ifndef __ASSEMBLY__
-typedef unsigned long long xen_pfn_t;
-#define PRI_xen_pfn "llx"
-#endif
-
-/*
- * Pointers and other address fields inside interface structures are padded to
- * 64 bits. This means that field alignments aren't different between 32- and
- * 64-bit architectures. 
- */
-/* NB. Multi-level macro ensures __LINE__ is expanded before concatenation. */
-#define __MEMORY_PADDING(_X)
-#define _MEMORY_PADDING(_X)  __MEMORY_PADDING(_X)
-#define MEMORY_PADDING       _MEMORY_PADDING(__LINE__)
-
-/* And the trap vector is... */
-#define TRAP_INSTR "li 0,-1; sc" /* XXX just "sc"? */
-
-#ifndef __ASSEMBLY__
-
-#define XENCOMM_INLINE_FLAG (1UL << 63)
-
-typedef uint64_t xen_ulong_t;
-
-/* User-accessible registers: nost of these need to be saved/restored
- * for every nested Xen invocation. */
-struct cpu_user_regs
-{
-    uint64_t gprs[32];
-    uint64_t lr;
-    uint64_t ctr;
-    uint64_t srr0;
-    uint64_t srr1;
-    uint64_t pc;
-    uint64_t msr;
-    uint64_t fpscr;             /* XXX Is this necessary */
-    uint64_t xer;
-    uint64_t hid4;              /* debug only */
-    uint64_t dar;               /* debug only */
-    uint32_t dsisr;             /* debug only */
-    uint32_t cr;
-    uint32_t __pad;             /* good spot for another 32bit reg */
-    uint32_t entry_vector;
-};
-typedef struct cpu_user_regs cpu_user_regs_t;
-
-typedef uint64_t tsc_timestamp_t; /* RDTSC timestamp */ /* XXX timebase */
-
-/* ONLY used to communicate with dom0! See also struct exec_domain. */
-struct vcpu_guest_context {
-    cpu_user_regs_t user_regs;         /* User-level CPU registers     */
-    uint64_t sdr1;                     /* Pagetable base               */
-    /* XXX etc */
-};
-typedef struct vcpu_guest_context vcpu_guest_context_t;
-DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
-
-struct arch_shared_info {
-    uint64_t boot_timebase;
-};
-
-struct arch_vcpu_info {
-};
-
-/* Support for multi-processor guests. */
-#define MAX_VIRT_CPUS 32
-#endif
-
-#endif
index 73b390998e5643e241867dd98864f8dfdf3a2837..6d707276d310e3de9512584f9cae24adf35bfb36 100644 (file)
@@ -324,12 +324,17 @@ DECLARE_HVM_SAVE_TYPE(PCI_LINK, 9, struct hvm_hw_pci_link);
  *  PIT
  */
 
+/* XXX For historical reasons this differs in layout from the 
+ * XXX open-source version by the addition of an unused 64-bit
+ * XXX field in the middle of the PIT state layout. :( */
+
 struct hvm_hw_pit {
     struct hvm_hw_pit_channel {
         uint32_t count; /* can be 65536 */
         uint16_t latched_count;
         uint8_t count_latched;
         uint8_t status_latched;
+        int64_t _unused;
         uint8_t status;
         uint8_t read_state;
         uint8_t write_state;
@@ -421,9 +426,20 @@ struct hvm_hw_mtrr {
 
 DECLARE_HVM_SAVE_TYPE(MTRR, 14, struct hvm_hw_mtrr);
 
+/*
+ * Viridian hypervisor context.
+ */
+
+struct hvm_viridian_context {
+    uint64_t hypercall_gpa;
+    uint64_t guest_os_id;
+};
+
+DECLARE_HVM_SAVE_TYPE(VIRIDIAN, 15, struct hvm_viridian_context);
+
 /* 
  * Largest type-code in use
  */
-#define HVM_SAVE_CODE_MAX 14
+#define HVM_SAVE_CODE_MAX 15
 
 #endif /* __XEN_PUBLIC_HVM_SAVE_X86_H__ */
index 6d69d0aeb5c196265cd2799185f07e1983e03204..5d2b3245c0473956755c6e909597cdca898d38e4 100644 (file)
@@ -89,41 +89,6 @@ struct dom0_memory_map_entry {
 typedef struct dom0_memory_map_entry dom0_memory_map_entry_t;
 DEFINE_XEN_GUEST_HANDLE(dom0_memory_map_entry_t);
 
-#define DOM0_change_freq         52
-struct dom0_change_freq {
-    /* IN variables */
-    uint32_t flags; /* Must be zero. */
-    uint32_t cpu;   /* Physical cpu. */
-    uint64_t freq;  /* New frequency (Hz). */
-};
-typedef struct dom0_change_freq dom0_change_freq_t;
-DEFINE_XEN_GUEST_HANDLE(dom0_change_freq_t);
-
-/*
- * Get idle times (nanoseconds since boot) for physical CPUs specified in the
- * @cpumap_bitmap with range [0..@cpumap_nr_cpus-1]. The @idletime array is
- * indexed by CPU number; only entries with the corresponding @cpumap_bitmap
- * bit set are written to. On return, @cpumap_bitmap is modified so that any
- * non-existent CPUs are cleared. Such CPUs have their @idletime array entry
- * cleared.
- */
-#define DOM0_getidletime         53
-struct dom0_getidletime {
-    /* IN/OUT variables */
-    /* IN: CPUs to interrogate; OUT: subset of IN which are present */
-    XEN_GUEST_HANDLE(uint8_t) cpumap_bitmap;
-    /* IN variables */
-    /* Size of cpumap bitmap. */
-    uint32_t cpumap_nr_cpus;
-    /* Must be indexable for every cpu in cpumap_bitmap. */
-    XEN_GUEST_HANDLE(uint64_t) idletime;
-    /* OUT variables */
-    /* System time when the idletime snapshots were taken. */
-    uint64_t now;
-};
-typedef struct dom0_getidletime dom0_getidletime_t;
-DEFINE_XEN_GUEST_HANDLE(dom0_getidletime_t);
-
 struct dom0_op {
     uint32_t cmd;
     uint32_t interface_version; /* DOM0_INTERFACE_VERSION */
@@ -136,11 +101,6 @@ struct dom0_op {
         struct dom0_microcode         microcode;
         struct dom0_platform_quirk    platform_quirk;
         struct dom0_memory_map_entry  physical_memory_map;
-       struct dom0_change_freq       change_freq;
-       struct dom0_getidletime       getidletime;
-#ifdef CONFIG_X86_64
-       struct xenpf_stratus_call     stratus_call;
-#endif
         uint8_t                       pad[128];
     } u;
 };
index 090681722a242ee98a0b65ef387360969cdae4f9..6c800abd7e7666757120751994f70fc75c5606a1 100644 (file)
@@ -615,6 +615,13 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_subscribe_t);
 #define XEN_DOMCTL_get_machine_address_size  52
 
 
+#define XEN_DOMCTL_setcorespersocket  99
+struct xen_domctl_setcorespersocket {
+    uint32_t cores_per_socket;
+};
+typedef struct xen_domctl_setcorespersocket xen_domctl_setcorespersocket_t;
+DEFINE_XEN_GUEST_HANDLE(xen_domctl_setcorespersocket_t);
+
 struct xen_domctl {
     uint32_t cmd;
     uint32_t interface_version; /* XEN_DOMCTL_INTERFACE_VERSION */
@@ -657,6 +664,7 @@ struct xen_domctl {
 #if defined(__i386__) || defined(__x86_64__)
         struct xen_domctl_cpuid             cpuid;
 #endif
+        struct xen_domctl_setcorespersocket setcorespersocket;
         uint8_t                             pad[128];
     } u;
 };
diff --git a/include/xen/interface/foreign/Makefile b/include/xen/interface/foreign/Makefile
deleted file mode 100644 (file)
index 7bde873..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-XEN_ROOT=../../../..
-include $(XEN_ROOT)/Config.mk
-
-architectures := x86_32 x86_64 ia64
-headers := $(patsubst %, %.h, $(architectures))
-scripts := $(wildcard *.py)
-
-.PHONY: all clean check-headers
-all: $(headers) check-headers
-
-clean:
-       rm -f $(headers)
-       rm -f checker checker.c $(XEN_TARGET_ARCH).size
-       rm -f *.pyc *.o *~
-
-ifeq ($(CROSS_COMPILE)$(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
-check-headers: checker
-       ./checker > $(XEN_TARGET_ARCH).size
-       diff -u reference.size $(XEN_TARGET_ARCH).size
-checker: checker.c $(headers)
-       $(HOSTCC) $(HOSTCFLAGS) -o $@ $<
-else
-check-headers:
-       @echo "cross build: skipping check"
-endif
-
-x86_32.h: ../arch-x86/xen-x86_32.h ../arch-x86/xen.h ../xen.h $(scripts)
-       python mkheader.py $* $@ $(filter %.h,$^)
-
-x86_64.h: ../arch-x86/xen-x86_64.h ../arch-x86/xen.h ../xen.h $(scripts)
-       python mkheader.py $* $@ $(filter %.h,$^)
-
-ia64.h: ../arch-ia64.h ../xen.h $(scripts)
-       python mkheader.py $* $@ $(filter %.h,$^)
-
-checker.c: $(scripts)
-       python mkchecker.py $(XEN_TARGET_ARCH) $@ $(architectures)
diff --git a/include/xen/interface/foreign/mkchecker.py b/include/xen/interface/foreign/mkchecker.py
deleted file mode 100644 (file)
index 9da1e2b..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/python
-
-import sys;
-from structs import structs;
-
-# command line arguments
-arch    = sys.argv[1];
-outfile = sys.argv[2];
-archs   = sys.argv[3:];
-
-f = open(outfile, "w");
-f.write('''
-/*
- * sanity checks for generated foreign headers:
- *  - verify struct sizes
- *
- * generated by %s -- DO NOT EDIT
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <inttypes.h>
-#include "../xen.h"
-''');
-
-for a in archs:
-    f.write('#include "%s.h"\n' % a);
-
-f.write('int main(int argc, char *argv[])\n{\n');
-
-f.write('\tprintf("\\n");');
-f.write('printf("%-25s |", "structs");\n');
-for a in archs:
-    f.write('\tprintf("%%8s", "%s");\n' % a);
-f.write('\tprintf("\\n");');
-
-f.write('\tprintf("\\n");');
-for struct in structs:
-    f.write('\tprintf("%%-25s |", "%s");\n' % struct);
-    for a in archs:
-        if a == arch:
-            s = struct; # native
-        else:
-            s = struct + "_" + a;
-        f.write('#ifdef %s_has_no_%s\n' % (a, struct));
-        f.write('\tprintf("%8s", "-");\n');
-        f.write("#else\n");
-        f.write('\tprintf("%%8zd", sizeof(struct %s));\n' % s);
-        f.write("#endif\n");
-
-    f.write('\tprintf("\\n");\n\n');
-
-f.write('\tprintf("\\n");\n');
-f.write('\texit(0);\n');
-f.write('}\n');
-
-f.close();
-
diff --git a/include/xen/interface/foreign/mkheader.py b/include/xen/interface/foreign/mkheader.py
deleted file mode 100644 (file)
index 3d75a7a..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/python
-
-import sys, re;
-from structs import unions, structs, defines;
-
-# command line arguments
-arch    = sys.argv[1];
-outfile = sys.argv[2];
-infiles = sys.argv[3:];
-
-
-###########################################################################
-# configuration #2: architecture information
-
-inttypes = {};
-header = {};
-footer = {};
-
-# x86_32
-inttypes["x86_32"] = {
-    "unsigned long" : "uint32_t",
-    "long"          : "uint32_t",
-    "xen_pfn_t"     : "uint32_t",
-};
-header["x86_32"] = """
-#define __i386___X86_32 1
-#pragma pack(4)
-""";
-footer["x86_32"] = """
-#pragma pack()
-""";
-
-# x86_64
-inttypes["x86_64"] = {
-    "unsigned long" : "__align8__ uint64_t",
-    "long"          : "__align8__ uint64_t",
-    "xen_pfn_t"     : "__align8__ uint64_t",
-};
-header["x86_64"] = """
-#ifdef __GNUC__
-# define __DECL_REG(name) union { uint64_t r ## name, e ## name; }
-# define __align8__ __attribute__((aligned (8)))
-#else
-# define __DECL_REG(name) uint64_t r ## name
-# define __align8__ FIXME
-#endif
-#define __x86_64___X86_64 1
-""";
-
-# ia64
-inttypes["ia64"] = {
-    "unsigned long" : "__align8__ uint64_t",
-    "long"          : "__align8__ uint64_t",
-    "xen_pfn_t"     : "__align8__ uint64_t",
-    "long double"   : "__align16__ ldouble_t",
-};
-header["ia64"] = """
-#define __align8__ __attribute__((aligned (8)))
-#define __align16__ __attribute__((aligned (16)))
-typedef unsigned char ldouble_t[16];
-""";
-
-
-###########################################################################
-# main
-
-input  = "";
-output = "";
-fileid = re.sub("[-.]", "_", "__FOREIGN_%s__" % outfile.upper());
-
-# read input header files
-for name in infiles:
-    f = open(name, "r");
-    input += f.read();
-    f.close();
-
-# add header
-output += """
-/*
- * public xen defines and struct for %s
- * generated by %s -- DO NOT EDIT
- */
-
-#ifndef %s
-#define %s 1
-
-""" % (arch, sys.argv[0], fileid, fileid)
-
-if arch in header:
-    output += header[arch];
-    output += "\n";
-
-# add defines to output
-for line in re.findall("#define[^\n]+", input):
-    for define in defines:
-        regex = "#define\s+%s\\b" % define;
-        match = re.search(regex, line);
-        if None == match:
-            continue;
-        if define.upper()[0] == define[0]:
-            replace = define + "_" + arch.upper();
-        else:
-            replace = define + "_" + arch;
-        regex = "\\b%s\\b" % define;
-        output += re.sub(regex, replace, line) + "\n";
-output += "\n";
-
-# delete defines, comments, empty lines
-input = re.sub("#define[^\n]+\n", "", input);
-input = re.compile("/\*(.*?)\*/", re.S).sub("", input)
-input = re.compile("\n\s*\n", re.S).sub("\n", input);
-
-# add unions to output
-for union in unions:
-    regex = "union\s+%s\s*\{(.*?)\n\};" % union;
-    match = re.search(regex, input, re.S)
-    if None == match:
-        output += "#define %s_has_no_%s 1\n" % (arch, union);
-    else:
-        output += "union %s_%s {%s\n};\n" % (union, arch, match.group(1));
-    output += "\n";
-
-# add structs to output
-for struct in structs:
-    regex = "struct\s+%s\s*\{(.*?)\n\};" % struct;
-    match = re.search(regex, input, re.S)
-    if None == match:
-        output += "#define %s_has_no_%s 1\n" % (arch, struct);
-    else:
-        output += "struct %s_%s {%s\n};\n" % (struct, arch, match.group(1));
-        output += "typedef struct %s_%s %s_%s_t;\n" % (struct, arch, struct, arch);
-    output += "\n";
-
-# add footer
-if arch in footer:
-    output += footer[arch];
-    output += "\n";
-output += "#endif /* %s */\n" % fileid;
-
-# replace: defines
-for define in defines:
-    if define.upper()[0] == define[0]:
-        replace = define + "_" + arch.upper();
-    else:
-        replace = define + "_" + arch;
-    output = re.sub("\\b%s\\b" % define, replace, output);
-
-# replace: unions
-for union in unions:
-    output = re.sub("\\b(union\s+%s)\\b" % union, "\\1_%s" % arch, output);
-
-# replace: structs + struct typedefs
-for struct in structs:
-    output = re.sub("\\b(struct\s+%s)\\b" % struct, "\\1_%s" % arch, output);
-    output = re.sub("\\b(%s)_t\\b" % struct, "\\1_%s_t" % arch, output);
-
-# replace: integer types
-integers = inttypes[arch].keys();
-integers.sort(lambda a, b: cmp(len(b),len(a)));
-for type in integers:
-    output = re.sub("\\b%s\\b" % type, inttypes[arch][type], output);
-
-# print results
-f = open(outfile, "w");
-f.write(output);
-f.close;
-
diff --git a/include/xen/interface/foreign/reference.size b/include/xen/interface/foreign/reference.size
deleted file mode 100644 (file)
index ead6cd1..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-structs                   |  x86_32  x86_64    ia64
-
-start_info                |    1104    1152    1152
-trap_info                 |       8      16       -
-pt_fpreg                  |       -       -      16
-cpu_user_regs             |      68     200       -
-xen_ia64_boot_param       |       -       -      96
-ia64_tr_entry             |       -       -      32
-vcpu_tr_regs              |       -       -     768
-vcpu_guest_context_regs   |       -       -   22176
-vcpu_guest_context        |    2800    5168   22208
-arch_vcpu_info            |      24      16       0
-vcpu_time_info            |      32      32      32
-vcpu_info                 |      64      64      48
-arch_shared_info          |     268     280     272
-shared_info               |    2584    3368    4384
-
diff --git a/include/xen/interface/foreign/structs.py b/include/xen/interface/foreign/structs.py
deleted file mode 100644 (file)
index 7d51ca8..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-# configuration: what needs translation
-
-unions  = [ "vcpu_cr_regs",
-            "vcpu_ar_regs" ];
-
-structs = [ "start_info",
-            "trap_info",
-            "pt_fpreg",
-            "cpu_user_regs",
-            "xen_ia64_boot_param",
-            "ia64_tr_entry",
-            "vcpu_tr_regs",
-            "vcpu_guest_context_regs",
-            "vcpu_guest_context",
-            "arch_vcpu_info",
-            "vcpu_time_info",
-            "vcpu_info",
-            "arch_shared_info",
-            "shared_info" ];
-
-defines = [ "__i386__",
-            "__x86_64__",
-
-            "FLAT_RING1_CS",
-            "FLAT_RING1_DS",
-            "FLAT_RING1_SS",
-
-            "FLAT_RING3_CS64",
-            "FLAT_RING3_DS64",
-            "FLAT_RING3_SS64",
-            "FLAT_KERNEL_CS64",
-            "FLAT_KERNEL_DS64",
-            "FLAT_KERNEL_SS64",
-
-            "FLAT_KERNEL_CS",
-            "FLAT_KERNEL_DS",
-            "FLAT_KERNEL_SS",
-
-            # x86_{32,64}
-            "_VGCF_i387_valid",
-            "VGCF_i387_valid",
-            "_VGCF_in_kernel",
-            "VGCF_in_kernel",
-            "_VGCF_failsafe_disables_events",
-            "VGCF_failsafe_disables_events",
-            "_VGCF_syscall_disables_events",
-            "VGCF_syscall_disables_events",
-            "_VGCF_online",
-            "VGCF_online",
-
-            # ia64
-            "VGCF_EXTRA_REGS",
-
-            # all archs
-            "xen_pfn_to_cr3",
-            "MAX_VIRT_CPUS",
-            "MAX_GUEST_CMDLINE" ];
-
index dfe34db1e5ca351b14cf290ad2b6d5b5758c8c3d..c7555e8f3d2b8874b3bf49f84e7c5cfb80e8be9b 100644 (file)
@@ -36,6 +36,8 @@ struct hvm_info_table {
     uint8_t     acpi_enabled;
     uint8_t     apic_mode;
     uint32_t    nr_vcpus;
+    uint8_t     size_oem_strings;
+    uint8_t     oem_strings[];
 };
 
 #endif /* __XEN_PUBLIC_HVM_HVM_INFO_TABLE_H__ */
index f0ada2d758d9586eedac80544d9e381067091162..abed8219a6dcb0f6cd360d81cc7feafd34a67fcf 100644 (file)
@@ -73,11 +73,22 @@ DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t);
 /* Flushes all VCPU TLBs: @arg must be NULL. */
 #define HVMOP_flush_tlbs          5
 
+/* Get the current Xen time, in nanoseconds since system boot. */
+#define HVMOP_get_time            6
+struct xen_hvm_get_time {
+    uint64_t now;      /* OUT */
+};
+typedef struct xen_hvm_get_time xen_hvm_get_time_t;
+DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_time_t);
+
+/* Hint from PV drivers for process destruction. */
+#define HVMOP_process_dying       7
+
 /* Following tools-only interfaces may change in future. */
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
 
 /* Track dirty VRAM. */
-#define HVMOP_track_dirty_vram    6
+#define HVMOP_track_dirty_vram    128
 struct xen_hvm_track_dirty_vram {
     /* Domain to be tracked. */
     domid_t  domid;
@@ -93,7 +104,7 @@ typedef struct xen_hvm_track_dirty_vram xen_hvm_track_dirty_vram_t;
 DEFINE_XEN_GUEST_HANDLE(xen_hvm_track_dirty_vram_t);
 
 /* Notify that some pages got modified by the Device Model. */
-#define HVMOP_modified_memory    7
+#define HVMOP_modified_memory    129
 struct xen_hvm_modified_memory {
     /* Domain to be updated. */
     domid_t  domid;
@@ -105,7 +116,7 @@ struct xen_hvm_modified_memory {
 typedef struct xen_hvm_modified_memory xen_hvm_modified_memory_t;
 DEFINE_XEN_GUEST_HANDLE(xen_hvm_modified_memory_t);
 
-#define HVMOP_set_mem_type    8
+#define HVMOP_set_mem_type    130
 typedef enum {
     HVMMEM_ram_rw,             /* Normal read/write guest RAM */
     HVMMEM_ram_ro,             /* Read-only; writes are discarded */
index 5f75ed78e8a756c5abe96966a9c8f974dd5043ec..0b1930979e2e9fdae15f00ad7ddc66300f5e3ec3 100644 (file)
 #define HVM_PARAM_NVRAM_FD     7
 #define HVM_PARAM_VHPT_SIZE    8
 #define HVM_PARAM_BUFPIOREQ_PFN        9
+#else
+/* Should the guest be allowed to use NX bits in page tables? */
+#define HVM_PARAM_NX_ENABLED   7
+
+/* The guest is using 32 bit PV drivers.  Apply suitable translations
+   to shared info and hypercall arguments. */
+#define HVM_PARAM_32BIT        8
+
+/* Should we present the Viridian interface as well as the Xen one? */
+#define HVM_PARAM_VIRIDIAN     9
 #endif
 
+
 /*
  * Set mode for virtual timers (currently x86 only):
  *  delay_for_missed_ticks (default):
diff --git a/include/xen/interface/hvm/vmx_assist.h b/include/xen/interface/hvm/vmx_assist.h
deleted file mode 100644 (file)
index 4ef17fe..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * vmx_assist.h: Context definitions for the VMXASSIST world switch.
- *
- * 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.
- *
- * Leendert van Doorn, leendert@watson.ibm.com
- * Copyright (c) 2005, International Business Machines Corporation.
- */
-
-#ifndef _VMX_ASSIST_H_
-#define _VMX_ASSIST_H_
-
-#define VMXASSIST_BASE         0xD0000
-#define VMXASSIST_MAGIC        0x17101966
-#define VMXASSIST_MAGIC_OFFSET (VMXASSIST_BASE+8)
-
-#define VMXASSIST_NEW_CONTEXT (VMXASSIST_BASE + 12)
-#define VMXASSIST_OLD_CONTEXT (VMXASSIST_NEW_CONTEXT + 4)
-
-#ifndef __ASSEMBLY__
-
-#define NR_EXCEPTION_HANDLER    32
-#define NR_INTERRUPT_HANDLERS   16
-#define NR_TRAPS        (NR_EXCEPTION_HANDLER+NR_INTERRUPT_HANDLERS)
-
-union vmcs_arbytes {
-    struct arbyte_fields {
-        unsigned int seg_type : 4,
-            s         : 1,
-            dpl       : 2,
-            p         : 1,
-            reserved0 : 4,
-            avl       : 1,
-            reserved1 : 1,
-            default_ops_size: 1,
-            g         : 1,
-            null_bit  : 1,
-            reserved2 : 15;
-    } fields;
-    unsigned int bytes;
-};
-
-/*
- * World switch state
- */
-struct vmx_assist_context {
-    uint32_t  eip;        /* execution pointer */
-    uint32_t  esp;        /* stack pointer */
-    uint32_t  eflags;     /* flags register */
-    uint32_t  cr0;
-    uint32_t  cr3;        /* page table directory */
-    uint32_t  cr4;
-    uint32_t  idtr_limit; /* idt */
-    uint32_t  idtr_base;
-    uint32_t  gdtr_limit; /* gdt */
-    uint32_t  gdtr_base;
-    uint32_t  cs_sel;     /* cs selector */
-    uint32_t  cs_limit;
-    uint32_t  cs_base;
-    union vmcs_arbytes cs_arbytes;
-    uint32_t  ds_sel;     /* ds selector */
-    uint32_t  ds_limit;
-    uint32_t  ds_base;
-    union vmcs_arbytes ds_arbytes;
-    uint32_t  es_sel;     /* es selector */
-    uint32_t  es_limit;
-    uint32_t  es_base;
-    union vmcs_arbytes es_arbytes;
-    uint32_t  ss_sel;     /* ss selector */
-    uint32_t  ss_limit;
-    uint32_t  ss_base;
-    union vmcs_arbytes ss_arbytes;
-    uint32_t  fs_sel;     /* fs selector */
-    uint32_t  fs_limit;
-    uint32_t  fs_base;
-    union vmcs_arbytes fs_arbytes;
-    uint32_t  gs_sel;     /* gs selector */
-    uint32_t  gs_limit;
-    uint32_t  gs_base;
-    union vmcs_arbytes gs_arbytes;
-    uint32_t  tr_sel;     /* task selector */
-    uint32_t  tr_limit;
-    uint32_t  tr_base;
-    union vmcs_arbytes tr_arbytes;
-    uint32_t  ldtr_sel;   /* ldtr selector */
-    uint32_t  ldtr_limit;
-    uint32_t  ldtr_base;
-    union vmcs_arbytes ldtr_arbytes;
-
-    unsigned char rm_irqbase[2];
-};
-typedef struct vmx_assist_context vmx_assist_context_t;
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* _VMX_ASSIST_H_ */
-
-/*
- * Local variables:
- * mode: C
- * c-set-style: "BSD"
- * c-basic-offset: 4
- * tab-width: 4
- * indent-tabs-mode: nil
- * End:
- */
index f6a49ab6bf6546d40ba2643c115ed3bd6dfb044a..b2660cd4b228d1b1b92702f8a8965d51775fdb41 100644 (file)
@@ -47,7 +47,8 @@ enum xsd_sockmsg_type
     XS_ERROR,
     XS_IS_DOMAIN_INTRODUCED,
     XS_RESUME,
-    XS_SET_TARGET
+    XS_SET_TARGET,
+    XS_RESTRICT
 };
 
 #define XS_WRITE_NONE "NONE"
index d7b9fff97216346a200e6455baa7d6c6e2304165..ac81a73a7a9f450d7594a92486cb2e1b785a14ef 100644 (file)
@@ -202,9 +202,16 @@ struct xen_add_to_physmap {
     domid_t domid;
 
     /* Source mapping space. */
-#define XENMAPSPACE_shared_info 0 /* shared info page */
-#define XENMAPSPACE_grant_table 1 /* grant table page */
-#define XENMAPSPACE_mfn         2 /* usual MFN */
+/* shared info page.  Puts the domain into compat mode on 64 bit
+   hypervisors. */
+#define XENMAPSPACE_shared_info_compat 0
+#define XENMAPSPACE_grant_table   1 /* grant table page */
+/* Mapping space 2 was the now defunct "device model" or PV-PIT page */
+#define XENMAPSPACE_vlapic        3 /* per-vcpu vlapic register page */
+#define XENMAPSPACE_shared_info   4 /* shared info page.  Does not trigger
+                                       compatibility mode. */
+#define XENMAPSPACE_physical      0x80000001 /* Remap a page from one
+                                                PFN to another. */
     unsigned int space;
 
     /* Index into source mapping space. */
@@ -216,22 +223,6 @@ struct xen_add_to_physmap {
 typedef struct xen_add_to_physmap xen_add_to_physmap_t;
 DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
 
-/*
- * Unmaps the page appearing at a particular GPFN from the specified guest's
- * pseudophysical address space.
- * arg == addr of xen_remove_from_physmap_t.
- */
-#define XENMEM_remove_from_physmap      15
-struct xen_remove_from_physmap {
-    /* Which domain to change the mapping for. */
-    domid_t domid;
-
-    /* GPFN of the current mapping of the page. */
-    xen_pfn_t     gpfn;
-};
-typedef struct xen_remove_from_physmap xen_remove_from_physmap_t;
-DEFINE_XEN_GUEST_HANDLE(xen_remove_from_physmap_t);
-
 /*
  * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
  * code on failure. This call only works for auto-translated guests.
index 4ec942b7c1e6b7012b2da709efe248f61f596451..649925709325745f49800cf32e90e500070e8b91 100644 (file)
@@ -28,9 +28,6 @@
 #define __XEN_PUBLIC_PLATFORM_H__
 
 #include "xen.h"
-#ifdef CONFIG_X86_64
-#include "stratus.h"
-#endif
 
 #define XENPF_INTERFACE_VERSION 0x03000001
 
@@ -100,7 +97,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_read_memtype_t);
 #define XENPF_microcode_update    35
 struct xenpf_microcode_update {
     /* IN variables. */
-    XEN_GUEST_HANDLE(const_void) data;/* Pointer to microcode data */
+    XEN_GUEST_HANDLE(void) data;      /* Pointer to microcode data */
     uint32_t length;                  /* Length of microcode data. */
 };
 typedef struct xenpf_microcode_update xenpf_microcode_update_t;
@@ -121,6 +118,7 @@ DEFINE_XEN_GUEST_HANDLE(xenpf_platform_quirk_t);
 #define XEN_FW_DISK_INFO          1 /* from int 13 AH=08/41/48 */
 #define XEN_FW_DISK_MBR_SIGNATURE 2 /* from MBR offset 0x1b8 */
 #define XEN_FW_VBEDDC_INFO        3 /* from int 10 AX=4f15 */
+#define XEN_FW_DMI_OEM_STRINGS    4 /* from DMI table */
 struct xenpf_firmware_info {
     /* IN variables. */
     uint32_t type;
@@ -151,6 +149,10 @@ struct xenpf_firmware_info {
             /* must refer to 128-byte buffer */
             XEN_GUEST_HANDLE(uint8) edid;
         } vbeddc_info; /* XEN_FW_VBEDDC_INFO */
+        struct {
+            uint16_t size;
+            XEN_GUEST_HANDLE(uint8) strings;
+        } dmi_oem_strings; /* XEN_FW_DMI_OEM_STRINGS */
     } u;
 };
 typedef struct xenpf_firmware_info xenpf_firmware_info_t;
index 2227a95be625697da21fe54aeaf2c9b574094a7d..ac0992670cfdd65973eb6f48e5e5b8312c2947e5 100644 (file)
@@ -98,6 +98,29 @@ struct sched_remote_shutdown {
 typedef struct sched_remote_shutdown sched_remote_shutdown_t;
 DEFINE_XEN_GUEST_HANDLE(sched_remote_shutdown_t);
 
+/*
+ * Setup, poke and destroy a domain watchdog timer.
+ * @arg == pointer to sched_watchdog structure.
+ * With id == 0, setup a domain watchdog timer to cause domain shutdown
+ *               after timeout, returns watchdog id.
+ * With id != 0 and timeout == 0, destroy domain watchdog timer.
+ * With id != 0 and timeout != 0, poke watchdog timer and set new timeout.
+ */
+#define SCHEDOP_watchdog    6
+struct sched_watchdog {
+    uint32_t id;                /* watchdog ID */
+    uint32_t timeout;           /* timeout */
+};
+typedef struct sched_watchdog sched_watchdog_t;
+DEFINE_XEN_GUEST_HANDLE(sched_watchdog_t);
+
+/*
+ * Latch a shutdown code, so that when the domain later shuts down it
+ * reports this code to the control tools.
+ * @arg == as for SCHEDOP_shutdown.
+ */
+#define SCHEDOP_shutdown_code 5
+
 /*
  * Reason codes for SCHEDOP_shutdown. These may be interpreted by control
  * software to determine the appropriate action. For the most part, Xen does
@@ -107,6 +130,7 @@ DEFINE_XEN_GUEST_HANDLE(sched_remote_shutdown_t);
 #define SHUTDOWN_reboot     1  /* Clean up, kill, and then restart.          */
 #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.     */
 
 #endif /* __XEN_PUBLIC_SCHED_H__ */
 
diff --git a/include/xen/interface/stratus.h b/include/xen/interface/stratus.h
deleted file mode 100644 (file)
index a224444..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef _CC_INTERFACE_H
-#define _CC_INTERFACE_H
-
-// Clear the entire Host BIOS vector
-#define CC_HBV_MEMSET                  1       
-// Read/Write from page 0 (HBV or DUMP)
-#define CC_RW_REGION                   2
-// Trigger SMI through local apic
-#define CC_TRIGGER_SMI                 3
-// Return local cpu apic id
-#define CC_LAPIC_ID                    4
-// Get/Set CR4.
-#define CC_CR4                         5
-// Get cpuid
-#define CC_CPUID                       6
-// Read/Write MSRs
-#define CC_RW_MSR                      7
-// Are we on a Stratus box?
-#define CC_VALIDATE_PLATFORM           8
-
-// Page 0 regions to read/write (host bios vector or dump vector signature).
-#define        RW_HBV          1
-#define        RW_DUMPVEC      2
-
-struct cr4_struct {
-       int rw;         // 0 = read, 1 = write.
-       unsigned long cr4;
-};
-
-struct cpuid_struct {
-       unsigned int op;
-       unsigned int eax, ebx, ecx, edx;        
-};
-
-struct msr_struct {
-       int rw;
-       unsigned int msr;
-       unsigned long val;
-};
-
-struct lapic_struct {
-       int id;
-};
-
-struct rw_struct {
-       int rw;                 // 0 = read, 1 = write
-       int region;             // RW_HBV or RW_CONTIG
-       void *data;
-       unsigned long where;    // offset in region
-       int size;
-};
-
-struct smi_struct {
-       unsigned int dest;
-};
-
-struct hbv_memset_struct {
-       int val;
-       int size;
-};
-
-struct xenpf_stratus_call {
-       int cmd;
-       int ret;
-       union {
-               struct smi_struct smi;
-               struct hbv_memset_struct hbv_m;
-               struct rw_struct rw;
-               struct lapic_struct ls;
-               struct cr4_struct cr4;
-               struct cpuid_struct cpuid;
-               struct msr_struct msr;
-       } u;
-};
-
-#endif
index 8f43f6bed91edc5e77f933c69f78ece9fb029ca0..c889d48f887105de321a28b3fe967f89d8a2a737 100644 (file)
@@ -70,6 +70,7 @@
 #define TRC_SCHED_DOM_TIMER_FN  (TRC_SCHED + 13)
 #define TRC_SCHED_SWITCH_INFPREV (TRC_SCHED + 14)
 #define TRC_SCHED_SWITCH_INFNEXT (TRC_SCHED + 15)
+#define TRC_SCHED_SHUTDOWN_CODE (TRC_SCHED +  16)
 
 #define TRC_MEM_PAGE_GRANT_MAP      (TRC_MEM + 1)
 #define TRC_MEM_PAGE_GRANT_UNMAP    (TRC_MEM + 2)