VirtualBox

Changeset 26271 in vbox


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

VMM: warnings. Changed PATMIsPatchGCAddr and CSAMIsKnownDangerousInstr to take RTRCUINTPTR instead of RTRCPTR so we can mostly avoid having to cast the parameter.

Location:
trunk
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/csam.h

    r21217 r26271  
    149149 * @param   GCPtr       GC pointer of page table entry
    150150 */
    151 VMMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRCPTR GCPtr);
     151VMMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRCUINTPTR GCPtr);
    152152
    153153
  • trunk/include/VBox/patm.h

    r21217 r26271  
    194194 * @param   pAddr       Guest context address
    195195 */
    196 VMMDECL(bool) PATMIsPatchGCAddr(PVM pVM, RTRCPTR pAddr);
     196VMMDECL(bool) PATMIsPatchGCAddr(PVM pVM, RTRCUINTPTR pAddr);
    197197
    198198/**
  • trunk/src/VBox/VMM/EMHandleRCTmpl.h

    r26120 r26271  
    9090
    9191        case VINF_PATM_DUPLICATE_FUNCTION:
    92             Assert(PATMIsPatchGCAddr(pVM, (RTGCPTR)pCtx->eip));
     92            Assert(PATMIsPatchGCAddr(pVM, pCtx->eip));
    9393            rc = PATMR3DuplicateFunctionRequest(pVM, pCtx);
    9494            AssertRC(rc);
     
    190190        case VINF_EM_RAW_RING_SWITCH_INT:
    191191            Assert(TRPMHasTrap(pVCpu));
    192             Assert(!PATMIsPatchGCAddr(pVM, (RTGCPTR)pCtx->eip));
     192            Assert(!PATMIsPatchGCAddr(pVM, pCtx->eip));
    193193
    194194            if (TRPMHasTrap(pVCpu))
  • trunk/src/VBox/VMM/EMRaw.cpp

    r26260 r26271  
    625625    uint32_t uCpl = CPUMGetGuestCPL(pVCpu, CPUMCTX2CORE(pCtx));
    626626    if (    uCpl == 0
    627         &&  PATMIsPatchGCAddr(pVM, (RTGCPTR)pCtx->eip))
     627        &&  PATMIsPatchGCAddr(pVM, pCtx->eip))
    628628    {
    629629        LogFlow(("emR3RawGuestTrap: trap %#x in patch code; eip=%08x\n", u8TrapNo, pCtx->eip));
     
    11571157
    11581158                case OP_HLT:
    1159                     if (PATMIsPatchGCAddr(pVM, (RTGCPTR)pCtx->eip))
     1159                    if (PATMIsPatchGCAddr(pVM, pCtx->eip))
    11601160                    {
    11611161                        PATMTRANSSTATE  enmState;
  • trunk/src/VBox/VMM/PATM/PATMSSM.cpp

    r26265 r26271  
    10011001    case FIXUP_ABSOLUTE:
    10021002    {
    1003         if (pRec->pSource && !PATMIsPatchGCAddr(pVM, pRec->pSource))
     1003        if (pRec->pSource && !PATMIsPatchGCAddr(pVM, (RTRCUINTPTR)pRec->pSource))
    10041004            break;
    10051005
  • trunk/src/VBox/VMM/PATM/VMMAll/CSAMAll.cpp

    r20011 r26271  
    248248 * @param   GCPtr       GC pointer of page table entry
    249249 */
    250 VMMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRCPTR GCPtr)
     250VMMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRCUINTPTR GCPtr)
    251251{
    252252    for (uint32_t i=0;i<pVM->csam.s.cDangerousInstr;i++)
  • trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp

    r19259 r26271  
    5353VMMDECL(void) PATMRawEnter(PVM pVM, PCPUMCTXCORE pCtxCore)
    5454{
    55     bool fPatchCode = PATMIsPatchGCAddr(pVM, (RTRCPTR)pCtxCore->eip);
     55    bool fPatchCode = PATMIsPatchGCAddr(pVM, pCtxCore->eip);
    5656
    5757    /*
     
    124124VMMDECL(void) PATMRawLeave(PVM pVM, PCPUMCTXCORE pCtxCore, int rawRC)
    125125{
    126     bool fPatchCode = PATMIsPatchGCAddr(pVM, (RTRCPTR)pCtxCore->eip);
     126    bool fPatchCode = PATMIsPatchGCAddr(pVM, pCtxCore->eip);
    127127    /*
    128128     * We will only be called if PATMRawEnter was previously called.
     
    268268 * @param   pAddrGC     Guest context address
    269269 */
    270 VMMDECL(bool) PATMIsPatchGCAddr(PVM pVM, RTRCPTR pAddrGC)
    271 {
    272     return (PATMIsEnabled(pVM) && pAddrGC >= pVM->patm.s.pPatchMemGC && pAddrGC < (RTRCPTR)((RTRCUINTPTR)pVM->patm.s.pPatchMemGC + pVM->patm.s.cbPatchMem)) ? true : false;
     270VMMDECL(bool) PATMIsPatchGCAddr(PVM pVM, RTRCUINTPTR pAddrGC)
     271{
     272    return (PATMIsEnabled(pVM) && pAddrGC - (RTRCUINTPTR)pVM->patm.s.pPatchMemGC < pVM->patm.s.cbPatchMem) ? true : false;
    273273}
    274274
     
    317317    if (PATMIsEnabled(pVM))
    318318    {
    319         if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pCtxCore->eip))
     319        if (PATMIsPatchGCAddr(pVM, pCtxCore->eip))
    320320            return false;
    321321    }
     
    462462    Log(("PATMAddBranchToLookupCache: Adding (%RRv->%RRv (%RRv)) to table %RRv\n", pBranchTarget, pRelBranchPatch + pVM->patm.s.pPatchMemGC, pRelBranchPatch, pJumpTableGC));
    463463
    464     AssertReturn(PATMIsPatchGCAddr(pVM, pJumpTableGC), VERR_INVALID_PARAMETER);
     464    AssertReturn(PATMIsPatchGCAddr(pVM, (RTRCUINTPTR)pJumpTableGC), VERR_INVALID_PARAMETER);
    465465
    466466#ifdef IN_RC
  • trunk/src/VBox/VMM/PATM/VMMGC/CSAMGC.cpp

    r25771 r26271  
    6666{
    6767    PPATMGCSTATE pPATMGCState;
    68     bool         fPatchCode = PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip);
     68    bool         fPatchCode = PATMIsPatchGCAddr(pVM, pRegFrame->eip);
    6969    int          rc;
    7070    PVMCPU       pVCpu = VMMGetCpu0(pVM);
  • trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp

    r25647 r26271  
    160160    /* Very important check -> otherwise we have a security leak. */
    161161    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));
    163163
    164164    /* OP_ILLUD2 in PATM generated code? */
     
    186186                 *  edi = PATCHJUMPTABLE ptr
    187187                 */
    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));
    189189
    190190                Log(("PATMGC: lookup %x jump table=%x\n", pRegFrame->edx, pRegFrame->edi));
     
    457457
    458458    /* Int 3 in PATM generated code? (most common case) */
    459     if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     459    if (PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    460460    {
    461461        /* @note hardcoded assumption about it being a single byte int 3 instruction. */
  • trunk/src/VBox/VMM/TRPM.cpp

    r26263 r26271  
    14501450
    14511451    pCtx = CPUMQueryGuestCtxPtr(pVCpu);
    1452     Assert(!PATMIsPatchGCAddr(pVM, (RTGCPTR)pCtx->eip));
     1452    Assert(!PATMIsPatchGCAddr(pVM, pCtx->eip));
    14531453    Assert(!VMCPU_FF_ISSET(pVCpu, VMCPU_FF_INHIBIT_INTERRUPTS));
    14541454
  • trunk/src/VBox/VMM/VMMAll/EMAll.cpp

    r26180 r26271  
    153153
    154154# elif defined(IN_RC)
    155     if (!PATMIsPatchGCAddr(pVM, (RTRCPTR)pSrc))
     155    if (!PATMIsPatchGCAddr(pVM, pSrc))
    156156    {
    157157        int rc = MMGCRamRead(pVM, pDest, (void *)pSrc, cb);
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r26218 r26271  
    716716                            ||  pvFault - pRegFrame->eip < 8    /* instruction crossing a page boundary */
    717717#    ifdef CSAM_DETECT_NEW_CODE_PAGES
    718                             ||  (   !PATMIsPatchGCAddr(pVM, (RTGCPTR)pRegFrame->eip)
     718                            ||  (   !PATMIsPatchGCAddr(pVM, pRegFrame->eip)
    719719                                 && CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip))   /* any new code we encounter here */
    720720#    endif /* CSAM_DETECT_NEW_CODE_PAGES */
  • trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp

    r26180 r26271  
    892892    {
    893893#ifdef IN_RC
    894         if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     894        if (PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    895895        {
    896896            LogFlow(("pgmPoolAccessHandlerPTWorker: Interpretation failed for patch code %04x:%RGv, ignoring.\n",
  • trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp

    r26264 r26271  
    423423        && !(eflags.Bits.u1VM) /** @todo implement when needed (illegal for same privilege level transfers). */
    424424#endif
    425         && !PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip)
     425        && !PATMIsPatchGCAddr(pVM, pRegFrame->eip)
    426426       )
    427427    {
     
    728728        if (pVM->trpm.s.aGuestTrapHandler[iGate] == TRPM_INVALID_HANDLER)
    729729            STAM_COUNTER_INC(&pVM->trpm.s.StatForwardFailNoHandler);
    730         else if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     730        else if (PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    731731            STAM_COUNTER_INC(&pVM->trpm.s.StatForwardFailPatchAddr);
    732732#endif
  • trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp

    r26175 r26271  
    208208    LogFlow(("pdmRCDevHlp_PATMSetMMIOPatchInfo: caller=%p/%d:\n", pDevIns, pDevIns->iInstance));
    209209
    210     return PATMSetMMIOPatchInfo(pDevIns->Internal.s.pVMRC, GCPhys, (RTRCPTR)pCachedData);
     210    return PATMSetMMIOPatchInfo(pDevIns->Internal.s.pVMRC, GCPhys, (RTRCPTR)(uintptr_t)pCachedData);
    211211}
    212212
  • trunk/src/VBox/VMM/VMMGC/SELMGC.cpp

    r19141 r26271  
    6868     */
    6969    X86DESC Desc;
    70     int rc = MMGCRamRead(pVM, &Desc, (uint8_t *)GdtrGuest.pGdt + offEntry, sizeof(X86DESC));
     70    int rc = MMGCRamRead(pVM, &Desc, (uint8_t *)(uintptr_t)GdtrGuest.pGdt + offEntry, sizeof(X86DESC));
    7171    if (RT_FAILURE(rc))
    7272        return VINF_EM_RAW_EMULATE_INSTR_GDT_FAULT;
     
    317317         * then check if any of these has changed.
    318318         */
    319         PCVBOXTSS pGuestTss = (PVBOXTSS)pVM->selm.s.GCPtrGuestTss;
     319        PCVBOXTSS pGuestTss = (PVBOXTSS)(uintptr_t)pVM->selm.s.GCPtrGuestTss;
    320320        if (    PAGE_ADDRESS(&pGuestTss->esp0) == PAGE_ADDRESS(&pGuestTss->padding_ss0)
    321321            &&  PAGE_ADDRESS(&pGuestTss->esp0) == PAGE_ADDRESS((uint8_t *)pGuestTss + offRange)
  • trunk/src/VBox/VMM/VMMGC/TRPMGCHandlers.cpp

    r26152 r26271  
    406406         */
    407407        if (    Cpu.pCurInstr->opcode == OP_ILLUD2
    408             &&  PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     408            &&  PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    409409        {
    410410            rc = PATMGCHandleIllegalInstrTrap(pVM, pRegFrame);
     
    429429            Log(("TRPMGCTrap06Handler: pc=%08x op=%d\n", pRegFrame->eip, Cpu.pCurInstr->opcode));
    430430#ifdef DTRACE_EXPERIMENT /** @todo fix/remove/permanent-enable this when DIS/PATM handles invalid lock sequences. */
    431             Assert(!PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip));
     431            Assert(!PATMIsPatchGCAddr(pVM, pRegFrame->eip));
    432432            rc = TRPMForwardTrap(pVCpu, pRegFrame, 0x6, 0, TRPM_TRAP_NO_ERRORCODE, TRPM_TRAP, 0x6);
    433433            Assert(rc == VINF_EM_RAW_GUEST_TRAP);
     
    618618        {
    619619            Assert(pCpu->param1.flags & USE_IMMEDIATE8);
    620             Assert(!(PATMIsPatchGCAddr(pVM, (RTRCPTR)PC)));
     620            Assert(!(PATMIsPatchGCAddr(pVM, PC)));
    621621            if (pCpu->param1.parval == 3)
    622622            {
     
    646646        case OP_HLT:
    647647            /* If it's in patch code, defer to ring-3. */
    648             if (PATMIsPatchGCAddr(pVM, (RTRCPTR)PC))
     648            if (PATMIsPatchGCAddr(pVM, PC))
    649649                break;
    650650
     
    662662        case OP_MOV_DR:
    663663            /* We can safely emulate control/debug register move instructions in patched code. */
    664             if (    !PATMIsPatchGCAddr(pVM, (RTRCPTR)PC)
    665                 &&  !CSAMIsKnownDangerousInstr(pVM, (RTRCPTR)PC))
     664            if (    !PATMIsPatchGCAddr(pVM, PC)
     665                &&  !CSAMIsKnownDangerousInstr(pVM, PC))
    666666                break;
    667667        case OP_INVLPG:
     
    938938        case VINF_EM_RAW_GUEST_TRAP:
    939939        case VINF_EM_RAW_EXCEPTION_PRIVILEGED:
    940             if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     940            if (PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    941941                rc = VINF_PATM_PATCH_TRAP_GP;
    942942            break;
     
    962962
    963963        default:
    964             AssertMsg(PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip) == false, ("return code %d\n", rc));
     964            AssertMsg(PATMIsPatchGCAddr(pVM, pRegFrame->eip) == false, ("return code %d\n", rc));
    965965            break;
    966966        }
     
    10031003        case VINF_EM_RAW_EMULATE_INSTR_LDT_FAULT:
    10041004        case VINF_EM_RAW_EMULATE_INSTR_IDT_FAULT:
    1005             if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     1005            if (PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    10061006                rc = VINF_PATCH_EMULATE_INSTR;
    10071007            break;
    10081008
    10091009        case VINF_EM_RAW_GUEST_TRAP:
    1010             if (PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip))
     1010            if (PATMIsPatchGCAddr(pVM, pRegFrame->eip))
    10111011                return VINF_PATM_PATCH_TRAP_PF;
    10121012
     
    10331033
    10341034        default:
    1035             AssertMsg(PATMIsPatchGCAddr(pVM, (RTRCPTR)pRegFrame->eip) == false, ("Patch address for return code %d. eip=%08x\n", rc, pRegFrame->eip));
     1035            AssertMsg(PATMIsPatchGCAddr(pVM, pRegFrame->eip) == false, ("Patch address for return code %d. eip=%08x\n", rc, pRegFrame->eip));
    10361036            break;
    10371037    }
  • trunk/src/recompiler/VBoxREMWrapper.cpp

    r25732 r26271  
    656656{
    657657    { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
    658     { REMPARMDESC_FLAGS_INT,        sizeof(RTRCPTR), NULL }
     658    { REMPARMDESC_FLAGS_INT,        sizeof(RTRCUINTPTR), NULL }
    659659};
    660660static const REMPARMDESC g_aArgsPATMR3QueryOpcode[] =
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