/vbox/src/VBox/HostDrivers/VBoxNetFlt/darwin/ |
H A D | VBoxNetFlt-darwin.cpp | 401 * @param pSG The (scatter/)gather list. 403 static mbuf_t vboxNetFltDarwinMBufFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG) argument 413 Assert(!pSG->pvUserData || pSG->pvUserData == pThis); 414 Assert(!pSG->pvUserData2); 415 pSG->pvUserData = pThis; 439 errno_t err = mbuf_allocpacket(How, pSG->cbTotal, NULL, &pPkt); 449 mbuf_pkthdr_setlen(pPkt, pSG->cbTotal); 454 && mbuf_maxlen(pCur) >= pSG->cbTotal) 456 mbuf_setlen(pCur, pSG 562 vboxNetFltDarwinMBufToSG(PVBOXNETFLTINS pThis, mbuf_t pMBuf, void *pvFrame, PINTNETSG pSG, unsigned cSegs, uint32_t fSrc) argument [all...] |
/vbox/src/VBox/HostDrivers/VBoxNetAdp/ |
H A D | VBoxNetAdp.c | 363 DECLHIDDEN(void) vboxNetAdpReceive(PVBOXNETADP pThis, PINTNETSG pSG) argument 369 AssertPtr(pSG); 373 pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, pSG, INTNETTRUNKDIR_HOST); 395 static DECLCALLBACK(int) vboxNetAdpPortXmit(PINTNETTRUNKIFPORT pIfPort, PINTNETSG pSG, uint32_t fDst) argument 404 AssertPtr(pSG); 407 Log(("vboxNetAdpPortXmit: outgoing packet (len=%d)\n", pSG->cbTotal)); 424 rc = vboxNetAdpPortOsXmit(pThis, pSG, fDst);
|
/vbox/src/VBox/HostDrivers/VBoxNetFlt/ |
H A D | VBoxNetFlt.c | 434 static DECLCALLBACK(int) vboxNetFltPortXmit(PINTNETTRUNKIFPORT pIfPort, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument 443 AssertPtr(pSG); 455 rc = vboxNetFltPortOsXmit(pThis, pvIfData, pSG, fDst);
|
/vbox/src/VBox/HostDrivers/VBoxNetFlt/freebsd/ |
H A D | VBoxNetFlt-freebsd.c | 207 static void vboxNetFltFreeBSDMBufToSG(PVBOXNETFLTINS pThis, struct mbuf *m, PINTNETSG pSG, argument 214 IntNetSgInitTempSegs(pSG, m_length(m, NULL), cSegs, 0 /*cSegsUsed*/); 221 pSG->aSegs[i].cb = m0->m_len; 222 pSG->aSegs[i].pv = mtod(m0, uint8_t *); 223 pSG->aSegs[i].Phys = NIL_RTHCPHYS; 228 if (pSG->cbTotal < 60) 230 pSG->aSegs[i].Phys = NIL_RTHCPHYS; 231 pSG->aSegs[i].pv = (void *)&s_abZero[0]; 232 pSG->aSegs[i].cb = 60 - pSG 244 vboxNetFltFreeBSDSGMBufFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG) argument 430 PINTNETSG pSG; local 475 PINTNETSG pSG; local 513 vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument [all...] |
/vbox/include/VBox/ |
H A D | intnetinline.h | 63 * @param pSG Pointer to the scatter / gather structure. 68 DECLINLINE(void) IntNetSgInitTempSegs(PINTNETSG pSG, uint32_t cbTotal, unsigned cSegs, unsigned cSegsUsed) argument 70 pSG->pvOwnerData = NULL; 71 pSG->pvUserData = NULL; 72 pSG->pvUserData2 = NULL; 73 pSG->cbTotal = cbTotal; 74 pSG->cUsers = 1; 75 pSG->fFlags = INTNETSG_FLAGS_TEMP; 76 pSG->GsoCtx.u8Type = (uint8_t)PDMNETWORKGSOTYPE_INVALID; 77 pSG 105 IntNetSgInitTempSegsGso(PINTNETSG pSG, uint32_t cbTotal, unsigned cSegs, unsigned cSegsUsed, PCPDMNETWORKGSO pGso) argument 141 IntNetSgInitTemp(PINTNETSG pSG, void *pvFrame, uint32_t cbFrame) argument 158 IntNetSgInitTempGso(PINTNETSG pSG, void *pvFrame, uint32_t cbFrame, PCPDMNETWORKGSO pGso) argument 173 IntNetSgRead(PCINTNETSG pSG, void *pvBuf) argument 202 IntNetSgReadEx(PCINTNETSG pSG, uint32_t offSrc, uint32_t cbToRead, void *pvBuf) argument [all...] |
/vbox/src/VBox/HostDrivers/VBoxNetFlt/win/drv/ |
H A D | VBoxNetFltP-win.cpp | 865 PINTNETSG pSG; local 872 Status = vboxNetFltWinAllocSG(cbPacket + cbHeaderBuffer, &pSG); 879 pRcvData = (PUCHAR)pSG->aSegs[0].pv; 888 pLb = vboxNetFltWinLbSearchLoopBackBySG(pNetFlt, pSG, false); 899 pSG, /* PINTNETSG */ 900 pSG, /* PVOID pBufToFree */ 913 vboxNetFltWinMemFree(pSG); 919 vboxNetFltWinMemFree(pSG); 925 VBOXNETFLT_LBVERIFYSG(pNetFlt, pSG); 929 if (vboxNetFltWinPostIntnet(pNetFlt, pSG, VBOXNETFLT_PACKET_S [all...] |
H A D | VBoxNetFltRt-win.h | 24 DECLHIDDEN(bool) vboxNetFltWinMatchPacketAndSG(PNDIS_PACKET pPacket, PINTNETSG pSG, const INT cbMatch); 239 DECLINLINE(PNDIS_PACKET) vboxNetFltWinSearchPacketBySG(PVBOXNETFLT_SINGLE_LIST pList, PINTNETSG pSG, int cbMatch, bool bRemove) argument 248 if(vboxNetFltWinMatchPacketAndSG(pCurPacket, pSG, cbMatch)) 317 DECLINLINE(PNDIS_PACKET) vboxNetFltWinInterlockedSearchPacketBySG(PVBOXNETFLT_INTERLOCKED_SINGLE_LIST pList, PINTNETSG pSG, int cbMatch, bool bRemove) argument 321 pFound = vboxNetFltWinSearchPacketBySG(&pList->List, pSG, cbMatch, bRemove); 369 DECLINLINE(PNDIS_PACKET) vboxNetFltWinLbSearchLoopBackBySG(PVBOXNETFLTINS pNetFlt, PINTNETSG pSG, bool bRemove) argument 371 return vboxNetFltWinInterlockedSearchPacketBySG(&pNetFlt->u.s.WinIf.SendPacketQueue, pSG, VBOXNETFLT_PACKETMATCH_LENGTH, bRemove); 390 DECLHIDDEN(bool) vboxNetFltWinCheckMACsSG(PINTNETSG pSG, PRTMAC pDst, PRTMAC pSrc); 792 DECLHIDDEN(PNDIS_PACKET) vboxNetFltWinNdisPacketFromSG(PVBOXNETFLTINS pNetFlt, PINTNETSG pSG, PVOID pBufToFree, bool bToWire, bool bCopyMemory);
|
H A D | VBoxNetFltCmn-win.h | 476 PINTNETSG pSG; member in struct:VBOXNETFLT_PACKET_QUEUE_WORKER
|
H A D | VBoxNetFltRt-win.cpp | 262 * PINTNETSG pSG manipulation functions 268 static NDIS_STATUS vboxNetFltWinNdisBufferMoveToSG0(PNDIS_BUFFER pBuffer, PINTNETSG pSG) argument 277 Assert(pSG->cSegsAlloc == 1); 279 paSeg = pSG->aSegs; 283 pSG->cbTotal = 0; 297 pSG->cbTotal += cbCurrentLength; 307 pSG->cSegsUsed = 1; 308 Assert(pSG->cbTotal == paSeg->cb); 315 static NDIS_STATUS vboxNetFltWinNdisBuffersToSG(PNDIS_BUFFER pBuffer, PINTNETSG pSG) argument 332 pSG 351 vboxNetFltWinDeleteSG(PINTNETSG pSG) argument 358 PINTNETSG pSG; local 374 vboxNetFltWinQuPostPacket(PVBOXNETFLTINS pNetFlt, PNDIS_PACKET pPacket, PINTNETSG pSG, uint32_t fFlags , PNDIS_PACKET pTmpPacket ) argument 503 PINTNETSG pSG = NULL; local 1061 PINTNETSG pSG; local 1098 PINTNETSG pSG; local 1148 PINTNETSG pSG; local 1499 vboxNetFltWinNdisPacketFromSG(PVBOXNETFLTINS pNetFlt, PINTNETSG pSG, PVOID pBufToFree, bool bToWire, bool bCopyMemory) argument 2073 vboxNetFltWinGetEthHdrSG(PINTNETSG pSG) argument 2105 vboxNetFltWinCheckMACsSG(PINTNETSG pSG, PRTMAC pDst, PRTMAC pSrc) argument 2233 vboxNetFltWinMatchPacketAndSG(PNDIS_PACKET pPacket, PINTNETSG pSG, const INT cbMatch) argument 3049 vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument [all...] |
/vbox/src/VBox/Devices/Network/ |
H A D | SrvIntNetR0.cpp | 485 * @param pSG The SG list to write to. 490 static bool intnetR0SgWritePartSlow(PCINTNETSG pSG, uint32_t off, uint32_t cb, void const *pvBuf) argument 492 if (RT_UNLIKELY(off + cb > pSG->cbTotal)) 498 unsigned const cSegs = pSG->cSegsUsed; Assert(cSegs == pSG->cSegsUsed); 500 while (off > pSG->aSegs[iSeg].cb) 502 off -= pSG->aSegs[iSeg++].cb; 509 uint32_t cbCanCopy = pSG->aSegs[iSeg].cb - off; 511 memcpy((uint8_t *)pSG->aSegs[iSeg].pv + off, pvBuf, cb); 515 memcpy((uint8_t *)pSG [all...] |
/vbox/src/VBox/HostDrivers/VBoxNetFlt/solaris/ |
H A D | VBoxNetFltBow-solaris.c | 256 LOCAL mblk_t *vboxNetFltSolarisMBlkFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG, uint32_t fDst); 258 LOCAL int vboxNetFltSolarisMBlkToSG(PVBOXNETFLTINS pThis, mblk_t *pMsg, PINTNETSG pSG, unsigned cSegs, uint32_t fSrc); 457 * @param pSG Pointer to the scatter-gather list. 461 LOCAL inline mblk_t *vboxNetFltSolarisMBlkFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG, uint32_t fDst) argument 463 Log((DEVICE_NAME ":vboxNetFltSolarisMBlkFromSG pThis=%p pSG=%p\n", pThis, pSG)); 465 mblk_t *pMsg = allocb(pSG->cbTotal, BPRI_HI); 468 LogRel((DEVICE_NAME ":vboxNetFltSolarisMBlkFromSG failed to alloc %d bytes for mblk_t.\n", pSG->cbTotal)); 476 for (unsigned i = 0; i < pSG->cSegsUsed; i++) 478 if (pSG 526 vboxNetFltSolarisMBlkToSG(PVBOXNETFLTINS pThis, mblk_t *pMsg, PINTNETSG pSG, unsigned cSegs, uint32_t fSrc) argument 691 PINTNETSG pSG = (PINTNETSG)alloca(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); local 1433 vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument [all...] |
H A D | VBoxNetFlt-solaris.c | 374 static mblk_t *vboxNetFltSolarisMBlkFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG, uint32_t fDst); 376 static int vboxNetFltSolarisMBlkToSG(PVBOXNETFLTINS pThis, mblk_t *pMsg, PINTNETSG pSG, unsigned cSegs, uint32_t fSrc); 2853 * @param pSG Pointer to the scatter-gather list. 2855 static mblk_t *vboxNetFltSolarisMBlkFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG, uint32_t fDst) argument 2857 LogFunc((DEVICE_NAME ":vboxNetFltSolarisMBlkFromSG pThis=%p pSG=%p\n", pThis, pSG)); 2859 mblk_t *pMsg = allocb(pSG->cbTotal, BPRI_MED); 2862 LogRel((DEVICE_NAME ":vboxNetFltSolarisMBlkFromSG failed to alloc %d bytes for mblk_t.\n", pSG->cbTotal)); 2870 for (unsigned i = 0; i < pSG->cSegsUsed; i++) 2872 if (pSG 2919 vboxNetFltSolarisMBlkToSG(PVBOXNETFLTINS pThis, mblk_t *pMsg, PINTNETSG pSG, unsigned cSegs, uint32_t fSrc) argument 3522 PINTNETSG pSG = (PINTNETSG)alloca(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); local 3914 vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument [all...] |
/vbox/src/VBox/HostDrivers/VBoxNetFlt/linux/ |
H A D | VBoxNetFlt-linux.c | 552 * @param pSG The (scatter/)gather list. 554 DECLINLINE(bool) vboxNetFltLinuxIsGso(PINTNETSG pSG) 557 return !((PDMNETWORKGSOTYPE)pSG->GsoCtx.u8Type == PDMNETWORKGSOTYPE_INVALID); 568 * @param pSG The (scatter/)gather list. 570 DECLINLINE(uint32_t) vboxNetFltLinuxFrameSize(PINTNETSG pSG) 574 if (pSG->aSegs[0].cb >= sizeof(RTNETETHERHDR)) 575 u16Type = RT_BE2H_U16(((PCRTNETETHERHDR)pSG->aSegs[0].pv)->EtherType); 576 else if (pSG->cbTotal >= sizeof(RTNETETHERHDR)) 580 for (i = 0; i < pSG->cSegsUsed; ++i) 582 if (off <= pSG 610 vboxNetFltLinuxSkBufFromSG(PVBOXNETFLTINS pThis, PINTNETSG pSG, bool fDstWire) argument 743 vboxNetFltLinuxSkBufToSG(PVBOXNETFLTINS pThis, struct sk_buff *pBuf, PINTNETSG pSG, unsigned cSegs, uint32_t fSrc, PCPDMNETWORKGSO pGsoCtx) argument 966 vboxNetFltLinuxDestroySG(PINTNETSG pSG) argument 984 vboxNetFltDumpPacket(PINTNETSG pSG, bool fEgress, const char *pszWhere, int iIncrement) argument 1255 PINTNETSG pSG = (PINTNETSG)alloca(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); local 1299 PINTNETSG pSG = (PINTNETSG)alloca(RT_OFFSETOF(INTNETSG, aSegs[cSegs])); local 1864 vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument [all...] |
/vbox/src/VBox/HostDrivers/VBoxNetFlt/win/ndis6/ |
H A D | VBoxNetLwf-win.cpp | 1031 DECLINLINE(void) vboxNetLwfWinDumpPacket(PCINTNETSG pSG, const char *cszText) argument 1035 uint32_t cb = pSG->cbTotal < VBOXNETLWF_PKTDMPSIZE ? pSG->cbTotal : VBOXNETLWF_PKTDMPSIZE; 1036 IntNetSgReadEx(pSG, 0, cb, bPacket); 1156 static void vboxNetLwfWinDestroySG(PINTNETSG pSG) argument 1158 NdisFreeMemory(pSG, 0, 0); 1159 Log4((__FUNCTION__ ": freed SG 0x%p\n", pSG)); 1189 static PNET_BUFFER_LIST vboxNetLwfWinSGtoNB(PVBOXNETLWF_MODULE pModule, PINTNETSG pSG) argument 1191 AssertReturn(pSG->cSegsUsed >= 1, NULL); 1192 LogFlow(("==>"__FUNCTION__": segments=%d\n", pSG 1282 PINTNETSG pSG = (PINTNETSG)NdisAllocateMemoryWithTagPriority(pModule->hFilter, local 1389 PINTNETSG pSG = vboxNetLwfWinNBtoSG(pModuleCtx, pBuf); local 2054 vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst) argument [all...] |