VirtualBox

Changeset 36448 in vbox for trunk/src/VBox/HostDrivers


Ignore:
Timestamp:
Mar 28, 2011 12:37:43 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
70815
Message:

PCI: refactoring, further IOMMU work

Location:
trunk/src/VBox/HostDrivers/VBoxPci
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/VBoxPci/VBoxPci.c

    r36436 r36448  
    409409                              uint32_t           u32HostAddress,
    410410                              uint32_t           fFlags,
    411                               PRAWPCIVM          pVmCtx,
    412                               PRAWPCIDEVPORT     *ppDevPort)
     411                              PRAWPCIPERVM       pVmCtx,
     412                              PRAWPCIDEVPORT     *ppDevPort,
     413                              uint32_t           *pfDevFlags)
    413414{
    414415    int             rc;
     
    476477                                                        uint32_t             u32HostAddress,
    477478                                                        uint32_t             fFlags,
    478                                                         PRAWPCIVM            pVmCtx,
    479                                                         PRAWPCIDEVPORT       *ppDevPort)
     479                                                        PRAWPCIPERVM         pVmCtx,
     480                                                        PRAWPCIDEVPORT       *ppDevPort,
     481                                                        uint32_t             *pfDevFlags)
    480482{
    481483    PVBOXRAWPCIGLOBALS pGlobals = (PVBOXRAWPCIGLOBALS)((uint8_t *)pFactory - RT_OFFSETOF(VBOXRAWPCIGLOBALS, RawPciFactory));
     
    496498    }
    497499
    498     rc = vboxPciNewInstance(pGlobals, u32HostAddress, fFlags, pVmCtx, ppDevPort);
     500    rc = vboxPciNewInstance(pGlobals, u32HostAddress, fFlags, pVmCtx, ppDevPort, pfDevFlags);
    499501
    500502unlock:
     
    521523static DECLCALLBACK(int)  vboxPciFactoryInitVm(PRAWPCIFACTORY       pFactory,
    522524                                               PVM                  pVM,
    523                                                PRAWPCIVM            pVmData)
     525                                               PRAWPCIPERVM         pVmData)
    524526{
    525527    PVBOXRAWPCIDRVVM pThis = (PVBOXRAWPCIDRVVM)RTMemAllocZ(sizeof(VBOXRAWPCIDRVVM));
     
    533535    {
    534536        rc = vboxPciOsInitVm(pThis, pVM, pVmData);
    535 #ifdef VBOX_WITH_IOMMU
    536         /* If IOMMU notification routine in pVmData->pfnContigMemInfo
    537            is not set - we have no IOMMU hardware. */
    538 #endif
    539537
    540538        if (RT_SUCCESS(rc))
    541539        {
     540#ifdef VBOX_WITH_IOMMU
     541            /* If IOMMU notification routine in pVmData->pfnContigMemInfo
     542               is set - we have functional IOMMU hardware. */
     543            if (pVmData->pfnContigMemInfo)
     544                pVmData->fVmCaps |= PCIRAW_VMFLAGS_HAS_IOMMU;
     545#endif
    542546            pVmData->pDriverData = pThis;
    543547            return VINF_SUCCESS;
     
    557561static DECLCALLBACK(void)  vboxPciFactoryDeinitVm(PRAWPCIFACTORY       pFactory,
    558562                                                  PVM                  pVM,
    559                                                   PRAWPCIVM            pPciData)
     563                                                  PRAWPCIPERVM         pPciData)
    560564{
    561565    if (pPciData->pDriverData)
  • trunk/src/VBox/HostDrivers/VBoxPci/VBoxPciInternal.h

    r36422 r36448  
    8686    void              *pIrqContext;
    8787
    88     PRAWPCIVM         pVmCtx;
     88    PRAWPCIPERVM       pVmCtx;
    8989} VBOXRAWPCIINS;
    9090
     
    139139DECLHIDDEN(void) vboxPciShutdown(PVBOXRAWPCIGLOBALS pGlobals);
    140140
    141 DECLHIDDEN(int)  vboxPciOsInitVm(PVBOXRAWPCIDRVVM pThis,   PVM pVM, PRAWPCIVM pVmData);
     141DECLHIDDEN(int)  vboxPciOsInitVm(PVBOXRAWPCIDRVVM pThis,   PVM pVM, PRAWPCIPERVM pVmData);
    142142DECLHIDDEN(void) vboxPciOsDeinitVm(PVBOXRAWPCIDRVVM pThis, PVM pVM);
    143143
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