KVM: x86: acknowledgment mechanism for async pf page ready notifications
[linux-2.6-microblaze.git] / arch / x86 / include / uapi / asm / kvm_para.h
index 2a8e0b6..7ac20df 100644 (file)
@@ -50,6 +50,8 @@
 #define MSR_KVM_STEAL_TIME  0x4b564d03
 #define MSR_KVM_PV_EOI_EN      0x4b564d04
 #define MSR_KVM_POLL_CONTROL   0x4b564d05
+#define MSR_KVM_ASYNC_PF_INT   0x4b564d06
+#define MSR_KVM_ASYNC_PF_ACK   0x4b564d07
 
 struct kvm_steal_time {
        __u64 steal;
@@ -81,6 +83,11 @@ struct kvm_clock_pairing {
 #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)
+#define KVM_ASYNC_PF_DELIVERY_AS_INT           (1 << 3)
+
+/* MSR_KVM_ASYNC_PF_INT */
+#define KVM_ASYNC_PF_VEC_MASK                  GENMASK(7, 0)
+
 
 /* Operations for KVM_HC_MMU_OP */
 #define KVM_MMU_OP_WRITE_PTE            1
@@ -112,8 +119,13 @@ struct kvm_mmu_op_release_pt {
 #define KVM_PV_REASON_PAGE_READY 2
 
 struct kvm_vcpu_pv_apf_data {
-       __u32 reason;
-       __u8 pad[60];
+       /* Used for 'page not present' events delivered via #PF */
+       __u32 flags;
+
+       /* Used for 'page ready' events delivered via interrupt notification */
+       __u32 token;
+
+       __u8 pad[56];
        __u32 enabled;
 };