xref: /aosp_15_r20/external/libusb/ChangeLog (revision 86b64dcb59b3a0b37502ecd56e119234366a6f7e)
1*86b64dcbSAndroid Build Coastguard WorkerFor detailed information about the changes below, please see the git log
2*86b64dcbSAndroid Build Coastguard Workeror visit: http://log.libusb.info
3*86b64dcbSAndroid Build Coastguard Worker
4*86b64dcbSAndroid Build Coastguard Worker2024-01-31: v1.0.27
5*86b64dcbSAndroid Build Coastguard Worker* New libusb_init_context API to replace libusb_init
6*86b64dcbSAndroid Build Coastguard Worker* New libusb_get_max_alt_packet_size API
7*86b64dcbSAndroid Build Coastguard Worker* New libusb_get_platform_descriptor API (BOS)
8*86b64dcbSAndroid Build Coastguard Worker* Allow setting log callback with libusb_set_option/libusb_init_context
9*86b64dcbSAndroid Build Coastguard Worker* New WebAssembly + WebUSB backend using Emscripten
10*86b64dcbSAndroid Build Coastguard Worker* Fix regression in libusb_set_interface_alt_setting
11*86b64dcbSAndroid Build Coastguard Worker* Fix sync transfer completion race and use-after-free
12*86b64dcbSAndroid Build Coastguard Worker* Fix hotplug exit ordering
13*86b64dcbSAndroid Build Coastguard Worker* Linux: NO_DEVICE_DISCOVERY option set per context
14*86b64dcbSAndroid Build Coastguard Worker* macOS: Fix missing device list cleanup locking
15*86b64dcbSAndroid Build Coastguard Worker* macOS: Do not clear device data toggle for newer OS versions
16*86b64dcbSAndroid Build Coastguard Worker* macOS: Fix running binaries on older OS than build host
17*86b64dcbSAndroid Build Coastguard Worker* Windows: Allow claiming multiple associated interfaces
18*86b64dcbSAndroid Build Coastguard Worker* Windows: Ignore non-configured devices instead of waiting
19*86b64dcbSAndroid Build Coastguard Worker* Windows: Improved root hub detection
20*86b64dcbSAndroid Build Coastguard Worker
21*86b64dcbSAndroid Build Coastguard Worker2022-04-10: v1.0.26
22*86b64dcbSAndroid Build Coastguard Worker* Fix regression with transfer free's after closing device
23*86b64dcbSAndroid Build Coastguard Worker* Fix regression with destroyed context if API is misused
24*86b64dcbSAndroid Build Coastguard Worker* Workaround for applications using missing default context
25*86b64dcbSAndroid Build Coastguard Worker* Fix hotplog enumeration regression
26*86b64dcbSAndroid Build Coastguard Worker* Fix Windows isochronous transfer regression since 1.0.24
27*86b64dcbSAndroid Build Coastguard Worker* Fix macOS exit crash in some multi-context cases
28*86b64dcbSAndroid Build Coastguard Worker* Build fixes for various platforms and configurations
29*86b64dcbSAndroid Build Coastguard Worker* Fix Windows HID multi-interface product string retrieval
30*86b64dcbSAndroid Build Coastguard Worker* Update isochronous OUT packet actual lengths on Windows
31*86b64dcbSAndroid Build Coastguard Worker* Add interface bound checking for broken devices
32*86b64dcbSAndroid Build Coastguard Worker* Add umockdev tests on Linux
33*86b64dcbSAndroid Build Coastguard Worker
34*86b64dcbSAndroid Build Coastguard Worker2022-01-31: v1.0.25
35*86b64dcbSAndroid Build Coastguard Worker* Linux: Fix regression with some particular devices
36*86b64dcbSAndroid Build Coastguard Worker* Linux: Fix regression with libusb_handle_events_timeout_completed()
37*86b64dcbSAndroid Build Coastguard Worker* Linux: Fix regression with cpu usage in libusb_bulk_transfer
38*86b64dcbSAndroid Build Coastguard Worker* Darwin (macOS): Add support for detaching kernel drivers with authorization.
39*86b64dcbSAndroid Build Coastguard Worker* Darwin (macOS): Do not drop partial data on timeout.
40*86b64dcbSAndroid Build Coastguard Worker* Darwin (macOS): Silence pipe error in set_interface_alt_setting().
41*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix HID backend missing byte
42*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix segfault with libusbk driver
43*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix regression when using libusb0 driver
44*86b64dcbSAndroid Build Coastguard Worker* Windows: Support LIBUSB_TRANSFER_ADD_ZERO_PACKET on winusb
45*86b64dcbSAndroid Build Coastguard Worker* New NO_DEVICE_DISCOVERY option replaces WEAK_AUTHORITY option
46*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
47*86b64dcbSAndroid Build Coastguard Worker
48*86b64dcbSAndroid Build Coastguard Worker2020-12-09: v1.0.24
49*86b64dcbSAndroid Build Coastguard Worker* Add new platform abstraction (#252)
50*86b64dcbSAndroid Build Coastguard Worker* Add Null POSIX backend
51*86b64dcbSAndroid Build Coastguard Worker* Add support for eventfd
52*86b64dcbSAndroid Build Coastguard Worker* Add support for thread IDs on Haiku, NetBSD and Solaris
53*86b64dcbSAndroid Build Coastguard Worker* New API libusb_hotplug_get_user_data()
54*86b64dcbSAndroid Build Coastguard Worker* Darwin (macOS): Fix race condition that results in segmentation fault (#701)
55*86b64dcbSAndroid Build Coastguard Worker* Darwin (macOS): Fix stale descriptor information post reset (#733)
56*86b64dcbSAndroid Build Coastguard Worker* Darwin (macOS): use IOUSBDevice as darwin_device_class explicitly (#693)
57*86b64dcbSAndroid Build Coastguard Worker* Linux: Drop support for kernel older than 2.6.32
58*86b64dcbSAndroid Build Coastguard Worker* Linux: Provide an event thread name (#689)
59*86b64dcbSAndroid Build Coastguard Worker* Linux: Wait until all URBs have been reaped before freeing them (#607)
60*86b64dcbSAndroid Build Coastguard Worker* NetBSD: Recognize device timeouts (#710)
61*86b64dcbSAndroid Build Coastguard Worker* OpenBSD: Allow opening ugen devices multiple times (#763)
62*86b64dcbSAndroid Build Coastguard Worker* OpenBSD: Support libusb_get_port_number() (#764)
63*86b64dcbSAndroid Build Coastguard Worker* SunOS: Fix a memory leak (#756)
64*86b64dcbSAndroid Build Coastguard Worker* SunOS: Various fixes (#627, #628, #629)
65*86b64dcbSAndroid Build Coastguard Worker* Windows: Add Visual Studio 2019 support
66*86b64dcbSAndroid Build Coastguard Worker* Windows: Drop support for WinCE and Visual Studio older than 2013
67*86b64dcbSAndroid Build Coastguard Worker* Windows: Drop support for Windows XP
68*86b64dcbSAndroid Build Coastguard Worker* Windows: Support building all examples using Visual Studio (#151)
69*86b64dcbSAndroid Build Coastguard Worker* Documentation fixes and improvements
70*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
71*86b64dcbSAndroid Build Coastguard Worker
72*86b64dcbSAndroid Build Coastguard Worker2019-08-28: v1.0.23
73*86b64dcbSAndroid Build Coastguard Worker* Add German translation (#446)
74*86b64dcbSAndroid Build Coastguard Worker* Add Hungarian translation (#493)
75*86b64dcbSAndroid Build Coastguard Worker* Android: Improved support for Android
76*86b64dcbSAndroid Build Coastguard Worker* BSD: Remove infinite recursion in OpenBSD backend
77*86b64dcbSAndroid Build Coastguard Worker* configure.ac: Fix detection of clock_gettime library (#439)
78*86b64dcbSAndroid Build Coastguard Worker* Core: abandon synchronous transfers when device closure is detected.
79*86b64dcbSAndroid Build Coastguard Worker* Core: fix error in handling the removal of file descriptors while handling
80*86b64dcbSAndroid Build Coastguard Worker  events.
81*86b64dcbSAndroid Build Coastguard Worker* Darwin(macOS): Switch from using ResetDevice to USBDeviceReEnumerate (#455)
82*86b64dcbSAndroid Build Coastguard Worker* Darwin(macOS): Remove code that changed the device class used (#428)
83*86b64dcbSAndroid Build Coastguard Worker* Darwin(macOS): Reduce hotplug timeout to 1ms (from 5s)
84*86b64dcbSAndroid Build Coastguard Worker* New API libusb_set_log_cb() to redirect global and per context log
85*86b64dcbSAndroid Build Coastguard Worker  messages to the provided log handling function
86*86b64dcbSAndroid Build Coastguard Worker* New API libusb_wrap_sys_device to allow the user to specify the
87*86b64dcbSAndroid Build Coastguard Worker  usb device to use.
88*86b64dcbSAndroid Build Coastguard Worker* Solaris: Break infinite recursion in backend clock_gettime
89*86b64dcbSAndroid Build Coastguard Worker* Solaris: Enable timerfd on sunos when available
90*86b64dcbSAndroid Build Coastguard Worker* Windows: Add support for isochronous transfers with WinUSB
91*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
92*86b64dcbSAndroid Build Coastguard Worker
93*86b64dcbSAndroid Build Coastguard Worker2018-03-24: v1.0.22
94*86b64dcbSAndroid Build Coastguard Worker* New libusb_set_option() API
95*86b64dcbSAndroid Build Coastguard Worker* Fix transfer timeout not being cleared upon resubmission
96*86b64dcbSAndroid Build Coastguard Worker* Report super speed plus devices on modern Linux and macOS
97*86b64dcbSAndroid Build Coastguard Worker* Darwin: Improve support for macOS Sierra and High Sierra
98*86b64dcbSAndroid Build Coastguard Worker* Darwin: SDK fixes and improvements
99*86b64dcbSAndroid Build Coastguard Worker* Linux: Let initialization succeed when no devices are present
100*86b64dcbSAndroid Build Coastguard Worker* Linux: Mark internal file descriptors with CLOEXEC flag
101*86b64dcbSAndroid Build Coastguard Worker* Solaris: Add support for attach/detach kernel driver
102*86b64dcbSAndroid Build Coastguard Worker* Windows: Add dynamic UsbDk backend selection
103*86b64dcbSAndroid Build Coastguard Worker* Windows: Add isochronous transfer support via libusbK
104*86b64dcbSAndroid Build Coastguard Worker* Windows: Add Visual Studio 2017 support
105*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix enumeration problems on Windows 8 and later
106*86b64dcbSAndroid Build Coastguard Worker* Windows: Major rework of poll() emulation
107*86b64dcbSAndroid Build Coastguard Worker* Windows: Numerous HID API fixes
108*86b64dcbSAndroid Build Coastguard Worker* Windows: Support cancellation of individual transfers (Vista and later)
109*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
110*86b64dcbSAndroid Build Coastguard Worker
111*86b64dcbSAndroid Build Coastguard Worker2016-10-01: v1.0.21
112*86b64dcbSAndroid Build Coastguard Worker* Core: Refactor code related to transfer flags and timeout handling
113*86b64dcbSAndroid Build Coastguard Worker* Darwin: Ignore root hub simulation devices
114*86b64dcbSAndroid Build Coastguard Worker* Darwin: Improved support for OS X El Capitan
115*86b64dcbSAndroid Build Coastguard Worker* Darwin: Work around devices with buggy endpoint descriptors
116*86b64dcbSAndroid Build Coastguard Worker* Darwin: Do not use objc_registerThreadWithCollector after its deprecation
117*86b64dcbSAndroid Build Coastguard Worker* Darwin: Use C11 atomics on 10.12+ as the OS atomics are now deprecated
118*86b64dcbSAndroid Build Coastguard Worker* Linux: Support preallocating kernel memory for zerocopy USB
119*86b64dcbSAndroid Build Coastguard Worker* Linux: Deal with receiving POLLERR before all transfers have completed
120*86b64dcbSAndroid Build Coastguard Worker* Solaris: Add solaris backend
121*86b64dcbSAndroid Build Coastguard Worker* Windows: Add Visual Studio 2015 support
122*86b64dcbSAndroid Build Coastguard Worker* Windows: Add usbdk backend
123*86b64dcbSAndroid Build Coastguard Worker* Prevent attempts to recursively handle events
124*86b64dcbSAndroid Build Coastguard Worker* Fix race condition in handle_timeout()
125*86b64dcbSAndroid Build Coastguard Worker* Allow transferred argument to be optional in bulk APIs
126*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
127*86b64dcbSAndroid Build Coastguard Worker
128*86b64dcbSAndroid Build Coastguard Worker2015-09-13: v1.0.20
129*86b64dcbSAndroid Build Coastguard Worker* Add Haiku support
130*86b64dcbSAndroid Build Coastguard Worker* Fix multiple memory and resource leaks (#16, #52, #76, #81)
131*86b64dcbSAndroid Build Coastguard Worker* Fix possible deadlock when executing transfer callback
132*86b64dcbSAndroid Build Coastguard Worker* New libusb_free_pollfds() API
133*86b64dcbSAndroid Build Coastguard Worker* Darwin: Fix devices not being detected on OS X 10.8 (#48)
134*86b64dcbSAndroid Build Coastguard Worker* Linux: Allow larger isochronous transfer submission (#23)
135*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix broken builds Cygwin/MinGW builds and compiler warnings
136*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix broken bus number lookup
137*86b64dcbSAndroid Build Coastguard Worker* Windows: Improve submission of control requests for composite devices
138*86b64dcbSAndroid Build Coastguard Worker* Examples: Add two-stage load support to fxload (#12)
139*86b64dcbSAndroid Build Coastguard Worker* Correctly report cancellations due to timeouts
140*86b64dcbSAndroid Build Coastguard Worker* Improve efficiency of event handling
141*86b64dcbSAndroid Build Coastguard Worker* Improve speed of transfer submission in multi-threaded environments
142*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
143*86b64dcbSAndroid Build Coastguard WorkerThe (#xx) numbers are libusb issue numbers, see ie:
144*86b64dcbSAndroid Build Coastguard Workerhttps://github.com/libusb/libusb/issues/16
145*86b64dcbSAndroid Build Coastguard Worker
146*86b64dcbSAndroid Build Coastguard Worker2014-05-30: v1.0.19
147*86b64dcbSAndroid Build Coastguard Worker* Add support for USB bulk streams on Linux and Mac OS X (#11)
148*86b64dcbSAndroid Build Coastguard Worker* Windows: Add AMD and Intel USB-3.0 root hub support
149*86b64dcbSAndroid Build Coastguard Worker* Windows: Fix USB 3.0 speed detection on Windows 8 or later (#10)
150*86b64dcbSAndroid Build Coastguard Worker* Added Russian translation for libusb_strerror strings
151*86b64dcbSAndroid Build Coastguard Worker* All: Various small fixes and cleanups
152*86b64dcbSAndroid Build Coastguard Worker
153*86b64dcbSAndroid Build Coastguard Worker2014-01-25: v1.0.18
154*86b64dcbSAndroid Build Coastguard Worker* Fix multiple memory leaks
155*86b64dcbSAndroid Build Coastguard Worker* Fix a crash when HID transfers return no data on Windows
156*86b64dcbSAndroid Build Coastguard Worker* Ensure all pending events are consumed
157*86b64dcbSAndroid Build Coastguard Worker* Improve Android and ucLinux support
158*86b64dcbSAndroid Build Coastguard Worker* Multiple Windows improvements (error logging, VS2013, VIA xHCI support)
159*86b64dcbSAndroid Build Coastguard Worker* Multiple OS X improvements (broken compilation, SIGFPE, 64bit support)
160*86b64dcbSAndroid Build Coastguard Worker
161*86b64dcbSAndroid Build Coastguard Worker2013-09-06: v1.0.17
162*86b64dcbSAndroid Build Coastguard Worker* Hotplug callbacks now always get passed a libusb_context, even if it is
163*86b64dcbSAndroid Build Coastguard Worker  the default context. Previously NULL would be passed for the default context,
164*86b64dcbSAndroid Build Coastguard Worker  but since the first context created is the default context, and most apps
165*86b64dcbSAndroid Build Coastguard Worker  use only 1 context, this meant that apps explicitly creating a context would
166*86b64dcbSAndroid Build Coastguard Worker  still get passed NULL
167*86b64dcbSAndroid Build Coastguard Worker* Android: Add .mk files to build with the Android NDK
168*86b64dcbSAndroid Build Coastguard Worker* Darwin: Add Xcode project
169*86b64dcbSAndroid Build Coastguard Worker* Darwin: Fix crash on unplug (#121)
170*86b64dcbSAndroid Build Coastguard Worker* Linux: Fix hang (deadlock) on libusb_exit
171*86b64dcbSAndroid Build Coastguard Worker* Linux: Fix libusb build failure with --disable-udev (#124)
172*86b64dcbSAndroid Build Coastguard Worker* Linux: Fix libusb_get_device_list() hang with --disable-udev (#130)
173*86b64dcbSAndroid Build Coastguard Worker* OpenBSD: Update OpenBSD backend with support for control transfers to
174*86b64dcbSAndroid Build Coastguard Worker  non-ugen(4) devices and make get_configuration() no longer generate I/O.
175*86b64dcbSAndroid Build Coastguard Worker  Note that using this libusb version on OpenBSD requires using
176*86b64dcbSAndroid Build Coastguard Worker  OpenBSD 5.3-current or later. Users of older OpenBSD versions are advised
177*86b64dcbSAndroid Build Coastguard Worker  to stay with the libusb shipped with OpenBSD (mpi)
178*86b64dcbSAndroid Build Coastguard Worker* Windows: fix libusb_dll_2010.vcxproj link errors (#129)
179*86b64dcbSAndroid Build Coastguard Worker* Various other bug fixes and improvements
180*86b64dcbSAndroid Build Coastguard Worker
181*86b64dcbSAndroid Build Coastguard Worker2013-07-11: v1.0.16
182*86b64dcbSAndroid Build Coastguard Worker* Add hotplug support for Darwin and Linux (#9)
183*86b64dcbSAndroid Build Coastguard Worker* Add superspeed endpoint companion descriptor support (#15)
184*86b64dcbSAndroid Build Coastguard Worker* Add BOS descriptor support (#15)
185*86b64dcbSAndroid Build Coastguard Worker* Make descriptor parsing code more robust
186*86b64dcbSAndroid Build Coastguard Worker* New libusb_get_port_numbers API, this is libusb_get_port_path without
187*86b64dcbSAndroid Build Coastguard Worker  the unnecessary context parameter, libusb_get_port_path is now deprecated
188*86b64dcbSAndroid Build Coastguard Worker* New libusb_strerror API (#14)
189*86b64dcbSAndroid Build Coastguard Worker* New libusb_set_auto_detach_kernel_driver API (#17)
190*86b64dcbSAndroid Build Coastguard Worker* Improve topology API docs (#95)
191*86b64dcbSAndroid Build Coastguard Worker* Logging now use a single write call per log-message, avoiding log-message
192*86b64dcbSAndroid Build Coastguard Worker  "interlacing" when using multiple threads.
193*86b64dcbSAndroid Build Coastguard Worker* Android: use Android logging when building on Android (#101)
194*86b64dcbSAndroid Build Coastguard Worker* Darwin: make libusb_reset reenumerate device on descriptors change (#89)
195*86b64dcbSAndroid Build Coastguard Worker* Darwin: add support for the LIBUSB_TRANSFER_ADD_ZERO_PACKET flag (#91)
196*86b64dcbSAndroid Build Coastguard Worker* Darwin: add a device cache (#112, #114)
197*86b64dcbSAndroid Build Coastguard Worker* Examples: Add sam3u_benchmark isochronous example by Harald Welte (#109)
198*86b64dcbSAndroid Build Coastguard Worker* Many other bug fixes and improvements
199*86b64dcbSAndroid Build Coastguard WorkerThe (#xx) numbers are libusbx issue numbers, see ie:
200*86b64dcbSAndroid Build Coastguard Workerhttps://github.com/libusbx/libusbx/issues/9
201*86b64dcbSAndroid Build Coastguard Worker
202*86b64dcbSAndroid Build Coastguard Worker2013-04-15: v1.0.15
203*86b64dcbSAndroid Build Coastguard Worker* Improve transfer cancellation and avoid short read failures on broken descriptors
204*86b64dcbSAndroid Build Coastguard Worker* Filter out 8-bit characters in libusb_get_string_descriptor_ascii()
205*86b64dcbSAndroid Build Coastguard Worker* Add WinCE support
206*86b64dcbSAndroid Build Coastguard Worker* Add library stress tests
207*86b64dcbSAndroid Build Coastguard Worker* Add Cypress FX3 firmware upload support for fxload sample
208*86b64dcbSAndroid Build Coastguard Worker* Add HID and kernel driver detach support capabilities detection
209*86b64dcbSAndroid Build Coastguard Worker* Add SuperSpeed detection on OS X
210*86b64dcbSAndroid Build Coastguard Worker* Fix bInterval value interpretation on OS X
211*86b64dcbSAndroid Build Coastguard Worker* Fix issues with autoclaim, composite HID devices, interface autoclaim and
212*86b64dcbSAndroid Build Coastguard Worker  early abort in libusb_close() on Windows. Also add VS2012 solution files.
213*86b64dcbSAndroid Build Coastguard Worker* Improve fd event handling on Linux
214*86b64dcbSAndroid Build Coastguard Worker* Other bug fixes and improvements
215*86b64dcbSAndroid Build Coastguard Worker
216*86b64dcbSAndroid Build Coastguard Worker2012-09-26: v1.0.14
217*86b64dcbSAndroid Build Coastguard Worker* Reverts the previous API change with regards to bMaxPower.
218*86b64dcbSAndroid Build Coastguard Worker  If this doesn't matter to you, you are encouraged to keep using v1.0.13,
219*86b64dcbSAndroid Build Coastguard Worker  as it will use the same attribute as v2.0, to be released soon.
220*86b64dcbSAndroid Build Coastguard Worker* Note that LIBUSB_API_VERSION is *decreased* to 0x010000FF and the previous
221*86b64dcbSAndroid Build Coastguard Worker  guidelines with regards to concurrent use of MaxPower/bMaxPower still apply.
222*86b64dcbSAndroid Build Coastguard Worker
223*86b64dcbSAndroid Build Coastguard Worker2012-09-20: v1.0.13
224*86b64dcbSAndroid Build Coastguard Worker* [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where
225*86b64dcbSAndroid Build Coastguard Worker  MaxPower was used instead of bMaxPower, as defined in the specs. If your
226*86b64dcbSAndroid Build Coastguard Worker  application was accessing the MaxPower attribute, and you need to maintain
227*86b64dcbSAndroid Build Coastguard Worker  compatibility with libusb or older versions, see APPENDIX A below.
228*86b64dcbSAndroid Build Coastguard Worker* Fix broken support for the 0.1 -> 1.0 libusb-compat layer
229*86b64dcbSAndroid Build Coastguard Worker* Fix unwanted cancellation of pending timeouts as well as major timeout related bugs
230*86b64dcbSAndroid Build Coastguard Worker* Fix handling of HID and composite devices on Windows
231*86b64dcbSAndroid Build Coastguard Worker* Introduce LIBUSB_API_VERSION macro
232*86b64dcbSAndroid Build Coastguard Worker* Add Cypress FX/FX2 firmware upload sample, based on fxload from
233*86b64dcbSAndroid Build Coastguard Worker  http://linux-hotplug.sourceforge.net
234*86b64dcbSAndroid Build Coastguard Worker* Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that while
235*86b64dcbSAndroid Build Coastguard Worker  the drivers allow it, isochronous transfers are not supported yet in libusb. Also
236*86b64dcbSAndroid Build Coastguard Worker  not supported yet is the use of libusb-win32 filter drivers on composite interfaces
237*86b64dcbSAndroid Build Coastguard Worker* Add support for the new get_capabilities ioctl on Linux and avoid unnecessary
238*86b64dcbSAndroid Build Coastguard Worker  splitting of bulk transfers
239*86b64dcbSAndroid Build Coastguard Worker* Improve support for newer Intel and Renesas USB 3.0 controllers on Windows
240*86b64dcbSAndroid Build Coastguard Worker* Harmonize the device number for root hubs across platforms
241*86b64dcbSAndroid Build Coastguard Worker* Other bug fixes and improvements
242*86b64dcbSAndroid Build Coastguard Worker
243*86b64dcbSAndroid Build Coastguard Worker2012-06-15: v1.0.12
244*86b64dcbSAndroid Build Coastguard Worker* Fix a potential major regression with pthread on Linux
245*86b64dcbSAndroid Build Coastguard Worker* Fix missing thread ID from debug log output on cygwin
246*86b64dcbSAndroid Build Coastguard Worker* Fix possible crash when using longjmp and MinGW's gcc 4.6
247*86b64dcbSAndroid Build Coastguard Worker* Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path()
248*86b64dcbSAndroid Build Coastguard Worker* Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable
249*86b64dcbSAndroid Build Coastguard Worker* Define log levels in libusb.h and set timestamp origin to first libusb_init() call
250*86b64dcbSAndroid Build Coastguard Worker* All logging is now sent to to stderr (info was sent to stdout previously)
251*86b64dcbSAndroid Build Coastguard Worker* Update log messages severity and avoid polluting log output on OS-X
252*86b64dcbSAndroid Build Coastguard Worker* Add HID driver support on Windows
253*86b64dcbSAndroid Build Coastguard Worker* Enable interchangeability of MSVC and MinGW DLLs
254*86b64dcbSAndroid Build Coastguard Worker* Additional bug fixes and improvements
255*86b64dcbSAndroid Build Coastguard Worker
256*86b64dcbSAndroid Build Coastguard Worker2012-05-08: v1.0.11
257*86b64dcbSAndroid Build Coastguard Worker* Revert removal of critical Windows event handling that was introduced in 1.0.10
258*86b64dcbSAndroid Build Coastguard Worker* Fix a possible deadlock in Windows when submitting transfers
259*86b64dcbSAndroid Build Coastguard Worker* Add timestamped logging
260*86b64dcbSAndroid Build Coastguard Worker* Add NetBSD support (experimental) and BSD libusb_get_device_speed() data
261*86b64dcbSAndroid Build Coastguard Worker* Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure)
262*86b64dcbSAndroid Build Coastguard Worker* Search for device nodes in /dev for Android support
263*86b64dcbSAndroid Build Coastguard Worker* Other bug fixes
264*86b64dcbSAndroid Build Coastguard Worker
265*86b64dcbSAndroid Build Coastguard Worker2012-04-17: v1.0.10
266*86b64dcbSAndroid Build Coastguard Worker* Public release
267*86b64dcbSAndroid Build Coastguard Worker* Add libusb_get_version
268*86b64dcbSAndroid Build Coastguard Worker* Add Visual Studio 2010 project files
269*86b64dcbSAndroid Build Coastguard Worker* Some Windows code cleanup
270*86b64dcbSAndroid Build Coastguard Worker* Fix xusb sample warnings
271*86b64dcbSAndroid Build Coastguard Worker
272*86b64dcbSAndroid Build Coastguard Worker2012-04-02: v1.0.9
273*86b64dcbSAndroid Build Coastguard Worker* First libusbx release
274*86b64dcbSAndroid Build Coastguard Worker* Add libusb_get_device_speed (all, except BSD) and libusb_error_name
275*86b64dcbSAndroid Build Coastguard Worker* Add Windows support (WinUSB driver only)
276*86b64dcbSAndroid Build Coastguard Worker* Add OpenBSD support
277*86b64dcbSAndroid Build Coastguard Worker* Add xusb sample
278*86b64dcbSAndroid Build Coastguard Worker* Tons of bug fixes
279*86b64dcbSAndroid Build Coastguard Worker
280*86b64dcbSAndroid Build Coastguard Worker2010-05-07: v1.0.8
281*86b64dcbSAndroid Build Coastguard Worker* Bug fixes
282*86b64dcbSAndroid Build Coastguard Worker
283*86b64dcbSAndroid Build Coastguard Worker2010-04-19: v1.0.7
284*86b64dcbSAndroid Build Coastguard Worker* Bug fixes and documentation tweaks
285*86b64dcbSAndroid Build Coastguard Worker* Add more interface class definitions
286*86b64dcbSAndroid Build Coastguard Worker
287*86b64dcbSAndroid Build Coastguard Worker2009-11-22: v1.0.6
288*86b64dcbSAndroid Build Coastguard Worker* Bug fixes
289*86b64dcbSAndroid Build Coastguard Worker* Increase libusb_handle_events() timeout to 60s for powersaving
290*86b64dcbSAndroid Build Coastguard Worker
291*86b64dcbSAndroid Build Coastguard Worker2009-11-15: v1.0.5
292*86b64dcbSAndroid Build Coastguard Worker * Use timerfd when available for timer management
293*86b64dcbSAndroid Build Coastguard Worker * Small fixes/updates
294*86b64dcbSAndroid Build Coastguard Worker
295*86b64dcbSAndroid Build Coastguard Worker2009-11-06: v1.0.4 release
296*86b64dcbSAndroid Build Coastguard Worker * Bug fixes including transfer locking to fix some potential threading races
297*86b64dcbSAndroid Build Coastguard Worker * More flexibility with clock types on Linux
298*86b64dcbSAndroid Build Coastguard Worker * Use new bulk continuation tracking in Linux 2.6.32 for improved handling
299*86b64dcbSAndroid Build Coastguard Worker   of short/failed transfers
300*86b64dcbSAndroid Build Coastguard Worker
301*86b64dcbSAndroid Build Coastguard Worker2009-08-27: v1.0.3 release
302*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
303*86b64dcbSAndroid Build Coastguard Worker * Add libusb_get_max_iso_packet_size()
304*86b64dcbSAndroid Build Coastguard Worker
305*86b64dcbSAndroid Build Coastguard Worker2009-06-13: v1.0.2 release
306*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
307*86b64dcbSAndroid Build Coastguard Worker
308*86b64dcbSAndroid Build Coastguard Worker2009-05-12: v1.0.1 release
309*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
310*86b64dcbSAndroid Build Coastguard Worker * Darwin backend
311*86b64dcbSAndroid Build Coastguard Worker
312*86b64dcbSAndroid Build Coastguard Worker2008-12-13: v1.0.0 release
313*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
314*86b64dcbSAndroid Build Coastguard Worker
315*86b64dcbSAndroid Build Coastguard Worker2008-11-21: v0.9.4 release
316*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
317*86b64dcbSAndroid Build Coastguard Worker * Add libusb_attach_kernel_driver()
318*86b64dcbSAndroid Build Coastguard Worker
319*86b64dcbSAndroid Build Coastguard Worker2008-08-23: v0.9.3 release
320*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
321*86b64dcbSAndroid Build Coastguard Worker
322*86b64dcbSAndroid Build Coastguard Worker2008-07-19: v0.9.2 release
323*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
324*86b64dcbSAndroid Build Coastguard Worker
325*86b64dcbSAndroid Build Coastguard Worker2008-06-28: v0.9.1 release
326*86b64dcbSAndroid Build Coastguard Worker * Bug fixes
327*86b64dcbSAndroid Build Coastguard Worker * Introduce contexts to the API
328*86b64dcbSAndroid Build Coastguard Worker * Compatibility with new Linux kernel features
329*86b64dcbSAndroid Build Coastguard Worker
330*86b64dcbSAndroid Build Coastguard Worker2008-05-25: v0.9.0 release
331*86b64dcbSAndroid Build Coastguard Worker * First libusb-1.0 beta release
332*86b64dcbSAndroid Build Coastguard Worker
333*86b64dcbSAndroid Build Coastguard Worker~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
334*86b64dcbSAndroid Build Coastguard Worker
335*86b64dcbSAndroid Build Coastguard WorkerAPPENDIX A - How to maintain code compatibility with versions of libusb and
336*86b64dcbSAndroid Build Coastguard Workerlibusb that use MaxPower:
337*86b64dcbSAndroid Build Coastguard Worker
338*86b64dcbSAndroid Build Coastguard WorkerIf you must to maintain compatibility with versions of the library that aren't
339*86b64dcbSAndroid Build Coastguard Workerusing the bMaxPower attribute in struct libusb_config_descriptor, the
340*86b64dcbSAndroid Build Coastguard Workerrecommended way is to use the new LIBUSB_API_VERSION macro with an #ifdef.
341*86b64dcbSAndroid Build Coastguard WorkerFor instance, if your code was written as follows:
342*86b64dcbSAndroid Build Coastguard Worker
343*86b64dcbSAndroid Build Coastguard Worker  if (dev->config[0].MaxPower < 250)
344*86b64dcbSAndroid Build Coastguard Worker
345*86b64dcbSAndroid Build Coastguard WorkerThen you should modify it to have:
346*86b64dcbSAndroid Build Coastguard Worker
347*86b64dcbSAndroid Build Coastguard Worker#if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000100)
348*86b64dcbSAndroid Build Coastguard Worker  if (dev->config[0].bMaxPower < 250)
349*86b64dcbSAndroid Build Coastguard Worker#else
350*86b64dcbSAndroid Build Coastguard Worker  if (dev->config[0].MaxPower < 250)
351*86b64dcbSAndroid Build Coastguard Worker#endif
352