| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
* Mentions of 'libusb' in doxygen are changed to 'libusbx'
* Also update copyright notices and remove unneeded EOF LFs
|
| |
|
| |
|
| |
|
|
|
|
| |
* We don't stop on urbs/iso pkts with less data then requested
|
|
|
|
| |
* status value was never used
|
|
|
|
| |
* Linux negative errno from iso pkts status must be translated and reported.
|
|
|
|
|
| |
* Adds EOVERFLOW handling in handle_control_completion
* Removes handling of codes that can never occur on an iso urb
|
|
|
|
|
| |
* if we've successfully cancelled the last urb, and then another urb
fails with errno == EINVAL, we shouldn't return LIBUSB_ERROR_NOT_FOUND
|
|
|
|
|
|
| |
The macros make backend code a little simpler to read, since the
transfer and endpoint direction is checked in several places across
the supported platforms.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some protocols which use USB require an extra zero length data packet
to signal end-of-transfer on bulk endpoints, if the last data packet
is exactly wMaxPacketSize bytes long.
This flag allows applications to inform libusb about this requirement,
so that libusb can handle the issue transparently.
At the moment the new flag is only supported on Linux, and submitting
a transfer with the flag set returns an error at submit time on other
systems. Hopefully implementations will soon follow for other systems.
References #6.
|
|
|
|
|
|
| |
The old check_flag_bulk_continuation() tested for one specific running
kernel version. The new kernel_version_ge() instead allows to test the
running kernel version against major, minor and sublevel parameters.
|
|
|
|
|
| |
LIBUSB_ENDPOINT_OUT is the value of the direction bit, which is 0 for
OUT transfers, so the previous condition could never evaluate to true.
|
|
|
|
| |
Fixes #128.
|
|
|
|
|
|
| |
* tests conducted using a Renesas PCIE USB 3.0 controller and driver and
a mass storage USB 3.0 confirm that USB_NODE_CONNECTION_INFORMATION_EX
uses (undocumented) value 3 for SuperSpeed
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Use OSAtomicIncrement32Barrier() and OSAtomicDecrement32Barrier()
in darwin_init() and darwin_exit() to be thread safe.
|
| |
|
|
|
|
|
| |
* indexes were outgrowing the unref_list array before realloc,
resulting in out of bound access and crash.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* usbi_dbg encloses all references to guid_to_string
* MinGW/cygwin warn about an unused function, so the #if
squelches this warning
* MSVC6 uses a variadic function form of usbi_dbg instead
of a macro, so the compiler still "sees" guid_to_string
and it therefore needs to always be defined for MSVC6,
even if it's only a stub.
* So we define it if usbi_dbg is used OR if MSVC6 is used.
Signed-off-by: Michael Plante <michael.plante@gmail.com>
|
|
|
|
|
|
| |
* issue reported by Elmi
Signed-off-by: Michael Plante <michael.plante@gmail.com>
|
|
|
|
|
|
|
| |
* unlike later iterations of Visual Studio, MSVC6 does not accept
blank parameters on macro calls [eg. CALL(a, ,b)]
* blank params were used with the DLL_DECLARE and DLL_LOAD macros
* issue reported by Elmi
|
| |
|
|
|
|
|
| |
The call to pthread_setname_np() makes it easy to identify the
background thread in the Xcode debugger and in crash reports.
|
|
|
|
| |
References #121.
|
|
|
|
| |
References #121.
|
|
|
|
|
|
| |
* pointed out by Travis Robinson and Xiaofan Chen
* similar to a change advised by Alan Stern for the Linux kernel:
http://marc.info/?m=122790204410765
|
|
|
|
| |
* issue reported by René Haunstrup in http://marc.info/?m=130503019227814
|
|
|
|
|
|
| |
* Windows 8, NEC/Renesas, TI, Fresco Logic, Etron, VIA, ASMedia
(some of which untested!)
* includes workaround for NEC/Renesas USB 3.0 root hubs
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The transfer size is now always truncated to 32 bits.
|
|
|
|
|
| |
References #88. The race condition still remains, but this change
makes it less likely to trigger.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A submitted transfer that has just been failed by the kernel could be
picked up by an event handler to be cleaned up, where freeing of URB
memory would race with the submit function doing it's own cleanup and
freeing as a result of the submit failing.
libusb_submit_transfer() always holds itransfer->lock, so the race can
be avoided by taking that lock also in the cleanup path and checking
that the URB memory has not already been freed before freeing it there.
As http://libusb.org/ticket/81#comment:14 notes there is still another
possible, but unlikely, race condition between libusb_submit_transfer()
and an event handling thread. That will require more work to solve.
[stuge: Add check in cleanup path that URBs have not already been freed]
|
|
|
|
| |
Fixes #109.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
The code has been tested with various version strings.
[stuge: Remove bogus string length check and optimize for newer kernels]
|
|
|
|
|
|
|
|
|
| |
* use (currently superspeed unaware) USB_NODE_CONNECTION_INFORMATION_EX
Fixes #45.
[stuge: Explicitly convert OS device speeds to libusb device speeds]
[pbatard: Add breaks overlooked when adding explicit conversion]
|
|
|
|
| |
References #45.
|