Changeset 23523 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Oct 3, 2009 2:33:39 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 53166
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMSavedState.cpp
r23521 r23523 934 934 static int pgmR3SaveMmio2Pages(PVM pVM, PSSMHANDLE pSSM, bool fLiveSave, uint32_t uPass) 935 935 { 936 int rc = VINF_SUCCESS;937 936 /** @todo implement live saving of MMIO2 pages. (Need some way of telling the 938 937 * device that we wish to know about changes.) */ 939 938 939 int rc = VINF_SUCCESS; 940 940 if (uPass == SSM_PASS_FINAL) 941 941 { … … 959 959 else 960 960 { 961 /* Try figure if it's a clean page, compare the SHA-1 to be really sure. */ 961 962 if ( !paLSPages[iPage].fDirty 962 963 && !pgmR3ScanMmio2Page(pVM, pbPage, &paLSPages[iPage])) … … 965 966 continue; 966 967 967 /* We have to be sure here before put it down as successfully written. */968 968 uint8_t abSha1Hash[RTSHA1_HASH_SIZE]; 969 969 RTSha1(pbPage, PAGE_SIZE, abSha1Hash); … … 1010 1010 for (uint32_t iPage = 0; iPage < cPages; iPage++, pbPage += PAGE_SIZE) 1011 1011 { 1012 /* Skip clean pages and pages which hasn't quiesced. */ 1012 1013 if (!paLSPages[iPage].fDirty) 1013 1014 continue; 1014 1015 if (paLSPages[iPage].cUnchangedScans < 3) 1015 1016 continue; 1016 if ( !pgmR3ScanMmio2Page(pVM, pbPage, &paLSPages[iPage]))1017 if (pgmR3ScanMmio2Page(pVM, pbPage, &paLSPages[iPage])) 1017 1018 continue; 1018 1019 1020 /* Save it. */ 1019 1021 if (!paLSPages[iPage].fZero) 1020 1022 RTSha1(pbPage, PAGE_SIZE, paLSPages[iPage].abSha1Saved); 1021 1023 uint8_t u8Type = paLSPages[iPage].fZero ? PGM_STATE_REC_MMIO2_ZERO : PGM_STATE_REC_MMIO2_RAW; 1022 1023 1024 if (iPage != 0 && iPage == iPageLast + 1) 1024 1025 rc = SSMR3PutU8(pSSM, u8Type); … … 1031 1032 if (u8Type == PGM_STATE_REC_MMIO2_RAW) 1032 1033 rc = SSMR3PutMem(pSSM, pbPage, PAGE_SIZE); 1033 1034 1034 if (RT_FAILURE(rc)) 1035 1035 break;
Note:
See TracChangeset
for help on using the changeset viewer.