VirtualBox

Changeset 26277 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Feb 5, 2010 4:44:42 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
57336
Message:

VMM: more RC/GC warnings - CSAMDoesPageNeedScanning and CSAMMarkPage now takes RTRCUINTPTR instead of RTRCPTR to ease the pain using them in RC.

Location:
trunk/src/VBox/VMM/VMMAll
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/PDMAllCritSect.cpp

    r25685 r26277  
    7171#else
    7272    AssertMsgReturn(pCritSect->s.Core.u32Magic == RTCRITSECT_MAGIC, ("%RX32\n", pCritSect->s.Core.u32Magic),
    73                     VERR_SEM_DESTROYED);
     73                    NIL_RTNATIVETHREAD);
    7474    PVM             pVM         = pCritSect->s.CTX_SUFF(pVM); AssertPtr(pVM);
    7575    PVMCPU          pVCpu       = VMMGetCpu(pVM);             AssertPtr(pVCpu);
  • trunk/src/VBox/VMM/VMMAll/PGMAll.cpp

    r26202 r26277  
    22182218    PGMDynMapHCPage(pVM, HCPhys, ppv);
    22192219#endif
    2220     *ppv = (void *)((uintptr_t)*ppv | (GCPhys & PAGE_OFFSET_MASK));
     2220    *ppv = (void *)((uintptr_t)*ppv | (uintptr_t)(GCPhys & PAGE_OFFSET_MASK));
    22212221    return VINF_SUCCESS;
    22222222}
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r26271 r26277  
    701701                PGMGstGetPage(pVCpu, pvFault, &fPageGst2, &GCPhys2);
    702702                Log(("Page out of sync: %RGv eip=%08x PdeSrc.n.u1User=%d fPageGst2=%08llx GCPhys2=%RGp scan=%d\n",
    703                      pvFault, pRegFrame->eip, PdeSrc.n.u1User, fPageGst2, GCPhys2, CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip)));
     703                     pvFault, pRegFrame->eip, PdeSrc.n.u1User, fPageGst2, GCPhys2, CSAMDoesPageNeedScanning(pVM, pRegFrame->eip)));
    704704#   endif /* LOG_ENABLED */
    705705
     
    717717#    ifdef CSAM_DETECT_NEW_CODE_PAGES
    718718                            ||  (   !PATMIsPatchGCAddr(pVM, pRegFrame->eip)
    719                                  && CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip))   /* any new code we encounter here */
     719                                 && CSAMDoesPageNeedScanning(pVM, pRegFrame->eip))   /* any new code we encounter here */
    720720#    endif /* CSAM_DETECT_NEW_CODE_PAGES */
    721721                           )
     
    776776                        /** @todo not correct for pages that contain both code and data!! */
    777777                        Log2(("CSAMMarkPage %RGv; scanned=%d\n", pvFault, true));
    778                         CSAMMarkPage(pVM, (RTRCPTR)pvFault, true);
     778                        CSAMMarkPage(pVM, pvFault, true);
    779779                    }
    780780                }
     
    17281728                                if (    ((PdeSrc.u & PteSrc.u) & (X86_PTE_RW | X86_PTE_US))
    17291729                                    ||  iPTDst == ((GCPtrPage >> SHW_PT_SHIFT) & SHW_PT_MASK)   /* always sync GCPtrPage */
    1730                                     ||  !CSAMDoesPageNeedScanning(pVM, (RTRCPTR)GCPtrCurPage)
     1730                                    ||  !CSAMDoesPageNeedScanning(pVM, GCPtrCurPage)
    17311731                                    ||  (   (pPage = pgmPhysGetPage(&pVM->pgm.s, PteSrc.u & GST_PTE_PG_MASK))
    17321732                                         && PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     
    26882688                        PPGMPAGE pPage;
    26892689                        if (    ((PdeSrc.u & pPTSrc->a[iPTSrc].u) & (X86_PTE_RW | X86_PTE_US))
    2690                             ||  !CSAMDoesPageNeedScanning(pVM, (RTRCPTR)((iPDSrc << GST_PD_SHIFT) | (iPTSrc << PAGE_SHIFT)))
     2690                            ||  !CSAMDoesPageNeedScanning(pVM, (iPDSrc << GST_PD_SHIFT) | (iPTSrc << PAGE_SHIFT))
    26912691                            ||  (   (pPage = pgmPhysGetPage(&pVM->pgm.s, PteSrc.u & GST_PTE_PG_MASK))
    26922692                                 &&  PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     
    28092809                         */
    28102810                        else if (    !PdeSrc.n.u1User
    2811                                  &&  CSAMDoesPageNeedScanning(pVM, (RTRCPTR)(GCPtr | (iPTDst << SHW_PT_SHIFT))))
     2811                                 &&  CSAMDoesPageNeedScanning(pVM, GCPtr | (iPTDst << SHW_PT_SHIFT)))
    28122812                            PteDst.u = 0;
    28132813# endif
     
    31483148        /** @todo not correct for pages that contain both code and data!! */
    31493149        Log(("CSAMMarkPage %RGv; scanned=%d\n", GCPtrPage, true));
    3150         CSAMMarkPage(pVM, (RTRCPTR)GCPtrPage, true);
     3150        CSAMMarkPage(pVM, GCPtrPage, true);
    31513151    }
    31523152# endif
     
    42394239            pVCpu->pgm.s.pGstPaePdptR0 = (R0PTRTYPE(PX86PDPT))HCPtrGuestCR3;
    42404240#  endif
    4241             pVCpu->pgm.s.pGstPaePdptRC = (RCPTRTYPE(PX86PDPT))((RCPTRTYPE(uint8_t *))pVM->pgm.s.GCPtrCR3Mapping + off);
     4241            pVCpu->pgm.s.pGstPaePdptRC = (RCPTRTYPE(PX86PDPT))((RTRCUINTPTR)pVM->pgm.s.GCPtrCR3Mapping + off);
    42424242            Log(("Cached mapping %RRv\n", pVCpu->pgm.s.pGstPaePdptRC));
    42434243
     
    42744274                        pVCpu->pgm.s.apGstPaePDsR0[i]     = (R0PTRTYPE(PX86PDPAE))HCPtr;
    42754275#  endif
    4276                         pVCpu->pgm.s.apGstPaePDsRC[i]     = (RCPTRTYPE(PX86PDPAE))GCPtr;
     4276                        pVCpu->pgm.s.apGstPaePDsRC[i]     = (RCPTRTYPE(PX86PDPAE))(RTRCUINTPTR)GCPtr;
    42774277                        pVCpu->pgm.s.aGCPhysGstPaePDs[i]  = GCPhys;
    42784278#  ifdef IN_RC
Note: See TracChangeset for help on using the changeset viewer.

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