Changeset 7715 in vbox for trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
- Timestamp:
- Apr 3, 2008 9:03:01 AM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 29247
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r7677 r7715 388 388 #elif PGM_GST_TYPE == PGM_TYPE_PAE 389 389 const unsigned off = GCPhysCR3 & X86_CR3_PAE_PAGE_MASK; 390 pVM->pgm.s.pGstPaePDPT RHC = (R3R0PTRTYPE(PX86PDPTR))((RTHCUINTPTR)HCPtrGuestCR3 | off);391 pVM->pgm.s.pGstPaePDPT RGC = (GCPTRTYPE(PX86PDPTR))((RTGCUINTPTR)pVM->pgm.s.GCPtrCR3Mapping | off);390 pVM->pgm.s.pGstPaePDPTHC = (R3R0PTRTYPE(PX86PDPT))((RTHCUINTPTR)HCPtrGuestCR3 | off); 391 pVM->pgm.s.pGstPaePDPTGC = (GCPTRTYPE(PX86PDPT))((RTGCUINTPTR)pVM->pgm.s.GCPtrCR3Mapping | off); 392 392 393 393 /* … … 397 397 for (unsigned i = 0; i < 4; i++, GCPtr += PAGE_SIZE) 398 398 { 399 if (pVM->pgm.s.CTXSUFF(pGstPaePDPT R)->a[i].n.u1Present)399 if (pVM->pgm.s.CTXSUFF(pGstPaePDPT)->a[i].n.u1Present) 400 400 { 401 401 RTHCPTR HCPtr; 402 402 RTHCPHYS HCPhys; 403 RTGCPHYS GCPhys = pVM->pgm.s.CTXSUFF(pGstPaePDPT R)->a[i].u & X86_PDPE_PG_MASK;403 RTGCPHYS GCPhys = pVM->pgm.s.CTXSUFF(pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK; 404 404 int rc2 = pgmRamGCPhys2HCPtrAndHCPhysWithFlags(&pVM->pgm.s, GCPhys, &HCPtr, &HCPhys); 405 405 if (VBOX_SUCCESS(rc2)) … … 452 452 453 453 #elif PGM_GST_TYPE == PGM_TYPE_PAE 454 pVM->pgm.s.pGstPaePDPT RHC = 0;455 pVM->pgm.s.pGstPaePDPT RGC = 0;454 pVM->pgm.s.pGstPaePDPTHC = 0; 455 pVM->pgm.s.pGstPaePDPTGC = 0; 456 456 /** PAE todo: pVM->pgm.s.apGstPaePDsHC? -> unmap?? */ 457 457 AssertFailed(); … … 529 529 for (unsigned i = 0; i < 4; i++) 530 530 { 531 if (CTXSUFF(pVM->pgm.s.pGstPaePDPT R)->a[i].n.u1Present)532 { 533 RTGCPHYS GCPhys = CTXSUFF(pVM->pgm.s.pGstPaePDPT R)->a[i].u & X86_PDPE_PG_MASK;531 if (CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].n.u1Present) 532 { 533 RTGCPHYS GCPhys = CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK; 534 534 # ifndef PGMPOOL_WITH_MIXED_PT_CR3 535 535 if (pVM->pgm.s.aGCPhysGstPaePDsMonitored[i] != GCPhys) … … 970 970 for (unsigned i = 0; i < 4; i++) 971 971 { 972 if ( CTXSUFF(pVM->pgm.s.pGstPaePDPT R)->a[i].n.u1Present973 && ( CTXSUFF(pVM->pgm.s.pGstPaePDPT R)->a[i].u & X86_PDPE_PG_MASK)972 if ( CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].n.u1Present 973 && ( CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u & X86_PDPE_PG_MASK) 974 974 != pVM->pgm.s.aGCPhysGstPaePDsMonitored[i]) 975 975 { … … 986 986 pVM->pgm.s.fSyncFlags |= PGM_SYNC_MONITOR_CR3; 987 987 Log(("pgmXXGstPaeWriteHandlerCR3: detected updated PDPE; [%d] = %#llx, Old GCPhys=%VGp\n", 988 i, CTXSUFF(pVM->pgm.s.pGstPaePDPT R)->a[i].u, pVM->pgm.s.aGCPhysGstPaePDsMonitored[i]));988 i, CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u, pVM->pgm.s.aGCPhysGstPaePDsMonitored[i])); 989 989 } 990 990 } … … 1035 1035 RTGCUINTPTR i; 1036 1036 for (i = 0; i < 4; i++) 1037 if (CTXSUFF(pVM->pgm.s.pGstPaePDPT R)->a[i].u == (GCPhysFault & X86_PTE_PAE_PG_MASK))1037 if (CTXSUFF(pVM->pgm.s.pGstPaePDPT)->a[i].u == (GCPhysFault & X86_PTE_PAE_PG_MASK)) 1038 1038 { 1039 PX86PDPAE pPDSrc = pgmGstGetPaePD(&pVM->pgm.s, i << X86_PDPT R_SHIFT);1039 PX86PDPAE pPDSrc = pgmGstGetPaePD(&pVM->pgm.s, i << X86_PDPT_SHIFT); 1040 1040 const RTGCUINTPTR offPD = GCPhysFault & PAGE_OFFSET_MASK; 1041 1041 const unsigned iPD1 = offPD / sizeof(X86PDEPAE); … … 1048 1048 #ifdef DEBUG 1049 1049 Log(("pgmXXGstPaeWriteHandlerPD: emulated change to i=%d iPD1=%#05x (%VGv)\n", 1050 i, iPD1, (i << X86_PDPT R_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT)));1050 i, iPD1, (i << X86_PDPT_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT))); 1051 1051 if (iPD1 != iPD2) 1052 1052 Log(("pgmXXGstPaeWriteHandlerPD: emulated change to i=%d iPD2=%#05x (%VGv)\n", 1053 i, iPD2, (i << X86_PDPT R_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT)));1053 i, iPD2, (i << X86_PDPT_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT))); 1054 1054 #endif 1055 1055 … … 1057 1057 { 1058 1058 if ( ( pPDSrc->a[iPD1].n.u1Present 1059 && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPT R_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT))) )1059 && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPT_SHIFT) | (iPD1 << X86_PD_PAE_SHIFT))) ) 1060 1060 || ( iPD1 != iPD2 1061 1061 && pPDSrc->a[iPD2].n.u1Present 1062 && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPT R_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT))) )1062 && pgmGetMapping(pVM, (RTGCPTR)((i << X86_PDPT_SHIFT) | (iPD2 << X86_PD_PAE_SHIFT))) ) 1063 1063 ) 1064 1064 {
Note:
See TracChangeset
for help on using the changeset viewer.