VirtualBox

Ignore:
Timestamp:
Oct 20, 2014 5:37:27 PM (10 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
96616
Message:

USB: Beginnings of emulated USB3 devices.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PDMUsb.cpp

    r53062 r53097  
    227227                    ("Invalid name '%.s'\n", sizeof(pReg->szName), pReg->szName),
    228228                    VERR_PDM_INVALID_USB_REGISTRATION);
    229     AssertMsgReturn((pReg->fFlags & ~(PDM_USBREG_HIGHSPEED_CAPABLE | PDM_USBREG_EMULATED_DEVICE)) == 0,
     229    AssertMsgReturn((pReg->fFlags & ~(PDM_USBREG_HIGHSPEED_CAPABLE | PDM_USBREG_SUPERSPEED_CAPABLE | PDM_USBREG_EMULATED_DEVICE)) == 0,
    230230                    ("fFlags=%#x\n", pReg->fFlags), VERR_PDM_INVALID_USB_REGISTRATION);
    231231    AssertMsgReturn(pReg->cMaxInstances > 0,
     
    440440
    441441    for (PPDMUSBHUB pCur = pVM->pdm.s.pUsbHubs; pCur; pCur = pCur->pNext)
    442         if (    pCur->cAvailablePorts > 0
    443             &&  (   (pCur->fVersions & iUsbVersion)
    444                  || pCur->fVersions == VUSB_STDVER_11))
    445         {
    446             *ppHub = pCur;
     442        if (pCur->cAvailablePorts > 0)
     443        {
     444            /* First check for an exact match. */
    447445            if (pCur->fVersions & iUsbVersion)
     446            {
     447                *ppHub = pCur;
    448448                break;
     449            }
     450            /* For high-speed USB 2.0 devices only, allow USB 1.1 fallback. */
     451            if ((iUsbVersion & VUSB_STDVER_20) && (pCur->fVersions == VUSB_STDVER_11))
     452                *ppHub = pCur;
    449453        }
    450454    if (*ppHub)
     
    828832
    829833        /*
    830          * Every device must support USB 1.x hubs; optionally, high-speed USB 2.0 hubs
     834         * Every emulated device must support USB 1.x hubs; optionally, high-speed USB 2.0 hubs
    831835         * might be also supported. This determines where to attach the device.
    832836         */
     
    835839        if (paUsbDevs[i].pUsbDev->pReg->fFlags & PDM_USBREG_HIGHSPEED_CAPABLE)
    836840            iUsbVersion |= VUSB_STDVER_20;
     841        if (paUsbDevs[i].pUsbDev->pReg->fFlags & PDM_USBREG_SUPERSPEED_CAPABLE)
     842            iUsbVersion |= VUSB_STDVER_30;
    837843
    838844        /*
     
    911917    if (pUsbDev->pReg->fFlags & PDM_USBREG_HIGHSPEED_CAPABLE)
    912918        iUsbVersion |= VUSB_STDVER_20;
     919    if (pUsbDev->pReg->fFlags & PDM_USBREG_SUPERSPEED_CAPABLE)
     920        iUsbVersion |= VUSB_STDVER_30;
    913921
    914922    /*
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