VirtualBox

Changeset 46314 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 29, 2013 2:27:46 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
86080
Message:

VMM/HM: AMD-V bits. Get rid of unnecessary pragma packs and use 'u' instead of 'au64[1]' of the structure sizing.

File:
1 edited

Legend:

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

    r46310 r46314  
    524524{
    525525#ifdef VBOX_STRICT
    526     Log(("SVM: Set pending event: intInfo=%016llx\n", pEvent->au64[0]));
     526    Log(("SVM: Set pending event: intInfo=%016llx\n", pEvent->u));
    527527#endif
    528528
     
    531531
    532532    /* Set pending event state. */
    533     pVCpu->hm.s.Event.u64IntrInfo  = pEvent->au64[0];
    534     pVCpu->hm.s.Event.fPending = true;
     533    pVCpu->hm.s.Event.u64IntrInfo = pEvent->u;
     534    pVCpu->hm.s.Event.fPending    = true;
    535535}
    536536
     
    553553    {
    554554        Log(("SVM: Inject int %d at %RGv error code=%02x CR2=%RGv intInfo=%08x\n", pEvent->n.u8Vector,
    555              (RTGCPTR)pCtx->rip, pEvent->n.u32ErrorCode, (RTGCPTR)pCtx->cr2, pEvent->au64[0]));
     555             (RTGCPTR)pCtx->rip, pEvent->n.u32ErrorCode, (RTGCPTR)pCtx->cr2, pEvent->u));
    556556    }
    557557    else if (pEvent->n.u8Vector < 0x20)
     
    566566
    567567    /* Set event injection state. */
    568     pVmcb->ctrl.EventInject.au64[0] = pEvent->au64[0];
     568    pVmcb->ctrl.EventInject.u = pEvent->u;
    569569}
    570570
     
    594594             (RTGCPTR)pCtx->rip));
    595595        STAM_COUNTER_INC(&pVCpu->hm.s.StatIntReinject);
    596         Event.au64[0] = pVCpu->hm.s.Event.u64IntrInfo;
     596        Event.u = pVCpu->hm.s.Event.u64IntrInfo;
    597597        hmR0SvmInjectEvent(pVCpu, pVmcb, pCtx, &Event);
    598598
     
    688688        RTGCUINT    u32ErrorCode;
    689689
    690         Event.au64[0] = 0;
     690        Event.u = 0;
    691691
    692692        /* If a new event is pending, then dispatch it now. */
     
    15981598        Log(("ctrl.ExitIntInfo.u1Valid          %x\n",      pVmcb->ctrl.ExitIntInfo.n.u1Valid));
    15991599        Log(("ctrl.ExitIntInfo.u32ErrorCode     %x\n",      pVmcb->ctrl.ExitIntInfo.n.u32ErrorCode));
    1600         Log(("ctrl.NestedPaging                 %RX64\n",   pVmcb->ctrl.NestedPaging.au64));
     1600        Log(("ctrl.NestedPaging                 %RX64\n",   pVmcb->ctrl.NestedPaging.u));
    16011601        Log(("ctrl.EventInject.u8Vector         %x\n",      pVmcb->ctrl.EventInject.n.u8Vector));
    16021602        Log(("ctrl.EventInject.u3Type           %x\n",      pVmcb->ctrl.EventInject.n.u3Type));
     
    17901790
    17911791    /* Check if an injected event was interrupted prematurely. */
    1792     pVCpu->hm.s.Event.u64IntrInfo = pVmcb->ctrl.ExitIntInfo.au64[0];
     1792    pVCpu->hm.s.Event.u64IntrInfo = pVmcb->ctrl.ExitIntInfo.u;
    17931793    if (    pVmcb->ctrl.ExitIntInfo.n.u1Valid
    17941794            /* we don't care about 'int xx' as the instruction will be restarted. */
     
    17991799#ifdef LOG_ENABLED
    18001800        SVMEVENT Event;
    1801         Event.au64[0] = pVCpu->hm.s.Event.u64IntrInfo;
     1801        Event.u = pVCpu->hm.s.Event.u64IntrInfo;
    18021802
    18031803        if (    exitCode == SVM_EXIT_EXCEPTION_E
     
    18481848    RTTraceBufAddMsgF(pVM->CTX_SUFF(hTraceBuf), "vmexit %08x at %04:%08RX64 %RX64 %RX64 %RX64",
    18491849                      exitCode, pCtx->cs.Sel, pCtx->rip,
    1850                       pVmcb->ctrl.u64ExitInfo1, pVmcb->ctrl.u64ExitInfo2, pVmcb->ctrl.ExitIntInfo.au64[0]);
     1850                      pVmcb->ctrl.u64ExitInfo1, pVmcb->ctrl.u64ExitInfo2, pVmcb->ctrl.ExitIntInfo.u);
    18511851#endif
    18521852#if ARCH_BITS == 64 /* for the time being */
    18531853    VBOXVMM_R0_HMSVM_VMEXIT(pVCpu, pCtx, exitCode, pVmcb->ctrl.u64ExitInfo1, pVmcb->ctrl.u64ExitInfo2,
    1854                             pVmcb->ctrl.ExitIntInfo.au64[0], UINT64_MAX);
     1854                            pVmcb->ctrl.ExitIntInfo.u, UINT64_MAX);
    18551855#endif
    18561856    STAM_PROFILE_ADV_STOP_START(&pVCpu->hm.s.StatExit1, &pVCpu->hm.s.StatExit2, x);
     
    18881888
    18891889                /* Reinject the exception. */
    1890                 Event.au64[0]    = 0;
     1890                Event.u          = 0;
    18911891                Event.n.u3Type   = SVM_EVENT_EXCEPTION; /* trap or fault */
    18921892                Event.n.u1Valid  = 1;
     
    19221922            STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestNM);
    19231923
    1924             Event.au64[0]    = 0;
     1924            Event.u          = 0;
    19251925            Event.n.u3Type   = SVM_EVENT_EXCEPTION;
    19261926            Event.n.u1Valid  = 1;
     
    19491949                pCtx->cr2 = uFaultAddress;
    19501950
    1951                 Event.au64[0]               = 0;
     1951                Event.u                     = 0;
    19521952                Event.n.u3Type              = SVM_EVENT_EXCEPTION;
    19531953                Event.n.u1Valid             = 1;
     
    20232023                pCtx->cr2 = uFaultAddress;
    20242024
    2025                 Event.au64[0]               = 0;
     2025                Event.u                     = 0;
    20262026                Event.n.u3Type              = SVM_EVENT_EXCEPTION;
    20272027                Event.n.u1Valid             = 1;
     
    20542054            Log(("Trap %x at %RGv\n", vector, (RTGCPTR)pCtx->rip));
    20552055
    2056             Event.au64[0]    = 0;
     2056            Event.u          = 0;
    20572057            Event.n.u3Type   = SVM_EVENT_EXCEPTION;
    20582058            Event.n.u1Valid  = 1;
     
    20712071        case X86_XCPT_NP:   /* Segment not present exception. */
    20722072        {
    2073             Event.au64[0]    = 0;
     2073            Event.u          = 0;
    20742074            Event.n.u3Type   = SVM_EVENT_EXCEPTION;
    20752075            Event.n.u1Valid  = 1;
     
    24492449        SVMIOIOEXIT   IoExitInfo;
    24502450
    2451         IoExitInfo.au32[0] = pVmcb->ctrl.u64ExitInfo1;
    2452         unsigned uIdx      = (IoExitInfo.au32[0] >> 4) & 0x7;
     2451        IoExitInfo.u       = (uint32_t)pVmcb->ctrl.u64ExitInfo1;
     2452        unsigned uIdx      = (IoExitInfo.u >> 4) & 0x7;
    24532453        uint32_t uIOSize   = g_aIOSize[uIdx];
    24542454        uint32_t uAndVal   = g_aIOOpAnd[uIdx];
     
    25782578                            Log(("Inject IO debug trap at %RGv\n", (RTGCPTR)pCtx->rip));
    25792579
    2580                             Event.au64[0]    = 0;
     2580                            Event.u          = 0;
    25812581                            Event.n.u3Type   = SVM_EVENT_EXCEPTION; /* trap or fault */
    25822582                            Event.n.u1Valid  = 1;
     
    26782678        SVMEVENT Event;
    26792679
    2680         Event.au64[0]    = 0;
     2680        Event.u          = 0;
    26812681        Event.n.u3Type   = SVM_EVENT_EXCEPTION;
    26822682        Event.n.u1Valid  = 1;
     
    27362736        {
    27372737            SVMEVENT Event;
    2738             Event.au64[0] = pVCpu->hm.s.Event.u64IntrInfo;
     2738            Event.u = pVCpu->hm.s.Event.u64IntrInfo;
    27392739
    27402740            /* Caused by an injected interrupt. */
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