Index: trunk/src/VBox/Devices/Network/DevPCNet.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 584)
+++ trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 587)
@@ -80,7 +80,4 @@
 /* Enable to handle frequent io reads in the guest context */
 #define PCNET_GC_ENABLED
-
-/* Enable to send multiple packets with one system call */
-/* #define PCNET_SEND_MULTIPLE_PACKETS */
 
 /* Enable to delay setting the TX interrupt until packets have been sent. */
@@ -1826,57 +1823,4 @@
     pData->fTransmitting = true;
 
-#ifdef PCNET_SEND_MULTIPLE_PACKETS
-    if (pData->iFrame)
-    {
-        if (pData->iFrame > 1)
-        {
-            /** @todo Tip, use alloca() or a fixed sized stack array to save time and avoid the heap and it's locks. */
-            PPDMINETWORKPACKET paPacket = (PPDMINETWORKPACKET)RTMemTmpAlloc(sizeof(PDMINETWORKPACKET)*pData->iFrame);
-            unsigned           i;
-
-            Assert(paPacket);
-            if (paPacket)
-            {
-                for (i = 0; i < pData->iFrame; i++)
-                {
-                    paPacket[i].pvBuf = pData->aFrames[i].pvR3 != NIL_RTR3PTR
-                                      ? pData->aFrames[i].pvR3
-                                      : &pData->abFrameBuf[pData->aFrames[i].off];
-                    paPacket[i].cb    = pData->aFrames[i].cb;
-
-                    if (pData->aFrames[i].cb > 70) /* unqualified guess */
-                        pData->Led.Asserted.s.fWriting = pData->Led.Actual.s.fWriting = 1;
-                }
-
-                if (pcnetIsLinkUp(pData))
-                    pData->pDrv->pfnSendEx(pData->pDrv, pData->iFrame, paPacket);
-
-                RTMemTmpFree(paPacket);
-            }
-        }
-        else
-        {
-            RTR3PTR pv = pData->aFrames[0].pvR3 != NIL_RTR3PTR
-                       ? pData->aFrames[0].pvR3
-                       : &pData->abFrameBuf[pData->aFrames[0].off];
-            if (pData->aFrames[0].cb > 70) /* unqualified guess */
-                pData->Led.Asserted.s.fWriting = pData->Led.Actual.s.fWriting = 1;
-            if (pcnetIsLinkUp(pData))
-            {
-                pData->pDrv->pfnSend(pData->pDrv, pv, pData->aFrames[0].cb);
-                LOG_PACKET("xmit", pv, pData->aFrames[0].cb);
-            }
-        }
-
-#ifdef PCNET_DELAY_INT
-        /* Update TXSTRT and TINT. */
-        pData->aCSR[4] |=  0x0004;       /* set TXSTRT */
-        pData->aCSR[0] |= 0x0200;    /* set TINT */
-        pcnetUpdateIrq(pData);
-#endif
-    }
-
-#else /* PCNET_SEND_MULTIPLE_PACKETS */
-
     for (unsigned i = 0; i < pData->iFrame; i++)
     {
@@ -1902,6 +1846,4 @@
     }
 #endif
-
-#endif /* PCNET_SEND_MULTIPLE_PACKETS */
 
     pData->fTransmitting = false;
Index: trunk/src/VBox/Devices/Network/DrvIntNet.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvIntNet.cpp	(revision 584)
+++ trunk/src/VBox/Devices/Network/DrvIntNet.cpp	(revision 587)
@@ -154,26 +154,4 @@
 }
 
-
-/**
- * Send multiple data packets to the network.
- *
- * @returns VBox status code.
- * @param   pInterface      Pointer to the interface structure containing the called function pointer.
- * @param   cPackets        Number of packets
- * @param   paPacket        Packet description array
- * @thread  EMT
- */
-static DECLCALLBACK(int) drvIntNetSendEx(PPDMINETWORKCONNECTOR pInterface, uint32_t cPackets, PPDMINETWORKPACKET paPacket)
-{
-    int rc = VERR_INVALID_PARAMETER;
-
-    for (uint32_t i = 0; i < cPackets; i++)
-    {
-        rc = drvIntNetSend(pInterface, paPacket[i].pvBuf, paPacket[i].cb);
-        if (VBOX_FAILURE(rc))
-            break;
-    }
-    return rc;
-}
 
 /**
@@ -633,5 +611,4 @@
     /* INetwork */
     pThis->INetworkConnector.pfnSend                = drvIntNetSend;
-    pThis->INetworkConnector.pfnSendEx              = drvIntNetSendEx;
     pThis->INetworkConnector.pfnSetPromiscuousMode  = drvIntNetSetPromiscuousMode;
     pThis->INetworkConnector.pfnNotifyLinkChanged   = drvIntNetNotifyLinkChanged;
Index: trunk/src/VBox/Devices/Network/DrvNAT.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvNAT.cpp	(revision 584)
+++ trunk/src/VBox/Devices/Network/DrvNAT.cpp	(revision 587)
@@ -97,26 +97,4 @@
 }
 
-
-/**
- * Send multiple data packets to the network.
- *
- * @returns VBox status code.
- * @param   pInterface      Pointer to the interface structure containing the called function pointer.
- * @param   cPackets        Number of packets
- * @param   paPacket        Packet description array
- * @thread  EMT
- */
-static DECLCALLBACK(int) drvNATSendEx(PPDMINETWORKCONNECTOR pInterface, uint32_t cPackets, PPDMINETWORKPACKET paPacket)
-{
-    int rc = VERR_INVALID_PARAMETER;
-
-    for (uint32_t i = 0; i < cPackets; i++)
-    {
-        rc = drvNATSend(pInterface, paPacket[i].pvBuf, paPacket[i].cb);
-        if (VBOX_FAILURE(rc))
-            break;
-    }
-    return rc;
-}
 
 /**
@@ -378,5 +356,4 @@
     /* INetwork */
     pData->INetworkConnector.pfnSend               = drvNATSend;
-    pData->INetworkConnector.pfnSendEx             = drvNATSendEx;
     pData->INetworkConnector.pfnSetPromiscuousMode = drvNATSetPromiscuousMode;
     pData->INetworkConnector.pfnNotifyLinkChanged  = drvNATNotifyLinkChanged;
Index: trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp	(revision 584)
+++ trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp	(revision 587)
@@ -147,27 +147,4 @@
 
 /**
- * Send multiple data packets to the network.
- *
- * @returns VBox status code.
- * @param   pInterface      Pointer to the interface structure containing the called function pointer.
- * @param   cPackets        Number of packets
- * @param   paPacket        Packet description array
- * @thread  EMT
- */
-static DECLCALLBACK(int) drvNetSnifferSendEx(PPDMINETWORKCONNECTOR pInterface, uint32_t cPackets, PPDMINETWORKPACKET paPacket)
-{
-    int rc = VERR_INVALID_PARAMETER;
-
-    for (uint32_t i = 0; i < cPackets; i++)
-    {
-        rc = drvNetSnifferSend(pInterface, paPacket[i].pvBuf, paPacket[i].cb);
-        if (VBOX_FAILURE(rc))
-            break;
-    }
-    return rc;
-}
-
-
-/**
  * Set promiscuous mode.
  *
@@ -355,5 +332,4 @@
     /* INetworkConnector */
     pData->INetworkConnector.pfnSend                = drvNetSnifferSend;
-    pData->INetworkConnector.pfnSendEx              = drvNetSnifferSendEx;
     pData->INetworkConnector.pfnSetPromiscuousMode  = drvNetSnifferSetPromiscuousMode;
     pData->INetworkConnector.pfnNotifyLinkChanged   = drvNetSnifferNotifyLinkChanged;
Index: trunk/src/VBox/Devices/Network/DrvTAP.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvTAP.cpp	(revision 584)
+++ trunk/src/VBox/Devices/Network/DrvTAP.cpp	(revision 587)
@@ -157,25 +157,4 @@
 }
 
-/**
- * Send multiple data packets to the network.
- *
- * @returns VBox status code.
- * @param   pInterface      Pointer to the interface structure containing the called function pointer.
- * @param   cPackets        Number of packets
- * @param   paPacket        Packet description array
- * @thread  EMT
- */
-static DECLCALLBACK(int) drvTAPSendEx(PPDMINETWORKCONNECTOR pInterface, uint32_t cPackets, PPDMINETWORKPACKET paPacket)
-{
-    int rc = VERR_INVALID_PARAMETER;
-
-    for (uint32_t i = 0; i < cPackets; i++)
-    {
-        rc = drvTAPSend(pInterface, paPacket[i].pvBuf, paPacket[i].cb);
-        if (VBOX_FAILURE(rc))
-            break;
-    }
-    return rc;
-}
 
 /**
@@ -530,5 +509,4 @@
     /* INetwork */
     pData->INetworkConnector.pfnSend                = drvTAPSend;
-    pData->INetworkConnector.pfnSendEx              = drvTAPSendEx;
     pData->INetworkConnector.pfnSetPromiscuousMode  = drvTAPSetPromiscuousMode;
     pData->INetworkConnector.pfnNotifyLinkChanged   = drvTAPNotifyLinkChanged;
Index: trunk/src/VBox/Devices/Network/DrvTAPWin32.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvTAPWin32.cpp	(revision 584)
+++ trunk/src/VBox/Devices/Network/DrvTAPWin32.cpp	(revision 587)
@@ -165,53 +165,4 @@
 }
 
-/**
- * Send multiple data packets to the network.
- *
- * @returns VBox status code.
- * @param   pInterface      Pointer to the interface structure containing the called function pointer.
- * @param   cPackets        Number of packets
- * @param   paPacket        Packet description array
- * @thread  EMT
- */
-static DECLCALLBACK(int) drvTAPW32SendEx(PPDMINETWORKCONNECTOR pInterface, uint32_t cPackets, PPDMINETWORKPACKET paPacket)
-{
-    PDRVTAP pData = PDMINETWORKCONNECTOR_2_DRVTAP(pInterface);
-    int     rc = VERR_INVALID_PARAMETER;
-
-    if (pData->tapVersion.minor > 1)
-    {
-        TAP_SCATTER_GATHER_LIST_MAX list;
-        BOOL                        ret;
-        DWORD                       length;
-
-        list.cPackets = RT_MIN(cPackets, TAP_SCATTER_GATHER_MAX_PACKETS);
-        cPackets     -= list.cPackets;
-
-        for (uint32_t i=0;i<list.cPackets;i++)
-        {
-            list.aPacket[i].pPacket = paPacket[i].pvBuf;
-            list.aPacket[i].cb      = paPacket[i].cb;
-        }
-
-        ret = DeviceIoControl(pData->hFile, TAP_IOCTL_TRANSFER_ETHPACKETS, &list, RT_OFFSETOF(TAP_SCATTER_GATHER_LIST_MAX, aPacket[list.cPackets]),
-                              NULL, 0, &length, NULL);
-        if (ret == FALSE)
-            return RTErrConvertFromWin32(GetLastError());
-
-        if (cPackets)
-            return drvTAPW32SendEx(pInterface, cPackets, &paPacket[list.cPackets]);
-    }
-    else
-    {
-        for (uint32_t i=0;i<cPackets;i++)
-        {
-            rc = drvTAPW32Send(pInterface, paPacket[i].pvBuf, paPacket[i].cb);
-            if (VBOX_FAILURE(rc))
-                break;
-        }
-    }
-    return rc;
-}
-
 
 /**
@@ -515,5 +466,4 @@
     /* INetwork */
     pData->INetworkConnector.pfnSend                = drvTAPW32Send;
-    pData->INetworkConnector.pfnSendEx              = drvTAPW32SendEx;
     pData->INetworkConnector.pfnSetPromiscuousMode  = drvTAPW32SetPromiscuousMode;
     pData->INetworkConnector.pfnNotifyLinkChanged   = drvTAPW32NotifyLinkChanged;
