tizen 2.4 release
[external/libusb.git] / ChangeLog
1 commit ab9cd5a7be637f7b793987971a706b1d11c27ded
2 Author: Peter Stuge <peter@stuge.se>
3 Date:   Fri Apr 20 08:10:11 2012 +0200
4
5     libusb-1.0.9
6
7 commit 696400ad83531bcf944c71164a46f9ccb6a33df3
8 Author: Peter Stuge <peter@stuge.se>
9 Date:   Fri Apr 20 08:08:34 2012 +0200
10
11     AUTHORS: Update list of contributors
12
13 commit 19f94537ea55586dd85f8d627fcfaa6173069ea1
14 Author: Peter Stuge <peter@stuge.se>
15 Date:   Fri Apr 20 06:41:34 2012 +0200
16
17     AUTHORS: Add Martin Pieuchot as copyright holder
18
19 commit 1a1c633d7912a2565f6af0c9294e10a759d40e05
20 Author: Peter Stuge <peter@stuge.se>
21 Date:   Fri Apr 20 06:41:12 2012 +0200
22
23     AUTHORS: Add Hans de Goede as copyright holder
24
25 commit 9477f793341d59cc861acb283e6cb03b5730ac91
26 Author: Peter Stuge <peter@stuge.se>
27 Date:   Fri Apr 20 06:40:45 2012 +0200
28
29     AUTHORS: Add Peter Stuge as copyright holder
30
31 commit 4b0dfe9770356af3c51103a9b3d63c5f8cc63d8b
32 Author: Pete Batard <pete@akeo.ie>
33 Date:   Mon Apr 2 15:47:53 2012 +0100
34
35     AUTHORS: Update Pete Batard's copyright years and email address
36     
37     libusbx.git commit f98eaca0985364be00fcfde3fd3884075092a4e9
38     
39     [stuge: Remove unrelated changes]
40
41 commit 9f0ea78357b7b1654cb3e7de6ff57f5f378b68f1
42 Author: Peter Stuge <peter@stuge.se>
43 Date:   Fri Apr 20 08:35:04 2012 +0200
44
45     AUTHORS: Update Nathan Hjelm's copyright years
46
47 commit 8d38506ebc9fb57a40113e5a7739572a42b826d8
48 Author: Peter Stuge <peter@stuge.se>
49 Date:   Fri Apr 20 06:36:08 2012 +0200
50
51     README: Add the BSDs, punctuation, mailinglist link, and remove Daniel
52
53 commit 05cbe2de45806db309343cdf298d8569c55863e5
54 Author: James Hanko <james.hanko@tridentmicro.com>
55 Date:   Wed Oct 19 17:32:34 2011 -0700
56
57     Linux: Search for /dev/usbdev<bus>.<device> USB device special files
58     
59     If neither the (now deprecated) usbfs filesystem nor udev is available
60     then libusb searches for device nodes also in /dev where they may be
61     created if the kernel was built with the option CONFIG_USB_DEVICE_CLASS.
62     This helps on embedded systems such as Android, and all mdev users.
63     
64     Fixes #119.
65
66 commit a806d169e6b5f675289cb9307fcd6b908edd9219
67 Author: Peter Stuge <peter@stuge.se>
68 Date:   Fri Apr 20 04:32:47 2012 +0200
69
70     Add a timestamp in log messages
71     
72     Fixes #34.
73
74 commit 03f4d40c748506c85f88427dd53afd5c663a2929
75 Author: Peter Stuge <peter@stuge.se>
76 Date:   Fri Apr 20 02:24:44 2012 +0200
77
78     Include library version in the very first libusb_init() debug message
79
80 commit 84d5eafd1f24a1c6f77f0c2a2ad40e1fbfdea381
81 Author: Martin Pieuchot <mpi@openbsd.org>
82 Date:   Thu Apr 19 13:33:36 2012 +0200
83
84     OpenBSD: Provide libusb_get_device_speed() data
85     
86     Because the different speed values used by the libusb and OpenBSD's
87     usb_device_info structure are compatible, keep the code simple and
88     just copy the value returned by the USB_GET_DEVICEINFO ioctl() call.
89     
90     Fixes #45.
91
92 commit c145ec09732fac2eef53accc07314040d22b64a5
93 Author: Peter Stuge <peter@stuge.se>
94 Date:   Fri Apr 20 00:11:01 2012 +0200
95
96     doc/Makefile.am: Remove username from SF web rsync upload command
97     
98     Commit c407a2d97b6f8715d3452257a0adac40a20178e6 did it for tarballs.
99     
100     libusbx.git commit ca159f15737e9097a4d031c9950f281c42af040a
101
102 commit 6506013c6d4face34cfec79dd0584e9f528cbc6a
103 Author: Pete Batard <pete@akeo.ie>
104 Date:   Tue Apr 10 13:30:24 2012 +0100
105
106     Windows: Remove #define compile time options in the backend source code
107     
108     * The DYNAMIC_FDS, AUTO_CLAIM and FORCE_INSTANT_TIMEOUTS options
109       were introduced for development/testing and don't appear to be
110       used by the Windows backend users => remove them.
111     
112     libusbx.git commit 4cccbed825fe1dc138121640a6497d7d05aac159
113
114 commit e291e369b975692dfa1a0f029244af597fa61220
115 Author: Pete Batard <pete@akeo.ie>
116 Date:   Tue Apr 10 13:05:37 2012 +0100
117
118     Windows: Warn on one libusb_get_device_list() memory allocation failure
119     
120     libusbx.git commit 24d595aa71e7fd0f14d40e933a33f852f7269c8b
121
122 commit 2f40a03ea0552cd8b5ce3d7667b20dc04da061da
123 Author: Pete Batard <pete@akeo.ie>
124 Date:   Tue Apr 10 13:05:37 2012 +0100
125
126     Windows: Add textual error name to debug message on auto-release errors
127     
128     libusbx.git commit 24d595aa71e7fd0f14d40e933a33f852f7269c8b
129
130 commit 3c7f85a49b42ac36c6d41294858518c554ac4694
131 Author: Pete Batard <pete@akeo.ie>
132 Date:   Tue Apr 10 13:05:37 2012 +0100
133
134     Windows: Silence warning about unused function guid_to_string()
135     
136     Commit 6b1982b1bd321b55698ce537e64648e8aec85f6f removed the #ifdef
137     around guid_to_string() but this ended up causing a warning when
138     the function wasn't being called. Add it back with correct _MSC_VER.
139     
140     libusbx.git commit 24d595aa71e7fd0f14d40e933a33f852f7269c8b
141     
142     [stuge: Rewrite commit message for libusb.git]
143
144 commit eb55963a6b33799ea76c34f538f21e86f235ea62
145 Author: Pete Batard <pete@akeo.ie>
146 Date:   Tue Apr 10 13:05:37 2012 +0100
147
148     Windows: Base DUMMY_HANDLE on LONG_PTR instead of LONG
149     
150     libusbx.git commit 24d595aa71e7fd0f14d40e933a33f852f7269c8b
151
152 commit d930865987de523061eca259a7fed11aea626831
153 Author: Pete Batard <pete@akeo.ie>
154 Date:   Tue Apr 10 13:05:37 2012 +0100
155
156     Windows: Prefer calloc() over malloc() and cast all allocations
157     
158     This silences VS2010 intellisense warnings on memory allocation.
159     
160     libusbx.git commit 24d595aa71e7fd0f14d40e933a33f852f7269c8b
161
162 commit df35117ce58b74fa530baaaccc30adaf432398ea
163 Author: Peter Stuge <peter@stuge.se>
164 Date:   Thu Apr 19 22:55:44 2012 +0200
165
166     Add libusb_get_version() API function
167     
168     Let's see how this will be used. Fixes #53.
169     
170     libusbx.git commit 37dfd16c8c2f36c81c86de303072def0dc405e32
171     
172     [stuge: Remove unrelated changes]
173     [stuge: Add struct libusb_version member rc for release candidate suffix]
174     [stuge: Add struct libusb_version member describe for git describe output]
175
176 commit 29d5f63c5765f36ea65b55c4cd5f36e1f10a4dae
177 Author: Peter Stuge <peter@stuge.se>
178 Date:   Thu Apr 19 22:25:07 2012 +0200
179
180     Windows: Rename VS2005 solution and add VS2010 project files
181     
182     libusbx.git commit fcad0941e52eb2fd6d57d3327f420db14dfabf0b
183     
184     [stuge: Remove xusb references]
185     [stuge: Add newlines at end of new files]
186     [stuge: Rename libusb_20??.sln to libusb_vs20??.sln]
187
188 commit b217ec1f904c4382010a3a834a7c58d595b594cf
189 Author: Pete Batard <pete@akeo.ie>
190 Date:   Sat Mar 31 22:32:56 2012 +0100
191
192     libusb/Makefile.am: Fix missing DLL .def file from make dist
193     
194     libusbx.git commit 10dc1ea9a799b13b7423968130da812aa97289bf
195     
196     [stuge: Use EXTRA_DIST in libusb/Makefile.am instead]
197
198 commit 54cb51d8417e0128eb9088bf628db138c9daa2a0
199 Author: Pete Batard <pete@akeo.ie>
200 Date:   Sat Mar 31 22:14:47 2012 +0100
201
202     Makefile.am: Fix msvc dir not being included in make dist
203     
204     libusbx.git commit a8a80b60a14e3a8269e42dedf34fda66da8e0e50
205
206 commit 38d5ba472c6cb728ec818a0c8d964b632c8a7992
207 Author: Hans de Goede <hdegoede@redhat.com>
208 Date:   Fri Mar 30 13:40:32 2012 +0100
209
210     Linux: Don't spam the console with 'device unconfigured' errors
211     
212     libusbx.git commit 3c968be61befc47d33562843e5479ff67303b0c4
213
214 commit 93f14087b2e79d71ba1e53c0b9c7da655dd1258e
215 Author: Nathan Hjelm <hjelmn@me.com>
216 Date:   Thu Apr 19 05:52:58 2012 -0600
217
218     Darwin: Silence warning: cast from pointer to integer of different size
219     
220     As per http://marc.info/?m=133483651109899
221     
222     Reported-by: Xiaofan Chen <xiaofanc@gmail.com>
223
224 commit 0efc2086646200d8dee86cbbb1e98136383a05c3
225 Author: Pete Batard <pete@akeo.ie>
226 Date:   Thu Mar 29 23:21:25 2012 +0100
227
228     .gitattributes: Add export-ignore for .gitattributs and .gitignore
229     
230     This keeps the git files out of archives created by gitweb.
231     
232     libusbx.git commit 2250152b251243f75c951533ae7b1139a785cfe6
233     
234     [stuge: Removed unrelated whitespace changes]
235
236 commit a7ef55c02f0116b94cb75831e5d90ad258c662f8
237 Author: Pete Batard <pete@akeo.ie>
238 Date:   Wed Mar 28 01:02:02 2012 +0100
239
240     Windows: fix Clang warnings about unused assignations
241     
242     libusbx.git commit c0e7b289fdb35687b90263b14426319d2b96b132
243
244 commit ac8eed67e1595ee5a069623e48362d8a85dcb252
245 Author: Pete Batard <pete@akeo.ie>
246 Date:   Mon Mar 26 23:34:25 2012 +0100
247
248     configure.ac: LT_LANG([Windows Resource]) makes windres check redundant
249     
250     libusbx.git commit 4f9fd6a29a712b0e3312983e9ff153e6d7ed0822
251
252 commit 89ce6f7d05dc8ff4a441a01b192d2e20857f6c48
253 Author: Pete Batard <pete@akeo.ie>
254 Date:   Tue Mar 27 00:03:07 2012 +0100
255
256     Windows: Bring .vcproj x86_64 output directories in line with x86_32
257     
258     libusbx.git commit abdb4437ea1897226076fa706651e350dba1cfd5
259
260 commit 77743c6f5b3cfa2d06dcb32204bc65d8bd4fec80
261 Author: Hans de Goede <hdegoede@redhat.com>
262 Date:   Fri Mar 9 11:31:11 2012 +0100
263
264     Linux: Fix a comment in handle_iso_completion()
265     
266     Fix the comment at the end of handle_iso_completion, we don't stop on
267     urbs / isoc packets with less data then requested, which is a good
268     thing since it is a normal condition for isoc transfers.
269     
270     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
271
272 commit 5b87c2c7475a8d68270e19336afec0c5a08579ca
273 Author: Hans de Goede <hdegoede@redhat.com>
274 Date:   Fri Mar 9 11:31:10 2012 +0100
275
276     Linux: Remove bogus status handling from handle_iso_completion()
277     
278     Remove a useless check+set of status because:
279     1. The check is always true; and
280     2. The new value is never used
281     
282     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
283
284 commit e23d8f67eab947e5d41216e0139f0a50d1342ef8
285 Author: Hans de Goede <hdegoede@redhat.com>
286 Date:   Fri Mar 9 11:31:09 2012 +0100
287
288     Linux: Translate isoc packet status codes to LIBUSB_TRANSFER_ codes
289     
290     During testing of my usbredir code I hit a scenario where my libusb
291     app was seeing EXDEV as status in the transfer's iso_packet_desc.
292     
293     This happened because we didn't translate linux negative errno errors
294     in each isoc packet's status to LIBUSB_TRANSFER_ status codes! This
295     patch adds these translations.
296     
297     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
298
299 commit 7199bc2c9c351b553b6175a588237ee793719281
300 Author: Hans de Goede <hdegoede@redhat.com>
301 Date:   Fri Mar 9 11:31:08 2012 +0100
302
303     Linux: Fix URB return code handling
304     
305     During testing of my usbredir code I hit a case where EOVERFLOW was not
306     handled in handle_control_completion(). Instead of just fixing this one
307     case I've audited (and fixed where necessary) all handle_foo_completion()
308     functions to know about all errors documented in
309     linux/Documentation/usb/error-codes.txt.
310     
311     Note that for handle_iso_completion() this patch actually removes the
312     handling of some codes, since these can never occur on an iso urb (they
313     can only occur on the iso packets included in the urb, see the next patch
314     in this series). Also, in case an unknown status is encountered on an iso
315     urb this patch sets the urb's status to ERROR rather then leaving it at
316     completed.
317     
318     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
319
320 commit 98bc7b8d125c2756deadfc889dcefd4e6f2fcd02
321 Author: Hans de Goede <hdegoede@redhat.com>
322 Date:   Fri Mar 9 11:31:07 2012 +0100
323
324     Don't print an error when libusb_cancel_transfer() fails with NOT_FOUND
325     
326     As stated in the documentation for libusb_cancel_transfer(),
327     LIBUSB_ERROR_NOT_FOUND is an expected return value for
328     libusb_cancel_transfer() under certain circumstances, so
329     printing an error every time this happens is undesirable.
330     
331     Even more so because under Linux IOCTL_USBFS_DISCARDURB sets errno
332     to EINVAL when the kernel can't not find the urb in the kernel's
333     urbs-in-flight list, which means that the urb has already completed
334     at the host controller level but it has not necessarily been reaped
335     yet. IOW under Linux libusb_cancel_transfer() may yield a result of
336     LIBUSB_ERROR_NOT_FOUND *before* the transfer's callback has been
337     called! In conclusion there is no way for applications to avoid
338     calling libusb_cancel_transfer() on already completed transfers,
339     and these errors can and do happen frequently for some USB traffic.
340     
341     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
342
343 commit 4db8275da59996eb1c22d2e9e9c527fa58b288ad
344 Author: Hans de Goede <hdegoede@redhat.com>
345 Date:   Fri Mar 9 11:31:06 2012 +0100
346
347     Linux: Fix cancel_transfer return value when cancelling a multi-urb transfer
348     
349     If we fail to cancel the last urb of a multi-urb transfer because it
350     has already completed (errno == EINVAL on DISCARD_URB), then the entire
351     transfer has already completed, so returning NOT_FOUND is consistent
352     with what the documentation for libusb_cancel_transfer() says.
353     
354     But if we've successfully cancelled the last urb, and then another urb
355     fails with errno == EINVAL, this means that we've still cancelled the
356     transfer, as it has only *partially* completed.
357     
358     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
359
360 commit b22253ba9cbd399299b534a8c5e3bbac3f240963
361 Author: Peter Stuge <peter@stuge.se>
362 Date:   Thu Apr 19 04:05:29 2012 +0200
363
364     libusb-1.0.pc: Mention OpenBSD and NetBSD in description
365
366 commit 6aa0fc60d94e3123de230d3fbc9196814c0e466e
367 Author: Peter Stuge <peter@stuge.se>
368 Date:   Mon Apr 16 05:59:44 2012 +0200
369
370     io.c: Add debug message with the callback address on completed transfer
371
372 commit de41604560a57b2279ac1d0a10b8192a9224d284
373 Author: Xiaofan Chen <xiaofanc@gmail.com>
374 Date:   Sun Apr 15 11:50:27 2012 +0800
375
376     Experimental support for NetBSD using the OpenBSD backend
377     
378     Signed-off-by: Xiaofan Chen <xiaofanc@gmail.com>
379
380 commit 404054cb508881c9bd6bc575b66c4f509046b4af
381 Author: Peter Stuge <peter@stuge.se>
382 Date:   Thu Apr 19 00:41:45 2012 +0200
383
384     configure.ac: Separate per-OS backend selection from per-backend settings
385
386 commit 2eba7e4197cf9afa77451186e1a116ee3ae91adc
387 Author: Xiaofan Chen <xiaofanc@gmail.com>
388 Date:   Sun Apr 15 07:17:18 2012 +0800
389
390     Linux: Silence unused variable warnings when without CLOCK_MONOTONIC
391     
392     Signed-off-by: Xiaofan Chen <xiaofanc@gmail.com>
393
394 commit bc790a9c414871cc1d33f1c7686048434a700e45
395 Author: Peter Stuge <peter@stuge.se>
396 Date:   Sat Apr 7 05:20:36 2012 +0200
397
398     examples: Use snprintf() instead of sprintf() in dpfp and dpfp_threaded
399     
400     The OpenBSD C compiler generates a warning for every use of sprintf()
401     and for a good reason. Reported in http://marc.info/?m=133376187514495
402     
403     Reported-by: Xiaofan Chen <xiaofanc@gmail.com>
404
405 commit bffa232dca51bcc41df71c5735fa56370b7509ad
406 Author: Peter Stuge <peter@stuge.se>
407 Date:   Sat Apr 7 03:55:36 2012 +0200
408
409     OpenBSD: Fix warning: 'hpriv' may be used uninitialized
410     
411     As reported in http://marc.info/?m=133376187514495
412     
413     The variable would be used uninitialized when the internal list of
414     open devices is empty as obsd_handle_events() checks which device
415     the event fd belongs to, which can not actually happen, but if it
416     ever does happen then we will now return LIBUSB_ERROR_NO_DEVICE.
417     
418     Reported-by: Xiaofan Chen <xiaofanc@gmail.com>
419
420 commit 6b1982b1bd321b55698ce537e64648e8aec85f6f
421 Author: Moses McKnight <moses@texband.net>
422 Date:   Fri Mar 30 21:53:20 2012 -0500
423
424     Windows: Fix build on VC++2003 which doesn't support variadic macros
425     
426     Change _MSC_VER tests to check for >= 1400 instead of > 1200 because
427     Visual C++ did not support variadic macros until VC++2005, as per
428     http://msdn.microsoft.com/en-us/library/ms177415%28v=VS.80%29.aspx
429     
430     Since usbi_dbg() is a function and not a macro with the old MS C
431     compilers the functions guid_to_string() and windows_error_str()
432     need to be compiled unconditionally, and the compiler should remove
433     the dead code when debug logging is disabled on newer compilers.
434
435 commit 58ac0355e547080c82d02685a32480b891383d3d
436 Author: Peter Stuge <peter@stuge.se>
437 Date:   Sat Mar 31 03:44:40 2012 +0200
438
439     Windows: Don't use a log function body macro for old MS compilers
440     
441     The duplication is a lot more straightforward than the previous LOG_BODY
442     macro, which also didn't handle the special debug case correctly. The
443     duplicated code is fortunately not very long.
444
445 commit 76af4c99bd6122c1dd7b58858b669c919d8c8806
446 Author: Peter Stuge <peter@stuge.se>
447 Date:   Thu Mar 22 01:52:59 2012 +0100
448
449     libusbi.h: Add IS_EPIN() IS_EPOUT() IS_XFERIN() and IS_XFEROUT() macros
450     
451     The macros make backend code a little simpler to read, since the
452     transfer and endpoint direction is checked in several places across
453     the supported platforms.
454
455 commit e3d0a4cb9e2f9872c9fdbb22d7ded169e111fc8f
456 Author: Peter Stuge <peter@stuge.se>
457 Date:   Wed Feb 22 14:21:54 2012 +0100
458
459     Add LIBUSB_TRANSFER_ADD_ZERO_PACKET flag to indicate need for ZLP
460     
461     Some protocols which use USB require an extra zero length data packet
462     to signal end-of-transfer on bulk endpoints, if the last data packet
463     is exactly wMaxPacketSize bytes long.
464     
465     This flag allows applications to inform libusb about this requirement,
466     so that libusb can handle the issue transparently.
467     
468     At the moment the new flag is only supported on Linux, and submitting
469     a transfer with the flag set returns an error at submit time on other
470     systems. Hopefully implementations will soon follow for other systems.
471     
472     References #6.
473
474 commit 7e0c747cc5ed0a31f38dff5eb5f03d4043b05ada
475 Author: Peter Stuge <peter@stuge.se>
476 Date:   Sun Feb 19 06:58:16 2012 +0100
477
478     libusb.h: Add comma after last value in enums to ease future expansion
479
480 commit c20ec7a927c05e0b960269751c26ab2b6e0b39ab
481 Author: Peter Stuge <peter@stuge.se>
482 Date:   Sun Feb 19 05:39:33 2012 +0100
483
484     Linux: Rework bulk continuation check to generic kernel version check
485     
486     The old check_flag_bulk_continuation() tested for one specific running
487     kernel version. The new kernel_version_ge() instead allows to test the
488     running kernel version against major, minor and sublevel parameters.
489
490 commit cf8f5a7be821099b143fcea8e4ba553daa22818b
491 Author: Peter Stuge <peter@stuge.se>
492 Date:   Sun Feb 19 05:32:10 2012 +0100
493
494     OpenBSD: Correctly catch attempts to do isochronous OUT transfers
495     
496     LIBUSB_ENDPOINT_OUT is the value of the direction bit, which is 0 for
497     OUT transfers, so the previous condition could never evaluate to true.
498
499 commit ae8e86cffb81858af5eeddbf2ea1aec6d55f573d
500 Author: Peter Stuge <peter@stuge.se>
501 Date:   Sun Feb 19 00:42:20 2012 +0100
502
503     Darwin: Do not reject devices with product id 0x0000
504     
505     Fixes #128.
506
507 commit 4630fc22cff8ad3e1afa9b223378c0aabe282b5c
508 Author: Peter Stuge <peter@stuge.se>
509 Date:   Mon Feb 13 16:59:51 2012 +0100
510
511     Do not call timerfd functions when timerfd is not being used
512     
513     When libusb was built with timerfd support but used on a system
514     without timerfd support the library would hang indefinitely on
515     completion of the first transfer, since timerfd functions were
516     being called unconditionally and the error returned when timerfd
517     was not being used caused a confused internal state.
518     
519     Many thanks to Ivo Smits for looking into the issue, proposing
520     an initial solution, and helping with testing! Fixes #73.
521
522 commit c40f3df1efbb9232b525e5f675746762ca2304b8
523 Author: Michael Plante <michael.plante@gmail.com>
524 Date:   Sun Feb 12 13:49:35 2012 -0500
525
526     Windows: Fix MSVC6 IDE warning on line continuation in libusb-1.0.rc
527     
528     * libusb\libusb-1.0.rc(21): Could not find the file LIBUSB_RC.
529     * only shows up first time after opening workspace.
530     * shows up on either build or clean.
531     * not actually due to rc.exe, but prior to it.
532     * probably an IDE bug.
533     * does not show up when running an exported makefile.
534     
535     Signed-off-by: Michael Plante <michael.plante@gmail.com>
536
537 commit 5526841023101bafa280755c3bd19fc44b9c32a0
538 Author: Pete Batard <pete@akeo.ie>
539 Date:   Sat Jan 7 23:30:23 2012 +0000
540
541     Windows: Add Renesas SuperSpeed support for libusb_get_device_speed()
542     
543     * tests conducted using a Renesas PCIE USB 3.0 controller and driver and
544       a mass storage USB 3.0 confirm that USB_NODE_CONNECTION_INFORMATION_EX
545       uses (undocumented) value 3 for SuperSpeed
546
547 commit 3df437680f8f5406795ec5f32d96612d327b2ca4
548 Author: Peter Stuge <peter@stuge.se>
549 Date:   Fri Feb 10 18:06:43 2012 +0100
550
551     autogen.sh: Try to use libtoolize before trying glibtoolize
552     
553     This helps on Mac OS X where an old glibtoolize is included in the
554     system and newer, manually installed, versions provide libtoolize.
555     
556     See also http://marc.info/?m=132490560131894
557
558 commit 4afbc78fe09bfc3dd7a609e5f82e9272c9e6226d
559 Author: Peter Stuge <peter@stuge.se>
560 Date:   Wed Feb 8 15:54:21 2012 +0100
561
562     Rename the lsusb example program to listdevs
563     
564     This is intended to reduce confusion with the much more significant
565     lsusb utility which is part of the usbutils package.
566
567 commit 57ab55159298b7057e0dd9b3854f7fd1550588ed
568 Author: Sean McBride <sean@rogue-research.com>
569 Date:   Fri Dec 9 13:44:21 2011 -0500
570
571     core.c: Fix clang warning about useless store to a variable
572
573 commit 32bbbd133e24c24d02646c0f7d1963404d4955f2
574 Author: Sean McBride <sean@rogue-research.com>
575 Date:   Fri Dec 9 13:43:46 2011 -0500
576
577     Darwin: Clarify comments on event thread creation and termination
578
579 commit 6cf3285a4e0dfaec0fe53b8eb6a9281e3c5bcb6c
580 Author: Sean McBride <sean@rogue-research.com>
581 Date:   Fri Dec 9 13:43:46 2011 -0500
582
583     Darwin: Fix incorrect mutex protection of libusb_darwin_acfl global
584
585 commit 662ced422cf1ffce68753296a81dccf87f3a1c57
586 Author: Sean McBride <sean@rogue-research.com>
587 Date:   Fri Dec 9 13:43:46 2011 -0500
588
589     Darwin: Use retained runloop variable instead of CFRunLoopGetCurrent()
590
591 commit 952a9bb6116afc69c4bae4714c2eb0713bf62a6d
592 Author: Sean McBride <sean@rogue-research.com>
593 Date:   Fri Dec 9 13:37:22 2011 -0500
594
595     Darwin: Fix libusb_init() and libusb_exit() refcount race condition
596     
597     Use OSAtomicIncrement32Barrier() and OSAtomicDecrement32Barrier()
598     in darwin_init() and darwin_exit() to be thread safe.
599
600 commit 721cc1c19fc8e88c4482ab3d1e8a34fa100c403c
601 Author: Sean McBride <sean@rogue-research.com>
602 Date:   Fri Dec 9 13:33:28 2011 -0500
603
604     threads_posix.c: Fix prototype warning by including threads_posix.h
605
606 commit f6ef0fca4b36657c1a0885c18cc4c4afcb4f7339
607 Author: Dave Camarillo <dave.camarillo@gmail.com>
608 Date:   Fri Sep 23 11:56:58 2011 +0100
609
610     Windows: Fix crash during enumeration with >= 64 connected devices
611     
612     * indexes were outgrowing the unref_list array before realloc,
613       resulting in out of bound access and crash.
614
615 commit e280760331e8b39ad3530235653644654166b322
616 Author: Pete Batard <pbatard@gmail.com>
617 Date:   Tue Oct 26 16:31:13 2010 +0100
618
619     Windows MSVC6: Remove SetupAPI, AdvAPI32 and OLE32 dependencies
620     
621     * this ensures that libusb dependent applications only need
622       to link with libusb on Windows
623     * (copied from Pete's msvc08 mods to msvc6 by Michael)
624
625 commit fa66c93253855c9146011a6854d65df6d390039f
626 Author: Pete Batard <pbatard@gmail.com>
627 Date:   Tue Dec 13 21:18:10 2011 -0500
628
629     Windows: Output an error message on calls to libusb_get_pollfds()
630     
631     Signed-off-by: Michael Plante <michael.plante@gmail.com>
632
633 commit 637145ed29ee7c7b13ac45d10cf1f798fc06cbd9
634 Author: Pete Batard <pbatard@gmail.com>
635 Date:   Thu Jun 3 22:14:20 2010 -0500
636
637     io.c: Fix comment since pthreads isn't the only threading libusb uses
638
639 commit bb37939ab44a54a054f73e2f381808b12fb9cb33
640 Author: Michael Plante <michael.plante@gmail.com>
641 Date:   Mon Aug 2 19:59:12 2010 -0500
642
643     libusb.h: Cast in libusb_get_string_descriptor() to avoid MSVC6 warning
644     
645     On MSVC6 bitwise OR promotes to int, causing the warning.
646
647 commit ca09754471acba9a22fe8fc09170e5660d1d5c5d
648 Author: Michael Plante <michael.plante@gmail.com>
649 Date:   Fri Dec 23 16:50:21 2011 -0600
650
651     Windows: guid_to_string() is only discarded when macro-usbi_dbg used
652     
653     * usbi_dbg encloses all references to guid_to_string
654     * MinGW/cygwin warn about an unused function, so the #if
655       squelches this warning
656     * MSVC6 uses a variadic function form of usbi_dbg instead
657       of a macro, so the compiler still "sees" guid_to_string
658       and it therefore needs to always be defined for MSVC6,
659       even if it's only a stub.
660     * So we define it if usbi_dbg is used OR if MSVC6 is used.
661     
662     Signed-off-by: Michael Plante <michael.plante@gmail.com>
663
664 commit 8e15adcb0089882d10269ab77d35e193770ab90e
665 Author: Pete Batard <pete@akeo.ie>
666 Date:   Tue Nov 15 01:11:12 2011 +0000
667
668     Windows: Fix undefined datatype 'LONG_PTR' in MSVC6
669     
670     * issue reported by Elmi
671     
672     Signed-off-by: Michael Plante <michael.plante@gmail.com>
673
674 commit 17ad642cae618cc09c5516612fa3880d4b6b8635
675 Author: Pete Batard <pete@akeo.ie>
676 Date:   Sun Nov 13 23:10:15 2011 +0000
677
678     Windows: Fix for MSVC6 preprocessor not accepting blank parameters
679     
680     * unlike later iterations of Visual Studio, MSVC6 does not accept
681       blank parameters on macro calls [eg. CALL(a, ,b)]
682     * blank params were used with the DLL_DECLARE and DLL_LOAD macros
683     * issue reported by Elmi
684
685 commit c591a7cbf7dbc6fbb4368e65cf58a8cd02582aeb
686 Author: Michael Plante <michael.plante@gmail.com>
687 Date:   Tue Oct 26 11:39:38 2010 +0100
688
689     Windows: Switch MSVC6 .dsp project files from MBCS to Unicode
690     
691     * MBCS (which is different from UTF-8) only makes sense if
692       supporting Windows 95/98, which we don't
693     * (try to match Pete's vcproj changes in MSVC6)
694
695 commit 536e424fd7d057fc3f20f9939f9de4572e51c815
696 Author: Michael Plante <michael.plante@gmail.com>
697 Date:   Tue Dec 13 21:39:40 2011 -0500
698
699     Windows: Add missing MSVC6 lsusb.dsp project file
700     
701     Signed-off-by: Michael Plante <michael.plante@gmail.com>
702
703 commit c56828857eb7ba6fb4f7701693dbb3fe4e75d5f6
704 Author: Martin Pieuchot <mpi@openbsd.org>
705 Date:   Mon Jan 30 09:59:30 2012 +0100
706
707     OpenBSD backend
708
709 commit d2285744c7fa4007bb411be354268209d350b0f2
710 Author: Xiaofan Chen <xiaofanc@gmail.com>
711 Date:   Fri Jan 13 18:07:34 2012 +0100
712
713     configure.ac: Darwin: Move -lobjc from LIBS to PC_LIBS_PRIVATE
714     
715     Since commit 40327cd134718475f6cec8935b856d4fdff2099c it is neccessary
716     to explicitly include -lobjc not only when linking libusb itself, but
717     also for programs linking statically against libusb. References #63.
718     
719     See also http://marc.info/?m=132505900202378
720
721 commit 93b0e09d53ed1d177631af9182378492481a790a
722 Author: Xiaofan Chen <xiaofanc@gmail.com>
723 Date:   Fri Jan 13 13:04:00 2012 +0100
724
725     examples: Link only with ../libusb/libusb-1.0.la and not with -lusb-1.0
726     
727     Previous _LDFLAGS included both the freshly built libusb in ../libusb
728     and -lusb-1.0, where libtool would usually resolve the latter to an
729     already-installed libusb library in the system. The extra reference
730     to a second libusb library resulted in failure to build examples on
731     Mac OS X in some cases, and is plain wrong.
732     
733     See also the thread at http://marc.info/?m=132637593623667
734
735 commit cdc5df8f1b206a7c19bc221e8a9a97d5d98deb85
736 Author: Peter Stuge <peter@stuge.se>
737 Date:   Thu Jan 12 10:34:55 2012 +0100
738
739     libusb/Makefile.am: Avoid recursive variables in .rc silent-rule
740     
741     Not every make supports recursive variable expansion so some automake
742     versions complain about non-POSIX variable names ever since commit
743     70bec4a9f8ec28d36c731011fa24d37c74ad3523 which added support for
744     silent-rules in our rule to compile the Windows .rc file.
745     
746     This commit removes the recursive variables and instead uses the
747     simple and generic GEN message and associated variable.
748
749 commit a8e2e7cab278fbfcba91909eaf762cf66da9eda5
750 Author: Ludovic Rousseau <ludovic.rousseau+github@gmail.com>
751 Date:   Sat Sep 24 18:27:54 2011 +0200
752
753     Core: Fix #122 warning: no previous prototype for â€˜usbi_log_v’
754     
755     Declare the usbi_log_v() function before using it.
756
757 commit e88ecb1e65604c222f82da586bb9e9066d66fbba
758 Author: Sean McBride <sean@rogue-research.com>
759 Date:   Fri Oct 14 14:40:29 2011 -0400
760
761     Darwin: Set a name for the background thread on Mac OS X 10.6 and later
762     
763     The call to pthread_setname_np() makes it easy to identify the
764     background thread in the Xcode debugger and in crash reports.
765
766 commit 60bad550dcb31a315a667a6614c52f712c82f45f
767 Author: Peter Stuge <peter@stuge.se>
768 Date:   Thu Sep 22 21:42:35 2011 +0200
769
770     libusb/Makefile.am: Add libusb-1.0.rc dependency on version.h
771
772 commit 70bec4a9f8ec28d36c731011fa24d37c74ad3523
773 Author: Peter Stuge <peter@stuge.se>
774 Date:   Thu Sep 22 21:38:29 2011 +0200
775
776     libusb/Makefile.am: Make the libusb-1.0.rc rule support silent-rules
777
778 commit fa9b682a638e54a4556ef6bd343ef56d6300a520
779 Author: Peter Stuge <peter@stuge.se>
780 Date:   Thu Sep 22 21:17:37 2011 +0200
781
782     configure.ac: Enable libtool support for Windows Resource language
783
784 commit 58c73ddca310f757fc7ca75197bf3d7ca58ce29a
785 Author: Sean McBride <sean@rogue-research.com>
786 Date:   Mon Sep 19 12:52:44 2011 -0400
787
788     descriptor.c: Use size_t for minor 64 bit compliance improvement
789     
790     Fixes #121.
791
792 commit 27ec326a9f1bff4481702b35f39897c65a5db586
793 Author: Sean McBride <sean@rogue-research.com>
794 Date:   Mon Sep 19 12:42:33 2011 -0400
795
796     Darwin: Fix warnings about mismatched signed/unsigned compare
797     
798     References #121.
799
800 commit 59cc79f2c8e5da41fe2c761bf1e1d9cd18ddac81
801 Author: Sean McBride <sean@rogue-research.com>
802 Date:   Mon Sep 19 12:38:20 2011 -0400
803
804     Fix unused variable warnings when without timerfd and/or when on Darwin
805     
806     References #121.
807
808 commit 1cc5b4a9fb984e83681ae5c797fa6b22bc20f809
809 Author: Ludovic Rousseau <ludovic.rousseau+github@gmail.com>
810 Date:   Fri Sep 16 18:07:56 2011 +0200
811
812     Correctly handle LIBUSB_TRANSFER_OVERFLOW in libusb_control_transfer()
813     
814     sync.c: In function `libusb_control_transfer':
815     sync.c:122: warning: enumeration value `LIBUSB_TRANSFER_OVERFLOW' not
816     handled in switch
817     
818     Fixes #120.
819
820 commit c55f581f43885f8576d8e2ebf4d46cd7ff3c1030
821 Author: Pete Batard <pete@akeo.ie>
822 Date:   Mon Sep 19 16:01:37 2011 +0100
823
824     Windows: do not set altsetting 0 as part of libusb_release_interface()
825     
826     * pointed out by Travis Robinson and Xiaofan Chen
827     * similar to a change advised by Alan Stern for the Linux kernel:
828       http://marc.info/?m=122790204410765
829
830 commit efd3fae8f95ef7797ecd4b5731b198f100007d6a
831 Author: Pete Batard <pete@akeo.ie>
832 Date:   Mon Sep 19 15:45:35 2011 +0100
833
834     Windows: fix communication with hubs
835     
836     * issue reported by René Haunstrup in http://marc.info/?m=130503019227814
837
838 commit a8d1eb7963e5811e16e8fb7e157cf3a00d888347
839 Author: Pete Batard <pete@akeo.ie>
840 Date:   Mon Sep 19 15:41:39 2011 +0100
841
842     Windows: add USB 3.0 controller support
843     
844     * Windows 8, NEC/Renesas, TI, Fresco Logic, Etron, VIA, ASMedia
845       (some of which untested!)
846     * includes workaround for NEC/Renesas USB 3.0 root hubs
847
848 commit 48a19497bdd14325738ac9197d8cf4ebe1daa2d4
849 Author: Pete Batard <pete@akeo.ie>
850 Date:   Mon Sep 19 15:28:03 2011 +0100
851
852     Windows: add static keywords and drop duplicated or unneeded code
853
854 commit af407286ba2fd346755297e56e365d84b98090d5
855 Author: Pete Batard <pete@akeo.ie>
856 Date:   Mon Sep 19 13:59:46 2011 +0100
857
858     Windows: fix 'windows_error_str' defined but not used when not logging
859
860 commit abc3143ba1989a48f62246c2afb0eb4c3c5f7917
861 Author: Peter Stuge <peter@stuge.se>
862 Date:   Thu Sep 22 10:19:17 2011 +0200
863
864     libusbi.h: Silence unused context variable warnings when not logging
865
866 commit 69b71c896a153a307360cf21be67b3b6e1e09a2d
867 Author: Pete Batard <pete@akeo.ie>
868 Date:   Mon Sep 19 13:06:22 2011 +0100
869
870     Windows: copy DLL file regardless of ddk_build.cmd dll argument case
871
872 commit fdbac8971212bda3a42feeeaeb92fd8e49c7e904
873 Author: Pete Batard <pete@akeo.ie>
874 Date:   Sun Sep 18 20:06:45 2011 +0100
875
876     Windows: Add uint32_t typedef for old MSC so that DDK can build lsusb
877
878 commit c471d55e909d84012f065715703dad454d1fa421
879 Author: Vitali Lovich <vlovich@gmail.com>
880 Date:   Fri Sep 16 08:53:25 2011 -0600
881
882     Darwin: fix port leak in darwin_clock_gettime()
883
884 commit 477f3917f8c123e36993f9c0ba8156ca0f16ccfa
885 Author: Vitali Lovich <vlovich@gmail.com>
886 Date:   Fri Sep 16 08:50:40 2011 -0600
887
888     Darwin: remove unnecessary run loop invalidation during libusb_exit()
889
890 commit f52094f37ccaff8137f5ce39867d2dba9b0f6bf9
891 Author: Vitali Lovich <vlovich@gmail.com>
892 Date:   Fri Sep 16 08:49:54 2011 -0600
893
894     Darwin: fix port leak during libusb_exit()
895
896 commit 8a2f7b5c0520e6099f2c624cd0994c60867c1628
897 Author: Vitali Lovich <vlovich@gmail.com>
898 Date:   Fri Sep 16 08:48:28 2011 -0600
899
900     Darwin: fix potential leak on libusb_claim_interface() error
901
902 commit b1ee2ef8d0b67dcc51c15742cb2decb386cffd9b
903 Author: Nathan Hjelm <hjelmn@me.com>
904 Date:   Fri Sep 16 08:41:01 2011 -0600
905
906     Darwin: Fix #117 transfer size 64/32 bit issue for transfer callbacks
907     
908     The transfer size is now always truncated to 32 bits.
909
910 commit c407a2d97b6f8715d3452257a0adac40a20178e6
911 Author: Peter Stuge <peter@stuge.se>
912 Date:   Thu Sep 15 17:04:43 2011 +0200
913
914     Remove username from SF FRS rsync upload command
915
916 commit cbc2d7b2de58cf5fb02d9e5a39be0870527f8632
917 Author: Peter Stuge <peter@stuge.se>
918 Date:   Thu Sep 15 16:48:35 2011 +0200
919
920     Support release candidate versions in configure.ac and libusb-1.0.rc
921
922 commit 384a528ed7adde935681313dacc5cd79e4be9ea1
923 Author: Peter Stuge <peter@stuge.se>
924 Date:   Thu Sep 15 16:32:47 2011 +0200
925
926     Tidy .gitignore a little
927     
928     There's no xusb, we need a glob pattern for matching .exe files, and
929     fpusb tarballs aren't very common in the libusb source dir.
930
931 commit 9ad3643391a7fc6ce97aa77ffaf97d244fd9e613
932 Author: Hans de Goede <hdegoede@redhat.com>
933 Date:   Wed Sep 14 10:53:48 2011 +0200
934
935     Docs: Clarify that libusb_handle_events_timeout() tv param can't be NULL
936     
937     The example code and API doc for libusb_handle_events_timeout() could be
938     interpreted as it being OK to pass a NULL pointer for the tv argument (I
939     interpreted it like that when I first started coding for libusb).
940     
941     This patch changes the docs to make it clear that one must always supply
942     a tv struct to libusb_handle_events_timeout.
943     
944     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
945
946 commit e1c06fb070c1328a3b78c7da8b9e779d466edd97
947 Author: Peter Stuge <peter@stuge.se>
948 Date:   Wed Sep 14 08:23:43 2011 +0200
949
950     Makefile.am: Do not remove ChangeLog on make distclean, fixes #116
951     
952     [pbatard: Remove it on make maintainer-clean instead]
953
954 commit 0c5bf03eb829e51dcf19562fc4f745937235ea51
955 Author: Vitali Lovich <vlovich@aliph.com>
956 Date:   Wed Sep 14 07:02:06 2011 +0200
957
958     Darwin: Reduce race likelihood between cancellation and device disconnect
959     
960     References #88. The race condition still remains, but this change
961     makes it less likely to trigger.
962
963 commit 3e6e257f55156c4600f3116a0befba8cee62872a
964 Author: Peter Stuge <peter@stuge.se>
965 Date:   Wed Sep 14 04:00:33 2011 +0200
966
967     Document that libusb_get_device_list() can return any libusb_error code
968     
969     Fixes #87.
970
971 commit 737ba04ea40f19564b445fbb489907529e75edc9
972 Author: Pete Batard <pbatard@gmail.com>
973 Date:   Thu Jun 16 10:49:13 2011 +0100
974
975     Linux: Fix #81 URB double free race condition on device disconnect
976     
977     A submitted transfer that has just been failed by the kernel could be
978     picked up by an event handler to be cleaned up, where freeing of URB
979     memory would race with the submit function doing it's own cleanup and
980     freeing as a result of the submit failing.
981     
982     libusb_submit_transfer() always holds itransfer->lock, so the race can
983     be avoided by taking that lock also in the cleanup path and checking
984     that the URB memory has not already been freed before freeing it there.
985     
986     As http://libusb.org/ticket/81#comment:14 notes there is still another
987     possible, but unlikely, race condition between libusb_submit_transfer()
988     and an event handling thread. That will require more work to solve.
989     
990     [stuge: Add check in cleanup path that URBs have not already been freed]
991
992 commit 1b0f758a334d78d3832d17d694ac0c931da36050
993 Author: Peter Stuge <peter@stuge.se>
994 Date:   Wed Sep 14 03:00:14 2011 +0200
995
996     Add libusb_error_name() API function
997     
998     Until we have i18ned error messages we can at least offer easy
999     translation from numeric error code to the error code's name.
1000     
1001     [hansg: switch() on enum to get a compiler warning if a case is missing]
1002     [hansg: Better return value when called with an unknown error code]
1003     [hansg: Fix DEFAULT_VISIBILITY in definition to compile on all platforms]
1004
1005 commit e16805130a04b2642891e86b8f479e6343ca17da
1006 Author: Peter Stuge <peter@stuge.se>
1007 Date:   Wed Sep 14 02:30:18 2011 +0200
1008
1009     Add libusb_has_capability() API function
1010     
1011     Since it is currently not planned to change the filename of the libusb
1012     library between libusb-1.0 versions at least on Windows systems it's
1013     important to have a capability API.
1014     
1015     Currently there exists only one capability; LIBUSB_CAP_HAS_CAPABILITY,
1016     which tests support for the libusb_has_capability() API.
1017
1018 commit 2dc2fa2a56408e515d25359323b4ea2f1bbec14a
1019 Author: Sebastian Pipping <sebastian@pipping.org>
1020 Date:   Tue Sep 13 20:38:26 2011 +0200
1021
1022     Fix typos in introductory documentation
1023
1024 commit 0a828082aeedc6d19b6de4e3b10cc9762352fa7f
1025 Author: Pekka Nikander <pekka.nikander@senseg.com>
1026 Date:   Tue Sep 13 18:57:43 2011 +0200
1027
1028     Linux: Add libusb_open() debug and error messages with the device path
1029     
1030     Fixes #109.
1031
1032 commit 6583372125d73543fe0db9fdc59850b9c6aa50d9
1033 Author: Pekka Nikander <pekka.nikander@senseg.com>
1034 Date:   Tue Sep 13 18:52:36 2011 +0200
1035
1036     Add debug message with libusb_open() error code
1037     
1038     References #109.
1039
1040 commit f797ecb3b4e653594f8ebc0c9d9e2ca579062779
1041 Author: Hans de Goede <hdegoede@redhat.com>
1042 Date:   Mon Sep 12 18:11:20 2011 +0200
1043
1044     Document libusb_handle_events_completed() and _timeout_completed()
1045     
1046     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1047     [stuge: Note that the old racy functions should be avoided by new code]
1048
1049 commit 6696512aade99bb15d6792af90ae329af270eba6
1050 Author: Graeme Gill <graeme2@argyllcms.com>
1051 Date:   Sat Sep 10 15:47:05 2011 +0200
1052
1053     Fix #56 race condition causing delayed completion of sync transfers
1054     
1055     The sync API had a race where it would check a condition to know if it
1056     needed to call a libusb_handle_events() function. However, the check
1057     was done outside of the lock that is held while the condition is set,
1058     so another thread could completely serve whatever was needed to make
1059     the condition true between it being checked and the event handler being
1060     called. This situation would be detected after a libusb-internal timeout
1061     of 60 seconds, after which the transfer would be completed without
1062     error, but with significant delay.
1063     
1064     Original patch at http://marc.info/?l=libusb-devel&m=127252114815709
1065     
1066     Changes by Hans de Goede:
1067     - Renamed the "race-proof" functions from libusb_handle_events*_check()
1068       to libusb_handle_events*_completed()
1069     - Drop r = 0 setting in libusb_handle_events_timeout_completed()
1070       (to make both completed checking cases identical flow wise)
1071     
1072     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1073     [stuge: Simplify libusb_handle_events_timeout() change with a goto]
1074     [pbatard: Fix _handle_events_timeout() and _completed() definitions]
1075
1076 commit cfee5446cdb2974c1e90c7c379a365c495975aef
1077 Author: Nathan Hjelm <hjelmn@me.com>
1078 Date:   Fri Aug 26 23:06:40 2011 -0600
1079
1080     Darwin: Use a condition to signal async thread ready in libusb_init()
1081
1082 commit d1bd234f7e1b1ff4168b8f605e2038e87a0e361f
1083 Author: Nathan Hjelm <hjelmn@me.com>
1084 Date:   Thu Jul 21 22:34:12 2011 -0600
1085
1086     Fix #64 use of reserved identifiers throughout libusb
1087
1088 commit a97762a8a121de1ad3deb9e861088b69bb6a155b
1089 Author: Nathan Hjelm <hjelmn@me.com>
1090 Date:   Thu Jul 21 22:31:09 2011 -0600
1091
1092     Darwin: fix libusb_get_device_list() and libusb_claim_interface() leaks
1093
1094 commit 8723df191fcedc6161732fd06d12df392c6dea3f
1095 Author: Nathan Hjelm <hjelmn@me.com>
1096 Date:   Thu Jul 21 22:28:47 2011 -0600
1097
1098     Darwin: use kIOMasterPortDefault instead of creating a master port
1099
1100 commit 0eb7e43759003610d1afe6148aa6ff4f5859ccb0
1101 Author: Peter Stuge <peter@stuge.se>
1102 Date:   Wed Jul 27 03:15:03 2011 +0200
1103
1104     Allow devices with zero configurations to be discovered
1105     
1106     At least in Linux, wireless USB devices have zero configurations until
1107     they have been authorized. This device state can be set for any USB
1108     device using:
1109     
1110     echo 0 > /sys/bus/usb/devices/?-?/authorized
1111     
1112     An unauthorized device would previously make usbi_sanitize_device()
1113     return LIBUSB_ERROR_IO, although there really was no I/O error.
1114     
1115     Reported-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
1116
1117 commit 5010c3e80423d13acee6eeb4af974e8a9bcdd006
1118 Author: Peter Stuge <peter@stuge.se>
1119 Date:   Wed Jul 27 06:17:48 2011 +0200
1120
1121     Linux: Continue enumeration even if one device returns an error
1122
1123 commit 2bf8848fb5c85ace0f445c0820a0c173cf76bf43
1124 Author: Hans de Goede <hdegoede@redhat.com>
1125 Date:   Fri Jun 17 10:19:00 2011 +0200
1126
1127     Linux: Handle single- and two-digit kernel versions like 3.0 and 4
1128     
1129     The code has been tested with various version strings.
1130     
1131     [stuge: Remove bogus string length check and optimize for newer kernels]
1132
1133 commit 0288bf24f91eca9f433ebad91a7eb6c0e3e29133
1134 Author: Pete Batard <pbatard@gmail.com>
1135 Date:   Thu Mar 3 18:35:35 2011 +0000
1136
1137     Windows: Provide libusb_get_device_speed() data
1138     
1139     * use (currently superspeed unaware) USB_NODE_CONNECTION_INFORMATION_EX
1140     
1141     Fixes #45.
1142     
1143     [stuge: Explicitly convert OS device speeds to libusb device speeds]
1144     [pbatard: Add breaks overlooked when adding explicit conversion]
1145
1146 commit 382b7deaadd7e2f1d08c9e921e460bb3abf130b2
1147 Author: Trygve Laugstøl <trygvis@inamo.no>
1148 Date:   Tue Jul 19 23:20:40 2011 +0200
1149
1150     Darwin: Provide libusb_get_device_speed() data
1151     
1152     References #45.
1153
1154 commit 44d6319f57e7e2c77347da228ed032e62716b438
1155 Author: Hans de Goede <hdegoede@redhat.com>
1156 Date:   Thu Feb 17 15:06:40 2011 +0100
1157
1158     Linux: Provide libusb_get_device_speed() data from sysfs
1159     
1160     References #45.
1161     
1162     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1163
1164 commit c8c40bcbd22abca922ff31c4ed6a75fd7af78b59
1165 Author: Hans de Goede <hdegoede@redhat.com>
1166 Date:   Thu Feb 17 13:17:55 2011 +0100
1167
1168     Add new API function libusb_get_device_speed()
1169     
1170     Reworked version of my earlier patch, largely modelled after (if not
1171     copy and pasted from) Trygve Laugstøl's <trygvis@inamo.no> similar
1172     commit 5a6541e0d80fb1f21e2b960bc2337a612f9d74fb in
1173     git://git.libusb.org/libusb-trygvis.git
1174     http://git.libusb.org/libusb-trygvis.git
1175     http://git.libusb.org/?p=libusb-trygvis.git;a=commitdiff;h=5a6541e0d
1176     
1177     This patch does not add any OS specific code. The supporting code in
1178     each backend follows in separate patches. References #45.
1179     
1180     Signed-off-By: Hans de Goede <hdegoede@redhat.com>
1181
1182 commit 0db8cba7f2c372f0127c7df9724e5a35e93f2069
1183 Author: Nathan Hjelm <hjelmn@me.com>
1184 Date:   Sun Mar 20 00:25:44 2011 -0600
1185
1186     Darwin: Improve device enumeration performance
1187     
1188     The device location is saved, and later used whenever iterating over
1189     devices. Fixes #111 and #112.
1190     
1191     [stuge: Formatting fixes and split out libusb_get_device_speed() change]
1192     [stuge: Combine with patch that uses the saved device location]
1193
1194 commit 511ec4301deb516691e39e3df5b90fe28cb2bb0f
1195 Author: Hans de Goede <hdegoede@redhat.com>
1196 Date:   Thu Feb 17 12:49:36 2011 +0100
1197
1198     Linux: Use __read_sysfs_attr() to get busnum and devaddr
1199     
1200     Remove code duplication.
1201     
1202     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1203
1204 commit e05bbc59ca7b896e2b825bde59bf883ac8c09f5c
1205 Author: Hans de Goede <hdegoede@redhat.com>
1206 Date:   Thu Feb 17 12:45:10 2011 +0100
1207
1208     Linux: Add __read_sysfs_attr() helper function
1209     
1210     On Linux we often need to read (postive) integers from sysfs. This patch
1211     adds a helper function for this. This is a preparation patch for adding
1212     a libusb_get_device_speed() function to libusb.
1213     
1214     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1215
1216 commit 20e26dda0f86dafa3436b152e090b5f3410c8ce4
1217 Author: Hans de Goede <hdegoede@redhat.com>
1218 Date:   Tue Feb 8 16:37:18 2011 +0100
1219
1220     Linux: Stop kernel from re-attaching in-kernel driver after reset
1221     
1222     When an interface is bound to the usbfs driver (iow claimed), the
1223     kernel will unbind it, and then after the reset do a device_attach
1224     on the interface, which will bind the default in kernel driver to
1225     the interface.
1226     
1227     So if an app has detached the in kernel driver, and claimed the
1228     interface and then does a libusb_reset_device. Things end up with
1229     the interface no longer being bound to the usbfs driver (so no longer
1230     claimed) and instead it is bound to the in kernel driver (iow the in
1231     kernel driver is re-attached).
1232     
1233     We can stop this from happening by releasing all claimed interfaces
1234     before the reset, as the kernel will not do the device attach after
1235     reset, if no driver was bound to the interface before the reset.
1236     
1237     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1238
1239 commit 4e294dc9848aab86b31d2fff228cf97e7eadf913
1240 Author: Hans de Goede <hdegoede@redhat.com>
1241 Date:   Thu Feb 17 12:35:46 2011 +0100
1242
1243     Core: Use USB_MAXINTERFACES rather then sizeof(claimed_interfaces)
1244     
1245     claimed_interfaces is a long and thus its size differs on 32
1246     versus 64 bits, this patch uses USB_MAXINTERFACES instead of
1247     sizeof(claimed_interfaces) on interface number range checks
1248     for consistent behavior independent of the arch.
1249     
1250     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1251
1252 commit a68f956dd4c29d6ed799f04f07a3346317843999
1253 Author: Hans de Goede <hdegoede@redhat.com>
1254 Date:   Wed Feb 9 12:40:35 2011 +0100
1255
1256     Linux: Fix warnings seen when compiling with gcc-4.6
1257     
1258     Compiling with gcc-4.6 results in the following warnings:
1259     os/linux_usbfs.c: In function 'op_get_configuration':
1260     os/linux_usbfs.c:1144:6: warning: variable 'r' set but not used ...
1261     os/linux_usbfs.c: In function 'op_handle_events':
1262     os/linux_usbfs.c:2091:40: warning: 'status' may be used uninitialized ...
1263     os/linux_usbfs.c:2044:6: note: 'status' was declared here
1264     dpfp.c: In function 'save_to_file':
1265     dpfp.c:228:9: warning: variable 'ignore' set but not used ...
1266     dpfp_threaded.c: In function 'save_to_file':
1267     dpfp_threaded.c:257:9: warning: variable 'ignore' set but not used ...
1268     
1269     This patch fixes these. (The second comes from handle_control_completion()
1270     which gcc seems to inline into op_handle_events().)
1271     
1272     Signed-off-by: Hans de Goede <hdegoede@redhat.com>
1273     [stuge: Add fixes for dpfp examples and update source references]
1274
1275 commit 209b5ccd827039b933b730e3f29abd0d72d3c6c6
1276 Author: Vitali Lovich <vlovich@aliph.com>
1277 Date:   Tue Jun 14 08:51:57 2011 +0200
1278
1279     Darwin: Fix #108 crash when a device is unplugged
1280
1281 commit d3543e9140536a9751811b44f8496489be1e6bb7
1282 Author: Peter Stuge <peter@stuge.se>
1283 Date:   Mon Jun 13 22:58:23 2011 +0200
1284
1285     libusb.h: Add missing LIBUSB_CLASS_ codes currently defined by usb.org
1286     
1287     LIBUSB_CLASS_PHYSICAL
1288     LIBUSB_CLASS_SMART_CARD
1289     LIBUSB_CLASS_CONTENT_SECURITY
1290     LIBUSB_CLASS_VIDEO
1291     LIBUSB_CLASS_PERSONAL_HEALTHCARE
1292     LIBUSB_CLASS_DIAGNOSTIC_DEVICE
1293     
1294     Per http://www.usb.org/developers/defined_class
1295
1296 commit 08bc7ffb6a3b65afc6795cd048a890ee8da7d954
1297 Author: Peter Stuge <peter@stuge.se>
1298 Date:   Mon Jun 13 22:53:40 2011 +0200
1299
1300     libusb.h: Add LIBUSB_CLASS_IMAGE in addition to LIBUSB_CLASS_PTP
1301     
1302     The old LIBUSB_CLASS_PTP name is kept for compatibility. Fixes #106.
1303
1304 commit 3d7938d85a33cd98553c0c898a8dd0490826b077
1305 Author: Peter Stuge <peter@stuge.se>
1306 Date:   Mon Jun 13 22:52:48 2011 +0200
1307
1308     libusb.h: Fix LIBUSB_CLASS_PRINTER description typo
1309     
1310     References #106.
1311
1312 commit 5d0526af1a922afab02cdbdf4bb7078702759571
1313 Author: Sean McBride <sean@rogue-research.com>
1314 Date:   Fri Feb 11 11:28:04 2011 -0500
1315
1316     Darwin: Fix #100 warning cast to pointer from integer of different size
1317
1318 commit bb8854ff5680136e29b57505300f131c2646f258
1319 Author: Sean McBride <sean@rogue-research.com>
1320 Date:   Mon Jun 13 22:26:43 2011 +0200
1321
1322     configure.ac: Fix #97 clang warning about -fgnu89-inline
1323     
1324     Remove the test that sets the flag since GNU89 inline semantics are not
1325     required by libusb.
1326     
1327     [stuge: Also remove reference to the test result]
1328
1329 commit cb3c2e488f298b78027c9d5fc0bec0e5ba27d761
1330 Author: Pete Batard <pbatard@gmail.com>
1331 Date:   Wed Jun 15 01:38:58 2011 +0200
1332
1333     Windows: Make cancel_io() in poll_windows.c static
1334     
1335     References #97.
1336
1337 commit 6635dbb4acb5ee556a020e431b15c954edfcbd29
1338 Author: Peter Stuge <peter@stuge.se>
1339 Date:   Mon Jun 13 22:21:02 2011 +0200
1340
1341     Windows: Make upperize() in windows_usb.h static
1342     
1343     References #97.
1344
1345 commit 9479ce9dae3d0dbe2ce693bd02ccceb018a75fe9
1346 Author: Vitali Lovich <vlovich@aliph.com>
1347 Date:   Wed Mar 16 17:33:57 2011 -0700
1348
1349     descriptor.c: Fix buffer read overflow caught by valgrind
1350     
1351     In parse_interface() an unexpected descriptor would be parsed without
1352     validating the descriptor's length.  It is possible for size to be 0 at
1353     this point, which means that the parsing would read past the end of the
1354     source buffer.  Fix #83 by checking the length of the remaining buffer
1355     before parsing.
1356
1357 commit c775c2f43037cd235b65410583179195e25f9c4a
1358 Author: Vitali Lovich <vlovich@aliph.com>
1359 Date:   Wed Mar 16 19:51:40 2011 -0700
1360
1361     Clean up in-flight transfers and device handle when closing a device
1362     
1363     Any in-flight transfers should properly invalidate their references
1364     to device handles that are being closed.  Additionally, they should be
1365     removed from the transfer-in-flight list.  This is done with the events
1366     lock held to protect against another thread processing the same transfer.
1367     The events lock is initialized as a recursive mutex, because the device
1368     close code might itself be called while an event is being handled.
1369     Fixes #82.
1370     
1371     [stuge: Trivial rework to reduce indenting]
1372
1373 commit 74282582cc879f091ad1d847411337bc3fa78a2b
1374 Author: Vitali Lovich <vlovich@aliph.com>
1375 Date:   Wed Mar 16 19:43:30 2011 -0700
1376
1377     Add recursive mutexes to threading abstraction
1378     
1379     This is necessary for the device close path which needs to attain the
1380     events lock, but which might itself be called while handling an event.
1381     The events lock is necessary to properly clean up transfers which might
1382     still be pointing to the device. References #82.
1383     
1384     [stuge: Move usbi_mutex_init_recursive() into threads_posix.c]
1385     [stuge: Must also #define _XOPEN_SOURCE 500 to be able to build]
1386     [pbatard: Un-inline usbi_mutex_init_recursive() to make Cygwin happy]
1387
1388 commit 8f1bc0659136faf312dabe8fe67380a798299d33
1389 Author: Vitali Lovich <vlovich@aliph.com>
1390 Date:   Wed Mar 16 19:48:35 2011 -0700
1391
1392     Add USBI_TRANSFER_CANCELLING and _DEVICE_DISAPPEARED status flags
1393     
1394     The flags are used to indicate if a cancellation has started, and if
1395     a cancellation has failed because the device is no longer available.
1396     References #82.
1397
1398 commit 87ba8a9ead4fd9e81ae3c5a894f698779de1f2c2
1399 Author: Vitali Lovich <vlovich@aliph.com>
1400 Date:   Wed Mar 16 19:50:04 2011 -0700
1401
1402     Linux: Detect and report that device has gone away while discarding URBs
1403     
1404     Return LIBUSB_ERROR_NO_DEVICE if the device is no longer available
1405     (ENODEV) to discard the urbs. References #82.
1406
1407 commit 2c85c363cddd72b9ab425f05e2ee03e0b1df24f1
1408 Author: Peter Stuge <peter@stuge.se>
1409 Date:   Mon Jun 6 02:46:46 2011 +0200
1410
1411     libusbi.h: Add comma after last value in enum usbi_transfer_flags
1412
1413 commit 5d7be3e1337f2444097504931ac0f2f0997b2b05
1414 Author: Peter Stuge <peter@stuge.se>
1415 Date:   Sun Jun 5 23:28:07 2011 +0200
1416
1417     threads_posix.h: Whitespace fix
1418
1419 commit 18db4813e844fc6929680afcc9b793abcb06876a
1420 Author: Peter Stuge <peter@stuge.se>
1421 Date:   Sun Jun 5 23:21:08 2011 +0200
1422
1423     libusb/Makefile.am: Correct threading files in libusb_1_0_la_SOURCES
1424
1425 commit 5f30c81f66e8dd61f8eae16de548697708f9bd18
1426 Author: Alan Ott <alan@signal11.us>
1427 Date:   Thu Jul 21 16:37:48 2011 +0200
1428
1429     Linux: Fix #70 race condition in sysfs_get_device_list()
1430     
1431     Change the way libusb chooses between using sysfs and usbfs for information
1432     about the attached devies.  Using the old method, a race condition could
1433     occur if a device was unplugged just before (or during) the call to
1434     libusb_get_device_list(), corrupting the internal sysfs_can_relate_devices
1435     and sysfs_has_descriptors variables and preventing libusb_get_device_list()
1436     from working in future calls.
1437     
1438     The old method was based on the assumption that if certain sysfs files
1439     (eg: busnum) could not be opened, that indicated an inadequacy of sysfs
1440     (ie: the running kernel's sysfs version did not contain those files),
1441     when in reality those files couldn't be opened because the device had
1442     been unplugged.
1443     
1444     The new method checks the adequacy of sysfs during libusb_init()
1445     (op_init()) and if a sysfs file cannot be opened, it is now assumed that
1446     it is because the device has been unplugged, not because sysfs is
1447     inadequate.
1448     
1449     Signed-off-by: Alan Ott <alan@signal11.us>
1450     [stuge: Include closedir() bugfix posted in ticket by Arne Laansoo]
1451     [stuge: Remove dead code in sysfs_scan_device() found by Hans de Goede]
1452
1453 commit 40327cd134718475f6cec8935b856d4fdff2099c
1454 Author: Sean McBride <sean@rogue-research.com>
1455 Date:   Thu Feb 10 17:11:29 2011 -0500
1456
1457     Darwin: Fix #63 error when apps use Objective-C garbage collection
1458
1459 commit 3ba2fae24886fec89410e5f2295f65363edcc2df
1460 Author: Sean McBride <sean@rogue-research.com>
1461 Date:   Fri Feb 5 11:50:34 2010 -0500
1462
1463     Darwin: Fix #28 clang analyzer warning about unbalanced retain/release
1464
1465 commit b67120f047f7eafa15c88c66fa61cef40805ec1f
1466 Author: Sean McBride <sean@rogue-research.com>
1467 Date:   Fri Feb 5 11:50:34 2010 -0500
1468
1469     io.c: Fix clang analyzer warning about unused variable
1470     
1471     References #28.
1472
1473 commit 51af85d03a098d7d99ea544e8e9535b5476bab33
1474 Author: Peter Stuge <peter@stuge.se>
1475 Date:   Tue May 10 10:44:18 2011 +0200
1476
1477     .gitignore: Add m4 subdirectory created by libtool
1478
1479 commit c569e5b3b314538f45d0b3b6f14ce3dbdfee1be9
1480 Author: Ludovic Rousseau <rousseau@debian.org>
1481 Date:   Mon Nov 15 14:45:50 2010 +0100
1482
1483     Linux: Do not include useless pthread.h
1484     
1485     The code does not use threads so no need to #include <pthread.h>
1486     Fixes #74.
1487
1488 commit 82af9f9d440ef49015652c699157cf62020f097a
1489 Author: Pete Batard <pbatard@gmail.com>
1490 Date:   Tue Mar 8 17:41:05 2011 +0000
1491
1492     Windows: minor code improvements
1493     
1494     * mostly warnings from VS2010's Intellisense
1495
1496 commit 7e636dbe06001b9ac68e452a2fdc05e33fbb4e3a
1497 Author: Pete Batard <pbatard@gmail.com>
1498 Date:   Tue Mar 8 17:40:39 2011 +0000
1499
1500     Windows: prevent set_configuration request from being sent using WinUSB
1501     
1502     * multiple WinUSB set configuration requests can stall a device and
1503       WinUSB does not support setting of alt configuration in the first place
1504     * issue reported and investigated by Xiaofan Chen
1505
1506 commit 578c50c99646e5ebbcfbea653524a519b843ebcd
1507 Author: Graeme Gill <graeme@argyllcms.com>
1508 Date:   Tue Mar 8 17:39:16 2011 +0000
1509
1510     Windows: fixed default WinUSB timeout and ineffective policy settings
1511     
1512     * default WinUSB timeout was 5 seconds, which may be to small.
1513       PIPE_TRANSFER_TIMEOUT policy is now set to infinite for all EPs.
1514     * other WinUSB policy settings were called before the endpoints
1515       had been set. This is now fixed.
1516
1517 commit 25fa63ea1cfe02e784cb62d3b869fd15e62b5b6e
1518 Author: Pete Batard <pbatard@gmail.com>
1519 Date:   Tue Mar 8 17:37:40 2011 +0000
1520
1521     Windows: Don't leak pipe fds
1522     
1523     use _open() and _close() rather than _open_osfhandle() and CloseHandle()
1524     
1525     * use of CloseHandle() prevented the pipe fds from being
1526       relinquished on libusb_exit()
1527     * leaked fds could lead to the OS running out of new fds
1528       and LIBUSB_ERROR_NO_MEM being returned as a result
1529     * using _open() avoids _open_osfhandle() redef for cygwin
1530     * issue reported by Stephano Antonelli
1531
1532 commit 3ccd9bddec316ee4b867959fd7f616eb4d410997
1533 Author: Peter Stuge <peter@stuge.se>
1534 Date:   Tue May 10 10:05:29 2011 +0200
1535
1536     Windows: enumeration overhaul
1537     
1538     * uses multiple passes in a single call
1539     * uses a hash table, in anticipation for hotplug
1540     * adds a (dummy) HUB interface for harmonization
1541     * adds calloc on device struct creation in core
1542       (to detect and avoid unnecessary double initialization)
1543
1544 commit bb108cbe39802785d10fe025b74ca5ee19734151
1545 Author: Pete Batard <pbatard@gmail.com>
1546 Date:   Tue May 10 00:56:18 2011 +0100
1547
1548     Windows: MS project files part 4 - MSVC6 project files
1549     
1550     Fixes #57 and #1.
1551
1552 commit 78896ae99b9c2d5672fc93c5bad0f5e8e75c53ea
1553 Author: Pete Batard <pbatard@gmail.com>
1554 Date:   Tue May 10 00:53:09 2011 +0100
1555
1556     Windows: MS project files part 3 - VS2005 project files
1557     
1558     References #57.
1559
1560 commit 9e5f4277e379a82f5d32e81db1bd0ffaa6637596
1561 Author: Pete Batard <pbatard@gmail.com>
1562 Date:   Tue May 10 00:38:49 2011 +0100
1563
1564     Windows: MS project files part 2 - WDK project files
1565     
1566     References #57.
1567
1568 commit c1e75431418cdfc10ec963d823fce479cdae6840
1569 Author: Pete Batard <pbatard@gmail.com>
1570 Date:   Tue May 10 00:38:12 2011 +0100
1571
1572     Windows: MS project files part 1 - support files & preliminaries
1573     
1574     * adds the MSVC support files used by MSVC6, VS2005 and WDK
1575     * also adds missing defines required by MS compilers in libusb.h
1576     * also anticipatory sets .gitattributes for CRLF handling
1577     * also adds manually maintained .def file for import lib generation
1578     
1579     References #57.
1580
1581 commit 85a14f43e0ce27cd47f84fdaeacbaa81cebdb886
1582 Author: Peter Stuge <peter@stuge.se>
1583 Date:   Mon May 9 08:12:24 2011 +0200
1584
1585     Move library version number from configure.ac to libusb/version.h
1586     
1587     This is neccessary to support native MS builds. The Windows resource
1588     file libusb/libusb-1.0.rc must include the release version, which was
1589     previously only available after configure had run and had substituted
1590     the numbers into a generated libusb/libusb-1.0.rc file.
1591     
1592     The version atoms are now stored as CPP style #defines in libusb/version.h
1593     so that the .rc no longer needs to be generated but can simply include the
1594     header file and access the version information directly.
1595     
1596     The m4 macro LU_DEFINE_VERSION_ATOM() was added to configure.ac to get
1597     version atoms from libusb/version.h for use in AC_INIT(). The macro
1598     handles C and C++ style comments in version.h, but can easily be made
1599     to fail by obscuring the file. Please don't do that.
1600     
1601     Tested with MinGW using autoconf, and manual compile of libusb-1.0.rc
1602     using RC.EXE Version 5.2.3690.0 from Visual C++ 2005 Express Edition.
1603
1604 commit 3481f52b014110f6c291e5a15e79ba774dcdfacf
1605 Author: Peter Stuge <peter@stuge.se>
1606 Date:   Tue May 10 08:36:32 2011 +0200
1607
1608     Windows: Debug builds create the same .dll file name as non-debug
1609     
1610     Thanks to Pete for pointing this out!
1611
1612 commit 9da8cf5c9ed9bd381a77d8170fc0556edbcce4dc
1613 Author: Pete Batard <pbatard@gmail.com>
1614 Date:   Tue Mar 8 17:18:48 2011 +0000
1615
1616     Windows: explicit use of ANSI or WideChar calls
1617     
1618     * This is in anticipation of adding MSVC project files
1619       that use Unicode rather than MBCS
1620
1621 commit ae675c1f49dc00b695fce7296903f60998cc28ed
1622 Author: Pete Batard <pbatard@gmail.com>
1623 Date:   Tue Mar 8 17:16:23 2011 +0000
1624
1625     Windows: Remove SetupAPI, AdvAPI32 and OLE32 link-time dependencies
1626     
1627     * this ensures that libusb dependent applications only need
1628       to explicitly link against libusb on Windows
1629     
1630     The run-time dependency on Cfgmgr32.dll, OLE32.dll and SetupAPI.dll remains.
1631
1632 commit 356e312511e4892977636da52ec497ad2c716032
1633 Author: Pete Batard <pbatard@gmail.com>
1634 Date:   Tue Mar 8 17:12:33 2011 +0000
1635
1636     Add .gitattributes to avoid Windows line ending issues with autocrlf
1637
1638 commit 61c120f025f3dee04eeb88159d7c0403a8bf91fe
1639 Author: Peter Stuge <peter@stuge.se>
1640 Date:   Sun Feb 27 09:37:54 2011 +0100
1641
1642     Windows: Touch up FileDescription and ProductName resource strings
1643
1644 commit 99b4ddcd893834a4be8b5884037b650e57ba0ba2
1645 Author: Peter Stuge <peter@stuge.se>
1646 Date:   Sun Feb 27 07:20:40 2011 +0100
1647
1648     Windows: Remove emulated direct device access via HID API
1649     
1650     Either use a library such as HIDAPI to communicate with HID class
1651     devices, or replace the kernel driver for the device with one that
1652     offers support for the complete libusb API.
1653
1654 commit 4be84ab49c838d534d3a1b8a64ffa89774984ee7
1655 Author: Peter Stuge <peter@stuge.se>
1656 Date:   Sun Feb 27 06:59:15 2011 +0100
1657
1658     Revert libusb_strerror() until we have i18n and l10n
1659
1660 commit 0e177f22fcc69d9aab6fb410e85f3413f478c94c
1661 Author: Pete Batard <pbatard@gmail.com>
1662 Date:   Wed Jan 19 14:00:12 2011 +0000
1663
1664     dpfp_threaded: return instead of pthread_exit() to avoid Cygwin warning
1665
1666 commit e65878f21b0a0bb96debcb292dc03ce3c4ebb701
1667 Author: Pete Batard <pbatard@gmail.com>
1668 Date:   Wed Jan 19 13:52:08 2011 +0000
1669
1670     Windows: Rename various variables named "index" to avoid shadow warnings
1671
1672 commit 019bf73bb2677dc7720bc8280527316adcbaa506
1673 Author: Pete Batard <pbatard@gmail.com>
1674 Date:   Tue Oct 5 12:50:53 2010 +0100
1675
1676     Windows: Fix logic in enumeration of driver name and port number
1677
1678 commit 24494ed5db27737fc607fc35dda722521c9fe4d4
1679 Author: Pete Batard <pbatard@gmail.com>
1680 Date:   Tue Oct 5 12:50:13 2010 +0100
1681
1682     Windows: Allow claiming any interface in composite device using WinUSB
1683     
1684     Issue reported by Benjamin Dobell, see #48. The call to
1685     WinUsb_QueryInterfaceSettings() is removed since it doesn't work
1686     on any other interface but the first (a WinUSB limitation).
1687     
1688     This allows the use of WinUSB.sys in lieu of the usbccgp.sys
1689     "USB Generic Parent" default driver for composite devices.
1690
1691 commit 9c8e6545f2fbb171f81a9451eaf2d09e1fbc13b3
1692 Author: Pete Batard <pbatard@gmail.com>
1693 Date:   Tue Oct 5 12:47:15 2010 +0100
1694
1695     Windows: Allow arbitrary bConfigurationValue in config descriptors
1696     
1697     Unlike bInterfaceNumber, bConfigurationValue does not have to be
1698     either sequential or contiguous. The bConfigurationValue is now
1699     included in debug output. Fixes #48 reported by Benjamin Dobell.
1700
1701 commit dcd002974e511879320233fd5b0600e06bdc5620
1702 Author: Thomas Röfer <Thomas.Roefer@dfki.de>
1703 Date:   Fri Nov 19 22:03:11 2010 +0100
1704
1705     Darwin: Schedule isochronous transfers further in the future
1706     
1707     This is required to make OpenKinect transfer data at 30 fps. This
1708     change was originally made by Theo Watson, and Thomas improved on it.
1709     The commit came via OpenKinect into libusb thanks to Kyle Machulis and
1710     Hector Martin. Fixes #66.
1711
1712 commit e83fad33dbaf9f37811da6d4cd9d3be554817944
1713 Author: Thomas Röfer <Thomas.Roefer@dfki.de>
1714 Date:   Fri Nov 19 22:03:11 2010 +0100
1715
1716     Darwin: Fix #65 memory leak in submit_iso_transfer()
1717     
1718     This was also independently fixed by Hoi-Ho Chan, but Thomas caught
1719     an additional problem with his fix.
1720     
1721     This commit came via OpenKinect into libusb thanks to Kyle Machulis
1722     and Hector Martin.
1723
1724 commit 1a2d21fe42ad5a157651c787e2f500fc162c325b
1725 Author: Peter Stuge <peter@stuge.se>
1726 Date:   Sat Feb 26 04:21:05 2011 +0100
1727
1728     configure.ac: Refactor Windows backend settings into one occurence
1729     
1730     The Windows backend is used both with MinGW and Cygwin, and since most
1731     settings are identical they can be set in one place.
1732
1733 commit 717f47621d18de16b87e237f3740299f43e4ca1c
1734 Author: Peter Stuge <peter@stuge.se>
1735 Date:   Mon Nov 15 19:58:51 2010 +0100
1736
1737     configure.ac: Rename AM_LDFLAGS to LTLDFLAGS and actually use them
1738     
1739     The new variable name tries to clarify that libtool is being used.
1740     Linker flags must thus always be specified with -Wl.
1741     
1742     Factor out the libtool flag -no-undefined from host specific cases.
1743     The flag is required to build a Windows DLL, but is correct also for
1744     the other supported systems.
1745     
1746     Also, start actually using LTLDFLAGS in libusb/Makefile.am, so that
1747     libtool will see the options set by configure.
1748
1749 commit 3cbe5736469c1c52049752c137ae11387e9b079d
1750 Author: Peter Stuge <peter@stuge.se>
1751 Date:   Sun Nov 21 23:38:46 2010 +0100
1752
1753     configure.ac: Clean up PC_LIBS_PRIVATE and AM_LDFLAGS
1754     
1755     Move linker options for when linking the library itself from
1756     PC_LIBS_PRIVATE into AM_LDFLAGS. PC_LIBS_PRIVATE should only
1757     contain flags needed to link applications statically against libusb.
1758     Fixes #72.
1759
1760 commit ef39d1510580b9fcbacf13443fa7a4e553a9a88e
1761 Author: Peter Stuge <peter@stuge.se>
1762 Date:   Fri Feb 25 02:33:29 2011 +0100
1763
1764     configure.ac: Call AC_CONFIG_FILES() for each output file
1765     
1766     This avoids a problem with Windows line endings.
1767
1768 commit 6e52ea067711e6e7e1b2882757fb61b11b6f8feb
1769 Author: Peter Stuge <peter@stuge.se>
1770 Date:   Sun Nov 21 23:37:27 2010 +0100
1771
1772     configure.ac: Whitespace changes and trivial reordering
1773
1774 commit 44b85dabc3f4efe0918a598f981675aa3765cc26
1775 Author: Peter Stuge <peter@stuge.se>
1776 Date:   Sun Nov 21 23:10:35 2010 +0100
1777
1778     configure.ac: Quote AC_COMPILE_IFELSE() input
1779
1780 commit 19d5882c398e49a453ff78494db23b7f4d13c37c
1781 Author: Peter Stuge <peter@stuge.se>
1782 Date:   Sun Nov 21 23:09:02 2010 +0100
1783
1784     configure.ac: Define booleans to 1 when set, instead of an empty string
1785     
1786     This makes the generated config.h look a lot nicer.
1787
1788 commit c24649d796c8b5c97af79a41856422def2e593bc
1789 Author: Peter Stuge <peter@stuge.se>
1790 Date:   Sat Oct 30 22:28:59 2010 +0200
1791
1792     configure.ac: Clean up redundancy and fix LIBS on Linux
1793     
1794     LIBS, AM_LDFLAGS, OS_ conditionals and THREADS_POSIX had a bit of
1795     redundancy throughout the file, and on Linux LIBS ended up missing
1796     the -pthread flag.
1797
1798 commit 0bd4a4dd89ff64b99ab55bfc0c5782502c10c676
1799 Author: Peter Stuge <peter@stuge.se>
1800 Date:   Sat Feb 26 04:08:38 2011 +0100
1801
1802     configure.ac: Touch up Darwin and Cygwin OS messages
1803
1804 commit 16cf11a1213272afd616598fa3aba0941e66ec3c
1805 Author: Peter Stuge <peter@stuge.se>
1806 Date:   Sat Oct 30 22:13:05 2010 +0200
1807
1808     configure.ac: Do not use -pthread on Darwin
1809     
1810     It's not needed because Darwin has POSIX Threads in libc. Fixes #96.
1811
1812 commit a120747d561929682cd0276ea4c13fb22fad8554
1813 Author: Peter Stuge <peter@stuge.se>
1814 Date:   Sat Oct 30 22:07:37 2010 +0200
1815
1816     configure.ac: Check for poll.h, and for nfds_t on Darwin
1817     
1818     On Linux, assume nfds_t is always available.
1819     
1820     On Darwin, fall back to unsigned int when poll() exists but there
1821     is no nfds_t, such as on Mac OS X before 10.4.
1822     
1823     On Windows (both MinGW and Cygwin), always use unsigned int instead
1824     of nfds_t, and don't check for poll.h because we use our own poll()
1825     implementation.
1826
1827 commit 21d03d12f92c0d9bd7990861ca0ebf5009f82799
1828 Author: Nathan Hjelm <hjelmn@me.com>
1829 Date:   Tue Oct 5 20:08:08 2010 -0600
1830
1831     Darwin: Add support for control requests on endpoints other than 0
1832     
1833     Signed-off-by: Nathan Hjelm <hjelmn@me.com>
1834
1835 commit 9bfacd760b40f1137a7835198c6028cbdaddeb18
1836 Author: Nathan Hjelm <hjelmn@me.com>
1837 Date:   Tue Oct 5 23:11:50 2010 -0600
1838
1839     Darwin: Add more error checking for libusb_open()
1840     
1841     Now also check the CreateDeviceAsyncEventSource() return code for errors.
1842     
1843     Signed-off-by: Nathan Hjelm <hjelmn@me.com>
1844
1845 commit 478cd4a30728595fd742aa192d8149ee4216d4bc
1846 Author: Peter Stuge <peter@stuge.se>
1847 Date:   Wed Nov 3 21:46:53 2010 +0100
1848
1849     Core: libusb_get_next_timeout() must consider all flying transfers
1850     
1851     If transfer->flags indicated that a transfer had a timeout, but no
1852     timeout was actually set, then libusb_get_next_timeout() would look
1853     no further for a timeout, ignoring any transfers later in the list
1854     which had a timeout set.
1855     
1856     Since libusb has an internal 60 second timeout this bug could not
1857     cause complete lockup, but it could cause a 60 second timeout even
1858     when a transfer was submitted with a shorter timeout.
1859
1860 commit 7802e4a3e38bcefccf96ae510ec2c6b7a959b8b5
1861 Author: Ludovic Rousseau <rousseau@debian.org>
1862 Date:   Mon Nov 15 14:55:51 2010 +0100
1863
1864     Linux: Correctly catch read() errors for sysfs config descriptors
1865     
1866     read(2) returns ssize_t (signed) and not size_t (unsigned) or int.
1867     
1868     Silence "warning: comparison of unsigned expression < 0 is always false"
1869     and fix #75.
1870
1871 commit 4c7f3c8c3012bddba058afd2abdda792944fcda1
1872 Author: Peter Stuge <peter@stuge.se>
1873 Date:   Sun Jan 23 04:01:25 2011 +0100
1874
1875     Linux: Refactor cancellation into one function for all transfer types
1876
1877 commit 011f1f297bc134188fab9960da1b1b9f0bd541aa
1878 Author: Peter Stuge <peter@stuge.se>
1879 Date:   Sun Oct 17 08:19:56 2010 +0200
1880
1881     Linux: Refactor discarding of URBs into a function and return all errors
1882     
1883     The Linux backend did not always return errors according to the
1884     libusb_cancel_transfer() documentation.
1885
1886 commit 26246df19cb4d88954a5aa9ed5f6b859e451df85
1887 Author: Peter Stuge <peter@stuge.se>
1888 Date:   Sun Jan 23 04:01:01 2011 +0100
1889
1890     Linux: Set private number of URBs also for control transfers
1891
1892 commit 295c9d12e25bc2dbdd8b42bd67a1f7120f0631a1
1893 Author: Alan Stern <stern@rowland.harvard.edu>
1894 Date:   Sun Oct 17 06:57:06 2010 +0200
1895
1896     Linux: cancel URBs in reverse order
1897     
1898     In a multi-URB transfer, URBs should be cancelled in reverse order of
1899     submission. This prevents races that might otherwise occur (after URB N
1900     is cancelled, data may be transferred for URB N+1 before it too can be
1901     cancelled). Fixes #8.
1902
1903 commit 07df377a5df25e9c1811b554dc00eb8c40e5b995
1904 Author: Alan Stern <stern@rowland.harvard.edu>
1905 Date:   Sun Oct 17 04:17:32 2010 +0200
1906
1907     Linux: report correct value for urb->actual_length
1908     
1909     Transferred bytes are returned correctly by the kernel for every URB,
1910     even when an error occurs.  Hence they should always be included in
1911     the transfer statistics.  The same is true for isochronous packet
1912     length and status.
1913     
1914     [stuge: set itransfer->transferred so data is stored at correct offset]
1915
1916 commit b26db49208c7a6ef0a99645142af21ce80c57c22
1917 Author: Alan Stern <stern@rowland.harvard.edu>
1918 Date:   Fri Oct 22 11:13:34 2010 +0200
1919
1920     Linux: improve reporting of URB error status codes
1921     
1922     Fix the way overflow errors are handled (they can occur in any
1923     transaction, not just the last one in a transfer) and add tests
1924     for other commonly-occuring error statuses.
1925
1926 commit efc29733ad31f81883a7ac51a6cc6cda9ad4feb9
1927 Author: Alan Stern <stern@rowland.harvard.edu>
1928 Date:   Tue Oct 5 11:08:40 2010 -0400
1929
1930     Linux: improve detection of BULK_CONTINUATION kernel support
1931     
1932     Clarify the comments describing the BULK_CONTINATION flag, and improve
1933     the subroutine that checks whether the flag is supported by making it
1934     "future-proof", i.e., by working properly with kernel version numbers
1935     higher than 2.6.
1936
1937 commit bd267cf92269e0c4cd8eef795b91eefb2c63452e
1938 Author: Peter Stuge <peter@stuge.se>
1939 Date:   Mon Nov 22 05:14:00 2010 +0100
1940
1941     README: Update webpage URL and add Peter's email address
1942
1943 commit 845b715675703c5f1bc907f6302ece416c9f112c
1944 Author: Peter Stuge <peter@stuge.se>
1945 Date:   Wed Aug 4 07:30:22 2010 +0200
1946
1947     libusb is not just for Linux!
1948
1949 commit 67d9ef7b6877e17f2deec81cd41dc0948f6bed4b
1950 Author: Nathan Hjelm <hjelmn@me.com>
1951 Date:   Tue Oct 5 19:48:39 2010 -0600
1952
1953     Remove USBI_OS_HANDLES_TIMEOUT and fix int/isoc timeouts on Darwin
1954     
1955     Backends set USBI_TRANSFER_OS_HANDLES_TIMEOUT for transfers instead.
1956     Darwin only handles timeouts for bulk and control transfers, so the
1957     backend now sets that flag accordingly, making libusb core handle
1958     timeouts for interrupt and isochronous transfers. Fixes #31.
1959     
1960     Signed-off-by: Nathan Hjelm <hjelmn@me.com>
1961     
1962     [stuge: rework libusb_get_next_timeout() and enum usbi_transfer_flags]
1963     [stuge: fix typo; set USBI_TRANSFER_TIMED_OUT flag correctly]
1964
1965 commit 370922dfbe0964c0b8a0c1974bb1d7b85ac10607
1966 Author: Peter Stuge <peter@stuge.se>
1967 Date:   Sun Nov 14 03:14:00 2010 +0100
1968
1969     Silence "warning: suggest braces around empty body in an 'if' statement"
1970
1971 commit 0f85015bdf87f3bca0d86ed87c9b976176640922
1972 Author: Konrad Rzepecki <hannibal@astral.lodz.pl>
1973 Date:   Sat Nov 13 14:09:22 2010 +0100
1974
1975     Disallow libusb_get_string_descriptor_ascii() with index 0
1976     
1977     String descriptor 0 is the list of supported language IDs in the device,
1978     which can't have an ASCII representation. Calling the function with
1979     index 0 is thus not really useful. Fixes #43.
1980
1981 commit 3b41c31d3fa2c1f93649cc5fc0f59acbf3efd5a1
1982 Author: Ludovic Rousseau <rousseau@debian.org>
1983 Date:   Fri Mar 19 15:35:14 2010 +0100
1984
1985     Use const for the usbi_parse_descriptor() format string
1986     
1987     Constant strings should be "const char *" instead of "char *". Silence
1988     "discards qualifiers from pointer target type" warnings. Fixes #61.
1989
1990 commit 7f2e9f0776386997d2b4c4c47598ab88e3caeb7a
1991 Author: Hector Martin <hector@marcansoft.com>
1992 Date:   Wed Aug 25 03:21:57 2010 +0200
1993
1994     Linux: Fix usbfs/sysfs config descriptor handling on big-endian
1995     
1996     usbfs endian-swaps, sysfs doesn't, not the other way around. Fixes #51;
1997     descriptor endian parsing is backwards using sysfs on big-endian hosts.
1998     usbfs is untested.
1999     
2000     Signed-off-by: Hector Martin <hector@marcansoft.com>
2001     
2002     [stuge: checked against Documentation/usb/proc_usb_info.txt]
2003
2004 commit 2aa8984e59cf0f492e7fbebb8924f54f6160cc5e
2005 Author: Ludovic Rousseau <rousseau@debian.org>
2006 Date:   Tue Aug 17 20:53:04 2010 +0200
2007
2008     examples: #include <libusb.h> without directory name
2009     
2010     The libusb-1.0 directory name belongs in the compile command, e.g.
2011     via pkg-config --cflags. Fixes #58.
2012
2013 commit 7da756e09fd97efad2b35b5cee0e2b2550aac2cb
2014 Author: Ludovic Rousseau <rousseau@debian.org>
2015 Date:   Thu Jun 24 10:14:24 2010 +0200
2016
2017     Add missing argument to libusb_wait_for_event() documentation, fix #55
2018     
2019     In the libusb_wait_for_event() sample code in the section "Letting other
2020     threads do the work for you" the call to libusb_wait_for_event() was not
2021     updated by commit 1df713d622ab4f0b03aad72d903ac7beb8fb3b90, which added
2022     the libusb_context *ctx parameter to the function, so the sample code
2023     was broken until now.
2024
2025 commit 678c242705b29f9cb6cc421b5625a6485ae58047
2026 Author: Peter Stuge <peter@stuge.se>
2027 Date:   Sat Oct 16 14:22:30 2010 +0200
2028
2029     examples: Silence warnings about return value of fwrite()
2030
2031 commit 9cd9059bf9baac69a9d6c909f4c1e000592fa260
2032 Author: Peter Stuge <peter@stuge.se>
2033 Date:   Sat Oct 16 11:47:14 2010 +0200
2034
2035     Linux: Don't free() URBs prematurely on hardware error; fix #54
2036     
2037     When an URB in a multi-URB transfer had an error, handle_bulk_completion()
2038     would free all URBs and segfault once the next one completed, instead of
2039     cancelling the remaining URBs and cleaning up as usual.
2040     
2041     This is basically the patch from the ticket, plus some restructuring
2042     for increased readability of the function.
2043     
2044     Many thanks to Brian Shirley and National Instruments for finding and
2045     fixing this!
2046
2047 commit 116d34f608b02f4e14668450b158acf5db726f95
2048 Author: Pete Batard <pbatard@gmail.com>
2049 Date:   Tue Oct 5 12:43:41 2010 +0100
2050
2051     Windows: add support for filter drivers
2052     
2053     * precedence is driver > upper filter > lower filter, and defined
2054       in struct driver_lookup lookup from set_device_paths()
2055
2056 commit eb833fcd837e3aac2e497438b14c8612254c28ce
2057 Author: Pete Batard <pbatard@gmail.com>
2058 Date:   Tue Oct 5 12:36:49 2010 +0100
2059
2060     Windows: fix errcode shadow warning, and string and DLL_DECLARE fixes
2061     
2062     * use FormatMessageA, and overall improvement of windows_error_str()
2063     * use safe_strlen() always
2064     * better typing/init default
2065     * more explicit debug message for devices with no driver
2066
2067 commit 1feadb5f78e1d2cdfd2aaf0011e041c2848bae37
2068 Author: Pete Batard <pbatard@gmail.com>
2069 Date:   Tue Oct 5 12:29:32 2010 +0100
2070
2071     Windows: use IOCTLs for HID input, output and feature reports
2072     
2073     * fixes feature reports not providing actual read size
2074       (reported by Axel Rohde http://marc.info/?m=127033070021994)
2075     * removes the USE_HIDD_FOR_REPORTS macro
2076     * IOCTL usage inspired from HIDAPI by Alan Ott
2077
2078 commit d7c25451f4075d2a12eb5cbc91ff3de8c0292da0
2079 Author: Daniel Drake <dan@reactivated.net>
2080 Date:   Mon Oct 4 20:03:58 2010 +0100
2081
2082     Fix libtool version setting
2083     
2084     This was being set too early to take effect.
2085
2086 commit a6fb54e2eef4e393bd06829bc3bdc746ea9d41a6
2087 Author: Mike Frysinger <vapier@gentoo.org>
2088 Date:   Mon Oct 4 20:01:07 2010 +0100
2089
2090     Populate the pkg-config Libs.private field
2091
2092 commit a9b4065f048e750b7317f6434406fd528b69bf33
2093 Author: Mike Frysinger <vapier@gentoo.org>
2094 Date:   Fri Aug 20 00:09:46 2010 -0400
2095
2096     Linux: fix build failure when CLOCK_MONOTONIC does not exist
2097     
2098     This is not available on all platforms.
2099
2100 commit d192c5bd32736fde0080d756de6221287af34891
2101 Author: Daniel Drake <dan@reactivated.net>
2102 Date:   Mon Oct 4 18:45:18 2010 +0100
2103
2104     Update libtool version info
2105     
2106     With input from various people on the mailing list, update the libtool
2107     versioning info and start to update this on every release.
2108     
2109     The next libusb release will not need a change here. All following ones
2110     will.
2111
2112 commit e65f69a7ef3de357c867ddaac9598efe407078b6
2113 Author: Pete Batard <pbatard@gmail.com>
2114 Date:   Thu Aug 5 16:40:09 2010 +0100
2115
2116     Updated documentation for unsupported Darwin/Windows calls
2117
2118 commit c8bab4e19413d70c515a2eaf747a75b7f66fdc0b
2119 Author: Pete Batard <pbatard@gmail.com>
2120 Date:   Sun Sep 19 14:24:25 2010 +0100
2121
2122     Windows: Make libusb_pollfd() return error
2123     
2124     Windows does not have numerical file descriptors but does have the
2125     concept of event sources. Exposing these event sources will require
2126     some careful thought and design, to be completed later.
2127
2128 commit bd623f70d99fad8b975f8d4ee62ea4b1abf1272f
2129 Author: Daniel Drake <dan@reactivated.net>
2130 Date:   Sun Sep 19 14:21:01 2010 +0100
2131
2132     MinGW: Use --add-stdcall-alias linker option
2133     
2134     Naming of symbols inside the library is inconsistent on Windows:
2135     http://wyw.dcweb.cn/stdcall.htm
2136     
2137     Use this linker option to add aliases which add compatibility with
2138     the "MSVC DLL" platform when a DEF file is used. It also better matches
2139     the appearance of the Windows API itself.
2140
2141 commit 29f9f9e3af3340df6a955881a93caf9d2a6d08d6
2142 Author: Pete Batard <pbatard@gmail.com>
2143 Date:   Fri Aug 13 11:59:49 2010 +0100
2144
2145     Introduced calling convention (for Windows)
2146     
2147     Under Windows, a variety of compilers and configurations are available,
2148     meaning that the manner of parameter passing (e.g. registers vs stack)
2149     can vary.
2150     
2151     Match the Windows API calling convention and document this appropriately.
2152     This calling convention will be used regardless of the configuration of
2153     the user's development platform.
2154     
2155     The only user-level complication is that all functions used as libusb
2156     callbacks must use the same calling convention as libusb. The
2157     LIBUSB_CALL macro is provided to make this easy.
2158     
2159     Signed-off-by: Michael Plante <michael.plante@gmail.com>
2160     Signed-off-by: Pete Batard <pbatard@gmail.com>
2161     [dsd: slight change of strategy, add documentation]
2162
2163 commit be523f1fe7c136c3fca06ae9c96aff44a22482ba
2164 Author: Pete Batard <pbatard@gmail.com>
2165 Date:   Fri Aug 6 21:56:04 2010 -0600
2166
2167     Windows: fix string copy in sanitize_path
2168     
2169     The NULL byte was not being copied.
2170
2171 commit 7fd36af9f749ce8bf96f89cefd519a9f46825573
2172 Author: Pete Batard <pbatard@gmail.com>
2173 Date:   Fri Jul 30 00:30:31 2010 +0100
2174
2175     Windows: DuplicateHandle failure is not a warning
2176     
2177     This is because WinUSB handles are not duplicable, and generate a
2178     lot of these warnings.
2179
2180 commit 33cd2f68b4d500e852e354e5acae3d9a96a8ec26
2181 Author: Pete Batard <pbatard@gmail.com>
2182 Date:   Fri Jul 30 00:23:05 2010 +0100
2183
2184     removed trailing whitespaces
2185
2186 commit e47849afe9381c864683220eac9ce7bcf43f7883
2187 Author: Pete Batard <pbatard@gmail.com>
2188 Date:   Wed Aug 4 18:18:32 2010 -0600
2189
2190     Windows: Mark interfaces as unused when releasing
2191     
2192     Without this important cleanup, the autoclaim code could attempt to
2193     reuse an unclaimed interface as if it were already claimed.
2194
2195 commit b30ca141a0bdce26e7cfdd91d346e49051532ee7
2196 Author: Pete Batard <pbatard@gmail.com>
2197 Date:   Wed Aug 4 18:15:59 2010 -0600
2198
2199     Windows: fix device path string duplication
2200
2201 commit e8d7a89503d5655c4b04da718c6971e25ff48162
2202 Author: Nathan Hjelm <hjelmn@me.com>
2203 Date:   Mon Aug 2 21:27:38 2010 -0600
2204
2205     Darwin: Cache device configuration value
2206     
2207     Cache device configuration value to bring the Darwin backend more in
2208     line with the libusb spec. To handle buggy devices GetConfiguration is
2209     not called unless the device has more than one configuration.
2210
2211 commit fe5d1d2050f715ffa8cbd35a378ac969a1a01584
2212 Author: Xiaofan Chen <xiaofanc@gmail.com>
2213 Date:   Fri Jul 30 15:56:43 2010 +0100
2214
2215     Fix inconsistencies between prototypes and definitions
2216     
2217     This removes some warnings on cygwin regarding a name clash against
2218     the standard library "index" function.
2219
2220 commit 3b538c43e11b805a37d93b6283d270d5d5f0d1f5
2221 Author: Hoi-Ho Chan <hoiho.chan@gmail.com>
2222 Date:   Tue Jul 27 21:04:17 2010 -0600
2223
2224     Darwin: handle kIOReturnUnderrun
2225     
2226     This return code indicates that the device returned a data packet
2227     less than the max packet size. In libusb backend terms, this is
2228     a successful transfer.
2229
2230 commit 9a4249f8a104b98a15a7e3ba7ecae9a385ed9027
2231 Author: Pete Batard <pbatard@gmail.com>
2232 Date:   Sat Jul 10 17:51:13 2010 -0600
2233
2234     Add Windows support
2235     
2236     Via Cygwin/MinGW, libusb now has windows support.
2237     Thanks to contributors: Michael Plante, Orin Eman, Peter Stuge,
2238     Stephan Meyer, Xiaofan Chen.
2239
2240 commit d38dd5e3d2a872f7064eea084ddea8c33811dd7d
2241 Author: Hoi-Ho Chan <hoiho.chan@gmail.com>
2242 Date:   Sat Jul 24 13:48:00 2010 -0600
2243
2244     Darwin: write iso transfer details into correct packets
2245
2246 commit fbff5b4b665ff2ebc948162617cf7f4f5d2fabeb
2247 Author: Nathan Hjelm <hjelmn@me.com>
2248 Date:   Sat Jul 24 13:42:57 2010 -0600
2249
2250     Darwin: fix interface object leak
2251
2252 commit dffc09835d6860ae9b6a62c39af5be346188cb05
2253 Author: Nathan Hjelm <hjelmn@me.com>
2254 Date:   Sat Jul 24 13:41:03 2010 -0600
2255
2256     Darwin: clean up some debug messages
2257
2258 commit 946d1abbca397b8e88a1b0b4df176dcc5e3b7348
2259 Author: Nathan Hjelm <hjelmn@me.com>
2260 Date:   Sat Jul 24 13:39:16 2010 -0600
2261
2262     Darwin: Don't open devices during scan unless we have to unsuspend
2263
2264 commit 3b6d9ac82e2599cad7817d21e909a42275ddc4c4
2265 Author: Peter Stuge <peter@stuge.se>
2266 Date:   Fri Jun 25 08:08:13 2010 +0200
2267
2268     Linux: Handle early complete of multi-URB transfer
2269
2270 commit a516fcb99376686d2d0028e5ac69950c57a55b9e
2271 Author: Daniel Drake <dan@reactivated.net>
2272 Date:   Wed Jul 21 17:49:21 2010 -0600
2273
2274     Only compile dpfp examples when sigaction is available
2275     
2276     It's not available on MinGW.
2277
2278 commit a1d831ef82e1700f4ebb9df6ca5cef74be757c08
2279 Author: Aurelien Jarno <aurelien@aurel32.net>
2280 Date:   Tue May 25 09:32:19 2010 +0200
2281
2282     configure.ac: fix bashisms
2283
2284 commit 7211aba6e290f9805e911959b2a43a4b3ec56d4f
2285 Author: Daniel Drake <dan@reactivated.net>
2286 Date:   Fri Jun 25 12:01:58 2010 -0500
2287
2288     Only include sys/time.h on appropriate platforms
2289     
2290     This header doesn't exist on windows.
2291     For libusb, determine at configure-time if the header is available.
2292     For libusb.h, use gcc predefined macros to only include the header
2293     on platforms that need it.
2294
2295 commit b33c3cb9651459de1f3d549677cbac67a017a295
2296 Author: Daniel Drake <dan@reactivated.net>
2297 Date:   Tue Jun 22 18:45:38 2010 -0500
2298
2299     Linux: Fix log message commit
2300     
2301     Forgot to test this.
2302
2303 commit 139648d5723190734a51c1c66ddf41c3e87adf10
2304 Author: Ludovic Rousseau <rousseau@debian.org>
2305 Date:   Mon Jun 21 10:19:29 2010 +0200
2306
2307     Only initialize the default context when it is requested
2308
2309 commit 22d61cd0891d8304dfc1a70579cf154fd8e6644a
2310 Author: Daniel Drake <dan@reactivated.net>
2311 Date:   Tue Jun 22 18:20:23 2010 -0500
2312
2313     Linux: fix log message that was being unconditionally sent to stderr (#44)
2314     
2315     This message was put in place to aid libusb-compat-0.1 users, who
2316     may run into the change that libusb-0.1 allowed you to usb_open() a
2317     device that you don't have write access to, but libusb-1.0 does not.
2318     
2319     As explained on the ticket this change is dangerous so it should go through
2320     the usual logging mechanism. I also added a similar regular log message
2321     to libusb-compat-0.1.
2322
2323 commit 82065a2c5e9d5ad0b2bb28792d12462f2fa150f0
2324 Author: Ludovic Rousseau <rousseau@debian.org>
2325 Date:   Thu Jun 10 18:41:27 2010 +0200
2326
2327     Fix 2 documentation typos
2328
2329 commit 351c062aacdde0b0fa7972ee9b7c6b355dcee110
2330 Author: Ludovic Rousseau <rousseau@debian.org>
2331 Date:   Wed Apr 21 16:49:33 2010 +0200
2332
2333     add AM_MAINTAINER_MODE
2334
2335 commit a7c056c14867e1cc3ef83682f2706cdbdca7c4ce
2336 Author: Pete Batard <pbatard@gmail.com>
2337 Date:   Thu Jun 10 17:00:25 2010 -0500
2338
2339     Factorize event handler interruption code
2340     
2341     This will be additionally used by the windows backend which modifies
2342     the fd set frequently.
2343
2344 commit fc0af8e3f76925ad09e0fbc6d233d500753ee375
2345 Author: Pete Batard <pbatard@gmail.com>
2346 Date:   Sat Jun 5 12:14:19 2010 -0500
2347
2348     Abstract low-level event handler operations
2349     
2350     The Windows backend uses something other than UNIX file descriptors
2351     for event handling. Abstract out the operations to allow for this.
2352
2353 commit 64383fb5b55a74b706967836e81cef61e57df86a
2354 Author: Pete Batard <pbatard@gmail.com>
2355 Date:   Tue Jun 1 11:38:14 2010 +0100
2356
2357     fixes the possibility of using a broken timercmp on Windows
2358     
2359     Microsoft's implementation of timercmp does not work for >= or <=.
2360
2361 commit f6d60a9a8fcf06629812da886e3a5de592624b61
2362 Author: Pete Batard <pbatard@gmail.com>
2363 Date:   Mon Feb 1 19:26:13 2010 +0000
2364
2365     Switched to standard int pointer type for windows 64-bit compat
2366     
2367     On 64-bit Windows a pointer is 64 bit, but long is still 32 bit for
2368     backwards compatibility.
2369     uintptr_t nicely hides this difference and also works on Linux.
2370     
2371     [dsd: add appropriate include]
2372
2373 commit a2fa855ce3795e31905b255267874af0603168bc
2374 Author: Michael Plante <michael.plante@gmail.com>
2375 Date:   Tue Mar 9 16:39:46 2010 -0600
2376
2377     added doxygen, dpfp, msvc, and xusb stuff to gitignore
2378
2379 commit 845d96a9c30b6f053208ed6b5b5d4ad1655e2026
2380 Author: Daniel Drake <dan@reactivated.net>
2381 Date:   Mon May 31 19:56:34 2010 -0500
2382
2383     Add reference counting to default context
2384     
2385     Michael Plante pointed out that if 2 users call libusb_init(NULL) within
2386     a process, we end up creating 2 default contexts, one of which is lost.
2387     
2388     Add reference counting so that the default context is reused and
2389     destroyed only after the last user.
2390
2391 commit 0e77f017fd3d1bdec4aced0429a380d3e434081b
2392 Author: Daniel Drake <dan@reactivated.net>
2393 Date:   Thu May 27 19:24:49 2010 -0400
2394
2395     Fix libusb_init() error handling
2396     
2397     9996ccaed7 introduced a problem in that mutexes could be destroyed
2398     in the error handling codepath before they had been created.
2399     Pointed out by Michael Plante.
2400
2401 commit b03de9d07bf9a6b0c4e6cba9ec06b5271a22e621
2402 Author: Michael Plante <michael.plante@gmail.com>
2403 Date:   Mon May 24 11:57:10 2010 -0300
2404
2405     Modify log functions to compile with MSVC6
2406     
2407     MSVC6 does not support variadics.
2408
2409 commit aa77b02da65afb0332b9e6853dae9e4dcda00bfa
2410 Author: Pete Batard <pbatard@gmail.com>
2411 Date:   Sun Feb 14 19:46:05 2010 -0600
2412
2413     Add type parameter to the list_for_each_entry() and _safe() macros
2414     
2415     typeof() is a GCC extension, not supported by target compilers such
2416     as MSVC.
2417
2418 commit b92b16f437079208c8dfb1dc2380893846a07ee9
2419 Author: Daniel Drake <dan@reactivated.net>
2420 Date:   Wed May 19 17:37:29 2010 -0300
2421
2422     Fix a usbi_pollfd leak in error path
2423     
2424     I accidently missed this when applying Pete Batard's earlier patch.
2425     Pointed out by Michael Plante.
2426
2427 commit 8aceb5c99056aaed6e6f2db1b303817e37e9fe8c
2428 Author: Pete Batard <pbatard@gmail.com>
2429 Date:   Sun Feb 14 19:47:30 2010 -0600
2430
2431     Rename all interface parameters to usb_interface or interface_number
2432     
2433     Remove the use of the ambiguous "interface" where possible without
2434     breaking the API.
2435     'interface' is a preprocessor #define already associated with COM on Windows,
2436     that can cause a conflict as soon as windows.h is included.
2437     
2438     There are a few more places where interface is still used, which should
2439     be changed for libusb-2.0
2440
2441 commit d7031ee8e1c449af23b2674fe18d9fc652c9bd80
2442 Author: Pete Batard <pbatard@gmail.com>
2443 Date:   Mon May 17 19:30:27 2010 -0300
2444
2445     Stricter types and casts
2446
2447 commit 9996ccaed740f8fcec4287a478ccaaa573f9865a
2448 Author: Pete Batard <pbatard@gmail.com>
2449 Date:   Mon May 17 19:16:54 2010 -0300
2450
2451     Fixes to error handling and exit codepaths
2452     
2453     Various locks and things were being leaked/left open when handling
2454     errors and during deinitialization.
2455     
2456     [dsd: small tweaks]
2457
2458 commit 371ca4e440894bd1c845971418aa24c9d3919e63
2459 Author: Nathan Hjelm <hjelmn@me.com>
2460 Date:   Thu May 13 19:38:05 2010 -0300
2461
2462     Darwin: Define IO_OBJECT_NULL if not already defined
2463     
2464     Needed on Mac OSX 10.3
2465
2466 commit 7ba92cff94bbba19284749c614c26141d3023f37
2467 Author: Hans Ulrich Niedermann <hun@n-dimensional.de>
2468 Date:   Fri Jan 29 12:08:52 2010 +0100
2469
2470     libusb_cpu_to_le16: macro->static inline function
2471     
2472     The libusb_cpu_to_le16 macro was a ({ ... }) expression, which
2473     generates the following compiler warning every time it is used,
2474     (and that is several times for every #include <libusb.h>):
2475     
2476     libusb.h:880: warning: ISO C forbids braced-groups within expressions
2477     
2478     With this patch, #include <libusb.h> stops generating compiler
2479     warnings on gcc 4.4.
2480     
2481     As libusb.h heavily relies on the use of static inline functions
2482     those can be relied on to work properly, and there should not be
2483     any significant difference in the code the compiler generates.
2484
2485 commit 3473ac6c6fab32202d02d87679ebdb24e7d2df98
2486 Author: Francesco <francesco.montorsi@gmail.com>
2487 Date:   Tue Mar 9 16:35:35 2010 -0600
2488
2489     Add libusb_strerror() to get short error message in English from enum
2490     
2491     [dsd: small tweaks]
2492
2493 commit 5b69f3b7b0610d5f518954792ddc93332a41d292
2494 Author: Michael Plante <michael.plante@gmail.com>
2495 Date:   Thu Feb 25 19:39:22 2010 -0600
2496
2497     Fix libusb_device::lock memory leak
2498
2499 commit a636df4ca1b87ed3094a87828c022092a80ba613
2500 Author: Pete Batard <pbatard@gmail.com>
2501 Date:   Wed May 12 21:46:31 2010 -0300
2502
2503     Whitespace cleanup
2504
2505 commit 23b5db8b3e353176dfa0635bfb6f0e2658f6e3de
2506 Author: Peter Stuge <peter@stuge.se>
2507 Date:   Tue May 11 00:51:43 2010 +0100
2508
2509     Add internal abstraction for POSIX Threads
2510     
2511     This prepares for a Windows backend without dependency on pthreads-w32.
2512     
2513     pthread_* is renamed to usbi_* and PTHREAD_* to USBI_*.
2514     
2515     A usbi_mutex_static_t and usbi_mutex_static_lock() and _unlock() are
2516     introduced for statically initialized mutexes, since they may be
2517     implemented using other types when pthreads mutexes aren't used.
2518     
2519     Move -pthread from libusb/Makefile.am to host-specific THREAD_CFLAGS in
2520     configure.ac. This will enable optional use of -lpthread for cygwin.
2521     
2522     [dsd: minor tweaks, and roll in a change based on patches from Pete
2523     Batard to only build dpfp_threaded example when we're using pthreads]
2524
2525 commit a04cbb0095a78aeed3f65aaf06c46069d0ac184a
2526 Author: Daniel Drake <dan@reactivated.net>
2527 Date:   Tue May 4 19:01:59 2010 -0300
2528
2529     v1.0.8 release
2530
2531 commit 53b47299531974fa8901b74a163f3c8ebae4eec9
2532 Author: Daniel Drake <dan@reactivated.net>
2533 Date:   Thu Apr 22 18:12:51 2010 -0300
2534
2535     Linux: don't set SHORT_NOT_OK on bulk out URBs (#20
2536     
2537     Setting this flag is illegal, and the behaviour we're looking for
2538     is already in place for host-to-device transfers without this flag.
2539
2540 commit 1519828b7ee1fce46d4c51fc097d52e01b8e0bb4
2541 Author: Daniel Drake <dan@reactivated.net>
2542 Date:   Tue Apr 20 20:14:09 2010 -0300
2543
2544     Linux: Handle failure to read active configuration during enumeration
2545
2546 commit 45168627cc15aee3875192f34286110dbbd27095
2547 Author: Nathan Hjelm <hjelmn@me.com>
2548 Date:   Tue Apr 20 19:43:06 2010 -0300
2549
2550     Darwin: don't reuse cached descriptors during enumeration
2551     
2552     Descriptor reuse was causing scans to return invalid information when
2553     the device at a location has changed.
2554
2555 commit 3af329db6dcbfb96d24867c757f9e125e5b7b0e5
2556 Author: Daniel Drake <dan@reactivated.net>
2557 Date:   Mon Apr 19 19:36:55 2010 -0300
2558
2559     v1.0.7 release
2560
2561 commit ceb8cacd6d2a4189de0db2ee46d45217511c69be
2562 Author: Daniel Drake <dan@reactivated.net>
2563 Date:   Mon Apr 19 19:31:12 2010 -0300
2564
2565     Document that fd set contents are an internal implementation detail (#36)
2566
2567 commit 9bea500b5747bdeba7c8251d45608558e71a1db5
2568 Author: Martin Koegler <mkoegler@auto.tuwien.ac.at>
2569 Date:   Mon Apr 19 19:22:46 2010 -0300
2570
2571     Linux: correct config descriptor endianness fix
2572     
2573     The seek_to_next_config codepath deals with both sysfs and usbfs;
2574     make sure we only convert values in the usbfs path.
2575
2576 commit 02df59a309e813c50b8230de99e69fb4e1814279
2577 Author: Martin Koegler <mkoegler@auto.tuwien.ac.at>
2578 Date:   Mon Apr 5 17:11:32 2010 +0200
2579
2580     Linux: Fix endianness handling of usbfs config descriptors (#27)
2581     
2582     driver/usb/core/devio.c function usbdev_read translate the follwing files
2583     to CPU endianess:
2584     
2585     le16_to_cpus(&temp_desc.bcdUSB);
2586     le16_to_cpus(&temp_desc.idVendor);
2587     le16_to_cpus(&temp_desc.idProduct);
2588     le16_to_cpus(&temp_desc.bcdDevice);
2589     
2590     All other data is passed without any change.
2591     
2592     libusb/os/linux_usbfs.c calls usbi_parse_descriptor with host_endian=1
2593     for config descriptors. According to the kernel code, they must be
2594     processed with host_endian=0, as they are not translated by the kernel.
2595     
2596     Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
2597
2598 commit ec303b01a5d4e51c000a283853af65059fa62285
2599 Author: Nathan Hjelm <hjelmn@mac.com>
2600 Date:   Tue Mar 23 16:22:08 2010 -0600
2601
2602     Darwin: fix enumeration of devices with non-consecutive addresses (#23)
2603
2604 commit cd809e2f7cee3874b7ae16b2c482a8b63a90e4a5
2605 Author: Bastien Nocera <hadess@hadess.net>
2606 Date:   Mon Mar 8 10:50:51 2010 +0000
2607
2608     Add more interface classes
2609     
2610     As used in bluez.
2611
2612 commit 1ce4aa67d849f5cad8a21072dc1c7b42158ce817
2613 Author: Nathan Hjelm <hjelmn@mac.com>
2614 Date:   Thu Mar 18 11:32:32 2010 -0600
2615
2616     Darwin: Cleanup async callback code, catch request timeouts
2617
2618 commit 68af9f8d731f700267335941a8214d34ab518cc8
2619 Author: Nathan Hjelm <hjelmn@mac.com>
2620 Date:   Thu Mar 18 11:31:46 2010 -0600
2621
2622     Darwin: fix endianness of control setup packet
2623     
2624     IOUSBLib expects the control request to be in host byte order.
2625     Swap the request into host byte order.
2626
2627 commit cfce4d127184f4e4f334976151a0f80594bb5e22
2628 Author: Nathan Hjelm <hjelmn@mac.com>
2629 Date:   Mon Feb 15 14:10:08 2010 -0600
2630
2631     Darwin: fix memory leak in process_device
2632     
2633     Credit to Mike Colagrosso for finding this bug.
2634
2635 commit 161893cfbefefe315f657677705abe090fc526f2
2636 Author: Nathan Hjelm <hjelmn@mac.com>
2637 Date:   Mon Feb 15 14:09:19 2010 -0600
2638
2639     Darwin: use logging functions
2640     
2641     Use usbi_warn, usbi_err, and usbi_info instead of _usbi_log.
2642
2643 commit 2a72f38548208044dc3aa62681419d006c35732d
2644 Author: Nathan Hjelm <hjelmn@mac.com>
2645 Date:   Mon Feb 15 14:07:44 2010 -0600
2646
2647     Darwin: support multiple calls to libusb_init
2648     
2649     Credit to Orin Eman for finding this bug.
2650
2651 commit a4186794d87124503db2f5f51f51ce90bb95daa7
2652 Author: Daniel Drake <dan@reactivated.net>
2653 Date:   Sun Nov 22 17:20:53 2009 +0000
2654
2655     v1.0.6 release
2656
2657 commit 8392ff22136fccaf1e15d186157609b8dd127bc5
2658 Author: Ludovic Rousseau <rousseau@debian.org>
2659 Date:   Sun Oct 25 10:06:41 2009 +0100
2660
2661     lsusb example: make print_devs() static
2662     
2663     lsusb.c:26: warning: no previous prototype for â€˜print_devs’
2664
2665 commit 9cc6bfaa15239bb6db1c1570b9beb6df2f848951
2666 Author: Ludovic Rousseau <rousseau@debian.org>
2667 Date:   Sun Oct 25 10:05:10 2009 +0100
2668
2669     Darwin: fix warning in darwin_error_str()
2670     
2671     os/darwin_usb.c:63: warning: return discards qualifiers from pointer
2672     target type
2673
2674 commit 4c706d2fb6b2c43b10d72ac5dff51cac4d939f1a
2675 Author: Nathan Hjelm <hjelmn@mac.com>
2676 Date:   Sat Nov 21 17:06:43 2009 +0000
2677
2678     Darwin: allow devices to be opened multiple times
2679     
2680     Allows libusb applications to access multiple interfaces of the same
2681     device in the same application.
2682     
2683     Also fixes a set alt interface bug.
2684
2685 commit 0232fc559cdacb9561f982dd6d28feb4435b3e4e
2686 Author: Daniel Drake <dan@reactivated.net>
2687 Date:   Sat Nov 21 17:01:32 2009 +0000
2688
2689     Increase libusb_handle_events() timeout to 60 seconds
2690     
2691     The internal timing seems to be working, this will be a better test of
2692     it before we make this timeout unlimited.
2693
2694 commit 0bd7ef5d8697973a026c36c15d6276177b4ec4ea
2695 Author: Daniel Drake <dan@reactivated.net>
2696 Date:   Sat Nov 21 16:57:25 2009 +0000
2697
2698     Refine timerfd header check (#18)
2699     
2700     Require glibc-2.9 for the working timerfd support.
2701
2702 commit 90d8fcab9018b8e6887a7e0592d1e5f692117234
2703 Author: Daniel Drake <dsd@gentoo.org>
2704 Date:   Sun Nov 15 12:17:13 2009 +0000
2705
2706     v1.0.5 release
2707
2708 commit 11d591058e3f105b0e90c23bbf58b18de691e690
2709 Author: Daniel Drake <dsd@gentoo.org>
2710 Date:   Sat Nov 7 10:43:59 2009 +0000
2711
2712     Update documentation about early completion caveats
2713
2714 commit f796c9528a71aa55326b6f0c9c7c5ec073d2bf92
2715 Author: Ludovic Rousseau <rousseau@debian.org>
2716 Date:   Sun Oct 25 09:59:51 2009 +0100
2717
2718     Add libusb_get_max_iso_packet_size() to libusb.h
2719     
2720     core.c:777: warning: no previous prototype for 'libusb_get_max_iso_packet_size'
2721
2722 commit 4783008b7e711de9cb31631e60dda995f44068de
2723 Author: Daniel Drake <dsd@gentoo.org>
2724 Date:   Wed Oct 28 20:33:49 2009 +0545
2725
2726     Use timerfd for timeout handling
2727     
2728     Use a new file descriptor from the timerfd system calls to handle
2729     timeouts. On supported systems, this means that there is less hassle
2730     figuring out when the poll() timeout should be, since
2731     libusb_get_next_timeout() will always return 0 and the timeout events will
2732     be triggered as regular activity on the file descriptor set.
2733     
2734     Add API function libusb_pollfds_handle_timeouts() to detect whether
2735     you're on a platform with the timing headache, and flesh out the
2736     surrounding documentation.
2737
2738 commit 9b120c2b3735566533c179aa8ca758fe45899a38
2739 Author: Daniel Drake <dsd@gentoo.org>
2740 Date:   Sat Nov 7 10:03:07 2009 +0000
2741
2742     Use AM_SILENT_RULES for building
2743
2744 commit ef6ea6c3ae38e4524f10e16e8cb88177d39c4826
2745 Author: Daniel Drake <dsd@gentoo.org>
2746 Date:   Fri Nov 6 21:54:08 2009 +0000
2747
2748     v1.0.4 release
2749
2750 commit 217f57617e0cff0d1bd6d726b243f04c6b179773
2751 Author: David Moore <dcm@acm.org>
2752 Date:   Fri Nov 6 21:37:25 2009 +0000
2753
2754     Linux: Add support for the new URB_BULK_CONTINUATION flag
2755     
2756     Add support for the new USBDEVFS_URB_BULK_CONTINUATION flag to libusb.
2757     
2758     This flag, which is expected to be available in usbfs starting with
2759     kernel 2.6.32, allows the kernel to cancel multiple URBs upon receipt
2760     of a short packet.  This capability allows libusb to preserve data
2761     integrity of large bulk transfers that are split into multiple URBs.
2762     Without this support, these URBs must be canceled in userspace upon
2763     receipt of a short packet, a race condition against future transfers
2764     which might partially fill these canceled URBs.
2765     
2766     This patch automatically detects whether a supported kernel is present
2767     and enables the use of the flag when possible.
2768     
2769     [dsd: tweaks to supported kernel detection, and some inline
2770      documentation of this mechanism]
2771
2772 commit 69830057547396f893f0d7b3125a05d016313b10
2773 Author: Daniel Drake <dsd@gentoo.org>
2774 Date:   Wed Oct 28 15:13:22 2009 +0545
2775
2776     Transfer locking
2777     
2778     At least on Linux, there were some possible races that could occur if
2779     a transfer is cancelled from one thread while another thread is handling
2780     an event for that transfer, or for if a transfer completes while it is
2781     still being submitted from another thread, etc.
2782     
2783     On the global level, transfers could be submitted and cancelled at the
2784     same time.
2785     
2786     Fix those issues with transfer-level locks.
2787
2788 commit 98f1b30d24359cb3185051b8df9ebb663cc10369
2789 Author: Daniel Drake <dsd@gentoo.org>
2790 Date:   Mon Sep 14 08:01:24 2009 +0100
2791
2792     Clarify that timeout 0 means unlimited timeout
2793
2794 commit 858684f0dd25921e09565034a88709dbf6f6c61b
2795 Author: Daniel Drake <dsd@gentoo.org>
2796 Date:   Fri Sep 11 22:09:12 2009 +0100
2797
2798     Linux: more flexibility with monotonic clock
2799     
2800     Some users have reported that CLOCK_MONOTONIC does not work on their
2801     systems - I suspect it is available on x86 but perhaps not some
2802     of the more uncommon architectures. We should fall back on
2803     CLOCK_REALTIME in these cases.
2804     
2805     Also, CLOCK_MONOTONIC_RAW seems even more monotonic, so we should use
2806     that if it is available.
2807     
2808     We now test different clock IDs during initialization to find the
2809     best one that works.
2810
2811 commit fe0d8dce1ed704915d501e7da700440c78144211
2812 Author: Nathan Hjelm <hjelmn@mac.com>
2813 Date:   Fri Sep 11 18:00:29 2009 +0100
2814
2815     Darwin: handle overflows
2816
2817 commit f46716f42040986203fa6e873bfdabe1be2900ec
2818 Author: Daniel Drake <dsd@gentoo.org>
2819 Date:   Thu Aug 27 21:14:54 2009 +0545
2820
2821     v1.0.3 release
2822
2823 commit 5b489b8b2a5aba7b8b804e5af6d2628735548238
2824 Author: Toby Peterson <toby@macports.org>
2825 Date:   Sun Aug 23 10:04:59 2009 +0545
2826
2827     Darwin: 64-bit type fixes
2828
2829 commit ad8ae04d0b52009af0b1180e005f7554d2bbb26c
2830 Author: Nathan Hjelm <hjelmn@mac.com>
2831 Date:   Sun Aug 23 10:02:55 2009 +0545
2832
2833     Darwin: fix crash when reading descriptors after close
2834     
2835     Fix a crash which occurs if the user does the following sequence on a
2836     device: open, close, get_configuration_descriptor.
2837
2838 commit 45ae2aecf5512dcff059b2a416534e81c6a00c88
2839 Author: Daniel Drake <dsd@gentoo.org>
2840 Date:   Sat Aug 1 13:55:15 2009 +0545
2841
2842     move bug info to bug tracker
2843     
2844     Protection needed: http://www.libusb.org/ticket/4
2845     Losing data: fixed in previous commit
2846
2847 commit 126129e174062c2a27423817a459e5113f777789
2848 Author: Daniel Drake <dsd@gentoo.org>
2849 Date:   Thu Jul 9 22:09:04 2009 +0100
2850
2851     Linux: try harder not to lose any data
2852     
2853     We would previously lose any data that was present on a cancelled URB.
2854     Work harder to make sure this doesn't happen.
2855
2856 commit 0334ee642b47dfe1ca9db64b22e7702ea14b3f09
2857 Author: Daniel Drake <dsd@gentoo.org>
2858 Date:   Sun Jun 28 19:49:10 2009 +0100
2859
2860     Add libusb_get_max_iso_packet_size()
2861     
2862     As pointed out by Dennis Muhlestein, libusb_get_max_packet_size()
2863     doesn't really do what the documentation might suggest because it
2864     does not consider the number of transaction opportunities per
2865     microframe.
2866     
2867     Add a new function to do what is useful for isochronous I/O.
2868
2869 commit 615f18e64e96ae4ecc8e43d0de00933059a5209a
2870 Author: Daniel Drake <dsd@gentoo.org>
2871 Date:   Sat Jun 20 22:33:21 2009 +0100
2872
2873     Linux: fix sending of zero length bulk packets
2874     
2875     Note that there are is a kernel bug preventing this from working
2876     properly at the moment, even after this fix.
2877
2878 commit 86f79fbf61c2018bdf009c7ebf92b38f3a16fd0c
2879 Author: Nathan Hjelm <hjelmn@mac.com>
2880 Date:   Fri Jun 19 22:18:44 2009 +0100
2881
2882     Darwin: Don't cancel transfers on timeout
2883     
2884     ...because the OS does this for us.
2885
2886 commit d4bd9ed4de19a9c766f7a23eea8c852cdd61c18f
2887 Author: Daniel Drake <dsd@gentoo.org>
2888 Date:   Sun Jun 14 19:23:21 2009 +0100
2889
2890     Don't terminate enums with commas
2891     
2892     g++ -pedantic doesn't like this
2893     Reported by Eberhard Mattes
2894
2895 commit 8be256082eb9bd8e243d89529f742926bb29a21b
2896 Author: Daniel Drake <dsd@gentoo.org>
2897 Date:   Sat Jun 13 17:19:07 2009 +0100
2898
2899     v1.0.2 release
2900
2901 commit 060e006e663fd59c281be29b71eb197e02b210e8
2902 Author: Daniel Drake <dsd@gentoo.org>
2903 Date:   Wed Jun 10 21:42:05 2009 +0100
2904
2905     Linux: fix config descriptor parsing on big-endian systems
2906     
2907     Multi-byte fields in the configuration descriptors that come back from
2908     usbfs are always in bus endian format.
2909     
2910     Thanks to Joe Jezak for help investigating and fixing this.
2911
2912 commit c4a905022f684da9a4a853eb9232a81a53df2652
2913 Author: Nathan Hjelm <hjelmn@mac.com>
2914 Date:   Sun Jun 7 22:29:35 2009 +0100
2915
2916     Darwin: improve handling of disconnected devices
2917
2918 commit 6b69f54451762ef590b9c938ab000c07cf9099a3
2919 Author: Nathan Hjelm <hjelmn@mac.com>
2920 Date:   Sun Jun 7 22:26:37 2009 +0100
2921
2922     Darwin: fix parsing of config descriptors
2923     
2924     This was a confusion between configuration numbers and zero-based
2925     configuration indexes.
2926
2927 commit 2b3a9ffa776b383cb2dbc3c55e490e32e4c3c22b
2928 Author: Daniel Drake <dsd@gentoo.org>
2929 Date:   Sun Jun 7 22:19:53 2009 +0100
2930
2931     Eliminate -Wsign-compare compiler warnings
2932     
2933     This was due to an API inconsistency which can be safely worked around.
2934     Hopefully we'll remember to fix the API next time we come to break
2935     things.
2936
2937 commit cad5cb55c37137e94e35c74fdabfe42a5cbd229b
2938 Author: David Moore <dcm@acm.org>
2939 Date:   Wed May 27 23:15:54 2009 -0700
2940
2941     Make synchronous transfer APIs robust against signal interruption
2942     
2943     libusb_control_transfer and libusb_bulk_transfer are designed to be
2944     synchronous such that control is not returned until the transfer
2945     definitively succeeds or fails.  That assumption is violated if a signal
2946     interrupts these functions because there is no way for the application
2947     to continue waiting for the transfer without resubmitting it.  This
2948     patch changes these synchronous APIs so they do not abort in the case of
2949     a signal interruption.
2950     
2951     Signed-off-by: David Moore <dcm@acm.org>
2952
2953 commit b501795985a23109f176d296e7b544b4c6354528
2954 Author: Alex Vatchenko <alex@fabulatech.com>
2955 Date:   Thu May 28 15:58:50 2009 -0400
2956
2957     pre-gcc-3.4 compatibility
2958     
2959     The -fvisibility and -Wno-pointer-sign options are not available on
2960     old GCC versions.
2961
2962 commit 00bb2805e994887f0a754a825c3ce03d22393386
2963 Author: Daniel Drake <dsd@gentoo.org>
2964 Date:   Tue May 26 15:53:26 2009 -0400
2965
2966     Fix memory leak in config descriptor parsing
2967     
2968     Pointed out by Martin Koegler.
2969
2970 commit 068ff5b8a83fec0a9a91c80535a25b89a9ae64e8
2971 Author: Daniel Drake <dsd@gentoo.org>
2972 Date:   Tue May 12 19:20:51 2009 -0400
2973
2974     Update AUTHORS
2975
2976 commit aa24c04e4043e39674b59ff0d302b2365cd0078f
2977 Author: Daniel Drake <dsd@gentoo.org>
2978 Date:   Tue May 12 19:03:37 2009 -0400
2979
2980     v1.0.1 release
2981
2982 commit 44767677447fae4267131f99c591b14117486cac
2983 Author: Daniel Drake <dsd@gentoo.org>
2984 Date:   Tue May 12 19:01:44 2009 -0400
2985
2986     Add BUGS file
2987     
2988     Probably missed a couple of outstanding issues
2989
2990 commit e0365a6f22e0e7f330ac931df031cf6f17f453d1
2991 Author: Nathan Hjelm <hjelmn@mac.com>
2992 Date:   Sun Mar 22 21:13:29 2009 -0400
2993
2994     Darwin: get_config_descriptor bugfixes
2995
2996 commit 5fd0e8478240fece646a58a3c6114001a73be99f
2997 Author: Daniel Drake <dsd@gentoo.org>
2998 Date:   Wed Feb 25 12:33:33 2009 -0300
2999
3000     Fix compilation of Darwin backend
3001     
3002     My fault. Reported by ihryamzik@gmail.com
3003
3004 commit b49f6bf5c910d0fd694ecf165d7927673707bff9
3005 Author: Nathan Hjelm <hjelmn@mac.com>
3006 Date:   Mon Feb 16 21:39:29 2009 -0300
3007
3008     Darwin backend
3009
3010 commit d859158581e9a3250f36cdeeb8ea67cda04053bd
3011 Author: Nathan Hjelm <hjelmn@mac.com>
3012 Date:   Mon Feb 16 21:30:49 2009 -0300
3013
3014     Make endianness macros endian-independent
3015     
3016     Implementation suggested by David Moore. Needed for proper universal
3017     code support on Darwin.
3018
3019 commit 9196f58bdc8b9e967261df39865215faa5d39cfa
3020 Author: Nathan Hjelm <hjelmn@mac.com>
3021 Date:   Mon Feb 16 21:25:18 2009 -0300
3022
3023     Abstract clock reading into OS layer
3024     
3025     This will differ on Linux and Darwin, at least.
3026     
3027     [dsd: minor style tweaks]
3028
3029 commit e91207860cac09b3afaafc4c14221b78d585c59a
3030 Author: Daniel Drake <dsd@gentoo.org>
3031 Date:   Mon Feb 16 21:20:28 2009 -0300
3032
3033     Fix endianness in device descriptors
3034     
3035     Pointed out by Nathan Hjelm.
3036
3037 commit ccf6d3d2f6acf9b9a1cb5e1f1b03f382ae509b17
3038 Author: Nathan Hjelm <hjelmn@mac.com>
3039 Date:   Mon Feb 16 21:13:52 2009 -0300
3040
3041     Only link with librt on Linux
3042     
3043     [dsd: tweak configure.ac change]
3044
3045 commit 894539931e4b4bd85708fe98b956049243cd6fb0
3046 Author: Hans Ulrich Niedermann <hun@n-dimensional.de>
3047 Date:   Mon Jan 26 00:31:48 2009 +0100
3048
3049     API docs: describe libusb_transfer_cb_fn type
3050     
3051     Add some text describing the libusb_transfer_cb_fn function type
3052     with the semantics I have gathered from reading other parts of
3053     the API docs, referring to the proper section for more details.
3054     
3055     [dsd: tweaked the description slightly]
3056
3057 commit abe34a2656f8f9f21e53603796c536585e6233ef
3058 Author: Hans Ulrich Niedermann <hun@n-dimensional.de>
3059 Date:   Sun Jan 25 18:21:59 2009 +0100
3060
3061     Make empty array in struct compatible with C99
3062     
3063     If the compiler is known to be running in C99 mode,
3064     use "flexible array members" ("foo[]").
3065     
3066     If the compiler is running in any other mode, continue
3067     using the non-standard but widely common "foo[0]" syntax.
3068
3069 commit 620075c7400764d9bb539b5c02065c45c2e8251e
3070 Author: Hans Ulrich Niedermann <hun@n-dimensional.de>
3071 Date:   Sun Jan 25 18:20:45 2009 +0100
3072
3073     Avoid signedness errors in API docs example code
3074
3075 commit c754ae294cfe96ec4738d6641137c9e6c56330c7
3076 Author: Daniel Drake <dsd@gentoo.org>
3077 Date:   Sat Jan 17 00:25:40 2009 +0000
3078
3079     Decrement poll() result when internal pipe has been handled
3080     
3081     When we receive data on the internal control pipe, we need to correctly
3082     decrement the number of ready file descriptors before passing on the
3083     remaining work to the OS implementation.
3084
3085 commit b9ca960f2ba271d2b1a58e22b7c70464d69f6c8a
3086 Author: David Moore <dcm@acm.org>
3087 Date:   Sun Jan 11 21:46:17 2009 -0800
3088
3089     Prevent transfer from being submitted twice or improperly canceled
3090     
3091     This ensures that tpriv->urbs and tpriv->iso_urbs are always set to NULL
3092     whenever a transfer is not submitted.  In this way, submit_*_transfer()
3093     and cancel_*_transfer() can error check to ensure that the transfer is
3094     in the correct state to be either submitted or canceled, preventing
3095     potential memory leaks or double frees.
3096     
3097     Signed-off-by: David Moore <dcm@acm.org>
3098
3099 commit d2a8ec2da8abcd8f4648ed118da16191011982dd
3100 Author: David Moore <dcm@acm.org>
3101 Date:   Wed Jan 7 22:31:09 2009 -0800
3102
3103     Linux: Fix race condition in cancel_bulk_transfer()
3104     
3105     This fixes a race condition in cancel_bulk_transfer().  In the old
3106     version, awaiting_reap and awaiting_discard are incremented in
3107     cancel_bulk_transfer() and decremented in handle_bulk_completion().
3108     However, since these events may take place in two different threads,
3109     these variables may reach zero before all URBs have been canceled,
3110     triggered spurious callbacks and duplicate frees.
3111     
3112     This changes the logic to use a single variable "num_retired" to replace
3113     both awaiting_reap and awaiting_discard.  num_retired is incremented
3114     only in handle_bulk_completion() and thus there is no race.  The handler
3115     will know that all URBs have been canceled when num_retired becomes
3116     equal to num_urbs.
3117     
3118     This change also simplifies a great deal of the logic in both functions
3119     and is a net reduction in the amount of code.
3120     
3121     Note that some variables such as "reap_action" probably need to still be
3122     protected by a mutex, and this patch does not address that issue.
3123     
3124     Signed-off-by: David Moore <dcm@acm.org>
3125
3126 commit 34b9eebe35d8167d43cffb6ad6175f6b2251b572
3127 Author: Daniel Drake <dsd@gentoo.org>
3128 Date:   Sat Dec 13 20:06:49 2008 +0000
3129
3130     v1.0.0 release
3131     
3132     It's here!
3133
3134 commit b1d636dde418dc8fe6a8f037dea0d800e57c6b94
3135 Author: Mikhail Gusarov <dottedmag@dottedmag.ent>
3136 Date:   Wed Dec 10 15:24:05 2008 +0600
3137
3138     EOL-whitespace fixes
3139     
3140     Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.ent>
3141
3142 commit 4a9ac382ba5149ae5b3d0962d6a840b5e0dc13aa
3143 Author: Daniel Drake <dsd@gentoo.org>
3144 Date:   Tue Dec 9 21:43:37 2008 +0000
3145
3146     Linux: fix reading of active configuration
3147     
3148     Shannon Chuang pointed out that we only read 1 byte into an
3149     uninitialized integer, and then return the whole thing.
3150
3151 commit 81a7310d92461ba7b1d98aeff7c4c007fab07120
3152 Author: Daniel Drake <dsd@gentoo.org>
3153 Date:   Tue Dec 9 21:39:11 2008 +0000
3154
3155     Fix double free in descriptor parsing error path
3156     
3157     Pointed out by Shannon Chuang.
3158
3159 commit 9b4b53453db56ba9c1d707a645bbe6c7a02a3c81
3160 Author: Daniel Drake <dsd@gentoo.org>
3161 Date:   Fri Nov 21 13:28:32 2008 +0000
3162
3163     Improvements to multi-threaded I/O system
3164     
3165     Documentation brushed up, and I realised that another function is
3166     needed for tight event handling loops -- they must be able to check
3167     if an open/close operation is trying to interrupt it.
3168
3169 commit 0e5b0fcb77a90b8bd95ad23669da472af31ef069
3170 Author: Daniel Drake <dsd@gentoo.org>
3171 Date:   Fri Nov 21 11:00:47 2008 +0000
3172
3173     SourceForge website upload system changed
3174
3175 commit a133875e6e2f52eff53ac03f505d59cbdd33e178
3176 Author: Daniel Drake <dsd@gentoo.org>
3177 Date:   Fri Nov 21 10:54:57 2008 +0000
3178
3179     v0.9.4 release
3180
3181 commit c32aa662769b676ff3247778664fccc71fc427ec
3182 Author: Daniel Drake <dsd@gentoo.org>
3183 Date:   Thu Nov 20 15:31:10 2008 +0000
3184
3185     Pause event handling while opening and closing devices
3186     
3187     Ludovic Rousseau found that crashes often occur if you close a device
3188     while another thread is doing event handling.
3189     
3190     Fix this by adding an internal control pipe, which the close routines
3191     use to interrupt the event handler and obtain the event handling lock,
3192     ensuring that no other thread is handling events while the device is
3193     closed. After the close completes, it signals all the event handlers
3194     to start up again using the usual mechanism.
3195     
3196     Also modified libusb_open() to do a similar thing, so that event
3197     handlers are interrupted in order to realise that a new poll fd has
3198     appeared.
3199
3200 commit 1d7cf3d0fa8698eae25097cbda1870be90ff6f5e
3201 Author: Bastien Nocera <hadess@hadess.net>
3202 Date:   Thu Oct 30 14:35:23 2008 +0000
3203
3204     Add libusb_attach_kernel_driver()
3205     
3206     Add support for re-attaching a driver to a device under Linux.
3207     
3208     [dsd: fixed handling of return value, and added LIBUSB_ERROR_BUSY case]
3209
3210 commit 914a4e70657c86b5094770aa2d898c978b1cdf41
3211 Author: Daniel Drake <dsd@gentoo.org>
3212 Date:   Sun Nov 2 21:45:54 2008 +0000
3213
3214     Linux: handle low-level transfer errors
3215     
3216     Handle more URB error status codes, thanks to Lou and Alan Stern.
3217
3218 commit d25b566b3b8febafdda4211de724b4727dd4b7e0
3219 Author: Aurelien Jarno <aurelien@aurel32.net>
3220 Date:   Thu Sep 4 13:50:49 2008 +0200
3221
3222     Support for out-of-tree building
3223     
3224     Contrary to libusb 0.1, libusb 1.0 does not support out-of-tree building
3225     for the documentation part. This patch fixes that by using a
3226     doxygen.cfg.in file, which contains @top_srcdir@ to refer to the
3227     location of the libusb source code.
3228
3229 commit 8674c67ef78e1cf89db1fa584a4304f7c5ddcc5f
3230 Author: Daniel Drake <dsd@gentoo.org>
3231 Date:   Sun Nov 2 15:00:39 2008 +0000
3232
3233     Document the logging style
3234     
3235     Suggested by Lou.
3236
3237 commit 94936cbcfe3f02eb65c8b91e29896604316259d8
3238 Author: Daniel Drake <dsd@gentoo.org>
3239 Date:   Wed Aug 27 22:44:24 2008 -0500
3240
3241     Async I/O documentation touchups
3242
3243 commit 2f8f1b1a900f5b9828e5e2ff93c2b26a44fd9de2
3244 Author: Daniel Drake <dsd@gentoo.org>
3245 Date:   Wed Aug 27 21:23:10 2008 -0500
3246
3247     Doc: fix typo in events lock section
3248
3249 commit 046e681e4ac6b697e40458ee0f5baf3cd8763bb0
3250 Author: Daniel Drake <dsd@gentoo.org>
3251 Date:   Sat Aug 23 01:00:21 2008 -0500
3252
3253     v0.9.3 release
3254
3255 commit fec6eaa4eecdf7e0b8299157a5dabef94417f193
3256 Author: Daniel Drake <dsd@gentoo.org>
3257 Date:   Sat Aug 23 00:57:44 2008 -0500
3258
3259     Reset internal transfer flags on submit
3260     
3261     This fixes a problem pointed out by Lou, where resubmitting a transfer
3262     that previously timed out never timed out again, as if the timeout had
3263     been set to 0.
3264
3265 commit 81627bd38900ec9701ab69c141aa51a9abea1f60
3266 Author: Daniel Drake <dsd@gentoo.org>
3267 Date:   Sun Aug 10 17:09:48 2008 -0500
3268
3269     Add libusb_get_configuration prototype
3270     
3271     Pointed out by Lou
3272
3273 commit 1631eaefcc7cdf7047c6b9225618a9aa1b3d87d1
3274 Author: Daniel Drake <dsd@gentoo.org>
3275 Date:   Sat Jul 19 17:51:28 2008 -0500
3276
3277     v0.9.2 release
3278
3279 commit 0d9c40d7f3eee15ada624b5caab2cfb912144fdc
3280 Author: Daniel Drake <dsd@gentoo.org>
3281 Date:   Wed Jul 16 09:22:12 2008 -0500
3282
3283     Linux: fix sysfs directory handling
3284     
3285     The length of the directory name varies, e.g. when you have nested hubs.
3286     Use dynamic allocation to be able to deal with any length of name.
3287
3288 commit 66c9847ad54b126ccafd4877292454ab57d0c115
3289 Author: David Engraf <dogge2k@gmx.de>
3290 Date:   Wed Jul 16 09:16:38 2008 -0500
3291
3292     Linux: correct usage of MAX_PATH
3293     
3294     Thanks to clarification from Artem Egorkine, MAX_PATH already includes
3295     space for the trailing NULL.
3296
3297 commit 6494f07a6d1b73ce786ae581c4ff691e39e61d19
3298 Author: Daniel Drake <dsd@gentoo.org>
3299 Date:   Tue Jul 8 21:15:54 2008 -0500
3300
3301     Linux: fix bulk/iso transfer double-cancellation
3302     
3303     Reset counters to 0 so that it's possible to cancel a transfer twice
3304     without breaking things. Not sure that I want to support this properly,
3305     but this makes it work at least.
3306
3307 commit 9140f5b414e37a3714cde9c6d6c87c963338a83a
3308 Author: Daniel Drake <dsd@gentoo.org>
3309 Date:   Sat Jun 28 21:28:44 2008 -0500
3310
3311     v0.9.1 release
3312
3313 commit 83a029062c1d2bfb584d7a6ee94915583d37464c
3314 Author: Daniel Drake <dsd@gentoo.org>
3315 Date:   Sat Jun 28 21:24:49 2008 -0500
3316
3317     Add missing GET_CONTEXT()
3318
3319 commit fbad9a5426f0369394c88987355a8fb06a741ca1
3320 Author: Daniel Drake <dsd@gentoo.org>
3321 Date:   Sat Jun 28 21:18:41 2008 -0500
3322
3323     Linux: Compatibility with new sysfs descriptors file
3324     
3325     As of 2.6.26, the descriptors file now includes all descriptors, not
3326     just the active one.
3327
3328 commit 819e65f880ca43526036e56c65c415042c91f58f
3329 Author: Daniel Drake <dsd@gentoo.org>
3330 Date:   Thu Jun 26 22:47:05 2008 -0500
3331
3332     Allow user data pointer to be passed through pollfd notification API
3333
3334 commit 1df713d622ab4f0b03aad72d903ac7beb8fb3b90
3335 Author: Daniel Drake <dsd@gentoo.org>
3336 Date:   Tue Jun 24 23:01:51 2008 -0500
3337
3338     Introduce contexts to the API
3339     
3340     Suggested by David Zeuthen. This allows multiple libraries in the same
3341     process to independently use libusb without interfering.
3342
3343 commit 9818151c60a85aea6af24cb0996a92c3726c9864
3344 Author: Daniel Drake <dsd@gentoo.org>
3345 Date:   Tue Jun 24 21:31:13 2008 -0500
3346
3347     Revert "Temporary workaround for event handling serialization issue"
3348     
3349     This reverts commit 2d3a1111caff40ebb87983c861ff548cdc9e5946.
3350     This was based on the assumption that dying threads would automatically
3351     release mutexes, which is not the case.
3352
3353 commit d5f82893fab3f1c13b1af4ba17aac72479bad7d5
3354 Author: Daniel Drake <dsd@gentoo.org>
3355 Date:   Fri Jun 20 23:04:53 2008 -0500
3356
3357     Overflow handling
3358
3359 commit 546dee211eefbdd280fd1fc9dee84a9b52105078
3360 Author: Artem Egorkine <arteme@gmail.com>
3361 Date:   Tue Jun 17 18:27:38 2008 -0500
3362
3363     a fix for SIGSEGV in handle_bulk_completion()
3364     
3365     We cannot dereference tpriv after calling
3366     usbi_handle_transfer_cancellation() because that function may invoke
3367     the user-supplied callback which may free the transfer.
3368
3369 commit 947ba8056456a5215724fb502e3e09d50016f699
3370 Author: Daniel Drake <dsd@gentoo.org>
3371 Date:   Mon Jun 16 22:50:50 2008 -0500
3372
3373     Refine configuration selection again
3374     
3375     At Alan Stern's suggestion, just offer the bare "set configuration" and
3376     "get configuration" functionality, and let applications worry about the
3377     specific race conditions and unusual situations.
3378
3379 commit e7a7a49d0331ee0e14145f6e7ec39763b36314ac
3380 Author: Daniel Drake <dsd@gentoo.org>
3381 Date:   Sun Jun 15 15:29:38 2008 -0500
3382
3383     docs update
3384     
3385     Add a THANKS file, make copyright notices easily accessible, update TODO
3386
3387 commit 217534e4b396081e038ee5f94c813d1668963673
3388 Author: Daniel Drake <dsd@gentoo.org>
3389 Date:   Sun Jun 15 15:23:29 2008 -0500
3390
3391     round up poll timeout
3392     
3393     Pointed out by Richard Röjfors, otherwise we end up busy-looping with
3394     a poll() timeout of 0.
3395
3396 commit 5ad79b324bc5e11a75a585398a1e81c26f05e758
3397 Author: Felipe Balbi <me@felipebalbi.com>
3398 Date:   Sun Jun 8 12:34:48 2008 +0300
3399
3400     fix doc about libusb_open()
3401     
3402     libusb_open() returns int instead of libusb_device_handle.
3403     
3404     Signed-off-by: Felipe Balbi <me@felipebalbi.com>
3405     [dsd: small correction]
3406
3407 commit 2d3a1111caff40ebb87983c861ff548cdc9e5946
3408 Author: Daniel Drake <dsd@gentoo.org>
3409 Date:   Thu May 29 17:26:26 2008 +0100
3410
3411     Temporary workaround for event handling serialization issue
3412     
3413     Ludovic Rousseau pointed out that libusb_unlock_events() is not called
3414     when a thread gets terminated with a signal, meaning that event waiters
3415     will not be woken up in this case.
3416     
3417     Add a temporary hack to libusb_event_handler_active() so that at least
3418     the other threads will realise on the next iteration of their event
3419     handling loop.
3420     
3421     The real fix will likely involve reworking most of this.
3422
3423 commit 514bb8790cfe8b93ccfff82bc17081b1030acce0
3424 Author: Daniel Drake <dsd@gentoo.org>
3425 Date:   Thu May 29 12:35:01 2008 +0100
3426
3427     Refine libusb_set_configuration() semantics
3428     
3429     Applications will generally want to set a configuration before claiming
3430     interfaces. The problem is that the interface may already be set, and
3431     someone else may have claimed an interface (meaning that all calls to
3432     set_configuration will fail, even if it's for the same configuration).
3433     
3434     There are now 2 options:
3435     1. Use the new libusb_get_configuration() to determine active
3436        configuration before calling libusb_set_configuration()
3437     2. Or just call libusb_set_configuration() as usual, which will do
3438        nothing if that configuration is already active.
3439
3440 commit d1292f8e7300051239a7ed2769d221dc7a6f9fca
3441 Author: Daniel Drake <dsd@gentoo.org>
3442 Date:   Sun May 25 23:42:42 2008 +0100
3443
3444     v0.9.0 release
3445     
3446     First libusb-1.0 beta release
3447
3448 commit 4cd249388e4ed2ca03f1263984ab67df5030bb65
3449 Author: Daniel Drake <dsd@gentoo.org>
3450 Date:   Sun May 25 22:59:09 2008 +0100
3451
3452     Take lock before raising event waiters condition
3453     
3454     This avoids a race between the user checking for active event handler
3455     and then blocking on the condition variable
3456
3457 commit 7c525480ab3c4db9205bfe30bb0d2bef9096c444
3458 Author: Daniel Drake <dsd@gentoo.org>
3459 Date:   Fri May 23 15:57:07 2008 +0100
3460
3461     Implement serialization of event handlers
3462     
3463     Now offers a mechanism to wait for events while another thread is
3464     doing the event handling. Complicates things for MT async apps, but
3465     then again it's a bit of a tricky combination to start with.
3466
3467 commit ff0660a415ecfd0879600eaad1c5899b6d93a30a
3468 Author: Daniel Drake <dsd@gentoo.org>
3469 Date:   Sat May 24 21:28:31 2008 +0100
3470
3471     allow LIBUSB_DEBUG env var to control message verbosity at runtime
3472     
3473     Based on ideas from Ludovic Rousseau
3474
3475 commit 4d788967e3f8d75eaf3a1ac1ee8e2e8bed0601c1
3476 Author: Daniel Drake <dsd@gentoo.org>
3477 Date:   Fri May 23 15:58:11 2008 +0100
3478
3479     don't print messages by default
3480     
3481     Add libusb_set_debug() API to set message verbosity.
3482     
3483     Ludovic Rousseau pointed out that applications may close stdout/stderr
3484     descriptors, which might then be reused.
3485
3486 commit bef33bb9eba0da04ee7488d9cd5e6ab12bc61c0c
3487 Author: Daniel Drake <dsd@gentoo.org>
3488 Date:   Mon May 19 15:43:27 2008 +0100
3489
3490     Fix memory leak in libusb_control_transfer
3491     
3492     Pointed out by David Engraf: we weren't freeing the transfer buffer
3493
3494 commit a345bacb6f07ebb2122402041a9e8092d4a20a4d
3495 Author: David Engraf <david.engraf@netcom.eu>
3496 Date:   Mon May 19 15:16:32 2008 +0100
3497
3498     Linux: fix handling of ioctl failure
3499     
3500     The return value of some ioctl commands in linux_usbfs.c are not
3501     handeled correct. The ioctl function returns != 0 and errno is set with
3502     the error code.
3503
3504 commit e44396a458ecea9e5edd9a7577e617571c76860d
3505 Author: David Engraf <david.engraf@netcom.eu>
3506 Date:   Mon May 19 15:13:38 2008 +0100
3507
3508     critical memory leak in handle_events
3509     
3510     This patch closes a critical memory leak in handle_events. The fds
3511     variable is malloced but never freed. When I'm calling
3512     handle_events with a timeout of 0, my system runs out of memory after a
3513     few seconds.
3514
3515 commit eb25630f52bc9848b444e439632c899977d887b0
3516 Author: Daniel Drake <dsd@gentoo.org>
3517 Date:   Fri May 16 23:50:20 2008 +0100
3518
3519     More informative libusb_open() return code
3520     
3521     Hopefully one of the last API tweaks...
3522
3523 commit 2b2e9c40b195261b09ac52ebdb93eef25c79de90
3524 Author: Daniel Drake <dsd@gentoo.org>
3525 Date:   Fri May 16 22:37:56 2008 +0100
3526
3527     Fix endianness with descriptor handling
3528     
3529     Alan Stern pointed out that usbfs gives host-endian data, but sysfs gives
3530     bus-endian.
3531
3532 commit 1298c51f516a7bf04ca9add1b7db14417cdc66f3
3533 Author: Daniel Drake <dsd@gentoo.org>
3534 Date:   Mon May 12 18:46:37 2008 +0100
3535
3536     Backend documentation for porting efforts
3537     
3538     Hopefully comprehensive enough for people to get started.
3539
3540 commit ade26afc42c34ceb1c45afcadd2ea5e8240eaca4
3541 Author: Daniel Drake <dsd@gentoo.org>
3542 Date:   Mon May 12 15:43:30 2008 +0100
3543
3544     Linux: fix caching of guessed configuration
3545     
3546     Reported and tested by Xiaofan Chen
3547
3548 commit e25d590a9198995b4f0b6afeb41ecae318715e7e
3549 Author: Rob Walker <rob@tenfoot.org.uk>
3550 Date:   Sun May 11 21:14:18 2008 +0100
3551
3552     Linux: fix bulk transfer early completion
3553     
3554     We were forgetting about the remaining urbs when a non-final urb
3555     completed early.
3556     
3557     [dsd: some touchups and a warning message for a corner case that we don't handle]
3558
3559 commit fec7c84163e25b8f811632828334d75da82bcb16
3560 Author: Daniel Drake <dsd@gentoo.org>
3561 Date:   Sun May 11 20:31:58 2008 +0100
3562
3563     Handle hot-unplugging
3564     
3565     This involved moving from select() to poll() because there is no way to
3566     distinguish usbfs's POLLERR condition with select().
3567
3568 commit aeb905fa5d78cdbba80a680aa7a2bb7338f27f65
3569 Author: Daniel Drake <dsd@gentoo.org>
3570 Date:   Sun May 11 16:04:35 2008 +0100
3571
3572     Documentation work
3573
3574 commit ba5d9a45c06311204f51faef41d1ee215bb5b823
3575 Author: Daniel Drake <dsd@gentoo.org>
3576 Date:   Sun May 11 15:36:24 2008 +0100
3577
3578     Endianness of control setup packets
3579     
3580     Document behaviour where host-endian and bus-endian (little) should be
3581     used respectively.
3582     
3583     Also remove packed attribute from libusb_control_setup as all fields
3584     are naturally aligned.
3585
3586 commit 7bedc3b2683f35ee1dd39a2ebe0ec05be0019f38
3587 Author: Daniel Drake <dsd@gentoo.org>
3588 Date:   Sun May 11 15:11:59 2008 +0100
3589
3590     Document that releasing interface causes SET_INTERFACE control request
3591
3592 commit f2ede9876cd4f5cfa7751b975670fa449187fe3d
3593 Author: Daniel Drake <dsd@gentoo.org>
3594 Date:   Sat May 10 21:45:42 2008 +0100
3595
3596     Support unconfigured devices
3597
3598 commit 8ebb4ccdfaf5f095a1c38787d909d280ea64405c
3599 Author: Daniel Drake <dsd@gentoo.org>
3600 Date:   Sat May 10 20:56:44 2008 +0100
3601
3602     Linux: fix caching of active configuration for non-sysfs
3603
3604 commit c3844f7aeb2176636ce6e6ef697659fdb0b30048
3605 Author: Daniel Drake <dsd@gentoo.org>
3606 Date:   Sat May 10 14:42:43 2008 +0100
3607
3608     Fetch configurations by index (not value)
3609     
3610     Otherwise there is no way to know which values to look for.
3611
3612 commit d77052c0d630e33737c38d601fd633155f6b2229
3613 Author: Daniel Drake <dsd@gentoo.org>
3614 Date:   Sat May 10 00:12:53 2008 +0100
3615
3616     Linux: comprehensive sysfs vs usbfs access
3617     
3618     Be more flexible when certain parts of sysfs are not available.
3619
3620 commit 74bc842bac1a32a26323da6c3e8af2f66e1b5cfa
3621 Author: Daniel Drake <dsd@gentoo.org>
3622 Date:   Fri May 9 19:38:13 2008 +0100
3623
3624     Linux: no need to store usbfs node path
3625     
3626     This can be computed from bus number and device address
3627
3628 commit fe4adcc99e30115204ab832ad3e0170c9aca7629
3629 Author: Daniel Drake <dsd@gentoo.org>
3630 Date:   Fri May 9 14:34:31 2008 +0100
3631
3632     Rework configuration handling
3633     
3634     libusb no longer caches descriptors in libusb_device but backends are
3635     intended to be able to provide copies from memory. In the common linux
3636     case we can use sysfs.
3637
3638 commit 5741bfe01a2481b8c3830c80edc3637bf62a7e16
3639 Author: Daniel Drake <dsd@gentoo.org>
3640 Date:   Fri May 9 14:36:14 2008 +0100
3641
3642     libusb_get_device_list() can return negative error code
3643
3644 commit 45413101b78298e9332b22a34bc6bc159000ad8a
3645 Author: Daniel Drake <dsd@gentoo.org>
3646 Date:   Thu May 8 23:09:21 2008 +0100
3647
3648     Linux: fix clear_halt implementation
3649     
3650     The ioctl expects an integer.
3651     Bug found with the assistance of Soumen Mondal
3652
3653 commit 10d4e427cc171dfd6ad7f43a33ce3cfebcd7aa04
3654 Author: Daniel Drake <dsd@gentoo.org>
3655 Date:   Thu May 8 23:04:52 2008 +0100
3656
3657     Documentation work
3658     
3659     Partially based on some libusb-devel discussions
3660
3661 commit ded0a249322571a075e3ed3528021864247dfa55
3662 Author: Daniel Drake <dsd@gentoo.org>
3663 Date:   Mon May 5 22:57:48 2008 +0100
3664
3665     Linux: enumerate devices and descriptors from sysfs
3666     
3667     Suggested by Alan Stern. This avoids waking up any suspended USB devices.
3668     sysfs is not available on all systems, so the usbfs mechanism is still
3669     in place as a fallback.
3670
3671 commit 885c2a5de69d6b7d8902bb55d6d83680a5a1a6e5
3672 Author: Daniel Drake <dsd@gentoo.org>
3673 Date:   Mon May 5 21:34:31 2008 +0100
3674
3675     documentation touchups
3676
3677 commit 59c205d542b43d79fe28622dbe8f03a3a3300b6f
3678 Author: Daniel Drake <dsd@gentoo.org>
3679 Date:   Mon May 5 21:17:03 2008 +0100
3680
3681     more error code sanitization
3682
3683 commit 88055d4b5913102a90ff666f75fd922c74860dc5
3684 Author: Daniel Drake <dsd@gentoo.org>
3685 Date:   Mon May 5 20:57:43 2008 +0100
3686
3687     Isochronous transfer helper functions
3688
3689 commit a95c943ed301dcd20e92b0b3b255568899a4c42e
3690 Author: Daniel Drake <dsd@gentoo.org>
3691 Date:   Mon May 5 17:54:33 2008 +0100
3692
3693     free open devices on exit
3694
3695 commit b27fff633843824744df7d334cb89ece329cafa6
3696 Author: Daniel Drake <dsd@gentoo.org>
3697 Date:   Mon May 5 17:47:49 2008 +0100
3698
3699     move descriptor parsing into main library
3700     
3701     OS modules now provide functionality for fetching device/config
3702     descriptors
3703
3704 commit a304eca71f22c6df7d70a901483b30f1b8e93378
3705 Author: Daniel Drake <dsd@gentoo.org>
3706 Date:   Mon May 5 16:22:33 2008 +0100
3707
3708     Detect endpoint halts and unsupported control requests
3709
3710 commit 7da521954ba661d3f537440c31a84b66e974d56b
3711 Author: Daniel Drake <dsd@gentoo.org>
3712 Date:   Mon May 5 01:00:31 2008 +0100
3713
3714     Linux: fix logical URB allocation
3715     
3716     We were allocating the wrong number of URBs for transfers of size
3717     multiples of 16k.
3718
3719 commit 470b1bc42bf53373ce678fc76bab9160a54d6881
3720 Author: Daniel Drake <dsd@gentoo.org>
3721 Date:   Sun May 4 16:51:23 2008 +0100
3722
3723     add functionality for querying and detaching kernel driver
3724
3725 commit 17ecfb0ecc833596c43755c80d461cddb9b3b0d7
3726 Author: Daniel Drake <dsd@gentoo.org>
3727 Date:   Sun May 4 16:20:46 2008 +0100
3728
3729     Descriptor reading functionality
3730
3731 commit bdce367d1bd8691465844b2411c85215498f517d
3732 Author: Daniel Drake <dsd@gentoo.org>
3733 Date:   Sun May 4 14:22:16 2008 +0100
3734
3735     sanitized error returns from synchronous I/O functions
3736
3737 commit bfe74e9cd9c17a40fff042ea0647326f51cfecae
3738 Author: Daniel Drake <dsd@gentoo.org>
3739 Date:   Sun May 4 14:10:19 2008 +0100
3740
3741     implement libusb_reset_device()
3742
3743 commit c01f744ce07bbeccbe353e956479f0cc5a811a6f
3744 Author: Daniel Drake <dsd@gentoo.org>
3745 Date:   Sun May 4 13:46:41 2008 +0100
3746
3747     Add functionality to clear endpoint halt conditions
3748
3749 commit 5878daa85e3364bb3885190425d4f9deaa2d8c36
3750 Author: Daniel Drake <dsd@gentoo.org>
3751 Date:   Sun May 4 00:51:59 2008 +0100
3752
3753     Fix libusb_get_device_list return value
3754     
3755     It was documented to return the list length, but was returning 0.
3756
3757 commit a74106a9b48b88bae0e099be34a18d653a8f1238
3758 Author: Daniel Drake <dsd@gentoo.org>
3759 Date:   Sat May 3 16:50:58 2008 +0100
3760
3761     Well-defined error codes for some operations
3762     
3763     Also renamed set_interface_altsetting to set_interface_alt_setting for
3764     better consistency
3765
3766 commit 0f463fe671455670efcf4a93e526b2a9082b0afe
3767 Author: Daniel Drake <dsd@gentoo.org>
3768 Date:   Sat May 3 16:24:11 2008 +0100
3769
3770     Add libusb_set_configuration()
3771
3772 commit e65608994f795f97e4d6adac20329ca08709db2d
3773 Author: Daniel Drake <dsd@gentoo.org>
3774 Date:   Sat May 3 15:40:23 2008 +0100
3775
3776     rename LIBUSB_ERROR_NOMEM to LIBUSB_ERROR_NO_MEM
3777     improves consistency
3778
3779 commit 5384bbf300779e7936eac9ebd33ee38f5b533f8e
3780 Author: Daniel Drake <dsd@gentoo.org>
3781 Date:   Sat May 3 14:34:54 2008 +0100
3782
3783     Linux: better EACCES handling
3784
3785 commit 1936eeeba3f933a078df1005cc7c1533a8ec2bac
3786 Author: Daniel Drake <dsd@gentoo.org>
3787 Date:   Sat May 3 14:26:56 2008 +0100
3788
3789     Rename reference counting API
3790     
3791     This improves consistency with the naming style of other functions
3792
3793 commit e2f822b4f17342f614ab2455179a80975fca6cb0
3794 Author: Daniel Drake <dsd@gentoo.org>
3795 Date:   Sat May 3 14:24:40 2008 +0100
3796
3797     Linux: use read-only access to enumerate devices and descriptors
3798     
3799     Write access is not needed until later.
3800     Also fix handling of open() error code.
3801
3802 commit 81204eed3d0a7744b89b68bd90d567b68d191a91
3803 Author: Daniel Drake <dsd@gentoo.org>
3804 Date:   Fri May 2 17:45:23 2008 +0100
3805
3806     document pollfd notifiers
3807
3808 commit e20f8281fb7da32587f81b5eea5818af1eab0fe0
3809 Author: Daniel Drake <dsd@gentoo.org>
3810 Date:   Fri May 2 17:33:52 2008 +0100
3811
3812     Allow multiple interfaces to be claimed
3813
3814 commit 66685ff25d81a1f1a2a3dbda882d407638d00672
3815 Author: Daniel Drake <dsd@gentoo.org>
3816 Date:   Fri May 2 16:55:36 2008 +0100
3817
3818     Documentation improvements
3819
3820 commit 55bce39cbe0c9746a428b66751d1afe551d86381
3821 Author: Daniel Drake <dsd@gentoo.org>
3822 Date:   Fri May 2 12:55:34 2008 +0100
3823
3824     detect short descriptor reads
3825
3826 commit f3f17846dcced6b2dc40f899ed6a2aba151c264b
3827 Author: Daniel Drake <dsd@gentoo.org>
3828 Date:   Fri May 2 12:32:46 2008 +0100
3829
3830     remove "references" and "referenced by" listings in documentation
3831
3832 commit fbb017dd9a26ce449578482b95157b3c850fa446
3833 Author: Daniel Drake <dsd@gentoo.org>
3834 Date:   Fri May 2 12:32:08 2008 +0100
3835
3836     Use typedef ptr types in parameters and return types
3837     
3838     This is passed through to the docs
3839
3840 commit 3675e978fb7a1042f8601931255658bcd14a2298
3841 Author: Daniel Drake <dsd@gentoo.org>
3842 Date:   Fri May 2 12:28:31 2008 +0100
3843
3844     Expose bus number and device address
3845
3846 commit 2012898ffc492317cb428d97077bf5ee0e98e1da
3847 Author: Daniel Drake <dsd@gentoo.org>
3848 Date:   Tue Apr 29 15:26:46 2008 +0100
3849
3850     standardised error codes
3851
3852 commit 0269c75ae3de7acb2dc555e45928750e35fdb320
3853 Author: Daniel Drake <dsd@gentoo.org>
3854 Date:   Tue Apr 29 13:34:26 2008 +0100
3855
3856     Fix descriptor handling memory leaks
3857
3858 commit d3ab4e3bd4068cba41c1e12c4b175018dc3cb343
3859 Author: Daniel Drake <dsd@gentoo.org>
3860 Date:   Sun Apr 27 23:50:01 2008 +0100
3861
3862     Rename endpoint_type to transfer_type
3863     
3864     Matches the USB specs more closely
3865
3866 commit 379e90e0fdcef6f4db1849fa0a7fd524407cf564
3867 Author: Daniel Drake <dsd@gentoo.org>
3868 Date:   Sun Apr 27 23:41:24 2008 +0100
3869
3870     Remove a FIXME comment
3871     
3872     it can't.
3873
3874 commit 2ddf81420557d016bbcbf28dda0d8d1c64d16264
3875 Author: Daniel Drake <dsd@gentoo.org>
3876 Date:   Sun Apr 27 23:30:34 2008 +0100
3877
3878     Fix unlocked flying_transfers list access
3879
3880 commit 7ac0a405b4c57db42e88cbcba5f135697f03b646
3881 Author: Daniel Drake <dsd@gentoo.org>
3882 Date:   Sun Apr 27 23:27:04 2008 +0100
3883
3884     Remove libusb_cancel_transfer_sync
3885     
3886     This wasn't a particularly nice API. Cancellation should be handled by
3887     the completion handler.
3888
3889 commit a5006fd7b9dae6f1db7969c8744086ba3a7c027b
3890 Author: Daniel Drake <dsd@gentoo.org>
3891 Date:   Sun Apr 27 19:56:02 2008 +0100
3892
3893     remove extra timeout check
3894     
3895     If select() didn't timeout then don't check for more timeouts
3896
3897 commit 3bdafaa359d9c65e1af360b5338e1f25528a8066
3898 Author: Daniel Drake <dsd@gentoo.org>
3899 Date:   Sun Apr 27 19:53:51 2008 +0100
3900
3901     Documentation touchups
3902     
3903     Detail that interrupt polling interval is fixed to endpoint bInterval,
3904     and that data may be transferred even on a timeout condition.
3905
3906 commit e12618c79d520955b1abf80a277e881d91907162
3907 Author: Daniel Drake <dsd@gentoo.org>
3908 Date:   Sat Apr 19 16:17:53 2008 +0100
3909
3910     add threaded example program
3911
3912 commit 1fcdb0678b759569db7cd530457dbc0a5f86fb1d
3913 Author: Daniel Drake <dsd@gentoo.org>
3914 Date:   Fri Apr 18 23:58:54 2008 +0100
3915
3916     libusb_device mutex protection
3917
3918 commit 0efd2efa65d5513e5754d717d522b2c5c45332e2
3919 Author: Daniel Drake <dsd@gentoo.org>
3920 Date:   Fri Apr 18 23:42:40 2008 +0100
3921
3922     mutex protection for device and handle lists
3923
3924 commit d2ff2b14a15e5099ff0214502944de30f141a39c
3925 Author: Daniel Drake <dsd@gentoo.org>
3926 Date:   Fri Apr 18 20:00:31 2008 +0100
3927
3928     lock flying_transfers during transfer removal
3929
3930 commit 2569980762cb66804da31e54bef243702da8dfe9
3931 Author: Daniel Drake <dsd@gentoo.org>
3932 Date:   Fri Apr 18 19:59:56 2008 +0100
3933
3934     pollfds mutex protection
3935
3936 commit f5a33e08ec0da51ccb5e95a5adec50c5211a9bf5
3937 Author: Daniel Drake <dsd@gentoo.org>
3938 Date:   Thu Apr 17 18:24:54 2008 +0100
3939
3940     flying_transfers mutex protection
3941     
3942     This marks the beginnings of thread safety
3943
3944 commit 85e1994123545125ce0653415d122f9790f8d041
3945 Author: Daniel Drake <dsd@gentoo.org>
3946 Date:   Thu Apr 17 17:44:28 2008 +0100
3947
3948     Linux: fix control transfer cancellation
3949
3950 commit cf9b831f7bfd97ba88721c1d934aeda522f3692c
3951 Author: Daniel Drake <dsd@gentoo.org>
3952 Date:   Mon Apr 14 20:03:27 2008 +0100
3953
3954     set correct endpoint type for isochronous transfers
3955     
3956     Pointed out by Felix Domke
3957
3958 commit ad6e2b712c5b54af44424e58a2776686314e26b7
3959 Author: Daniel Drake <dsd@gentoo.org>
3960 Date:   Fri Apr 11 21:40:07 2008 +0100
3961
3962     Linux: fire multiple URBs at once for split transfers
3963     
3964     This results in a significant performance increase for bulk transfers
3965     larger than 16kb, and fixes a bug where data would be spliced and mixed
3966     between two simultaneously submitted transfers to the same endpoint.
3967     
3968     It also allows isochronous transfers larger than 16kb to be submitted.
3969     
3970     This commit also improves cancellation - the library now understands
3971     what is going on.
3972
3973 commit d9b2ce2894ed43d34de6850f2dac50ccabf1db55
3974 Author: Daniel Drake <dsd@gentoo.org>
3975 Date:   Tue Apr 1 23:28:32 2008 +0100
3976
3977     Constify some return data
3978     
3979     Make it clear that apps should not mess with these structures
3980
3981 commit 8d809854e2b19c2b7c27ab05e5d76b34e2a5cead
3982 Author: Daniel Drake <dsd@gentoo.org>
3983 Date:   Sun Mar 30 22:19:00 2008 +0100
3984
3985     Rename libusb_poll() to libusb_handle_events()
3986
3987 commit 211f80c9f2a4a58cd2bbf5b7751f45089c8961e7
3988 Author: Daniel Drake <dsd@gentoo.org>
3989 Date:   Tue Mar 25 16:24:30 2008 +0000
3990
3991     Isochronous endpoint I/O
3992     
3993     Due to variable-sized structures, this involved changing allocation
3994     mechanism. All transfers must now be allocated and freed through
3995     libusb.
3996     
3997     A synchronous function is missing, and I could do with writing a few
3998     more helper functions to simplify things.
3999
4000 commit b1ade6fca668d8aa156d5b5bf3a933f116144dc2
4001 Author: Daniel Drake <dsd@gentoo.org>
4002 Date:   Sun Mar 23 21:17:32 2008 +0000
4003
4004     distcheck fix for docs
4005
4006 commit 62077b7fa5b222e1bb9dea3467585aed69d596e2
4007 Author: Daniel Drake <dsd@gentoo.org>
4008 Date:   Sun Mar 23 21:13:14 2008 +0000
4009
4010     Support for changing altsetting
4011     
4012     Will probably be suject to later consideration w.r.t. claiming of endpoints
4013
4014 commit 0499e9f418607b5786ac0c3e97bc46737a609ca3
4015 Author: Daniel Drake <dsd@gentoo.org>
4016 Date:   Thu Mar 20 21:10:01 2008 +0000
4017
4018     it's called bmRequestType
4019
4020 commit 88884ae4bbe721dac117d5190303cb67852fa5d3
4021 Author: Daniel Drake <dsd@gentoo.org>
4022 Date:   Thu Mar 20 21:07:00 2008 +0000
4023
4024     Save transfer flags before invoking callback
4025     
4026     The callback may free the transfer, in which case we can't read the flags
4027     after it has returned.
4028
4029 commit ead09cde6895df0034a685516987ce253575e9a7
4030 Author: Daniel Drake <dsd@gentoo.org>
4031 Date:   Sat Mar 15 16:35:12 2008 +0000
4032
4033     API documentation
4034     
4035     Hopefully mostly complete. Some constants were renamed and move into
4036     enums.
4037
4038 commit 285724cc14ea5f993e2c4c92fe0aaf6c335bc139
4039 Author: Vasily Khoruzhick <anarsoul@gmail.com>
4040 Date:   Sat Mar 15 13:50:53 2008 +0200
4041
4042     Fix get_device_list for realloc case
4043     
4044     get_device_list can modify pointer passed to it with realloc, but this
4045     case wasn't handled and caused crash on my machine. Fixed
4046     
4047     Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
4048
4049 commit c0c9432d38b22784070dce3a7874c62c31786a27
4050 Author: Daniel Drake <dsd@gentoo.org>
4051 Date:   Thu Mar 13 12:36:56 2008 +0000
4052
4053     Beginnings of cross-platform abstraction
4054     
4055     This also includes a libusb_get_pollfds API change
4056
4057 commit de4c5341d168697baa4c0901c406deb47e78aae7
4058 Author: Daniel Drake <dsd@gentoo.org>
4059 Date:   Mon Mar 10 18:38:15 2008 +0000
4060
4061     Add transfer flags
4062
4063 commit aae05f688dc26a013166ab9436fd25018b49d76a
4064 Author: Daniel Drake <dsd@gentoo.org>
4065 Date:   Mon Mar 10 11:32:15 2008 +0000
4066
4067     Simplify libusb_fill_control_transfer()
4068     
4069     Transfer length can be inferred from the setup packet.
4070
4071 commit 7c5ea95297c2f3f6afc42f60c1bf1bef777bb1fb
4072 Author: Daniel Drake <dsd@gentoo.org>
4073 Date:   Mon Mar 10 11:29:24 2008 +0000
4074
4075     get_device fixup
4076     
4077     Rename API away from "devh" and fix implementation to match header
4078
4079 commit 9e89d1aa82cbe7e21672ee3e2e545238fffc5318
4080 Author: Daniel Drake <dsd@gentoo.org>
4081 Date:   Sun Mar 9 16:27:06 2008 +0000
4082
4083     Rename descriptor-getting functions
4084     
4085     Based on feedback from Tim Roberts
4086
4087 commit 283ae96c3ccbcee1c3950fce18ae47093ae8200e
4088 Author: Daniel Drake <dsd@gentoo.org>
4089 Date:   Sun Mar 9 16:15:02 2008 +0000
4090
4091     Simplify cancellation API
4092     
4093     No need to provide the device here.
4094
4095 commit ebad1c79688ba603ad017ed0fe2f3c0dc8edd1ad
4096 Author: Daniel Drake <dsd@gentoo.org>
4097 Date:   Sun Mar 9 16:12:08 2008 +0000
4098
4099     Rename libusb_dev_handle to libusb_device_handle
4100
4101 commit 1ac0a7d88f282b6f293c456fac8edb143cbaca3d
4102 Author: Daniel Drake <dsd@gentoo.org>
4103 Date:   Sun Mar 9 01:01:57 2008 +0000
4104
4105     Move synchronous I/O implementation to its own file
4106
4107 commit 66348c90ea4570bf999ac301089e006d0cce1926
4108 Author: Daniel Drake <dsd@gentoo.org>
4109 Date:   Sun Mar 9 00:58:09 2008 +0000
4110
4111     Separate transfer allocation and submission
4112     
4113     Leads to some hefty API changes. Now we're much more similar to the
4114     Linux kernel model.
4115     
4116     Problems with dealing with asynchronous control transfers are passed
4117     on to the user, basically you must allocate a buffer, start with the
4118     setup, and put the data after. This won't make much sense until
4119     documented (soon...)
4120
4121 commit d21ebe47ce578c93cd8969be1c933d503e32e5d4
4122 Author: Daniel Drake <dsd@gentoo.org>
4123 Date:   Sat Mar 8 12:48:35 2008 +0000
4124
4125     Rework URB API naming
4126     
4127     Now refer to everything as "transfers" as consistent with the USB spec
4128     libusb_transfer is now a kind of transfer handle. To reduce confusion
4129     with libusb_bulk_transfer and libusb_control_transfer, those have been
4130     renamed to libusb_{control,bulk}_transfer_request.
4131
4132 commit fd6fb3cc093ad47271353a0e468d16547f991382
4133 Author: Daniel Drake <dsd@gentoo.org>
4134 Date:   Sat Mar 8 11:53:33 2008 +0000
4135
4136     Add fallback on /proc/bus/usb
4137     
4138     /dev/bus/usb is a relatively new thing probably not present on every
4139     system
4140
4141 commit f3fdf447916289cd92b7190377681894e8ab611a
4142 Author: Daniel Drake <dsd@gentoo.org>
4143 Date:   Sat Mar 8 00:10:16 2008 +0000
4144
4145     Persistent libusb_device storage
4146     
4147     Devices are now assigned a session ID (currently busnum:devaddr) which
4148     is used to distinguish unique devices.
4149     
4150     Now multiple callers of libusb_get_device_list will get the same
4151     libusb_device structure instances.
4152
4153 commit 23f8fb8bafeeda93ce234cb40eb7219d2e36c19c
4154 Author: Daniel Drake <dsd@gentoo.org>
4155 Date:   Thu Mar 6 23:43:57 2008 +0000
4156
4157     Add convenience function to find and open a device by USB VID+PID
4158     
4159     Lots of libusb apps I write are simple test apps not intended to be real
4160     apps. Having a function available to quickly locate my device will be
4161     handy in such situations.
4162
4163 commit 9cfdb494fccac53a4277da7c8b6d15f1a72a4959
4164 Author: Daniel Drake <dsd@gentoo.org>
4165 Date:   Thu Mar 6 23:25:20 2008 +0000
4166
4167     Rework device discovery API
4168     
4169     libusb_find_devices and libusb_get_devices are no more
4170     
4171     libusb_get_device_list obtains a list of libusb_device structures for all
4172     known devices in the system.
4173     
4174     Each libusb_device now has a reference count, defaulting to 1 on
4175     instantiation. The reference count of 1 refers to the fact that it is
4176     present in the list in this scenario.
4177     
4178     Opening a device adds a pointer to the libusb_device structure in the
4179     handle, so that also adds a reference. Closing the device removes that
4180     reference.
4181     
4182     The function to free the device list can optionally unref all the devices
4183     inside.
4184     
4185     In future we will make the libusb_device instances all "global" so that if
4186     the app calls get_device_list twice it actually gets the same libusb_device
4187     structure references back. This way we can start to track disconnects, and
4188     we can investigate adding a unique "session ID" to each libusb_device, an
4189     identifier guaranteed to be unique to that device until reboot.
4190
4191 commit 77cea822788e024c848c7f554915f771a2dc1e0f
4192 Author: Daniel Drake <dsd@gentoo.org>
4193 Date:   Thu Mar 6 17:05:04 2008 +0000
4194
4195     Remove ctrl debug code
4196     
4197     This was unintentionally committed
4198
4199 commit b873521a6f575628d535f89278bb67888004d0ca
4200 Author: Daniel Drake <dsd@gentoo.org>
4201 Date:   Tue Feb 26 22:11:34 2008 +0000
4202
4203     Notifications for changes to the fd set
4204     
4205     Applications can now be notified when they should start and stop polling
4206     new file descriptors.
4207
4208 commit ca66e16a370c828d08a5bc3f9f203db145c81a4c
4209 Author: Daniel Drake <dsd@gentoo.org>
4210 Date:   Fri Feb 1 12:20:20 2008 +0000
4211
4212     Fix header installation path
4213
4214 commit e583100a4086c411093eef5c450880b965df6b1b
4215 Author: Daniel Drake <dsd@gentoo.org>
4216 Date:   Wed Jan 30 13:24:54 2008 +0000
4217
4218     TODO update
4219
4220 commit 637a8d7ff8a11a23588925d9d3003a609bda8075
4221 Author: Daniel Drake <dsd@gentoo.org>
4222 Date:   Wed Jan 30 13:19:10 2008 +0000
4223
4224     Remove timers and signalfd
4225     
4226     Instead of timers, add a mechanism for informing the parent app when the
4227     next timeout is due to happen, so that it can call us at that time.
4228     
4229     As we no longer use signals, signalfd has also been removed.
4230
4231 commit 8c56abe2e13ed4dd8c15737c21be7b6b1e5cf2ac
4232 Author: Daniel Drake <dsd@gentoo.org>
4233 Date:   Sat Jan 26 18:16:56 2008 +0000
4234
4235     Poll usbfs descriptors directly
4236     
4237     We don't need to use signalfd for this functionality because we can poll
4238     the file descriptors for write events.
4239
4240 commit e3ce855acec33d37dd833bca5dad5e8c3773003a
4241 Author: Daniel Drake <dsd@gentoo.org>
4242 Date:   Sat Jan 26 17:26:40 2008 +0000
4243
4244     Fix dpfp example compilation
4245
4246 commit 1d41a5cda2fefe826877ee4445199af30aa188b7
4247 Author: Daniel Drake <dsd@gentoo.org>
4248 Date:   Sat Jan 26 17:22:53 2008 +0000
4249
4250     C++ header safety
4251     
4252     Pointed out by JF
4253
4254 commit 37b7f9a112eb1441d352467f661205b8872d0553
4255 Author: Daniel Drake <dsd@gentoo.org>
4256 Date:   Sat Jan 26 14:03:43 2008 +0000
4257
4258     Only use -fgnu89-inline when supported
4259     
4260     J F pointed out that this option only works on gcc 4.3 and newer.
4261
4262 commit e3a09ca0b9cb6f46d54a0130f678c6097240a2bd
4263 Author: Daniel Drake <dsd@gentoo.org>
4264 Date:   Sat Jan 5 21:59:40 2008 +0000
4265
4266     Remove more fpusb remnants
4267
4268 commit dcd5e0075fa84601d997d29bb60bc8370b97a375
4269 Author: Daniel Drake <dsd@gentoo.org>
4270 Date:   Fri Jan 4 01:19:07 2008 +0000
4271
4272     TODO update
4273     
4274     Start listing the things I want to discuss/reconsider before 1.0 API
4275     is final.
4276
4277 commit de53d972ed9c1f21f86ffd585560520e986f212c
4278 Author: Daniel Drake <dsd@gentoo.org>
4279 Date:   Fri Jan 4 01:17:06 2008 +0000
4280
4281     Rename some _devh_ functions
4282     
4283     Decided against naming functions in this style based on advice from
4284     Tim Roberts. Still not really sure about devh naming in general.
4285
4286 commit 132d84bf8ae34bd0892b3d8207a53d87cc0a9cba
4287 Author: Daniel Drake <dsd@gentoo.org>
4288 Date:   Fri Jan 4 01:13:25 2008 +0000
4289
4290     Use "transfer" instead of "msg"
4291     
4292     Based on a discussion with Tim Roberts.
4293
4294 commit ea6af58a8643137eb01eeb7d2f65404e390feb1b
4295 Author: Daniel Drake <dsd@gentoo.org>
4296 Date:   Fri Jan 4 00:57:00 2008 +0000
4297
4298     Plural of bus is busses
4299     
4300     SF #1633043
4301
4302 commit dbb3fd871e3972b4e670f3161e7cd2f58f357600
4303 Author: Daniel Drake <dsd@gentoo.org>
4304 Date:   Fri Jan 4 00:54:57 2008 +0000
4305
4306     API renaming: remove fpi and usb_ stuff
4307     
4308     fpi changed to usbi.
4309     
4310     We should not expose structures with prefix "usb_" in the public
4311     namespace as it is quite likely there will be some conflict somewhere.
4312     Instead, using "libusb_" should be safer.
4313
4314 commit e9364d72151ae1de9cce4175f330fe1529f02511
4315 Author: Daniel Drake <dsd@gentoo.org>
4316 Date:   Fri Jan 4 00:40:49 2008 +0000
4317
4318     Rename to libusb-1.0
4319     
4320     I've taken over the libusb project, and what was previously known as fpusb
4321     will eventually be released as libusb-1.0.
4322
4323 commit f4ed0b6a3e0a20555fdfc9e9b8be7e8a2c8ae192
4324 Author: Daniel Drake <dsd@gentoo.org>
4325 Date:   Sun Dec 30 22:09:50 2007 +0000
4326
4327     Compiler flags update
4328     
4329     Also fix some warnings
4330
4331 commit d3d671efe27491baf1d2ceadbfeeb4e7428d6f9a
4332 Author: Daniel Drake <dsd@gentoo.org>
4333 Date:   Sun Dec 30 22:05:17 2007 +0000
4334
4335     Fix signalfd structure size on x86
4336     
4337     ptr is a 64-bit value
4338
4339 commit dfac6756faad76071a92945e3e3a16b8a841a7ea
4340 Author: Daniel Drake <dsd@gentoo.org>
4341 Date:   Wed Dec 12 23:32:54 2007 +0000
4342
4343     Don't pass ctrl_msg/bulk_msg structures through async paths
4344     
4345     These are easiest to construct on the stack, but in the async case it is
4346     likely that the submitting function returns (hence stack is destroyed)
4347     before URB completion.
4348
4349 commit a8d2881eb7c273892acf2ff6e1f3f552631d1d11
4350 Author: Daniel Drake <dsd@gentoo.org>
4351 Date:   Mon Dec 3 23:29:22 2007 +0000
4352
4353     Add functionality to access device descriptors
4354
4355 commit b5a7a411087b37a6bf56b4688a9e3290daaed153
4356 Author: Daniel Drake <dsd@gentoo.org>
4357 Date:   Mon Dec 3 22:27:21 2007 +0000
4358
4359     Rename fpusb_device_handle functions to devh
4360     
4361     Prevents confusion with functions that work on fpusb_dev structures.
4362
4363 commit eacf4505a473df0f521d1b69d5b45448f0709e2d
4364 Author: Daniel Drake <dsd@gentoo.org>
4365 Date:   Sun Dec 2 23:16:57 2007 +0000
4366
4367     Add API to access poll fd
4368     
4369     Almost forgot... :)
4370
4371 commit 852bba4754ec57679c823f33e8feba6e4a564cbe
4372 Author: Daniel Drake <dsd@gentoo.org>
4373 Date:   Wed Nov 28 13:48:45 2007 +0000
4374
4375     Initial commit
4376     
4377     Basic library structure which supports enumerating detected USB devices