From: Joao Martins Date: Tue, 5 Apr 2016 11:21:39 +0000 (+0200) Subject: public/xen.h: add flags field to vcpu_time_info X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~1389 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9e55a33cc8b8cdf883903661d8d3a6919f2b5292;p=xen.git public/xen.h: add flags field to vcpu_time_info This field has two possible flags (as of latest pvclock ABI shared with KVM). flags: bits in this field indicate extended capabilities coordinated between the guest and the hypervisor. Specifically on KVM, availability of specific flags has to be checked in 0x40000001 cpuid leaf. On Xen, we don't have that but we can still check some of the flags after registering the time info page since a force_update_vcpu_system_time is performed. Current flags are: flag bit | cpuid bit | meaning ------------------------------------------------------------- | | time measures taken across 0 | 24 | multiple cpus are guaranteed to | | be monotonic ------------------------------------------------------------- | | guest vcpu has been paused by 1 | N/A | the host | | ------------------------------------------------------------- Signed-off-by: Joao Martins Add XEN_ prefixes to new #define-s. Make structure layout change dependent upon __XEN_INTERFACE_VERSION__ (intentionally comparing to 4.6, as we may want to backport this at least there). Signed-off-by: Jan Beulich --- diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h index 1a99929675..435d78902a 100644 --- a/xen/include/public/xen.h +++ b/xen/include/public/xen.h @@ -615,10 +615,18 @@ struct vcpu_time_info { */ uint32_t tsc_to_system_mul; int8_t tsc_shift; +#if __XEN_INTERFACE_VERSION__ > 0x040600 + uint8_t flags; + uint8_t pad1[2]; +#else int8_t pad1[3]; +#endif }; /* 32 bytes */ typedef struct vcpu_time_info vcpu_time_info_t; +#define XEN_PVCLOCK_TSC_STABLE_BIT (1 << 0) +#define XEN_PVCLOCK_GUEST_STOPPED (1 << 1) + struct vcpu_info { /* * 'evtchn_upcall_pending' is written non-zero by Xen to indicate