[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 Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1200412771 0
# Node ID 854690f06ed9a154b7f3bea75ba7b2b53afc3e29
# Parent  5f64a1735b3cc2940219dbf073ad92aa2caa8e13
Sync Xen public headers.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 include/xen/interface/arch-powerpc.h        |    4 ++-
 include/xen/interface/arch-x86/hvm/save.h   |   19 ++++++++++++++++-
 include/xen/interface/arch-x86/xen-x86_32.h |    4 +--
 include/xen/interface/arch-x86/xen.h        |   14 +++++++-----
 include/xen/interface/domctl.h              |   27 +++++++++++++-----------
 include/xen/interface/grant_table.h         |    6 +++--
 include/xen/interface/hvm/ioreq.h           |   19 +++++++++++++----
 include/xen/interface/hvm/params.h          |   31 +++++++++++++++++++++++++---
 include/xen/interface/io/xs_wire.h          |    7 ++++++
 include/xen/interface/physdev.h             |    2 -
 include/xen/interface/platform.h            |    6 ++---
 include/xen/interface/sysctl.h              |    2 -
 12 files changed, 105 insertions(+), 36 deletions(-)

diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/arch-powerpc.h
--- a/include/xen/interface/arch-powerpc.h      Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/arch-powerpc.h      Tue Jan 15 15:59:31 2008 +0000
@@ -25,12 +25,14 @@
 #ifndef __XEN_PUBLIC_ARCH_PPC_64_H__
 #define __XEN_PUBLIC_ARCH_PPC_64_H__
 
-#define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+#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 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) \
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/arch-x86/hvm/save.h
--- a/include/xen/interface/arch-x86/hvm/save.h Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/arch-x86/hvm/save.h Tue Jan 15 15:59:31 2008 +0000
@@ -405,9 +405,26 @@ struct hvm_hw_pmtimer {
 
 DECLARE_HVM_SAVE_TYPE(PMTIMER, 13, struct hvm_hw_pmtimer);
 
+/*
+ * MTRR MSRs
+ */
+
+struct hvm_hw_mtrr {
+#define MTRR_VCNT 8
+#define NUM_FIXED_MSR 11
+    uint64_t msr_pat_cr;
+    /* mtrr physbase & physmask msr pair*/
+    uint64_t msr_mtrr_var[MTRR_VCNT*2];
+    uint64_t msr_mtrr_fixed[NUM_FIXED_MSR];
+    uint64_t msr_mtrr_cap;
+    uint64_t msr_mtrr_def_type;
+};
+
+DECLARE_HVM_SAVE_TYPE(MTRR, 14, struct hvm_hw_mtrr);
+
 /* 
  * Largest type-code in use
  */
-#define HVM_SAVE_CODE_MAX 13
+#define HVM_SAVE_CODE_MAX 14
 
 #endif /* __XEN_PUBLIC_HVM_SAVE_X86_H__ */
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/arch-x86/xen-x86_32.h
--- a/include/xen/interface/arch-x86/xen-x86_32.h       Tue Jan 15 14:35:41 
2008 +0000
+++ b/include/xen/interface/arch-x86/xen-x86_32.h       Tue Jan 15 15:59:31 
2008 +0000
@@ -107,8 +107,8 @@
 
 /* 32-/64-bit invariability for control interfaces (domctl/sysctl). */
 #if defined(__XEN__) || defined(__XEN_TOOLS__)
-#undef __DEFINE_XEN_GUEST_HANDLE
-#define __DEFINE_XEN_GUEST_HANDLE(name, type)                   \
+#undef ___DEFINE_XEN_GUEST_HANDLE
+#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
     typedef struct { type *p; }                                 \
         __guest_handle_ ## name;                                \
     typedef struct { union { type *p; uint64_aligned_t q; }; }  \
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/arch-x86/xen.h
--- a/include/xen/interface/arch-x86/xen.h      Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/arch-x86/xen.h      Tue Jan 15 15:59:31 2008 +0000
@@ -29,13 +29,15 @@
 
 /* Structural guest handles introduced in 0x00030201. */
 #if __XEN_INTERFACE_VERSION__ >= 0x00030201
+#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+    typedef struct { type *p; } __guest_handle_ ## name
+#else
+#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+    typedef type * __guest_handle_ ## name
+#endif
+
 #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-    typedef struct { type *p; } __guest_handle_ ## name
-#else
-#define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-    typedef type * __guest_handle_ ## name
-#endif
-
+    ___DEFINE_XEN_GUEST_HANDLE(name, type)
 #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
 #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
 #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/domctl.h
--- a/include/xen/interface/domctl.h    Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/domctl.h    Tue Jan 15 15:59:31 2008 +0000
@@ -37,7 +37,7 @@
 #define XEN_DOMCTL_INTERFACE_VERSION 0x00000005
 
 struct xenctl_cpumap {
-    XEN_GUEST_HANDLE_64(uint8_t) bitmap;
+    XEN_GUEST_HANDLE_64(uint8) bitmap;
     uint32_t nr_cpus;
 };
 
@@ -115,7 +115,7 @@ struct xen_domctl_getmemlist {
     uint64_aligned_t max_pfns;
     /* Start index in guest's page list. */
     uint64_aligned_t start_pfn;
-    XEN_GUEST_HANDLE_64(uint64_t) buffer;
+    XEN_GUEST_HANDLE_64(uint64) buffer;
     /* OUT variables. */
     uint64_aligned_t num_pfns;
 };
@@ -152,7 +152,7 @@ struct xen_domctl_getpageframeinfo2 {
     /* IN variables. */
     uint64_aligned_t num;
     /* IN/OUT variables. */
-    XEN_GUEST_HANDLE_64(uint32_t) array;
+    XEN_GUEST_HANDLE_64(uint32) array;
 };
 typedef struct xen_domctl_getpageframeinfo2 xen_domctl_getpageframeinfo2_t;
 DEFINE_XEN_GUEST_HANDLE(xen_domctl_getpageframeinfo2_t);
@@ -226,7 +226,7 @@ struct xen_domctl_shadow_op {
     uint32_t       mb;       /* Shadow memory allocation in MB */
 
     /* OP_PEEK / OP_CLEAN */
-    XEN_GUEST_HANDLE_64(uint8_t) dirty_bitmap;
+    XEN_GUEST_HANDLE_64(uint8) dirty_bitmap;
     uint64_aligned_t pages; /* Size of buffer. Updated with actual size. */
     struct xen_domctl_shadow_op_stats stats;
 };
@@ -398,10 +398,9 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_setti
 #define XEN_DOMCTL_sethvmcontext     34
 typedef struct xen_domctl_hvmcontext {
     uint32_t size; /* IN/OUT: size of buffer / bytes filled */
-    XEN_GUEST_HANDLE_64(uint8_t) buffer; /* IN/OUT: data, or call
-                                          * gethvmcontext with NULL
-                                          * buffer to get size
-                                          * req'd */
+    XEN_GUEST_HANDLE_64(uint8) buffer; /* IN/OUT: data, or call
+                                        * gethvmcontext with NULL
+                                        * buffer to get size req'd */
 } xen_domctl_hvmcontext_t;
 DEFINE_XEN_GUEST_HANDLE(xen_domctl_hvmcontext_t);
 
@@ -435,9 +434,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_sendt
 
 
 /* Assign PCI device to HVM guest. Sets up IOMMU structures. */
-#define XEN_DOMCTL_assign_device     37
-#define DPCI_ADD_MAPPING         1
-#define DPCI_REMOVE_MAPPING      0 
+#define XEN_DOMCTL_assign_device      37
+#define XEN_DOMCTL_test_assign_device 45
 struct xen_domctl_assign_device {
     uint32_t  machine_bdf;   /* machine PCI ID of assigned device */
 };
@@ -473,6 +471,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_bind_
 
 /* Bind machine I/O address range -> HVM address range. */
 #define XEN_DOMCTL_memory_mapping    39
+#define DPCI_ADD_MAPPING         1
+#define DPCI_REMOVE_MAPPING      0
 struct xen_domctl_memory_mapping {
     uint64_aligned_t first_gfn; /* first page (hvm guest phys page) in range */
     uint64_aligned_t first_mfn; /* first page (machine page) in range */
@@ -544,8 +544,11 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_ext_v
  */
 #define XEN_DOMCTL_set_opt_feature    44
 struct xen_domctl_set_opt_feature {
-#ifdef __ia64__
+#if defined(__ia64__)
     struct xen_ia64_opt_feature optf;
+#else
+    /* Make struct non-empty: do not depend on this field name! */
+    uint64_t dummy;
 #endif
 };
 typedef struct xen_domctl_set_opt_feature xen_domctl_set_opt_feature_t;
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/grant_table.h
--- a/include/xen/interface/grant_table.h       Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/grant_table.h       Tue Jan 15 15:59:31 2008 +0000
@@ -400,7 +400,8 @@ DEFINE_XEN_GUEST_HANDLE(gnttab_unmap_and
 #define GNTST_no_device_space  (-7) /* Out of space in I/O MMU.              */
 #define GNTST_permission_denied (-8) /* Not enough privilege for operation.  */
 #define GNTST_bad_page         (-9) /* Specified page was invalid for op.    */
-#define GNTST_bad_copy_arg    (-10) /* copy arguments cross page boundary */
+#define GNTST_bad_copy_arg    (-10) /* copy arguments cross page boundary.   */
+#define GNTST_address_too_big (-11) /* transfer page address too large.      */
 
 #define GNTTABOP_error_msgs {                   \
     "okay",                                     \
@@ -413,7 +414,8 @@ DEFINE_XEN_GUEST_HANDLE(gnttab_unmap_and
     "no spare translation slot in the I/O MMU", \
     "permission denied",                        \
     "bad page",                                 \
-    "copy arguments cross page boundary"        \
+    "copy arguments cross page boundary",       \
+    "page address size too large"               \
 }
 
 #endif /* __XEN_PUBLIC_GRANT_TABLE_H__ */
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/hvm/ioreq.h
--- a/include/xen/interface/hvm/ioreq.h Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/hvm/ioreq.h Tue Jan 15 15:59:31 2008 +0000
@@ -58,6 +58,7 @@ struct ioreq {
                              *   of the real data to use.   */
     uint8_t dir:1;          /*  1=read, 0=write             */
     uint8_t df:1;
+    uint8_t pad:1;
     uint8_t type;           /* I/O type                     */
     uint8_t _pad0[6];
     uint64_t io_count;      /* How many IO done on a vcpu   */
@@ -77,11 +78,21 @@ struct shared_iopage {
 };
 typedef struct shared_iopage shared_iopage_t;
 
-#define IOREQ_BUFFER_SLOT_NUM     80
+struct buf_ioreq {
+    uint8_t  type;   /* I/O type                    */
+    uint8_t  pad:1;
+    uint8_t  dir:1;  /* 1=read, 0=write             */
+    uint8_t  size:2; /* 0=>1, 1=>2, 2=>4, 3=>8. If 8, use two buf_ioreqs */
+    uint32_t addr:20;/* physical address            */
+    uint32_t data;   /* data                        */
+};
+typedef struct buf_ioreq buf_ioreq_t;
+
+#define IOREQ_BUFFER_SLOT_NUM     511 /* 8 bytes each, plus 2 4-byte indexes */
 struct buffered_iopage {
-    unsigned int    read_pointer;
-    unsigned int    write_pointer;
-    ioreq_t         ioreq[IOREQ_BUFFER_SLOT_NUM];
+    unsigned int read_pointer;
+    unsigned int write_pointer;
+    buf_ioreq_t buf_ioreq[IOREQ_BUFFER_SLOT_NUM];
 }; /* NB. Size of this structure must be no greater than one page. */
 typedef struct buffered_iopage buffered_iopage_t;
 
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/hvm/params.h
--- a/include/xen/interface/hvm/params.h        Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/hvm/params.h        Tue Jan 15 15:59:31 2008 +0000
@@ -53,9 +53,34 @@
 #ifdef __ia64__
 #define HVM_PARAM_NVRAM_FD     7
 #define HVM_PARAM_VHPT_SIZE    8
-#define HVM_NR_PARAMS          9
-#else
-#define HVM_NR_PARAMS          7
+#define HVM_PARAM_BUFPIOREQ_PFN        9
 #endif
 
+/*
+ * Set mode for virtual timers (currently x86 only):
+ *  delay_for_missed_ticks (default):
+ *   Do not advance a vcpu's time beyond the correct delivery time for
+ *   interrupts that have been missed due to preemption. Deliver missed
+ *   interrupts when the vcpu is rescheduled and advance the vcpu's virtual
+ *   time stepwise for each one.
+ *  no_delay_for_missed_ticks:
+ *   As above, missed interrupts are delivered, but guest time always tracks
+ *   wallclock (i.e., real) time while doing so.
+ *  no_missed_ticks_pending:
+ *   No missed interrupts are held pending. Instead, to ensure ticks are
+ *   delivered at some non-zero rate, if we detect missed ticks then the
+ *   internal tick alarm is not disabled if the VCPU is preempted during the
+ *   next tick period.
+ *  one_missed_tick_pending:
+ *   Missed interrupts are collapsed together and delivered as one 'late tick'.
+ *   Guest time always tracks wallclock (i.e., real) time.
+ */
+#define HVM_PARAM_TIMER_MODE   10
+#define HVMPTM_delay_for_missed_ticks    0
+#define HVMPTM_no_delay_for_missed_ticks 1
+#define HVMPTM_no_missed_ticks_pending   2
+#define HVMPTM_one_missed_tick_pending   3
+
+#define HVM_NR_PARAMS          11
+
 #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/io/xs_wire.h
--- a/include/xen/interface/io/xs_wire.h        Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/io/xs_wire.h        Tue Jan 15 15:59:31 2008 +0000
@@ -108,6 +108,13 @@ struct xenstore_domain_interface {
     XENSTORE_RING_IDX rsp_cons, rsp_prod;
 };
 
+/* Violating this is very bad.  See docs/misc/xenstore.txt. */
+#define XENSTORE_PAYLOAD_MAX 4096
+
+/* Violating these just gets you an error back */
+#define XENSTORE_ABS_PATH_MAX 3072
+#define XENSTORE_REL_PATH_MAX 2048
+
 #endif /* _XS_WIRE_H */
 
 /*
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/physdev.h
--- a/include/xen/interface/physdev.h   Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/physdev.h   Tue Jan 15 15:59:31 2008 +0000
@@ -81,7 +81,7 @@ DEFINE_XEN_GUEST_HANDLE(physdev_set_iopl
 #define PHYSDEVOP_set_iobitmap           7
 struct physdev_set_iobitmap {
     /* IN */
-    XEN_GUEST_HANDLE_00030205(uint8_t) bitmap;
+    XEN_GUEST_HANDLE_00030205(uint8) bitmap;
     uint32_t nr_ports;
 };
 typedef struct physdev_set_iobitmap physdev_set_iobitmap_t;
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/platform.h
--- a/include/xen/interface/platform.h  Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/platform.h  Tue Jan 15 15:59:31 2008 +0000
@@ -146,7 +146,7 @@ struct xenpf_firmware_info {
             uint8_t capabilities;
             uint8_t edid_transfer_time;
             /* must refer to 128-byte buffer */
-            XEN_GUEST_HANDLE(uint8_t) edid;
+            XEN_GUEST_HANDLE(uint8) edid;
         } vbeddc_info; /* XEN_FW_VBEDDC_INFO */
     } u;
 };
@@ -186,12 +186,12 @@ struct xenpf_getidletime {
 struct xenpf_getidletime {
     /* IN/OUT variables */
     /* IN: CPUs to interrogate; OUT: subset of IN which are present */
-    XEN_GUEST_HANDLE(uint8_t) cpumap_bitmap;
+    XEN_GUEST_HANDLE(uint8) 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;
+    XEN_GUEST_HANDLE(uint64) idletime;
     /* OUT variables */
     /* System time when the idletime snapshots were taken. */
     uint64_t now;
diff -r 5f64a1735b3c -r 854690f06ed9 include/xen/interface/sysctl.h
--- a/include/xen/interface/sysctl.h    Tue Jan 15 14:35:41 2008 +0000
+++ b/include/xen/interface/sysctl.h    Tue Jan 15 15:59:31 2008 +0000
@@ -111,7 +111,7 @@ struct xen_sysctl_physinfo {
      * If the actual @max_cpu_id is smaller than the array then the trailing
      * elements of the array will not be written by the sysctl.
      */
-    XEN_GUEST_HANDLE_64(uint32_t) cpu_to_node;
+    XEN_GUEST_HANDLE_64(uint32) cpu_to_node;
 };
 typedef struct xen_sysctl_physinfo xen_sysctl_physinfo_t;
 DEFINE_XEN_GUEST_HANDLE(xen_sysctl_physinfo_t);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.