VirtualBox

Changeset 60340 in vbox for trunk


Ignore:
Timestamp:
Apr 5, 2016 3:33:11 PM (9 years ago)
Author:
vboxsync
Message:

VMM/APIC: Bits.

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/APICAll.cpp

    r60310 r60340  
    646646        {
    647647            PVMCPU pVCpuDest = &pVM->aCpus[idCpu];
    648             if (   apicIsEnabled(pVCpuDest)                               /* PAV */
    649                 && apicIsLogicalDest(pVCpuDest, fDestMask))
     648            if (apicIsLogicalDest(pVCpuDest, fDestMask))
    650649            {
    651650                PCXAPICPAGE   pXApicPage = VMCPU_TO_CXAPICPAGE(pVCpuDest);
     
    19611960
    19621961    /* 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))
    19651963    {
    19661964        /* Pick the LVT entry corresponding to the interrupt pin. */
     
    19741972        uint32_t const uLvt   = apicReadRaw32(pXApicPage, offLvt);
    19751973
    1976         /* If software hasn't masked the interrupt in the LVT entry, proceed with interrupt processing. */
     1974        /* If software hasn't masked the interrupt in the LVT entry, proceed interrupt processing. */
    19771975        if (!XAPIC_LVT_IS_MASKED(uLvt))
    19781976        {
     
    20212019    else
    20222020    {
    2023         /* If the APIC is disabled, pass it through the CPU. */
     2021        /* The APIC is disabled, pass it through the CPU. */
    20242022        if (u8Level)
    20252023            APICSetInterruptFF(pVCpu, PDMAPICIRQ_EXTINT);
     
    23802378 * Gets the highest priority pending interrupt.
    23812379 *
    2382  * @returns true if any interrupt is pending, false otehrwise.
     2380 * @returns true if any interrupt is pending, false otherwise.
    23832381 * @param   pVCpu               The cross context virtual CPU structure.
    23842382 * @param   pu8PendingIntr      Where to store the interrupt vector if the
  • trunk/src/VBox/VMM/VMMR3/PDMDevMiscHlp.cpp

    r60307 r60340  
    5353    PVM pVM = pDevIns->Internal.s.pVMR3;
    5454    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 the
    56      *        guest, does real hardware do this? */
    5755
    5856    if (pVM->pdm.s.Apic.pfnLocalInterruptR3)
    5957    {
    60         /** @todo r=ramshankar: Wouldn't we have to check here for APIC base MSR
    61          *        disabling the APIC? */
    6258        LogFlow(("pdmR3PicHlp_SetInterruptFF: caller='%s'/%d: Setting local interrupt on LAPIC\n",
    6359                 pDevIns->pReg->szName, pDevIns->iInstance));
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette