Commit graph

110 commits

Author SHA1 Message Date
Thomas Faber f5c5426924
[USBPORT] Fix incorrect use of bitfields.
EndpointMoved == TRUE could never be true, because BOOL is a signed type,
and the only two values in a signed one-bit type are 0 and -1.

Courtesy of VS analysis warning C6299:
Explicitly comparing a bit field to a Boolean type will yield unexpected results.
2022-02-17 22:01:34 -05:00
Thomas Faber e7574ee5e8
[USBPORT] Don't use NTAPI for variadic function.
Powered by clang-cl.
2021-10-27 19:27:33 -04:00
Hermès Bélusca-Maïto 9b1edceae1
[REACTOS] Fix some instances of DPRINTs with trailing whitespace before newlines. 2021-09-13 03:52:19 +02:00
Victor Perevertkin 34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
Timo Kreuzer e693d5ffc0 [USBPORT] Make unload work 2021-05-28 22:29:44 +02:00
Amine Khaldi 139a3d6661
[CMAKE] Implement PCH builds with target_precompile_headers. CORE-16905 2020-06-06 21:58:41 +03:00
Serge Gautherie ed9f0dca14 [USBPORT] USBPORT_InvalidateEndpointHandler(): Properly enumerate endpoints 2019-09-29 13:39:12 +03:00
Victor Perevertkin fc14c095f5
[USBPORT] Fix endless loop, occasionally happened on real hardware 2019-08-20 01:30:52 +03:00
Jérôme Gardou 23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Thomas Faber 026a12fe39
[USBPORT] Implement interface setting in USBPORT_OpenInterface. 2019-03-11 08:54:01 +01:00
Thomas Faber ac20ab031c
[USBPORT] Correctly handle alternate settings returned from USBPORT_ParseConfigurationDescriptor.
The last parameter of USBPORT_ParseConfigurationDescriptor is a pointer
to a boolean indicating whether any alternate interface settings were
found for the specified interface.
Interpreting it as an alternate setting value, as we did before,
would always override the alternate setting to '1' (if any alternate
descriptors were present), therefore selecting the wrong interface
setting, and possibly causing a buffer overflow on the InterfaceList's
Pipes array.

Found by Special Pool.
2019-03-11 08:53:55 +01:00
Thomas Faber 36c1cb0910
[USBPORT] Correctly find interface descriptor in USBPORT_ParseConfigurationDescriptor
There can be other descriptors between the config descriptor and the
first interface descriptor, so we specifically need to check for
the interface descriptor type and skip anything before that.
We also need to guard against bLength == 0, which would cause an
infinite loop, instead of doing a second bDescriptorType check.
2019-03-11 08:53:53 +01:00
Thomas Faber 1946f6bb25
[USBPORT] Acquire EndpointSpinLock in addition to MiniportSpinLock in USBPORT_ReopenPipe. 2019-03-11 08:53:52 +01:00
Thomas Faber e47240fb37
[USBPORT] Release StateChangeSpinLock before acquiring MiniportSpinLock.
Found by Driver Verifier.
2019-03-11 08:53:50 +01:00
Thomas Faber 267f5633ee
[USBPORT] Leave IRP status untouched for unhandled interfaces.
Found by Driver Verifier.
2019-03-11 08:53:49 +01:00
Thomas Faber 12a66769fc
[USBPORT] Don't change the status of IRP_MJ_SYSTEM_CONTROL requests.
Found by Driver Verifier.
2019-03-11 08:53:47 +01:00
Vadim Galyant 3baf43c5de
[USBHUB_NEW][USBPORT] Fix buffer size calculation for multi-sz values in IRP_MN_QUERY_ID.
Also fix some copypasta'd DPRINTs.
2018-09-09 11:24:48 +02:00
Thomas Faber 5403094339
[USBPORT] Fix 64 bit warnings. 2018-08-16 14:14:42 +02:00
Thomas Faber bd4529b717
[USBPORT] Specify the correct length for the root hub's hub descriptor. 2018-08-16 14:14:31 +02:00
Thomas Faber db54e5eb1c
[USBPORT] Remove an unnecessary check in USBPORT_AllocateBandwidthUSB2. CID 1434261 2018-08-16 14:14:23 +02:00
Thomas Faber 7ad4cf96f3
[USBPORT] Remove an unnecessary check in USB2_ConvertFrame. CID 1434244 2018-08-16 14:14:15 +02:00
Thomas Faber d1e5699e60
[USBPORT] Accept negative BusTime in USB2_MoveTtEndpoint. CID 1434226 2018-08-16 14:14:04 +02:00
Timo Kreuzer c1944118ca [USBPORT] Fix 64 bit issues 2018-08-04 19:19:34 +02:00
Thomas Faber 0ce31759d0
[USBPORT] Fix x64 build. 2018-05-12 10:11:21 +02:00
Vadim Galyant c89a190ea6
[USBPORT][USBOHCI_NEW] Avoid using pointers for physical addresses. 2018-05-11 15:46:25 +02:00
Timo Kreuzer 6b1ca75899
[REACTOS] Fix 64 bit build (#465)
* [HAL] Simplify HalpReboot() and make it portable
* [NTOS:MM] Cast constant to PVOID
* [BINPATCH] Fix 64 bit build
* [VFDDRV] Fix 64 bit build and buffer overruns
* [USBOHCI] Fix structure alignment issues
* [ATL_APITEST] Fix 64 bit build
* [XDK] Update unwind structures in winnt.h
* [NTDLL_APITEST] Fix 64 bit build
* [NTDLL_WINETEST] Fix 64 bit build
* [TFTPD] Fix x64 build
* [USBPORT] Fix a C_ASSERT
* [DSOUND] Fix x64 build
* [HAL] Remove obsolete GetPteAddress() macro
2018-04-03 15:13:17 -06:00
Vadim Galyant 62612a7e45 [USBPORT] Use USB2_HS_INTERRUPT_IN_OVERHEAD instead USB2_HS_ISOCHRONOUS_OUT_OVERHEAD. 2018-02-21 13:35:25 +09:00
Vadim Galyant 11772da783 [USBPORT] Small changes for debugging. 2018-01-26 20:46:34 +09:00
Vadim Galyant f37a3dc42f [USBPORT] Add USB2_BIT_STUFFING_OVERHEAD constant. 2018-01-22 14:15:57 +09:00
Vadim Galyant 797ebcab72 [USBPORT] Fixing use DeviceSpeed instead Direction. 2018-01-21 19:36:01 +01:00
Vadim Galyant a4dee8e3ac [USBPORT] Add a space in indentation. 2018-01-21 19:36:00 +01:00
Vadim Galyant ecd0097e37 [USBPORT] Delete DPRINTs. 2018-01-21 19:36:00 +01:00
Vadim Galyant 0f8079df3a [USBPORT] Add USB2_PREV_MICROFRAME constant. 2018-01-21 19:35:59 +01:00
Vadim Galyant fd5beb5593 [USBPORT] Moving array CMASKS[] to start file. 2018-01-21 19:35:59 +01:00
Vadim Galyant 2c73523b76 [USBPORT] Removing optional braces. 2018-01-21 19:35:59 +01:00
Vadim Galyant c86210e800 [USBPORT] Correcting check Period. 2018-01-21 19:35:58 +01:00
Vadim Galyant dd1297f0d0 [USBPORT] Use min(), max() macro. 2018-01-21 19:35:58 +01:00
Vadim Galyant ab88f25048 [USBPORT] Check Period instead Factor. 2018-01-21 19:35:58 +01:00
Vadim Galyant 954cc021da [USBPORT] Proper naming. 2018-01-21 19:35:57 +01:00
Vadim Galyant 18f4fc71c8 [USBPORT] Use min() macro. 2018-01-21 19:35:57 +01:00
Vadim Galyant 9426d2986d [USBPORT] Fixing calculation pointer for FdoExtension->Usb2Extension. 2018-01-21 19:35:56 +01:00
Vadim Galyant 7b92b8a6e2 [USBPORT] Implement USBPORT_FreeBandwidthUSB2(). 2018-01-21 19:35:56 +01:00
Vadim Galyant 57f092106a [USBPORT] Correcting USB2_DeallocateEndpointBudget(). 2018-01-21 19:35:56 +01:00
Vadim Galyant bc9046c635 [USBPORT] Implement USB2_PromotePeriods(). 2018-01-21 19:35:55 +01:00
Vadim Galyant 0558635f98 [USBPORT] Add USB2_ChangePeriod(). 2018-01-21 19:35:55 +01:00
Vadim Galyant 69406c2628 [USBPORT] Implement USB2_DeallocateEndpointBudget(). 2018-01-21 19:35:54 +01:00
Vadim Galyant 5ad7a2faa5 [USBPORT] Implement USB2_RebalanceEndpoint(). 2018-01-21 19:35:54 +01:00
Vadim Galyant 522c0d3c69 [USBPORT] Implement USB2_Rebalance(). 2018-01-21 19:35:54 +01:00
Vadim Galyant 5d12e3040c [USBPORT] Add stub for USB2_RebalanceEndpoint(). 2018-01-21 19:35:53 +01:00
Vadim Galyant bbbcb1dc75 [USBPORT] Rename variables only in USB2_AllocateTimeForEndpoint(). 2018-01-21 19:35:53 +01:00