Changeset 46314 in vbox for trunk/src/VBox
- Timestamp:
- May 29, 2013 2:27:46 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 86080
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r46310 r46314 524 524 { 525 525 #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)); 527 527 #endif 528 528 … … 531 531 532 532 /* 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; 535 535 } 536 536 … … 553 553 { 554 554 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)); 556 556 } 557 557 else if (pEvent->n.u8Vector < 0x20) … … 566 566 567 567 /* Set event injection state. */ 568 pVmcb->ctrl.EventInject. au64[0] = pEvent->au64[0];568 pVmcb->ctrl.EventInject.u = pEvent->u; 569 569 } 570 570 … … 594 594 (RTGCPTR)pCtx->rip)); 595 595 STAM_COUNTER_INC(&pVCpu->hm.s.StatIntReinject); 596 Event. au64[0]= pVCpu->hm.s.Event.u64IntrInfo;596 Event.u = pVCpu->hm.s.Event.u64IntrInfo; 597 597 hmR0SvmInjectEvent(pVCpu, pVmcb, pCtx, &Event); 598 598 … … 688 688 RTGCUINT u32ErrorCode; 689 689 690 Event. au64[0]= 0;690 Event.u = 0; 691 691 692 692 /* If a new event is pending, then dispatch it now. */ … … 1598 1598 Log(("ctrl.ExitIntInfo.u1Valid %x\n", pVmcb->ctrl.ExitIntInfo.n.u1Valid)); 1599 1599 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)); 1601 1601 Log(("ctrl.EventInject.u8Vector %x\n", pVmcb->ctrl.EventInject.n.u8Vector)); 1602 1602 Log(("ctrl.EventInject.u3Type %x\n", pVmcb->ctrl.EventInject.n.u3Type)); … … 1790 1790 1791 1791 /* 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; 1793 1793 if ( pVmcb->ctrl.ExitIntInfo.n.u1Valid 1794 1794 /* we don't care about 'int xx' as the instruction will be restarted. */ … … 1799 1799 #ifdef LOG_ENABLED 1800 1800 SVMEVENT Event; 1801 Event. au64[0]= pVCpu->hm.s.Event.u64IntrInfo;1801 Event.u = pVCpu->hm.s.Event.u64IntrInfo; 1802 1802 1803 1803 if ( exitCode == SVM_EXIT_EXCEPTION_E … … 1848 1848 RTTraceBufAddMsgF(pVM->CTX_SUFF(hTraceBuf), "vmexit %08x at %04:%08RX64 %RX64 %RX64 %RX64", 1849 1849 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); 1851 1851 #endif 1852 1852 #if ARCH_BITS == 64 /* for the time being */ 1853 1853 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); 1855 1855 #endif 1856 1856 STAM_PROFILE_ADV_STOP_START(&pVCpu->hm.s.StatExit1, &pVCpu->hm.s.StatExit2, x); … … 1888 1888 1889 1889 /* Reinject the exception. */ 1890 Event. au64[0]= 0;1890 Event.u = 0; 1891 1891 Event.n.u3Type = SVM_EVENT_EXCEPTION; /* trap or fault */ 1892 1892 Event.n.u1Valid = 1; … … 1922 1922 STAM_COUNTER_INC(&pVCpu->hm.s.StatExitGuestNM); 1923 1923 1924 Event. au64[0]= 0;1924 Event.u = 0; 1925 1925 Event.n.u3Type = SVM_EVENT_EXCEPTION; 1926 1926 Event.n.u1Valid = 1; … … 1949 1949 pCtx->cr2 = uFaultAddress; 1950 1950 1951 Event. au64[0]= 0;1951 Event.u = 0; 1952 1952 Event.n.u3Type = SVM_EVENT_EXCEPTION; 1953 1953 Event.n.u1Valid = 1; … … 2023 2023 pCtx->cr2 = uFaultAddress; 2024 2024 2025 Event. au64[0]= 0;2025 Event.u = 0; 2026 2026 Event.n.u3Type = SVM_EVENT_EXCEPTION; 2027 2027 Event.n.u1Valid = 1; … … 2054 2054 Log(("Trap %x at %RGv\n", vector, (RTGCPTR)pCtx->rip)); 2055 2055 2056 Event. au64[0]= 0;2056 Event.u = 0; 2057 2057 Event.n.u3Type = SVM_EVENT_EXCEPTION; 2058 2058 Event.n.u1Valid = 1; … … 2071 2071 case X86_XCPT_NP: /* Segment not present exception. */ 2072 2072 { 2073 Event. au64[0]= 0;2073 Event.u = 0; 2074 2074 Event.n.u3Type = SVM_EVENT_EXCEPTION; 2075 2075 Event.n.u1Valid = 1; … … 2449 2449 SVMIOIOEXIT IoExitInfo; 2450 2450 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; 2453 2453 uint32_t uIOSize = g_aIOSize[uIdx]; 2454 2454 uint32_t uAndVal = g_aIOOpAnd[uIdx]; … … 2578 2578 Log(("Inject IO debug trap at %RGv\n", (RTGCPTR)pCtx->rip)); 2579 2579 2580 Event. au64[0]= 0;2580 Event.u = 0; 2581 2581 Event.n.u3Type = SVM_EVENT_EXCEPTION; /* trap or fault */ 2582 2582 Event.n.u1Valid = 1; … … 2678 2678 SVMEVENT Event; 2679 2679 2680 Event. au64[0]= 0;2680 Event.u = 0; 2681 2681 Event.n.u3Type = SVM_EVENT_EXCEPTION; 2682 2682 Event.n.u1Valid = 1; … … 2736 2736 { 2737 2737 SVMEVENT Event; 2738 Event. au64[0]= pVCpu->hm.s.Event.u64IntrInfo;2738 Event.u = pVCpu->hm.s.Event.u64IntrInfo; 2739 2739 2740 2740 /* Caused by an injected interrupt. */
Note:
See TracChangeset
for help on using the changeset viewer.