Changeset 4932 in vbox
- Timestamp:
- Sep 20, 2007 2:12:41 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 24680
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMM.cpp
r4917 r4932 1957 1957 rc = VERR_GENERAL_FAILURE; 1958 1958 #else 1959 //rc = SUPCallVMMR0Ex(pVM->pVMR0, VMMR0_DO_HWACC_RUN, NULL, 0);1960 # if !defined(RT_OS_LINUX) /* Alternative for debugging - currently untested on linux. */1961 1959 rc = SUPCallVMMR0Fast(pVM->pVMR0, VMMR0_DO_HWACC_RUN); 1962 # else1963 rc = SUPCallVMMR0(pVM->pVMR0, VMMR0_DO_HWACC_RUN, NULL);1964 # endif1965 1960 #endif 1966 1961 } while (rc == VINF_EM_RAW_INTERRUPT_HYPER); -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r4790 r4932 1036 1036 /* All done! Let's start VM execution. */ 1037 1037 STAM_PROFILE_ADV_START(&pVM->hwaccm.s.StatInGC, x); 1038 Assert(!(ASMGetFlags() & X86_EFL_IF));1039 1038 if (pVM->hwaccm.s.vmx.fResumeVM == false) 1040 1039 rc = VMXStartVM(pCtx); 1041 1040 else 1042 1041 rc = VMXResumeVM(pCtx); 1043 Assert(!(ASMGetFlags() & X86_EFL_IF));1044 1042 1045 1043 /* In case we execute a goto ResumeExecution later on. */ … … 1958 1956 return rc; 1959 1957 } 1960 Assert(!(ASMGetFlags() & X86_EFL_IF));1961 1958 pVM->hwaccm.s.vmx.fResumeVM = false; 1962 1959 return VINF_SUCCESS; … … 1974 1971 Assert(pVM->hwaccm.s.vmx.fSupported); 1975 1972 1976 Assert(!(ASMGetFlags() & X86_EFL_IF));1977 1978 1973 /* Clear VM Control Structure. Marking it inactive, clearing implementation specific data and writing back VMCS data to memory. */ 1979 1974 int rc = VMXClearVMCS(pVM->hwaccm.s.vmx.pVMCSPhys); -
trunk/src/VBox/VMM/VMMR0/VMMR0.cpp
r4929 r4932 489 489 490 490 /* 491 * Run guest code using the available hardware acceleration technology.492 */493 case VMMR0_DO_HWACC_RUN:494 {495 STAM_COUNTER_INC(&pVM->vmm.s.StatRunGC);496 int rc = HWACCMR0Enable(pVM);497 if (VBOX_SUCCESS(rc))498 {499 #ifdef DEBUG_NO_RING0_ASSERTIONS500 g_pVMAssert = pVM;501 #endif502 rc = vmmR0CallHostSetJmp(&pVM->vmm.s.CallHostR0JmpBuf, HWACCMR0RunGuestCode, pVM); /* this may resume code. */503 #ifdef DEBUG_NO_RING0_ASSERTIONS504 g_pVMAssert = 0;505 #endif506 int rc2 = HWACCMR0Disable(pVM);507 AssertRC(rc2);508 }509 pVM->vmm.s.iLastGCRc = rc;510 511 #ifdef VBOX_WITH_STATISTICS512 vmmR0RecordRC(pVM, rc);513 #endif514 /* No special action required for external interrupts, just return. */515 return rc;516 }517 518 /*519 491 * Initialize the R0 part of a VM instance. 520 492 */ … … 534 506 RTCCUINTREG fFlags = ASMIntDisableFlags(); 535 507 int rc = VMMR0Term(pVM); 536 ASMSetFlags(fFlags);537 return rc;538 }539 540 /*541 * Setup the hardware accelerated raw-mode session.542 */543 case VMMR0_DO_HWACC_SETUP_VM:544 {545 RTCCUINTREG fFlags = ASMIntDisableFlags();546 int rc = HWACCMR0SetupVMX(pVM);547 508 ASMSetFlags(fFlags); 548 509 return rc; … … 679 640 switch (enmOperation) 680 641 { 681 #if 1 /* disable later? */682 /*683 * Alternative to the fast path, all we need to do is disable interrupts.684 */685 case VMMR0_DO_RAW_RUN:686 case VMMR0_DO_HWACC_RUN:687 {688 RTCCUINTREG fFlags = ASMIntDisableFlags();689 int rc = VMMR0EntryFast(pVM, enmOperation);690 ASMSetFlags(fFlags);691 return rc;692 }693 #endif694 695 642 /* 696 643 * Initialize the R0 part of a VM instance.
Note:
See TracChangeset
for help on using the changeset viewer.