VirtualBox

Changeset 74603 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Oct 4, 2018 6:07:20 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
125486
Message:

VMM/IEM, HM: Nested VMX: bugref:9180 VM-exit bits; LMSW intercept. Separated VINF_HM_INTERCEPT_NOT_ACTIVE into VMX and SVM
specific codes. Adjusted IEMExecDecodedLmsw to supply the additional memory operand parameter from the VMCS guest-linear address
field.

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

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

    r74545 r74603  
    18151815#define VMX_VMCS_RO_IO_RDI                                      0x6406
    18161816#define VMX_VMCS_RO_IO_RIP                                      0x6408
    1817 #define VMX_VMCS_RO_EXIT_GUEST_LINEAR_ADDR                      0x640a
     1817#define VMX_VMCS_RO_GUEST_LINEAR_ADDR                           0x640a
    18181818/** @} */
    18191819
     
    26342634/** 16-31: LMSW source data (else 0). */
    26352635#define VMX_EXIT_QUAL_CRX_LMSW_DATA(a)                          (((a) >> 16) & 0xffff)
    2636 /* Rest: reserved. */
     2636
     2637/** Bit fields for Exit qualification for control-register accesses. */
     2638#define VMX_BF_EXIT_QUAL_CRX_REGISTER_SHIFT                     0
     2639#define VMX_BF_EXIT_QUAL_CRX_REGISTER_MASK                      UINT64_C(0x000000000000000f)
     2640#define VMX_BF_EXIT_QUAL_CRX_ACCESS_SHIFT                       4
     2641#define VMX_BF_EXIT_QUAL_CRX_ACCESS_MASK                        UINT64_C(0x0000000000000030)
     2642#define VMX_BF_EXIT_QUAL_CRX_LMSW_OP_SHIFT                      6
     2643#define VMX_BF_EXIT_QUAL_CRX_LMSW_OP_MASK                       UINT64_C(0x0000000000000040)
     2644#define VMX_BF_EXIT_QUAL_CRX_RSVD_7_SHIFT                       7
     2645#define VMX_BF_EXIT_QUAL_CRX_RSVD_7_MASK                        UINT64_C(0x0000000000000080)
     2646#define VMX_BF_EXIT_QUAL_CRX_GENREG_SHIFT                       8
     2647#define VMX_BF_EXIT_QUAL_CRX_GENREG_MASK                        UINT64_C(0x0000000000000f00)
     2648#define VMX_BF_EXIT_QUAL_CRX_RSVD_12_15_SHIFT                   12
     2649#define VMX_BF_EXIT_QUAL_CRX_RSVD_12_15_MASK                    UINT64_C(0x000000000000f000)
     2650#define VMX_BF_EXIT_QUAL_CRX_LMSW_DATA_SHIFT                    16
     2651#define VMX_BF_EXIT_QUAL_CRX_LMSW_DATA_MASK                     UINT64_C(0x00000000ffff0000)
     2652#define VMX_BF_EXIT_QUAL_CRX_RSVD_32_63_SHIFT                   32
     2653#define VMX_BF_EXIT_QUAL_CRX_RSVD_32_63_MASK                    UINT64_C(0xffffffff00000000)
     2654RT_BF_ASSERT_COMPILE_CHECKS(VMX_BF_EXIT_QUAL_CRX_, UINT64_C(0), UINT64_MAX,
     2655                            (REGISTER, ACCESS, LMSW_OP, RSVD_7, GENREG, RSVD_12_15, LMSW_DATA, RSVD_32_63));
    26372656/** @} */
    26382657
  • trunk/include/VBox/vmm/iem.h

    r73986 r74603  
    297297VMM_INT_DECL(VBOXSTRICTRC)  IEMExecDecodedMovCRxRead(PVMCPU pVCpu, uint8_t cbInstr, uint8_t iGReg, uint8_t iCrReg);
    298298VMM_INT_DECL(VBOXSTRICTRC)  IEMExecDecodedClts(PVMCPU pVCpu, uint8_t cbInstr);
    299 VMM_INT_DECL(VBOXSTRICTRC)  IEMExecDecodedLmsw(PVMCPU pVCpu, uint8_t cbInstr, uint16_t uValue);
     299VMM_INT_DECL(VBOXSTRICTRC)  IEMExecDecodedLmsw(PVMCPU pVCpu, uint8_t cbInstr, uint16_t uValue, RTGCPTR GCPtrEffDst);
    300300VMM_INT_DECL(VBOXSTRICTRC)  IEMExecDecodedXsetbv(PVMCPU pVCpu, uint8_t cbInstr);
    301301VMM_INT_DECL(VBOXSTRICTRC)  IEMExecDecodedWbinvd(PVMCPU pVCpu, uint8_t cbInstr);
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