Lines Matching refs:pUrb

1223 static void usbProxyLinuxCleanupFailedSubmit(PUSBPROXYDEV pProxyDev, PUSBPROXYURBLNX pUrbLnx, PUSBPROXYURBLNX pCur, PVUSBURB pUrb, bool *pfUnplugged)
1225 if (pUrb->enmType == VUSBXFERTYPE_MSG)
1226 usbProxyLinuxUrbSwapSetup((PVUSBSETUP)pUrb->abData);
1242 LogRel(("USB: Failed to discard %p! errno=%d (pUrb=%p)\n", pUrbLnx->KUrb.usercontext, errno, pUrb)); /* serious! */
1272 static int usbProxyLinuxSubmitURB(PUSBPROXYDEV pProxyDev, PUSBPROXYURBLNX pCur, PVUSBURB pUrb, bool *pfUnplugged)
1290 pUrb, errno, pCur->KUrb.type, pCur->KUrb.endpoint, pCur->KUrb.buffer_length, cTries));
1350 * @param pUrb The VUSB URB.
1352 static int usbProxyLinuxUrbQueueSplit(PUSBPROXYDEV pProxyDev, PUSBPROXYURBLNX pUrbLnx, PVUSBURB pUrb)
1357 const unsigned cKUrbs = (pUrb->cbData + SPLIT_SIZE - 1) / SPLIT_SIZE;
1358 LogFlow(("usbProxyLinuxUrbQueueSplit: pUrb=%p cKUrbs=%d cbData=%d\n", pUrb, cKUrbs, pUrb->cbData));
1360 uint32_t cbLeft = pUrb->cbData;
1361 uint8_t *pb = &pUrb->abData[0];
1364 switch (pUrb->enmType)
1375 pUrbLnx->KUrb.endpoint = pUrb->EndPt;
1376 if (pUrb->enmDir == VUSBDIRECTION_IN)
1379 if (pUrb->enmDir == VUSBDIRECTION_IN && pUrb->fShortNotOk)
1389 pUrbLnx->KUrb.usercontext = pUrb;
1400 if (pUrb->enmDir == VUSBDIRECTION_IN && !pUrb->fShortNotOk)
1407 rc = usbProxyLinuxSubmitURB(pProxyDev, pUrbLnx, pUrb, &fUnplugged);
1425 rc = usbProxyLinuxSubmitURB(pProxyDev, pCur, pUrb, &fUnplugged);
1434 pUrb->Dev.pvPrivate = pUrbLnx;
1440 usbProxyLinuxCleanupFailedSubmit(pProxyDev, pUrbLnx, pCur, pUrb, &fUnplugged);
1448 static DECLCALLBACK(int) usbProxyLinuxUrbQueue(PUSBPROXYDEV pProxyDev, PVUSBURB pUrb)
1453 LogFlow(("usbProxyLinuxUrbQueue: pProxyDev=%s pUrb=%p EndPt=%d cbData=%d\n",
1454 usbProxyGetName(pProxyDev), pUrb, pUrb->EndPt, pUrb->cbData));
1463 pUrbLnx->KUrb.endpoint = pUrb->EndPt | (pUrb->enmDir == VUSBDIRECTION_IN ? 0x80 : 0);
1466 if (pUrb->enmDir == VUSBDIRECTION_IN && pUrb->fShortNotOk)
1468 pUrbLnx->KUrb.buffer = pUrb->abData;
1469 pUrbLnx->KUrb.buffer_length = pUrb->cbData;
1475 pUrbLnx->KUrb.usercontext = pUrb;
1477 switch (pUrb->enmType)
1481 if (pUrb->cbData < sizeof(VUSBSETUP))
1486 usbProxyLinuxUrbSwapSetup((PVUSBSETUP)pUrb->abData);
1495 pUrbLnx->KUrb.number_of_packets = pUrb->cIsocPkts;
1497 for (i = 0; i < pUrb->cIsocPkts; i++)
1499 pUrbLnx->KUrb.iso_frame_desc[i].length = pUrb->aIsocPkts[i].cb;
1536 if (pUrb->enmType == VUSBXFERTYPE_MSG)
1537 usbProxyLinuxUrbSwapSetup((PVUSBSETUP)pUrb->abData);
1554 && pUrb->cbData >= 8*_1K)
1556 rc = usbProxyLinuxUrbQueueSplit(pProxyDev, pUrbLnx, pUrb);
1562 pUrb, errno, pUrbLnx->KUrb.type, pUrbLnx->KUrb.endpoint, pUrbLnx->KUrb.buffer_length, cTries));
1568 if (pUrb->enmType == VUSBXFERTYPE_MSG)
1569 usbProxyLinuxUrbSwapSetup((PVUSBSETUP)pUrb->abData);
1578 pUrb->Dev.pvPrivate = pUrbLnx;
1759 PVUSBURB pUrb = (PVUSBURB)pUrbLnx->KUrb.usercontext;
1760 fSucceeded = usbProxyLinuxSubmitURB(pProxyDev, pNew, pUrb, &fUnplugged);
1785 PVUSBURB pUrb = (PVUSBURB)pUrbLnx->KUrb.usercontext;
1786 if ( pUrb
1793 uint8_t *pbEnd = &pUrb->abData[0];
1794 pUrb->enmStatus = VUSBSTATUS_OK;
1800 if (pUrb->enmStatus == VUSBSTATUS_OK)
1801 pUrb->enmStatus = vusbProxyLinuxUrbGetStatus(pCur);
1803 pUrb->cbData = pbEnd - &pUrb->abData[0];
1810 pUrb->enmStatus = vusbProxyLinuxUrbGetStatus(pUrbLnx);
1811 pUrb->cbData = pUrbLnx->KUrb.actual_length;
1812 if (pUrb->enmType == VUSBXFERTYPE_ISOC)
1815 for (i = 0, off = 0; i < pUrb->cIsocPkts; i++)
1817 pUrb->aIsocPkts[i].enmStatus = vusbProxyLinuxStatusToVUsbStatus(pUrbLnx->KUrb.iso_frame_desc[i].status);
1818 Assert(pUrb->aIsocPkts[i].off == off);
1819 pUrb->aIsocPkts[i].cb = pUrbLnx->KUrb.iso_frame_desc[i].actual_length;
1826 pUrb->Dev.pvPrivate = NULL;
1829 if (pUrb->enmType == VUSBXFERTYPE_MSG)
1831 pUrb->cbData += sizeof(VUSBSETUP);
1832 usbProxyLinuxUrbSwapSetup((PVUSBSETUP)pUrb->abData);
1839 pUrb = NULL;
1842 LogFlow(("usbProxyLinuxUrbReap: pProxyDev=%s returns %p\n", usbProxyGetName(pProxyDev), pUrb));
1843 return pUrb;
1851 static DECLCALLBACK(int) usbProxyLinuxUrbCancel(PUSBPROXYDEV pProxyDev, PVUSBURB pUrb)
1854 PUSBPROXYURBLNX pUrbLnx = (PUSBPROXYURBLNX)pUrb->Dev.pvPrivate;
1871 pUrb, errno, usbProxyGetName(pProxyDev)));
1882 pUrb, errno, usbProxyGetName(pProxyDev)));