VirtualBox

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


Ignore:
Timestamp:
Jun 3, 2008 9:49:14 AM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
31559
Message:

Types and string format specifiers.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PATM/CSAM.cpp

    r9228 r9344  
    7474static DECLCALLBACK(int) CSAMCodePageInvalidate(PVM pVM, RTGCPTR GCPtr);
    7575
    76 bool                csamIsCodeScanned(PVM pVM, RTGCPTR32 pInstr, PCSAMPAGE *pPage);
    77 int                 csamR3CheckPageRecord(PVM pVM, RTGCPTR32 pInstr);
    78 static PCSAMPAGE    csamCreatePageRecord(PVM pVM, RTGCPTR32 GCPtr, CSAMTAG enmTag, bool fCode32, bool fMonitorInvalidation = false);
    79 static int          csamRemovePageRecord(PVM pVM, RTGCPTR32 GCPtr);
     76bool                csamIsCodeScanned(PVM pVM, RTRCPTR pInstr, PCSAMPAGE *pPage);
     77int                 csamR3CheckPageRecord(PVM pVM, RTRCPTR pInstr);
     78static PCSAMPAGE    csamCreatePageRecord(PVM pVM, RTRCPTR GCPtr, CSAMTAG enmTag, bool fCode32, bool fMonitorInvalidation = false);
     79static int          csamRemovePageRecord(PVM pVM, RTRCPTR GCPtr);
    8080static int          csamReinit(PVM pVM);
    81 static void         csamMarkCode(PVM pVM, PCSAMPAGE pPage, RTGCPTR32 pInstr, uint32_t opsize, bool fScanned);
     81static void         csamMarkCode(PVM pVM, PCSAMPAGE pPage, RTRCPTR pInstr, uint32_t opsize, bool fScanned);
    8282static int          csamAnalyseCodeStream(PVM pVM, RCPTRTYPE(uint8_t *) pInstrGC, RCPTRTYPE(uint8_t *) pCurInstrGC, bool fCode32,
    8383                                          PFN_CSAMR3ANALYSE pfnCSAMR3Analyse, void *pUserData, PCSAMP2GLOOKUPREC pCacheRec);
     
    118118    rc = MMR3HyperAllocOnceNoRel(pVM, CSAM_PGDIRBMP_CHUNKS*sizeof(RTHCPTR), 0, MM_TAG_CSAM, (void **)&pVM->csam.s.pPDBitmapHC);
    119119    AssertRCReturn(rc, rc);
    120     rc = MMR3HyperAllocOnceNoRel(pVM, CSAM_PGDIRBMP_CHUNKS*sizeof(RTGCPTR32), 0, MM_TAG_CSAM, (void **)&pVM->csam.s.pPDGCBitmapHC);
     120    rc = MMR3HyperAllocOnceNoRel(pVM, CSAM_PGDIRBMP_CHUNKS*sizeof(RTRCPTR), 0, MM_TAG_CSAM, (void **)&pVM->csam.s.pPDGCBitmapHC);
    121121    AssertRCReturn(rc, rc);
    122122    pVM->csam.s.pPDBitmapGC   = MMHyperHC2GC(pVM, pVM->csam.s.pPDGCBitmapHC);
     
    612612    for (int i=0;i<orgsize;i++)
    613613    {
    614         int rc = PATMR3QueryOpcode(pVM, (RTGCPTR32)pSrc, pDest);
     614        int rc = PATMR3QueryOpcode(pVM, (RTRCPTR)pSrc, pDest);
    615615        if (VBOX_SUCCESS(rc))
    616616        {
     
    642642}
    643643
    644 inline int CSAMR3DISInstr(PVM pVM, DISCPUSTATE *pCpu, RTGCPTR32 InstrGC, uint8_t *InstrHC, uint32_t *pOpsize, char *pszOutput)
     644inline int CSAMR3DISInstr(PVM pVM, DISCPUSTATE *pCpu, RTRCPTR InstrGC, uint8_t *InstrHC, uint32_t *pOpsize, char *pszOutput)
    645645{
    646646    (pCpu)->pfnReadBytes  = CSAMR3ReadBytes;
     
    12701270           )
    12711271        {
    1272             RTGCPTR32  pJumpTableGC = (RTGCPTR32)cpu.param1.disp32;
     1272            RTRCPTR  pJumpTableGC = (RTRCPTR)cpu.param1.disp32;
    12731273            uint8_t *pJumpTableHC;
    12741274            int      rc2;
     
    12881288                        break;
    12891289
    1290                     addr = *(RTGCPTR32 *)(pJumpTableHC + cpu.param1.scale * i);
     1290                    addr = *(RTRCPTR *)(pJumpTableHC + cpu.param1.scale * i);
    12911291
    12921292                    rc2 = PGMGstGetPage(pVM, addr, &fFlags, NULL);
     
    13461346 * @param   pInstr      Page address
    13471347 */
    1348 uint64_t csamR3CalcPageHash(PVM pVM, RTGCPTR32 pInstr)
     1348uint64_t csamR3CalcPageHash(PVM pVM, RTRCPTR pInstr)
    13491349{
    13501350    uint64_t hash   = 0;
     
    14111411 * @param   fRemovePage Page removal flag
    14121412 */
    1413 static int csamFlushPage(PVM pVM, RTGCPTR32 addr, bool fRemovePage)
     1413static int csamFlushPage(PVM pVM, RTRCPTR addr, bool fRemovePage)
    14141414{
    14151415    PCSAMPAGEREC pPageRec;
     
    15181518 * @param   addr        GC address of the page to flush
    15191519 */
    1520 CSAMR3DECL(int) CSAMR3FlushPage(PVM pVM, RTGCPTR32 addr)
     1520CSAMR3DECL(int) CSAMR3FlushPage(PVM pVM, RTRCPTR addr)
    15211521{
    15221522    return csamFlushPage(pVM, addr, true /* remove page record */);
     
    15301530 * @param   addr        GC address of the page to flush
    15311531 */
    1532 CSAMR3DECL(int) CSAMR3RemovePage(PVM pVM, RTGCPTR32 addr)
     1532CSAMR3DECL(int) CSAMR3RemovePage(PVM pVM, RTRCPTR addr)
    15331533{
    15341534    PCSAMPAGEREC pPageRec;
     
    15551555 * @param   pInstrGC    GC instruction pointer
    15561556 */
    1557 int csamR3CheckPageRecord(PVM pVM, RTGCPTR32 pInstrGC)
     1557int csamR3CheckPageRecord(PVM pVM, RTRCPTR pInstrGC)
    15581558{
    15591559    PCSAMPAGEREC pPageRec;
     
    16021602 * @param   fMonitorInvalidation    Monitor page invalidation flag
    16031603 */
    1604 static PCSAMPAGE csamCreatePageRecord(PVM pVM, RTGCPTR32 GCPtr, CSAMTAG enmTag, bool fCode32, bool fMonitorInvalidation)
     1604static PCSAMPAGE csamCreatePageRecord(PVM pVM, RTRCPTR GCPtr, CSAMTAG enmTag, bool fCode32, bool fMonitorInvalidation)
    16051605{
    16061606    PCSAMPAGEREC pPage;
     
    17031703 * @param   enmTag      Monitor tag
    17041704 */
    1705 CSAMR3DECL(int) CSAMR3MonitorPage(PVM pVM, RTGCPTR32 pPageAddrGC, CSAMTAG enmTag)
     1705CSAMR3DECL(int) CSAMR3MonitorPage(PVM pVM, RTRCPTR pPageAddrGC, CSAMTAG enmTag)
    17061706{
    17071707    PCSAMPAGEREC pPageRec = NULL;
     
    18251825 * @param   enmTag      Monitor tag
    18261826 */
    1827 CSAMR3DECL(int) CSAMR3UnmonitorPage(PVM pVM, RTGCPTR32 pPageAddrGC, CSAMTAG enmTag)
     1827CSAMR3DECL(int) CSAMR3UnmonitorPage(PVM pVM, RTRCPTR pPageAddrGC, CSAMTAG enmTag)
    18281828{
    18291829    pPageAddrGC &= PAGE_BASE_GC_MASK;
     
    18491849 * @param   GCPtr       Page address
    18501850 */
    1851 static int csamRemovePageRecord(PVM pVM, RTGCPTR32 GCPtr)
     1851static int csamRemovePageRecord(PVM pVM, RTRCPTR GCPtr)
    18521852{
    18531853    PCSAMPAGEREC pPageRec;
     
    19111911 * @param   cbBuf           How much it's reading/writing.
    19121912 */
    1913 static DECLCALLBACK(void) CSAMDelayedWriteHandler(PVM pVM, RTGCPTR32 GCPtr, size_t cbBuf)
     1913static DECLCALLBACK(void) CSAMDelayedWriteHandler(PVM pVM, RTRCPTR GCPtr, size_t cbBuf)
    19141914{
    19151915    int rc = PATMR3PatchWrite(pVM, GCPtr, cbBuf);
     
    19511951         */
    19521952        Log(("CSAMCodePageWriteHandler: delayed write!\n"));
    1953         AssertCompileSize(RTGCPTR32, 4);
     1953        AssertCompileSize(RTRCPTR, 4);
    19541954        rc = VMR3ReqCallEx(pVM, NULL, 0, VMREQFLAGS_NO_WAIT | VMREQFLAGS_VOID,
    1955                            (PFNRT)CSAMDelayedWriteHandler, 3, pVM, (RTGCPTR32)GCPtr, cbBuf);
     1955                           (PFNRT)CSAMDelayedWriteHandler, 3, pVM, (RTRCPTR)GCPtr, cbBuf);
    19561956    }
    19571957    AssertRC(rc);
     
    19841984 * @param   pPage       CSAM patch structure pointer
    19851985 */
    1986 bool csamIsCodeScanned(PVM pVM, RTGCPTR32 pInstr, PCSAMPAGE *pPage)
     1986bool csamIsCodeScanned(PVM pVM, RTRCPTR pInstr, PCSAMPAGE *pPage)
    19871987{
    19881988    PCSAMPAGEREC pPageRec;
     
    20362036 * @param   fScanned    Mark as scanned or not
    20372037 */
    2038 static void csamMarkCode(PVM pVM, PCSAMPAGE pPage, RTGCPTR32 pInstr, uint32_t opsize, bool fScanned)
     2038static void csamMarkCode(PVM pVM, PCSAMPAGE pPage, RTRCPTR pInstr, uint32_t opsize, bool fScanned)
    20392039{
    20402040    LogFlow(("csamMarkCodeAsScanned %VRv opsize=%d\n", pInstr, opsize));
     
    20752075 * @param   fScanned    Mark as scanned or not
    20762076 */
    2077 CSAMR3DECL(int) CSAMR3MarkCode(PVM pVM, RTGCPTR32 pInstr, uint32_t opsize, bool fScanned)
     2077CSAMR3DECL(int) CSAMR3MarkCode(PVM pVM, RTRCPTR pInstr, uint32_t opsize, bool fScanned)
    20782078{
    20792079    PCSAMPAGE pPage = 0;
     
    21032103 * @param   pInstrGC    Instruction pointer
    21042104 */
    2105 CSAMR3DECL(int) CSAMR3CheckCodeEx(PVM pVM, RTSEL Sel, CPUMSELREGHID *pHiddenSel, RTGCPTR32 pInstrGC)
     2105CSAMR3DECL(int) CSAMR3CheckCodeEx(PVM pVM, RTSEL Sel, CPUMSELREGHID *pHiddenSel, RTRCPTR pInstrGC)
    21062106{
    21072107    if (EMIsRawRing0Enabled(pVM) == false || PATMIsPatchGCAddr(pVM, pInstrGC) == true)
     
    21372137 * @param   pInstrGC    Instruction pointer (0:32 virtual address)
    21382138 */
    2139 CSAMR3DECL(int) CSAMR3CheckCode(PVM pVM, RTGCPTR32 pInstrGC)
     2139CSAMR3DECL(int) CSAMR3CheckCode(PVM pVM, RTRCPTR pInstrGC)
    21402140{
    21412141    int rc;
     
    21792179        int          rc;
    21802180        PCSAMPAGEREC pPageRec;
    2181         RTGCPTR32      GCPtr = pVM->csam.s.pvDirtyBasePage[i];
     2181        RTRCPTR      GCPtr = pVM->csam.s.pvDirtyBasePage[i];
    21822182
    21832183        GCPtr = GCPtr & PAGE_BASE_GC_MASK;
     
    22232223    for (uint32_t i=0;i<pVM->csam.s.cPossibleCodePages;i++)
    22242224    {
    2225         RTGCPTR32      GCPtr = pVM->csam.s.pvPossibleCodePage[i];
     2225        RTRCPTR      GCPtr = pVM->csam.s.pvPossibleCodePage[i];
    22262226
    22272227        GCPtr = GCPtr & PAGE_BASE_GC_MASK;
     
    22622262{
    22632263    uint16_t    cbIDT;
    2264     RTGCPTR32     GCPtrIDT = CPUMGetGuestIDTR(pVM, &cbIDT);
     2264    RTRCPTR     GCPtrIDT = CPUMGetGuestIDTR(pVM, &cbIDT);
    22652265    uint32_t    iGateEnd;
    22662266    uint32_t    maxGates;
     
    22952295        for (unsigned i=0;i<RT_ELEMENTS(pVM->csam.s.pvCallInstruction);i++)
    22962296        {
    2297             RTGCPTR32 pHandler = pVM->csam.s.pvCallInstruction[i];
     2297            RTRCPTR pHandler = pVM->csam.s.pvCallInstruction[i];
    22982298
    22992299            if (pHandler)
     
    23652365           )
    23662366        {
    2367             RTGCPTR32 pHandler;
     2367            RTRCPTR pHandler;
    23682368            CSAMP2GLOOKUPREC cacheRec = {0};            /* Cache record for PATMGCVirtToHCVirt. */
    23692369            PCSAMPAGE pPage = NULL;
     
    24622462                Log(("Gate handler 0x%X is SAFE!\n", iGate));
    24632463
    2464                 RTGCPTR32 pNewHandlerGC = PATMR3QueryPatchGCPtr(pVM, pHandler);
     2464                RTRCPTR pNewHandlerGC = PATMR3QueryPatchGCPtr(pVM, pHandler);
    24652465                if (pNewHandlerGC)
    24662466                {
     
    24832483 * @param   GCPtrCall   Call address
    24842484 */
    2485 CSAMR3DECL(int) CSAMR3RecordCallAddress(PVM pVM, RTGCPTR32 GCPtrCall)
     2485CSAMR3DECL(int) CSAMR3RecordCallAddress(PVM pVM, RTRCPTR GCPtrCall)
    24862486{
    24872487    for (unsigned i=0;i<RT_ELEMENTS(pVM->csam.s.pvCallInstruction);i++)
  • trunk/src/VBox/VMM/PATM/CSAMInternal.h

    r9300 r9344  
    6868typedef struct
    6969{
    70   RTGCPTR32         pInstrAfterRetGC[CSAM_MAX_CALLEXIT_RET];
     70  RTRCPTR         pInstrAfterRetGC[CSAM_MAX_CALLEXIT_RET];
    7171  uint32_t          cInstrAfterRet;
    7272} CSAMCALLEXITREC, *PCSAMCALLEXITREC;
     
    8484typedef struct
    8585{
    86     RTGCPTR32       pPageGC;
     86    RTRCPTR       pPageGC;
    8787    RTGCPHYS        GCPhys;
    8888    uint64_t        fFlags;
     
    103103{
    104104    // GC Patch pointer
    105     RTGCPTR32       pInstrGC;
     105    RTRCPTR       pInstrGC;
    106106
    107107    // Disassembly state for original instruction
     
    155155     * switch back to ring 3 each time we encounter them in GC.
    156156     */
    157     RTGCPTR32           aDangerousInstr[CSAM_MAX_DANGR_INSTR];
     157    RTRCPTR           aDangerousInstr[CSAM_MAX_DANGR_INSTR];
    158158    uint32_t            cDangerousInstr;
    159159    uint32_t            iDangerousInstr;
    160160
    161     RCPTRTYPE(RTGCPTR32 *)  pPDBitmapGC;
     161    RCPTRTYPE(RTRCPTR *)  pPDBitmapGC;
    162162    RCPTRTYPE(RTHCPTR *)    pPDHCBitmapGC;
    163163    R3PTRTYPE(uint8_t **)   pPDBitmapHC;
    164     R3PTRTYPE(RTGCPTR32  *) pPDGCBitmapHC;
     164    R3PTRTYPE(RTRCPTR  *) pPDGCBitmapHC;
    165165
    166166    /* Temporary storage during load/save state */
     
    179179    /* To keep track of possible code pages */
    180180    uint32_t            cPossibleCodePages;
    181     RTGCPTR32           pvPossibleCodePage[CSAM_MAX_CODE_PAGES_FLUSH];
     181    RTRCPTR           pvPossibleCodePage[CSAM_MAX_CODE_PAGES_FLUSH];
    182182
    183183    /* call addresses reported by the recompiler */
    184     RTGCPTR32           pvCallInstruction[16];
     184    RTRCPTR           pvCallInstruction[16];
    185185    RTUINT              iCallInstruction;
    186186
     
    252252 * @param   pBranchInstrGC  GC pointer of branch instruction
    253253 */
    254 inline RTGCPTR32 CSAMResolveBranch(PDISCPUSTATE pCpu, RTGCPTR32 pBranchInstrGC)
     254inline RTRCPTR CSAMResolveBranch(PDISCPUSTATE pCpu, RTRCPTR pBranchInstrGC)
    255255{
    256256    uint32_t disp;
     
    275275    }
    276276#ifdef IN_GC
    277     return (RTGCPTR32)((uint8_t *)pBranchInstrGC + pCpu->opsize + disp);
     277    return (RTRCPTR)((uint8_t *)pBranchInstrGC + pCpu->opsize + disp);
    278278#else
    279279    return pBranchInstrGC + pCpu->opsize + disp;
  • trunk/src/VBox/VMM/PATM/PATMPatch.cpp

    r9341 r9344  
    7171    Assert(uType == FIXUP_ABSOLUTE || ((uType == FIXUP_REL_JMPTOPATCH || uType == FIXUP_REL_JMPTOGUEST) && pSource && pDest));
    7272
    73     LogFlow(("patmPatchAddReloc32 type=%d pRelocGC=%VGv source=%VGv dest=%VGv\n", uType, pRelocHC - pVM->patm.s.pPatchMemGC + pVM->patm.s.pPatchMemGC , pSource, pDest));
     73    LogFlow(("patmPatchAddReloc32 type=%d pRelocGC=%VRv source=%VRv dest=%VRv\n", uType, pRelocHC - pVM->patm.s.pPatchMemGC + pVM->patm.s.pPatchMemGC , pSource, pDest));
    7474
    7575    pRec = (PRELOCREC)MMR3HeapAllocZ(pVM, MM_TAG_PATM_PATCH, sizeof(*pRec));
  • trunk/src/VBox/VMM/PATM/VMMAll/CSAMAll.cpp

    r9220 r9344  
    5353 * @param   pvFault     Fault address
    5454 */
    55 CSAMDECL(int) CSAMExecFault(PVM pVM, RTGCPTR32 pvFault)
     55CSAMDECL(int) CSAMExecFault(PVM pVM, RTRCPTR pvFault)
    5656{
    5757    if(!CSAMIsEnabled(pVM))
     
    8080 * @param   pPage       GC page address
    8181 */
    82 CSAMDECL(bool) CSAMIsPageScanned(PVM pVM, RTGCPTR32 pPage)
     82CSAMDECL(bool) CSAMIsPageScanned(PVM pVM, RTRCPTR pPage)
    8383{
    8484    int pgdir, bit;
     
    108108 *
    109109 */
    110 CSAMDECL(int) CSAMMarkPage(PVM pVM, RTGCPTR32 pPage, bool fScanned)
     110CSAMDECL(int) CSAMMarkPage(PVM pVM, RTRCPTR pPage, bool fScanned)
    111111{
    112112    int pgdir, bit;
     
    115115#ifdef LOG_ENABLED
    116116    if (fScanned && !CSAMIsPageScanned(pVM, pPage))
    117        Log(("CSAMMarkPage %VGv\n", pPage));
     117       Log(("CSAMMarkPage %VRv\n", pPage));
    118118#endif
    119119
     
    141141        if (!pVM->csam.s.pPDHCBitmapGC[pgdir])
    142142        {
    143             Log(("MMHyperHC2GC failed for %VGv\n", pVM->csam.s.pPDBitmapGC[pgdir]));
     143            Log(("MMHyperHC2GC failed for %VRv\n", pVM->csam.s.pPDBitmapGC[pgdir]));
    144144            return rc;
    145145        }
     
    177177 * @param   GCPtr       GC pointer of page
    178178 */
    179 CSAMDECL(bool) CSAMDoesPageNeedScanning(PVM pVM, RTGCPTR32 GCPtr)
     179CSAMDECL(bool) CSAMDoesPageNeedScanning(PVM pVM, RTRCPTR GCPtr)
    180180{
    181181    if(!CSAMIsEnabled(pVM))
     
    200200 * @param   GCPtr       GC pointer of page
    201201 */
    202 CSAMDECL(void) CSAMMarkPossibleCodePage(PVM pVM, RTGCPTR32 GCPtr)
     202CSAMDECL(void) CSAMMarkPossibleCodePage(PVM pVM, RTRCPTR GCPtr)
    203203{
    204204    if (pVM->csam.s.cPossibleCodePages < RT_ELEMENTS(pVM->csam.s.pvPossibleCodePage))
    205205    {
    206         pVM->csam.s.pvPossibleCodePage[pVM->csam.s.cPossibleCodePages++] = (RTGCPTR32)GCPtr;
     206        pVM->csam.s.pvPossibleCodePage[pVM->csam.s.cPossibleCodePages++] = (RTRCPTR)GCPtr;
    207207        VM_FF_SET(pVM, VM_FF_CSAM_PENDING_ACTION);
    208208    }
     
    247247 * @param   GCPtr       GC pointer of page table entry
    248248 */
    249 CSAMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTGCPTR32 GCPtr)
     249CSAMDECL(bool) CSAMIsKnownDangerousInstr(PVM pVM, RTRCPTR GCPtr)
    250250{
    251251    for (uint32_t i=0;i<pVM->csam.s.cDangerousInstr;i++)
    252252    {
    253         if (pVM->csam.s.aDangerousInstr[i] == (RTGCPTR32)GCPtr)
     253        if (pVM->csam.s.aDangerousInstr[i] == (RTRCPTR)GCPtr)
    254254        {
    255255            STAM_COUNTER_INC(&pVM->csam.s.StatInstrCacheHit);
     
    258258    }
    259259    /* Record that we're about to process it in ring 3. */
    260     pVM->csam.s.aDangerousInstr[pVM->csam.s.iDangerousInstr++] = (RTGCPTR32)GCPtr;
     260    pVM->csam.s.aDangerousInstr[pVM->csam.s.iDangerousInstr++] = (RTRCPTR)GCPtr;
    261261    pVM->csam.s.iDangerousInstr &= CSAM_MAX_DANGR_INSTR_MASK;
    262262
  • trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp

    r9228 r9344  
    6060    register uint32_t efl = pCtxCore->eflags.u32;
    6161    CTXSUFF(pVM->patm.s.pGCState)->uVMFlags = efl & PATM_VIRTUAL_FLAGS_MASK;
    62     AssertMsg((efl & X86_EFL_IF) || PATMShouldUseRawMode(pVM, (RTRCPTR)pCtxCore->eip), ("X86_EFL_IF is clear and PATM is disabled! (eip=%VGv eflags=%08x fPATM=%d pPATMGC=%VGv-%VGv\n", pCtxCore->eip, pCtxCore->eflags.u32, PATMIsEnabled(pVM), pVM->patm.s.pPatchMemGC, pVM->patm.s.pPatchMemGC + pVM->patm.s.cbPatchMem));
    63 
    64     AssertReleaseMsg(CTXSUFF(pVM->patm.s.pGCState)->fPIF || fPatchCode, ("fPIF=%d eip=%VGv\n", CTXSUFF(pVM->patm.s.pGCState)->fPIF, pCtxCore->eip));
     62    AssertMsg((efl & X86_EFL_IF) || PATMShouldUseRawMode(pVM, (RTRCPTR)pCtxCore->eip), ("X86_EFL_IF is clear and PATM is disabled! (eip=%VRv eflags=%08x fPATM=%d pPATMGC=%VGv-%VGv\n", pCtxCore->eip, pCtxCore->eflags.u32, PATMIsEnabled(pVM), pVM->patm.s.pPatchMemGC, pVM->patm.s.pPatchMemGC + pVM->patm.s.cbPatchMem));
     63
     64    AssertReleaseMsg(CTXSUFF(pVM->patm.s.pGCState)->fPIF || fPatchCode, ("fPIF=%d eip=%VRv\n", CTXSUFF(pVM->patm.s.pGCState)->fPIF, pCtxCore->eip));
    6565
    6666    efl &= ~PATM_VIRTUAL_FLAGS_MASK;
     
    8686            pVM->patm.s.pfnSysEnterGC = 0;
    8787
    88             Log2(("PATMRawEnter: installing sysenter patch for %VGv\n", pCtx->SysEnter.eip));
     88            Log2(("PATMRawEnter: installing sysenter patch for %VRv\n", pCtx->SysEnter.eip));
    8989            pVM->patm.s.pfnSysEnterPatchGC = PATMR3QueryPatchGCPtr(pVM, pCtx->SysEnter.eip);
    9090            if (pVM->patm.s.pfnSysEnterPatchGC == 0)
     
    135135    CTXSUFF(pVM->patm.s.pGCState)->uVMFlags = X86_EFL_IF;
    136136
    137     AssertReleaseMsg((efl & X86_EFL_IF) || fPatchCode || rawRC == VINF_PATM_PENDING_IRQ_AFTER_IRET || VBOX_FAILURE(rawRC), ("Inconsistent state at %VGv rc=%Vrc\n", pCtxCore->eip, rawRC));
    138     AssertReleaseMsg(CTXSUFF(pVM->patm.s.pGCState)->fPIF || fPatchCode || VBOX_FAILURE(rawRC), ("fPIF=%d eip=%VGv rc=%Vrc\n", CTXSUFF(pVM->patm.s.pGCState)->fPIF, pCtxCore->eip, rawRC));
     137    AssertReleaseMsg((efl & X86_EFL_IF) || fPatchCode || rawRC == VINF_PATM_PENDING_IRQ_AFTER_IRET || VBOX_FAILURE(rawRC), ("Inconsistent state at %VRv rc=%Vrc\n", pCtxCore->eip, rawRC));
     138    AssertReleaseMsg(CTXSUFF(pVM->patm.s.pGCState)->fPIF || fPatchCode || VBOX_FAILURE(rawRC), ("fPIF=%d eip=%VRv rc=%Vrc\n", CTXSUFF(pVM->patm.s.pGCState)->fPIF, pCtxCore->eip, rawRC));
    139139
    140140#ifdef IN_RING3
     
    165165                {
    166166                    Assert(!PATMFindActivePatchByEntrypoint(pVM, pOrgInstrGC));
    167                     Log(("Switchback from %VGv to %VGv (Psp=%x)\n", pCtxCore->eip, pOrgInstrGC, CTXSUFF(pVM->patm.s.pGCState)->Psp));
     167                    Log(("Switchback from %VRv to %VRv (Psp=%x)\n", pCtxCore->eip, pOrgInstrGC, CTXSUFF(pVM->patm.s.pGCState)->Psp));
    168168                    STAM_COUNTER_INC(&pVM->patm.s.StatSwitchBack);
    169169                    pCtxCore->eip = pOrgInstrGC;
     
    174174                else
    175175                {
    176                     LogFlow(("Patch address %VGv can't be interrupted (state=%d)!\n",  pCtxCore->eip, enmState));
     176                    LogFlow(("Patch address %VRv can't be interrupted (state=%d)!\n",  pCtxCore->eip, enmState));
    177177                    STAM_COUNTER_INC(&pVM->patm.s.StatSwitchBackFail);
    178178                }
     
    180180            else
    181181            {
    182                 LogFlow(("Patch address %VGv can't be interrupted (fPIF=%d)!\n",  pCtxCore->eip, CTXSUFF(pVM->patm.s.pGCState)->fPIF));
     182                LogFlow(("Patch address %VRv can't be interrupted (fPIF=%d)!\n",  pCtxCore->eip, CTXSUFF(pVM->patm.s.pGCState)->fPIF));
    183183                STAM_COUNTER_INC(&pVM->patm.s.StatSwitchBackFail);
    184184            }
     
    405405            goto end;
    406406
    407         Log2(("PATMSysCall: sysenter from %VGv to %VGv\n", pRegFrame->eip, pVM->patm.s.pfnSysEnterPatchGC));
     407        Log2(("PATMSysCall: sysenter from %VRv to %VRv\n", pRegFrame->eip, pVM->patm.s.pfnSysEnterPatchGC));
    408408        /** @todo the base and limit are forced to 0 & 4G-1 resp. We assume the selector is wide open here. */
    409409        /** @note The Intel manual suggests that the OS is responsible for this. */
     
    431431            goto end;
    432432
    433         Log2(("PATMSysCall: sysexit from %VGv to %VGv\n", pRegFrame->eip, pRegFrame->edx));
     433        Log2(("PATMSysCall: sysexit from %VRv to %VRv\n", pRegFrame->eip, pRegFrame->edx));
    434434
    435435        pRegFrame->cs          = ((pCtx->SysEnter.cs + 16) & ~X86_SEL_RPL) | 3;
     
    466466 * @param   pRelBranchPatch     Relative duplicated function address
    467467 */
    468 PATMDECL(int) PATMAddBranchToLookupCache(PVM pVM, RTRCPTR pJumpTableGC, RTRCPTR pBranchTarget, RTGCUINTPTR pRelBranchPatch)
     468PATMDECL(int) PATMAddBranchToLookupCache(PVM pVM, RTRCPTR pJumpTableGC, RTRCPTR pBranchTarget, RTRCUINTPTR pRelBranchPatch)
    469469{
    470470    PPATCHJUMPTABLE pJumpTable;
    471471
    472     Log(("PATMAddBranchToLookupCache: Adding (%VGv->%VGv (%VGv)) to table %VGv\n", pBranchTarget, pRelBranchPatch + pVM->patm.s.pPatchMemGC, pRelBranchPatch, pJumpTableGC));
     472    Log(("PATMAddBranchToLookupCache: Adding (%VRv->%VRv (%VRv)) to table %VRv\n", pBranchTarget, pRelBranchPatch + pVM->patm.s.pPatchMemGC, pRelBranchPatch, pJumpTableGC));
    473473
    474474    AssertReturn(PATMIsPatchGCAddr(pVM, pJumpTableGC), VERR_INVALID_PARAMETER);
     
    523523
    524524
     525#if defined(VBOX_WITH_STATISTICS) || defined(LOG_ENABLED)
    525526/**
    526527 * Return the name of the patched instruction
     
    660661    return pszInstr;
    661662}
     663#endif
  • trunk/src/VBox/VMM/VMMAll/PGMAllBth.h

    r9341 r9344  
    601601                PGMGstGetPage(pVM, pvFault, &fPageGst, &GCPhys);
    602602                Log(("Page out of sync: %VGv eip=%08x PdeSrc.n.u1User=%d fPageGst=%08llx GCPhys=%VGp scan=%d\n",
    603                      pvFault, pRegFrame->eip, PdeSrc.n.u1User, fPageGst, GCPhys, CSAMDoesPageNeedScanning(pVM, (RTGCPTR)pRegFrame->eip)));
     603                     pvFault, pRegFrame->eip, PdeSrc.n.u1User, fPageGst, GCPhys, CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip)));
    604604#  endif /* LOG_ENABLED */
    605605
     
    617617#   ifdef CSAM_DETECT_NEW_CODE_PAGES
    618618                            ||  (   !PATMIsPatchGCAddr(pVM, (RTGCPTR)pRegFrame->eip)
    619                                  && CSAMDoesPageNeedScanning(pVM, (RTGCPTR)pRegFrame->eip))   /* any new code we encounter here */
     619                                 && CSAMDoesPageNeedScanning(pVM, (RTRCPTR)pRegFrame->eip))   /* any new code we encounter here */
    620620#   endif /* CSAM_DETECT_NEW_CODE_PAGES */
    621621                           )
    622622                        {
    623623                            LogFlow(("CSAMExecFault %VGv\n", pRegFrame->eip));
    624                             rc = CSAMExecFault(pVM, (RTGCPTR)pRegFrame->eip);
     624                            rc = CSAMExecFault(pVM, (RTRCPTR)pRegFrame->eip);
    625625                            if (rc != VINF_SUCCESS)
    626626                            {
     
    678678                        /** @todo not correct for pages that contain both code and data!! */
    679679                        Log2(("CSAMMarkPage %VGv; scanned=%d\n", pvFault, true));
    680                         CSAMMarkPage(pVM, pvFault, true);
     680                        CSAMMarkPage(pVM, (RTRCPTR)pvFault, true);
    681681                    }
    682682                }
     
    15311531                                if (    ((PdeSrc.u & PteSrc.u) & (X86_PTE_RW | X86_PTE_US))
    15321532                                    ||  iPTDst == ((GCPtrPage >> SHW_PT_SHIFT) & SHW_PT_MASK)   /* always sync GCPtrPage */
    1533                                     ||  !CSAMDoesPageNeedScanning(pVM, (RTGCPTR)GCPtrCurPage)
     1533                                    ||  !CSAMDoesPageNeedScanning(pVM, (RTRCPTR)GCPtrCurPage)
    15341534                                    ||  (   (pPage = pgmPhysGetPage(&pVM->pgm.s, PteSrc.u & GST_PTE_PG_MASK))
    15351535                                         && PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     
    22792279                        PPGMPAGE pPage;
    22802280                        if (    ((PdeSrc.u & pPTSrc->a[iPTSrc].u) & (X86_PTE_RW | X86_PTE_US))
    2281                             ||  !CSAMDoesPageNeedScanning(pVM, (RTGCPTR)((iPDSrc << GST_PD_SHIFT) | (iPTSrc << PAGE_SHIFT)))
     2281                            ||  !CSAMDoesPageNeedScanning(pVM, (RTRCPTR)((iPDSrc << GST_PD_SHIFT) | (iPTSrc << PAGE_SHIFT)))
    22822282                            ||  (   (pPage = pgmPhysGetPage(&pVM->pgm.s, PteSrc.u & GST_PTE_PG_MASK))
    22832283                                 &&  PGM_PAGE_HAS_ACTIVE_HANDLERS(pPage))
     
    23952395                         */
    23962396                        else if (    !PdeSrc.n.u1User
    2397                                  &&  CSAMDoesPageNeedScanning(pVM, (RTGCPTR)(GCPtr | (iPTDst << SHW_PT_SHIFT))))
     2397                                 &&  CSAMDoesPageNeedScanning(pVM, (RTRCPTR)(GCPtr | (iPTDst << SHW_PT_SHIFT))))
    23982398                            PteDst.u = 0;
    23992399# endif
     
    26142614        /** @todo not correct for pages that contain both code and data!! */
    26152615        Log(("CSAMMarkPage %VGv; scanned=%d\n", GCPtrPage, true));
    2616         CSAMMarkPage(pVM, (RTGCPTR)GCPtrPage, true);
     2616        CSAMMarkPage(pVM, (RTRCPTR)GCPtrPage, true);
    26172617    }
    26182618# endif
  • trunk/src/VBox/VMM/VMMGC/TRPMGCHandlers.cpp

    r9300 r9344  
    617617            /* We can safely emulate control/debug register move instructions in patched code. */
    618618            if (    !PATMIsPatchGCAddr(pVM, (RTRCPTR)PC)
    619                 &&  !CSAMIsKnownDangerousInstr(pVM, PC))
     619                &&  !CSAMIsKnownDangerousInstr(pVM, (RTRCPTR)PC))
    620620                break;
    621621        case OP_INVLPG:
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