Commit graph

282 commits

Author SHA1 Message Date
Kevin Mehall
4edb4a47ca v0.2-beta.1 2025-05-25 12:57:52 -06:00
Kevin Mehall
123ce06efd
Merge pull request #135 from kevinmehall/errors
Error handling fixes
2025-05-25 12:50:37 -06:00
Kevin Mehall
24c7ac5efd Error on IN transfer that is not a multiple of max packet size on all platforms 2025-05-25 11:47:50 -06:00
Kevin Mehall
e02378e556 windows: InvalidArgument for unsupported control recipient interface 2025-05-25 11:47:50 -06:00
Kevin Mehall
00667caa01 windows: fix submit-time error 2025-05-25 11:47:50 -06:00
Kevin Mehall
5ac12ef088 macos: map error type for control timeout 2025-05-25 11:47:50 -06:00
Kevin Mehall
18bb260623 Make TransferError::Unknown hold u32
macOS errors have the high bit set
2025-05-25 11:47:50 -06:00
Kevin Mehall
221867978b
Merge pull request #134 from kevinmehall/clippy
Clippy fixes
2025-05-24 15:16:40 -06:00
Kevin Mehall
700b8da9d8 Clippy fixes 2025-05-24 14:56:33 -06:00
Kevin Mehall
19e540fdd7
Merge pull request #131 from kevinmehall/fixes
Clean up barely-used dependency, fix potential synchronization issues
2025-05-10 13:21:13 -06:00
Kevin Mehall
5a23b845a4 Fix memory ordering for dropping transfers 2025-05-10 13:08:29 -06:00
Kevin Mehall
4a9c3e5bbc Prevent dropping a device while a control transfer is pending 2025-05-04 10:03:53 -06:00
Kevin Mehall
dac6f52c27 Remove atomic-waker 2025-05-03 22:30:37 -06:00
Kevin Mehall
e1796a80dd
Merge pull request #117 from kevinmehall/redesign
Redesign endpoint and transfer API
2025-05-03 22:11:34 -06:00
Kevin Mehall
3f558194da windows: Revert to GetOverlappedResult for completion status
OVERLAPPED.Internal contains NTSTATUS instead of WIN32_ERROR,
and while it seems very unlikely to change, is documented as
subject to change.
2025-05-03 15:57:11 -06:00
Kevin Mehall
b976e91ce8 Docs edits 2025-05-03 14:10:37 -06:00
Kevin Mehall
4a3b5ddf9f Simplify actual_len vs requested_len 2025-05-03 14:10:37 -06:00
Kevin Mehall
6027b5c069 Include error code in TransferError::Unknown 2025-05-03 10:19:44 -06:00
Kevin Mehall
1e3ae0f9be Rename Completion::data -> buffer 2025-04-27 21:54:50 -06:00
Kevin Mehall
6501af522f Move Completion to nusb::transfer 2025-04-27 13:52:20 -06:00
Kevin Mehall
3af56dd8f1 Endpoint::wait_next_complete for blocking wait 2025-04-20 17:02:04 -06:00
Kevin Mehall
2929a10b76 Linux zero-copy 2025-04-20 17:01:40 -06:00
Kevin Mehall
992fd16078 Expose buffer instead of transfer 2025-04-20 17:01:36 -06:00
Kevin Mehall
ba3f7d65cf impl Error for ClaimEndpointError 2025-04-12 13:47:19 -06:00
Kevin Mehall
2aee309cc3 Use TransferError for control transfers 2025-04-12 13:47:19 -06:00
Kevin Mehall
47a1896653 windows: Enable RAW_IO when creating an IN endpoint 2025-04-12 13:47:19 -06:00
Kevin Mehall
ef82f2c7f1 Redesign transfer / endpoint API 2025-04-12 13:47:19 -06:00
Kevin Mehall
3091921075
Merge pull request #125 from kevinmehall/async-rt
Add cargo features for `smol` and `tokio` runtimes
2025-04-12 13:45:47 -06:00
Kevin Mehall
38189baf5c cargo features for smol and tokio blocking executors 2025-04-12 13:29:17 -06:00
Kevin Mehall
413093e181 Bump MSRV to 1.79
The associated type bounds feature, stabilized in 1.79 allows adding
an implied Send bound on all IntoFuture types used with MaybeFuture,
so every function doesn't have to be marked as Send.

This is going to be especially useful with wasm, because it allows the
Send bound to be turned on and off in one place.
2025-04-09 08:23:09 -06:00
Kevin Mehall
25556d7f6b Prepare for not requiring Send on wasm 2025-04-09 08:23:09 -06:00
Kevin Mehall
bd3ba8283d Make MaybeFuture Send 2025-04-02 08:14:26 -06:00
Paweł Gorgoń
873f96b8e1
fix(macos): claiming incorrect interface (#124)
* fix(macos): claiming interface on macOS treats interface number as index

Bug is exposed when connected device has not continuous interface numbers. Then getting nth interface is not the same as getting interface of specific number.

This commit fixes it by getting and comparing bInterfaceNumber instead of using `nth(interface_number)` function on iterator.

* refactor: reformatted find closure in claim_interface

Extracted `get_integer_property` usage into a local variable for clarity and improved readability. This refactor maintains existing functionality while simplifying the comparison logic.

* feat: Add debug logging for interface discovery in macOS IOKit

This change introduces a debug log to provide more visibility during the interface discovery process. It logs the target interface number and the current interface being examined, noting whether a match was found. This aids debugging and troubleshooting in device enumeration scenarios.

* refactor: Rephrase debug log for interface claim process.
2025-04-02 08:11:37 -06:00
Kevin Mehall
2801deedce linux: Clean up version parsing 2025-04-01 20:13:39 -06:00
pgorgon-hem
f10a5f2c22
Add usb version to device info (#123)
Introduced a new `usb_version` field to represent the encoded USB specification version (`bcdUSB`) in DeviceInfo struct. This change includes updates to data structure, a new accessor method, and enhanced debug formatting to display the `usb_version` field.
2025-04-01 19:32:10 -06:00
Kevin Mehall
a243514f58
Merge pull request #114 from kevinmehall/rustix
Update Rustix to 1.0, use it for udev netlink
2025-03-08 14:31:03 -07:00
Kevin Mehall
f0a2e8c5a7 linux: use ioctl numbers from linux_raw_sys 2025-03-08 12:11:09 -07:00
Kevin Mehall
0e145f89a6 Switch to rustix for netlink bind/recvfrom 2025-03-07 22:42:44 -07:00
Kevin Mehall
53a3fe41fc linux: Use MaybeUninit buffer for epoll 2025-03-07 22:39:46 -07:00
Kevin Mehall
d49490ce6a Update Rustix to 1.0 2025-03-07 22:39:46 -07:00
Kevin Mehall
c3ad79ceac
Merge pull request #116 from kevinmehall/refactor
Refactor
2025-02-23 17:49:16 -07:00
Kevin Mehall
5e866af4e4 Add MaybeFuture::map 2025-02-22 15:17:58 -07:00
Kevin Mehall
8dfb3e5f1d linux: Refactor events slab 2025-02-22 12:04:24 -07:00
Kevin Mehall
99eaf768fd Refactor Direction 2025-02-22 12:04:24 -07:00
Kevin Mehall
1508051e1a Track interface alt setting 2025-02-22 11:45:39 -07:00
Kevin Mehall
12c0b57d13 Rename EndpointType -> TransferType 2025-02-19 21:10:19 -07:00
Kevin Mehall
fa37585510 Rename Descriptors -> DescriptorIter, don't include the parent descriptor 2025-02-19 21:10:19 -07:00
Kevin Mehall
e8b271d874 Return option instead of panic in descriptor constructors 2025-02-19 21:10:12 -07:00
Kevin Mehall
b526f6a6a3 Use NonZeroU8 for string descriptor indexes 2025-02-16 15:55:32 -07:00
Kevin Mehall
dad53d268d
Merge pull request #115 from kevinmehall/descriptor-api
Descriptor API changes
2025-02-15 19:27:00 -07:00