Lines Matching defs:pReq

315 LOCAL void vboxUSBSolarisCtrlXferCompleted(usb_pipe_handle_t pPipe, usb_ctrl_req_t *pReq);
317 LOCAL void vboxUSBSolarisBulkXferCompleted(usb_pipe_handle_t pPipe, usb_bulk_req_t *pReq);
319 LOCAL void vboxUSBSolarisIntrXferCompleted(usb_pipe_handle_t pPipe, usb_intr_req_t *pReq);
321 LOCAL void vboxUSBSolarisIsocInXferCompleted(usb_pipe_handle_t pPipe, usb_isoc_req_t *pReq);
322 LOCAL void vboxUSBSolarisIsocInXferError(usb_pipe_handle_t pPipe, usb_isoc_req_t *pReq);
323 LOCAL void vboxUSBSolarisIsocOutXferCompleted(usb_pipe_handle_t pPipe, usb_isoc_req_t *pReq);
3077 usb_ctrl_req_t *pReq = usb_alloc_ctrl_req(pState->pDip, cbData, USB_FLAGS_NOSLEEP);
3078 if (RT_LIKELY(pReq))
3083 pReq->ctrl_bmRequestType = pSetupData[0];
3084 pReq->ctrl_bRequest = pSetupData[1];
3085 pReq->ctrl_wValue = (pSetupData[3] << VBOXUSB_CTRL_XFER_SIZE) | pSetupData[2];
3086 pReq->ctrl_wIndex = (pSetupData[5] << VBOXUSB_CTRL_XFER_SIZE) | pSetupData[4];
3087 pReq->ctrl_wLength = (pSetupData[7] << VBOXUSB_CTRL_XFER_SIZE) | pSetupData[6];
3093 bcopy(pUrb->pMsg->b_rptr, pReq->ctrl_data->b_wptr, cbData);
3094 pReq->ctrl_data->b_wptr += cbData;
3109 pReq->ctrl_cb = vboxUSBSolarisCtrlXferCompleted;
3110 pReq->ctrl_exc_cb = vboxUSBSolarisCtrlXferCompleted;
3111 pReq->ctrl_timeout = VBOXUSB_CTRL_XFER_TIMEOUT;
3112 pReq->ctrl_attributes = fAttributes;
3114 pReq->ctrl_client_private = (usb_opaque_t)pUrb;
3116 LogFunc((DEVICE_NAME ":vboxUSBSolarisCtrlXfer ctrl_wLength=%#RX16 cbData=%#zx fShortOk=%RTbool\n", pReq->ctrl_wLength,
3123 rc = usb_pipe_ctrl_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3133 usb_free_ctrl_req(pReq);
3149 * @param pReq The Ctrl request.
3151 LOCAL void vboxUSBSolarisCtrlXferCompleted(usb_pipe_handle_t pPipe, usb_ctrl_req_t *pReq)
3153 LogFunc((DEVICE_NAME ":vboxUSBSolarisCtrlXferCompleted pPipe=%p pReq=%p\n", pPipe, pReq));
3155 vboxusb_urb_t *pUrb = (vboxusb_urb_t *)pReq->ctrl_client_private;
3167 SetupData.bmRequestType = pReq->ctrl_bmRequestType;
3168 SetupData.bRequest = pReq->ctrl_bRequest;
3169 SetupData.wValue = pReq->ctrl_wValue;
3170 SetupData.wIndex = pReq->ctrl_wIndex;
3171 SetupData.wLength = pReq->ctrl_wLength;
3180 pUrb->pMsg->b_cont = pReq->ctrl_data;
3181 pReq->ctrl_data = NULL;
3189 pReq->ctrl_completion_reason, MBLKL(pUrb->pMsg)));
3197 vboxUSBSolarisDeQueueURB(pUrb, pReq->ctrl_completion_reason);
3208 usb_free_ctrl_req(pReq);
3231 usb_bulk_req_t *pReq = usb_alloc_bulk_req(pState->pDip, pUrb->enmDir == VUSBDIRECTION_IN ? pUrb->cbDataR3 : 0,
3233 if (RT_LIKELY(pReq))
3240 pReq->bulk_data = pUrb->pMsg;
3247 pReq->bulk_len = pUrb->cbDataR3;
3248 pReq->bulk_cb = vboxUSBSolarisBulkXferCompleted;
3249 pReq->bulk_exc_cb = vboxUSBSolarisBulkXferCompleted;
3250 pReq->bulk_timeout = VBOXUSB_BULK_XFER_TIMEOUT;
3251 pReq->bulk_attributes = fAttributes;
3252 pReq->bulk_client_private = (usb_opaque_t)pUrb;
3264 rc = usb_pipe_bulk_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3276 pReq->bulk_data = NULL;
3278 usb_free_bulk_req(pReq);
3294 * @param pReq The Bulk request.
3296 LOCAL void vboxUSBSolarisBulkXferCompleted(usb_pipe_handle_t pPipe, usb_bulk_req_t *pReq)
3298 LogFunc((DEVICE_NAME ":vboxUSBSolarisBulkXferCompleted pPipe=%p pReq=%p\n", pPipe, pReq));
3303 vboxusb_urb_t *pUrb = (vboxusb_urb_t *)pReq->bulk_client_private;
3307 pReq->bulk_data = NULL;
3310 if (pReq->bulk_completion_reason == USB_CR_OK)
3312 pUrb->pMsg = pReq->bulk_data;
3313 pReq->bulk_data = NULL;
3319 pReq->bulk_completion_reason != USB_CR_OK ? "failed URB" : "success",
3320 pReq->bulk_completion_reason, pUrb->pMsg ? MBLKL(pUrb->pMsg) : 0));
3325 vboxUSBSolarisDeQueueURB(pUrb, pReq->bulk_completion_reason);
3326 usb_free_bulk_req(pReq);
3335 usb_free_bulk_req(pReq);
3355 usb_intr_req_t *pReq = usb_alloc_intr_req(pState->pDip, 0 /* length */, USB_FLAGS_NOSLEEP);
3356 if (RT_LIKELY(pReq))
3363 pReq->intr_data = pUrb->pMsg;
3364 pReq->intr_attributes = USB_ATTRS_AUTOCLEARING;
3369 pReq->intr_data = NULL;
3370 pReq->intr_attributes = USB_ATTRS_AUTOCLEARING | USB_ATTRS_ONE_XFER | (pUrb->fShortOk ? USB_ATTRS_SHORT_XFER_OK : 0);
3373 pReq->intr_len = pUrb->cbDataR3; /* Not pEp->EpDesc.wMaxPacketSize */
3374 pReq->intr_cb = vboxUSBSolarisIntrXferCompleted;
3375 pReq->intr_exc_cb = vboxUSBSolarisIntrXferCompleted;
3376 pReq->intr_timeout = VBOXUSB_INTR_XFER_TIMEOUT;
3377 pReq->intr_client_private = (usb_opaque_t)pUrb;
3382 rc = usb_pipe_intr_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3392 pReq->intr_data = NULL;
3393 usb_free_intr_req(pReq);
3409 * @param pReq The Intr request.
3411 LOCAL void vboxUSBSolarisIntrXferCompleted(usb_pipe_handle_t pPipe, usb_intr_req_t *pReq)
3413 LogFunc((DEVICE_NAME ":vboxUSBSolarisIntrXferCompleted pPipe=%p pReq=%p\n", pPipe, pReq));
3418 vboxusb_urb_t *pUrb = (vboxusb_urb_t *)pReq->intr_client_private;
3422 pReq->intr_data = NULL;
3425 if (pReq->intr_completion_reason == USB_CR_OK)
3427 pUrb->pMsg = pReq->intr_data;
3428 pReq->intr_data = NULL;
3432 Log((DEVICE_NAME ":vboxUSBSolarisIntrXferCompleted rc=%d pMsg=%p enmDir=%#x\n", pReq->intr_completion_reason,
3438 vboxUSBSolarisDeQueueURB(pUrb, pReq->intr_completion_reason);
3439 usb_free_intr_req(pReq);
3448 usb_free_intr_req(pReq);
3498 usb_isoc_req_t *pReq = usb_alloc_isoc_req(pState->pDip, pUrb->cIsocPkts, cbData, USB_FLAGS_NOSLEEP);
3501 if (RT_LIKELY(pReq))
3507 pReq->isoc_pkt_descr[i].isoc_pkt_length = pUrb->aIsocPkts[i].cbPkt;
3511 pReq->isoc_data = pUrb->pMsg;
3512 pReq->isoc_attributes = USB_ATTRS_AUTOCLEARING | USB_ATTRS_ISOC_XFER_ASAP;
3513 pReq->isoc_cb = vboxUSBSolarisIsocOutXferCompleted;
3514 pReq->isoc_exc_cb = vboxUSBSolarisIsocOutXferCompleted;
3515 pReq->isoc_client_private = (usb_opaque_t)pUrb;
3519 pReq->isoc_attributes = USB_ATTRS_AUTOCLEARING | USB_ATTRS_ISOC_XFER_ASAP | USB_ATTRS_SHORT_XFER_OK;
3520 pReq->isoc_cb = vboxUSBSolarisIsocInXferCompleted;
3521 pReq->isoc_exc_cb = vboxUSBSolarisIsocInXferError;
3522 pReq->isoc_client_private = (usb_opaque_t)pState;
3524 pReq->isoc_pkts_count = pUrb->cIsocPkts;
3525 pReq->isoc_pkts_length = 0; /* auto compute */
3530 rc = usb_pipe_isoc_xfer(pEp->pPipe, pReq, USB_FLAGS_NOSLEEP);
3567 pReq->isoc_data = NULL;
3569 usb_free_isoc_req(pReq);
3585 * @param pReq The Intr request.
3589 LOCAL void vboxUSBSolarisIsocInXferCompleted(usb_pipe_handle_t pPipe, usb_isoc_req_t *pReq)
3591 // LogFunc((DEVICE_NAME ":vboxUSBSolarisIsocInXferCompleted pPipe=%p pReq=%p\n", pPipe, pReq));
3593 vboxusb_state_t *pState = (vboxusb_state_t *)pReq->isoc_client_private;
3604 if (pReq->isoc_error_count == pReq->isoc_pkts_count)
3616 if (RT_LIKELY(pReq->isoc_data))
3635 for (unsigned i = 0; i < pReq->isoc_pkts_count; i++)
3637 pUrb->aIsocPkts[i].cbActPkt = pReq->isoc_pkt_descr[i].isoc_pkt_actual_length;
3638 pUrb->aIsocPkts[i].enmStatus = vboxUSBSolarisGetUrbStatus(pReq->isoc_pkt_descr[i].isoc_pkt_status);
3641 pUrb->pMsg = pReq->isoc_data;
3642 pReq->isoc_data = NULL;
3660 usb_free_isoc_req(pReq);
3668 if (pEp->cbIsocInLandedReqs + MBLKL(pReq->isoc_data) > pEp->cbMaxIsocData)
3687 pIsocReq->pMsg = pReq->isoc_data;
3688 pReq->isoc_data = NULL;
3689 pIsocReq->cIsocPkts = pReq->isoc_pkts_count;
3691 for (unsigned i = 0; i < pReq->isoc_pkts_count; i++)
3693 pIsocReq->aIsocPkts[i].cbActPkt = pReq->isoc_pkt_descr[i].isoc_pkt_actual_length;
3694 pIsocReq->aIsocPkts[i].enmStatus = vboxUSBSolarisGetUrbStatus(pReq->isoc_pkt_descr[i].isoc_pkt_status);
3697 bcopy(pReq->isoc_pkt_descr, pIsocReq->aIsocPkts, pReq->isoc_pkts_count * sizeof(VUSBISOC_PKT_DESC));
3755 usb_free_isoc_req(pReq);
3767 usb_free_isoc_req(pReq);
3775 * @param pReq The Intr request.
3778 LOCAL void vboxUSBSolarisIsocInXferError(usb_pipe_handle_t pPipe, usb_isoc_req_t *pReq)
3780 LogFunc((DEVICE_NAME ":vboxUSBSolarisIsocInXferError pPipe=%p pReq=%p\n", pPipe, pReq));
3782 vboxusb_state_t *pState = (vboxusb_state_t *)pReq->isoc_client_private;
3786 usb_free_isoc_req(pReq);
3796 usb_free_isoc_req(pReq);
3800 switch(pReq->isoc_completion_reason)
3809 usb_pipe_isoc_xfer(pPipe, pReq, USB_FLAGS_NOSLEEP);
3821 usb_free_isoc_req(pReq);
3828 pReq->isoc_completion_reason));
3832 usb_free_isoc_req(pReq);
3859 * @param pReq The Intr request.
3862 LOCAL void vboxUSBSolarisIsocOutXferCompleted(usb_pipe_handle_t pPipe, usb_isoc_req_t *pReq)
3864 LogFunc((DEVICE_NAME ":vboxUSBSolarisIsocOutXferCompleted pPipe=%p pReq=%p\n", pPipe, pReq));
3869 vboxusb_urb_t *pUrb = (vboxusb_urb_t *)pReq->isoc_client_private;
3873 for (int i = 0; i < pReq->isoc_pkts_count; i++)
3875 cbActPkt += pReq->isoc_pkt_descr[i].isoc_pkt_actual_length;
3876 pUrb->aIsocPkts[i].cbActPkt = pReq->isoc_pkt_descr[i].isoc_pkt_actual_length;
3877 pUrb->aIsocPkts[i].enmStatus = vboxUSBSolarisGetUrbStatus(pReq->isoc_pkt_descr[i].isoc_pkt_status);
3883 if (pReq->isoc_completion_reason == USB_CR_OK)
3885 if (RT_UNLIKELY(pUrb->pMsg != pReq->isoc_data)) /* Paranoia */
3888 pUrb->pMsg = pReq->isoc_data;
3891 pReq->isoc_data = NULL;
3893 pUrb->cIsocPkts = pReq->isoc_pkts_count;
3899 vboxUSBSolarisDeQueueURB(pUrb, pReq->isoc_completion_reason);
3900 usb_free_isoc_req(pReq);
3909 usb_free_isoc_req(pReq);