Changeset 15425 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Dec 13, 2008 9:22:59 AM (16 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMInternal.h
r15424 r15425 4636 4636 pgmR0DynMapHCPageInlined(pPGM, pPage->Core.Key, &pv); 4637 4637 # else 4638 int rc = PGMDynMapHCPage(PGM2VM(pPGM), pPage->Core.Key, &pv); 4639 if (RT_SUCCESS(rc)) 4638 PGMDynMapHCPage(PGM2VM(pPGM), pPage->Core.Key, &pv); 4640 4639 # endif 4641 4640 return pv; 4642 4641 } 4643 4642 return pgmPoolMapPageFallback(pPGM, pPage); -
trunk/src/VBox/VMM/VMMAll/PGMAll.cpp
r15410 r15425 1913 1913 //Log(("PGMDynMapGCPage: GCPhys=%RGp HCPhys=%RHp\n", GCPhys, HCPhys)); 1914 1914 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 1915 returnpgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);1915 pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv); 1916 1916 #else 1917 returnPGMDynMapHCPage(pVM, HCPhys, ppv);1917 PGMDynMapHCPage(pVM, HCPhys, ppv); 1918 1918 #endif 1919 return VINF_SUCCESS; 1919 1920 } 1920 1921 … … 1954 1955 RTHCPHYS HCPhys = PGM_PAGE_GET_HCPHYS(&pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT]); 1955 1956 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 1956 int rc =pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);1957 pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv); 1957 1958 #else 1958 int rc =PGMDynMapHCPage(pVM, HCPhys, ppv);1959 PGMDynMapHCPage(pVM, HCPhys, ppv); 1959 1960 #endif 1960 if (RT_SUCCESS(rc)) 1961 *ppv = (void *)((uintptr_t)*ppv | (GCPhys & PAGE_OFFSET_MASK)); 1962 return rc; 1961 *ppv = (void *)((uintptr_t)*ppv | (GCPhys & PAGE_OFFSET_MASK)); 1962 return VINF_SUCCESS; 1963 1963 } 1964 1964 … … 1971 1971 * reused after 8 mappings (or perhaps a few more if you score with the cache). 1972 1972 * 1973 * @returns V Box status.1973 * @returns VINF_SUCCESS, will bail out to ring-3 on failure. 1974 1974 * @param pVM VM handle. 1975 1975 * @param HCPhys HC Physical address of the page. -
trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp
r15344 r15425 501 501 Assert(HCPhys != pVM->pgm.s.HCPhysZeroPg); 502 502 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 503 returnpgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);503 pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv); 504 504 # else 505 returnPGMDynMapHCPage(pVM, HCPhys, ppv);505 PGMDynMapHCPage(pVM, HCPhys, ppv); 506 506 # endif 507 return VINF_SUCCESS; 507 508 508 509 #else /* IN_RING3 || IN_RING0 */ -
trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp
r15424 r15425 910 910 * write situation, meaning that it's safe to write here. 911 911 */ 912 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 913 PVMCPU pVCpu = VMMGetCpu(pPool->CTX_SUFF(pVM)); 914 #endif 912 915 RTGCUINTPTR pu32 = (RTGCUINTPTR)pvFault; 913 916 while (pRegFrame->ecx) 914 917 { 918 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 919 uint32_t iPrevSubset = PGMDynMapPushAutoSubset(pVCpu); 915 920 pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, (RTGCPTR)pu32, NULL); 921 PGMDynMapPopAutoSubset(pVCpu, iPrevSubset); 922 #else 923 pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, (RTGCPTR)pu32, NULL); 924 #endif 916 925 #ifdef IN_RC 917 926 *(uint32_t *)pu32 = pRegFrame->eax; … … 959 968 * Clear all the pages. ASSUMES that pvFault is readable. 960 969 */ 970 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 971 PVMCPU pVCpu = VMMGetCpu(pPool->CTX_SUFF(pVM)); 972 uint32_t iPrevSubset = PGMDynMapPushAutoSubset(pVCpu); 961 973 pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, pvFault, pCpu); 974 PGMDynMapPopAutoSubset(pVCpu, iPrevSubset); 975 #else 976 pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, pvFault, pCpu); 977 #endif 962 978 963 979 /*
Note:
See TracChangeset
for help on using the changeset viewer.