VirtualBox

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


Ignore:
Timestamp:
Dec 4, 2012 6:30:44 PM (12 years ago)
Author:
vboxsync
Message:

VMM: hungarian again.

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp

    r44034 r44035  
    533533
    534534    /* Set pending event state. */
    535     pVCpu->hm.s.Event.uIntrInfo  = pEvent->au64[0];
     535    pVCpu->hm.s.Event.u64IntrInfo  = pEvent->au64[0];
    536536    pVCpu->hm.s.Event.fPending = true;
    537537}
     
    593593        SVM_EVENT Event;
    594594
    595         Log(("Reinjecting event %08x %08x at %RGv\n", pVCpu->hm.s.Event.uIntrInfo, pVCpu->hm.s.Event.uErrCode,
     595        Log(("Reinjecting event %08x %08x at %RGv\n", pVCpu->hm.s.Event.u64IntrInfo, pVCpu->hm.s.Event.u32ErrCode,
    596596             (RTGCPTR)pCtx->rip));
    597597        STAM_COUNTER_INC(&pVCpu->hm.s.StatIntReinject);
    598         Event.au64[0] = pVCpu->hm.s.Event.uIntrInfo;
     598        Event.au64[0] = pVCpu->hm.s.Event.u64IntrInfo;
    599599        hmR0SvmInjectEvent(pVCpu, pvVMCB, pCtx, &Event);
    600600
     
    17921792
    17931793    /* Check if an injected event was interrupted prematurely. */
    1794     pVCpu->hm.s.Event.uIntrInfo = pvVMCB->ctrl.ExitIntInfo.au64[0];
     1794    pVCpu->hm.s.Event.u64IntrInfo = pvVMCB->ctrl.ExitIntInfo.au64[0];
    17951795    if (    pvVMCB->ctrl.ExitIntInfo.n.u1Valid
    17961796            /* we don't care about 'int xx' as the instruction will be restarted. */
    17971797        &&  pvVMCB->ctrl.ExitIntInfo.n.u3Type != SVM_EVENT_SOFTWARE_INT)
    17981798    {
    1799         Log(("Pending inject %RX64 at %RGv exit=%08x\n", pVCpu->hm.s.Event.uIntrInfo, (RTGCPTR)pCtx->rip, exitCode));
     1799        Log(("Pending inject %RX64 at %RGv exit=%08x\n", pVCpu->hm.s.Event.u64IntrInfo, (RTGCPTR)pCtx->rip, exitCode));
    18001800
    18011801#ifdef LOG_ENABLED
    18021802        SVM_EVENT Event;
    1803         Event.au64[0] = pVCpu->hm.s.Event.uIntrInfo;
     1803        Event.au64[0] = pVCpu->hm.s.Event.u64IntrInfo;
    18041804
    18051805        if (    exitCode == SVM_EXIT_EXCEPTION_E
     
    18131813        /* Error code present? (redundant) */
    18141814        if (pvVMCB->ctrl.ExitIntInfo.n.u1ErrorCodeValid)
    1815             pVCpu->hm.s.Event.uErrCode  = pvVMCB->ctrl.ExitIntInfo.n.u32ErrorCode;
     1815            pVCpu->hm.s.Event.u32ErrCode  = pvVMCB->ctrl.ExitIntInfo.n.u32ErrorCode;
    18161816        else
    1817             pVCpu->hm.s.Event.uErrCode  = 0;
     1817            pVCpu->hm.s.Event.u32ErrCode  = 0;
    18181818    }
    18191819#ifdef VBOX_WITH_STATISTICS
     
    27392739        {
    27402740            SVM_EVENT Event;
    2741             Event.au64[0] = pVCpu->hm.s.Event.uIntrInfo;
     2741            Event.au64[0] = pVCpu->hm.s.Event.u64IntrInfo;
    27422742
    27432743            /* Caused by an injected interrupt. */
  • trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp

    r44033 r44035  
    10001000    if (pVCpu->hm.s.Event.fPending)
    10011001    {
    1002         Log(("CPU%d: Reinjecting event %RX64 %08x at %RGv cr2=%RX64\n", pVCpu->idCpu, pVCpu->hm.s.Event.uIntrInfo,
    1003              pVCpu->hm.s.Event.uErrCode, (RTGCPTR)pCtx->rip, pCtx->cr2));
     1002        Log(("CPU%d: Reinjecting event %RX64 %08x at %RGv cr2=%RX64\n", pVCpu->idCpu, pVCpu->hm.s.Event.u64IntrInfo,
     1003             pVCpu->hm.s.Event.u32ErrCode, (RTGCPTR)pCtx->rip, pCtx->cr2));
    10041004        STAM_COUNTER_INC(&pVCpu->hm.s.StatIntReinject);
    1005         rc = hmR0VmxInjectEvent(pVM, pVCpu, pCtx, pVCpu->hm.s.Event.uIntrInfo, 0, pVCpu->hm.s.Event.uErrCode);
     1005        rc = hmR0VmxInjectEvent(pVM, pVCpu, pCtx, pVCpu->hm.s.Event.u64IntrInfo, 0, pVCpu->hm.s.Event.u32ErrCode);
    10061006        AssertRC(rc);
    10071007
     
    11711171         */
    11721172        pVCpu->hm.s.Event.fPending = false;
    1173         switch (VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.uIntrInfo))
     1173        switch (VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.u64IntrInfo))
    11741174        {
    11751175        case VMX_EXIT_INTERRUPTION_INFO_TYPE_EXT:
     
    11891189            AssertFailed();
    11901190        }
    1191         TRPMAssertTrap(pVCpu, VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hm.s.Event.uIntrInfo), enmTrapType);
    1192         if (VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.uIntrInfo))
    1193             TRPMSetErrorCode(pVCpu, pVCpu->hm.s.Event.uErrCode);
     1191        TRPMAssertTrap(pVCpu, VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hm.s.Event.u64IntrInfo), enmTrapType);
     1192        if (VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.u64IntrInfo))
     1193            TRPMSetErrorCode(pVCpu, pVCpu->hm.s.Event.u32ErrCode);
    11941194        //@todo: Is there any situation where we need to call TRPMSetFaultAddress()?
    11951195    }
     
    33323332    rc2 = VMXReadCachedVmcs(VMX_VMCS32_RO_IDT_INFO,            &val);
    33333333    AssertRC(rc2);
    3334     pVCpu->hm.s.Event.uIntrInfo = VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(val);
    3335     if (    VMX_EXIT_INTERRUPTION_INFO_VALID(pVCpu->hm.s.Event.uIntrInfo)
     3334    pVCpu->hm.s.Event.u64IntrInfo = VMX_VMCS_CTRL_ENTRY_IRQ_INFO_FROM_EXIT_INT_INFO(val);
     3335    if (    VMX_EXIT_INTERRUPTION_INFO_VALID(pVCpu->hm.s.Event.u64IntrInfo)
    33363336        /* Ignore 'int xx' as they'll be restarted anyway. */
    3337         &&  VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.uIntrInfo) != VMX_EXIT_INTERRUPTION_INFO_TYPE_SW
     3337        &&  VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.u64IntrInfo) != VMX_EXIT_INTERRUPTION_INFO_TYPE_SW
    33383338        /* Ignore software exceptions (such as int3) as they'll reoccur when we restart the instruction anyway. */
    3339         &&  VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.uIntrInfo) != VMX_EXIT_INTERRUPTION_INFO_TYPE_SWEXCPT)
     3339        &&  VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.u64IntrInfo) != VMX_EXIT_INTERRUPTION_INFO_TYPE_SWEXCPT)
    33403340    {
    33413341        Assert(!pVCpu->hm.s.Event.fPending);
    33423342        pVCpu->hm.s.Event.fPending = true;
    33433343        /* Error code present? */
    3344         if (VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.uIntrInfo))
     3344        if (VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.u64IntrInfo))
    33453345        {
    33463346            rc2 = VMXReadCachedVmcs(VMX_VMCS32_RO_IDT_ERRCODE, &val);
    33473347            AssertRC(rc2);
    3348             pVCpu->hm.s.Event.uErrCode  = val;
     3348            pVCpu->hm.s.Event.u32ErrCode  = val;
    33493349            Log(("Pending inject %RX64 at %RGv exit=%08x intInfo=%08x exitQualification=%RGv pending error=%RX64\n",
    3350                  pVCpu->hm.s.Event.uIntrInfo, (RTGCPTR)pCtx->rip, exitReason, intInfo, exitQualification, val));
     3350                 pVCpu->hm.s.Event.u64IntrInfo, (RTGCPTR)pCtx->rip, exitReason, intInfo, exitQualification, val));
    33513351        }
    33523352        else
    33533353        {
    3354             Log(("Pending inject %RX64 at %RGv exit=%08x intInfo=%08x exitQualification=%RGv\n", pVCpu->hm.s.Event.uIntrInfo,
     3354            Log(("Pending inject %RX64 at %RGv exit=%08x intInfo=%08x exitQualification=%RGv\n", pVCpu->hm.s.Event.u64IntrInfo,
    33553355                 (RTGCPTR)pCtx->rip, exitReason, intInfo, exitQualification));
    3356             pVCpu->hm.s.Event.uErrCode  = 0;
     3356            pVCpu->hm.s.Event.u32ErrCode  = 0;
    33573357        }
    33583358    }
    33593359#ifdef VBOX_STRICT
    3360     else if (   VMX_EXIT_INTERRUPTION_INFO_VALID(pVCpu->hm.s.Event.uIntrInfo)
     3360    else if (   VMX_EXIT_INTERRUPTION_INFO_VALID(pVCpu->hm.s.Event.u64IntrInfo)
    33613361                /* Ignore software exceptions (such as int3) as they're reoccur when we restart the instruction anyway. */
    3362              && VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.uIntrInfo) == VMX_EXIT_INTERRUPTION_INFO_TYPE_SWEXCPT)
     3362             && VMX_EXIT_INTERRUPTION_INFO_TYPE(pVCpu->hm.s.Event.u64IntrInfo) == VMX_EXIT_INTERRUPTION_INFO_TYPE_SWEXCPT)
    33633363    {
    33643364        Log(("Ignore pending inject %RX64 at %RGv exit=%08x intInfo=%08x exitQualification=%RGv\n",
    3365              pVCpu->hm.s.Event.uIntrInfo, (RTGCPTR)pCtx->rip, exitReason, intInfo, exitQualification));
     3365             pVCpu->hm.s.Event.u64IntrInfo, (RTGCPTR)pCtx->rip, exitReason, intInfo, exitQualification));
    33663366    }
    33673367
     
    47114711            pVCpu->hm.s.Event.fPending = false;
    47124712
    4713             Log(("VMX_EXIT_TASK_SWITCH: reassert trap %d\n", VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hm.s.Event.uIntrInfo)));
    4714             Assert(!VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.uIntrInfo));
     4713            Log(("VMX_EXIT_TASK_SWITCH: reassert trap %d\n", VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hm.s.Event.u64IntrInfo)));
     4714            Assert(!VMX_EXIT_INTERRUPTION_INFO_ERROR_CODE_IS_VALID(pVCpu->hm.s.Event.u64IntrInfo));
    47154715            //@todo: Why do we assume this had to be a hardware interrupt? What about software interrupts or exceptions?
    4716             rc2 = TRPMAssertTrap(pVCpu, VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hm.s.Event.uIntrInfo), TRPM_HARDWARE_INT);
     4716            rc2 = TRPMAssertTrap(pVCpu, VMX_EXIT_INTERRUPTION_INFO_VECTOR(pVCpu->hm.s.Event.u64IntrInfo), TRPM_HARDWARE_INT);
    47174717            AssertRC(rc2);
    47184718        }
  • trunk/src/VBox/VMM/VMMR3/HM.cpp

    r44033 r44035  
    27642764        rc = SSMR3PutU32(pSSM, pVM->aCpus[i].hm.s.Event.fPending);
    27652765        AssertRCReturn(rc, rc);
    2766         rc = SSMR3PutU32(pSSM, pVM->aCpus[i].hm.s.Event.uErrCode);
     2766        rc = SSMR3PutU32(pSSM, pVM->aCpus[i].hm.s.Event.u32ErrCode);
    27672767        AssertRCReturn(rc, rc);
    2768         rc = SSMR3PutU64(pSSM, pVM->aCpus[i].hm.s.Event.uIntrInfo);
     2768        rc = SSMR3PutU64(pSSM, pVM->aCpus[i].hm.s.Event.u64IntrInfo);
    27692769        AssertRCReturn(rc, rc);
    27702770
     
    28582858        rc = SSMR3GetU32(pSSM, &pVM->aCpus[i].hm.s.Event.fPending);
    28592859        AssertRCReturn(rc, rc);
    2860         rc = SSMR3GetU32(pSSM, &pVM->aCpus[i].hm.s.Event.uErrCode);
     2860        rc = SSMR3GetU32(pSSM, &pVM->aCpus[i].hm.s.Event.u32ErrCode);
    28612861        AssertRCReturn(rc, rc);
    2862         rc = SSMR3GetU64(pSSM, &pVM->aCpus[i].hm.s.Event.uIntrInfo);
     2862        rc = SSMR3GetU64(pSSM, &pVM->aCpus[i].hm.s.Event.u64IntrInfo);
    28632863        AssertRCReturn(rc, rc);
    28642864
  • trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp

    r44033 r44035  
    402402    CHECK_MEMBER_ALIGNMENT(HMCPU, vmx.HCPhysVMCS, sizeof(RTHCPHYS));
    403403    CHECK_MEMBER_ALIGNMENT(HMCPU, vmx.u32ProcCtls, 8);
    404     CHECK_MEMBER_ALIGNMENT(HMCPU, Event.uIntrInfo, 8);
     404    CHECK_MEMBER_ALIGNMENT(HMCPU, Event.u64IntrInfo, 8);
    405405
    406406    /* Make sure the set is large enough and has the correct size. */
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