Changeset 19462 in vbox
- Timestamp:
- May 6, 2009 8:20:47 PM (16 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMM.cpp
r19436 r19462 1071 1071 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 1072 1072 if (RT_LIKELY(rc == VINF_SUCCESS)) 1073 rc = pV M->vmm.s.iLastGZRc;1073 rc = pVCpu->vmm.s.iLastGZRc; 1074 1074 #endif 1075 1075 } while (rc == VINF_EM_RAW_INTERRUPT_HYPER); … … 1122 1122 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_HWACC_RUN, pVCpu->idCpu); 1123 1123 if (RT_LIKELY(rc == VINF_SUCCESS)) 1124 rc = pV M->vmm.s.iLastGZRc;1124 rc = pVCpu->vmm.s.iLastGZRc; 1125 1125 #endif 1126 1126 } while (rc == VINF_EM_RAW_INTERRUPT_HYPER); … … 1211 1211 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 1212 1212 if (RT_LIKELY(rc == VINF_SUCCESS)) 1213 rc = pV M->vmm.s.iLastGZRc;1213 rc = pVCpu->vmm.s.iLastGZRc; 1214 1214 #endif 1215 1215 } while (rc == VINF_EM_RAW_INTERRUPT_HYPER); … … 1315 1315 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 1316 1316 if (RT_LIKELY(rc == VINF_SUCCESS)) 1317 rc = pV M->vmm.s.iLastGZRc;1317 rc = pVCpu->vmm.s.iLastGZRc; 1318 1318 #endif 1319 1319 } while (rc == VINF_EM_RAW_INTERRUPT_HYPER); -
trunk/src/VBox/VMM/VMMInternal.h
r19453 r19462 199 199 /** Array of offsets to the different switchers within the core code. */ 200 200 RTUINT aoffSwitchers[VMMSWITCHER_MAX]; 201 uint32_t u32Padding0; /**< Alignment padding. */ 202 203 /** The last RC/R0 return code. */ 204 RTINT iLastGZRc; 201 205 202 /** Resume Guest Execution. See CPUMGCResumeGuest(). */ 206 203 RTRCPTR pfnCPUMRCResumeGuest; … … 328 325 * See VMM2VMCPU(). */ 329 326 RTINT offVMCPU; 330 RTINT offDummy; 327 328 /** The last RC/R0 return code. */ 329 int32_t iLastGZRc; 331 330 332 331 /** VMM stack, pointer to the top of the stack in R3. -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r19454 r19462 533 533 { 534 534 if (RT_UNLIKELY(idCpu >= pVM->cCPUs)) 535 {536 pVM->vmm.s.iLastGZRc = VERR_INVALID_PARAMETER;537 535 return; 538 }539 536 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 540 537 … … 556 553 if (RT_UNLIKELY(pVM->cCPUs > 1)) 557 554 { 558 pV M->vmm.s.iLastGZRc = VERR_RAW_MODE_INVALID_SMP;555 pVCpu->vmm.s.iLastGZRc = VERR_RAW_MODE_INVALID_SMP; 559 556 return; 560 557 } … … 563 560 if (RT_UNLIKELY(!PGMGetHyperCR3(pVCpu))) 564 561 { 565 pV M->vmm.s.iLastGZRc = VERR_PGM_NO_CR3_SHADOW_ROOT;562 pVCpu->vmm.s.iLastGZRc = VERR_PGM_NO_CR3_SHADOW_ROOT; 566 563 return; 567 564 } … … 572 569 if (RT_FAILURE(rc)) 573 570 { 574 pV M->vmm.s.iLastGZRc = rc;571 pVCpu->vmm.s.iLastGZRc = rc; 575 572 return; 576 573 } … … 581 578 TMNotifyStartOfExecution(pVCpu); 582 579 rc = pVM->vmm.s.pfnHostToGuestR0(pVM); 583 pV M->vmm.s.iLastGZRc = rc;580 pVCpu->vmm.s.iLastGZRc = rc; 584 581 TMNotifyEndOfExecution(pVCpu); 585 582 … … 604 601 { 605 602 Assert(!pVM->vmm.s.fSwitcherDisabled); 606 pV M->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED;603 pVCpu->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED; 607 604 } 608 605 break; … … 642 639 rc = VINF_EM_RAW_INTERRUPT; 643 640 } 644 pV M->vmm.s.iLastGZRc = rc;641 pVCpu->vmm.s.iLastGZRc = rc; 645 642 646 643 ASMAtomicWriteU32(&pVCpu->idHostCpu, NIL_RTCPUID); … … 660 657 */ 661 658 case VMMR0_DO_NOP: 662 pV M->vmm.s.iLastGZRc = VINF_SUCCESS;659 pVCpu->vmm.s.iLastGZRc = VINF_SUCCESS; 663 660 break; 664 661 … … 668 665 default: 669 666 AssertMsgFailed(("%#x\n", enmOperation)); 670 pV M->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED;667 pVCpu->vmm.s.iLastGZRc = VERR_NOT_SUPPORTED; 671 668 break; 672 669 } -
trunk/src/VBox/VMM/VMMTests.cpp
r19434 r19462 75 75 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 76 76 if (RT_LIKELY(rc == VINF_SUCCESS)) 77 rc = pV M->vmm.s.iLastGZRc;77 rc = pVCpu->vmm.s.iLastGZRc; 78 78 return rc; 79 79 } … … 115 115 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 116 116 if (RT_LIKELY(rc == VINF_SUCCESS)) 117 rc = pV M->vmm.s.iLastGZRc;117 rc = pVCpu->vmm.s.iLastGZRc; 118 118 bool fDump = false; 119 119 if (rc != rcExpect) … … 363 363 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 364 364 if (RT_LIKELY(rc == VINF_SUCCESS)) 365 rc = pV M->vmm.s.iLastGZRc;365 rc = pVCpu->vmm.s.iLastGZRc; 366 366 if (RT_FAILURE(rc)) 367 367 { … … 417 417 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_RAW_RUN, 0); 418 418 if (RT_LIKELY(rc == VINF_SUCCESS)) 419 rc = pV M->vmm.s.iLastGZRc;419 rc = pVCpu->vmm.s.iLastGZRc; 420 420 uint64_t TickThisElapsed = ASMReadTSC() - TickThisStart; 421 421 if (RT_FAILURE(rc)) -
trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp
r19434 r19462 872 872 GEN_CHECK_OFF(VMM, pfnCPUMRCResumeGuest); 873 873 GEN_CHECK_OFF(VMM, pfnCPUMRCResumeGuestV86); 874 GEN_CHECK_OFF(VMM , iLastGZRc);874 GEN_CHECK_OFF(VMMCPU, iLastGZRc); 875 875 GEN_CHECK_OFF(VMMCPU, pbEMTStackR3); 876 876 GEN_CHECK_OFF(VMMCPU, pbEMTStackRC);
Note:
See TracChangeset
for help on using the changeset viewer.