VirtualBox

Changeset 84826 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Jun 15, 2020 8:20:40 AM (5 years ago)
Author:
vboxsync
Message:

AMD IOMMU: bugref:9654 PDM interface changes for supplying bus:device:function for devices' initiating PCI interrupts and MSIs.

File:
1 edited

Legend:

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

    r82968 r84826  
    156156            u8Irq = 2;
    157157
    158         pVM->pdm.s.IoApic.CTX_SUFF(pfnSetIrq)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), u8Irq, u8Level, uTagSrc);
     158        pVM->pdm.s.IoApic.CTX_SUFF(pfnSetIrq)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), NIL_PCIBDF, u8Irq, u8Level, uTagSrc);
    159159        rc = VINF_SUCCESS;
    160160    }
     
    173173 * @param   pVM         The cross context VM structure.
    174174 * @param   u8Irq       The IRQ line.
     175 * @param   uBusDevFn   The bus:device:function of the device initiating the IRQ.
     176 *                      Pass NIL_PCIBDF when it's not a PCI device or interrupt.
    175177 * @param   u8Level     The new level.
    176178 * @param   uTagSrc     The IRQ tag and source tracer ID.
    177179 */
    178 VMM_INT_DECL(int) PDMIoApicSetIrq(PVM pVM, uint8_t u8Irq, uint8_t u8Level, uint32_t uTagSrc)
     180VMM_INT_DECL(int) PDMIoApicSetIrq(PVM pVM, PCIBDF uBusDevFn, uint8_t u8Irq, uint8_t u8Level, uint32_t uTagSrc)
    179181{
    180182    if (pVM->pdm.s.IoApic.CTX_SUFF(pDevIns))
    181183    {
    182184        Assert(pVM->pdm.s.IoApic.CTX_SUFF(pfnSetIrq));
    183         pVM->pdm.s.IoApic.CTX_SUFF(pfnSetIrq)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), u8Irq, u8Level, uTagSrc);
     185        pVM->pdm.s.IoApic.CTX_SUFF(pfnSetIrq)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), uBusDevFn, u8Irq, u8Level, uTagSrc);
    184186        return VINF_SUCCESS;
    185187    }
     
    218220 * @returns VBox status code.
    219221 * @param   pVM         The cross context VM structure.
    220  * @param   GCAddr      Request address.
    221  * @param   uValue      Request value.
     222 * @param   uBusDevFn   The bus:device:function of the device initiating the MSI.
     223 *                      Cannot be NIL_PCIBDF.
     224 * @param   pMsi        The MSI to send.
    222225 * @param   uTagSrc     The IRQ tag and source tracer ID.
    223226 */
    224 VMM_INT_DECL(int) PDMIoApicSendMsi(PVM pVM, RTGCPHYS GCAddr, uint32_t uValue, uint32_t uTagSrc)
    225 {
     227VMM_INT_DECL(int) PDMIoApicSendMsi(PVM pVM, PCIBDF uBusDevFn, PCMSIMSG pMsi, uint32_t uTagSrc)
     228{
     229    Assert(PCIBDF_IS_VALID(uBusDevFn));
    226230    if (pVM->pdm.s.IoApic.CTX_SUFF(pDevIns))
    227231    {
    228232        Assert(pVM->pdm.s.IoApic.CTX_SUFF(pfnSendMsi));
    229         pVM->pdm.s.IoApic.CTX_SUFF(pfnSendMsi)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), GCAddr, uValue, uTagSrc);
     233        pVM->pdm.s.IoApic.CTX_SUFF(pfnSendMsi)(pVM->pdm.s.IoApic.CTX_SUFF(pDevIns), uBusDevFn, pMsi, uTagSrc);
    230234        return VINF_SUCCESS;
    231235    }
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