summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-08-20Windows: Add libusbk.sys & libusb0.sys driver supportHEADmasterPete Batard3-332/+751
* Both libusbk and libusb0.sys rely on libusbk.dll being installed to provides a WinUSB-like API for driver access. * In case libusbk.dll is not present, fall back to WinUSB. * Closes #11 * Closes #12
2012-08-20Windows: Fix C4005 warning under VS2012 for inline.Anthony Clay, ZarthCode LLC2-1/+3
* Changed inline macro to not fire when using Visual Studio/C++, which attempts to redefine the macro - resulting in a C4005 warning.
2012-08-12Samples: Make target mandatory with -b option in xusbPete Batard2-9/+7
2012-08-12Core: Improve instrumentation of timerfd_settime failuresPete Batard2-3/+4
* Report errno as well as itimerspec data * Also reuse the timeout variable set to &transfer->timeout
2012-08-12Core: Fix a Clang warning in io.cPete Batard3-3/+4
* Using sizeof() in the UNUSED() macro didn't silence all unused variable warnings. * Also fix an "unused ctx" warning when ENABLE_DEBUG_LOGGING is on * Also improve debug output on libusb_open() failure
2012-08-06Windows: Add workaround for Intel USB 3.0 root hubsMatthias Bolte2-6/+8
* Intel USB 3.0 root hubs are similar to the Nec/Renesas USB 3.0 root hubs as they aren't listed under "USB" either but under "IUSB3". * Extend the existing workaround for Nec/Renesas USB 3.0 root hubs to handle the Intel ones as well. * Closes #39
2012-08-04Core: Fix unconditional disarming of timerfdPete Batard2-92/+83
* Existing code appears disarms the timerfd always, which cancels pending timeouts as soon as one packet completes. * This fix moves the disarming of the timerfd to arm_timerfd_for_next_timeout(), where it is now done conditionally. It also avoids calling disarm outside of the above call. * This patch also ensures that all handling of the timerfd is done under the flying transfers lock. * Issue reported by Hans de Goede. For more info, see: https://sourceforge.net/mailarchive/message.php?msg_id=29442693
2012-08-03Core: NULL list pointers on deletionOrin Eman3-6/+5
* This aims at highlighting unwanted behaviours on list operations, and facilitate early detection of potential bugs. * This also requires a fix in threads_windows.c * See http://sourceforge.net/mailarchive/message.php?msg_id=29626351
2012-08-01Misc: Add a readme for git userPete Batard2-1/+31
* Suggested by Yves Arrouye: http://sourceforge.net/mailarchive/message.php?msg_id=29577839
2012-07-18Windows: Set device number for root hubs to 1Pete Batard2-3/+6
* Other platforms (Linux, OS-X) appear to use 1 => follow suit. * For non root hub devices, we simply increment the USB device address. * Collisions with device address 0 are not expected, but we add an assertion for just in case.
2012-07-17Windows: Fix overflow when handling HID or composite devicesPete Batard3-9/+20
* When libusb_get_device_list() is called mutliple times, the HID device path was unconditionally duplicated in the list of device's interfaces. * Because array boundaries were not checked, this caused overflow and crash. * This patch adds an out of bound check and also ensures that duplication of data, for HID and composite, does not occur * It also renames the private composite_api_flags to api_flags, as well as reorganizes the private attributes * Bug report and part of the fix provided by Toby Gray
2012-07-17Windows: usbi_cond_destroy() should free handles created by usbi_cond_intwait().Simon Haggett2-1/+2
* Without this change every call to usbi_cond_destroy() leaks an event handle.
2012-07-13All: Replace malloc+memset with callocDavidlohr Bueso4-13/+7
2012-07-03Core: Prefix LOG_LEVEL_ with LIBUSB_ to avoid conflictsPete Batard5-37/+37
* The LOG_LEVEL_ enums, that were moved to the public API in 933a319469bcccc962031c989e39d9d1f44f2885 may conflict with applications/headers that also define their own LOG_LEVEL_ values internally. * As a matter of fact, as per Trac #31, this produces a conflict with libusb-compat, as it defines its own levels.
2012-07-02Misc: Fix more Clang warnings in core and darwinPete Batard6-5/+7
* http://sourceforge.net/mailarchive/message.php?msg_id=29418038 * core.c:700:4: warning: Function call argument is an uninitialized value * darwin_usb.c:1713:11: warning: Access to field 'cfSource' results in a dereference of a null pointer (loaded from variable 'hpriv') * sync.c/dpfp.c/dpfp_threaded.c: warning: Result of 'malloc' is converted to a pointer of type 'unsigned char', which is incompatible with sizeof operand type
2012-07-02Windows: Address MSVC Level 4 & WDK's OACR/Prefast warningsPete Batard10-41/+58
* The library is now compiled with warning level 4 for VS2010 * Move silencing of 4200, 28125 and 28719 to msvc/config.h * Add fixes in core to silence unused variables warnings * Ensure that spinlock is always set interlocked in poll_windows * Add missing check for calloc return value * Fix data assignation in conditionals warnings * Fix an OACR/Prefast error related to the use of strncpy in xusb.c * Also fixes whitespace inconsistencies in core * Issues reported by Orin Eman and Xiaofan Chen. See: https://sourceforge.net/mailarchive/message.php?msg_id=29412656
2012-06-25Windows: Some versions of dlltool require a library nameXiaofan Chen2-2/+2
* Even though the library name is optional as specified by Microsoft, some recent versions of libtool require one in libusb-1.0.def. * Reference thread in MinGW-w64 mailing list. http://comments.gmane.org/gmane.comp.gnu.mingw.w64.general/5141
2012-06-25Windows: Fix warnings reported by the Intel CompilerPete Batard3-12/+9
* windows_usb.c(161): warning #181: argument is incompatible with corresponding format string conversion * windows_usb.c(2124): warning #111: statement is unreachable usbi_dbg("ERROR: broken timer thread"); * multiple: warning #188: enumerated type mixed with another * Issues reported by Orin Eman
2012-06-15libusbx-1.0.12Pete Batard3-6/+6
2012-06-14Samples: Remove USB version for speed designations in xusbXiaofan Chen2-3/+3
2012-06-13Windows: Fix erroneous pointer array allocation reported by ClangPete Batard2-2/+2
* Result of 'calloc' is converted to a pointer of type 'unsigned char *', which is incompatible with sizeof operand type 'PUSB_CONFIGURATION_DESCRIPTOR' * priv->config_descriptor is indeed an array of pointers, with each descriptor allocated, rather than a sequential list of fixed descriptor.
2012-06-13Core: Fix Clang warningsPete Batard4-6/+10
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)
2012-06-11libusbx 1.0.12-rc1Pete Batard4-3/+17
2012-06-11Autotools: add libusb-1.0.def and libusb_nano.h as dependenciesPete Batard3-4/+4
* Also add version_nano.h to EXTRA_DIST as it is not added to the dist archive by default
2012-06-08Windows: Enable MinGW and MSVC DLL interchangeabilityPete Batard3-1/+12
* 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.
2012-06-08All: Prevent memory leaks on realloc failuresPete Batard5-4/+12
* 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)
2012-06-07Windows: Fix possible crash when using longjmp and gcc 4.6Pete Batard2-2/+3
* 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
2012-06-07Core: Display libusbx version in libusb_init's debug outputPete Batard2-2/+3
2012-06-06Autotools: Fix autogen.sh behavior when libtool is not foundLars Wirzenius2-3/+3
* 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.
2012-06-06Linux: Fix a major regression in threads_posix.cPete Batard2-10/+7
* 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.
2012-06-05Autotools: Fix versioning regression in configure.acPete Batard2-2/+2
* Because of missing [], "LIBUSB_MICROLIBUSB_RC" was being displayed in lieu of version number * Regression introduced with c9d41fe5f0324d969f758f42843e1fd05859f438
2012-06-04Core: Add toggleable debug loggingPete Batard6-15/+21
* Also fix a missing space in debug log messages introduced with the previous timestamp logging update
2012-06-04Core: Fix "LOG_LEVEL_NONE not handled in switch" warningLudovic Rousseau2-2/+4
2012-06-04Samples: Fix no previous prototype warnings in xusbLudovic Rousseau2-3/+3
2012-06-04Autotools: Apply autoupdate 2.68 recommendationsLudovic Rousseau3-6/+6
* Not applied: AC_PREREQ([2.68]) as this doesn't seem necessary and 2.68 was released less than 2 years ago.
2012-05-31Core: Send all logging output to stderrPete Batard2-17/+12
* This effectively removes the use of stdout for info messages
2012-05-31Darwin: More OS-X logging improvementsPete Batard2-12/+14
* 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)
2012-05-29Windows: Add new API calls to DLL .def filePete Batard2-1/+7
* 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
2012-05-28Windows: Restore HID supportPete Batard4-21/+1513
2012-05-28Core: Only display timestamps in debug mode and use init() as originPete Batard2-11/+24
2012-05-28Core: Define log levels in libusb.hPete Batard5-24/+30
* Also update xusb sample to use these levels
2012-05-28Darwin: Align severity of OS-X logging messagesPete Batard2-21/+21
* Some informational messages were actually debug or warning * Fixes #1
2012-05-28All: Add parent and port topology callsPete Batard8-15/+201
* 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
2012-05-23Misc: Ensure all sources are UTF-8Pete Batard22-31/+28
* Also remove extra lines at the end of samples
2012-05-23Windows: Reduce severity of initial conf desc readout failuresPete Batard2-4/+5
* 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
2012-05-10Windows: Fix missing cygwin thread IDPete Batard2-1/+5
* Cygwin uses POSIX threads, not Windows threads
2012-05-10Windows: Add INSTALL_WIN.txtPete Batard2-1/+60
2012-05-10Misc: Separate nano from version.hPete Batard3-11/+5
* 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.
2012-05-10Samples: Use the implicit _SOURCES ruleLudovic Rousseau2-7/+1
* By default automake looks for a source file foo.c for a foo binary.
2012-05-10Samples: Use a common LDADD for all examplesLudovic Rousseau2-5/+3
* Similar to libusb patch a129732fb45fc424743f26f01c906e4514f11521