Changeset 90363 in vbox for trunk/src/VBox/Devices/PC/DevIoApic.cpp
- Timestamp:
- Jul 27, 2021 9:59:18 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 145936
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevIoApic.cpp
r90332 r90363 262 262 /** The IRQ tags and source IDs for each pin (tracing purposes). */ 263 263 uint32_t au32TagSrc[IOAPIC_NUM_INTR_PINS]; 264 /** Bitmap keeping the flip-flop-ness of pending interrupts. */ 264 /** Bitmap keeping the flip-flop-ness of pending interrupts. 265 * The information held here is only relevan between SetIrq and the 266 * delivery, thus no real need to initialize or reset this. */ 265 267 uint64_t bmFlipFlop[(IOAPIC_NUM_INTR_PINS + 63) / 64]; 266 268 … … 1004 1006 * after a flip-flop request. The de-assert is a NOP wrts to signaling an interrupt 1005 1007 * hence just the assert is done. 1006 */ 1008 * 1009 * Update @bugref{10073}: We now de-assert the interrupt line once it has been 1010 * delivered to the APIC to prevent it from getting re-delivered by accident (e.g. 1011 * on RTE write or by buggy EOI code). The XT-PIC works differently because of the 1012 * INTA, so it's set IRQ function will do what's described above: first lower the 1013 * interrupt line and then immediately raising it again, leaving the IRR flag set 1014 * most of the time. (How a real HPET/IOAPIC does this is a really good question 1015 * and would be observable if we could get at the IRR register of the IOAPIC... 1016 * Maybe by modifying the RTE? Our code will retrigger the interrupt that way.) */ 1007 1017 ASMBitSet(pThis->bmFlipFlop, idxRte); 1008 1018 IOAPIC_ASSERT_IRQ(uBusDevFn, idxRte, uPinMask, true);
Note:
See TracChangeset
for help on using the changeset viewer.