ia64/linux-2.6.18-xen.hg

changeset 711:61eafcbeaeb4

Sync Xen hypervisor public headers.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Mon Oct 27 13:34:34 2008 +0000 (2008-10-27)
parents 9750ab8d7faa
children 03a4b2b9d85d
files include/xen/interface/arch-ia64/hvm/save.h include/xen/interface/arch-x86/hvm/save.h include/xen/interface/domctl.h include/xen/interface/features.h include/xen/interface/hvm/params.h include/xen/interface/kexec.h include/xen/interface/trace.h include/xen/interface/xen.h
line diff
     1.1 --- a/include/xen/interface/arch-ia64/hvm/save.h	Mon Oct 27 10:43:45 2008 +0000
     1.2 +++ b/include/xen/interface/arch-ia64/hvm/save.h	Mon Oct 27 13:34:34 2008 +0000
     1.3 @@ -106,7 +106,11 @@ DECLARE_HVM_SAVE_TYPE(VTIME, 5, struct h
     1.4   */
     1.5  #define VIOSAPIC_NUM_PINS     48
     1.6  
     1.7 -union viosapic_rte
     1.8 +/* To share VT-d code which uses vioapic_redir_entry.
     1.9 + * Although on ia64 this is for vsapic, but we have to vioapic_redir_entry
    1.10 + * instead of viosapic_redir_entry.
    1.11 + */
    1.12 +union vioapic_redir_entry
    1.13  {
    1.14      uint64_t bits;
    1.15      struct {
    1.16 @@ -124,7 +128,7 @@ union viosapic_rte
    1.17  
    1.18          uint8_t reserved[3];
    1.19          uint16_t dest_id;
    1.20 -    }; 
    1.21 +    } fields;
    1.22  };
    1.23  
    1.24  struct hvm_hw_ia64_viosapic {
    1.25 @@ -134,7 +138,7 @@ struct hvm_hw_ia64_viosapic {
    1.26      uint32_t    pad;
    1.27      uint64_t    lowest_vcpu_id;
    1.28      uint64_t    base_address;
    1.29 -    union viosapic_rte  redirtbl[VIOSAPIC_NUM_PINS];
    1.30 +    union vioapic_redir_entry  redirtbl[VIOSAPIC_NUM_PINS];
    1.31  };
    1.32  DECLARE_HVM_SAVE_TYPE(VIOSAPIC, 6, struct hvm_hw_ia64_viosapic);
    1.33    
     2.1 --- a/include/xen/interface/arch-x86/hvm/save.h	Mon Oct 27 10:43:45 2008 +0000
     2.2 +++ b/include/xen/interface/arch-x86/hvm/save.h	Mon Oct 27 13:34:34 2008 +0000
     2.3 @@ -421,9 +421,20 @@ struct hvm_hw_mtrr {
     2.4  
     2.5  DECLARE_HVM_SAVE_TYPE(MTRR, 14, struct hvm_hw_mtrr);
     2.6  
     2.7 +/*
     2.8 + * Viridian hypervisor context.
     2.9 + */
    2.10 +
    2.11 +struct hvm_viridian_context {
    2.12 +    uint64_t hypercall_gpa;
    2.13 +    uint64_t guest_os_id;
    2.14 +};
    2.15 +
    2.16 +DECLARE_HVM_SAVE_TYPE(VIRIDIAN, 15, struct hvm_viridian_context);
    2.17 +
    2.18  /* 
    2.19   * Largest type-code in use
    2.20   */
    2.21 -#define HVM_SAVE_CODE_MAX 14
    2.22 +#define HVM_SAVE_CODE_MAX 15
    2.23  
    2.24  #endif /* __XEN_PUBLIC_HVM_SAVE_X86_H__ */
     3.1 --- a/include/xen/interface/domctl.h	Mon Oct 27 10:43:45 2008 +0000
     3.2 +++ b/include/xen/interface/domctl.h	Mon Oct 27 13:34:34 2008 +0000
     3.3 @@ -614,6 +614,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_subsc
     3.4  #define XEN_DOMCTL_set_machine_address_size  51
     3.5  #define XEN_DOMCTL_get_machine_address_size  52
     3.6  
     3.7 +/*
     3.8 + * Do not inject spurious page faults into this domain.
     3.9 + */
    3.10 +#define XEN_DOMCTL_suppress_spurious_page_faults 53
    3.11  
    3.12  struct xen_domctl {
    3.13      uint32_t cmd;
     4.1 --- a/include/xen/interface/features.h	Mon Oct 27 10:43:45 2008 +0000
     4.2 +++ b/include/xen/interface/features.h	Mon Oct 27 13:34:34 2008 +0000
     4.3 @@ -59,6 +59,9 @@
     4.4  /* x86: Does this Xen host support the MMU_PT_UPDATE_PRESERVE_AD hypercall? */
     4.5  #define XENFEAT_mmu_pt_update_preserve_ad  5
     4.6  
     4.7 +/* x86: Does this Xen host support the MMU_{CLEAR,COPY}_PAGE hypercall? */
     4.8 +#define XENFEAT_highmem_assist             6
     4.9 +
    4.10  #define XENFEAT_NR_SUBMAPS 1
    4.11  
    4.12  #endif /* __XEN_PUBLIC_FEATURES_H__ */
     5.1 --- a/include/xen/interface/hvm/params.h	Mon Oct 27 10:43:45 2008 +0000
     5.2 +++ b/include/xen/interface/hvm/params.h	Mon Oct 27 13:34:34 2008 +0000
     5.3 @@ -51,9 +51,16 @@
     5.4  #define HVM_PARAM_BUFIOREQ_PFN 6
     5.5  
     5.6  #ifdef __ia64__
     5.7 +
     5.8  #define HVM_PARAM_NVRAM_FD     7
     5.9  #define HVM_PARAM_VHPT_SIZE    8
    5.10  #define HVM_PARAM_BUFPIOREQ_PFN	9
    5.11 +
    5.12 +#elif defined(__i386__) || defined(__x86_64__)
    5.13 +
    5.14 +/* Expose Viridian interfaces to this HVM guest? */
    5.15 +#define HVM_PARAM_VIRIDIAN     9
    5.16 +
    5.17  #endif
    5.18  
    5.19  /*
     6.1 --- a/include/xen/interface/kexec.h	Mon Oct 27 10:43:45 2008 +0000
     6.2 +++ b/include/xen/interface/kexec.h	Mon Oct 27 13:34:34 2008 +0000
     6.3 @@ -175,8 +175,6 @@ void vmcoreinfo_append_str(const char *f
     6.4  #define VMCOREINFO_OFFSET_ALIAS(name, field, alias) \
     6.5         vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #alias, \
     6.6                               (unsigned long)offsetof(struct name, field))
     6.7 -extern size_t vmcoreinfo_size_xen;
     6.8 -extern unsigned long paddr_vmcoreinfo_xen;
     6.9  
    6.10  #endif /* _XEN_PUBLIC_KEXEC_H */
    6.11  
     7.1 --- a/include/xen/interface/trace.h	Mon Oct 27 10:43:45 2008 +0000
     7.2 +++ b/include/xen/interface/trace.h	Mon Oct 27 13:34:34 2008 +0000
     7.3 @@ -38,6 +38,7 @@
     7.4  #define TRC_MEM      0x0010f000    /* Xen memory trace         */
     7.5  #define TRC_PV       0x0020f000    /* Xen PV traces            */
     7.6  #define TRC_SHADOW   0x0040f000    /* Xen shadow tracing       */
     7.7 +#define TRC_PM       0x0080f000    /* Xen power management trace */
     7.8  #define TRC_ALL      0x0ffff000
     7.9  #define TRC_HD_TO_EVENT(x) ((x)&0x0fffffff)
    7.10  #define TRC_HD_CYCLE_FLAG (1UL<<31)
    7.11 @@ -146,6 +147,15 @@
    7.12  #define TRC_HVM_LMSW            (TRC_HVM_HANDLER + 0x19)
    7.13  #define TRC_HVM_LMSW64          (TRC_HVM_HANDLER + TRC_64_FLAG + 0x19)
    7.14  
    7.15 +/* trace subclasses for power management */
    7.16 +#define TRC_PM_FREQ     0x00801000      /* xen cpu freq events */
    7.17 +#define TRC_PM_IDLE     0x00802000      /* xen cpu idle events */
    7.18 +
    7.19 +/* trace events for per class */
    7.20 +#define TRC_PM_FREQ_CHANGE      (TRC_PM_FREQ + 0x01)
    7.21 +#define TRC_PM_IDLE_ENTRY       (TRC_PM_IDLE + 0x01)
    7.22 +#define TRC_PM_IDLE_EXIT        (TRC_PM_IDLE + 0x02)
    7.23 +
    7.24  /* This structure represents a single trace buffer record. */
    7.25  struct t_rec {
    7.26      uint32_t event:28;
     8.1 --- a/include/xen/interface/xen.h	Mon Oct 27 10:43:45 2008 +0000
     8.2 +++ b/include/xen/interface/xen.h	Mon Oct 27 13:34:34 2008 +0000
     8.3 @@ -231,6 +231,13 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
     8.4   * cmd: MMUEXT_SET_LDT
     8.5   * linear_addr: Linear address of LDT base (NB. must be page-aligned).
     8.6   * nr_ents: Number of entries in LDT.
     8.7 + *
     8.8 + * cmd: MMUEXT_CLEAR_PAGE
     8.9 + * mfn: Machine frame number to be cleared.
    8.10 + *
    8.11 + * cmd: MMUEXT_COPY_PAGE
    8.12 + * mfn: Machine frame number of the destination page.
    8.13 + * src_mfn: Machine frame number of the source page.
    8.14   */
    8.15  #define MMUEXT_PIN_L1_TABLE      0
    8.16  #define MMUEXT_PIN_L2_TABLE      1
    8.17 @@ -247,12 +254,15 @@ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
    8.18  #define MMUEXT_FLUSH_CACHE      12
    8.19  #define MMUEXT_SET_LDT          13
    8.20  #define MMUEXT_NEW_USER_BASEPTR 15
    8.21 +#define MMUEXT_CLEAR_PAGE       16
    8.22 +#define MMUEXT_COPY_PAGE        17
    8.23  
    8.24  #ifndef __ASSEMBLY__
    8.25  struct mmuext_op {
    8.26      unsigned int cmd;
    8.27      union {
    8.28 -        /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
    8.29 +        /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR
    8.30 +         * CLEAR_PAGE, COPY_PAGE */
    8.31          xen_pfn_t     mfn;
    8.32          /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
    8.33          unsigned long linear_addr;
    8.34 @@ -266,6 +276,8 @@ struct mmuext_op {
    8.35  #else
    8.36          void *vcpumask;
    8.37  #endif
    8.38 +        /* COPY_PAGE */
    8.39 +        xen_pfn_t src_mfn;
    8.40      } arg2;
    8.41  };
    8.42  typedef struct mmuext_op mmuext_op_t;