VirtualBox

Changeset 19628 in vbox for trunk


Ignore:
Timestamp:
May 12, 2009 2:16:11 PM (16 years ago)
Author:
vboxsync
Message:

Lock counter instead of a lock flag.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGMInternal.h

    r19504 r19628  
    16141614    bool volatile       fReusedFlushPending;
    16151615    /** Used to indicate that this page can't be flushed. Important for cr3 root pages or shadow pae pd pages). */
    1616     bool                fLocked;
     1616    uint8_t             cLocked;
    16171617} PGMPOOLPAGE, *PPGMPOOLPAGE, **PPPGMPOOLPAGE;
    16181618/** Pointer to a const pool page. */
     
    44334433DECLINLINE(void) pgmPoolLockPage(PPGMPOOL pPool, PPGMPOOLPAGE pPage)
    44344434{
    4435     Assert(!pPage->fLocked);
    4436     pPage->fLocked = true;
     4435    pPage->cLocked++;
    44374436}
    44384437
     
    44464445DECLINLINE(void) pgmPoolUnlockPage(PPGMPOOL pPool, PPGMPOOLPAGE pPage)
    44474446{
    4448     Assert(pPage->fLocked);
    4449     pPage->fLocked = false;
     4447    Assert(pPage->cLocked);
     4448    pPage->cLocked--;
    44504449}
    44514450
     
    44594458DECLINLINE(bool) pgmPoolIsPageLocked(PPGM pPGM, PPGMPOOLPAGE pPage)
    44604459{
    4461     if (pPage->fLocked)
     4460    if (pPage->cLocked)
    44624461    {
    44634462        LogFlow(("pgmPoolIsPageLocked found root page %d\n", pPage->enmKind));
  • trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp

    r19329 r19628  
    577577                PCPGMPOOLPAGE   pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK);
    578578                AssertFatal(pPoolPagePd);
    579                 AssertMsg(pPoolPagePd->fLocked, (".idx=%d .type=%d\n", pPoolPagePd->idx, pPoolPagePd->enmKind));
     579                AssertMsg(pPoolPagePd->cLocked, (".idx=%d .type=%d\n", pPoolPagePd->idx, pPoolPagePd->enmKind));
    580580                break;
    581581            }
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r19627 r19628  
    38643864        pPage->iAgePrev  = NIL_PGMPOOL_IDX;
    38653865#endif
    3866         pPage->fLocked   = false;
     3866        pPage->cLocked   = 0;
    38673867    }
    38683868    pPool->aPages[pPool->cCurPages - 1].iNext = NIL_PGMPOOL_IDX;
Note: See TracChangeset for help on using the changeset viewer.

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