Changeset 104125 in vbox
- Timestamp:
- Mar 30, 2024 11:18:05 AM (10 months ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vusb.h
r99739 r104125 870 870 * @param enmDir Endpoint direction. 871 871 */ 872 DECLR3CALLBACKMEMBER(int, pfnAbortEp,(PVUSBIROOTHUBCONNECTOR pInterface, uint32_t uPort, int EndPt, VUSBDIRECTION enmDir)); 872 DECLR3CALLBACKMEMBER(int, pfnAbortEpByPort,(PVUSBIROOTHUBCONNECTOR pInterface, uint32_t uPort, int EndPt, VUSBDIRECTION enmDir)); 873 874 /** 875 * Cancels and completes - with CRC failure - all URBs queued on an endpoint. 876 * This is done in response to a guest endpoint/pipe abort. 877 * 878 * @returns VBox status code. 879 * @param pInterface Pointer to this struct. 880 * @param DstAddress Port of the device. 881 * @param EndPt Endpoint number. 882 * @param enmDir Endpoint direction. 883 */ 884 DECLR3CALLBACKMEMBER(int, pfnAbortEpByAddr,(PVUSBIROOTHUBCONNECTOR pInterface, uint8_t DstAddress, int EndPt, VUSBDIRECTION enmDir)); 873 885 874 886 /** -
trunk/src/VBox/Devices/USB/DevXHCI.cpp
r103681 r104125 4364 4364 RTCritSectLeave(&pThisCC->CritSectThrd); 4365 4365 Log(("Aborting DCI %u -> ep=%u d=%u\n", uDCI, uDCI / 2, uDCI & 1 ? VUSBDIRECTION_IN : VUSBDIRECTION_OUT)); 4366 pRh->pIRhConn->pfnAbortEp (pRh->pIRhConn, uPort, uDCI / 2, uDCI & 1 ? VUSBDIRECTION_IN : VUSBDIRECTION_OUT);4366 pRh->pIRhConn->pfnAbortEpByPort(pRh->pIRhConn, uPort, uDCI / 2, uDCI & 1 ? VUSBDIRECTION_IN : VUSBDIRECTION_OUT); 4367 4367 RTCritSectEnter(&pThisCC->CritSectThrd); 4368 4368 } -
trunk/src/VBox/Devices/USB/DrvVUSBRootHub.cpp
r100779 r104125 1117 1117 1118 1118 1119 /** @interface_method_impl{VUSBIROOTHUBCONNECTOR,pfnAbortEp } */1120 static DECLCALLBACK(int) vusbRhAbortEp (PVUSBIROOTHUBCONNECTOR pInterface, uint32_t uPort, int EndPt, VUSBDIRECTION enmDir)1119 /** @interface_method_impl{VUSBIROOTHUBCONNECTOR,pfnAbortEpByPort} */ 1120 static DECLCALLBACK(int) vusbRhAbortEpByPort(PVUSBIROOTHUBCONNECTOR pInterface, uint32_t uPort, int EndPt, VUSBDIRECTION enmDir) 1121 1121 { 1122 1122 PVUSBROOTHUB pRh = VUSBIROOTHUBCONNECTOR_2_VUSBROOTHUB(pInterface); 1123 PVUSBDEV pDev = vusbR3RhGetVUsbDevByPortRetain(pRh, uPort, "vusbRhAbortEp ");1123 PVUSBDEV pDev = vusbR3RhGetVUsbDevByPortRetain(pRh, uPort, "vusbRhAbortEpByPort"); 1124 1124 1125 1125 if (pDev->pHub != pRh) … … 1127 1127 1128 1128 vusbDevIoThreadExecSync(pDev, (PFNRT)vusbRhAbortEpWorker, 3, pDev, EndPt, enmDir); 1129 vusbDevRelease(pDev, "vusbRhAbortEp"); 1129 vusbDevRelease(pDev, "vusbRhAbortEpByPort"); 1130 1131 /* The reaper thread will take care of completing the URB. */ 1132 1133 return VINF_SUCCESS; 1134 } 1135 1136 1137 /** @interface_method_impl{VUSBIROOTHUBCONNECTOR,pfnAbortEpByAddr} */ 1138 static DECLCALLBACK(int) vusbRhAbortEpByAddr(PVUSBIROOTHUBCONNECTOR pInterface, uint8_t DstAddress, int EndPt, VUSBDIRECTION enmDir) 1139 { 1140 PVUSBROOTHUB pRh = VUSBIROOTHUBCONNECTOR_2_VUSBROOTHUB(pInterface); 1141 PVUSBDEV pDev = vusbR3RhGetVUsbDevByAddrRetain(pRh, DstAddress, "vusbRhAbortEpByAddr"); 1142 1143 if (pDev->pHub != pRh) 1144 AssertFailedReturn(VERR_INVALID_PARAMETER); 1145 1146 /* This method is the same as vusbRhAbortEp[ByPort], intended for old controllers 1147 * which don't have a defined port <-> device relationship. 1148 */ 1149 vusbDevIoThreadExecSync(pDev, (PFNRT)vusbRhAbortEpWorker, 3, pDev, EndPt, enmDir); 1150 vusbDevRelease(pDev, "vusbRhAbortEpByAddr"); 1130 1151 1131 1152 /* The reaper thread will take care of completing the URB. */ … … 1651 1672 pThis->IRhConnector.pfnCancelUrbsEp = vusbRhCancelUrbsEp; 1652 1673 pThis->IRhConnector.pfnCancelAllUrbs = vusbRhCancelAllUrbs; 1653 pThis->IRhConnector.pfnAbortEp = vusbRhAbortEp; 1674 pThis->IRhConnector.pfnAbortEpByPort = vusbRhAbortEpByPort; 1675 pThis->IRhConnector.pfnAbortEpByAddr = vusbRhAbortEpByAddr; 1654 1676 pThis->IRhConnector.pfnSetPeriodicFrameProcessing = vusbRhSetFrameProcessing; 1655 1677 pThis->IRhConnector.pfnGetPeriodicFrameRate = vusbRhGetPeriodicFrameRate;
Note:
See TracChangeset
for help on using the changeset viewer.