VirtualBox

Changeset 61339 in vbox for trunk/src/VBox/VMM/VMMRC


Ignore:
Timestamp:
May 31, 2016 2:23:24 PM (9 years ago)
Author:
vboxsync
Message:

VMM, Devices: Added new I/O APIC implementation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMRC/PDMRCDevice.cpp

    r60804 r61339  
    560560
    561561
     562/** @interface_method_impl{PDMAPICHLPRC,pfnBusBroadcastEoi} */
     563static DECLCALLBACK(void) pdmRCApicHlp_BusBroadcastEoi(PPDMDEVINS pDevIns, uint8_t u8Vector)
     564{
     565    /* pfnSetEoi will be NULL in the old IOAPIC code as it's not implemented. */
     566#ifdef VBOX_WITH_NEW_IOAPIC
     567    PDMDEV_ASSERT_DEVINS(pDevIns);
     568    PVM pVM = pDevIns->Internal.s.CTX_SUFF(pVM);
     569
     570    /* At present, we support only a maximum of one I/O APIC for a VM. If we ever implement having
     571       multiple I/O APICs per-VM, we'll have to broadcast this EOI to all of the I/O APICs. */
     572    if (pVM->pdm.s.IoApic.CTX_SUFF(pDevIns))
     573    {
     574        Assert(pVM->pdm.s.IoApic.CTX_SUFF(pfnSetEoi));
     575        pdmLock(pVM);
     576        pVM->pdm.s.IoApic.CTX_SUFF(pfnSetEoi)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), u8Vector);
     577        pdmUnlock(pVM);
     578    }
     579#endif
     580}
     581
     582
    562583/** @interface_method_impl{PDMAPICHLPRC,pfnCalcIrqTag} */
    563584static DECLCALLBACK(uint32_t) pdmRCApicHlp_CalcIrqTag(PPDMDEVINS pDevIns, uint8_t u8Level)
     
    639660    pdmRCApicHlp_SetInterruptFF,
    640661    pdmRCApicHlp_ClearInterruptFF,
     662    pdmRCApicHlp_BusBroadcastEoi,
    641663    pdmRCApicHlp_CalcIrqTag,
    642664    pdmRCApicHlp_ChangeFeature,
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