Changeset 73984 in vbox for trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
- Timestamp:
- Aug 31, 2018 8:30:50 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r73983 r73984 419 419 static FNVMXEXITHANDLERNSRC hmR0VmxExitTprBelowThreshold; 420 420 static FNVMXEXITHANDLER hmR0VmxExitApicAccess; 421 static FNVMXEXITHANDLER hmR0VmxExitXdtrAccess;422 421 static FNVMXEXITHANDLER hmR0VmxExitXdtrAccess; 423 422 static FNVMXEXITHANDLER hmR0VmxExitEptViolation; … … 509 508 /* 44 VMX_EXIT_APIC_ACCESS */ hmR0VmxExitApicAccess, 510 509 /* 45 UNDEFINED */ hmR0VmxExitErrUndefined, 511 /* 46 VMX_EXIT_ XDTR_ACCESS*/ hmR0VmxExitXdtrAccess,512 /* 47 VMX_EXIT_ TR_ACCESS*/ hmR0VmxExitXdtrAccess,510 /* 46 VMX_EXIT_GDTR_IDTR_ACCESS */ hmR0VmxExitXdtrAccess, 511 /* 47 VMX_EXIT_LDTR_TR_ACCESS */ hmR0VmxExitXdtrAccess, 513 512 /* 48 VMX_EXIT_EPT_VIOLATION */ hmR0VmxExitEptViolation, 514 513 /* 49 VMX_EXIT_EPT_MISCONFIG */ hmR0VmxExitEptMisconfig, … … 9400 9399 { 9401 9400 pDbgState->fCpe2Extra |= VMX_PROC_CTLS2_DESC_TABLE_EXIT; 9402 ASMBitSet(pDbgState->bmExitsToCheck, VMX_EXIT_ XDTR_ACCESS);9403 } 9404 SET_ONLY_XBM_IF_EITHER_EN( EXIT_SGDT, VMX_EXIT_ XDTR_ACCESS);9405 SET_ONLY_XBM_IF_EITHER_EN( EXIT_SIDT, VMX_EXIT_ XDTR_ACCESS);9406 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LGDT, VMX_EXIT_ XDTR_ACCESS);9407 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LIDT, VMX_EXIT_ XDTR_ACCESS);9401 ASMBitSet(pDbgState->bmExitsToCheck, VMX_EXIT_GDTR_IDTR_ACCESS); 9402 } 9403 SET_ONLY_XBM_IF_EITHER_EN( EXIT_SGDT, VMX_EXIT_GDTR_IDTR_ACCESS); 9404 SET_ONLY_XBM_IF_EITHER_EN( EXIT_SIDT, VMX_EXIT_GDTR_IDTR_ACCESS); 9405 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LGDT, VMX_EXIT_GDTR_IDTR_ACCESS); 9406 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LIDT, VMX_EXIT_GDTR_IDTR_ACCESS); 9408 9407 9409 9408 if ( IS_EITHER_ENABLED(pVM, INSTR_SLDT) … … 9413 9412 { 9414 9413 pDbgState->fCpe2Extra |= VMX_PROC_CTLS2_DESC_TABLE_EXIT; 9415 ASMBitSet(pDbgState->bmExitsToCheck, VMX_EXIT_ TR_ACCESS);9416 } 9417 SET_ONLY_XBM_IF_EITHER_EN( EXIT_SLDT, VMX_EXIT_ TR_ACCESS);9418 SET_ONLY_XBM_IF_EITHER_EN( EXIT_STR, VMX_EXIT_ TR_ACCESS);9419 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LLDT, VMX_EXIT_ TR_ACCESS);9420 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LTR, VMX_EXIT_ TR_ACCESS);9414 ASMBitSet(pDbgState->bmExitsToCheck, VMX_EXIT_LDTR_TR_ACCESS); 9415 } 9416 SET_ONLY_XBM_IF_EITHER_EN( EXIT_SLDT, VMX_EXIT_LDTR_TR_ACCESS); 9417 SET_ONLY_XBM_IF_EITHER_EN( EXIT_STR, VMX_EXIT_LDTR_TR_ACCESS); 9418 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LLDT, VMX_EXIT_LDTR_TR_ACCESS); 9419 SET_ONLY_XBM_IF_EITHER_EN( EXIT_LTR, VMX_EXIT_LDTR_TR_ACCESS); 9421 9420 9422 9421 SET_ONLY_XBM_IF_EITHER_EN(INSTR_VMX_INVEPT, VMX_EXIT_INVEPT); /* unconditional */ … … 9623 9622 case VMX_EXIT_MONITOR: SET_BOTH(MONITOR); break; 9624 9623 case VMX_EXIT_PAUSE: SET_BOTH(PAUSE); break; 9625 case VMX_EXIT_ XDTR_ACCESS:9624 case VMX_EXIT_GDTR_IDTR_ACCESS: 9626 9625 hmR0VmxReadExitInstrInfoVmcs(pVmxTransient); 9627 9626 switch (RT_BF_GET(pVmxTransient->ExitInstrInfo.u, VMX_BF_XDTR_INSINFO_INSTR_ID)) … … 9634 9633 break; 9635 9634 9636 case VMX_EXIT_ TR_ACCESS:9635 case VMX_EXIT_LDTR_TR_ACCESS: 9637 9636 hmR0VmxReadExitInstrInfoVmcs(pVmxTransient); 9638 9637 switch (RT_BF_GET(pVmxTransient->ExitInstrInfo.u, VMX_BF_YYTR_INSINFO_INSTR_ID)) … … 9946 9945 case VMX_EXIT_MONITOR: 9947 9946 case VMX_EXIT_PAUSE: 9948 case VMX_EXIT_ XDTR_ACCESS:9949 case VMX_EXIT_ TR_ACCESS:9947 case VMX_EXIT_GDTR_IDTR_ACCESS: 9948 case VMX_EXIT_LDTR_TR_ACCESS: 9950 9949 case VMX_EXIT_INVEPT: 9951 9950 case VMX_EXIT_RDTSCP: … … 10377 10376 case VMX_EXIT_MTF: VMEXIT_CALL_RET(0, hmR0VmxExitMtf(pVCpu, pVmxTransient)); 10378 10377 case VMX_EXIT_PAUSE: VMEXIT_CALL_RET(0, hmR0VmxExitPause(pVCpu, pVmxTransient)); 10379 case VMX_EXIT_ XDTR_ACCESS:VMEXIT_CALL_RET(0, hmR0VmxExitXdtrAccess(pVCpu, pVmxTransient));10380 case VMX_EXIT_ TR_ACCESS:VMEXIT_CALL_RET(0, hmR0VmxExitXdtrAccess(pVCpu, pVmxTransient));10378 case VMX_EXIT_GDTR_IDTR_ACCESS: VMEXIT_CALL_RET(0, hmR0VmxExitXdtrAccess(pVCpu, pVmxTransient)); 10379 case VMX_EXIT_LDTR_TR_ACCESS: VMEXIT_CALL_RET(0, hmR0VmxExitXdtrAccess(pVCpu, pVmxTransient)); 10381 10380 case VMX_EXIT_WBINVD: VMEXIT_CALL_RET(0, hmR0VmxExitWbinvd(pVCpu, pVmxTransient)); 10382 10381 case VMX_EXIT_XSETBV: VMEXIT_CALL_RET(0, hmR0VmxExitXsetbv(pVCpu, pVmxTransient));
Note:
See TracChangeset
for help on using the changeset viewer.