VirtualBox

Changeset 23523 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Oct 3, 2009 2:33:39 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
53166
Message:

PGMSavedState: bugfixes

File:
1 edited

Legend:

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

    r23521 r23523  
    934934static int pgmR3SaveMmio2Pages(PVM pVM, PSSMHANDLE pSSM, bool fLiveSave, uint32_t uPass)
    935935{
    936     int rc = VINF_SUCCESS;
    937936    /** @todo implement live saving of MMIO2 pages. (Need some way of telling the
    938937     *        device that we wish to know about changes.) */
    939938
     939    int rc = VINF_SUCCESS;
    940940    if (uPass == SSM_PASS_FINAL)
    941941    {
     
    959959                else
    960960                {
     961                    /* Try figure if it's a clean page, compare the SHA-1 to be really sure. */
    961962                    if (   !paLSPages[iPage].fDirty
    962963                        && !pgmR3ScanMmio2Page(pVM, pbPage, &paLSPages[iPage]))
     
    965966                            continue;
    966967
    967                         /* We have to be sure here before put it down as successfully written. */
    968968                        uint8_t abSha1Hash[RTSHA1_HASH_SIZE];
    969969                        RTSha1(pbPage, PAGE_SIZE, abSha1Hash);
     
    10101010            for (uint32_t iPage = 0; iPage < cPages; iPage++, pbPage += PAGE_SIZE)
    10111011            {
     1012                /* Skip clean pages and pages which hasn't quiesced. */
    10121013                if (!paLSPages[iPage].fDirty)
    10131014                    continue;
    10141015                if (paLSPages[iPage].cUnchangedScans < 3)
    10151016                    continue;
    1016                 if (!pgmR3ScanMmio2Page(pVM, pbPage, &paLSPages[iPage]))
     1017                if (pgmR3ScanMmio2Page(pVM, pbPage, &paLSPages[iPage]))
    10171018                    continue;
    10181019
     1020                /* Save it. */
    10191021                if (!paLSPages[iPage].fZero)
    10201022                    RTSha1(pbPage, PAGE_SIZE, paLSPages[iPage].abSha1Saved);
    10211023                uint8_t u8Type = paLSPages[iPage].fZero ? PGM_STATE_REC_MMIO2_ZERO : PGM_STATE_REC_MMIO2_RAW;
    1022 
    10231024                if (iPage != 0 && iPage == iPageLast + 1)
    10241025                    rc = SSMR3PutU8(pSSM, u8Type);
     
    10311032                if (u8Type == PGM_STATE_REC_MMIO2_RAW)
    10321033                    rc = SSMR3PutMem(pSSM, pbPage, PAGE_SIZE);
    1033 
    10341034                if (RT_FAILURE(rc))
    10351035                    break;
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