Changeset 30813 in vbox
- Timestamp:
- Jul 14, 2010 9:53:09 AM (15 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGM.cpp
r30761 r30813 1213 1213 pPGM->GCPhysCR3 = NIL_RTGCPHYS; 1214 1214 1215 pPGM->pGst32BitPdR3 = NULL; 1215 1216 pPGM->pGstPaePdptR3 = NULL; 1217 pPGM->pGstAmd64Pml4R3 = NULL; 1216 1218 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE 1219 pPGM->pGst32BitPdR0 = NIL_RTR0PTR: 1217 1220 pPGM->pGstPaePdptR0 = NIL_RTR0PTR; 1221 pPGM->pGstAmd64Pml4R0 = NIL_RTR0PTR; 1218 1222 #endif 1223 pPGM->pGst32BitPdRC = NIL_RTRCPTR; 1219 1224 pPGM->pGstPaePdptRC = NIL_RTRCPTR; 1220 1225 for (unsigned i = 0; i < RT_ELEMENTS(pVCpu->pgm.s.apGstPaePDsR3); i++) -
trunk/src/VBox/VMM/PGMInternal.h
r30789 r30813 1165 1165 R3PTRTYPE(void *) pvR3; 1166 1166 /** Live save per page tracking data. */ 1167 R3PTRTYPE(PPGMLIVESAVERAMPAGE) 1167 R3PTRTYPE(PPGMLIVESAVERAMPAGE) paLSPages; 1168 1168 /** The range description. */ 1169 1169 R3PTRTYPE(const char *) pszDesc; -
trunk/src/VBox/VMM/PGMPhys.cpp
r30811 r30813 3188 3188 } 3189 3189 3190 3190 #if 1 /* HC_ARCH_BITS == 32 */ 3191 3191 /** 3192 3192 * Tree enumeration callback for dealing with age rollover. … … 3383 3383 pVM->pgm.s.ChunkR3Map.c--; 3384 3384 3385 /* Chunk removed, so clear the chunk map TLB; PGMR3PhysChunkInvalidateTLB clears the page map TLB as well. */ 3386 PGMR3PhysChunkInvalidateTLB(pVM); 3387 3388 /* Flush all REM caches. */ 3385 /* Flush dangling PGM pointers (R3 & R0 ptrs to GC physical addresses) */ 3386 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++) 3387 { 3388 PVMCPU pVCpu = &pVM->aCpus[idCpu]; 3389 PPGMCPU pPGM = &pVCpu->pgm.s; 3390 3391 pPGM->pGst32BitPdR3 = NULL; 3392 pPGM->pGstPaePdptR3 = NULL; 3393 pPGM->pGstAmd64Pml4R3 = NULL; 3394 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE 3395 pPGM->pGst32BitPdR0 = NIL_RTR0PTR: 3396 pPGM->pGstPaePdptR0 = NIL_RTR0PTR; 3397 pPGM->pGstAmd64Pml4R0 = NIL_RTR0PTR; 3398 #endif 3399 for (unsigned i = 0; i < RT_ELEMENTS(pVCpu->pgm.s.apGstPaePDsR3); i++) 3400 { 3401 pPGM->apGstPaePDsR3[i] = NULL; 3402 #ifndef VBOX_WITH_2X_4GB_ADDR_SPACE 3403 pPGM->apGstPaePDsR0[i] = NIL_RTR0PTR; 3404 #endif 3405 } 3406 3407 /* Flush REM TLBs. */ 3408 CPUMSetChangedFlags(pVCpu, CPUM_CHANGED_GLOBAL_TLB_FLUSH); 3409 } 3410 3411 /* Flush REM translation blocks. */ 3389 3412 REMFlushTBs(pVM); 3390 for (VMCPUID idCpu = 0; idCpu < pVM->cCpus; idCpu++)3391 CPUMSetChangedFlags(&pVM->aCpus[idCpu], CPUM_CHANGED_GLOBAL_TLB_FLUSH);3392 3413 3393 3414 /* Flush the pgm pool cache; call the internal rendezvous handler as we're already in a rendezvous handler here. */ … … 3410 3431 AssertRC(rc); 3411 3432 } 3433 #endif /* HC_ARCH_BITS == 32 */ 3412 3434 3413 3435 /**
Note:
See TracChangeset
for help on using the changeset viewer.