Changeset 67529 in vbox for trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
- Timestamp:
- Jun 21, 2017 8:29:25 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 116269
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp
r67165 r67529 277 277 static FNSVMEXITHANDLER hmR0SvmExitVmsave; 278 278 static FNSVMEXITHANDLER hmR0SvmExitInvlpga; 279 static FNSVMEXITHANDLER hmR0SvmExitVmrun; 279 280 #endif 280 281 /** @} */ … … 589 590 uint16_t offMsrpm; 590 591 uint32_t uMsrpmBit; 591 int rc = hmSvmGetMsrpmOffsetAndBit(uMsr, &offMsrpm, &uMsrpmBit);592 int rc = HMSvmGetMsrpmOffsetAndBit(uMsr, &offMsrpm, &uMsrpmBit); 592 593 AssertRC(rc); 593 594 … … 2440 2441 uint8_t uVector = Event.n.u8Vector; 2441 2442 uint8_t uVectorType = Event.n.u3Type; 2442 TRPMEVENT enmTrapType = hmSvmEventToTrpmEventType(&Event);2443 TRPMEVENT enmTrapType = HMSvmEventToTrpmEventType(&Event); 2443 2444 2444 2445 Log4(("HM event->TRPM: uVector=%#x enmTrapType=%d\n", uVector, uVectorType)); … … 2967 2968 HMSVM_ASSERT_PREEMPT_SAFE(); 2968 2969 2969 #if def VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM2970 #if defined(VBOX_WITH_NESTED_HWVIRT) && defined(VBOX_WITH_NESTED_HWVIRT_ONLY_IN_IEM) 2970 2971 /* Nested Hw. virt through SVM R0 execution is not yet implemented, IEM only, we shouldn't get here. */ 2971 2972 if (CPUMIsGuestInSvmNestedHwVirtMode(pCtx)) 2973 { 2974 Log2(("hmR0SvmPreRunGuest: Rescheduling to IEM due to nested-hwvirt or forced IEM exec -> VINF_EM_RESCHEDULE_REM\n")); 2972 2975 return VINF_EM_RESCHEDULE_REM; 2976 } 2973 2977 #endif 2974 2978 … … 3640 3644 case SVM_EXIT_VMSAVE: return hmR0SvmExitVmsave(pVCpu, pCtx, pSvmTransient); 3641 3645 case SVM_EXIT_INVLPGA: return hmR0SvmExitInvlpga(pVCpu, pCtx, pSvmTransient); 3646 case SVM_EXIT_VMRUN: return hmR0SvmExitVmrun(pVCpu, pCtx, pSvmTransient); 3642 3647 #else 3643 3648 case SVM_EXIT_CLGI: … … 3646 3651 case SVM_EXIT_VMSAVE: 3647 3652 case SVM_EXIT_INVLPGA: 3653 case SVM_EXIT_VMRUN: 3648 3654 #endif 3649 3655 case SVM_EXIT_RSM: 3650 case SVM_EXIT_VMRUN:3651 3656 case SVM_EXIT_SKINIT: 3652 3657 return hmR0SvmExitSetPendingXcptUD(pVCpu, pCtx, pSvmTransient); … … 5809 5814 return VBOXSTRICTRC_VAL(rcStrict); 5810 5815 } 5816 5817 5818 /** 5819 * \#VMEXIT handler for STGI (SVM_EXIT_VMRUN). Conditional \#VMEXIT. 5820 */ 5821 HMSVM_EXIT_DECL hmR0SvmExitVmrun(PVMCPU pVCpu, PCPUMCTX pCtx, PSVMTRANSIENT pSvmTransient) 5822 { 5823 HMSVM_VALIDATE_EXIT_HANDLER_PARAMS(); 5824 /** @todo Stat. */ 5825 /* STAM_COUNTER_INC(&pVCpu->hm.s.StatExitVmrun); */ 5826 uint8_t const cbInstr = hmR0SvmGetInstrLengthHwAssist(pVCpu, pCtx, 3); 5827 VBOXSTRICTRC rcStrict = IEMExecDecodedVmrun(pVCpu, cbInstr); 5828 return VBOXSTRICTRC_VAL(rcStrict); 5829 } 5811 5830 #endif /* VBOX_WITH_NESTED_HWVIRT */ 5812 5831
Note:
See TracChangeset
for help on using the changeset viewer.