Changeset 15428 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Dec 13, 2008 10:02:55 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 40879
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PGMInternal.h
r15425 r15428 3362 3362 #endif /* VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 */ 3363 3363 3364 #if defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) || defined(IN_RC) 3365 /** 3366 * Temporarily maps one host page specified by HC physical address, returning 3367 * pointer within the page. 3368 * 3369 * Be WARNED that the dynamic page mapping area is small, 8 pages, thus the space is 3370 * reused after 8 mappings (or perhaps a few more if you score with the cache). 3371 * 3372 * @returns The address corresponding to HCPhys. 3373 * @param pPGM Pointer to the PVM instance data. 3374 * @param HCPhys HC Physical address of the page. 3375 */ 3376 DECLINLINE(void *) pgmDynMapHCPageOff(PPGM pPGM, RTHCPHYS HCPhys) 3377 { 3378 void *pv; 3379 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 3380 pgmR0DynMapHCPageInlined(pPGM, HCPhys & ~(RTHCPHYS)PAGE_OFFSET_MASK, &pv); 3381 # else 3382 PGMDynMapHCPage(PGM2VM(pPGM), HCPhys & ~(RTHCPHYS)PAGE_OFFSET_MASK, &pv); 3383 # endif 3384 pv = (void *)((uintptr_t)pv | (HCPhys & PAGE_OFFSET_MASK)); 3385 return pv; 3386 } 3387 #endif /* VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0 || IN_RC */ 3388 3389 3364 3390 #ifndef IN_RC 3365 3391 /** -
trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp
r15425 r15428 1236 1236 { 1237 1237 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1238 void *pvSrc = NULL; 1239 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvSrc); 1238 void *pvSrc = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1240 1239 #else 1241 1240 void *pvSrc = PGMRAMRANGE_GETHCPTR(pRam, off) … … 1284 1283 { 1285 1284 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1286 void *pvSrc = NULL; 1287 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvSrc); 1285 void *pvSrc = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1288 1286 #else 1289 1287 void *pvSrc = PGMRAMRANGE_GETHCPTR(pRam, off) … … 1313 1311 { 1314 1312 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1315 void *pvSrc = NULL; 1316 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvSrc); 1313 void *pvSrc = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1317 1314 #else 1318 1315 void *pvSrc = PGMRAMRANGE_GETHCPTR(pRam, off) … … 1537 1534 { 1538 1535 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1539 void *pvDst = NULL; 1540 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvDst); 1536 void *pvDst = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1541 1537 #else 1542 1538 void *pvDst = PGMRAMRANGE_GETHCPTR(pRam, off) … … 1581 1577 { 1582 1578 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1583 void *pvDst = NULL; 1584 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvDst); 1579 void *pvDst = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1585 1580 #else 1586 1581 void *pvDst = PGMRAMRANGE_GETHCPTR(pRam, off) … … 1625 1620 { 1626 1621 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1627 void *pvDst = NULL; 1628 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvDst); 1622 void *pvDst = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1629 1623 #else 1630 1624 void *pvDst = PGMRAMRANGE_GETHCPTR(pRam, off) … … 1653 1647 { 1654 1648 #if defined(IN_RC) || defined(VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0) 1655 void *pvDst = NULL; 1656 PGMDynMapHCPageOff(pVM, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK), &pvDst); 1649 void *pvDst = pgmDynMapHCPageOff(&pVM->pgm.s, PGM_PAGE_GET_HCPHYS(pPage) + (off & PAGE_OFFSET_MASK)); 1657 1650 #else 1658 1651 void *pvDst = PGMRAMRANGE_GETHCPTR(pRam, off)
Note:
See TracChangeset
for help on using the changeset viewer.