VirtualBox

Changeset 64373 in vbox for trunk/src/VBox/Devices/Network


Ignore:
Timestamp:
Oct 23, 2016 7:03:39 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
111478
Message:

PDM,Devices: Support for multiple PCI devices/function in a single PDM device.

Location:
trunk/src/VBox/Devices/Network
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DevE1000.cpp

    r64356 r64373  
    61046104 * @callback_method_impl{FNPCIIOREGIONMAP}
    61056105 */
    6106 static DECLCALLBACK(int) e1kMap(PPCIDEVICE pPciDev, int iRegion, RTGCPHYS GCPhysAddress, RTGCPHYS cb, PCIADDRESSSPACE enmType)
     6106static DECLCALLBACK(int) e1kMap(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, uint32_t iRegion,
     6107                                RTGCPHYS GCPhysAddress, RTGCPHYS cb, PCIADDRESSSPACE enmType)
    61076108{
    61086109    RT_NOREF(iRegion);
     
    61146115        case PCI_ADDRESS_SPACE_IO:
    61156116            pThis->IOPortBase = (RTIOPORT)GCPhysAddress;
    6116             rc = PDMDevHlpIOPortRegister(pPciDev->pDevIns, pThis->IOPortBase, cb, NULL /*pvUser*/,
     6117            rc = PDMDevHlpIOPortRegister(pDevIns, pThis->IOPortBase, cb, NULL /*pvUser*/,
    61176118                                         e1kIOPortOut, e1kIOPortIn, NULL, NULL, "E1000");
    61186119            if (pThis->fR0Enabled && RT_SUCCESS(rc))
    6119                 rc = PDMDevHlpIOPortRegisterR0(pPciDev->pDevIns, pThis->IOPortBase, cb, NIL_RTR0PTR /*pvUser*/,
     6120                rc = PDMDevHlpIOPortRegisterR0(pDevIns, pThis->IOPortBase, cb, NIL_RTR0PTR /*pvUser*/,
    61206121                                             "e1kIOPortOut", "e1kIOPortIn", NULL, NULL, "E1000");
    61216122            if (pThis->fRCEnabled && RT_SUCCESS(rc))
    6122                 rc = PDMDevHlpIOPortRegisterRC(pPciDev->pDevIns, pThis->IOPortBase, cb, NIL_RTRCPTR /*pvUser*/,
     6123                rc = PDMDevHlpIOPortRegisterRC(pDevIns, pThis->IOPortBase, cb, NIL_RTRCPTR /*pvUser*/,
    61236124                                               "e1kIOPortOut", "e1kIOPortIn", NULL, NULL, "E1000");
    61246125            break;
     
    61396140            {
    61406141                Assert(!(GCPhysAddress & 7));
    6141                 rc = PDMDevHlpMMIOExMap(pPciDev->pDevIns, pPciDev, iRegion, GCPhysAddress);
     6142                rc = PDMDevHlpMMIOExMap(pDevIns, pPciDev, iRegion, GCPhysAddress);
    61426143            }
    61436144#else
    61446145            pThis->addrMMReg = GCPhysAddress; Assert(!(GCPhysAddress & 7));
    6145             rc = PDMDevHlpMMIORegister(pPciDev->pDevIns, GCPhysAddress, cb, NULL /*pvUser*/,
     6146            rc = PDMDevHlpMMIORegister(pDevIns, GCPhysAddress, cb, NULL /*pvUser*/,
    61466147                                       IOMMMIO_FLAGS_READ_DWORD | IOMMMIO_FLAGS_WRITE_ONLY_DWORD,
    61476148                                       e1kMMIOWrite, e1kMMIORead, "E1000");
    61486149            if (pThis->fR0Enabled && RT_SUCCESS(rc))
    6149                 rc = PDMDevHlpMMIORegisterR0(pPciDev->pDevIns, GCPhysAddress, cb, NIL_RTR0PTR /*pvUser*/,
     6150                rc = PDMDevHlpMMIORegisterR0(pDevIns, GCPhysAddress, cb, NIL_RTR0PTR /*pvUser*/,
    61506151                                             "e1kMMIOWrite", "e1kMMIORead");
    61516152            if (pThis->fRCEnabled && RT_SUCCESS(rc))
    6152                 rc = PDMDevHlpMMIORegisterRC(pPciDev->pDevIns, GCPhysAddress, cb, NIL_RTRCPTR /*pvUser*/,
     6153                rc = PDMDevHlpMMIORegisterRC(pDevIns, GCPhysAddress, cb, NIL_RTRCPTR /*pvUser*/,
    61536154                                             "e1kMMIOWrite", "e1kMMIORead");
    61546155#endif
  • trunk/src/VBox/Devices/Network/DevPCNet.cpp

    r64357 r64373  
    38673867 * @callback_method_impl{FNPCIIOREGIONMAP, For the PC-NET I/O Ports.}
    38683868 */
    3869 static DECLCALLBACK(int) pcnetIOPortMap(PPCIDEVICE pPciDev, /*unsigned*/ int iRegion,
     3869static DECLCALLBACK(int) pcnetIOPortMap(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, uint32_t iRegion,
    38703870                                        RTGCPHYS GCPhysAddress, RTGCPHYS cb, PCIADDRESSSPACE enmType)
    38713871{
    38723872    RT_NOREF(iRegion, cb, enmType);
    38733873    int         rc;
    3874     PPDMDEVINS  pDevIns = pPciDev->pDevIns;
    38753874    RTIOPORT    Port    = (RTIOPORT)GCPhysAddress;
    38763875    PPCNETSTATE pThis   = PCIDEV_2_PCNETSTATE(pPciDev);
     
    39193918 * @callback_method_impl{FNPCIIOREGIONMAP, For the PC-Net MMIO region.}
    39203919 */
    3921 static DECLCALLBACK(int) pcnetMMIOMap(PPCIDEVICE pPciDev, /*unsigned*/ int iRegion,
     3920static DECLCALLBACK(int) pcnetMMIOMap(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, uint32_t iRegion,
    39223921                                      RTGCPHYS GCPhysAddress, RTGCPHYS cb, PCIADDRESSSPACE enmType)
    39233922{
     
    39303929
    39313930    /* We use the assigned size here, because we only support page aligned MMIO ranges. */
    3932     rc = PDMDevHlpMMIORegister(pPciDev->pDevIns, GCPhysAddress, cb, pThis,
     3931    rc = PDMDevHlpMMIORegister(pDevIns, GCPhysAddress, cb, pThis,
    39333932                               IOMMMIO_FLAGS_READ_PASSTHRU | IOMMMIO_FLAGS_WRITE_PASSTHRU,
    39343933                               pcnetMMIOWrite, pcnetMMIORead, "PCNet");
     
    42924291        /* older saved states contain the shared memory region which was never used for ages. */
    42934292        void *pvSharedMMIOR3;
    4294         rc = PDMDevHlpMMIO2Register(pDevIns, 2, _512K, 0, (void **)&pvSharedMMIOR3, "PCNetSh");
     4293        rc = PDMDevHlpMMIO2Register(pDevIns, &pThis->PciDev, 2, _512K, 0, (void **)&pvSharedMMIOR3, "PCNetSh");
    42954294        if (RT_FAILURE(rc))
    42964295            rc = PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS,
  • trunk/src/VBox/Devices/Network/DevVirtioNet.cpp

    r63690 r64373  
    17781778 * @callback_method_impl{FNPCIIOREGIONMAP}
    17791779 */
    1780 static DECLCALLBACK(int) vnetMap(PPCIDEVICE pPciDev, int iRegion, RTGCPHYS GCPhysAddress, RTGCPHYS cb, PCIADDRESSSPACE enmType)
     1780static DECLCALLBACK(int) vnetMap(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, uint32_t iRegion,
     1781                                 RTGCPHYS GCPhysAddress, RTGCPHYS cb, PCIADDRESSSPACE enmType)
    17811782{
    17821783    RT_NOREF(iRegion);
     
    17921793
    17931794    pThis->VPCI.IOPortBase = (RTIOPORT)GCPhysAddress;
    1794     rc = PDMDevHlpIOPortRegister(pPciDev->pDevIns, pThis->VPCI.IOPortBase,
     1795    rc = PDMDevHlpIOPortRegister(pDevIns, pThis->VPCI.IOPortBase,
    17951796                                 cb, 0, vnetIOPortOut, vnetIOPortIn,
    17961797                                 NULL, NULL, "VirtioNet");
    17971798#ifdef VNET_GC_SUPPORT
    17981799    AssertRCReturn(rc, rc);
    1799     rc = PDMDevHlpIOPortRegisterR0(pPciDev->pDevIns, pThis->VPCI.IOPortBase,
     1800    rc = PDMDevHlpIOPortRegisterR0(pDevIns, pThis->VPCI.IOPortBase,
    18001801                                   cb, 0, "vnetIOPortOut", "vnetIOPortIn",
    18011802                                   NULL, NULL, "VirtioNet");
    18021803    AssertRCReturn(rc, rc);
    1803     rc = PDMDevHlpIOPortRegisterRC(pPciDev->pDevIns, pThis->VPCI.IOPortBase,
     1804    rc = PDMDevHlpIOPortRegisterRC(pDevIns, pThis->VPCI.IOPortBase,
    18041805                                   cb, 0, "vnetIOPortOut", "vnetIOPortIn",
    18051806                                   NULL, NULL, "VirtioNet");
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