VirtualBox

Changeset 90927 in vbox


Ignore:
Timestamp:
Aug 26, 2021 5:06:14 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
146564
Message:

VMM/HMVMXR0: Nested VMX: bugref:10092 Added new VMCS fields.

Location:
trunk
Files:
2 edited

Legend:

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

    r88036 r90927  
    17971797#define VMX_VMCS16_GUEST_FS_SEL                                 0x0808
    17981798#define VMX_VMCS16_GUEST_GS_SEL                                 0x080a
    1799 #define VMX_VMCS16_GUEST_SEG_SEL(a_iSegReg)                     (VMX_VMCS16_GUEST_ES_SEL + (a_iSegReg) * 2)
    18001799#define VMX_VMCS16_GUEST_LDTR_SEL                               0x080c
    18011800#define VMX_VMCS16_GUEST_TR_SEL                                 0x080e
     
    18611860#define VMX_VMCS64_CTRL_ENCLS_EXITING_BITMAP_FULL               0x202e
    18621861#define VMX_VMCS64_CTRL_ENCLS_EXITING_BITMAP_HIGH               0x202f
     1862#define VMX_VMCS64_CTRL_SPPTP_FULL                              0x2030
     1863#define VMX_VMCS64_CTRL_SPPTP_HIGH                              0x2031
    18631864#define VMX_VMCS64_CTRL_TSC_MULTIPLIER_FULL                     0x2032
    18641865#define VMX_VMCS64_CTRL_TSC_MULTIPLIER_HIGH                     0x2033
     1866#define VMX_VMCS64_CTRL_PROC_EXEC3_FULL                         0x2034
     1867#define VMX_VMCS64_CTRL_PROC_EXEC3_HIGH                         0x2035
     1868#define VMX_VMCS64_CTRL_ENCLV_EXITING_BITMAP_FULL               0x2036
     1869#define VMX_VMCS64_CTRL_ENCLV_EXITING_BITMAP_HIGH               0x2037
    18651870
    18661871/** 64-bit read-only data fields.  */
     
    18891894#define VMX_VMCS64_GUEST_BNDCFGS_FULL                           0x2812
    18901895#define VMX_VMCS64_GUEST_BNDCFGS_HIGH                           0x2813
     1896#define VMX_VMCS64_GUEST_RTIT_CTL_FULL                          0x2814
     1897#define VMX_VMCS64_GUEST_RTIT_CTL_HIGH                          0x2815
     1898#define VMX_VMCS64_GUEST_PKRS_FULL                              0x2818
     1899#define VMX_VMCS64_GUEST_PKRS_HIGH                              0x2819
    18911900
    18921901/** 64-bit host-state fields.  */
     
    18971906#define VMX_VMCS64_HOST_PERF_GLOBAL_CTRL_FULL                   0x2c04
    18981907#define VMX_VMCS64_HOST_PERF_GLOBAL_CTRL_HIGH                   0x2c05
     1908#define VMX_VMCS64_HOST_PKRS_FULL                               0x2c06
     1909#define VMX_VMCS64_HOST_PKRS_HIGH                               0x2c07
    18991910
    19001911/** 32-bit control fields.  */
     
    19351946#define VMX_VMCS32_GUEST_FS_LIMIT                               0x4808
    19361947#define VMX_VMCS32_GUEST_GS_LIMIT                               0x480a
    1937 #define VMX_VMCS32_GUEST_SEG_LIMIT(a_iSegReg)                   (VMX_VMCS32_GUEST_ES_LIMIT + (a_iSegReg) * 2)
    19381948#define VMX_VMCS32_GUEST_LDTR_LIMIT                             0x480c
    19391949#define VMX_VMCS32_GUEST_TR_LIMIT                               0x480e
     
    19461956#define VMX_VMCS32_GUEST_FS_ACCESS_RIGHTS                       0x481c
    19471957#define VMX_VMCS32_GUEST_GS_ACCESS_RIGHTS                       0x481e
    1948 #define VMX_VMCS32_GUEST_SEG_ACCESS_RIGHTS(a_iSegReg)           (VMX_VMCS32_GUEST_ES_ACCESS_RIGHTS + (a_iSegReg) * 2)
    19491958#define VMX_VMCS32_GUEST_LDTR_ACCESS_RIGHTS                     0x4820
    19501959#define VMX_VMCS32_GUEST_TR_ACCESS_RIGHTS                       0x4822
     
    19861995#define VMX_VMCS_GUEST_FS_BASE                                  0x680e
    19871996#define VMX_VMCS_GUEST_GS_BASE                                  0x6810
    1988 #define VMX_VMCS_GUEST_SEG_BASE(a_iSegReg)                      (VMX_VMCS_GUEST_ES_BASE + (a_iSegReg) * 2)
    19891997#define VMX_VMCS_GUEST_LDTR_BASE                                0x6812
    19901998#define VMX_VMCS_GUEST_TR_BASE                                  0x6814
     
    19982006#define VMX_VMCS_GUEST_SYSENTER_ESP                             0x6824
    19992007#define VMX_VMCS_GUEST_SYSENTER_EIP                             0x6826
     2008#define VMX_VMCS_GUEST_S_CET                                    0x6828
     2009#define VMX_VMCS_GUEST_SSP                                      0x682a
     2010#define VMX_VMCS_GUEST_INTR_SSP_TABLE_ADDR                      0x682c
    20002011
    20012012/** Natural-width host-state fields. */
     
    20122023#define VMX_VMCS_HOST_RSP                                       0x6c14
    20132024#define VMX_VMCS_HOST_RIP                                       0x6c16
     2025#define VMX_VMCS_HOST_S_CET                                     0x6c18
     2026#define VMX_VMCS_HOST_SSP                                       0x6c1a
     2027#define VMX_VMCS_HOST_INTR_SSP_TABLE_ADDR                       0x6c1c
     2028
     2029#define VMX_VMCS16_GUEST_SEG_SEL(a_iSegReg)                     (VMX_VMCS16_GUEST_ES_SEL           + (a_iSegReg) * 2)
     2030#define VMX_VMCS_GUEST_SEG_BASE(a_iSegReg)                      (VMX_VMCS_GUEST_ES_BASE            + (a_iSegReg) * 2)
     2031#define VMX_VMCS32_GUEST_SEG_LIMIT(a_iSegReg)                   (VMX_VMCS32_GUEST_ES_LIMIT         + (a_iSegReg) * 2)
     2032#define VMX_VMCS32_GUEST_SEG_ACCESS_RIGHTS(a_iSegReg)           (VMX_VMCS32_GUEST_ES_ACCESS_RIGHTS + (a_iSegReg) * 2)
    20142033
    20152034/**
  • trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp

    r90842 r90927  
    540540    VMX_VMCS64_CTRL_ENCLS_EXITING_BITMAP_FULL,
    541541    VMX_VMCS64_CTRL_ENCLS_EXITING_BITMAP_HIGH,
     542    VMX_VMCS64_CTRL_SPPTP_FULL,
     543    VMX_VMCS64_CTRL_SPPTP_HIGH,
    542544    VMX_VMCS64_CTRL_TSC_MULTIPLIER_FULL,
    543545    VMX_VMCS64_CTRL_TSC_MULTIPLIER_HIGH,
     546    VMX_VMCS64_CTRL_PROC_EXEC3_FULL,
     547    VMX_VMCS64_CTRL_PROC_EXEC3_HIGH,
     548    VMX_VMCS64_CTRL_ENCLV_EXITING_BITMAP_FULL,
     549    VMX_VMCS64_CTRL_ENCLV_EXITING_BITMAP_HIGH,
    544550
    545551    /* 64-bit read-only data fields. */
     
    568574    VMX_VMCS64_GUEST_BNDCFGS_FULL,
    569575    VMX_VMCS64_GUEST_BNDCFGS_HIGH,
     576    VMX_VMCS64_GUEST_RTIT_CTL_FULL,
     577    VMX_VMCS64_GUEST_RTIT_CTL_HIGH,
     578    VMX_VMCS64_GUEST_PKRS_FULL,
     579    VMX_VMCS64_GUEST_PKRS_HIGH,
    570580
    571581    /* 64-bit host-state fields. */
     
    576586    VMX_VMCS64_HOST_PERF_GLOBAL_CTRL_FULL,
    577587    VMX_VMCS64_HOST_PERF_GLOBAL_CTRL_HIGH,
     588    VMX_VMCS64_HOST_PKRS_FULL,
     589    VMX_VMCS64_HOST_PKRS_HIGH,
    578590
    579591    /* 32-bit control fields. */
     
    674686    VMX_VMCS_GUEST_SYSENTER_ESP,
    675687    VMX_VMCS_GUEST_SYSENTER_EIP,
     688    VMX_VMCS_GUEST_S_CET,
     689    VMX_VMCS_GUEST_SSP,
     690    VMX_VMCS_GUEST_INTR_SSP_TABLE_ADDR,
    676691
    677692    /* Natural-width host-state fields */
     
    687702    VMX_VMCS_HOST_SYSENTER_EIP,
    688703    VMX_VMCS_HOST_RSP,
    689     VMX_VMCS_HOST_RIP
     704    VMX_VMCS_HOST_RIP,
     705    VMX_VMCS_HOST_S_CET,
     706    VMX_VMCS_HOST_SSP,
     707    VMX_VMCS_HOST_INTR_SSP_TABLE_ADDR
    690708};
    691709#endif /* VBOX_WITH_NESTED_HWVIRT_VMX */
Note: See TracChangeset for help on using the changeset viewer.

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