VirtualBox

Changeset 4789 in vbox


Ignore:
Timestamp:
Sep 14, 2007 11:10:35 AM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
24488
Message:

Also use host OS ioctls to go to ring 0 for hardware virtualization.

Location:
trunk/src/VBox/VMM
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/HWACCM.cpp

    r4071 r4789  
    423423            memset(pVM->hwaccm.s.vmx.pRealModeTSS->IntRedirBitmap, 0x0, sizeof(pVM->hwaccm.s.vmx.pRealModeTSS->IntRedirBitmap));
    424424
    425             int rc = SUPCallVMMR0(pVM->pVMR0, VMMR0_DO_HWACC_SETUP_VM, NULL);
     425            int rc = SUPCallVMMR0Ex(pVM->pVMR0, VMMR0_DO_HWACC_SETUP_VM, NULL, 0);
    426426            AssertRC(rc);
    427427            if (rc == VINF_SUCCESS)
     
    457457            pVM->hwaccm.s.fInitialized = true;
    458458
    459             int rc = SUPCallVMMR0(pVM->pVMR0, VMMR0_DO_HWACC_SETUP_VM, NULL);
     459            int rc = SUPCallVMMR0Ex(pVM->pVMR0, VMMR0_DO_HWACC_SETUP_VM, NULL, 0);
    460460            AssertRC(rc);
    461461            if (rc == VINF_SUCCESS)
  • trunk/src/VBox/VMM/VMM.cpp

    r4738 r4789  
    19591959            rc = VERR_GENERAL_FAILURE;
    19601960#else
    1961             rc = SUPCallVMMR0(pVM->pVMR0, VMMR0_DO_HWACC_RUN, NULL);
     1961            rc = SUPCallVMMR0Ex(pVM->pVMR0, VMMR0_DO_HWACC_RUN, NULL, 0);
    19621962#endif
    19631963        } while (rc == VINF_EM_RAW_INTERRUPT_HYPER);
  • trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp

    r4418 r4789  
    15681568
    15691569
    1570 #ifndef IN_RING0 /** @todo broken in ring 0 */
    15711570/**
    15721571 * [REP*] INSB/INSW/INSD
     
    18851884}
    18861885
    1887 #endif /* IN_RING0 */
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r4756 r4789  
    12181218        if (IoExitInfo.n.u1STR)
    12191219        {
    1220 #if 1
    1221             /** @todo the ring 3 emulation somehow causes the host to hang during e.g. nt4 installation; fall back to the recompiler */
    1222             rc = VINF_EM_RAW_EMULATE_INSTR;
    1223             break;
    1224 #else
    12251220            /* ins/outs */
    12261221            uint32_t prefix = 0;
     
    12401235                rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), IoExitInfo.n.u16Port, prefix, uIOSize);
    12411236            }
    1242 #endif
    12431237        }
    12441238        else
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r4764 r4789  
    14181418#ifdef VBOX_STRICT
    14191419                if (rc != VINF_EM_RAW_EMULATE_INSTR)
    1420                     Log(("PGMTrap0eHandler failed with %d\n", rc));
     1420                    Log2(("PGMTrap0eHandler failed with %d\n", rc));
    14211421#endif
    14221422                /* Need to go back to the recompiler to emulate the instruction. */
     
    16961696        if (VMX_EXIT_QUALIFICATION_IO_STRING(exitQualification))
    16971697        {
    1698 #if 1
    1699             /** @todo the ring 3 emulation somehow causes the host to hang during e.g. nt4 installation; fall back to the recompiler */
    1700             rc = VINF_EM_RAW_EMULATE_INSTR;
    1701             break;
    1702 #else
    17031698            /* ins/outs */
    17041699            uint32_t prefix = 0;
     
    17181713                rc = IOMInterpretINSEx(pVM, CPUMCTX2CORE(pCtx), uPort, prefix, cbSize);
    17191714            }
    1720 #endif
    17211715        }
    17221716        else
Note: See TracChangeset for help on using the changeset viewer.

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