[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |