VirtualBox

Changeset 84677 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Jun 4, 2020 1:12:06 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
138440
Message:

AMD IOMMU: bugref:9654 Add I/O APIC PDM helper for talking to the IOMMU for remapping MSIs and related bits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/pdmdev.h

    r84459 r84677  
    4848#include <VBox/vmm/pgm.h> /* PGMR3HandlerPhysicalTypeRegister() argument types. */
    4949#include <VBox/err.h>  /* VINF_EM_DBG_STOP, also 120+ source files expecting this. */
     50#include <VBox/msi.h>
    5051#include <iprt/stdarg.h>
    5152#include <iprt/list.h>
     
    12911292     * @param   pDevIns     The IOMMU device instance.
    12921293     * @param   uDevId      The device identifier (bus, device, function).
    1293      * @param   GCPhysIn    The source MSI address.
    1294      * @param   uDataIn     The source MSI data.
    1295      * @param   pGCPhysOut  Where to store the remapped MSI address.
    1296      * @param   puDataOut   Where to store the remapped MSI data.
     1294     * @param   pMsiIn      The source MSI.
     1295     * @param   pMsiOut     Where to store the remapped MSI.
    12971296     *
    12981297     * @thread  Any.
    12991298     */
    1300     DECLR0CALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, RTGCPHYS GCPhysIn, uint32_t uDataIn,
    1301                                            PRTGCPHYS pGCPhysOut, uint32_t *puDataOut));
     1299    DECLR0CALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, PCMSIMSG pMsiIn, PMSIMSG pMsiOut));
    13021300
    13031301    /** Just a safety precaution. */
     
    13581356     * @param   pDevIns     The IOMMU device instance.
    13591357     * @param   uDevId      The device identifier (bus, device, function).
    1360      * @param   GCPhysIn    The source MSI address.
    1361      * @param   uDataIn     The source MSI data.
    1362      * @param   pGCPhysOut  Where to store the remapped MSI address.
    1363      * @param   puDataOut   Where to store the remapped MSI data.
     1358     * @param   pMsiIn      The source MSI.
     1359     * @param   pMsiOut     Where to store the remapped MSI.
    13641360     *
    13651361     * @thread  Any.
    13661362     */
    1367     DECLRCCALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, RTGCPHYS GCPhysIn, uint32_t uDataIn,
    1368                                            PRTGCPHYS pGCPhysOut, uint32_t *puDataOut));
     1363    DECLRCCALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, PCMSIMSG pMsiIn, PMSIMSG pMsiOut));
    13691364
    13701365    /** Just a safety precaution. */
     
    14251420     * @param   pDevIns     The IOMMU device instance.
    14261421     * @param   uDevId      The device identifier (bus, device, function).
    1427      * @param   GCPhysIn    The source MSI address.
    1428      * @param   uDataIn     The source MSI data.
    1429      * @param   pGCPhysOut  Where to store the remapped MSI address.
    1430      * @param   puDataOut   Where to store the remapped MSI data.
     1422     * @param   pMsiIn      The source MSI.
     1423     * @param   pMsiOut     Where to store the remapped MSI.
    14311424     *
    14321425     * @thread  Any.
    14331426     */
    1434     DECLR3CALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, RTGCPHYS GCPhysIn, uint32_t uDataIn,
    1435                                            PRTGCPHYS pGCPhysOut, uint32_t *puDataOut));
     1427    DECLR3CALLBACKMEMBER(int, pfnMsiRemap,(PPDMDEVINS pDevIns, uint16_t uDevId, PCMSIMSG pMsiIn, PMSIMSG pMsiOut));
    14361428
    14371429    /** Just a safety precaution. */
     
    17931785    DECLCALLBACKMEMBER(void,  pfnUnlock)(PPDMDEVINS pDevIns);
    17941786
     1787    /**
     1788     * Private interface between the IOAPIC and IOMMU.
     1789     *
     1790     * @returns status code.
     1791     * @param   pDevIns     Device instance of the IOAPIC.
     1792     * @param   uDevId      The device ID (bus, device, function) for the source MSI.
     1793     * @param   pMsiIn      The source MSI.
     1794     * @param   pMsiOut     Where to store the remapped MSI.
     1795     *
     1796     * @sa      iommuAmdDeviceMsiRemap().
     1797     */
     1798    DECLCALLBACKMEMBER(int, pfnIommuMsiRemap)(PPDMDEVINS pDevIns, uint16_t uDevIt, PCMSIMSG pMsiIn, PMSIMSG pMsiOut);
     1799
    17951800    /** Just a safety precaution. */
    17961801    uint32_t                u32TheEnd;
     
    18021807
    18031808/** Current PDMIOAPICHLP version number. */
    1804 #define PDM_IOAPICHLP_VERSION                   PDM_VERSION_MAKE(0xfff0, 2, 0)
     1809#define PDM_IOAPICHLP_VERSION                   PDM_VERSION_MAKE(0xfff0, 2, 1)
    18051810
    18061811
Note: See TracChangeset for help on using the changeset viewer.

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