Pete Batard [Wed, 13 Jun 2012 12:33:00 +0000 (13:33 +0100)]
Core: Fix Clang warnings
core.c:
* Result of 'malloc' is converted to a pointer of type 'struct libusb_device *',
which is incompatible with sizeof operand type 'void *'
* Memory is never released; potential leak of memory pointed to by 'devs'
* Assigned value is garbage or undefined (due to potentially empty and
uninitialized device list)
descriptor.c:
* Function call argument is an uninitialized value
io.c:
* Call to 'malloc' has an allocation size of 0 bytes
* Branch condition evaluates to a garbage value (due to get_next_timeout
returning a negative error code instead of zero on error)
Pete Batard [Mon, 11 Jun 2012 13:03:57 +0000 (14:03 +0100)]
libusbx 1.0.12-rc1
Pete Batard [Mon, 11 Jun 2012 13:12:56 +0000 (14:12 +0100)]
Autotools: add libusb-1.0.def and libusb_nano.h as dependencies
* Also add version_nano.h to EXTRA_DIST as it is not added to the
dist archive by default
Pete Batard [Fri, 8 Jun 2012 22:31:56 +0000 (23:31 +0100)]
Windows: Enable MinGW and MSVC DLL interchangeability
* Because we use the WINAPI calling convention, the def file MUST have the @n
aliases. There is no way around this as MinGW's .o use decoration always
for __stdcall, which can't be turned off.
* dlltool must therefore be invoked to create a proper import lib from the .def,
using the --kill-at option.
* To do that, a CREATE_IMPORT_LIB autotools variable is introduced.
* Note: the .def file is currently maintained manually.
Pete Batard [Thu, 7 Jun 2012 18:27:43 +0000 (19:27 +0100)]
All: Prevent memory leaks on realloc failures
* p = realloc(p, new_size) does not free the original buffer in case of
a realloc failure.
* reallocf() can be used to do so, but is not available on all platforms.
* This patch introduces usbi_reallocf() in libusbi.h and use that instead of realloc
* Issue and original patch submitted by Moritz Lipp (trac #27)
Pete Batard [Thu, 7 Jun 2012 10:55:30 +0000 (11:55 +0100)]
Windows: Fix possible crash when using longjmp and gcc 4.6
* With gcc-4.6 the option -fomit-frame-pointer is turned on per default
even for the win32 target. This results in segfaults for any application
using setjmp/longjmp and MSVCRT.dll on WinXP.
See http://gcc.gnu.org/ml/gcc/2011-10/msg00351.html
* Issue reported by Lars Kanis
Pete Batard [Wed, 6 Jun 2012 12:49:41 +0000 (13:49 +0100)]
Core: Display libusbx version in libusb_init's debug output
Lars Wirzenius [Wed, 6 Jun 2012 16:34:04 +0000 (17:34 +0100)]
Autotools: Fix autogen.sh behavior when libtool is not found
* Fix naked "exit", which no exit code, to prevent a build failure
from being noticed automatically if a build dependency is lacking.
* Also printed error message to stderr rather than stdout.
Pete Batard [Wed, 6 Jun 2012 09:53:43 +0000 (10:53 +0100)]
Linux: Fix a major regression in threads_posix.c
* On some Linux platforms, libusbx compilation breaks with:
error: implicit declaration of function ‘pthread_mutexattr_settype’
* This regression, introduced in
463dda06db5da5de0eab32820c7af60605625afe,
is due to pthread.h needing __USE_UNIX98, which is tied to _XOPEN_SOURCE
or _GNU_SOURCE being correctly defined, and which the inclusion of
<unistd.h> before the _XOPEN_SOURCE override modified
* As _GNU_LINUX ensures the definition of __USE_UNIX98 and we require it
for syscalls, we now only define _GNU_SOURCE for Linux.
Pete Batard [Tue, 5 Jun 2012 16:29:46 +0000 (17:29 +0100)]
Autotools: Fix versioning regression in configure.ac
* Because of missing [], "LIBUSB_MICROLIBUSB_RC" was being displayed
in lieu of version number
* Regression introduced with
c9d41fe5f0324d969f758f42843e1fd05859f438
Pete Batard [Thu, 31 May 2012 17:31:34 +0000 (18:31 +0100)]
Core: Add toggleable debug logging
* Also fix a missing space in debug log messages introduced
with the previous timestamp logging update
Ludovic Rousseau [Fri, 1 Jun 2012 09:52:17 +0000 (11:52 +0200)]
Core: Fix "LOG_LEVEL_NONE not handled in switch" warning
Ludovic Rousseau [Fri, 1 Jun 2012 09:40:31 +0000 (11:40 +0200)]
Samples: Fix no previous prototype warnings in xusb
Ludovic Rousseau [Fri, 1 Jun 2012 09:30:00 +0000 (11:30 +0200)]
Autotools: Apply autoupdate 2.68 recommendations
* Not applied: AC_PREREQ([2.68]) as this doesn't seem
necessary and 2.68 was released less than 2 years ago.
Pete Batard [Mon, 28 May 2012 11:33:18 +0000 (12:33 +0100)]
Core: Send all logging output to stderr
* This effectively removes the use of stdout for info messages
Pete Batard [Thu, 31 May 2012 12:11:15 +0000 (13:11 +0100)]
Darwin: More OS-X logging improvements
* Further alignment of log messages according to severity
* Fix "'darwin_error_str' defined but not used" warning when
option --disable-log is used (reported by Xiaofan Chen)
Pete Batard [Tue, 29 May 2012 15:06:57 +0000 (16:06 +0100)]
Windows: Add new API calls to DLL .def file
* Generated from a MinGW32 generated DLL using the command:
echo -e "LIBRARY\nEXPORTS" > libusb-1.0.def; strings libusb-1.0.dll | grep libusb | grep @ | sort | sed -e "s/\(.*\)@\([0-9]*\)/ \1\n \1@\2 = \1/" >> libusb-1.0.def
Pete Batard [Fri, 11 May 2012 22:34:03 +0000 (23:34 +0100)]
Windows: Restore HID support
Pete Batard [Thu, 24 May 2012 15:18:58 +0000 (16:18 +0100)]
Core: Only display timestamps in debug mode and use init() as origin
Pete Batard [Thu, 24 May 2012 12:36:23 +0000 (13:36 +0100)]
Core: Define log levels in libusb.h
* Also update xusb sample to use these levels
Pete Batard [Thu, 24 May 2012 10:42:47 +0000 (11:42 +0100)]
Darwin: Align severity of OS-X logging messages
* Some informational messages were actually debug or warning
* Fixes #1
Pete Batard [Thu, 10 May 2012 19:01:10 +0000 (20:01 +0100)]
All: Add parent and port topology calls
* Adds libusb_get_port_number, libusb_get_parent and libusb_get_port_path
* Linux implementation provided by Alan Stern, OS X by Nathan Hjelm
* Unsupported for *BSD platforms
Pete Batard [Wed, 23 May 2012 17:25:01 +0000 (18:25 +0100)]
Misc: Ensure all sources are UTF-8
* Also remove extra lines at the end of samples
Pete Batard [Tue, 22 May 2012 23:10:19 +0000 (00:10 +0100)]
Windows: Reduce severity of initial conf desc readout failures
* Failure to read the config descriptor through regular API calls can
occur for some hubs (eg. 05E3:0608) and is of no major consequence.
* Later failures still reported with error severity as they may hide
something more dramatic
* Issue reported by Jerry from NovaDSP
Pete Batard [Thu, 10 May 2012 16:42:16 +0000 (17:42 +0100)]
Windows: Fix missing cygwin thread ID
* Cygwin uses POSIX threads, not Windows threads
Pete Batard [Thu, 10 May 2012 15:44:30 +0000 (16:44 +0100)]
Windows: Add INSTALL_WIN.txt
Pete Batard [Thu, 10 May 2012 14:56:51 +0000 (15:56 +0100)]
Misc: Separate nano from version.h
* As version.h processed by autotools, the automatic updating of the
nano there can result in unneeded reconfs (eg. after issuing a git
pull, regardless of whether the conf is still valid)
* Avoid this by placing the nano in its own file, as it won't be
processed by autoconf. This also simplifies the versioning git hooks
and removes the sed dependency.
Ludovic Rousseau [Wed, 9 May 2012 07:13:41 +0000 (09:13 +0200)]
Samples: Use the implicit _SOURCES rule
* By default automake looks for a source file foo.c for a foo binary.
Ludovic Rousseau [Wed, 9 May 2012 07:12:01 +0000 (09:12 +0200)]
Samples: Use a common LDADD for all examples
* Similar to libusb patch
a129732fb45fc424743f26f01c906e4514f11521
Pete Batard [Thu, 10 May 2012 14:35:07 +0000 (15:35 +0100)]
Samples: prefer __linux__ over __linux define in xusb
* While both should work, __linux__ seems to be preferred and
what we use in threads_posix.c
* Also fix a typo in .private/README.txt
Pete Batard [Tue, 8 May 2012 22:04:44 +0000 (23:04 +0100)]
libusbx-1.0.11
Ludovic Rousseau [Tue, 8 May 2012 18:34:12 +0000 (20:34 +0200)]
Darwin: Sync type of num_iso_packets fields
* num_iso_packets was a "size_t" in "struct darwin_transfer_priv" and an
"int" in "struct libusb_transfer". The field is now an int in the two
structures
* Fixes warning
os/darwin_usb.c: In function ‘submit_iso_transfer’:
os/darwin_usb.c:1334: warning: comparison between signed and unsigned
Ludovic Rousseau [Tue, 8 May 2012 13:53:56 +0000 (15:53 +0200)]
Core: Handle TRANSFER_ERROR/TRANSFER_CANCELLED for sync transfers
* Return the more appropriate LIBUSB_ERROR_IO instead of
LIBUSB_ERROR_OTHER for the cases LIBUSB_TRANSFER_ERROR and
LIBUSB_TRANSFER_CANCELLED
* Fixes warnings similar to the following when using the GCC
option -Wswitch-enum:
warning: enumeration value ‘LIBUSB_TRANSFER_ERROR’ not handled in switch
Pete Batard [Tue, 8 May 2012 11:10:59 +0000 (12:10 +0100)]
BSD: Add thread ID support for OpenBSD > 5.1
* Uses syscall(SYS_getthrid) which requires real thread support,
currently only available in 5.1-current (but not 5.1-release).
For OpenBSD <= 5.1, -1 will be returned for the thread ID.
Pete Batard [Mon, 7 May 2012 14:41:50 +0000 (15:41 +0100)]
Samples: fix strcat vs strlcat warning on OpenBSD
* Without this, OpenBSD produces the following warning:
strcat() is almost always misused, please use strlcat()
Pete Batard [Sun, 6 May 2012 23:05:36 +0000 (00:05 +0100)]
libusbx 1.0.11-rc1
Peter Stuge [Sun, 6 May 2012 17:04:00 +0000 (17:04 +0000)]
Core: Add a timestamping and thread ID to logging
Ludovic Rousseau [Fri, 4 May 2012 15:56:00 +0000 (16:56 +0100)]
Autotools: Use "$@" instead of $* to avoid spaces problems
* "$@" will correctly handle arguments with spaces
Ludovic Rousseau [Fri, 4 May 2012 15:56:00 +0000 (16:56 +0100)]
Autotools: Use "set -e" to exit on the first error
* The script will not continue if something fails (like a command not found)
Ludovic Rousseau [Fri, 4 May 2012 15:56:00 +0000 (16:56 +0100)]
Autotools: Do not use source to call an another script
* Script is valid for bash but not any /bin/sh
* Thanks to Xiaofan Chen for the bug report
http://sourceforge.net/mailarchive/message.php?msg_id=
29217871
Toby Gray [Thu, 3 May 2012 10:25:11 +0000 (11:25 +0100)]
Windows: Fix deadlock in backend when submitting transfers.
Without this change the Windows backend needed to call usbi_fd_notification()
from within the backend's submit_transfer. This can cause deadlock when
attempting to lock the event lock if another thread was processing events on
the just-submitted transfer.
The deadlock comes about as the thread calling libusb_submit_transfer acquires
the transfer mutex before trying to acquire the event lock; this is the other
order of lock acquisition from an event thread handling activity on the just
submitted transfer. This could lead to one of two deadlocks:
1) If the transfer completes while usbi_fd_notification() is waiting for
the event lock and the callback attempts to resubmit the transfer.
2) If the transfer timeout is hit while usbi_fd_notification() is waiting
for the event lock then the attempt to cancel the transfer will deadlock.
This patch fixes both of these deadlocks by having libusb_submit_transfer()
only call usbi_fd_notification() after having released the transfer mutex.
Pete Batard [Wed, 2 May 2012 17:02:50 +0000 (18:02 +0100)]
Samples: Remove interface requests when querying WCID devices
* As per MS documentation, querying of the Extended Properties
is a device request (0xC0), not an interface one (0xC1), so
there is no issue with the WinUSB wIndex override.
Pete Batard [Wed, 2 May 2012 11:06:36 +0000 (12:06 +0100)]
Autotools: Add bootstrap.sh
bootstrap.sh does not invoke configure whereas autogen.sh does.
This allows libusbx users to choose the one that suits them best.
Uri Lublin [Tue, 1 May 2012 13:47:00 +0000 (14:47 +0100)]
Windows: Fix removal of usbi_fd_notification calls in submit_*_transfer
Commit
4cccbed825fe1dc13812 accidentally removed those calls,
when ! ifdef DYNAMIC_FDS blocks were removed.
Pete Batard [Wed, 25 Apr 2012 23:30:57 +0000 (00:30 +0100)]
Core: update version struct for ABI compatibility
* Adds a static string for describe
* Also update version documentation
James Hanko [Thu, 20 Oct 2011 07:32:34 +0000 (00:32 -0700)]
Linux: Search for /dev/usbdev<bus>.<device> USB device special files
If neither the (now deprecated) usbfs filesystem nor udev is available
then libusbx searches for device nodes also in /dev where they may be
created if the kernel was built with the option CONFIG_USB_DEVICE_CLASS.
This helps on embedded systems such as Android, and all mdev users.
Martin Pieuchot [Thu, 19 Apr 2012 09:33:36 +0000 (11:33 +0200)]
BSD: Provide libusb_get_device_speed() data
Because the different speed values used by the libusb and OpenBSD's
usb_device_info structure are compatible, keep the code simple and
just copy the value returned by the USB_GET_DEVICEINFO ioctl() call.
Ludovic Rousseau [Fri, 20 Apr 2012 09:36:07 +0000 (11:36 +0200)]
Samples: Fix not handled in switch warning in xusb.c
xusb.c: In function ‘test_device’:
xusb.c:722:2: warning: enumeration value ‘USE_GENERIC’ not handled in switch [-Wswitch-enum]
Ludovic Rousseau [Fri, 20 Apr 2012 09:29:50 +0000 (11:29 +0200)]
Samples: Remove unneeded inline in xusb.c
Fixes:
warning: function ‘perr’ can never be inlined because it uses variable argument lists [-Winline]
warning: inlining failed in call to ‘perr’: function not inlinable [-Winline]
Ludovic Rousseau [Fri, 20 Apr 2012 21:25:38 +0000 (22:25 +0100)]
Linux: Fix signed vs unsigned compiler warnings
os/linux_usbfs.c: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
Xiaofan Chen [Sat, 14 Apr 2012 15:17:18 +0000 (23:17 +0800)]
Linux: Silence unused variable warnings without CLOCK_MONOTONIC
Peter Stuge [Mon, 16 Apr 2012 01:59:44 +0000 (03:59 +0200)]
Core: Add debug message with callback address on completed transfer
Pete Batard [Thu, 19 Apr 2012 17:01:04 +0000 (18:01 +0100)]
BSD: add NetBSD experimental support
* also improve OS/backend selection in configure.ac
* original libusb patches from Peter Stuge and Xiaofan Chen
Pete Batard [Tue, 17 Apr 2012 01:20:40 +0000 (02:20 +0100)]
libusbx-1.0.10
Ludovic Rousseau [Sat, 14 Apr 2012 07:27:24 +0000 (09:27 +0200)]
Samples: Fix initialization discards qualifiers warnings in xusb.c
xusb.c: In function ‘read_ms_winsub_feature_descriptors’:
xusb.c:542: warning: initialization discards qualifiers from pointer target type
xusb.c:543: warning: initialization discards qualifiers from pointer target type
xusb.c: In function ‘test_device’:
xusb.c:598: warning: initialization discards qualifiers from pointer target type
xusb.c:598: warning: initialization discards qualifiers from pointer target type
xusb.c:598: warning: initialization discards qualifiers from pointer target type
xusb.c:599: warning: initialization discards qualifiers from pointer target type
xusb.c:599: warning: initialization discards qualifiers from pointer target type
Ludovic Rousseau [Sat, 14 Apr 2012 07:24:58 +0000 (09:24 +0200)]
Samples: Fix no previous prototype warnings in xusb.c
xusb.c:139: warning: no previous prototype for ‘display_buffer_hex’
xusb.c:169: warning: no previous prototype for ‘display_ps3_status’
xusb.c:260: warning: no previous prototype for ‘display_xbox_status’
xusb.c:281: warning: no previous prototype for ‘set_xbox_actuators’
xusb.c:299: warning: no previous prototype for ‘send_mass_storage_command’
xusb.c:354: warning: no previous prototype for ‘get_mass_storage_status’
xusb.c:401: warning: no previous prototype for ‘get_sense’
xusb.c:431: warning: no previous prototype for ‘test_mass_storage’
xusb.c:530: warning: no previous prototype for ‘read_ms_winsub_feature_descriptors’
xusb.c:583: warning: no previous prototype for ‘test_device’
Ludovic Rousseau [Sat, 14 Apr 2012 07:22:15 +0000 (09:22 +0200)]
Misc: Add a missing newline at end of .private/README.txt
Pete Batard [Fri, 13 Apr 2012 21:23:58 +0000 (22:23 +0100)]
libusbx 1.0.10-rc1
Pete Batard [Thu, 12 Apr 2012 22:52:49 +0000 (23:52 +0100)]
Windows: add internal binary snapshot scripts
Pete Batard [Wed, 11 Apr 2012 22:12:21 +0000 (23:12 +0100)]
Git: add pre-commit and post-rewrite hooks for versioning
* Also adds the maintainer-only .private directory
Pete Batard [Wed, 11 Apr 2012 16:44:57 +0000 (17:44 +0100)]
Misc: update pkg-config template
* Change human readable name to libusbx and mention OpenBSD
Pete Batard [Tue, 10 Apr 2012 12:30:24 +0000 (13:30 +0100)]
Windows: Remove #define options and use same set of defaults
* The DYNAMIC_FDS, AUTO_CLAIM and FORCE_INSTANT_TIMEOUTS options
were introduced for development/testing and don't appear to be
used by the Windows backend users => remove them.
Pete Batard [Tue, 10 Apr 2012 12:05:37 +0000 (13:05 +0100)]
Windows: misc improvements
* prefer calloc over malloc
* silence VS2010 intellisense warnings on mem allocation
* other minor fixes and formatting improvements to align with -pbatard
Pete Batard [Tue, 10 Apr 2012 10:58:53 +0000 (11:58 +0100)]
Core: Add get_version() call
* Also some formatting/typo improvements
Pete Batard [Mon, 9 Apr 2012 22:31:24 +0000 (23:31 +0100)]
Windows: remove obsolete lsusb project files
Pete Batard [Mon, 9 Apr 2012 21:59:14 +0000 (22:59 +0100)]
Windows: add VS2010 project files
Peter Stuge [Sat, 7 Apr 2012 03:20:36 +0000 (05:20 +0200)]
examples: Use snprintf() instead of sprintf() in dpfp and dpfp_threaded
The OpenBSD C compiler generates a warning for every use of sprintf()
and for a good reason. Reported in http://marc.info/?m=
133376187514495
Reported-by: Xiaofan Chen <xiaofanc@gmail.com>
Peter Stuge [Sat, 7 Apr 2012 01:55:36 +0000 (03:55 +0200)]
OpenBSD: Fix warning: 'hpriv' may be used uninitialized
As reported in http://marc.info/?m=
133376187514495
The variable would be used uninitialized when the internal list of
open devices is empty as obsd_handle_events() checks which device
the event fd belongs to, which can not actually happen, but if it
ever does happen then we will now return LIBUSB_ERROR_NO_DEVICE.
Reported-by: Xiaofan Chen <xiaofanc@gmail.com>
Pete Batard [Mon, 9 Apr 2012 21:28:34 +0000 (22:28 +0100)]
Windows: Fix support for variadic macros
* Visual C++ did not support variadic macros until VS2005, as per
http://msdn.microsoft.com/en-us/library/ms177415%28v=VS.80%29.aspx
Ludovic Rousseau [Wed, 4 Apr 2012 07:30:12 +0000 (09:30 +0200)]
Misc: Indicate that licence is LGPL-2.1 or later
Also make the name of the licence more explicit.
Ludovic Rousseau [Wed, 4 Apr 2012 07:24:17 +0000 (09:24 +0200)]
Misc: Update list of maintainers from README
Pete Batard [Tue, 3 Apr 2012 15:31:32 +0000 (16:31 +0100)]
Misc: Fix missing libsub's -> libusbx's from previous patches
Pete Batard [Tue, 3 Apr 2012 12:42:42 +0000 (13:42 +0100)]
Doc: Update doxygen for libusbx and add logo
Pete Batard [Tue, 3 Apr 2012 12:40:39 +0000 (13:40 +0100)]
Misc: Rebrand to libusbx
* Mentions of 'libusb' in doxygen are changed to 'libusbx'
* Also update copyright notices and remove unneeded EOF LFs
Pete Batard [Mon, 2 Apr 2012 14:47:53 +0000 (15:47 +0100)]
libusbx 1.0.9
* Also updated AUTHORS and THANKS
Pete Batard [Sun, 1 Apr 2012 20:30:52 +0000 (21:30 +0100)]
Samples: Fix "warning: no newline at end of file" in xusb.c
* Also remove trailing whitespaces
Pete Batard [Sat, 31 Mar 2012 21:32:56 +0000 (22:32 +0100)]
Autotools: Fix missing DLL .def file from make dist
Pete Batard [Sat, 31 Mar 2012 21:14:47 +0000 (22:14 +0100)]
Autotools: Fix msvc dir not being included in make dist
Hans de Goede [Fri, 30 Mar 2012 12:40:32 +0000 (13:40 +0100)]
Linux: Don't spam the console with 'device unconfigured' errors
Pete Batard [Fri, 30 Mar 2012 23:17:44 +0000 (00:17 +0100)]
libusbx 1.0.9-rc5
Pete Batard [Fri, 30 Mar 2012 23:21:18 +0000 (00:21 +0100)]
Autotools: remove --enable-debug-log option in autogen.sh
Pete Batard [Fri, 30 Mar 2012 12:40:32 +0000 (13:40 +0100)]
Darwin: Fix a warning on 64 bit platforms
Pete Batard [Fri, 30 Mar 2012 12:05:12 +0000 (13:05 +0100)]
Autotools: Fix make distcheck and add ChangeLog
Pete Batard [Fri, 30 Mar 2012 12:04:18 +0000 (13:04 +0100)]
Autotools: Fix package name and URLs in configure.ac
Pete Batard [Thu, 29 Mar 2012 22:22:28 +0000 (23:22 +0100)]
libusbx 1.0.9-rc4
Pete Batard [Thu, 29 Mar 2012 22:21:25 +0000 (23:21 +0100)]
Git: add export-ignore for git config file
* Prevents release archives produced from git to contain
git related files.
Pete Batard [Wed, 28 Mar 2012 10:43:00 +0000 (11:43 +0100)]
Samples: fix a "value is always 0" Clang warning in xusb.c
* Remove the use of os_fd[i].recipient and alter comments with
regards to Windows Extended Props test limitations with WinUSB
Pete Batard [Wed, 28 Mar 2012 00:02:02 +0000 (01:02 +0100)]
Windows: fix Clang warnings about unused assignations
Pete Batard [Wed, 28 Mar 2012 09:56:32 +0000 (10:56 +0100)]
Samples: Fix missing xusb from VS project files
Pete Batard [Mon, 26 Mar 2012 22:34:25 +0000 (23:34 +0100)]
autotools: LT_LANG([Windows Resource]) makes windres check redundant
Pete Batard [Mon, 26 Mar 2012 22:48:49 +0000 (23:48 +0100)]
Examples: add xusb sample
* Also improvements to WDK build scripts:
cd to original dir on error, use 2 cores if available
Pete Batard [Mon, 26 Mar 2012 23:03:07 +0000 (00:03 +0100)]
VS2005: Bring x86_64 output directories in line with x86_32
Hans de Goede [Mon, 26 Mar 2012 22:01:48 +0000 (23:01 +0100)]
Linux: fix inaccurate comment
* We don't stop on urbs/iso pkts with less data then requested
Hans de Goede [Mon, 26 Mar 2012 22:00:28 +0000 (23:00 +0100)]
Linux: Remove unneeded status assignation
* status value was never used
Hans de Goede [Mon, 26 Mar 2012 21:54:12 +0000 (22:54 +0100)]
Linux: Translate iso pkt status codes to libusb transfer status codes
* Linux negative errno from iso pkts status must be translated and reported.
Hans de Goede [Mon, 26 Mar 2012 21:51:56 +0000 (22:51 +0100)]
Linux: Fix handling of urb status codes
* Adds EOVERFLOW handling in handle_control_completion
* Removes handling of codes that can never occur on an iso urb
Hans de Goede [Mon, 26 Mar 2012 20:37:03 +0000 (21:37 +0100)]
Linux: Don't print errors when cancel_transfer fails with NOT_FOUND
* Under some cricumstances, LIBUSB_ERROR_NOT_FOUND is an expected
return value for cancel_transfer so printing an error is undesirable.
Hans de Goede [Mon, 26 Mar 2012 20:33:39 +0000 (21:33 +0100)]
Linux: Fix cancel_transfer return value when cancelling a multi-urb transfer
* if we've successfully cancelled the last urb, and then another urb
fails with errno == EINVAL, we shouldn't return LIBUSB_ERROR_NOT_FOUND
Peter Stuge [Thu, 22 Mar 2012 00:52:59 +0000 (01:52 +0100)]
libusbi.h: Add IS_EPIN() IS_EPOUT() IS_XFERIN() and IS_XFEROUT() macros
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.
Peter Stuge [Wed, 22 Feb 2012 13:21:54 +0000 (14:21 +0100)]
Add LIBUSB_TRANSFER_ADD_ZERO_PACKET flag to indicate need for ZLP
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.