VirtualBox

Changeset 59687 in vbox for trunk/src/VBox/Devices/USB


Ignore:
Timestamp:
Feb 15, 2016 6:52:31 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
105544
Message:

VUSB: Some structural cleanup (#1 Don't replicate the URB tagging for log enabled builds in every device emulation but move it to the roothub implementation )

Location:
trunk/src/VBox/Devices/USB
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/USB/DevOHCI.cpp

    r59282 r59687  
    27312731     * Allocate and initialize a new URB.
    27322732     */
    2733     PVUSBURB pUrb = VUSBIRhNewUrb(pThis->RootHub.pIRhConn, pEd->hwinfo & ED_HWINFO_FUNCTION, Buf.cbTotal, 1);
     2733    PVUSBURB pUrb = VUSBIRhNewUrb(pThis->RootHub.pIRhConn, pEd->hwinfo & ED_HWINFO_FUNCTION, enmType,
     2734                                  enmDir, Buf.cbTotal, 1, NULL);
    27342735    if (!pUrb)
    27352736        return false;                   /* retry later... */
    27362737    Assert(pUrb->Hci.cTds == 1);
    27372738
    2738     pUrb->enmType = enmType;
    27392739    pUrb->EndPt = (pEd->hwinfo & ED_HWINFO_ENDPOINT) >> ED_HWINFO_ENDPOINT_SHIFT;
    2740     pUrb->enmDir = enmDir;
    27412740    pUrb->fShortNotOk = !(Td.hwinfo & TD_HWINFO_ROUNDING);
    27422741    pUrb->enmStatus = VUSBSTATUS_OK;
     
    27472746    AssertCompile(sizeof(pUrb->Hci.paTds[0].TdCopy) >= sizeof(Td));
    27482747    memcpy(pUrb->Hci.paTds[0].TdCopy, &Td, sizeof(Td));
    2749 #ifdef LOG_ENABLED
    2750     static unsigned s_iSerial = 0;
    2751     s_iSerial = (s_iSerial + 1) % 10000;
    2752     RTStrAPrintf(&pUrb->pszDesc, "URB %p %10s/s%c%04d", pUrb, pszListName,
    2753                  enmDir == VUSBDIRECTION_IN ? '<' : enmDir == VUSBDIRECTION_OUT ? '>' : '-', s_iSerial);
    2754 #endif
    27552748
    27562749    /* copy data if out bound transfer. */
     
    28902883     * Allocate and initialize a new URB.
    28912884     */
    2892     PVUSBURB pUrb = VUSBIRhNewUrb(pThis->RootHub.pIRhConn, pEd->hwinfo & ED_HWINFO_FUNCTION, cbTotal, cTds);
     2885    PVUSBURB pUrb = VUSBIRhNewUrb(pThis->RootHub.pIRhConn, pEd->hwinfo & ED_HWINFO_FUNCTION, enmType,
     2886                                  enmDir, cbTotal, cTds, "ohciServiceTdMultiple");
    28932887    if (!pUrb)
    28942888        /* retry later... */
     
    29052899    pUrb->Hci.fUnlinked = false;
    29062900    pUrb->Hci.u32FrameNo = pThis->HcFmNumber;
    2907 #ifdef LOG_ENABLED
    2908     static unsigned s_iSerial = 0;
    2909     s_iSerial = (s_iSerial + 1) % 10000;
    2910     RTStrAPrintf(&pUrb->pszDesc, "URB %p %10s/m%c%04d", pUrb, pszListName,
    2911                  enmDir == VUSBDIRECTION_IN ? '<' : enmDir == VUSBDIRECTION_OUT ? '>' : '-', s_iSerial);
    2912 #endif
    29132901
    29142902    /* Copy data and TD information. */
     
    31033091     * Allocate and initialize a new URB.
    31043092     */
    3105     PVUSBURB pUrb = VUSBIRhNewUrb(pThis->RootHub.pIRhConn, pEd->hwinfo & ED_HWINFO_FUNCTION, cbTotal, 1);
     3093    PVUSBURB pUrb = VUSBIRhNewUrb(pThis->RootHub.pIRhConn, pEd->hwinfo & ED_HWINFO_FUNCTION, VUSBXFERTYPE_ISOC,
     3094                                  enmDir, cbTotal, 1, NULL);
    31063095    if (!pUrb)
    31073096        /* retry later... */
    31083097        return false;
    31093098
    3110     pUrb->enmType = VUSBXFERTYPE_ISOC;
    31113099    pUrb->EndPt = (pEd->hwinfo & ED_HWINFO_ENDPOINT) >> ED_HWINFO_ENDPOINT_SHIFT;
    3112     pUrb->enmDir = enmDir;
    31133100    pUrb->fShortNotOk = false;
    31143101    pUrb->enmStatus = VUSBSTATUS_OK;
     
    31213108#if 0 /* color the data */
    31223109    memset(pUrb->abData, 0xfe, cbTotal);
    3123 #endif
    3124 #ifdef LOG_ENABLED
    3125     static unsigned s_iSerial = 0;
    3126     s_iSerial = (s_iSerial + 1) % 10000;
    3127     RTStrAPrintf(&pUrb->pszDesc, "URB %p isoc%c%04d", pUrb, enmDir == VUSBDIRECTION_IN ? '<' : '>', s_iSerial);
    31283110#endif
    31293111
  • trunk/src/VBox/Devices/USB/DrvVUSBRootHub.cpp

    r59615 r59687  
    367367 * Worker routine for vusbRhConnNewUrb() and vusbDevNewIsocUrb().
    368368 */
    369 PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, uint32_t cbData, uint32_t cTds)
     369PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, VUSBXFERTYPE enmType,
     370                      VUSBDIRECTION enmDir, uint32_t cbData, uint32_t cTds, const char *pszTag)
    370371{
    371372    /*
     
    447448    pUrb->DstAddress = DstAddress;
    448449    pUrb->EndPt = ~0;
    449     pUrb->enmType = VUSBXFERTYPE_INVALID;
    450     pUrb->enmDir = VUSBDIRECTION_INVALID;
     450    pUrb->enmType = enmType;
     451    pUrb->enmDir = enmDir;
    451452    pUrb->fShortNotOk = false;
    452453    pUrb->enmStatus = VUSBSTATUS_INVALID;
    453454    pUrb->cbData = cbData;
     455
     456#ifdef LOG_ENABLED
     457    const char *pszType = NULL;
     458
     459    switch(pUrb->enmType)
     460    {
     461        case VUSBXFERTYPE_CTRL:
     462            pszType = "ctrl";
     463            break;
     464        case VUSBXFERTYPE_INTR:
     465            pszType = "intr";
     466            break;
     467        case VUSBXFERTYPE_BULK:
     468            pszType = "bulk";
     469            break;
     470        case VUSBXFERTYPE_ISOC:
     471            pszType = "isoc";
     472            break;
     473        default:
     474            pszType = "invld";
     475            break;
     476    }
     477
     478    pRh->iSerial = (pRh->iSerial + 1) % 10000;
     479    RTStrAPrintf(&pUrb->pszDesc, "URB %p %s%c%04d (%s)", pUrb, pszType,
     480                 (pUrb->enmDir == VUSBDIRECTION_IN) ? '<' : ((pUrb->enmDir == VUSBDIRECTION_SETUP) ? 's' : '>'),
     481                 pRh->iSerial, pszTag ? pszTag : "<none>");
     482#endif
     483
    454484    return pUrb;
    455485}
     
    457487
    458488/** @copydoc VUSBIROOTHUBCONNECTOR::pfnNewUrb */
    459 static DECLCALLBACK(PVUSBURB) vusbRhConnNewUrb(PVUSBIROOTHUBCONNECTOR pInterface, uint8_t DstAddress, uint32_t cbData, uint32_t cTds)
     489static DECLCALLBACK(PVUSBURB) vusbRhConnNewUrb(PVUSBIROOTHUBCONNECTOR pInterface, uint8_t DstAddress, VUSBXFERTYPE enmType,
     490                                               VUSBDIRECTION enmDir, uint32_t cbData, uint32_t cTds, const char *pszTag)
    460491{
    461492    PVUSBROOTHUB pRh = VUSBIROOTHUBCONNECTOR_2_VUSBROOTHUB(pInterface);
    462     return vusbRhNewUrb(pRh, DstAddress, cbData, cTds);
     493    return vusbRhNewUrb(pRh, DstAddress, enmType, enmDir, cbData, cTds, pszTag);
    463494}
    464495
     
    10301061    pThis->IRhConnector.pfnDetachDevice = vusbRhDetachDevice;
    10311062    pThis->hSniffer                     = VUSBSNIFFER_NIL;
     1063    pThis->iSerial                      = 0;
    10321064    /*
    10331065     * Resolve interface(s).
  • trunk/src/VBox/Devices/USB/VUSBInternal.h

    r56395 r59687  
    364364    /** Version of the attached Host Controller. */
    365365    uint32_t                fHcVersions;
     366#ifdef LOG_ENABLED
     367    /** A serial number for URBs submitted on the roothub instance.
     368     * Only logging builds. */
     369    uint32_t                iSerial;
     370    /** Alignment */
     371    uint32_t                Alignment2;
     372#endif
    366373#ifdef VBOX_WITH_STATISTICS
    367374    VUSBROOTHUBTYPESTATS    Total;
     
    441448int  vusbUrbQueueAsyncRh(PVUSBURB pUrb);
    442449int  vusbUrbSubmitBufferedRead(PVUSBURB pUrb, VUSBREADAHEAD hReadAhead);
    443 PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, uint32_t cbData, uint32_t cTds);
     450PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, VUSBXFERTYPE enmType, VUSBDIRECTION enmDir,
     451                      uint32_t cbData, uint32_t cTds, const char *pszTag);
    444452
    445453
  • trunk/src/VBox/Devices/USB/VUSBReadAhead.cpp

    r57358 r59687  
    110110        return NULL;
    111111
    112     pUrb = vusbRhNewUrb(pRh, pDev->u8Address, cbTotal, 1);
     112    pUrb = vusbRhNewUrb(pRh, pDev->u8Address, VUSBXFERTYPE_ISOC, VUSBDIRECTION_IN, cbTotal, 1, NULL);
    113113    if (!pUrb)
    114114        /* not much we can do here... */
    115115        return NULL;
    116116
    117     pUrb->enmType               = VUSBXFERTYPE_ISOC;
    118117    pUrb->EndPt                 = uEndPt;
    119     pUrb->enmDir                = VUSBDIRECTION_IN;
    120118    pUrb->fShortNotOk           = false;
    121119    pUrb->enmStatus             = VUSBSTATUS_OK;
Note: See TracChangeset for help on using the changeset viewer.

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