VirtualBox

Changeset 19015 in vbox for trunk/src/recompiler_new


Ignore:
Timestamp:
Apr 20, 2009 7:54:29 AM (16 years ago)
Author:
vboxsync
Message:

Split up TRPM. (guest SMP)

Location:
trunk/src/recompiler_new
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler_new/VBoxREMWrapper.cpp

    r18992 r19015  
    910910static const REMPARMDESC g_aArgsTRPMAssertTrap[] =
    911911{
    912     { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     912    { REMPARMDESC_FLAGS_INT,        sizeof(PVMCPU), NULL },
    913913    { REMPARMDESC_FLAGS_INT,        sizeof(uint8_t), NULL },
    914914    { REMPARMDESC_FLAGS_INT,        sizeof(TRPMEVENT), NULL }
     
    916916static const REMPARMDESC g_aArgsTRPMQueryTrap[] =
    917917{
    918     { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     918    { REMPARMDESC_FLAGS_INT,        sizeof(PVMCPU), NULL },
    919919    { REMPARMDESC_FLAGS_INT,        sizeof(uint8_t *), NULL },
    920920    { REMPARMDESC_FLAGS_INT,        sizeof(TRPMEVENT *), NULL }
     
    922922static const REMPARMDESC g_aArgsTRPMSetErrorCode[] =
    923923{
    924     { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     924    { REMPARMDESC_FLAGS_INT,        sizeof(PVMCPU), NULL },
    925925    { REMPARMDESC_FLAGS_GCPTR,      sizeof(RTGCUINT), NULL }
    926926};
    927927static const REMPARMDESC g_aArgsTRPMSetFaultAddress[] =
    928928{
    929     { REMPARMDESC_FLAGS_INT,        sizeof(PVM), NULL },
     929    { REMPARMDESC_FLAGS_INT,        sizeof(PVMCPU), NULL },
    930930    { REMPARMDESC_FLAGS_GCPTR,      sizeof(RTGCUINT), NULL }
    931931};
  • trunk/src/recompiler_new/VBoxRecompiler.c

    r18992 r19015  
    21152115     */
    21162116    pVM->rem.s.Env.exception_index = -1; /** @todo this won't work :/ */
    2117     rc = TRPMQueryTrap(pVM, &u8TrapNo, &enmType);
     2117    rc = TRPMQueryTrap(pVCpu, &u8TrapNo, &enmType);
    21182118    if (RT_SUCCESS(rc))
    21192119    {
     
    21592159        {
    21602160            case 0x0e:
    2161                 pVM->rem.s.Env.cr[2] = TRPMGetFaultAddress(pVM);
     2161                pVM->rem.s.Env.cr[2] = TRPMGetFaultAddress(pVCpu);
    21622162                /* fallthru */
    21632163            case 0x0a: case 0x0b: case 0x0c: case 0x0d:
    2164                 pVM->rem.s.Env.error_code = TRPMGetErrorCode(pVM);
     2164                pVM->rem.s.Env.error_code = TRPMGetErrorCode(pVCpu);
    21652165                break;
    21662166
     
    21742174         * We can now reset the active trap since the recompiler is gonna have a go at it.
    21752175         */
    2176         rc = TRPMResetTrap(pVM);
     2176        rc = TRPMResetTrap(pVCpu);
    21772177        AssertRC(rc);
    21782178        Log2(("REMR3State: trap=%02x errcd=%RGv cr2=%RGv nexteip=%RGv%s\n", pVM->rem.s.Env.exception_index, (RTGCPTR)pVM->rem.s.Env.error_code,
     
    24252425
    24262426        Log(("REMR3StateBack: Pending trap %x %d\n", pVM->rem.s.Env.exception_index, pVM->rem.s.Env.exception_is_int));
    2427         rc = TRPMAssertTrap(pVM, pVM->rem.s.Env.exception_index, (pVM->rem.s.Env.exception_is_int) ? TRPM_SOFTWARE_INT : TRPM_HARDWARE_INT);
     2427        rc = TRPMAssertTrap(pVCpu, pVM->rem.s.Env.exception_index, (pVM->rem.s.Env.exception_is_int) ? TRPM_SOFTWARE_INT : TRPM_HARDWARE_INT);
    24282428        AssertRC(rc);
    24292429        switch (pVM->rem.s.Env.exception_index)
    24302430        {
    24312431            case 0x0e:
    2432                 TRPMSetFaultAddress(pVM, pCtx->cr2);
     2432                TRPMSetFaultAddress(pVCpu, pCtx->cr2);
    24332433                /* fallthru */
    24342434            case 0x0a: case 0x0b: case 0x0c: case 0x0d:
    24352435            case 0x11: case 0x08: /* 0 */
    2436                 TRPMSetErrorCode(pVM, pVM->rem.s.Env.error_code);
     2436                TRPMSetErrorCode(pVCpu, pVM->rem.s.Env.error_code);
    24372437                break;
    24382438        }
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