Changeset 26296 in vbox for trunk/src/VBox/VMM/PATM
- Timestamp:
- Feb 5, 2010 2:53:35 PM (15 years ago)
- Location:
- trunk/src/VBox/VMM/PATM
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp
r26271 r26296 391 391 || (pRegFrame->cs & X86_SEL_RPL) != 3 392 392 || pVM->patm.s.pfnSysEnterPatchGC == 0 393 || pVM->patm.s.pfnSysEnterGC != (RTRCPTR) pCtx->SysEnter.eip393 || pVM->patm.s.pfnSysEnterGC != (RTRCPTR)(RTRCUINTPTR)pCtx->SysEnter.eip 394 394 || !(PATMRawGetEFlags(pVM, pRegFrame) & X86_EFL_IF)) 395 395 goto end; -
trunk/src/VBox/VMM/PATM/VMMGC/CSAMGC.cpp
r26271 r26296 91 91 rc = PGMShwModifyPage(pVCpu, pvFault, 1, X86_PTE_RW, ~(uint64_t)X86_PTE_RW); 92 92 AssertMsgRC(rc, ("PGMShwModifyPage -> rc=%Rrc\n", rc)); 93 ASMInvalidatePage((void *) pvFault);93 ASMInvalidatePage((void *)(uintptr_t)pvFault); 94 94 return VINF_SUCCESS; 95 95 } … … 121 121 122 122 /* Note that pvFault might be a different address in case of aliases. So use pvRange + offset instead!. */ 123 pVM->csam.s.pvDirtyBasePage[pVM->csam.s.cDirtyPages] = (RTRCPTR)((RT GCUINTPTR)pvRange + offRange);124 pVM->csam.s.pvDirtyFaultPage[pVM->csam.s.cDirtyPages] = (RTRCPTR)((RT GCUINTPTR)pvRange + offRange);123 pVM->csam.s.pvDirtyBasePage[pVM->csam.s.cDirtyPages] = (RTRCPTR)((RTRCUINTPTR)pvRange + offRange); 124 pVM->csam.s.pvDirtyFaultPage[pVM->csam.s.cDirtyPages] = (RTRCPTR)((RTRCUINTPTR)pvRange + offRange); 125 125 if (++pVM->csam.s.cDirtyPages == CSAM_MAX_DIRTY_PAGES) 126 126 return VINF_CSAM_PENDING_ACTION; … … 132 132 rc = PGMShwModifyPage(pVCpu, pvFault, 1, X86_PTE_RW, ~(uint64_t)X86_PTE_RW); 133 133 AssertMsgRC(rc, ("PGMShwModifyPage -> rc=%Rrc\n", rc)); 134 ASMInvalidatePage((void *) pvFault);134 ASMInvalidatePage((void *)(uintptr_t)pvFault); 135 135 136 136 STAM_COUNTER_INC(&pVM->csam.s.StatCodePageModified); -
trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp
r26271 r26296 63 63 VMMRCDECL(int) PATMGCMonitorPage(PVM pVM, RTGCUINT uErrorCode, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, RTGCPTR pvRange, uintptr_t offRange) 64 64 { 65 pVM->patm.s.pvFaultMonitor = (RTRCPTR) pvFault;65 pVM->patm.s.pvFaultMonitor = (RTRCPTR)(RTRCUINTPTR)pvFault; 66 66 return VINF_PATM_CHECK_PATCH_PAGE; 67 67 } … … 92 92 STAM_PROFILE_ADV_START(&pVM->patm.s.StatPatchWriteDetect, a); 93 93 94 pWritePageStart = (RT GCUINTPTR)GCPtr & PAGE_BASE_GC_MASK;95 pWritePageEnd = ((RT GCUINTPTR)GCPtr + cbWrite - 1) & PAGE_BASE_GC_MASK;94 pWritePageStart = (RTRCUINTPTR)GCPtr & PAGE_BASE_GC_MASK; 95 pWritePageEnd = ((RTRCUINTPTR)GCPtr + cbWrite - 1) & PAGE_BASE_GC_MASK; 96 96 97 97 pPatchPage = (PPATMPATCHPAGE)RTAvloU32Get(CTXSUFF(&pVM->patm.s.PatchLookupTree)->PatchTreeByPage, (AVLOU32KEY)pWritePageStart); … … 110 110 if (pPatchPage) 111 111 { 112 if ( pPatchPage->pLowestAddrGC > (RTRCPTR)((RT GCUINTPTR)GCPtr + cbWrite - 1)112 if ( pPatchPage->pLowestAddrGC > (RTRCPTR)((RTRCUINTPTR)GCPtr + cbWrite - 1) 113 113 || pPatchPage->pHighestAddrGC < (RTRCPTR)GCPtr) 114 114 { … … 516 516 return VINF_EM_RAW_EMULATE_INSTR; 517 517 } 518 rc = DISCoreOne(&cpu, ( RTUINTPTR)&pRec->patch.aPrivInstr[0], &cbOp);518 rc = DISCoreOne(&cpu, (uintptr_t)&pRec->patch.aPrivInstr[0], &cbOp); 519 519 if (RT_FAILURE(rc)) 520 520 {
Note:
See TracChangeset
for help on using the changeset viewer.