Changeset 26271 in vbox for trunk/src/VBox/VMM/PATM
- Timestamp:
- Feb 5, 2010 4:04:36 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57330
- Location:
- trunk/src/VBox/VMM/PATM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/PATMSSM.cpp
r26265 r26271 1001 1001 case FIXUP_ABSOLUTE: 1002 1002 { 1003 if (pRec->pSource && !PATMIsPatchGCAddr(pVM, pRec->pSource))1003 if (pRec->pSource && !PATMIsPatchGCAddr(pVM, (RTRCUINTPTR)pRec->pSource)) 1004 1004 break; 1005 1005 -
trunk/src/VBox/VMM/PATM/VMMAll/CSAMAll.cpp
r20011 r26271 248 248 * @param GCPtr GC pointer of page table entry 249 249 */ 250 VMMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRC PTR GCPtr)250 VMMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRCUINTPTR GCPtr) 251 251 { 252 252 for (uint32_t i=0;i<pVM->csam.s.cDangerousInstr;i++) -
trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp
r19259 r26271 53 53 VMMDECL(void) PATMRawEnter(PVM pVM, PCPUMCTXCORE pCtxCore) 54 54 { 55 bool fPatchCode = PATMIsPatchGCAddr(pVM, (RTRCPTR)pCtxCore->eip);55 bool fPatchCode = PATMIsPatchGCAddr(pVM, pCtxCore->eip); 56 56 57 57 /* … … 124 124 VMMDECL(void) PATMRawLeave(PVM pVM, PCPUMCTXCORE pCtxCore, int rawRC) 125 125 { 126 bool fPatchCode = PATMIsPatchGCAddr(pVM, (RTRCPTR)pCtxCore->eip);126 bool fPatchCode = PATMIsPatchGCAddr(pVM, pCtxCore->eip); 127 127 /* 128 128 * We will only be called if PATMRawEnter was previously called. … … 268 268 * @param pAddrGC Guest context address 269 269 */ 270 VMMDECL(bool) PATMIsPatchGCAddr(PVM pVM, RTRC PTR pAddrGC)271 { 272 return (PATMIsEnabled(pVM) && pAddrGC >= pVM->patm.s.pPatchMemGC && pAddrGC < (RTRCPTR)((RTRCUINTPTR)pVM->patm.s.pPatchMemGC + pVM->patm.s.cbPatchMem)) ? true : false;270 VMMDECL(bool) PATMIsPatchGCAddr(PVM pVM, RTRCUINTPTR pAddrGC) 271 { 272 return (PATMIsEnabled(pVM) && pAddrGC - (RTRCUINTPTR)pVM->patm.s.pPatchMemGC < pVM->patm.s.cbPatchMem) ? true : false; 273 273 } 274 274 … … 317 317 if (PATMIsEnabled(pVM)) 318 318 { 319 if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pCtxCore->eip))319 if (PATMIsPatchGCAddr(pVM, pCtxCore->eip)) 320 320 return false; 321 321 } … … 462 462 Log(("PATMAddBranchToLookupCache: Adding (%RRv->%RRv (%RRv)) to table %RRv\n", pBranchTarget, pRelBranchPatch + pVM->patm.s.pPatchMemGC, pRelBranchPatch, pJumpTableGC)); 463 463 464 AssertReturn(PATMIsPatchGCAddr(pVM, pJumpTableGC), VERR_INVALID_PARAMETER);464 AssertReturn(PATMIsPatchGCAddr(pVM, (RTRCUINTPTR)pJumpTableGC), VERR_INVALID_PARAMETER); 465 465 466 466 #ifdef IN_RC -
trunk/src/VBox/VMM/PATM/VMMGC/CSAMGC.cpp
r25771 r26271 66 66 { 67 67 PPATMGCSTATE pPATMGCState; 68 bool fPatchCode = PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip);68 bool fPatchCode = PATMIsPatchGCAddr(pVM, pRegFrame->eip); 69 69 int rc; 70 70 PVMCPU pVCpu = VMMGetCpu0(pVM); -
trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp
r25647 r26271 160 160 /* Very important check -> otherwise we have a security leak. */ 161 161 AssertReturn(!pRegFrame->eflags.Bits.u1VM && (pRegFrame->ss & X86_SEL_RPL) == 1, VERR_ACCESS_DENIED); 162 Assert(PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip));162 Assert(PATMIsPatchGCAddr(pVM, pRegFrame->eip)); 163 163 164 164 /* OP_ILLUD2 in PATM generated code? */ … … 186 186 * edi = PATCHJUMPTABLE ptr 187 187 */ 188 AssertMsg(!pRegFrame->edi || PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->edi), ("edx = %x\n", pRegFrame->edi));188 AssertMsg(!pRegFrame->edi || PATMIsPatchGCAddr(pVM, pRegFrame->edi), ("edx = %x\n", pRegFrame->edi)); 189 189 190 190 Log(("PATMGC: lookup %x jump table=%x\n", pRegFrame->edx, pRegFrame->edi)); … … 457 457 458 458 /* Int 3 in PATM generated code? (most common case) */ 459 if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))459 if (PATMIsPatchGCAddr(pVM, pRegFrame->eip)) 460 460 { 461 461 /* @note hardcoded assumption about it being a single byte int 3 instruction. */
Note:
See TracChangeset
for help on using the changeset viewer.