vmx: extend struct pi_desc to support VT-d Posted-Interrupts
authorFeng Wu <feng.wu@intel.com>
Tue, 24 Nov 2015 11:10:36 +0000 (12:10 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 24 Nov 2015 11:10:36 +0000 (12:10 +0100)
Extend struct pi_desc according to VT-d Posted-Interrupts Spec.

Signed-off-by: Feng Wu <feng.wu@intel.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
xen/include/asm-x86/hvm/vmx/vmcs.h

index f873523f4726803b9a4fb2e6596deb653c5f4f7b..0a69a4411a8736b13d52fea44b83f51c5523ad18 100644 (file)
@@ -80,8 +80,18 @@ struct vmx_domain {
 
 struct pi_desc {
     DECLARE_BITMAP(pir, NR_VECTORS);
-    u32 control;
-    u32 rsvd[7];
+    union {
+        struct {
+            u16     on     : 1,  /* bit 256 - Outstanding Notification */
+                    sn     : 1,  /* bit 257 - Suppress Notification */
+                    rsvd_1 : 14; /* bit 271:258 - Reserved */
+            u8      nv;          /* bit 279:272 - Notification Vector */
+            u8      rsvd_2;      /* bit 287:280 - Reserved */
+            u32     ndst;        /* bit 319:288 - Notification Destination */
+        };
+        u64 control;
+    };
+    u32 rsvd[6];
 } __attribute__ ((aligned (64)));
 
 #define ept_get_wl(ept)   ((ept)->ept_wl)