# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1225114474 0
# Node ID 61eafcbeaeb4c37bd7f2fa8b1ca790ab5326c3bd
# Parent 9750ab8d7faa8a9503810d38fa4c072f57163b68
Sync Xen hypervisor public headers.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
include/xen/interface/arch-ia64/hvm/save.h | 10 +++++++---
include/xen/interface/arch-x86/hvm/save.h | 13 ++++++++++++-
include/xen/interface/domctl.h | 4 ++++
include/xen/interface/features.h | 3 +++
include/xen/interface/hvm/params.h | 7 +++++++
include/xen/interface/kexec.h | 2 --
include/xen/interface/trace.h | 10 ++++++++++
include/xen/interface/xen.h | 14 +++++++++++++-
8 files changed, 56 insertions(+), 7 deletions(-)
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/arch-ia64/hvm/save.h
--- a/include/xen/interface/arch-ia64/hvm/save.h Mon Oct 27 10:43:45
2008 +0000
+++ b/include/xen/interface/arch-ia64/hvm/save.h Mon Oct 27 13:34:34
2008 +0000
@@ -106,7 +106,11 @@ DECLARE_HVM_SAVE_TYPE(VTIME, 5, struct h
*/
#define VIOSAPIC_NUM_PINS 48
-union viosapic_rte
+/* To share VT-d code which uses vioapic_redir_entry.
+ * Although on ia64 this is for vsapic, but we have to vioapic_redir_entry
+ * instead of viosapic_redir_entry.
+ */
+union vioapic_redir_entry
{
uint64_t bits;
struct {
@@ -124,7 +128,7 @@ union viosapic_rte
uint8_t reserved[3];
uint16_t dest_id;
- };
+ } fields;
};
struct hvm_hw_ia64_viosapic {
@@ -134,7 +138,7 @@ struct hvm_hw_ia64_viosapic {
uint32_t pad;
uint64_t lowest_vcpu_id;
uint64_t base_address;
- union viosapic_rte redirtbl[VIOSAPIC_NUM_PINS];
+ union vioapic_redir_entry redirtbl[VIOSAPIC_NUM_PINS];
};
DECLARE_HVM_SAVE_TYPE(VIOSAPIC, 6, struct hvm_hw_ia64_viosapic);
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/arch-x86/hvm/save.h
--- a/include/xen/interface/arch-x86/hvm/save.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/arch-x86/hvm/save.h Mon Oct 27 13:34:34 2008 +0000
@@ -421,9 +421,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__ */
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/domctl.h
--- a/include/xen/interface/domctl.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/domctl.h Mon Oct 27 13:34:34 2008 +0000
@@ -614,6 +614,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_subsc
#define XEN_DOMCTL_set_machine_address_size 51
#define XEN_DOMCTL_get_machine_address_size 52
+/*
+ * Do not inject spurious page faults into this domain.
+ */
+#define XEN_DOMCTL_suppress_spurious_page_faults 53
struct xen_domctl {
uint32_t cmd;
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/features.h
--- a/include/xen/interface/features.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/features.h Mon Oct 27 13:34:34 2008 +0000
@@ -59,6 +59,9 @@
/* x86: Does this Xen host support the MMU_PT_UPDATE_PRESERVE_AD hypercall? */
#define XENFEAT_mmu_pt_update_preserve_ad 5
+/* x86: Does this Xen host support the MMU_{CLEAR,COPY}_PAGE hypercall? */
+#define XENFEAT_highmem_assist 6
+
#define XENFEAT_NR_SUBMAPS 1
#endif /* __XEN_PUBLIC_FEATURES_H__ */
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/hvm/params.h
--- a/include/xen/interface/hvm/params.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/hvm/params.h Mon Oct 27 13:34:34 2008 +0000
@@ -51,9 +51,16 @@
#define HVM_PARAM_BUFIOREQ_PFN 6
#ifdef __ia64__
+
#define HVM_PARAM_NVRAM_FD 7
#define HVM_PARAM_VHPT_SIZE 8
#define HVM_PARAM_BUFPIOREQ_PFN 9
+
+#elif defined(__i386__) || defined(__x86_64__)
+
+/* Expose Viridian interfaces to this HVM guest? */
+#define HVM_PARAM_VIRIDIAN 9
+
#endif
/*
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/kexec.h
--- a/include/xen/interface/kexec.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/kexec.h Mon Oct 27 13:34:34 2008 +0000
@@ -175,8 +175,6 @@ void vmcoreinfo_append_str(const char *f
#define VMCOREINFO_OFFSET_ALIAS(name, field, alias) \
vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #alias, \
(unsigned long)offsetof(struct name, field))
-extern size_t vmcoreinfo_size_xen;
-extern unsigned long paddr_vmcoreinfo_xen;
#endif /* _XEN_PUBLIC_KEXEC_H */
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/trace.h
--- a/include/xen/interface/trace.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/trace.h Mon Oct 27 13:34:34 2008 +0000
@@ -38,6 +38,7 @@
#define TRC_MEM 0x0010f000 /* Xen memory trace */
#define TRC_PV 0x0020f000 /* Xen PV traces */
#define TRC_SHADOW 0x0040f000 /* Xen shadow tracing */
+#define TRC_PM 0x0080f000 /* Xen power management trace */
#define TRC_ALL 0x0ffff000
#define TRC_HD_TO_EVENT(x) ((x)&0x0fffffff)
#define TRC_HD_CYCLE_FLAG (1UL<<31)
@@ -146,6 +147,15 @@
#define TRC_HVM_LMSW (TRC_HVM_HANDLER + 0x19)
#define TRC_HVM_LMSW64 (TRC_HVM_HANDLER + TRC_64_FLAG + 0x19)
+/* trace subclasses for power management */
+#define TRC_PM_FREQ 0x00801000 /* xen cpu freq events */
+#define TRC_PM_IDLE 0x00802000 /* xen cpu idle events */
+
+/* trace events for per class */
+#define TRC_PM_FREQ_CHANGE (TRC_PM_FREQ + 0x01)
+#define TRC_PM_IDLE_ENTRY (TRC_PM_IDLE + 0x01)
+#define TRC_PM_IDLE_EXIT (TRC_PM_IDLE + 0x02)
+
/* This structure represents a single trace buffer record. */
struct t_rec {
uint32_t event:28;
diff -r 9750ab8d7faa -r 61eafcbeaeb4 include/xen/interface/xen.h
--- a/include/xen/interface/xen.h Mon Oct 27 10:43:45 2008 +0000
+++ b/include/xen/interface/xen.h Mon Oct 27 13:34:34 2008 +0000
@@ -231,6 +231,13 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
* cmd: MMUEXT_SET_LDT
* linear_addr: Linear address of LDT base (NB. must be page-aligned).
* nr_ents: Number of entries in LDT.
+ *
+ * cmd: MMUEXT_CLEAR_PAGE
+ * mfn: Machine frame number to be cleared.
+ *
+ * cmd: MMUEXT_COPY_PAGE
+ * mfn: Machine frame number of the destination page.
+ * src_mfn: Machine frame number of the source page.
*/
#define MMUEXT_PIN_L1_TABLE 0
#define MMUEXT_PIN_L2_TABLE 1
@@ -247,12 +254,15 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
#define MMUEXT_FLUSH_CACHE 12
#define MMUEXT_SET_LDT 13
#define MMUEXT_NEW_USER_BASEPTR 15
+#define MMUEXT_CLEAR_PAGE 16
+#define MMUEXT_COPY_PAGE 17
#ifndef __ASSEMBLY__
struct mmuext_op {
unsigned int cmd;
union {
- /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
+ /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR
+ * CLEAR_PAGE, COPY_PAGE */
xen_pfn_t mfn;
/* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
unsigned long linear_addr;
@@ -266,6 +276,8 @@ struct mmuext_op {
#else
void *vcpumask;
#endif
+ /* COPY_PAGE */
+ xen_pfn_t src_mfn;
} arg2;
};
typedef struct mmuext_op mmuext_op_t;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|