|
@@ -446,8 +446,24 @@ struct nested_vmx {
|
|
|
/* Posted-Interrupt Descriptor */
|
|
|
struct pi_desc {
|
|
|
u32 pir[8]; /* Posted interrupt requested */
|
|
|
- u32 control; /* bit 0 of control is outstanding notification bit */
|
|
|
- u32 rsvd[7];
|
|
|
+ union {
|
|
|
+ struct {
|
|
|
+ /* bit 256 - Outstanding Notification */
|
|
|
+ u16 on : 1,
|
|
|
+ /* bit 257 - Suppress Notification */
|
|
|
+ sn : 1,
|
|
|
+ /* bit 271:258 - Reserved */
|
|
|
+ rsvd_1 : 14;
|
|
|
+ /* bit 279:272 - Notification Vector */
|
|
|
+ u8 nv;
|
|
|
+ /* bit 287:280 - Reserved */
|
|
|
+ u8 rsvd_2;
|
|
|
+ /* bit 319:288 - Notification Destination */
|
|
|
+ u32 ndst;
|
|
|
+ };
|
|
|
+ u64 control;
|
|
|
+ };
|
|
|
+ u32 rsvd[6];
|
|
|
} __aligned(64);
|
|
|
|
|
|
static bool pi_test_and_set_on(struct pi_desc *pi_desc)
|