VirtualBox

Changeset 91045 in vbox


Ignore:
Timestamp:
Sep 1, 2021 7:34:08 AM (3 years ago)
Author:
vboxsync
Message:

VMM: Nested VMX: bugref:10092 Updated VM-entry, VM-exit bitfield macros.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_vmx.h

    r91044 r91045  
    24992499/** Whether the guest CET-related MSRs and SPP are loaded on VM-entry. */
    25002500#define VMX_ENTRY_CTLS_LOAD_CET_STATE                           RT_BIT(20)
     2501/** Whether the guest IA32_PKRS MSR is loaded on VM-entry. */
     2502#define VMX_ENTRY_CTLS_LOAD_PKRS_MSR                            RT_BIT(22)
    25012503/** Default1 class when true-capability MSRs are not supported. */
    25022504#define VMX_ENTRY_CTLS_DEFAULT1                                 UINT32_C(0x000011ff)
     
    25302532#define VMX_BF_ENTRY_CTLS_LOAD_RTIT_CTL_MSR_SHIFT               18
    25312533#define VMX_BF_ENTRY_CTLS_LOAD_RTIT_CTL_MSR_MASK                UINT32_C(0x00040000)
    2532 #define VMX_BF_ENTRY_CTLS_RSVD_19_31_SHIFT                      19
    2533 #define VMX_BF_ENTRY_CTLS_RSVD_19_31_MASK                       UINT32_C(0xfff80000)
     2534#define VMX_BF_ENTRY_CTLS_RSVD_19_SHIFT                         19
     2535#define VMX_BF_ENTRY_CTLS_RSVD_19_MASK                          UINT32_C(0x00080000)
     2536#define VMX_BF_ENTRY_CTLS_LOAD_CET_SHIFT                        20
     2537#define VMX_BF_ENTRY_CTLS_LOAD_CET_MASK                         UINT32_C(0x00100000)
     2538#define VMX_BF_ENTRY_CTLS_RSVD_21_SHIFT                         21
     2539#define VMX_BF_ENTRY_CTLS_RSVD_21_MASK                          UINT32_C(0x00200000)
     2540#define VMX_BF_ENTRY_CTLS_LOAD_PKRS_MSR_SHIFT                   22
     2541#define VMX_BF_ENTRY_CTLS_LOAD_PKRS_MSR_MASK                    UINT32_C(0x00400000)
     2542#define VMX_BF_ENTRY_CTLS_RSVD_23_31_SHIFT                      23
     2543#define VMX_BF_ENTRY_CTLS_RSVD_23_31_MASK                       UINT32_C(0xff800000)
     2544
    25342545RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_ENTRY_CTLS_, UINT32_C(0), UINT32_MAX,
    25352546                            (RSVD_0_1, LOAD_DEBUG, RSVD_3_8, IA32E_MODE_GUEST, ENTRY_SMM, DEACTIVATE_DUAL_MON, RSVD_12,
    25362547                             LOAD_PERF_MSR, LOAD_PAT_MSR, LOAD_EFER_MSR, LOAD_BNDCFGS_MSR, CONCEAL_VMX_FROM_PT,
    2537                              LOAD_RTIT_CTL_MSR, RSVD_19_31));
     2548                             LOAD_RTIT_CTL_MSR, RSVD_19, LOAD_CET, RSVD_21, LOAD_PKRS_MSR, RSVD_23_31));
    25382549/** @} */
    25392550
     
    25692580/** Whether CET-related MSRs and SPP are loaded on VM-exit. */
    25702581#define VMX_EXIT_CTLS_LOAD_CET_STATE                            RT_BIT(28)
     2582/** Whether the host IA32_PKRS MSR is loaded on VM-exit. */
     2583#define VMX_EXIT_CTLS_LOAD_PKRS_MSR                             RT_BIT(29)
    25712584/** Default1 class when true-capability MSRs are not supported. */
    25722585#define VMX_EXIT_CTLS_DEFAULT1                                  UINT32_C(0x00036dff)
     
    26082621#define VMX_BF_EXIT_CTLS_CLEAR_RTIT_CTL_MSR_SHIFT               25
    26092622#define VMX_BF_EXIT_CTLS_CLEAR_RTIT_CTL_MSR_MASK                UINT32_C(0x02000000)
    2610 #define VMX_BF_EXIT_CTLS_RSVD_26_31_SHIFT                       26
    2611 #define VMX_BF_EXIT_CTLS_RSVD_26_31_MASK                        UINT32_C(0xfc000000)
     2623#define VMX_BF_EXIT_CTLS_RSVD_26_27_SHIFT                       26
     2624#define VMX_BF_EXIT_CTLS_RSVD_26_27_MASK                        UINT32_C(0x0c000000)
     2625#define VMX_BF_EXIT_CTLS_LOAD_CET_SHIFT                         28
     2626#define VMX_BF_EXIT_CTLS_LOAD_CET_MASK                          UINT32_C(0x10000000)
     2627#define VMX_BF_EXIT_CTLS_LOAD_PKRS_MSR_SHIFT                    29
     2628#define VMX_BF_EXIT_CTLS_LOAD_PKRS_MSR_MASK                     UINT32_C(0x20000000)
     2629#define VMX_BF_EXIT_CTLS_RSVD_30_31_SHIFT                       30
     2630#define VMX_BF_EXIT_CTLS_RSVD_30_31_MASK                        UINT32_C(0xc0000000)
    26122631RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_EXIT_CTLS_, UINT32_C(0), UINT32_MAX,
    26132632                            (RSVD_0_1, SAVE_DEBUG, RSVD_3_8, HOST_ADDR_SPACE_SIZE, RSVD_10_11, LOAD_PERF_MSR, RSVD_13_14,
    26142633                             ACK_EXT_INT, RSVD_16_17, SAVE_PAT_MSR, LOAD_PAT_MSR, SAVE_EFER_MSR, LOAD_EFER_MSR,
    2615                              SAVE_PREEMPT_TIMER, CLEAR_BNDCFGS_MSR, CONCEAL_VMX_FROM_PT, CLEAR_RTIT_CTL_MSR, RSVD_26_31));
     2634                             SAVE_PREEMPT_TIMER, CLEAR_BNDCFGS_MSR, CONCEAL_VMX_FROM_PT, CLEAR_RTIT_CTL_MSR, RSVD_26_27,
     2635                             LOAD_CET, LOAD_PKRS_MSR, RSVD_30_31));
    26162636/** @} */
    26172637
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette