VirtualBox

Changeset 74603 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Oct 4, 2018 6:07:20 AM (6 years ago)
Author:
vboxsync
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
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/err.h

    r74517 r74603  
    21042104/** Generic VM-exit failure. */
    21052105#define VERR_VMX_VMEXIT_FAILED                      (-4034)
     2106/** The requested nested-guest VMX intercept is not active or not in
     2107 *  nested-guest execution mode. */
     2108#define VINF_VMX_INTERCEPT_NOT_ACTIVE               4035
    21062109/** @} */
    21072110
     
    21452148#define VERR_SVM_VMEXIT_FAILED                      (-4066)
    21462149/** An operation caused a nested-guest SVM \#VMEXIT. */
    2147 #define VINF_SVM_VMEXIT                              4067
     2150#define VINF_SVM_VMEXIT                             4067
    21482151/** VMRUN emulation succeeded, ready to immediately enter the nested-guest. */
    2149 #define VINF_SVM_VMRUN                               4068
     2152#define VINF_SVM_VMRUN                              4068
     2153/** The requested nested-guest SVM intercept is not active or not in
     2154 *  nested-guest execution mode. */
     2155#define VINF_SVM_INTERCEPT_NOT_ACTIVE               4069
    21502156/** @} */
    21512157
     
    21902196/** Resume guest execution after injecting a double-fault. */
    21912197#define VINF_HM_DOUBLE_FAULT                        4117
    2192 /** The requested nested-guest VM-exit intercept is not active or not in
    2193  *  nested-guest execution mode. */
    2194 #define VINF_HM_INTERCEPT_NOT_ACTIVE                4118
    21952198/** Pending exception; continue guest execution. */
    2196 #define VINF_HM_PENDING_XCPT                        4119
     2199#define VINF_HM_PENDING_XCPT                        4118
    21972200/** @} */
    21982201
  • 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.

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