VirtualBox

Changeset 43816 in vbox for trunk/src


Ignore:
Timestamp:
Nov 6, 2012 5:44:17 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
81848
Message:

HostDrivers/solaris/USB: Passthrough short packets bit.

Location:
trunk/src/VBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/USB/solaris/USBProxyDevice-solaris.cpp

    r38736 r43816  
    610610    UrbReq.enmDir       = pUrb->enmDir;
    611611    UrbReq.enmStatus    = pUrb->enmStatus;
     612    UrbReq.fShortOk     = !pUrb->fShortNotOk;
    612613    UrbReq.cbData       = pUrb->cbData;
    613614    UrbReq.pvData       = pUrb->abData;
  • trunk/src/VBox/HostDrivers/VBoxUSB/solaris/VBoxUSB-solaris.c

    r41700 r43816  
    250250    VUSBDIRECTION           enmDir;          /* Xfer direction */
    251251    VUSBSTATUS              enmStatus;       /* URB status */
     252    bool                    fShortOk;        /* Whether receiving less data than requested is acceptable. */
    252253    RTR3PTR                 pvDataR3;        /* Userspace address of the original data buffer */
    253254    size_t                  cbDataR3;        /* Size of the data buffer */
     
    31053106         * Initialize callbacks and timeouts.
    31063107         */
     3108        usb_req_attrs_t fAttributes = USB_ATTRS_AUTOCLEARING;
     3109        if (   pUrb->enmDir == VUSBDIRECTION_IN
     3110            && pUrb->fShortOk)
     3111        {
     3112            fAttributes |= USB_ATTRS_SHORT_XFER_OK;
     3113        }
    31073114        pReq->ctrl_cb             = vboxUSBSolarisCtrlXferCompleted;
    31083115        pReq->ctrl_exc_cb         = vboxUSBSolarisCtrlXferCompleted;
    31093116        pReq->ctrl_timeout        = VBOXUSB_CTRL_XFER_TIMEOUT;
    3110         pReq->ctrl_attributes     = USB_ATTRS_AUTOCLEARING | (pUrb->enmDir == VUSBDIRECTION_IN ? USB_ATTRS_SHORT_XFER_OK : 0);
     3117        pReq->ctrl_attributes     = fAttributes;
    31113118
    31123119        pReq->ctrl_client_private = (usb_opaque_t)pUrb;
     
    32343241         * Initialize Bulk Xfer, callbacks and timeouts.
    32353242         */
     3243        usb_req_attrs_t fAttributes = USB_ATTRS_AUTOCLEARING;
    32363244        if (pUrb->enmDir == VUSBDIRECTION_OUT)
    32373245            pReq->bulk_data = pUrb->pMsg;
     3246        else if (   pUrb->enmDir == VUSBDIRECTION_IN
     3247                 && pUrb->fShortOk)
     3248        {
     3249            fAttributes |= USB_ATTRS_SHORT_XFER_OK;
     3250        }
    32383251
    32393252        pReq->bulk_len            = pUrb->cbDataR3;
     
    32413254        pReq->bulk_exc_cb         = vboxUSBSolarisBulkXferCompleted;
    32423255        pReq->bulk_timeout        = VBOXUSB_BULK_XFER_TIMEOUT;
    3243         pReq->bulk_attributes     = USB_ATTRS_AUTOCLEARING | (pUrb->enmDir == VUSBDIRECTION_IN ? USB_ATTRS_SHORT_XFER_OK : 0);
     3256        pReq->bulk_attributes     = fAttributes;
    32443257        pReq->bulk_client_private = (usb_opaque_t)pUrb;
    32453258
     
    33583371        else
    33593372        {
     3373            Assert(pUrb->enmDir == VUSBDIRECTION_IN);
    33603374            pReq->intr_data       = NULL;
    3361             pReq->intr_attributes = USB_ATTRS_AUTOCLEARING | USB_ATTRS_ONE_XFER | USB_ATTRS_SHORT_XFER_OK;
     3375            pReq->intr_attributes = USB_ATTRS_AUTOCLEARING | USB_ATTRS_ONE_XFER | (pUrb->fShortOk ? USB_ATTRS_SHORT_XFER_OK : 0);
    33623376        }
    33633377
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette