Changeset 59687 in vbox for trunk/src/VBox/Devices/USB
- Timestamp:
- Feb 15, 2016 6:52:31 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 105544
- Location:
- trunk/src/VBox/Devices/USB
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/USB/DevOHCI.cpp
r59282 r59687 2731 2731 * Allocate and initialize a new URB. 2732 2732 */ 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); 2734 2735 if (!pUrb) 2735 2736 return false; /* retry later... */ 2736 2737 Assert(pUrb->Hci.cTds == 1); 2737 2738 2738 pUrb->enmType = enmType;2739 2739 pUrb->EndPt = (pEd->hwinfo & ED_HWINFO_ENDPOINT) >> ED_HWINFO_ENDPOINT_SHIFT; 2740 pUrb->enmDir = enmDir;2741 2740 pUrb->fShortNotOk = !(Td.hwinfo & TD_HWINFO_ROUNDING); 2742 2741 pUrb->enmStatus = VUSBSTATUS_OK; … … 2747 2746 AssertCompile(sizeof(pUrb->Hci.paTds[0].TdCopy) >= sizeof(Td)); 2748 2747 memcpy(pUrb->Hci.paTds[0].TdCopy, &Td, sizeof(Td)); 2749 #ifdef LOG_ENABLED2750 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 #endif2755 2748 2756 2749 /* copy data if out bound transfer. */ … … 2890 2883 * Allocate and initialize a new URB. 2891 2884 */ 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"); 2893 2887 if (!pUrb) 2894 2888 /* retry later... */ … … 2905 2899 pUrb->Hci.fUnlinked = false; 2906 2900 pUrb->Hci.u32FrameNo = pThis->HcFmNumber; 2907 #ifdef LOG_ENABLED2908 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 #endif2913 2901 2914 2902 /* Copy data and TD information. */ … … 3103 3091 * Allocate and initialize a new URB. 3104 3092 */ 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); 3106 3095 if (!pUrb) 3107 3096 /* retry later... */ 3108 3097 return false; 3109 3098 3110 pUrb->enmType = VUSBXFERTYPE_ISOC;3111 3099 pUrb->EndPt = (pEd->hwinfo & ED_HWINFO_ENDPOINT) >> ED_HWINFO_ENDPOINT_SHIFT; 3112 pUrb->enmDir = enmDir;3113 3100 pUrb->fShortNotOk = false; 3114 3101 pUrb->enmStatus = VUSBSTATUS_OK; … … 3121 3108 #if 0 /* color the data */ 3122 3109 memset(pUrb->abData, 0xfe, cbTotal); 3123 #endif3124 #ifdef LOG_ENABLED3125 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);3128 3110 #endif 3129 3111 -
trunk/src/VBox/Devices/USB/DrvVUSBRootHub.cpp
r59615 r59687 367 367 * Worker routine for vusbRhConnNewUrb() and vusbDevNewIsocUrb(). 368 368 */ 369 PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, uint32_t cbData, uint32_t cTds) 369 PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, VUSBXFERTYPE enmType, 370 VUSBDIRECTION enmDir, uint32_t cbData, uint32_t cTds, const char *pszTag) 370 371 { 371 372 /* … … 447 448 pUrb->DstAddress = DstAddress; 448 449 pUrb->EndPt = ~0; 449 pUrb->enmType = VUSBXFERTYPE_INVALID;450 pUrb->enmDir = VUSBDIRECTION_INVALID;450 pUrb->enmType = enmType; 451 pUrb->enmDir = enmDir; 451 452 pUrb->fShortNotOk = false; 452 453 pUrb->enmStatus = VUSBSTATUS_INVALID; 453 454 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 454 484 return pUrb; 455 485 } … … 457 487 458 488 /** @copydoc VUSBIROOTHUBCONNECTOR::pfnNewUrb */ 459 static DECLCALLBACK(PVUSBURB) vusbRhConnNewUrb(PVUSBIROOTHUBCONNECTOR pInterface, uint8_t DstAddress, uint32_t cbData, uint32_t cTds) 489 static DECLCALLBACK(PVUSBURB) vusbRhConnNewUrb(PVUSBIROOTHUBCONNECTOR pInterface, uint8_t DstAddress, VUSBXFERTYPE enmType, 490 VUSBDIRECTION enmDir, uint32_t cbData, uint32_t cTds, const char *pszTag) 460 491 { 461 492 PVUSBROOTHUB pRh = VUSBIROOTHUBCONNECTOR_2_VUSBROOTHUB(pInterface); 462 return vusbRhNewUrb(pRh, DstAddress, cbData, cTds);493 return vusbRhNewUrb(pRh, DstAddress, enmType, enmDir, cbData, cTds, pszTag); 463 494 } 464 495 … … 1030 1061 pThis->IRhConnector.pfnDetachDevice = vusbRhDetachDevice; 1031 1062 pThis->hSniffer = VUSBSNIFFER_NIL; 1063 pThis->iSerial = 0; 1032 1064 /* 1033 1065 * Resolve interface(s). -
trunk/src/VBox/Devices/USB/VUSBInternal.h
r56395 r59687 364 364 /** Version of the attached Host Controller. */ 365 365 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 366 373 #ifdef VBOX_WITH_STATISTICS 367 374 VUSBROOTHUBTYPESTATS Total; … … 441 448 int vusbUrbQueueAsyncRh(PVUSBURB pUrb); 442 449 int vusbUrbSubmitBufferedRead(PVUSBURB pUrb, VUSBREADAHEAD hReadAhead); 443 PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, uint32_t cbData, uint32_t cTds); 450 PVUSBURB vusbRhNewUrb(PVUSBROOTHUB pRh, uint8_t DstAddress, VUSBXFERTYPE enmType, VUSBDIRECTION enmDir, 451 uint32_t cbData, uint32_t cTds, const char *pszTag); 444 452 445 453 -
trunk/src/VBox/Devices/USB/VUSBReadAhead.cpp
r57358 r59687 110 110 return NULL; 111 111 112 pUrb = vusbRhNewUrb(pRh, pDev->u8Address, cbTotal, 1);112 pUrb = vusbRhNewUrb(pRh, pDev->u8Address, VUSBXFERTYPE_ISOC, VUSBDIRECTION_IN, cbTotal, 1, NULL); 113 113 if (!pUrb) 114 114 /* not much we can do here... */ 115 115 return NULL; 116 116 117 pUrb->enmType = VUSBXFERTYPE_ISOC;118 117 pUrb->EndPt = uEndPt; 119 pUrb->enmDir = VUSBDIRECTION_IN;120 118 pUrb->fShortNotOk = false; 121 119 pUrb->enmStatus = VUSBSTATUS_OK;
Note:
See TracChangeset
for help on using the changeset viewer.