]> git.proxmox.com Git - mirror_qemu.git/blobdiff - linux-headers/asm-x86/kvm_para.h
linux header sync against v4.13-rc1
[mirror_qemu.git] / linux-headers / asm-x86 / kvm_para.h
index f2ac46a2a2f8682b49b29450bd1c61eb12594ebd..cefa127d8406f43a7eb51fc83d34b1ff2086b6da 100644 (file)
@@ -22,6 +22,8 @@
 #define KVM_FEATURE_CLOCKSOURCE2        3
 #define KVM_FEATURE_ASYNC_PF           4
 #define KVM_FEATURE_STEAL_TIME         5
+#define KVM_FEATURE_PV_EOI             6
+#define KVM_FEATURE_PV_UNHALT          7
 
 /* The last 8 bits are used to indicate how to interpret the flags field
  * in pvclock structure. If no bits are set, all flags are ignored.
 #define MSR_KVM_SYSTEM_TIME_NEW 0x4b564d01
 #define MSR_KVM_ASYNC_PF_EN 0x4b564d02
 #define MSR_KVM_STEAL_TIME  0x4b564d03
+#define MSR_KVM_PV_EOI_EN      0x4b564d04
 
 struct kvm_steal_time {
        __u64 steal;
        __u32 version;
        __u32 flags;
-       __u32 pad[12];
+       __u8  preempted;
+       __u8  u8_pad[3];
+       __u32 pad[11];
+};
+
+#define KVM_CLOCK_PAIRING_WALLCLOCK 0
+struct kvm_clock_pairing {
+       __s64 sec;
+       __s64 nsec;
+       __u64 tsc;
+       __u32 flags;
+       __u32 pad[9];
 };
 
 #define KVM_STEAL_ALIGNMENT_BITS 5
@@ -53,6 +67,7 @@ struct kvm_steal_time {
 
 #define KVM_ASYNC_PF_ENABLED                   (1 << 0)
 #define KVM_ASYNC_PF_SEND_ALWAYS               (1 << 1)
+#define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT     (1 << 2)
 
 /* Operations for KVM_HC_MMU_OP */
 #define KVM_MMU_OP_WRITE_PTE            1
@@ -89,5 +104,10 @@ struct kvm_vcpu_pv_apf_data {
        __u32 enabled;
 };
 
+#define KVM_PV_EOI_BIT 0
+#define KVM_PV_EOI_MASK (0x1 << KVM_PV_EOI_BIT)
+#define KVM_PV_EOI_ENABLED KVM_PV_EOI_MASK
+#define KVM_PV_EOI_DISABLED 0x0
+
 
 #endif /* _ASM_X86_KVM_PARA_H */