VirtualBox

Changeset 1792 in vbox


Ignore:
Timestamp:
Mar 29, 2007 11:47:32 AM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
19970
Message:

Proper interrupt redirection bitmap sync

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

Legend:

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

    r1625 r1792  
    44804480            /* Increase by instruction size. */
    44814481            uint32_t size = patmGetInstrSize(pVM, pPatch, pPatchPage->pHighestAddrGC);
    4482             Assert(size);
     4482////            Assert(size);
    44834483            pPatchPage->pHighestAddrGC += size;
    44844484        }
  • trunk/src/VBox/VMM/PATM/PATMA.asm

    r1595 r1792  
    4141; Noisy, but useful for debugging certain problems
    4242;;;%define PATM_LOG_PATCHINSTR
    43 ;;%define PATM_LOG_PATCHIRET
     43%define PATM_LOG_PATCHIRET
    4444%endif
    4545
  • trunk/src/VBox/VMM/PATM/VMMGC/PATMGC.cpp

    r1438 r1792  
    107107#ifdef LOG_ENABLED
    108108    if (pPatchPage)
    109         Log(("PATMIsWriteToPatchPage: Found page %VGv for write to %VGv %d bytes\n", pPatchPage->Core.Key, GCPtr, cbWrite));
     109        Log2(("PATMIsWriteToPatchPage: Found page %VGv for write to %VGv %d bytes\n", pPatchPage->Core.Key, GCPtr, cbWrite));
    110110#endif
    111111
     
    296296                    /* We are no longer executing PATM code; set PIF again. */
    297297                    pVM->patm.s.CTXSUFF(pGCState)->fPIF = 1;
     298
     299#ifndef VBOX_RAW_V86
     300                    return VINF_EM_RESCHEDULE;
     301#else
    298302                    CPUMGCCallV86Code(pRegFrame);
     303#endif
    299304                    /* does not return */
    300305                }
     
    407412                                Log(("PATMGC: GATE->VM stack frame: DS=%04X ES=%04X FS=%04X GS=%04X\n", selDS, selES, selFS, selGS));
    408413                            }
     414if (eip == 0x690)
     415{
     416   pRegFrame->eip += PATM_ILLEGAL_INSTR_SIZE;
     417   return VINF_EM_RESCHEDULE;
     418}
    409419                        }
    410420                        else
  • trunk/src/VBox/VMM/SELM.cpp

    r1645 r1792  
    15201520                   
    15211521                    /** @todo not sure how the partial case is handled; probably not allowed */
    1522                     if (offRedirBitmap + sizeof(tss.IntRedirBitmap) <= cbTss)
     1522                    if (offRedirBitmap + sizeof(tss.IntRedirBitmap) <= pVM->selm.s.cbGuestTss)
    15231523                    {
    15241524                        rc = PGMPhysReadGCPtr(pVM, &pVM->selm.s.Tss.IntRedirBitmap, GCPtrTss + offRedirBitmap, sizeof(tss.IntRedirBitmap));
    15251525                        AssertRC(rc);
    1526                         Log2(("Redirection bitmap:\n"));
    1527                         Log2(("%.*Vhxd\n", sizeof(tss.IntRedirBitmap), &pVM->selm.s.Tss.IntRedirBitmap));
     1526                        Log(("Redirection bitmap:\n"));
     1527                        Log(("%.*Vhxd\n", sizeof(tss.IntRedirBitmap), &pVM->selm.s.Tss.IntRedirBitmap));
    15281528                    }
    15291529                }
  • trunk/src/VBox/VMM/TRPM.cpp

    r1446 r1792  
    11781178                pVM->trpm.s.aGuestTrapHandler[iTrap] = pHandler;
    11791179
    1180                 Log(("Setting trap handler %x to %08X (direct)\n", iTrap, pHandler));
     1180                Log(("Setting trap handler %d to %08X\n", iTrap, pHandler));
    11811181                return VINF_SUCCESS;
    11821182            }
     
    11931193         * Save handler which can be used for a trampoline call inside the GC
    11941194         */
    1195         Log(("Setting trap handler %x to %08X\n", iTrap, pHandler));
     1195        Log(("Setting trap handler %d to %08X\n", iTrap, pHandler));
    11961196        pVM->trpm.s.aGuestTrapHandler[iTrap] = pHandler;
    11971197        return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp

    r1359 r1792  
    255255#else
    256256            int rc2 = CTXALLMID(VMM, CallHost)(pVM, VMMCALLHOST_PGM_RAM_GROW_RANGE, GCPhys);
     257AssertRC(rc2);
    257258#endif
    258259            if (rc2 != VINF_SUCCESS)
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r1773 r1792  
    13241324
    13251325#ifdef VBOX_STRICT
     1326            case X86_XCPT_UD:   /* Unknown opcode exception. */
    13261327            case X86_XCPT_GP:   /* General protection failure exception.*/
    1327             case X86_XCPT_UD:   /* Unknown opcode exception. */
    13281328            case X86_XCPT_DE:   /* Debug exception. */
    13291329            case X86_XCPT_SS:   /* Stack segment exception. */
     
    13491349                }
    13501350
    1351                 Log(("Trap %x at %VGv\n", vector, pCtx->eip));
     1351                Log(("Trap %x at %04x:%VGv\n", vector, pCtx->cs, pCtx->eip));
    13521352                rc = VMXR0InjectEvent(pVM, pCtx, VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(intInfo), cbInstr, errCode);
    13531353                AssertRC(rc);
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r1645 r1792  
    6161
    6262
    63 //#define DEBUG_NO_RING0_ASSERTIONS
     63#define DEBUG_NO_RING0_ASSERTIONS
    6464#ifdef DEBUG_NO_RING0_ASSERTIONS
    6565static PVM g_pVMAssert = 0;
     
    171171        LogCom(("VMMR0Init: after %p dereg2\n", RTLogDefaultInstance()));
    172172
    173         RTLogLoggerEx(&pR0Logger->Logger, 0, ~0U, "hello ring-0 logger (RTLogLoggerEx)\n");
    174173        LogCom(("VMMR0Init: RTLogLoggerEx returned fine offScratch=%d\n", pR0Logger->Logger.offScratch));
    175174#endif
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