Changeset 40956 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Apr 16, 2012 10:58:48 PM (13 years ago)
- Location:
- trunk/src/VBox/Devices/PC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevAPIC.cpp
r40937 r40956 836 836 0 /* Polarity - conform to the bus */, 837 837 0 /* Trigger mode - edge */, 838 0 /*uTagSrc*/);838 pDev->CTX_SUFF(pApicHlp)->pfnCalcIrqTag(pDev->CTX_SUFF(pDevIns), PDM_IRQ_LEVEL_HIGH)); 839 839 APIC_UNLOCK(pDev); 840 840 break; … … 1433 1433 1434 1434 return apic_bus_deliver(pDev, &DstSet, delivery_mode, vector_num, 1435 polarity, trigger_mode, 0 /* uTagSrc*/); 1435 polarity, trigger_mode, 1436 pDev->CTX_SUFF(pApicHlp)->pfnCalcIrqTag(pDev->CTX_SUFF(pDevIns), PDM_IRQ_LEVEL_HIGH)); 1436 1437 } 1437 1438 … … 1700 1701 LogFlow(("apic_timer: trigger irq\n")); 1701 1702 apic_set_irq(pDev, pApic, pApic->lvt[APIC_LVT_TIMER] & 0xff, APIC_TRIGGER_EDGE, 1702 pDev->CTX_SUFF(pApicHlp)->pfnCalcIrqTag(pDevIns ));1703 pDev->CTX_SUFF(pApicHlp)->pfnCalcIrqTag(pDevIns, PDM_IRQ_LEVEL_HIGH)); 1703 1704 1704 1705 if ( (pApic->lvt[APIC_LVT_TIMER] & APIC_LVT_TIMER_PERIODIC) -
trunk/src/VBox/Devices/PC/DevApic.h
r37481 r40956 5 5 6 6 /* 7 * Copyright (C) 2006-201 1Oracle Corporation7 * Copyright (C) 2006-2012 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as -
trunk/src/VBox/Devices/PC/DevIoApic.cpp
r40944 r40956 149 149 delivery_mode = (entry >> 8) & 7; 150 150 polarity = (entry >> 13) & 1; 151 uint32_t uTagSrc = pThis->auTagSrc[i]; 151 152 if (trig_mode == APIC_TRIGGER_EDGE) 153 { 154 pThis->auTagSrc[i] = 0; 152 155 pThis->irr &= ~mask; 156 } 153 157 if (delivery_mode == APIC_DM_EXTINT) 154 158 /* malc: i'm still not so sure about ExtINT delivery */ … … 159 163 else 160 164 vector = entry & 0xff; 161 uint32_t uTagSrc = pThis->auTagSrc[i];162 pThis->auTagSrc[i] = 0;163 165 164 166 int rc = pThis->CTX_SUFF(pIoApicHlp)->pfnApicBusDeliver(pThis->CTX_SUFF(pDevIns), … … 202 204 203 205 if ((level & PDM_IRQ_LEVEL_FLIP_FLOP) == PDM_IRQ_LEVEL_FLIP_FLOP) 206 { 204 207 pThis->irr &= ~mask; 208 pThis->auTagSrc[vector] = 0; 209 } 205 210 } 206 211 else 212 { 207 213 pThis->irr &= ~mask; 214 pThis->auTagSrc[vector] = 0; 215 } 208 216 } 209 217 else … … 526 534 pThis->irr = 0; 527 535 for (unsigned i = 0; i < IOAPIC_NUM_PINS; i++) 536 { 528 537 pThis->ioredtbl[i] = 1 << 16; /* mask LVT */ 538 pThis->auTagSrc[i] = 0; 539 } 529 540 530 541 IOAPIC_UNLOCK(pThis);
Note:
See TracChangeset
for help on using the changeset viewer.