Changeset 7655 in vbox
- Timestamp:
- Mar 31, 2008 1:19:56 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 29165
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/x86.h
r7121 r7655 1210 1210 #define X86_PDE4M_PG_HIGH_SHIFT 19 1211 1211 1212 /** Bits 12-51- - PAE - Physical Page number. */1213 #define X86_PDE 4M_PAE_PG_MASK ( 0x000fffffffc00000ULL )1212 /** Bits 21-36 - - PAE - Physical Page number. */ 1213 #define X86_PDE2M_PAE_PG_MASK ( 0x000fffffffe00000ULL ) 1214 1214 /** Bits 63 - NX - PAE - No execution flag. */ 1215 #define X86_PDE 4M_PAE_NX RT_BIT_64(63)1215 #define X86_PDE2M_PAE_NX RT_BIT_64(63) 1216 1216 1217 1217 /** -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r7642 r7655 829 829 */ 830 830 Assert(pgmMapAreMappingsEnabled(&pVM->pgm.s)); 831 Assert(PGMGetGuestMode(pVM) <= PGMMODE_32_BIT); 831 832 rc = PGM_BTH_NAME(SyncPT)(pVM, iPDSrc, pPDSrc, GCPtrPage); 832 833 } … … 1242 1243 * Assert preconditions. 1243 1244 */ 1244 # if GC_ARCH_BITS != 321245 Assert(GCPtrPage < _4G); //???1246 # endif1247 1245 STAM_COUNTER_INC(&pVM->pgm.s.StatGCSyncPagePD[(GCPtrPage >> X86_PD_SHIFT) & GST_PD_MASK]); 1248 1246 Assert(PdeSrc.n.u1Present); … … 1390 1388 */ 1391 1389 /* Calculate the GC physical address of this 4KB shadow page. */ 1392 RTGCPHYS GCPhys = (PdeSrc.u & X86_PDE4M_P AE_PG_MASK) | ((RTGCUINTPTR)GCPtrPage & GST_BIG_PAGE_OFFSET_MASK);1390 RTGCPHYS GCPhys = (PdeSrc.u & X86_PDE4M_PG_MASK) | ((RTGCUINTPTR)GCPtrPage & GST_BIG_PAGE_OFFSET_MASK); 1393 1391 /* Find ram range. */ 1394 1392 PPGMPAGE pPage; … … 1442 1440 } 1443 1441 # if PGM_SHW_TYPE == PGM_TYPE_32BIT 1444 pVM->pgm.s.CTXMID(p,32BitPD)->a[iPDDst] 1442 pVM->pgm.s.CTXMID(p,32BitPD)->a[iPDDst] = PdeDst; 1445 1443 # else /* PAE */ 1446 1444 pVM->pgm.s.CTXMID(ap,PaePDs)[0]->a[iPDDst] = PdeDst; … … 2568 2566 Assert(pPDSrc); 2569 2567 #ifndef IN_GC 2570 Assert(MMPhysGCPhys2HCVirt(pVM, (RTGCPHYS)(cr3 & X86_CR3_PAGE_MASK), sizeof(*pPDSrc)) == pPDSrc);2568 Assert(MMPhysGCPhys2HCVirt(pVM, (RTGCPHYS)(cr3 & GST_CR3_PAGE_MASK), sizeof(*pPDSrc)) == pPDSrc); 2571 2569 #endif 2572 2570 … … 2891 2889 * Check that the Guest CR3 and all it's mappings are correct. 2892 2890 */ 2893 AssertMsgReturn(pPGM->GCPhysCR3 == (cr3 & X86_CR3_PAGE_MASK),2891 AssertMsgReturn(pPGM->GCPhysCR3 == (cr3 & GST_CR3_PAGE_MASK), 2894 2892 ("Invalid GCPhysCR3=%VGp cr3=%VGp\n", pPGM->GCPhysCR3, (RTGCPHYS)cr3), 2895 2893 false); … … 2897 2895 AssertRCReturn(rc, 1); 2898 2896 HCPhys = NIL_RTHCPHYS; 2899 rc = pgmRamGCPhys2HCPhys(pPGM, cr3 & X86_CR3_PAGE_MASK, &HCPhys);2897 rc = pgmRamGCPhys2HCPhys(pPGM, cr3 & GST_CR3_PAGE_MASK, &HCPhys); 2900 2898 AssertMsgReturn(HCPhys == HCPhysShw, ("HCPhys=%VHp HCPhyswShw=%VHp (cr3)\n", HCPhys, HCPhysShw), false); 2901 2899 # ifdef IN_RING3 … … 2903 2901 rc = PGMR3DbgHCPtr2GCPhys(pVM, pPGM->pGuestPDHC, &GCPhys); 2904 2902 AssertRCReturn(rc, 1); 2905 AssertMsgReturn((cr3 & X86_CR3_PAGE_MASK) == GCPhys, ("GCPhys=%VGp cr3=%VGp\n", GCPhys, (RTGCPHYS)cr3), false);2903 AssertMsgReturn((cr3 & GST_CR3_PAGE_MASK) == GCPhys, ("GCPhys=%VGp cr3=%VGp\n", GCPhys, (RTGCPHYS)cr3), false); 2906 2904 # endif 2907 2905 const X86PD *pPDSrc = CTXSUFF(pPGM->pGuestPD); -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r7629 r7655 38 38 #undef GST_PT_MASK 39 39 #undef GST_TOTAL_PD_ENTRIES 40 #undef GST_CR3_PAGE_MASK 40 41 41 42 #if PGM_GST_TYPE == PGM_TYPE_32BIT … … 58 59 # define GST_PT_SHIFT X86_PT_SHIFT 59 60 # define GST_PT_MASK X86_PT_MASK 61 # define GST_CR3_PAGE_MASK X86_CR3_PAGE_MASK 60 62 #else 61 63 # define GSTPT X86PTPAE … … 70 72 # define GST_BIG_PAGE_OFFSET_MASK X86_PAGE_2M_OFFSET_MASK 71 73 # define GST_PDE_PG_MASK X86_PDE_PAE_PG_MASK 72 # define GST_PDE4M_PG_MASK X86_PDE 4M_PAE_PG_MASK74 # define GST_PDE4M_PG_MASK X86_PDE2M_PAE_PG_MASK 73 75 # define GST_PD_SHIFT X86_PD_PAE_SHIFT 74 76 # define GST_PD_MASK X86_PD_PAE_MASK … … 77 79 # define GST_PT_SHIFT X86_PT_PAE_SHIFT 78 80 # define GST_PT_MASK X86_PT_PAE_MASK 81 # define GST_CR3_PAGE_MASK X86_CR3_PAE_PAGE_MASK 79 82 #endif 80 83 … … 286 289 * 4MB Page table 287 290 */ 288 Pde.u = (Pde.u & (fMask | ((fMask & X86_PTE_PAT) << X86_PDE4M_PAT_SHIFT) | X86_PDE4M_PAE_PG_MASK | X86_PDE4M_PS)) /** @todo pse36 */291 Pde.u = (Pde.u & (fMask | ((fMask & X86_PTE_PAT) << X86_PDE4M_PAT_SHIFT) | GST_PDE4M_PG_MASK | X86_PDE4M_PS)) /** @todo pse36 */ 289 292 | (fFlags & ~GST_PTE_PG_MASK) 290 293 | ((fFlags & X86_PTE_PAT) << X86_PDE4M_PAT_SHIFT); -
trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp
r7642 r7655 1018 1018 { 1019 1019 /** @todo long mode! */ 1020 Assert(PGMGetGuestMode(pVM) < PGMMODE_AMD64); 1021 1020 1022 PX86PDPTR pPdptr; 1021 1023 rc = PGM_GCPHYS_2_PTR(pVM, cr3 & X86_CR3_PAE_PAGE_MASK, &pPdptr); … … 1034 1036 if ((fFlags & X86_CR4_PSE) && Pde.b.u1Size) 1035 1037 { /* (big page) */ 1036 rc = PGMPhysGCPhys2HCPtr(pVM, (Pde.u & X86_PDE 4M_PAE_PG_MASK) | ((RTGCUINTPTR)GCPtr & X86_PAGE_4M_OFFSET_MASK), 1 /* we always stay within one page */, pHCPtr);1038 rc = PGMPhysGCPhys2HCPtr(pVM, (Pde.u & X86_PDE2M_PAE_PG_MASK) | ((RTGCUINTPTR)GCPtr & X86_PAGE_2M_OFFSET_MASK), 1 /* we always stay within one page */, pHCPtr); 1037 1039 } 1038 1040 else
Note:
See TracChangeset
for help on using the changeset viewer.