VirtualBox

Changeset 15425 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Dec 13, 2008 9:22:59 AM (16 years ago)
Author:
vboxsync
Message:

PGMR0DynMapHCPage: always successful, or will bail out to ring-3.

Location:
trunk/src/VBox/VMM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PGMInternal.h

    r15424 r15425  
    46364636        pgmR0DynMapHCPageInlined(pPGM, pPage->Core.Key, &pv);
    46374637# else
    4638         int rc = PGMDynMapHCPage(PGM2VM(pPGM), pPage->Core.Key, &pv);
    4639         if (RT_SUCCESS(rc))
     4638        PGMDynMapHCPage(PGM2VM(pPGM), pPage->Core.Key, &pv);
    46404639# endif
    4641             return pv;
     4640        return pv;
    46424641    }
    46434642    return pgmPoolMapPageFallback(pPGM, pPage);
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r15410 r15425  
    19131913    //Log(("PGMDynMapGCPage: GCPhys=%RGp HCPhys=%RHp\n", GCPhys, HCPhys));
    19141914#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
    1915     return pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);
     1915    pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);
    19161916#else
    1917     return PGMDynMapHCPage(pVM, HCPhys, ppv);
     1917    PGMDynMapHCPage(pVM, HCPhys, ppv);
    19181918#endif
     1919    return VINF_SUCCESS;
    19191920}
    19201921
     
    19541955    RTHCPHYS HCPhys = PGM_PAGE_GET_HCPHYS(&pRam->aPages[(GCPhys - pRam->GCPhys) >> PAGE_SHIFT]);
    19551956#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);
    19571958#else
    1958     int rc = PGMDynMapHCPage(pVM, HCPhys, ppv);
     1959    PGMDynMapHCPage(pVM, HCPhys, ppv);
    19591960#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;
    19631963}
    19641964
     
    19711971 * reused after 8 mappings (or perhaps a few more if you score with the cache).
    19721972 *
    1973  * @returns VBox status.
     1973 * @returns VINF_SUCCESS, will bail out to ring-3 on failure.
    19741974 * @param   pVM         VM handle.
    19751975 * @param   HCPhys      HC Physical address of the page.
  • trunk/src/VBox/VMM/VMMAll/PGMAllPhys.cpp

    r15344 r15425  
    501501    Assert(HCPhys != pVM->pgm.s.HCPhysZeroPg);
    502502# ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
    503     return pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);
     503    pgmR0DynMapHCPageInlined(&pVM->pgm.s, HCPhys, ppv);
    504504# else
    505     return PGMDynMapHCPage(pVM, HCPhys, ppv);
     505    PGMDynMapHCPage(pVM, HCPhys, ppv);
    506506# endif
     507    return VINF_SUCCESS;
    507508
    508509#else /* IN_RING3 || IN_RING0 */
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r15424 r15425  
    910910     * write situation, meaning that it's safe to write here.
    911911     */
     912#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     913    PVMCPU      pVCpu = VMMGetCpu(pPool->CTX_SUFF(pVM));
     914#endif
    912915    RTGCUINTPTR pu32 = (RTGCUINTPTR)pvFault;
    913916    while (pRegFrame->ecx)
    914917    {
     918#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     919        uint32_t iPrevSubset = PGMDynMapPushAutoSubset(pVCpu);
    915920        pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, (RTGCPTR)pu32, NULL);
     921        PGMDynMapPopAutoSubset(pVCpu, iPrevSubset);
     922#else
     923        pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, (RTGCPTR)pu32, NULL);
     924#endif
    916925#ifdef IN_RC
    917926        *(uint32_t *)pu32 = pRegFrame->eax;
     
    959968     * Clear all the pages. ASSUMES that pvFault is readable.
    960969     */
     970#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE_IN_R0
     971    PVMCPU      pVCpu = VMMGetCpu(pPool->CTX_SUFF(pVM));
     972    uint32_t    iPrevSubset = PGMDynMapPushAutoSubset(pVCpu);
    961973    pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, pvFault, pCpu);
     974    PGMDynMapPopAutoSubset(pVCpu, iPrevSubset);
     975#else
     976    pgmPoolMonitorChainChanging(pPool, pPage, GCPhysFault, pvFault, pCpu);
     977#endif
    962978
    963979    /*
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette