Changeset 32009 in vbox
- Timestamp:
- Aug 26, 2010 4:41:19 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/hwacc_vmx.h
r32000 r32009 140 140 141 141 /** Bits 12-51 - - EPT - Physical Page number of the next level. */ 142 #define EPT_PDPTE_PG_MASK X86_PDPE_PG_MASK _FULL142 #define EPT_PDPTE_PG_MASK X86_PDPE_PG_MASK 143 143 /** The page shift to get the PDPT index. */ 144 144 #define EPT_PDPT_SHIFT X86_PDPT_SHIFT -
trunk/include/VBox/x86.h
r32000 r32009 1658 1658 #define X86_PDPE_AVL_MASK (RT_BIT(9) | RT_BIT(10) | RT_BIT(11)) 1659 1659 /** Bits 12-51 - - PAE - Physical Page number of the next level. */ 1660 #if 1 /* we're using this internally and have to mask of the top 16-bit. */1661 #define X86_PDPE_PG_MASK UINT64_C(0x0000fffffffff000)1662 /** @todo Get rid of the above hack; makes code unreadable. */1663 #define X86_PDPE_PG_MASK_FULL UINT64_C(0x000ffffffffff000)1664 #else1665 1660 #define X86_PDPE_PG_MASK UINT64_C(0x000ffffffffff000) 1666 #endif1667 1661 /** Bits 63-52, 8-5, 2-1 - - PAE - MBZ bits (NX is long mode only). */ 1668 1662 #define X86_PDPE_PAE_MBZ_MASK UINT64_C(0xfff00000000001e6) -
trunk/include/VBox/x86.mac
r32000 r32009 426 426 %define X86_PDPE_LM_PS RT_BIT(7) 427 427 %define X86_PDPE_AVL_MASK (RT_BIT(9) | RT_BIT(10) | RT_BIT(11)) 428 %if 1429 %define X86_PDPE_PG_MASK 0x0000fffffffff000430 %define X86_PDPE_PG_MASK_FULL 0x000ffffffffff000431 %else432 428 %define X86_PDPE_PG_MASK 0x000ffffffffff000 433 %endif434 429 %define X86_PDPE_PAE_MBZ_MASK 0xfff00000000001e6 435 430 %define X86_PDPE_LM_NX RT_BIT_64(63) -
trunk/src/VBox/Debugger/DBGCEmulateCodeView.cpp
r32000 r32009 2747 2747 iEntry = (VarGCPtr.u.GCFlat >> X86_PD_PAE_SHIFT) & X86_PD_PAE_MASK; 2748 2748 VarPDEAddr = VarCur; 2749 VarPDEAddr.u.u64Number = Pdpe.u & X86_PDPE_PG_MASK _FULL;2749 VarPDEAddr.u.u64Number = Pdpe.u & X86_PDPE_PG_MASK; 2750 2750 VarPDEAddr.u.u64Number += iEntry * sizeof(X86PDEPAE); 2751 2751 } … … 3116 3116 return DBGCCmdHlpPrintf(pCmdHlp, "Page directory is not present for %Dv.\n", &VarGCPtr); 3117 3117 3118 VarCur.u.u64Number = Pdpe.u & X86_PDPE_PG_MASK _FULL;3118 VarCur.u.u64Number = Pdpe.u & X86_PDPE_PG_MASK; 3119 3119 3120 3120 /* Page directory (PAE). */ -
trunk/src/VBox/VMM/PGMDbg.cpp
r32000 r32009 1275 1275 Pdpe.u & PGM_PLXFLAGS_PERMANENT ? 'p' : '-', 1276 1276 Pdpe.u & RT_BIT(11) ? '1' : '0', 1277 Pdpe.u & X86_PDPE_PG_MASK _FULL);1277 Pdpe.u & X86_PDPE_PG_MASK); 1278 1278 if (pState->fDumpPageInfo) 1279 pgmR3DumpHierarchyShwTablePageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK _FULL);1279 pgmR3DumpHierarchyShwTablePageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK); 1280 1280 if ((Pdpe.u >> 52) & 0x7ff) 1281 1281 pState->pHlp->pfnPrintf(pState->pHlp, " 62:52=%03llx", (Pdpe.u >> 52) & 0x7ff); … … 1298 1298 Pdpe.u & PGM_PLXFLAGS_PERMANENT ? 'p' : '-', 1299 1299 Pdpe.u & RT_BIT(11) ? '1' : '0', 1300 Pdpe.u & X86_PDPE_PG_MASK _FULL);1300 Pdpe.u & X86_PDPE_PG_MASK); 1301 1301 if (pState->fDumpPageInfo) 1302 pgmR3DumpHierarchyShwTablePageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK _FULL);1302 pgmR3DumpHierarchyShwTablePageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK); 1303 1303 if ((Pdpe.u >> 52) & 0xfff) 1304 1304 pState->pHlp->pfnPrintf(pState->pHlp, " 63:52=%03llx!", (Pdpe.u >> 52) & 0xfff); … … 1308 1308 if (cMaxDepth) 1309 1309 { 1310 int rc2 = pgmR3DumpHierarchyShwPaePD(pState, Pdpe.u & X86_PDPE_PG_MASK _FULL, cMaxDepth);1310 int rc2 = pgmR3DumpHierarchyShwPaePD(pState, Pdpe.u & X86_PDPE_PG_MASK, cMaxDepth); 1311 1311 if (rc2 < rc && RT_SUCCESS(rc)) 1312 1312 rc = rc2; … … 1947 1947 Pdpe.u & RT_BIT_64(10) ? '1' : '0', 1948 1948 Pdpe.u & RT_BIT_64(11) ? '1' : '0', 1949 Pdpe.u & X86_PDPE_PG_MASK _FULL);1949 Pdpe.u & X86_PDPE_PG_MASK); 1950 1950 if (pState->fDumpPageInfo) 1951 pgmR3DumpHierarchyGstPageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK _FULL, _4K);1951 pgmR3DumpHierarchyGstPageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK, _4K); 1952 1952 pgmR3DumpHierarchyGstCheckReservedHighBits(pState, Pdpe.u); 1953 1953 } … … 1969 1969 Pdpe.u & RT_BIT_64(10) ? '1' : '0', 1970 1970 Pdpe.u & RT_BIT_64(11) ? '1' : '0', 1971 Pdpe.u & X86_PDPE_PG_MASK _FULL);1971 Pdpe.u & X86_PDPE_PG_MASK); 1972 1972 if (pState->fDumpPageInfo) 1973 pgmR3DumpHierarchyGstPageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK _FULL, _4K);1973 pgmR3DumpHierarchyGstPageInfo(pState, Pdpe.u & X86_PDPE_PG_MASK, _4K); 1974 1974 pgmR3DumpHierarchyGstCheckReservedHighBits(pState, Pdpe.u); 1975 1975 } … … 1978 1978 if (cMaxDepth) 1979 1979 { 1980 int rc2 = pgmR3DumpHierarchyGstPaePD(pState, Pdpe.u & X86_PDPE_PG_MASK _FULL, cMaxDepth);1980 int rc2 = pgmR3DumpHierarchyGstPaePD(pState, Pdpe.u & X86_PDPE_PG_MASK, cMaxDepth); 1981 1981 if (rc2 < rc && RT_SUCCESS(rc)) 1982 1982 rc = rc2; -
trunk/src/VBox/VMM/PGMGstDefs.h
r31996 r32009 194 194 # define GST_TOTAL_PD_ENTRIES (X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPE_ENTRIES) 195 195 # define GST_PDPE_ENTRIES X86_PG_PAE_PDPE_ENTRIES 196 # define GST_PDPE_PG_MASK X86_PDPE_PG_MASK _FULL196 # define GST_PDPE_PG_MASK X86_PDPE_PG_MASK 197 197 # define GST_PDPT_SHIFT X86_PDPT_SHIFT 198 198 # define GST_PDPT_MASK X86_PDPT_MASK_PAE … … 212 212 # define GST_PDPE_ENTRIES X86_PG_AMD64_PDPE_ENTRIES 213 213 # define GST_PDPT_SHIFT X86_PDPT_SHIFT 214 # define GST_PDPE_PG_MASK X86_PDPE_PG_MASK _FULL214 # define GST_PDPE_PG_MASK X86_PDPE_PG_MASK 215 215 # define GST_PDPT_MASK X86_PDPT_MASK_AMD64 216 216 # define GST_PTE_PG_MASK X86_PTE_PAE_PG_MASK_FULL -
trunk/src/VBox/VMM/PGMInline.h
r32005 r32009 762 762 PX86PDPAE pGuestPD = NULL; 763 763 int rc = pgmRZDynMapGCPageInlined(pVCpu, 764 pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK _FULL,764 pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK, 765 765 (void **)&pGuestPD 766 766 RTLOG_COMMA_SRC_POS); … … 771 771 PX86PDPAE pGuestPD = pVCpu->pgm.s.CTX_SUFF(apGstPaePDs)[iPdpt]; 772 772 if ( !pGuestPD 773 || (pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK _FULL) != pVCpu->pgm.s.aGCPhysGstPaePDs[iPdpt])773 || (pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK) != pVCpu->pgm.s.aGCPhysGstPaePDs[iPdpt]) 774 774 pgmGstLazyMapPaePD(pVCpu, iPdpt, &pGuestPD); 775 775 if (pGuestPD) … … 815 815 PX86PDPAE pGuestPD = NULL; 816 816 int rc = pgmRZDynMapGCPageInlined(pVCpu, 817 pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK _FULL,817 pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK, 818 818 (void **)&pGuestPD 819 819 RTLOG_COMMA_SRC_POS); … … 826 826 PX86PDPAE pGuestPD = pVCpu->pgm.s.CTX_SUFF(apGstPaePDs)[iPdpt]; 827 827 if ( !pGuestPD 828 || (pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK _FULL) != pVCpu->pgm.s.aGCPhysGstPaePDs[iPdpt])828 || (pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK) != pVCpu->pgm.s.aGCPhysGstPaePDs[iPdpt]) 829 829 pgmGstLazyMapPaePD(pVCpu, iPdpt, &pGuestPD); 830 830 #endif … … 932 932 { 933 933 PCX86PDPAE pPD; 934 rc = PGM_GCPHYS_2_PTR_BY_VMCPU(pVCpu, pPdptTemp->a[iPdpt].u & X86_PDPE_PG_MASK _FULL, &pPD);934 rc = PGM_GCPHYS_2_PTR_BY_VMCPU(pVCpu, pPdptTemp->a[iPdpt].u & X86_PDPE_PG_MASK, &pPD); 935 935 if (RT_SUCCESS(rc)) 936 936 { … … 989 989 /* The PDE. */ 990 990 PX86PDPAE pPD; 991 rc = PGM_GCPHYS_2_PTR_BY_VMCPU(pVCpu, pPdptTemp->a[iPdpt].u & X86_PDPE_PG_MASK _FULL, &pPD);991 rc = PGM_GCPHYS_2_PTR_BY_VMCPU(pVCpu, pPdptTemp->a[iPdpt].u & X86_PDPE_PG_MASK, &pPD); 992 992 if (RT_FAILURE(rc)) 993 993 { … … 1082 1082 /* Fetch the pgm pool shadow descriptor. */ 1083 1083 PVM pVM = pVCpu->CTX_SUFF(pVM); 1084 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);1084 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdpt].u & X86_PDPE_PG_MASK); 1085 1085 AssertReturn(pShwPde, NULL); 1086 1086 … … 1105 1105 /* Fetch the pgm pool shadow descriptor. */ 1106 1106 PVM pVM = pVCpu->CTX_SUFF(pVM); 1107 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);1107 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdpt].u & X86_PDPE_PG_MASK); 1108 1108 AssertReturn(pShwPde, NULL); 1109 1109 -
trunk/src/VBox/VMM/PGMShw.h
r32005 r32009 97 97 # define SHW_PDPT_SHIFT X86_PDPT_SHIFT 98 98 # define SHW_PDPT_MASK X86_PDPT_MASK_AMD64 99 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK _FULL99 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK 100 100 # define SHW_TOTAL_PD_ENTRIES (X86_PG_AMD64_ENTRIES*X86_PG_AMD64_PDPE_ENTRIES) 101 101 # define SHW_POOL_ROOT_IDX PGMPOOL_IDX_AMD64_CR3 … … 104 104 # define SHW_PDPT_SHIFT X86_PDPT_SHIFT 105 105 # define SHW_PDPT_MASK X86_PDPT_MASK_PAE 106 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK _FULL106 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK 107 107 # define SHW_TOTAL_PD_ENTRIES (X86_PG_PAE_ENTRIES*X86_PG_PAE_PDPE_ENTRIES) 108 108 # define SHW_POOL_ROOT_IDX PGMPOOL_IDX_PDPT -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r32005 r32009 940 940 /* Allocate page directory if not present. */ 941 941 if ( !pPdpe->n.u1Present 942 && !(pPdpe->u & X86_PDPE_PG_MASK _FULL))942 && !(pPdpe->u & X86_PDPE_PG_MASK)) 943 943 { 944 944 RTGCPTR64 GCPdPt; … … 962 962 Assert(!HWACCMIsEnabled(pVM)); 963 963 964 GCPdPt = uGstPdpe & X86_PDPE_PG_MASK _FULL;964 GCPdPt = uGstPdpe & X86_PDPE_PG_MASK; 965 965 enmKind = PGMPOOLKIND_PAE_PD_PHYS; 966 966 uGstPdpe |= X86_PDPE_P; … … 968 968 else 969 969 { 970 GCPdPt = uGstPdpe & X86_PDPE_PG_MASK _FULL;970 GCPdPt = uGstPdpe & X86_PDPE_PG_MASK; 971 971 enmKind = PGMPOOLKIND_PAE_PD_FOR_PAE_PD; 972 972 } … … 998 998 else 999 999 { 1000 pShwPage = pgmPoolGetPage(pPool, pPdpe->u & X86_PDPE_PG_MASK _FULL);1000 pShwPage = pgmPoolGetPage(pPool, pPdpe->u & X86_PDPE_PG_MASK); 1001 1001 AssertReturn(pShwPage, VERR_INTERNAL_ERROR); 1002 Assert((pPdpe->u & X86_PDPE_PG_MASK _FULL) == pShwPage->Core.Key);1002 Assert((pPdpe->u & X86_PDPE_PG_MASK) == pShwPage->Core.Key); 1003 1003 1004 1004 pgmPoolCacheUsed(pPool, pShwPage); … … 1031 1031 return VERR_PAGE_DIRECTORY_PTR_NOT_PRESENT; 1032 1032 } 1033 AssertMsg(pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK _FULL, ("GCPtr=%RGv\n", GCPtr));1033 AssertMsg(pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK, ("GCPtr=%RGv\n", GCPtr)); 1034 1034 1035 1035 /* Fetch the pgm pool shadow descriptor. */ 1036 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK _FULL);1036 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pVM->pgm.s.CTX_SUFF(pPool), pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK); 1037 1037 AssertReturn(pShwPde, VERR_INTERNAL_ERROR); 1038 1038 … … 1112 1112 /* Allocate page directory if not present. */ 1113 1113 if ( !pPdpe->n.u1Present 1114 && !(pPdpe->u & X86_PDPE_PG_MASK _FULL))1114 && !(pPdpe->u & X86_PDPE_PG_MASK)) 1115 1115 { 1116 1116 RTGCPTR64 GCPdPt; … … 1125 1125 else 1126 1126 { 1127 GCPdPt = uGstPdpe & X86_PDPE_PG_MASK _FULL;1127 GCPdPt = uGstPdpe & X86_PDPE_PG_MASK; 1128 1128 enmKind = PGMPOOLKIND_64BIT_PD_FOR_64BIT_PD; 1129 1129 } … … 1135 1135 else 1136 1136 { 1137 pShwPage = pgmPoolGetPage(pPool, pPdpe->u & X86_PDPE_PG_MASK _FULL);1137 pShwPage = pgmPoolGetPage(pPool, pPdpe->u & X86_PDPE_PG_MASK); 1138 1138 AssertReturn(pShwPage, VERR_INTERNAL_ERROR); 1139 1139 … … 1184 1184 return VERR_PAGE_DIRECTORY_PTR_NOT_PRESENT; 1185 1185 1186 pShwPage = pgmPoolGetPage(pPool, pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK _FULL);1186 pShwPage = pgmPoolGetPage(pPool, pPdpt->a[iPdPt].u & X86_PDPE_PG_MASK); 1187 1187 AssertReturn(pShwPage, VERR_INTERNAL_ERROR); 1188 1188 … … 1533 1533 Assert(pGuestPDPT); 1534 1534 Assert(pGuestPDPT->a[iPdpt].n.u1Present); 1535 RTGCPHYS GCPhys = pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK _FULL;1535 RTGCPHYS GCPhys = pGuestPDPT->a[iPdpt].u & X86_PDPE_PG_MASK; 1536 1536 bool const fChanged = pVCpu->pgm.s.aGCPhysGstPaePDs[iPdpt] != GCPhys; 1537 1537 -
trunk/src/VBox/VMM/VMMAll/PGMAllBth.h
r32005 r32009 1822 1822 # if PGM_GST_TYPE == PGM_TYPE_AMD64 1823 1823 /* Fetch the pgm pool shadow descriptor. */ 1824 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pPool, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);1824 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pPool, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK); 1825 1825 Assert(pShwPde); 1826 1826 # endif … … 2558 2558 # if PGM_GST_TYPE == PGM_TYPE_AMD64 2559 2559 /* Fetch the pgm pool shadow descriptor. */ 2560 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pPool, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);2560 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pPool, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK); 2561 2561 Assert(pShwPde); 2562 2562 # endif … … 2998 2998 2999 2999 /* Fetch the pgm pool shadow descriptor. */ 3000 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pPool, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);3000 PPGMPOOLPAGE pShwPde = pgmPoolGetPage(pPool, pPdptDst->a[iPdpt].u & X86_PDPE_PG_MASK); 3001 3001 Assert(pShwPde); 3002 3002 … … 3743 3743 } 3744 3744 3745 pShwPde = pgmPoolGetPage(pPool, pPdpeDst->u & X86_PDPE_PG_MASK _FULL);3746 GCPhysPdeSrc = PdpeSrc.u & X86_PDPE_PG_MASK _FULL;3745 pShwPde = pgmPoolGetPage(pPool, pPdpeDst->u & X86_PDPE_PG_MASK); 3746 GCPhysPdeSrc = PdpeSrc.u & X86_PDPE_PG_MASK; 3747 3747 3748 3748 if (pPdpeDst->n.u1Present != PdpeSrc.n.u1Present) … … 4397 4397 RTHCPTR HCPtr; 4398 4398 RTHCPHYS HCPhys; 4399 RTGCPHYS GCPhys = pGuestPDPT->a[i].u & X86_PDPE_PG_MASK _FULL;4399 RTGCPHYS GCPhys = pGuestPDPT->a[i].u & X86_PDPE_PG_MASK; 4400 4400 pgmLock(pVM); 4401 4401 PPGMPAGE pPage = pgmPhysGetPage(&pVM->pgm.s, GCPhys); -
trunk/src/VBox/VMM/VMMAll/PGMAllGst.h
r32000 r32009 141 141 * The PDE. 142 142 */ 143 rc = PGM_GCPHYS_2_PTR_BY_VMCPU(pVCpu, Pdpe.u & X86_PDPE_PG_MASK _FULL, &pWalk->pPd);143 rc = PGM_GCPHYS_2_PTR_BY_VMCPU(pVCpu, Pdpe.u & X86_PDPE_PG_MASK, &pWalk->pPd); 144 144 if (RT_FAILURE(rc)) 145 145 return PGM_GST_NAME(WalkReturnBadPhysAddr)(pVCpu, pWalk, 2, rc); -
trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp
r32005 r32009 352 352 * Mark the page as locked; disallow flushing. 353 353 */ 354 PPGMPOOLPAGE pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdPt].u & X86_PDPE_PG_MASK _FULL);354 PPGMPOOLPAGE pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdPt].u & X86_PDPE_PG_MASK); 355 355 AssertFatal(pPoolPagePd); 356 356 if (!pgmPoolIsPageLocked(&pVM->pgm.s, pPoolPagePd)) … … 500 500 */ 501 501 if ( pCurrentShwPdpt 502 && (pCurrentShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK _FULL) == (pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK_FULL) )502 && (pCurrentShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK) == (pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK) ) 503 503 { 504 504 LogFlow(("pgmMapClearShadowPDEs: Pdpe %d reused -> don't clear hypervisor mappings!\n", iPdpt)); … … 524 524 || !(pShwPdpt->a[iPdpt].u & PGM_PLXFLAGS_MAPPING)) 525 525 { 526 PPGMPOOLPAGE pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);526 PPGMPOOLPAGE pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK); 527 527 AssertFatal(pPoolPagePd); 528 528 if (pgmPoolIsPageLocked(&pVM->pgm.s, pPoolPagePd)) … … 606 606 iPDE, iPdpt, iPaePDE, pMap->GCPtr, R3STRING(pMap->pszDesc) )); 607 607 608 PCPGMPOOLPAGE pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK _FULL);608 PCPGMPOOLPAGE pPoolPagePd = pgmPoolGetPage(pPool, pShwPdpt->a[iPdpt].u & X86_PDPE_PG_MASK); 609 609 AssertFatal(pPoolPagePd); 610 610 AssertMsg(pPoolPagePd->cLocked, (".idx=%d .type=%d\n", pPoolPagePd->idx, pPoolPagePd->enmKind)); -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r32005 r32009 541 541 LogFlow(("pgmPoolMonitorChainChanging: pae pdpt iShw=%#x: %RX64 -> freeing it!\n", iShw, uShw.pPDPT->a[iShw].u)); 542 542 pgmPoolFree(pVM, 543 uShw.pPDPT->a[iShw].u & X86_PDPE_PG_MASK _FULL,543 uShw.pPDPT->a[iShw].u & X86_PDPE_PG_MASK, 544 544 pPage->idx, 545 545 iShw); … … 572 572 LogFlow(("pgmPoolMonitorChainChanging: pae pdpt iShw=%#x: %RX64 -> freeing it!\n", iShw2, uShw.pPDPT->a[iShw2].u)); 573 573 pgmPoolFree(pVM, 574 uShw.pPDPT->a[iShw2].u & X86_PDPE_PG_MASK _FULL,574 uShw.pPDPT->a[iShw2].u & X86_PDPE_PG_MASK, 575 575 pPage->idx, 576 576 iShw2); … … 632 632 { 633 633 LogFlow(("pgmPoolMonitorChainChanging: pdpt iShw=%#x: %RX64 -> freeing it!\n", iShw, uShw.pPDPT->a[iShw].u)); 634 pgmPoolFree(pVM, uShw.pPDPT->a[iShw].u & X86_PDPE_PG_MASK _FULL, pPage->idx, iShw);634 pgmPoolFree(pVM, uShw.pPDPT->a[iShw].u & X86_PDPE_PG_MASK, pPage->idx, iShw); 635 635 ASMAtomicWriteSize(&uShw.pPDPT->a[iShw].u, 0); 636 636 } … … 643 643 { 644 644 LogFlow(("pgmPoolMonitorChainChanging: pdpt iShw2=%#x: %RX64 -> freeing it!\n", iShw2, uShw.pPDPT->a[iShw2].u)); 645 pgmPoolFree(pVM, uShw.pPDPT->a[iShw2].u & X86_PDPE_PG_MASK _FULL, pPage->idx, iShw2);645 pgmPoolFree(pVM, uShw.pPDPT->a[iShw2].u & X86_PDPE_PG_MASK, pPage->idx, iShw2); 646 646 ASMAtomicWriteSize(&uShw.pPDPT->a[iShw2].u, 0); 647 647 } … … 4296 4296 ) 4297 4297 { 4298 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPDPT->a[i].u & X86_PDPE_PG_MASK _FULL);4298 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPDPT->a[i].u & X86_PDPE_PG_MASK); 4299 4299 if (pSubPage) 4300 4300 pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i); 4301 4301 else 4302 AssertFatalMsgFailed(("%RX64\n", pShwPDPT->a[i].u & X86_PDPE_PG_MASK _FULL));4302 AssertFatalMsgFailed(("%RX64\n", pShwPDPT->a[i].u & X86_PDPE_PG_MASK)); 4303 4303 } 4304 4304 } … … 4320 4320 if (pShwPDPT->a[i].n.u1Present) 4321 4321 { 4322 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPDPT->a[i].u & X86_PDPE_PG_MASK _FULL);4322 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPDPT->a[i].u & X86_PDPE_PG_MASK); 4323 4323 if (pSubPage) 4324 4324 pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i); 4325 4325 else 4326 AssertFatalMsgFailed(("%RX64\n", pShwPDPT->a[i].u & X86_PDPE_PG_MASK _FULL));4326 AssertFatalMsgFailed(("%RX64\n", pShwPDPT->a[i].u & X86_PDPE_PG_MASK)); 4327 4327 /** @todo 64-bit guests: have to ensure that we're not exhausting the dynamic mappings! */ 4328 4328 } … … 4344 4344 if (pShwPML4->a[i].n.u1Present) 4345 4345 { 4346 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPML4->a[i].u & X86_PDPE_PG_MASK _FULL);4346 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPML4->a[i].u & X86_PDPE_PG_MASK); 4347 4347 if (pSubPage) 4348 4348 pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i); -
trunk/src/VBox/VMM/VMMAll/PGMAllShw.h
r32005 r32009 157 157 # define SHW_PDPT_SHIFT X86_PDPT_SHIFT 158 158 # define SHW_PDPT_MASK X86_PDPT_MASK_AMD64 159 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK _FULL159 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK 160 160 # define SHW_TOTAL_PD_ENTRIES (X86_PG_AMD64_ENTRIES * X86_PG_AMD64_PDPE_ENTRIES) 161 161 # define SHW_POOL_ROOT_IDX PGMPOOL_IDX_AMD64_CR3 … … 164 164 # define SHW_PDPT_SHIFT X86_PDPT_SHIFT 165 165 # define SHW_PDPT_MASK X86_PDPT_MASK_PAE 166 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK _FULL166 # define SHW_PDPE_PG_MASK X86_PDPE_PG_MASK 167 167 # define SHW_TOTAL_PD_ENTRIES (X86_PG_PAE_ENTRIES * X86_PG_PAE_PDPE_ENTRIES) 168 168 # define SHW_POOL_ROOT_IDX PGMPOOL_IDX_PDPT … … 227 227 /* PD */ 228 228 PX86PDPAE pPd; 229 rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pdpe.u & X86_PDPE_PG_MASK _FULL, &pPd);229 rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pdpe.u & X86_PDPE_PG_MASK, &pPd); 230 230 if (RT_FAILURE(rc)) 231 231 return rc; … … 393 393 /* PD */ 394 394 PX86PDPAE pPd; 395 rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pdpe.u & X86_PDPE_PG_MASK _FULL, &pPd);395 rc = PGM_HCPHYS_2_PTR(pVM, pVCpu, Pdpe.u & X86_PDPE_PG_MASK, &pPd); 396 396 if (RT_FAILURE(rc)) 397 397 return rc; -
trunk/src/VBox/VMM/VMMRZ/PGMRZDynMap.cpp
r32000 r32009 732 732 pPgLvl->a[0].fResMask = X86_PDPE_P; 733 733 734 pPgLvl->a[1].fPhysMask = X86_PDPE_PG_MASK _FULL;734 pPgLvl->a[1].fPhysMask = X86_PDPE_PG_MASK; 735 735 pPgLvl->a[1].fPtrMask = X86_PD_PAE_MASK; 736 736 pPgLvl->a[1].fPtrShift = X86_PD_PAE_SHIFT; … … 762 762 pPgLvl->a[1].fResMask = X86_PDPE_P | X86_PDPE_RW; 763 763 764 pPgLvl->a[2].fPhysMask = X86_PDPE_PG_MASK _FULL;764 pPgLvl->a[2].fPhysMask = X86_PDPE_PG_MASK; 765 765 pPgLvl->a[2].fPtrShift = X86_PD_PAE_SHIFT; 766 766 pPgLvl->a[2].fPtrMask = X86_PD_PAE_MASK;
Note:
See TracChangeset
for help on using the changeset viewer.