Changeset 7715 in vbox for trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
- Timestamp:
- Apr 3, 2008 9:03:01 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r7677 r7715 109 109 case PGMPOOL_IDX_PAE_PD: 110 110 return pVM->pgm.s.apGCPaePDs[0]; 111 case PGMPOOL_IDX_PDPT R:112 return pVM->pgm.s.pGCPaePDPT R;111 case PGMPOOL_IDX_PDPT: 112 return pVM->pgm.s.pGCPaePDPT; 113 113 case PGMPOOL_IDX_PML4: 114 114 return pVM->pgm.s.pGCPaePML4; … … 896 896 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 897 897 case PGMPOOLKIND_PAE_PT_FOR_PAE_PT: 898 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:898 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 899 899 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 900 900 case PGMPOOLKIND_32BIT_PT_FOR_PHYS: … … 910 910 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 911 911 case PGMPOOLKIND_PAE_PT_FOR_PAE_PT: 912 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:912 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 913 913 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 914 914 switch (enmKind2) … … 931 931 case PGMPOOLKIND_ROOT_32BIT_PD: 932 932 case PGMPOOLKIND_ROOT_PAE_PD: 933 case PGMPOOLKIND_ROOT_PDPT R:933 case PGMPOOLKIND_ROOT_PDPT: 934 934 case PGMPOOLKIND_ROOT_PML4: 935 935 return false; … … 1114 1114 case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD: 1115 1115 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 1116 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:1116 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 1117 1117 case PGMPOOLKIND_ROOT_32BIT_PD: 1118 1118 case PGMPOOLKIND_ROOT_PAE_PD: 1119 case PGMPOOLKIND_ROOT_PDPT R:1119 case PGMPOOLKIND_ROOT_PDPT: 1120 1120 case PGMPOOLKIND_ROOT_PML4: 1121 1121 { … … 1184 1184 case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD: 1185 1185 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 1186 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:1187 case PGMPOOLKIND_ROOT_PDPT R:1186 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 1187 case PGMPOOLKIND_ROOT_PDPT: 1188 1188 case PGMPOOLKIND_ROOT_PML4: 1189 1189 default: … … 1265 1265 case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD: 1266 1266 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 1267 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:1268 case PGMPOOLKIND_ROOT_PDPT R:1267 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 1268 case PGMPOOLKIND_ROOT_PDPT: 1269 1269 case PGMPOOLKIND_ROOT_PML4: 1270 1270 default: … … 1937 1937 case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD: 1938 1938 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 1939 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:1939 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 1940 1940 case PGMPOOLKIND_ROOT_PAE_PD: 1941 case PGMPOOLKIND_ROOT_PDPT R:1941 case PGMPOOLKIND_ROOT_PDPT: 1942 1942 case PGMPOOLKIND_ROOT_PML4: 1943 1943 return 8; … … 1973 1973 case PGMPOOLKIND_PAE_PT_FOR_PAE_2MB: 1974 1974 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 1975 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:1975 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 1976 1976 case PGMPOOLKIND_ROOT_PAE_PD: 1977 case PGMPOOLKIND_ROOT_PDPT R:1977 case PGMPOOLKIND_ROOT_PDPT: 1978 1978 case PGMPOOLKIND_ROOT_PML4: 1979 1979 return 8; … … 2278 2278 Assert(pUser->iUserTable < 2048 && pUser->iUser == PGMPOOL_IDX_PAE_PD); 2279 2279 break; 2280 case PGMPOOLKIND_ROOT_PDPT R:2280 case PGMPOOLKIND_ROOT_PDPT: 2281 2281 Assert(!(u.pau64[pUser->iUserTable] & PGM_PLXFLAGS_PERMANENT)); 2282 2282 Assert(pUser->iUserTable < 4); … … 2286 2286 Assert(pUser->iUserTable < X86_PG_PAE_ENTRIES); 2287 2287 break; 2288 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:2288 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 2289 2289 case PGMPOOLKIND_ROOT_PML4: 2290 2290 Assert(!(u.pau64[pUser->iUserTable] & PGM_PLXFLAGS_PERMANENT)); … … 2309 2309 /* 64-bit entries */ 2310 2310 case PGMPOOLKIND_ROOT_PAE_PD: 2311 case PGMPOOLKIND_ROOT_PDPT R:2311 case PGMPOOLKIND_ROOT_PDPT: 2312 2312 case PGMPOOLKIND_PAE_PD_FOR_32BIT_PD: 2313 2313 case PGMPOOLKIND_PAE_PD_FOR_PAE_PD: 2314 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:2314 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 2315 2315 case PGMPOOLKIND_ROOT_PML4: 2316 2316 u.pau64[pUser->iUserTable] = 0; … … 2836 2836 * @param pPool The pool. 2837 2837 * @param pPage The page. 2838 * @param pShwP dPtrThe shadow page directory pointer table (mapping of the page).2839 */ 2840 DECLINLINE(void) pgmPoolTrackDerefPDPT R64Bit(PPGMPOOL pPool, PPGMPOOLPAGE pPage, PX86PDPTR pShwPdPtr)2841 { 2842 for (unsigned i = 0; i < ELEMENTS(pShwP dPtr->a); i++)2843 { 2844 if (pShwP dPtr->a[i].n.u1Present)2845 { 2846 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwP dPtr->a[i].u & X86_PDPE_PG_MASK);2838 * @param pShwPDPT The shadow page directory pointer table (mapping of the page). 2839 */ 2840 DECLINLINE(void) pgmPoolTrackDerefPDPT64Bit(PPGMPOOL pPool, PPGMPOOLPAGE pPage, PX86PDPT pShwPDPT) 2841 { 2842 for (unsigned i = 0; i < ELEMENTS(pShwPDPT->a); i++) 2843 { 2844 if (pShwPDPT->a[i].n.u1Present) 2845 { 2846 PPGMPOOLPAGE pSubPage = (PPGMPOOLPAGE)RTAvloHCPhysGet(&pPool->HCPhysTree, pShwPDPT->a[i].u & X86_PDPE_PG_MASK); 2847 2847 if (pSubPage) 2848 2848 pgmPoolTrackFreeUser(pPool, pSubPage, pPage->idx, i); 2849 2849 else 2850 AssertFatalMsgFailed(("%RX64\n", pShwP dPtr->a[i].u & X86_PDPE_PG_MASK));2850 AssertFatalMsgFailed(("%RX64\n", pShwPDPT->a[i].u & X86_PDPE_PG_MASK)); 2851 2851 /** @todo 64-bit guests: have to ensure that we're not exhausting the dynamic mappings! */ 2852 2852 } … … 2936 2936 break; 2937 2937 2938 case PGMPOOLKIND_64BIT_PDPT R_FOR_64BIT_PDPTR:2939 pgmPoolTrackDerefPDPT R64Bit(pPool, pPage, (PX86PDPTR)pvShw);2938 case PGMPOOLKIND_64BIT_PDPT_FOR_64BIT_PDPT: 2939 pgmPoolTrackDerefPDPT64Bit(pPool, pPage, (PX86PDPT)pvShw); 2940 2940 break; 2941 2941 … … 3000 3000 break; 3001 3001 3002 case PGMPOOLKIND_ROOT_PDPT R:3002 case PGMPOOLKIND_ROOT_PDPT: 3003 3003 /* Not root of shadowed pages currently, ignore it. */ 3004 3004 break;
Note:
See TracChangeset
for help on using the changeset viewer.