Lines Matching defs:pEp

310 LOCAL void vboxUSBSolarisDestroyEndPoint(vboxusb_state_t *pState, vboxusb_ep_t *pEp);
312 LOCAL int vboxUSBSolarisOpenPipe(vboxusb_state_t *pState, vboxusb_ep_t *pEp);
313 LOCAL void vboxUSBSolarisClosePipe(vboxusb_state_t *pState, vboxusb_ep_t *pEp);
314 LOCAL int vboxUSBSolarisCtrlXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb);
316 LOCAL int vboxUSBSolarisBulkXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *purb);
318 LOCAL int vboxUSBSolarisIntrXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb);
320 LOCAL int vboxUSBSolarisIsocXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb);
1657 vboxusb_ep_t *pEp = &pState->aEps[EndPtIndex];
1658 AssertPtrReturn(pEp, VERR_INVALID_POINTER);
1707 rc = vboxUSBSolarisOpenPipe(pState, pEp);
1733 rc = vboxUSBSolarisCtrlXfer(pState, pEp, pUrb);
1739 rc = vboxUSBSolarisBulkXfer(pState, pEp, pUrb);
1745 rc = vboxUSBSolarisIntrXfer(pState, pEp, pUrb);
1751 rc = vboxUSBSolarisIsocXfer(pState, pEp, pUrb);
2006 vboxusb_ep_t *pEp = &pState->aEps[EndPtIndex];
2007 if (RT_LIKELY(pEp))
2012 if (pEp->pPipe)
2027 usb_pipe_reset(pState->pDip, pEp->pPipe,
2290 vboxusb_ep_t *pEp = &pState->aEps[EndPtIndex];
2291 if (RT_LIKELY(pEp))
2293 if (pEp->pPipe)
2298 if ((pEp->EpDesc.bEndpointAddress & USB_EP_NUM_MASK) == 0)
2309 usb_pipe_reset(pState->pDip, pEp->pPipe,
2317 rc = usb_pipe_drain_reqs(pState->pDip, pEp->pPipe,
2370 vboxusb_ep_t *pEp = NULL;
2383 pEp = &pState->aEps[EpIndex];
2384 AssertRelease(pEp);
2389 pEp->EpDesc = *pEpDesc;
2390 pEp->uCfgValue = uCfgValue;
2391 pEp->uInterface = uInterface;
2392 pEp->uAlt = uAlt;
2393 if (pEp->fInitialized != VBOXUSB_EP_INITIALIZED)
2395 pEp->pPipe = NULL;
2396 pEp->EpState = VBOXUSB_EP_STATE_CLOSED;
2397 bzero(&pEp->PipePolicy, sizeof(pEp->PipePolicy));
2398 pEp->PipePolicy.pp_max_async_reqs = VBOXUSB_MAX_PIPE_ASYNC_REQS;
2399 pEp->fIsocPolling = false;
2400 list_create(&pEp->hIsocInUrbs, sizeof(vboxusb_urb_t), offsetof(vboxusb_urb_t, hListLink));
2401 pEp->cIsocInUrbs = 0;
2402 list_create(&pEp->hIsocInLandedReqs, sizeof(vboxusb_isoc_req_t), offsetof(vboxusb_isoc_req_t, hListLink));
2403 pEp->cbIsocInLandedReqs = 0;
2404 pEp->cbMaxIsocData = 0;
2405 pEp->fInitialized = VBOXUSB_EP_INITIALIZED;
2408 EpIndex, pEp->EpDesc.bEndpointAddress));
2427 int rc = vboxUSBSolarisInitEndPoint(pState, NULL /* pEp */, 0 /* uCfgValue */, 0 /* uInterface */, 0 /* uAlt */);
2481 LogRel((DEVICE_NAME ":vboxUSBSolarisInitEndPointsForConfig: vboxUSBSolarisInitEndPoint failed! pEp=%p "
2530 LogRel((DEVICE_NAME ":vboxUSBSolarisInitEndPointsForInterfaceAlt: vboxUSBSolarisInitEndPoint failed! pEp=%p "
2567 vboxusb_ep_t *pEp = &pState->aEps[i];
2568 if (pEp)
2570 vboxUSBSolarisDestroyEndPoint(pState, pEp);
2571 pEp = NULL;
2581 * @param pEp The Endpoint.
2584 LOCAL void vboxUSBSolarisDestroyEndPoint(vboxusb_state_t *pState, vboxusb_ep_t *pEp)
2586 LogFunc((DEVICE_NAME ":vboxUSBSolarisDestroyEndPoint pState=%p pEp=%p\n", pState, pEp));
2589 if (pEp->fInitialized == VBOXUSB_EP_INITIALIZED)
2591 vboxusb_urb_t *pUrb = list_remove_head(&pEp->hIsocInUrbs);
2597 pUrb = list_remove_head(&pEp->hIsocInUrbs);
2599 pEp->cIsocInUrbs = 0;
2600 list_destroy(&pEp->hIsocInUrbs);
2602 vboxusb_isoc_req_t *pIsocReq = list_remove_head(&pEp->hIsocInLandedReqs);
2606 pIsocReq = list_remove_head(&pEp->hIsocInLandedReqs);
2608 pEp->cbIsocInLandedReqs = 0;
2609 list_destroy(&pEp->hIsocInLandedReqs);
2611 pEp->fInitialized = 0;
2630 vboxusb_ep_t *pEp = &pState->aEps[i];
2631 if ( pEp
2632 && pEp->pPipe)
2635 vboxUSBSolarisClosePipe(pState, pEp);
2641 vboxusb_ep_t *pEp = &pState->aEps[0];
2642 if ( pEp
2643 && pEp->pPipe)
2645 vboxUSBSolarisClosePipe(pState, pEp);
2656 * @param pEp The Endpoint.
2661 LOCAL int vboxUSBSolarisOpenPipe(vboxusb_state_t *pState, vboxusb_ep_t *pEp)
2668 if (pEp->pPipe)
2675 if ((pEp->EpDesc.bEndpointAddress & USB_EP_NUM_MASK) == 0)
2677 pEp->pPipe = pState->pDevDesc->dev_default_ph;
2678 pEp->EpState |= VBOXUSB_EP_STATE_OPENED;
2687 int rc = usb_pipe_open(pState->pDip, &pEp->EpDesc, &pEp->PipePolicy, USB_FLAGS_NOSLEEP, &pEp->pPipe);
2691 LogFunc((DEVICE_NAME ":vboxUSBSolarisOpenPipe: Opened pipe. pState=%p pEp=%p\n", pState, pEp));
2692 usb_pipe_set_private(pEp->pPipe, (usb_opaque_t)pEp);
2697 if ( VBOXUSB_XFER_TYPE(pEp) == VUSBXFERTYPE_ISOC
2698 && VBOXUSB_XFER_DIR(pEp) == VUSB_DIR_TO_HOST)
2705 uint16_t cbMax = VBOXUSB_PKT_SIZE(pEp->EpDesc.wMaxPacketSize);
2709 pEp->cbMaxIsocData = 1000 * cbMax * 8;
2714 pEp->cbMaxIsocData = 400 * cbMax * 8;
2716 Log((DEVICE_NAME ":vboxUSBSolarisOpenPipe pEp=%p cbMaxIsocData=%u\n", pEp->cbMaxIsocData));
2719 pEp->EpState |= VBOXUSB_EP_STATE_OPENED;
2724 LogRel((DEVICE_NAME ":vboxUSBSolarisOpenPipe failed! rc=%d pState=%p pEp=%p\n", rc, pState, pEp));
2736 * @param pEp The Endpoint.
2740 LOCAL void vboxUSBSolarisClosePipe(vboxusb_state_t *pState, vboxusb_ep_t *pEp)
2742 LogFunc((DEVICE_NAME ":vboxUSBSolarisClosePipe pState=%p pEp=%p\n", pState, pEp));
2743 AssertPtr(pEp);
2745 if (pEp->pPipe)
2747 pEp->EpState &= ~(VBOXUSB_EP_STATE_OPENED);
2752 if (pEp->pPipe == pState->pDevDesc->dev_default_ph)
2755 usb_pipe_drain_reqs(pState->pDip, pEp->pPipe, 0, USB_FLAGS_SLEEP, NULL /* callback */, NULL /* callback arg. */);
2764 if (pEp->fIsocPolling)
2766 pEp->fIsocPolling = false;
2768 usb_pipe_stop_isoc_polling(pEp->pPipe, USB_FLAGS_NOSLEEP);
2775 Log((DEVICE_NAME ":vboxUSBSolarisClosePipe pipe bmAttributes=%#x bEndpointAddress=%#x\n", pEp->EpDesc.bmAttributes,
2776 pEp->EpDesc.bEndpointAddress));
2778 usb_pipe_close(pState->pDip, pEp->pPipe, USB_FLAGS_SLEEP, NULL /* callback */, NULL /* callback arg. */);
2785 pEp->pPipe = NULL;
2787 Log((DEVICE_NAME ":vboxUSBSolarisClosePipe successful. pEp=%p\n", pEp));
2790 Assert(pEp->pPipe == NULL);
3058 * @param pEp The Endpoint for the Xfer.
3064 LOCAL int vboxUSBSolarisCtrlXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb)
3066 LogFunc((DEVICE_NAME ":vboxUSBSolarisCtrlXfer pState=%p pEp=%p pUrb=%p enmDir=%d cbData=%d\n", pState, pEp, pUrb,
3123 rc = usb_pipe_ctrl_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3216 * @param pEp The Endpoint for the Xfer.
3222 LOCAL int vboxUSBSolarisBulkXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb)
3224 LogFunc((DEVICE_NAME ":vboxUSBSolarisBulkXfer pState=%p pEp=%p pUrb=%p enmDir=%d cbData=%d\n", pState, pEp, pUrb,
3264 rc = usb_pipe_bulk_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3300 vboxusb_ep_t *pEp = (vboxusb_ep_t *)usb_pipe_get_private(pPipe);
3301 if (RT_LIKELY(pEp))
3343 * @param pEp The Endpoint for the Xfer.
3349 LOCAL int vboxUSBSolarisIntrXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb)
3351 LogFunc((DEVICE_NAME ":vboxUSBSolarisIntrXfer pState=%p pEp=%p pUrb=%p enmDir=%d cbData=%d\n", pState, pEp, pUrb,
3373 pReq->intr_len = pUrb->cbDataR3; /* Not pEp->EpDesc.wMaxPacketSize */
3382 rc = usb_pipe_intr_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3415 vboxusb_ep_t *pEp = (vboxusb_ep_t *)usb_pipe_get_private(pPipe);
3416 if (RT_LIKELY(pEp))
3456 * @param pEp The Endpoint for the Xfer.
3462 LOCAL int vboxUSBSolarisIsocXfer(vboxusb_state_t *pState, vboxusb_ep_t *pEp, vboxusb_urb_t *pUrb)
3464 // LogFunc((DEVICE_NAME ":vboxUSBSolarisIsocXfer pState=%p pEp=%p pUrb=%p\n", pState, pEp, pUrb));
3476 if (pEp->fIsocPolling)
3481 if (pEp->cbIsocInLandedReqs + cbData > pEp->cbMaxIsocData)
3484 Log((DEVICE_NAME ":vboxUSBSolarisIsocXfer Max Isoc. data %d bytes queued\n", pEp->cbMaxIsocData));
3488 list_insert_tail(&pEp->hIsocInUrbs, pUrb);
3489 ++pEp->cIsocInUrbs;
3530 rc = usb_pipe_isoc_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3539 list_insert_tail(&pEp->hIsocInUrbs, pUrb);
3540 ++pEp->cIsocInUrbs;
3541 pEp->fIsocPolling = true;
3555 vboxusb_urb_t *pIsocFailedUrb = list_remove_tail(&pEp->hIsocInUrbs);
3559 --pEp->cIsocInUrbs;
3561 pEp->fIsocPolling = false;
3596 vboxusb_ep_t *pEp = (vboxusb_ep_t *)usb_pipe_get_private(pPipe);
3597 if ( pEp
3598 && pEp->pPipe)
3610 pEp->fIsocPolling = false;
3618 Log((DEVICE_NAME ":vboxUSBSolarisIsocInXferCompleted cIsocInUrbs=%d cbIsocInLandedReqs=%d\n", pEp->cIsocInUrbs,
3619 pEp->cbIsocInLandedReqs));
3626 if ( pEp->cIsocInUrbs > 0
3627 && pEp->cbIsocInLandedReqs == 0)
3629 vboxusb_urb_t *pUrb = list_remove_head(&pEp->hIsocInUrbs);
3632 --pEp->cIsocInUrbs;
3655 pEp->cIsocInUrbs = 0;
3668 if (pEp->cbIsocInLandedReqs + MBLKL(pReq->isoc_data) > pEp->cbMaxIsocData)
3670 vboxusb_isoc_req_t *pOldReq = list_remove_head(&pEp->hIsocInLandedReqs);
3673 pEp->cbIsocInLandedReqs -= MBLKL(pOldReq->pMsg);
3701 list_insert_tail(&pEp->hIsocInLandedReqs, pIsocReq);
3702 pEp->cbIsocInLandedReqs += MBLKL(pIsocReq->pMsg);
3715 while (pEp->cIsocInUrbs)
3717 vboxusb_urb_t *pUrb = list_remove_head(&pEp->hIsocInUrbs);
3721 vboxusb_isoc_req_t *pBuffReq = list_remove_head(&pEp->hIsocInLandedReqs);
3724 list_insert_head(&pEp->hIsocInUrbs, pUrb);
3728 --pEp->cIsocInUrbs;
3729 pEp->cbIsocInLandedReqs -= MBLKL(pBuffReq->pMsg);
3791 vboxusb_ep_t *pEp = (vboxusb_ep_t *)usb_pipe_get_private(pPipe);
3792 if (RT_UNLIKELY(!pEp))
3820 pEp->fIsocPolling = false;
3829 pEp->fIsocPolling = false;
3841 vboxusb_urb_t *pUrb = list_remove_tail(&pEp->hIsocInUrbs);
3844 --pEp->cIsocInUrbs;
3866 vboxusb_ep_t *pEp = (vboxusb_ep_t *)usb_pipe_get_private(pPipe);
3867 if (RT_LIKELY(pEp))