VirtualBox

Changeset 84714 in vbox for trunk


Ignore:
Timestamp:
Jun 6, 2020 10:01:54 AM (5 years ago)
Author:
vboxsync
Message:

AMD IOMMU: bugref:9654 PDM: Remove duplicate pfnIoApicSendMsi interface functions.

Location:
trunk
Files:
3 edited

Legend:

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

    r84677 r84714  
    417417typedef PDMDEVREGR3 const *PCPDMDEVREGR3;
    418418/** Current DEVREGR3 version number. */
    419 #define PDM_DEVREGR3_VERSION                    PDM_VERSION_MAKE(0xffff, 4, 0)
     419#define PDM_DEVREGR3_VERSION                    PDM_VERSION_MAKE(0xffff, 5, 0)
    420420
    421421
     
    641641typedef PDMDEVREGR0 const *PCPDMDEVREGR0;
    642642/** Current DEVREGR0 version number. */
    643 #define PDM_DEVREGR0_VERSION                    PDM_VERSION_MAKE(0xff80, 1, 0)
     643#define PDM_DEVREGR0_VERSION                    PDM_VERSION_MAKE(0xff80, 2, 0)
    644644
    645645
     
    711711typedef PDMDEVREGRC const *PCPDMDEVREGRC;
    712712/** Current DEVREGRC version number. */
    713 #define PDM_DEVREGRC_VERSION                    PDM_VERSION_MAKE(0xff81, 1, 0)
     713#define PDM_DEVREGRC_VERSION                    PDM_VERSION_MAKE(0xff81, 2, 0)
    714714
    715715
     
    33803380
    33813381    /**
    3382      * Send an MSI straight to the I/O APIC.
    3383      *
    3384      * @param   pDevIns         PCI device instance.
    3385      * @param   GCPhys          Physical address MSI request was written.
    3386      * @param   uValue          Value written.
    3387      * @thread  Any thread, but will involve the emulation thread.
    3388      */
    3389     DECLR3CALLBACKMEMBER(void,  pfnIoApicSendMsi,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, uint32_t uValue));
    3390 
    3391     /**
    33923382     * Attaches a driver (chain) to the device.
    33933383     *
     
    44714461
    44724462    /**
    4473      * Send an MSI straight to the I/O APIC.
    4474      *
    4475      * @param   pDevIns         PCI device instance.
    4476      * @param   GCPhys          Physical address MSI request was written.
    4477      * @param   uValue          Value written.
    4478      * @thread  Any thread, but will involve the emulation thread.
    4479      */
    4480     DECLRCCALLBACKMEMBER(void,  pfnIoApicSendMsi,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, uint32_t uValue));
    4481 
    4482     /**
    44834463     * Read physical memory.
    44844464     *
     
    49194899     */
    49204900    DECLR0CALLBACKMEMBER(void, pfnISASetIrq,(PPDMDEVINS pDevIns, int iIrq, int iLevel));
    4921 
    4922     /**
    4923      * Send an MSI straight to the I/O APIC.
    4924      *
    4925      * @param   pDevIns         PCI device instance.
    4926      * @param   GCPhys          Physical address MSI request was written.
    4927      * @param   uValue          Value written.
    4928      * @thread  Any thread, but will involve the emulation thread.
    4929      */
    4930     DECLR0CALLBACKMEMBER(void,  pfnIoApicSendMsi,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, uint32_t uValue));
    49314901
    49324902    /**
     
    72907260}
    72917261
    7292 /**
    7293  * @copydoc PDMDEVHLPR3::pfnIoApicSendMsi
    7294  */
    7295 DECLINLINE(void) PDMDevHlpIoApicSendMsi(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, uint32_t uValue)
    7296 {
    7297     pDevIns->CTX_SUFF(pHlp)->pfnIoApicSendMsi(pDevIns, GCPhys, uValue);
    7298 }
    7299 
    73007262#ifdef IN_RING3
    73017263
  • trunk/src/VBox/VMM/VMMR0/PDMR0DevHlp.cpp

    r84678 r84714  
    312312
    313313
    314 /** @interface_method_impl{PDMDEVHLPR0,pfnIoApicSendMsi} */
    315 static DECLCALLBACK(void) pdmR0DevHlp_IoApicSendMsi(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, uint32_t uValue)
    316 {
    317     PDMDEV_ASSERT_DEVINS(pDevIns);
    318     LogFlow(("pdmR0DevHlp_IoApicSendMsi: caller=%p/%d: GCPhys=%RGp uValue=%#x\n", pDevIns, pDevIns->iInstance, GCPhys, uValue));
    319     PGVM pGVM = pDevIns->Internal.s.pGVM;
    320 
    321     uint32_t uTagSrc;
    322     pDevIns->Internal.s.pIntR3R0->uLastIrqTag = uTagSrc = pdmCalcIrqTag(pGVM, pDevIns->Internal.s.pInsR3R0->idTracing);
    323     VBOXVMM_PDM_IRQ_HILO(VMMGetCpu(pGVM), RT_LOWORD(uTagSrc), RT_HIWORD(uTagSrc));
    324 
    325     if (pGVM->pdm.s.IoApic.pDevInsR0)
    326         pGVM->pdm.s.IoApic.pfnSendMsiR0(pGVM->pdm.s.IoApic.pDevInsR0, GCPhys, uValue, uTagSrc);
    327     else
    328         AssertFatalMsgFailed(("Lazy bastards!"));
    329 
    330     LogFlow(("pdmR0DevHlp_IoApicSendMsi: caller=%p/%d: returns void; uTagSrc=%#x\n", pDevIns, pDevIns->iInstance, uTagSrc));
    331 }
    332 
    333 
    334314/** @interface_method_impl{PDMDEVHLPR0,pfnPhysRead} */
    335315static DECLCALLBACK(int) pdmR0DevHlp_PhysRead(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, void *pvBuf, size_t cbRead, uint32_t fFlags)
     
    12791259    pdmR0DevHlp_PCISetIrq,
    12801260    pdmR0DevHlp_ISASetIrq,
    1281     pdmR0DevHlp_IoApicSendMsi,
    12821261    pdmR0DevHlp_PhysRead,
    12831262    pdmR0DevHlp_PhysWrite,
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r84459 r84714  
    19621962{
    19631963    pdmR3DevHlp_ISASetIrq(pDevIns, iIrq, iLevel);
    1964 }
    1965 
    1966 
    1967 /** @interface_method_impl{PDMDEVHLPR3,pfnIoApicSendMsi} */
    1968 static DECLCALLBACK(void) pdmR3DevHlp_IoApicSendMsi(PPDMDEVINS pDevIns, RTGCPHYS GCPhys, uint32_t uValue)
    1969 {
    1970     PDMDEV_ASSERT_DEVINS(pDevIns);
    1971     LogFlow(("pdmR3DevHlp_IoApicSendMsi: caller='%s'/%d: GCPhys=%RGp uValue=%#x\n", pDevIns->pReg->szName, pDevIns->iInstance, GCPhys, uValue));
    1972 
    1973     /*
    1974      * Validate input.
    1975      */
    1976     Assert(GCPhys != 0);
    1977     Assert(uValue != 0);
    1978 
    1979     PVM pVM = pDevIns->Internal.s.pVMR3;
    1980 
    1981     /*
    1982      * Do the job.
    1983      */
    1984     pdmLock(pVM);
    1985     uint32_t uTagSrc;
    1986     pDevIns->Internal.s.uLastIrqTag = uTagSrc = pdmCalcIrqTag(pVM, pDevIns->idTracing);
    1987     VBOXVMM_PDM_IRQ_HILO(VMMGetCpu(pVM), RT_LOWORD(uTagSrc), RT_HIWORD(uTagSrc));
    1988 
    1989     PDMIoApicSendMsi(pVM, GCPhys, uValue, uTagSrc);  /* (The API takes the lock recursively.) */
    1990 
    1991     pdmUnlock(pVM);
    1992 
    1993     LogFlow(("pdmR3DevHlp_IoApicSendMsi: caller='%s'/%d: returns void\n", pDevIns->pReg->szName, pDevIns->iInstance));
    19941964}
    19951965
     
    42144184    pdmR3DevHlp_ISASetIrq,
    42154185    pdmR3DevHlp_ISASetIrqNoWait,
    4216     pdmR3DevHlp_IoApicSendMsi,
    42174186    pdmR3DevHlp_DriverAttach,
    42184187    pdmR3DevHlp_DriverDetach,
     
    50635032    pdmR3DevHlp_ISASetIrq,
    50645033    pdmR3DevHlp_ISASetIrqNoWait,
    5065     pdmR3DevHlp_IoApicSendMsi,
    50665034    pdmR3DevHlp_DriverAttach,
    50675035    pdmR3DevHlp_DriverDetach,
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