VirtualBox

Changeset 19666 in vbox for trunk/src


Ignore:
Timestamp:
May 13, 2009 3:31:31 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
47265
Message:

Deal with VMMCALLHOST_MMHYPER_LOCK correctly.

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

Legend:

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

    r19663 r19666  
    338338}
    339339
     340/**
     341 * Service a VMMCALLHOST_MMHYPER_LOCK call.
     342 *
     343 * @returns VBox status code.
     344 * @param   pVM     The VM handle.
     345 */
     346VMMR3DECL(int) MMR3LockCall(PVM pVM)
     347{
     348    PMMHYPERHEAP pHeap = pVM->mm.s.CTX_SUFF(pHyperHeap);
     349
     350    int rc = PDMR3CritSectEnterEx(&pHeap->Lock, true /* fHostCall */);
     351    AssertRC(rc);
     352    return rc;
     353}
    340354
    341355/**
  • trunk/src/VBox/VMM/PGM.cpp

    r19141 r19666  
    32123212
    32133213/**
    3214  * Serivce a VMMCALLHOST_PGM_LOCK call.
     3214 * Service a VMMCALLHOST_PGM_LOCK call.
    32153215 *
    32163216 * @returns VBox status code.
  • trunk/src/VBox/VMM/VMM.cpp

    r19663 r19666  
    15861586        case VMMCALLHOST_MMHYPER_LOCK:
    15871587        {
    1588             pVCpu->vmm.s.rcCallHost = MMHyperLock(pVM);
     1588            pVCpu->vmm.s.rcCallHost = MMR3LockCall(pVM);
    15891589            break;
    15901590        }
  • trunk/src/VBox/VMM/VMMAll/MMAllHyper.cpp

    r19663 r19666  
    158158 * @param   pVM     The VM handle.
    159159 */
    160 VMMDECL(int) MMHyperLock(PVM pVM)
     160static int mmHyperLock(PVM pVM)
    161161{
    162162    PMMHYPERHEAP pHeap = pVM->mm.s.CTX_SUFF(pHyperHeap);
     
    189189 * @param   pVM     The VM handle.
    190190 */
    191 VMMDECL(void) MMHyperUnlock(PVM pVM)
     191static void mmHyperUnlock(PVM pVM)
    192192{
    193193    PMMHYPERHEAP pHeap = pVM->mm.s.CTX_SUFF(pHyperHeap);
     
    336336    int rc;
    337337
    338     rc = MMHyperLock(pVM);
     338    rc = mmHyperLock(pVM);
    339339    AssertRCReturn(rc, rc);
    340340
    341341    rc = mmHyperAllocInternal(pVM, cb, uAlignment, enmTag, ppv);
    342342
    343     MMHyperUnlock(pVM);
     343    mmHyperUnlock(pVM);
    344344    return rc;
    345345}
     
    916916    int rc;
    917917
    918     rc = MMHyperLock(pVM);
     918    rc = mmHyperLock(pVM);
    919919    AssertRCReturn(rc, rc);
    920920
    921921    rc = mmHyperFreeInternal(pVM, pv);
    922922
    923     MMHyperUnlock(pVM);
     923    mmHyperUnlock(pVM);
    924924    return rc;
    925925}
     
    11951195{
    11961196#ifdef MMHYPER_HEAP_STRICT
     1197    int rc;
     1198
     1199    rc = mmHyperLock(pVM);
     1200    AssertRC(rc);
    11971201    mmHyperHeapCheck(pVM->mm.s.CTX_SUFF(pHyperHeap));
     1202    mmHyperUnlock(pVM);
    11981203#endif
    11991204}
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