- Timestamp:
- Apr 10, 2008 3:46:31 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 29497
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r7859 r7873 2986 2986 ("Invalid GCPhysCR3=%VGp cr3=%VGp\n", pPGM->GCPhysCR3, (RTGCPHYS)cr3), 2987 2987 false); 2988 # if PGM_GST_TYPE == PGM_TYPE_32BIT 2988 # ifndef IN_RING0 2989 # if PGM_GST_TYPE == PGM_TYPE_32BIT 2989 2990 rc = PGMShwGetPage(pVM, pPGM->pGuestPDGC, NULL, &HCPhysShw); 2990 # else2991 # else 2991 2992 rc = PGMShwGetPage(pVM, pPGM->pGstPaePDPTGC, NULL, &HCPhysShw); 2992 # endif2993 # endif 2993 2994 AssertRCReturn(rc, 1); 2994 2995 HCPhys = NIL_RTHCPHYS; 2995 2996 rc = pgmRamGCPhys2HCPhys(pPGM, cr3 & GST_CR3_PAGE_MASK, &HCPhys); 2996 2997 AssertMsgReturn(HCPhys == HCPhysShw, ("HCPhys=%VHp HCPhyswShw=%VHp (cr3)\n", HCPhys, HCPhysShw), false); 2997 # if PGM_GST_TYPE == PGM_TYPE_32BIT && defined(IN_RING3)2998 # if PGM_GST_TYPE == PGM_TYPE_32BIT && defined(IN_RING3) 2998 2999 RTGCPHYS GCPhys; 2999 3000 rc = PGMR3DbgHCPtr2GCPhys(pVM, pPGM->pGuestPDHC, &GCPhys); 3000 3001 AssertRCReturn(rc, 1); 3001 3002 AssertMsgReturn((cr3 & GST_CR3_PAGE_MASK) == GCPhys, ("GCPhys=%VGp cr3=%VGp\n", GCPhys, (RTGCPHYS)cr3), false); 3002 # endif 3003 # endif 3004 #endif /* !IN_RING0 */ 3003 3005 3004 3006 # if PGM_GST_TYPE == PGM_TYPE_32BIT … … 3020 3022 3021 3023 /** @todo call the other two PGMAssert*() functions. */ 3024 3025 # if PGM_GST_TYPE == PGM_TYPE_PAE 3026 /* 3027 * Check the 4 PDPTs too. 3028 */ 3029 for (unsigned i = 0; i < 4; i++) 3030 { 3031 RTHCPTR HCPtr; 3032 RTHCPHYS HCPhys; 3033 RTGCPHYS GCPhys = pVM->pgm.s.CTXSUFF(pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK; 3034 int rc2 = pgmRamGCPhys2HCPtrAndHCPhysWithFlags(&pVM->pgm.s, GCPhys, &HCPtr, &HCPhys); 3035 if (VBOX_SUCCESS(rc2)) 3036 { 3037 AssertMsg( pVM->pgm.s.apGstPaePDsHC[i] == (R3R0PTRTYPE(PX86PDPAE))HCPtr 3038 && pVM->pgm.s.apGstPaePDsGC[i] == (GCPTRTYPE(PX86PDPAE))GCPtr 3039 && pVM->pgm.s.aGCPhysGstPaePDs[i] == GCPhys, 3040 ("idx %d apGstPaePDsHC %VHv vs %VHv apGstPaePDsGC %VGv vs %VGv aGCPhysGstPaePDs %VGp vs %VGp\n", 3041 i, pVM->pgm.s.apGstPaePDsHC[i], HCPtr, pVM->pgm.s.apGstPaePDsGC[i], GCPtr, pVM->pgm.s.aGCPhysGstPaePDs[i], GCPhys)); 3042 } 3043 } 3044 # endif 3022 3045 3023 3046 /*
Note:
See TracChangeset
for help on using the changeset viewer.