- Timestamp:
- Apr 15, 2016 2:58:58 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r60516 r60523 2342 2342 STAM_COUNTER_INC(&pVCpu->apic.s.CTX_SUFF(StatMmioWrite)); 2343 2343 2344 Log Rel(("APIC%u: APICWriteMmio: offReg=%#RX16 uValue=%#RX32\n", pVCpu->idCpu, offReg, uValue));2344 Log4(("APIC%u: APICWriteMmio: offReg=%#RX16 uValue=%#RX32\n", pVCpu->idCpu, offReg, uValue)); 2345 2345 2346 2346 int rc = VBOXSTRICTRC_VAL(apicWriteRegister(pApicDev, pVCpu, offReg, uValue)); … … 2407 2407 if (enmTriggerMode == XAPICTRIGGERMODE_EDGE) 2408 2408 { 2409 Assert(CTX_SUFF(pApicCpu->pvApicPib));2410 apicSetVectorInPib(CTX_SUFF(pApicCpu->pvApicPib), uVector);2411 bool const fAlreadySet = apicSetNotificationBitInPib(CTX_SUFF(pApicCpu->pvApicPib));2412 if (!fAlreadySet)2413 {2414 if (pApic->fPostedIntrsEnabled)2415 { /** @todo posted-interrupt call to hardware */ }2416 else2409 if (pApic->fPostedIntrsEnabled) 2410 { /** @todo posted-interrupt call to hardware */ } 2411 else 2412 { 2413 Assert(CTX_SUFF(pApicCpu->pvApicPib)); 2414 apicSetVectorInPib(CTX_SUFF(pApicCpu->pvApicPib), uVector); 2415 bool const fAlreadySet = apicSetNotificationBitInPib(CTX_SUFF(pApicCpu->pvApicPib)); 2416 if (!fAlreadySet) 2417 2417 APICSetInterruptFF(pVCpu, PDMAPICIRQ_HARDWARE); 2418 2418 } … … 2612 2612 if (uFragment) 2613 2613 { 2614 apicOrVectorsToReg(&pXApicPage->irr, i, uFragment);2615 apicAndVectorsToReg(&pXApicPage->tmr, i, ~uFragment);2614 pXApicPage->irr.u[i].u32Reg |= uFragment; 2615 pXApicPage->tmr.u[i].u32Reg &= ~uFragment; 2616 2616 } 2617 2617 } … … 2631 2631 if (uFragment) 2632 2632 { 2633 apicOrVectorsToReg(&pXApicPage->irr, i, uFragment);2634 apicOrVectorsToReg(&pXApicPage->tmr, i, uFragment);2633 pXApicPage->irr.u[i].u32Reg |= uFragment; 2634 pXApicPage->tmr.u[i].u32Reg |= uFragment; 2635 2635 } 2636 2636 }
Note:
See TracChangeset
for help on using the changeset viewer.