- Timestamp:
- Apr 5, 2016 3:33:11 PM (9 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r60310 r60340 646 646 { 647 647 PVMCPU pVCpuDest = &pVM->aCpus[idCpu]; 648 if ( apicIsEnabled(pVCpuDest) /* PAV */ 649 && apicIsLogicalDest(pVCpuDest, fDestMask)) 648 if (apicIsLogicalDest(pVCpuDest, fDestMask)) 650 649 { 651 650 PCXAPICPAGE pXApicPage = VMCPU_TO_CXAPICPAGE(pVCpuDest); … … 1961 1960 1962 1961 /* If the APIC is enabled, the interrupt is subject to LVT programming. */ 1963 if ( apicIsEnabled(pVCpu) 1964 && pXApicPage->svr.u.fApicSoftwareEnable) 1962 if (apicIsEnabled(pVCpu)) 1965 1963 { 1966 1964 /* Pick the LVT entry corresponding to the interrupt pin. */ … … 1974 1972 uint32_t const uLvt = apicReadRaw32(pXApicPage, offLvt); 1975 1973 1976 /* If software hasn't masked the interrupt in the LVT entry, proceed withinterrupt processing. */1974 /* If software hasn't masked the interrupt in the LVT entry, proceed interrupt processing. */ 1977 1975 if (!XAPIC_LVT_IS_MASKED(uLvt)) 1978 1976 { … … 2021 2019 else 2022 2020 { 2023 /* If the APIC is disabled, pass it through the CPU. */2021 /* The APIC is disabled, pass it through the CPU. */ 2024 2022 if (u8Level) 2025 2023 APICSetInterruptFF(pVCpu, PDMAPICIRQ_EXTINT); … … 2380 2378 * Gets the highest priority pending interrupt. 2381 2379 * 2382 * @returns true if any interrupt is pending, false ot ehrwise.2380 * @returns true if any interrupt is pending, false otherwise. 2383 2381 * @param pVCpu The cross context virtual CPU structure. 2384 2382 * @param pu8PendingIntr Where to store the interrupt vector if the -
trunk/src/VBox/VMM/VMMR3/PDMDevMiscHlp.cpp
r60307 r60340 53 53 PVM pVM = pDevIns->Internal.s.pVMR3; 54 54 PVMCPU pVCpu = &pVM->aCpus[0]; /* for PIC we always deliver to CPU 0, MP use APIC */ 55 /** @todo r=ramshankar: Should we raise the interrupt to all CPUs in the56 * guest, does real hardware do this? */57 55 58 56 if (pVM->pdm.s.Apic.pfnLocalInterruptR3) 59 57 { 60 /** @todo r=ramshankar: Wouldn't we have to check here for APIC base MSR61 * disabling the APIC? */62 58 LogFlow(("pdmR3PicHlp_SetInterruptFF: caller='%s'/%d: Setting local interrupt on LAPIC\n", 63 59 pDevIns->pReg->szName, pDevIns->iInstance));
Note:
See TracChangeset
for help on using the changeset viewer.