Home | History | Annotate | Download | only in libusb
      1 commit a04cbb0095a78aeed3f65aaf06c46069d0ac184a
      2 Author: Daniel Drake <dan (a] reactivated.net>
      3 Date:   Tue May 4 19:01:59 2010 -0300
      4 
      5     v1.0.8 release
      6 
      7 commit 53b47299531974fa8901b74a163f3c8ebae4eec9
      8 Author: Daniel Drake <dan (a] reactivated.net>
      9 Date:   Thu Apr 22 18:12:51 2010 -0300
     10 
     11     Linux: don't set SHORT_NOT_OK on bulk out URBs (#20
     12     
     13     Setting this flag is illegal, and the behaviour we're looking for
     14     is already in place for host-to-device transfers without this flag.
     15 
     16 commit 1519828b7ee1fce46d4c51fc097d52e01b8e0bb4
     17 Author: Daniel Drake <dan (a] reactivated.net>
     18 Date:   Tue Apr 20 20:14:09 2010 -0300
     19 
     20     Linux: Handle failure to read active configuration during enumeration
     21 
     22 commit 45168627cc15aee3875192f34286110dbbd27095
     23 Author: Nathan Hjelm <hjelmn (a] me.com>
     24 Date:   Tue Apr 20 19:43:06 2010 -0300
     25 
     26     Darwin: don't reuse cached descriptors during enumeration
     27     
     28     Descriptor reuse was causing scans to return invalid information when
     29     the device at a location has changed.
     30 
     31 commit 3af329db6dcbfb96d24867c757f9e125e5b7b0e5
     32 Author: Daniel Drake <dan (a] reactivated.net>
     33 Date:   Mon Apr 19 19:36:55 2010 -0300
     34 
     35     v1.0.7 release
     36 
     37 commit ceb8cacd6d2a4189de0db2ee46d45217511c69be
     38 Author: Daniel Drake <dan (a] reactivated.net>
     39 Date:   Mon Apr 19 19:31:12 2010 -0300
     40 
     41     Document that fd set contents are an internal implementation detail (#36)
     42 
     43 commit 9bea500b5747bdeba7c8251d45608558e71a1db5
     44 Author: Martin Koegler <mkoegler (a] auto.tuwien.ac.at>
     45 Date:   Mon Apr 19 19:22:46 2010 -0300
     46 
     47     Linux: correct config descriptor endianness fix
     48     
     49     The seek_to_next_config codepath deals with both sysfs and usbfs;
     50     make sure we only convert values in the usbfs path.
     51 
     52 commit 02df59a309e813c50b8230de99e69fb4e1814279
     53 Author: Martin Koegler <mkoegler (a] auto.tuwien.ac.at>
     54 Date:   Mon Apr 5 17:11:32 2010 +0200
     55 
     56     Linux: Fix endianness handling of usbfs config descriptors (#27)
     57     
     58     driver/usb/core/devio.c function usbdev_read translate the follwing files
     59     to CPU endianess:
     60     
     61     le16_to_cpus(&temp_desc.bcdUSB);
     62     le16_to_cpus(&temp_desc.idVendor);
     63     le16_to_cpus(&temp_desc.idProduct);
     64     le16_to_cpus(&temp_desc.bcdDevice);
     65     
     66     All other data is passed without any change.
     67     
     68     libusb/os/linux_usbfs.c calls usbi_parse_descriptor with host_endian=1
     69     for config descriptors. According to the kernel code, they must be
     70     processed with host_endian=0, as they are not translated by the kernel.
     71     
     72     Signed-off-by: Martin Koegler <mkoegler (a] auto.tuwien.ac.at>
     73 
     74 commit ec303b01a5d4e51c000a283853af65059fa62285
     75 Author: Nathan Hjelm <hjelmn (a] mac.com>
     76 Date:   Tue Mar 23 16:22:08 2010 -0600
     77 
     78     Darwin: fix enumeration of devices with non-consecutive addresses (#23)
     79 
     80 commit cd809e2f7cee3874b7ae16b2c482a8b63a90e4a5
     81 Author: Bastien Nocera <hadess (a] hadess.net>
     82 Date:   Mon Mar 8 10:50:51 2010 +0000
     83 
     84     Add more interface classes
     85     
     86     As used in bluez.
     87 
     88 commit 1ce4aa67d849f5cad8a21072dc1c7b42158ce817
     89 Author: Nathan Hjelm <hjelmn (a] mac.com>
     90 Date:   Thu Mar 18 11:32:32 2010 -0600
     91 
     92     Darwin: Cleanup async callback code, catch request timeouts
     93 
     94 commit 68af9f8d731f700267335941a8214d34ab518cc8
     95 Author: Nathan Hjelm <hjelmn (a] mac.com>
     96 Date:   Thu Mar 18 11:31:46 2010 -0600
     97 
     98     Darwin: fix endianness of control setup packet
     99     
    100     IOUSBLib expects the control request to be in host byte order.
    101     Swap the request into host byte order.
    102 
    103 commit cfce4d127184f4e4f334976151a0f80594bb5e22
    104 Author: Nathan Hjelm <hjelmn (a] mac.com>
    105 Date:   Mon Feb 15 14:10:08 2010 -0600
    106 
    107     Darwin: fix memory leak in process_device
    108     
    109     Credit to Mike Colagrosso for finding this bug.
    110 
    111 commit 161893cfbefefe315f657677705abe090fc526f2
    112 Author: Nathan Hjelm <hjelmn (a] mac.com>
    113 Date:   Mon Feb 15 14:09:19 2010 -0600
    114 
    115     Darwin: use logging functions
    116     
    117     Use usbi_warn, usbi_err, and usbi_info instead of _usbi_log.
    118 
    119 commit 2a72f38548208044dc3aa62681419d006c35732d
    120 Author: Nathan Hjelm <hjelmn (a] mac.com>
    121 Date:   Mon Feb 15 14:07:44 2010 -0600
    122 
    123     Darwin: support multiple calls to libusb_init
    124     
    125     Credit to Orin Eman for finding this bug.
    126 
    127 commit a4186794d87124503db2f5f51f51ce90bb95daa7
    128 Author: Daniel Drake <dan (a] reactivated.net>
    129 Date:   Sun Nov 22 17:20:53 2009 +0000
    130 
    131     v1.0.6 release
    132 
    133 commit 8392ff22136fccaf1e15d186157609b8dd127bc5
    134 Author: Ludovic Rousseau <rousseau (a] debian.org>
    135 Date:   Sun Oct 25 10:06:41 2009 +0100
    136 
    137     lsusb example: make print_devs() static
    138     
    139     lsusb.c:26: warning: no previous prototype for print_devs
    140 
    141 commit 9cc6bfaa15239bb6db1c1570b9beb6df2f848951
    142 Author: Ludovic Rousseau <rousseau (a] debian.org>
    143 Date:   Sun Oct 25 10:05:10 2009 +0100
    144 
    145     Darwin: fix warning in darwin_error_str()
    146     
    147     os/darwin_usb.c:63: warning: return discards qualifiers from pointer
    148     target type
    149 
    150 commit 4c706d2fb6b2c43b10d72ac5dff51cac4d939f1a
    151 Author: Nathan Hjelm <hjelmn (a] mac.com>
    152 Date:   Sat Nov 21 17:06:43 2009 +0000
    153 
    154     Darwin: allow devices to be opened multiple times
    155     
    156     Allows libusb applications to access multiple interfaces of the same
    157     device in the same application.
    158     
    159     Also fixes a set alt interface bug.
    160 
    161 commit 0232fc559cdacb9561f982dd6d28feb4435b3e4e
    162 Author: Daniel Drake <dan (a] reactivated.net>
    163 Date:   Sat Nov 21 17:01:32 2009 +0000
    164 
    165     Increase libusb_handle_events() timeout to 60 seconds
    166     
    167     The internal timing seems to be working, this will be a better test of
    168     it before we make this timeout unlimited.
    169 
    170 commit 0bd7ef5d8697973a026c36c15d6276177b4ec4ea
    171 Author: Daniel Drake <dan (a] reactivated.net>
    172 Date:   Sat Nov 21 16:57:25 2009 +0000
    173 
    174     Refine timerfd header check (#18)
    175     
    176     Require glibc-2.9 for the working timerfd support.
    177 
    178 commit 90d8fcab9018b8e6887a7e0592d1e5f692117234
    179 Author: Daniel Drake <dsd (a] gentoo.org>
    180 Date:   Sun Nov 15 12:17:13 2009 +0000
    181 
    182     v1.0.5 release
    183 
    184 commit 11d591058e3f105b0e90c23bbf58b18de691e690
    185 Author: Daniel Drake <dsd (a] gentoo.org>
    186 Date:   Sat Nov 7 10:43:59 2009 +0000
    187 
    188     Update documentation about early completion caveats
    189 
    190 commit f796c9528a71aa55326b6f0c9c7c5ec073d2bf92
    191 Author: Ludovic Rousseau <rousseau (a] debian.org>
    192 Date:   Sun Oct 25 09:59:51 2009 +0100
    193 
    194     Add libusb_get_max_iso_packet_size() to libusb.h
    195     
    196     core.c:777: warning: no previous prototype for 'libusb_get_max_iso_packet_size'
    197 
    198 commit 4783008b7e711de9cb31631e60dda995f44068de
    199 Author: Daniel Drake <dsd (a] gentoo.org>
    200 Date:   Wed Oct 28 20:33:49 2009 +0545
    201 
    202     Use timerfd for timeout handling
    203     
    204     Use a new file descriptor from the timerfd system calls to handle
    205     timeouts. On supported systems, this means that there is less hassle
    206     figuring out when the poll() timeout should be, since
    207     libusb_get_next_timeout() will always return 0 and the timeout events will
    208     be triggered as regular activity on the file descriptor set.
    209     
    210     Add API function libusb_pollfds_handle_timeouts() to detect whether
    211     you're on a platform with the timing headache, and flesh out the
    212     surrounding documentation.
    213 
    214 commit 9b120c2b3735566533c179aa8ca758fe45899a38
    215 Author: Daniel Drake <dsd (a] gentoo.org>
    216 Date:   Sat Nov 7 10:03:07 2009 +0000
    217 
    218     Use AM_SILENT_RULES for building
    219 
    220 commit ef6ea6c3ae38e4524f10e16e8cb88177d39c4826
    221 Author: Daniel Drake <dsd (a] gentoo.org>
    222 Date:   Fri Nov 6 21:54:08 2009 +0000
    223 
    224     v1.0.4 release
    225 
    226 commit 217f57617e0cff0d1bd6d726b243f04c6b179773
    227 Author: David Moore <dcm (a] acm.org>
    228 Date:   Fri Nov 6 21:37:25 2009 +0000
    229 
    230     Linux: Add support for the new URB_BULK_CONTINUATION flag
    231     
    232     Add support for the new USBDEVFS_URB_BULK_CONTINUATION flag to libusb.
    233     
    234     This flag, which is expected to be available in usbfs starting with
    235     kernel 2.6.32, allows the kernel to cancel multiple URBs upon receipt
    236     of a short packet.  This capability allows libusb to preserve data
    237     integrity of large bulk transfers that are split into multiple URBs.
    238     Without this support, these URBs must be canceled in userspace upon
    239     receipt of a short packet, a race condition against future transfers
    240     which might partially fill these canceled URBs.
    241     
    242     This patch automatically detects whether a supported kernel is present
    243     and enables the use of the flag when possible.
    244     
    245     [dsd: tweaks to supported kernel detection, and some inline
    246      documentation of this mechanism]
    247 
    248 commit 69830057547396f893f0d7b3125a05d016313b10
    249 Author: Daniel Drake <dsd (a] gentoo.org>
    250 Date:   Wed Oct 28 15:13:22 2009 +0545
    251 
    252     Transfer locking
    253     
    254     At least on Linux, there were some possible races that could occur if
    255     a transfer is cancelled from one thread while another thread is handling
    256     an event for that transfer, or for if a transfer completes while it is
    257     still being submitted from another thread, etc.
    258     
    259     On the global level, transfers could be submitted and cancelled at the
    260     same time.
    261     
    262     Fix those issues with transfer-level locks.
    263 
    264 commit 98f1b30d24359cb3185051b8df9ebb663cc10369
    265 Author: Daniel Drake <dsd (a] gentoo.org>
    266 Date:   Mon Sep 14 08:01:24 2009 +0100
    267 
    268     Clarify that timeout 0 means unlimited timeout
    269 
    270 commit 858684f0dd25921e09565034a88709dbf6f6c61b
    271 Author: Daniel Drake <dsd (a] gentoo.org>
    272 Date:   Fri Sep 11 22:09:12 2009 +0100
    273 
    274     Linux: more flexibility with monotonic clock
    275     
    276     Some users have reported that CLOCK_MONOTONIC does not work on their
    277     systems - I suspect it is available on x86 but perhaps not some
    278     of the more uncommon architectures. We should fall back on
    279     CLOCK_REALTIME in these cases.
    280     
    281     Also, CLOCK_MONOTONIC_RAW seems even more monotonic, so we should use
    282     that if it is available.
    283     
    284     We now test different clock IDs during initialization to find the
    285     best one that works.
    286 
    287 commit fe0d8dce1ed704915d501e7da700440c78144211
    288 Author: Nathan Hjelm <hjelmn (a] mac.com>
    289 Date:   Fri Sep 11 18:00:29 2009 +0100
    290 
    291     Darwin: handle overflows
    292 
    293 commit f46716f42040986203fa6e873bfdabe1be2900ec
    294 Author: Daniel Drake <dsd (a] gentoo.org>
    295 Date:   Thu Aug 27 21:14:54 2009 +0545
    296 
    297     v1.0.3 release
    298 
    299 commit 5b489b8b2a5aba7b8b804e5af6d2628735548238
    300 Author: Toby Peterson <toby (a] macports.org>
    301 Date:   Sun Aug 23 10:04:59 2009 +0545
    302 
    303     Darwin: 64-bit type fixes
    304 
    305 commit ad8ae04d0b52009af0b1180e005f7554d2bbb26c
    306 Author: Nathan Hjelm <hjelmn (a] mac.com>
    307 Date:   Sun Aug 23 10:02:55 2009 +0545
    308 
    309     Darwin: fix crash when reading descriptors after close
    310     
    311     Fix a crash which occurs if the user does the following sequence on a
    312     device: open, close, get_configuration_descriptor.
    313 
    314 commit 45ae2aecf5512dcff059b2a416534e81c6a00c88
    315 Author: Daniel Drake <dsd (a] gentoo.org>
    316 Date:   Sat Aug 1 13:55:15 2009 +0545
    317 
    318     move bug info to bug tracker
    319     
    320     Protection needed: http://www.libusb.org/ticket/4
    321     Losing data: fixed in previous commit
    322 
    323 commit 126129e174062c2a27423817a459e5113f777789
    324 Author: Daniel Drake <dsd (a] gentoo.org>
    325 Date:   Thu Jul 9 22:09:04 2009 +0100
    326 
    327     Linux: try harder not to lose any data
    328     
    329     We would previously lose any data that was present on a cancelled URB.
    330     Work harder to make sure this doesn't happen.
    331 
    332 commit 0334ee642b47dfe1ca9db64b22e7702ea14b3f09
    333 Author: Daniel Drake <dsd (a] gentoo.org>
    334 Date:   Sun Jun 28 19:49:10 2009 +0100
    335 
    336     Add libusb_get_max_iso_packet_size()
    337     
    338     As pointed out by Dennis Muhlestein, libusb_get_max_packet_size()
    339     doesn't really do what the documentation might suggest because it
    340     does not consider the number of transaction opportunities per
    341     microframe.
    342     
    343     Add a new function to do what is useful for isochronous I/O.
    344 
    345 commit 615f18e64e96ae4ecc8e43d0de00933059a5209a
    346 Author: Daniel Drake <dsd (a] gentoo.org>
    347 Date:   Sat Jun 20 22:33:21 2009 +0100
    348 
    349     Linux: fix sending of zero length bulk packets
    350     
    351     Note that there are is a kernel bug preventing this from working
    352     properly at the moment, even after this fix.
    353 
    354 commit 86f79fbf61c2018bdf009c7ebf92b38f3a16fd0c
    355 Author: Nathan Hjelm <hjelmn (a] mac.com>
    356 Date:   Fri Jun 19 22:18:44 2009 +0100
    357 
    358     Darwin: Don't cancel transfers on timeout
    359     
    360     ...because the OS does this for us.
    361 
    362 commit d4bd9ed4de19a9c766f7a23eea8c852cdd61c18f
    363 Author: Daniel Drake <dsd (a] gentoo.org>
    364 Date:   Sun Jun 14 19:23:21 2009 +0100
    365 
    366     Don't terminate enums with commas
    367     
    368     g++ -pedantic doesn't like this
    369     Reported by Eberhard Mattes
    370 
    371 commit 8be256082eb9bd8e243d89529f742926bb29a21b
    372 Author: Daniel Drake <dsd (a] gentoo.org>
    373 Date:   Sat Jun 13 17:19:07 2009 +0100
    374 
    375     v1.0.2 release
    376 
    377 commit 060e006e663fd59c281be29b71eb197e02b210e8
    378 Author: Daniel Drake <dsd (a] gentoo.org>
    379 Date:   Wed Jun 10 21:42:05 2009 +0100
    380 
    381     Linux: fix config descriptor parsing on big-endian systems
    382     
    383     Multi-byte fields in the configuration descriptors that come back from
    384     usbfs are always in bus endian format.
    385     
    386     Thanks to Joe Jezak for help investigating and fixing this.
    387 
    388 commit c4a905022f684da9a4a853eb9232a81a53df2652
    389 Author: Nathan Hjelm <hjelmn (a] mac.com>
    390 Date:   Sun Jun 7 22:29:35 2009 +0100
    391 
    392     Darwin: improve handling of disconnected devices
    393 
    394 commit 6b69f54451762ef590b9c938ab000c07cf9099a3
    395 Author: Nathan Hjelm <hjelmn (a] mac.com>
    396 Date:   Sun Jun 7 22:26:37 2009 +0100
    397 
    398     Darwin: fix parsing of config descriptors
    399     
    400     This was a confusion between configuration numbers and zero-based
    401     configuration indexes.
    402 
    403 commit 2b3a9ffa776b383cb2dbc3c55e490e32e4c3c22b
    404 Author: Daniel Drake <dsd (a] gentoo.org>
    405 Date:   Sun Jun 7 22:19:53 2009 +0100
    406 
    407     Eliminate -Wsign-compare compiler warnings
    408     
    409     This was due to an API inconsistency which can be safely worked around.
    410     Hopefully we'll remember to fix the API next time we come to break
    411     things.
    412 
    413 commit cad5cb55c37137e94e35c74fdabfe42a5cbd229b
    414 Author: David Moore <dcm (a] acm.org>
    415 Date:   Wed May 27 23:15:54 2009 -0700
    416 
    417     Make synchronous transfer APIs robust against signal interruption
    418     
    419     libusb_control_transfer and libusb_bulk_transfer are designed to be
    420     synchronous such that control is not returned until the transfer
    421     definitively succeeds or fails.  That assumption is violated if a signal
    422     interrupts these functions because there is no way for the application
    423     to continue waiting for the transfer without resubmitting it.  This
    424     patch changes these synchronous APIs so they do not abort in the case of
    425     a signal interruption.
    426     
    427     Signed-off-by: David Moore <dcm (a] acm.org>
    428 
    429 commit b501795985a23109f176d296e7b544b4c6354528
    430 Author: Alex Vatchenko <alex (a] fabulatech.com>
    431 Date:   Thu May 28 15:58:50 2009 -0400
    432 
    433     pre-gcc-3.4 compatibility
    434     
    435     The -fvisibility and -Wno-pointer-sign options are not available on
    436     old GCC versions.
    437 
    438 commit 00bb2805e994887f0a754a825c3ce03d22393386
    439 Author: Daniel Drake <dsd (a] gentoo.org>
    440 Date:   Tue May 26 15:53:26 2009 -0400
    441 
    442     Fix memory leak in config descriptor parsing
    443     
    444     Pointed out by Martin Koegler.
    445 
    446 commit 068ff5b8a83fec0a9a91c80535a25b89a9ae64e8
    447 Author: Daniel Drake <dsd (a] gentoo.org>
    448 Date:   Tue May 12 19:20:51 2009 -0400
    449 
    450     Update AUTHORS
    451 
    452 commit aa24c04e4043e39674b59ff0d302b2365cd0078f
    453 Author: Daniel Drake <dsd (a] gentoo.org>
    454 Date:   Tue May 12 19:03:37 2009 -0400
    455 
    456     v1.0.1 release
    457 
    458 commit 44767677447fae4267131f99c591b14117486cac
    459 Author: Daniel Drake <dsd (a] gentoo.org>
    460 Date:   Tue May 12 19:01:44 2009 -0400
    461 
    462     Add BUGS file
    463     
    464     Probably missed a couple of outstanding issues
    465 
    466 commit e0365a6f22e0e7f330ac931df031cf6f17f453d1
    467 Author: Nathan Hjelm <hjelmn (a] mac.com>
    468 Date:   Sun Mar 22 21:13:29 2009 -0400
    469 
    470     Darwin: get_config_descriptor bugfixes
    471 
    472 commit 5fd0e8478240fece646a58a3c6114001a73be99f
    473 Author: Daniel Drake <dsd (a] gentoo.org>
    474 Date:   Wed Feb 25 12:33:33 2009 -0300
    475 
    476     Fix compilation of Darwin backend
    477     
    478     My fault. Reported by ihryamzik (a] gmail.com
    479 
    480 commit b49f6bf5c910d0fd694ecf165d7927673707bff9
    481 Author: Nathan Hjelm <hjelmn (a] mac.com>
    482 Date:   Mon Feb 16 21:39:29 2009 -0300
    483 
    484     Darwin backend
    485 
    486 commit d859158581e9a3250f36cdeeb8ea67cda04053bd
    487 Author: Nathan Hjelm <hjelmn (a] mac.com>
    488 Date:   Mon Feb 16 21:30:49 2009 -0300
    489 
    490     Make endianness macros endian-independent
    491     
    492     Implementation suggested by David Moore. Needed for proper universal
    493     code support on Darwin.
    494 
    495 commit 9196f58bdc8b9e967261df39865215faa5d39cfa
    496 Author: Nathan Hjelm <hjelmn (a] mac.com>
    497 Date:   Mon Feb 16 21:25:18 2009 -0300
    498 
    499     Abstract clock reading into OS layer
    500     
    501     This will differ on Linux and Darwin, at least.
    502     
    503     [dsd: minor style tweaks]
    504 
    505 commit e91207860cac09b3afaafc4c14221b78d585c59a
    506 Author: Daniel Drake <dsd (a] gentoo.org>
    507 Date:   Mon Feb 16 21:20:28 2009 -0300
    508 
    509     Fix endianness in device descriptors
    510     
    511     Pointed out by Nathan Hjelm.
    512 
    513 commit ccf6d3d2f6acf9b9a1cb5e1f1b03f382ae509b17
    514 Author: Nathan Hjelm <hjelmn (a] mac.com>
    515 Date:   Mon Feb 16 21:13:52 2009 -0300
    516 
    517     Only link with librt on Linux
    518     
    519     [dsd: tweak configure.ac change]
    520 
    521 commit 894539931e4b4bd85708fe98b956049243cd6fb0
    522 Author: Hans Ulrich Niedermann <hun (a] n-dimensional.de>
    523 Date:   Mon Jan 26 00:31:48 2009 +0100
    524 
    525     API docs: describe libusb_transfer_cb_fn type
    526     
    527     Add some text describing the libusb_transfer_cb_fn function type
    528     with the semantics I have gathered from reading other parts of
    529     the API docs, referring to the proper section for more details.
    530     
    531     [dsd: tweaked the description slightly]
    532 
    533 commit abe34a2656f8f9f21e53603796c536585e6233ef
    534 Author: Hans Ulrich Niedermann <hun (a] n-dimensional.de>
    535 Date:   Sun Jan 25 18:21:59 2009 +0100
    536 
    537     Make empty array in struct compatible with C99
    538     
    539     If the compiler is known to be running in C99 mode,
    540     use "flexible array members" ("foo[]").
    541     
    542     If the compiler is running in any other mode, continue
    543     using the non-standard but widely common "foo[0]" syntax.
    544 
    545 commit 620075c7400764d9bb539b5c02065c45c2e8251e
    546 Author: Hans Ulrich Niedermann <hun (a] n-dimensional.de>
    547 Date:   Sun Jan 25 18:20:45 2009 +0100
    548 
    549     Avoid signedness errors in API docs example code
    550 
    551 commit c754ae294cfe96ec4738d6641137c9e6c56330c7
    552 Author: Daniel Drake <dsd (a] gentoo.org>
    553 Date:   Sat Jan 17 00:25:40 2009 +0000
    554 
    555     Decrement poll() result when internal pipe has been handled
    556     
    557     When we receive data on the internal control pipe, we need to correctly
    558     decrement the number of ready file descriptors before passing on the
    559     remaining work to the OS implementation.
    560 
    561 commit b9ca960f2ba271d2b1a58e22b7c70464d69f6c8a
    562 Author: David Moore <dcm (a] acm.org>
    563 Date:   Sun Jan 11 21:46:17 2009 -0800
    564 
    565     Prevent transfer from being submitted twice or improperly canceled
    566     
    567     This ensures that tpriv->urbs and tpriv->iso_urbs are always set to NULL
    568     whenever a transfer is not submitted.  In this way, submit_*_transfer()
    569     and cancel_*_transfer() can error check to ensure that the transfer is
    570     in the correct state to be either submitted or canceled, preventing
    571     potential memory leaks or double frees.
    572     
    573     Signed-off-by: David Moore <dcm (a] acm.org>
    574 
    575 commit d2a8ec2da8abcd8f4648ed118da16191011982dd
    576 Author: David Moore <dcm (a] acm.org>
    577 Date:   Wed Jan 7 22:31:09 2009 -0800
    578 
    579     Linux: Fix race condition in cancel_bulk_transfer()
    580     
    581     This fixes a race condition in cancel_bulk_transfer().  In the old
    582     version, awaiting_reap and awaiting_discard are incremented in
    583     cancel_bulk_transfer() and decremented in handle_bulk_completion().
    584     However, since these events may take place in two different threads,
    585     these variables may reach zero before all URBs have been canceled,
    586     triggered spurious callbacks and duplicate frees.
    587     
    588     This changes the logic to use a single variable "num_retired" to replace
    589     both awaiting_reap and awaiting_discard.  num_retired is incremented
    590     only in handle_bulk_completion() and thus there is no race.  The handler
    591     will know that all URBs have been canceled when num_retired becomes
    592     equal to num_urbs.
    593     
    594     This change also simplifies a great deal of the logic in both functions
    595     and is a net reduction in the amount of code.
    596     
    597     Note that some variables such as "reap_action" probably need to still be
    598     protected by a mutex, and this patch does not address that issue.
    599     
    600     Signed-off-by: David Moore <dcm (a] acm.org>
    601 
    602 commit 34b9eebe35d8167d43cffb6ad6175f6b2251b572
    603 Author: Daniel Drake <dsd (a] gentoo.org>
    604 Date:   Sat Dec 13 20:06:49 2008 +0000
    605 
    606     v1.0.0 release
    607     
    608     It's here!
    609 
    610 commit b1d636dde418dc8fe6a8f037dea0d800e57c6b94
    611 Author: Mikhail Gusarov <dottedmag (a] dottedmag.ent>
    612 Date:   Wed Dec 10 15:24:05 2008 +0600
    613 
    614     EOL-whitespace fixes
    615     
    616     Signed-off-by: Mikhail Gusarov <dottedmag (a] dottedmag.ent>
    617 
    618 commit 4a9ac382ba5149ae5b3d0962d6a840b5e0dc13aa
    619 Author: Daniel Drake <dsd (a] gentoo.org>
    620 Date:   Tue Dec 9 21:43:37 2008 +0000
    621 
    622     Linux: fix reading of active configuration
    623     
    624     Shannon Chuang pointed out that we only read 1 byte into an
    625     uninitialized integer, and then return the whole thing.
    626 
    627 commit 81a7310d92461ba7b1d98aeff7c4c007fab07120
    628 Author: Daniel Drake <dsd (a] gentoo.org>
    629 Date:   Tue Dec 9 21:39:11 2008 +0000
    630 
    631     Fix double free in descriptor parsing error path
    632     
    633     Pointed out by Shannon Chuang.
    634 
    635 commit 9b4b53453db56ba9c1d707a645bbe6c7a02a3c81
    636 Author: Daniel Drake <dsd (a] gentoo.org>
    637 Date:   Fri Nov 21 13:28:32 2008 +0000
    638 
    639     Improvements to multi-threaded I/O system
    640     
    641     Documentation brushed up, and I realised that another function is
    642     needed for tight event handling loops -- they must be able to check
    643     if an open/close operation is trying to interrupt it.
    644 
    645 commit 0e5b0fcb77a90b8bd95ad23669da472af31ef069
    646 Author: Daniel Drake <dsd (a] gentoo.org>
    647 Date:   Fri Nov 21 11:00:47 2008 +0000
    648 
    649     SourceForge website upload system changed
    650 
    651 commit a133875e6e2f52eff53ac03f505d59cbdd33e178
    652 Author: Daniel Drake <dsd (a] gentoo.org>
    653 Date:   Fri Nov 21 10:54:57 2008 +0000
    654 
    655     v0.9.4 release
    656 
    657 commit c32aa662769b676ff3247778664fccc71fc427ec
    658 Author: Daniel Drake <dsd (a] gentoo.org>
    659 Date:   Thu Nov 20 15:31:10 2008 +0000
    660 
    661     Pause event handling while opening and closing devices
    662     
    663     Ludovic Rousseau found that crashes often occur if you close a device
    664     while another thread is doing event handling.
    665     
    666     Fix this by adding an internal control pipe, which the close routines
    667     use to interrupt the event handler and obtain the event handling lock,
    668     ensuring that no other thread is handling events while the device is
    669     closed. After the close completes, it signals all the event handlers
    670     to start up again using the usual mechanism.
    671     
    672     Also modified libusb_open() to do a similar thing, so that event
    673     handlers are interrupted in order to realise that a new poll fd has
    674     appeared.
    675 
    676 commit 1d7cf3d0fa8698eae25097cbda1870be90ff6f5e
    677 Author: Bastien Nocera <hadess (a] hadess.net>
    678 Date:   Thu Oct 30 14:35:23 2008 +0000
    679 
    680     Add libusb_attach_kernel_driver()
    681     
    682     Add support for re-attaching a driver to a device under Linux.
    683     
    684     [dsd: fixed handling of return value, and added LIBUSB_ERROR_BUSY case]
    685 
    686 commit 914a4e70657c86b5094770aa2d898c978b1cdf41
    687 Author: Daniel Drake <dsd (a] gentoo.org>
    688 Date:   Sun Nov 2 21:45:54 2008 +0000
    689 
    690     Linux: handle low-level transfer errors
    691     
    692     Handle more URB error status codes, thanks to Lou and Alan Stern.
    693 
    694 commit d25b566b3b8febafdda4211de724b4727dd4b7e0
    695 Author: Aurelien Jarno <aurelien (a] aurel32.net>
    696 Date:   Thu Sep 4 13:50:49 2008 +0200
    697 
    698     Support for out-of-tree building
    699     
    700     Contrary to libusb 0.1, libusb 1.0 does not support out-of-tree building
    701     for the documentation part. This patch fixes that by using a
    702     doxygen.cfg.in file, which contains @top_srcdir@ to refer to the
    703     location of the libusb source code.
    704 
    705 commit 8674c67ef78e1cf89db1fa584a4304f7c5ddcc5f
    706 Author: Daniel Drake <dsd (a] gentoo.org>
    707 Date:   Sun Nov 2 15:00:39 2008 +0000
    708 
    709     Document the logging style
    710     
    711     Suggested by Lou.
    712 
    713 commit 94936cbcfe3f02eb65c8b91e29896604316259d8
    714 Author: Daniel Drake <dsd (a] gentoo.org>
    715 Date:   Wed Aug 27 22:44:24 2008 -0500
    716 
    717     Async I/O documentation touchups
    718 
    719 commit 2f8f1b1a900f5b9828e5e2ff93c2b26a44fd9de2
    720 Author: Daniel Drake <dsd (a] gentoo.org>
    721 Date:   Wed Aug 27 21:23:10 2008 -0500
    722 
    723     Doc: fix typo in events lock section
    724 
    725 commit 046e681e4ac6b697e40458ee0f5baf3cd8763bb0
    726 Author: Daniel Drake <dsd (a] gentoo.org>
    727 Date:   Sat Aug 23 01:00:21 2008 -0500
    728 
    729     v0.9.3 release
    730 
    731 commit fec6eaa4eecdf7e0b8299157a5dabef94417f193
    732 Author: Daniel Drake <dsd (a] gentoo.org>
    733 Date:   Sat Aug 23 00:57:44 2008 -0500
    734 
    735     Reset internal transfer flags on submit
    736     
    737     This fixes a problem pointed out by Lou, where resubmitting a transfer
    738     that previously timed out never timed out again, as if the timeout had
    739     been set to 0.
    740 
    741 commit 81627bd38900ec9701ab69c141aa51a9abea1f60
    742 Author: Daniel Drake <dsd (a] gentoo.org>
    743 Date:   Sun Aug 10 17:09:48 2008 -0500
    744 
    745     Add libusb_get_configuration prototype
    746     
    747     Pointed out by Lou
    748 
    749 commit 1631eaefcc7cdf7047c6b9225618a9aa1b3d87d1
    750 Author: Daniel Drake <dsd (a] gentoo.org>
    751 Date:   Sat Jul 19 17:51:28 2008 -0500
    752 
    753     v0.9.2 release
    754 
    755 commit 0d9c40d7f3eee15ada624b5caab2cfb912144fdc
    756 Author: Daniel Drake <dsd (a] gentoo.org>
    757 Date:   Wed Jul 16 09:22:12 2008 -0500
    758 
    759     Linux: fix sysfs directory handling
    760     
    761     The length of the directory name varies, e.g. when you have nested hubs.
    762     Use dynamic allocation to be able to deal with any length of name.
    763 
    764 commit 66c9847ad54b126ccafd4877292454ab57d0c115
    765 Author: David Engraf <dogge2k (a] gmx.de>
    766 Date:   Wed Jul 16 09:16:38 2008 -0500
    767 
    768     Linux: correct usage of MAX_PATH
    769     
    770     Thanks to clarification from Artem Egorkine, MAX_PATH already includes
    771     space for the trailing NULL.
    772 
    773 commit 6494f07a6d1b73ce786ae581c4ff691e39e61d19
    774 Author: Daniel Drake <dsd (a] gentoo.org>
    775 Date:   Tue Jul 8 21:15:54 2008 -0500
    776 
    777     Linux: fix bulk/iso transfer double-cancellation
    778     
    779     Reset counters to 0 so that it's possible to cancel a transfer twice
    780     without breaking things. Not sure that I want to support this properly,
    781     but this makes it work at least.
    782 
    783 commit 9140f5b414e37a3714cde9c6d6c87c963338a83a
    784 Author: Daniel Drake <dsd (a] gentoo.org>
    785 Date:   Sat Jun 28 21:28:44 2008 -0500
    786 
    787     v0.9.1 release
    788 
    789 commit 83a029062c1d2bfb584d7a6ee94915583d37464c
    790 Author: Daniel Drake <dsd (a] gentoo.org>
    791 Date:   Sat Jun 28 21:24:49 2008 -0500
    792 
    793     Add missing GET_CONTEXT()
    794 
    795 commit fbad9a5426f0369394c88987355a8fb06a741ca1
    796 Author: Daniel Drake <dsd (a] gentoo.org>
    797 Date:   Sat Jun 28 21:18:41 2008 -0500
    798 
    799     Linux: Compatibility with new sysfs descriptors file
    800     
    801     As of 2.6.26, the descriptors file now includes all descriptors, not
    802     just the active one.
    803 
    804 commit 819e65f880ca43526036e56c65c415042c91f58f
    805 Author: Daniel Drake <dsd (a] gentoo.org>
    806 Date:   Thu Jun 26 22:47:05 2008 -0500
    807 
    808     Allow user data pointer to be passed through pollfd notification API
    809 
    810 commit 1df713d622ab4f0b03aad72d903ac7beb8fb3b90
    811 Author: Daniel Drake <dsd (a] gentoo.org>
    812 Date:   Tue Jun 24 23:01:51 2008 -0500
    813 
    814     Introduce contexts to the API
    815     
    816     Suggested by David Zeuthen. This allows multiple libraries in the same
    817     process to independently use libusb without interfering.
    818 
    819 commit 9818151c60a85aea6af24cb0996a92c3726c9864
    820 Author: Daniel Drake <dsd (a] gentoo.org>
    821 Date:   Tue Jun 24 21:31:13 2008 -0500
    822 
    823     Revert "Temporary workaround for event handling serialization issue"
    824     
    825     This reverts commit 2d3a1111caff40ebb87983c861ff548cdc9e5946.
    826     This was based on the assumption that dying threads would automatically
    827     release mutexes, which is not the case.
    828 
    829 commit d5f82893fab3f1c13b1af4ba17aac72479bad7d5
    830 Author: Daniel Drake <dsd (a] gentoo.org>
    831 Date:   Fri Jun 20 23:04:53 2008 -0500
    832 
    833     Overflow handling
    834 
    835 commit 546dee211eefbdd280fd1fc9dee84a9b52105078
    836 Author: Artem Egorkine <arteme (a] gmail.com>
    837 Date:   Tue Jun 17 18:27:38 2008 -0500
    838 
    839     a fix for SIGSEGV in handle_bulk_completion()
    840     
    841     We cannot dereference tpriv after calling
    842     usbi_handle_transfer_cancellation() because that function may invoke
    843     the user-supplied callback which may free the transfer.
    844 
    845 commit 947ba8056456a5215724fb502e3e09d50016f699
    846 Author: Daniel Drake <dsd (a] gentoo.org>
    847 Date:   Mon Jun 16 22:50:50 2008 -0500
    848 
    849     Refine configuration selection again
    850     
    851     At Alan Stern's suggestion, just offer the bare "set configuration" and
    852     "get configuration" functionality, and let applications worry about the
    853     specific race conditions and unusual situations.
    854 
    855 commit e7a7a49d0331ee0e14145f6e7ec39763b36314ac
    856 Author: Daniel Drake <dsd (a] gentoo.org>
    857 Date:   Sun Jun 15 15:29:38 2008 -0500
    858 
    859     docs update
    860     
    861     Add a THANKS file, make copyright notices easily accessible, update TODO
    862 
    863 commit 217534e4b396081e038ee5f94c813d1668963673
    864 Author: Daniel Drake <dsd (a] gentoo.org>
    865 Date:   Sun Jun 15 15:23:29 2008 -0500
    866 
    867     round up poll timeout
    868     
    869     Pointed out by Richard Rjfors, otherwise we end up busy-looping with
    870     a poll() timeout of 0.
    871 
    872 commit 5ad79b324bc5e11a75a585398a1e81c26f05e758
    873 Author: Felipe Balbi <me (a] felipebalbi.com>
    874 Date:   Sun Jun 8 12:34:48 2008 +0300
    875 
    876     fix doc about libusb_open()
    877     
    878     libusb_open() returns int instead of libusb_device_handle.
    879     
    880     Signed-off-by: Felipe Balbi <me (a] felipebalbi.com>
    881     [dsd: small correction]
    882 
    883 commit 2d3a1111caff40ebb87983c861ff548cdc9e5946
    884 Author: Daniel Drake <dsd (a] gentoo.org>
    885 Date:   Thu May 29 17:26:26 2008 +0100
    886 
    887     Temporary workaround for event handling serialization issue
    888     
    889     Ludovic Rousseau pointed out that libusb_unlock_events() is not called
    890     when a thread gets terminated with a signal, meaning that event waiters
    891     will not be woken up in this case.
    892     
    893     Add a temporary hack to libusb_event_handler_active() so that at least
    894     the other threads will realise on the next iteration of their event
    895     handling loop.
    896     
    897     The real fix will likely involve reworking most of this.
    898 
    899 commit 514bb8790cfe8b93ccfff82bc17081b1030acce0
    900 Author: Daniel Drake <dsd (a] gentoo.org>
    901 Date:   Thu May 29 12:35:01 2008 +0100
    902 
    903     Refine libusb_set_configuration() semantics
    904     
    905     Applications will generally want to set a configuration before claiming
    906     interfaces. The problem is that the interface may already be set, and
    907     someone else may have claimed an interface (meaning that all calls to
    908     set_configuration will fail, even if it's for the same configuration).
    909     
    910     There are now 2 options:
    911     1. Use the new libusb_get_configuration() to determine active
    912        configuration before calling libusb_set_configuration()
    913     2. Or just call libusb_set_configuration() as usual, which will do
    914        nothing if that configuration is already active.
    915 
    916 commit d1292f8e7300051239a7ed2769d221dc7a6f9fca
    917 Author: Daniel Drake <dsd (a] gentoo.org>
    918 Date:   Sun May 25 23:42:42 2008 +0100
    919 
    920     v0.9.0 release
    921     
    922     First libusb-1.0 beta release
    923 
    924 commit 4cd249388e4ed2ca03f1263984ab67df5030bb65
    925 Author: Daniel Drake <dsd (a] gentoo.org>
    926 Date:   Sun May 25 22:59:09 2008 +0100
    927 
    928     Take lock before raising event waiters condition
    929     
    930     This avoids a race between the user checking for active event handler
    931     and then blocking on the condition variable
    932 
    933 commit 7c525480ab3c4db9205bfe30bb0d2bef9096c444
    934 Author: Daniel Drake <dsd (a] gentoo.org>
    935 Date:   Fri May 23 15:57:07 2008 +0100
    936 
    937     Implement serialization of event handlers
    938     
    939     Now offers a mechanism to wait for events while another thread is
    940     doing the event handling. Complicates things for MT async apps, but
    941     then again it's a bit of a tricky combination to start with.
    942 
    943 commit ff0660a415ecfd0879600eaad1c5899b6d93a30a
    944 Author: Daniel Drake <dsd (a] gentoo.org>
    945 Date:   Sat May 24 21:28:31 2008 +0100
    946 
    947     allow LIBUSB_DEBUG env var to control message verbosity at runtime
    948     
    949     Based on ideas from Ludovic Rousseau
    950 
    951 commit 4d788967e3f8d75eaf3a1ac1ee8e2e8bed0601c1
    952 Author: Daniel Drake <dsd (a] gentoo.org>
    953 Date:   Fri May 23 15:58:11 2008 +0100
    954 
    955     don't print messages by default
    956     
    957     Add libusb_set_debug() API to set message verbosity.
    958     
    959     Ludovic Rousseau pointed out that applications may close stdout/stderr
    960     descriptors, which might then be reused.
    961 
    962 commit bef33bb9eba0da04ee7488d9cd5e6ab12bc61c0c
    963 Author: Daniel Drake <dsd (a] gentoo.org>
    964 Date:   Mon May 19 15:43:27 2008 +0100
    965 
    966     Fix memory leak in libusb_control_transfer
    967     
    968     Pointed out by David Engraf: we weren't freeing the transfer buffer
    969 
    970 commit a345bacb6f07ebb2122402041a9e8092d4a20a4d
    971 Author: David Engraf <david.engraf (a] netcom.eu>
    972 Date:   Mon May 19 15:16:32 2008 +0100
    973 
    974     Linux: fix handling of ioctl failure
    975     
    976     The return value of some ioctl commands in linux_usbfs.c are not
    977     handeled correct. The ioctl function returns != 0 and errno is set with
    978     the error code.
    979 
    980 commit e44396a458ecea9e5edd9a7577e617571c76860d
    981 Author: David Engraf <david.engraf (a] netcom.eu>
    982 Date:   Mon May 19 15:13:38 2008 +0100
    983 
    984     critical memory leak in handle_events
    985     
    986     This patch closes a critical memory leak in handle_events. The fds
    987     variable is malloced but never freed. When I'm calling
    988     handle_events with a timeout of 0, my system runs out of memory after a
    989     few seconds.
    990 
    991 commit eb25630f52bc9848b444e439632c899977d887b0
    992 Author: Daniel Drake <dsd (a] gentoo.org>
    993 Date:   Fri May 16 23:50:20 2008 +0100
    994 
    995     More informative libusb_open() return code
    996     
    997     Hopefully one of the last API tweaks...
    998 
    999 commit 2b2e9c40b195261b09ac52ebdb93eef25c79de90
   1000 Author: Daniel Drake <dsd (a] gentoo.org>
   1001 Date:   Fri May 16 22:37:56 2008 +0100
   1002 
   1003     Fix endianness with descriptor handling
   1004     
   1005     Alan Stern pointed out that usbfs gives host-endian data, but sysfs gives
   1006     bus-endian.
   1007 
   1008 commit 1298c51f516a7bf04ca9add1b7db14417cdc66f3
   1009 Author: Daniel Drake <dsd (a] gentoo.org>
   1010 Date:   Mon May 12 18:46:37 2008 +0100
   1011 
   1012     Backend documentation for porting efforts
   1013     
   1014     Hopefully comprehensive enough for people to get started.
   1015 
   1016 commit ade26afc42c34ceb1c45afcadd2ea5e8240eaca4
   1017 Author: Daniel Drake <dsd (a] gentoo.org>
   1018 Date:   Mon May 12 15:43:30 2008 +0100
   1019 
   1020     Linux: fix caching of guessed configuration
   1021     
   1022     Reported and tested by Xiaofan Chen
   1023 
   1024 commit e25d590a9198995b4f0b6afeb41ecae318715e7e
   1025 Author: Rob Walker <rob (a] tenfoot.org.uk>
   1026 Date:   Sun May 11 21:14:18 2008 +0100
   1027 
   1028     Linux: fix bulk transfer early completion
   1029     
   1030     We were forgetting about the remaining urbs when a non-final urb
   1031     completed early.
   1032     
   1033     [dsd: some touchups and a warning message for a corner case that we don't handle]
   1034 
   1035 commit fec7c84163e25b8f811632828334d75da82bcb16
   1036 Author: Daniel Drake <dsd (a] gentoo.org>
   1037 Date:   Sun May 11 20:31:58 2008 +0100
   1038 
   1039     Handle hot-unplugging
   1040     
   1041     This involved moving from select() to poll() because there is no way to
   1042     distinguish usbfs's POLLERR condition with select().
   1043 
   1044 commit aeb905fa5d78cdbba80a680aa7a2bb7338f27f65
   1045 Author: Daniel Drake <dsd (a] gentoo.org>
   1046 Date:   Sun May 11 16:04:35 2008 +0100
   1047 
   1048     Documentation work
   1049 
   1050 commit ba5d9a45c06311204f51faef41d1ee215bb5b823
   1051 Author: Daniel Drake <dsd (a] gentoo.org>
   1052 Date:   Sun May 11 15:36:24 2008 +0100
   1053 
   1054     Endianness of control setup packets
   1055     
   1056     Document behaviour where host-endian and bus-endian (little) should be
   1057     used respectively.
   1058     
   1059     Also remove packed attribute from libusb_control_setup as all fields
   1060     are naturally aligned.
   1061 
   1062 commit 7bedc3b2683f35ee1dd39a2ebe0ec05be0019f38
   1063 Author: Daniel Drake <dsd (a] gentoo.org>
   1064 Date:   Sun May 11 15:11:59 2008 +0100
   1065 
   1066     Document that releasing interface causes SET_INTERFACE control request
   1067 
   1068 commit f2ede9876cd4f5cfa7751b975670fa449187fe3d
   1069 Author: Daniel Drake <dsd (a] gentoo.org>
   1070 Date:   Sat May 10 21:45:42 2008 +0100
   1071 
   1072     Support unconfigured devices
   1073 
   1074 commit 8ebb4ccdfaf5f095a1c38787d909d280ea64405c
   1075 Author: Daniel Drake <dsd (a] gentoo.org>
   1076 Date:   Sat May 10 20:56:44 2008 +0100
   1077 
   1078     Linux: fix caching of active configuration for non-sysfs
   1079 
   1080 commit c3844f7aeb2176636ce6e6ef697659fdb0b30048
   1081 Author: Daniel Drake <dsd (a] gentoo.org>
   1082 Date:   Sat May 10 14:42:43 2008 +0100
   1083 
   1084     Fetch configurations by index (not value)
   1085     
   1086     Otherwise there is no way to know which values to look for.
   1087 
   1088 commit d77052c0d630e33737c38d601fd633155f6b2229
   1089 Author: Daniel Drake <dsd (a] gentoo.org>
   1090 Date:   Sat May 10 00:12:53 2008 +0100
   1091 
   1092     Linux: comprehensive sysfs vs usbfs access
   1093     
   1094     Be more flexible when certain parts of sysfs are not available.
   1095 
   1096 commit 74bc842bac1a32a26323da6c3e8af2f66e1b5cfa
   1097 Author: Daniel Drake <dsd (a] gentoo.org>
   1098 Date:   Fri May 9 19:38:13 2008 +0100
   1099 
   1100     Linux: no need to store usbfs node path
   1101     
   1102     This can be computed from bus number and device address
   1103 
   1104 commit fe4adcc99e30115204ab832ad3e0170c9aca7629
   1105 Author: Daniel Drake <dsd (a] gentoo.org>
   1106 Date:   Fri May 9 14:34:31 2008 +0100
   1107 
   1108     Rework configuration handling
   1109     
   1110     libusb no longer caches descriptors in libusb_device but backends are
   1111     intended to be able to provide copies from memory. In the common linux
   1112     case we can use sysfs.
   1113 
   1114 commit 5741bfe01a2481b8c3830c80edc3637bf62a7e16
   1115 Author: Daniel Drake <dsd (a] gentoo.org>
   1116 Date:   Fri May 9 14:36:14 2008 +0100
   1117 
   1118     libusb_get_device_list() can return negative error code
   1119 
   1120 commit 45413101b78298e9332b22a34bc6bc159000ad8a
   1121 Author: Daniel Drake <dsd (a] gentoo.org>
   1122 Date:   Thu May 8 23:09:21 2008 +0100
   1123 
   1124     Linux: fix clear_halt implementation
   1125     
   1126     The ioctl expects an integer.
   1127     Bug found with the assistance of Soumen Mondal
   1128 
   1129 commit 10d4e427cc171dfd6ad7f43a33ce3cfebcd7aa04
   1130 Author: Daniel Drake <dsd (a] gentoo.org>
   1131 Date:   Thu May 8 23:04:52 2008 +0100
   1132 
   1133     Documentation work
   1134     
   1135     Partially based on some libusb-devel discussions
   1136 
   1137 commit ded0a249322571a075e3ed3528021864247dfa55
   1138 Author: Daniel Drake <dsd (a] gentoo.org>
   1139 Date:   Mon May 5 22:57:48 2008 +0100
   1140 
   1141     Linux: enumerate devices and descriptors from sysfs
   1142     
   1143     Suggested by Alan Stern. This avoids waking up any suspended USB devices.
   1144     sysfs is not available on all systems, so the usbfs mechanism is still
   1145     in place as a fallback.
   1146 
   1147 commit 885c2a5de69d6b7d8902bb55d6d83680a5a1a6e5
   1148 Author: Daniel Drake <dsd (a] gentoo.org>
   1149 Date:   Mon May 5 21:34:31 2008 +0100
   1150 
   1151     documentation touchups
   1152 
   1153 commit 59c205d542b43d79fe28622dbe8f03a3a3300b6f
   1154 Author: Daniel Drake <dsd (a] gentoo.org>
   1155 Date:   Mon May 5 21:17:03 2008 +0100
   1156 
   1157     more error code sanitization
   1158 
   1159 commit 88055d4b5913102a90ff666f75fd922c74860dc5
   1160 Author: Daniel Drake <dsd (a] gentoo.org>
   1161 Date:   Mon May 5 20:57:43 2008 +0100
   1162 
   1163     Isochronous transfer helper functions
   1164 
   1165 commit a95c943ed301dcd20e92b0b3b255568899a4c42e
   1166 Author: Daniel Drake <dsd (a] gentoo.org>
   1167 Date:   Mon May 5 17:54:33 2008 +0100
   1168 
   1169     free open devices on exit
   1170 
   1171 commit b27fff633843824744df7d334cb89ece329cafa6
   1172 Author: Daniel Drake <dsd (a] gentoo.org>
   1173 Date:   Mon May 5 17:47:49 2008 +0100
   1174 
   1175     move descriptor parsing into main library
   1176     
   1177     OS modules now provide functionality for fetching device/config
   1178     descriptors
   1179 
   1180 commit a304eca71f22c6df7d70a901483b30f1b8e93378
   1181 Author: Daniel Drake <dsd (a] gentoo.org>
   1182 Date:   Mon May 5 16:22:33 2008 +0100
   1183 
   1184     Detect endpoint halts and unsupported control requests
   1185 
   1186 commit 7da521954ba661d3f537440c31a84b66e974d56b
   1187 Author: Daniel Drake <dsd (a] gentoo.org>
   1188 Date:   Mon May 5 01:00:31 2008 +0100
   1189 
   1190     Linux: fix logical URB allocation
   1191     
   1192     We were allocating the wrong number of URBs for transfers of size
   1193     multiples of 16k.
   1194 
   1195 commit 470b1bc42bf53373ce678fc76bab9160a54d6881
   1196 Author: Daniel Drake <dsd (a] gentoo.org>
   1197 Date:   Sun May 4 16:51:23 2008 +0100
   1198 
   1199     add functionality for querying and detaching kernel driver
   1200 
   1201 commit 17ecfb0ecc833596c43755c80d461cddb9b3b0d7
   1202 Author: Daniel Drake <dsd (a] gentoo.org>
   1203 Date:   Sun May 4 16:20:46 2008 +0100
   1204 
   1205     Descriptor reading functionality
   1206 
   1207 commit bdce367d1bd8691465844b2411c85215498f517d
   1208 Author: Daniel Drake <dsd (a] gentoo.org>
   1209 Date:   Sun May 4 14:22:16 2008 +0100
   1210 
   1211     sanitized error returns from synchronous I/O functions
   1212 
   1213 commit bfe74e9cd9c17a40fff042ea0647326f51cfecae
   1214 Author: Daniel Drake <dsd (a] gentoo.org>
   1215 Date:   Sun May 4 14:10:19 2008 +0100
   1216 
   1217     implement libusb_reset_device()
   1218 
   1219 commit c01f744ce07bbeccbe353e956479f0cc5a811a6f
   1220 Author: Daniel Drake <dsd (a] gentoo.org>
   1221 Date:   Sun May 4 13:46:41 2008 +0100
   1222 
   1223     Add functionality to clear endpoint halt conditions
   1224 
   1225 commit 5878daa85e3364bb3885190425d4f9deaa2d8c36
   1226 Author: Daniel Drake <dsd (a] gentoo.org>
   1227 Date:   Sun May 4 00:51:59 2008 +0100
   1228 
   1229     Fix libusb_get_device_list return value
   1230     
   1231     It was documented to return the list length, but was returning 0.
   1232 
   1233 commit a74106a9b48b88bae0e099be34a18d653a8f1238
   1234 Author: Daniel Drake <dsd (a] gentoo.org>
   1235 Date:   Sat May 3 16:50:58 2008 +0100
   1236 
   1237     Well-defined error codes for some operations
   1238     
   1239     Also renamed set_interface_altsetting to set_interface_alt_setting for
   1240     better consistency
   1241 
   1242 commit 0f463fe671455670efcf4a93e526b2a9082b0afe
   1243 Author: Daniel Drake <dsd (a] gentoo.org>
   1244 Date:   Sat May 3 16:24:11 2008 +0100
   1245 
   1246     Add libusb_set_configuration()
   1247 
   1248 commit e65608994f795f97e4d6adac20329ca08709db2d
   1249 Author: Daniel Drake <dsd (a] gentoo.org>
   1250 Date:   Sat May 3 15:40:23 2008 +0100
   1251 
   1252     rename LIBUSB_ERROR_NOMEM to LIBUSB_ERROR_NO_MEM
   1253     improves consistency
   1254 
   1255 commit 5384bbf300779e7936eac9ebd33ee38f5b533f8e
   1256 Author: Daniel Drake <dsd (a] gentoo.org>
   1257 Date:   Sat May 3 14:34:54 2008 +0100
   1258 
   1259     Linux: better EACCES handling
   1260 
   1261 commit 1936eeeba3f933a078df1005cc7c1533a8ec2bac
   1262 Author: Daniel Drake <dsd (a] gentoo.org>
   1263 Date:   Sat May 3 14:26:56 2008 +0100
   1264 
   1265     Rename reference counting API
   1266     
   1267     This improves consistency with the naming style of other functions
   1268 
   1269 commit e2f822b4f17342f614ab2455179a80975fca6cb0
   1270 Author: Daniel Drake <dsd (a] gentoo.org>
   1271 Date:   Sat May 3 14:24:40 2008 +0100
   1272 
   1273     Linux: use read-only access to enumerate devices and descriptors
   1274     
   1275     Write access is not needed until later.
   1276     Also fix handling of open() error code.
   1277 
   1278 commit 81204eed3d0a7744b89b68bd90d567b68d191a91
   1279 Author: Daniel Drake <dsd (a] gentoo.org>
   1280 Date:   Fri May 2 17:45:23 2008 +0100
   1281 
   1282     document pollfd notifiers
   1283 
   1284 commit e20f8281fb7da32587f81b5eea5818af1eab0fe0
   1285 Author: Daniel Drake <dsd (a] gentoo.org>
   1286 Date:   Fri May 2 17:33:52 2008 +0100
   1287 
   1288     Allow multiple interfaces to be claimed
   1289 
   1290 commit 66685ff25d81a1f1a2a3dbda882d407638d00672
   1291 Author: Daniel Drake <dsd (a] gentoo.org>
   1292 Date:   Fri May 2 16:55:36 2008 +0100
   1293 
   1294     Documentation improvements
   1295 
   1296 commit 55bce39cbe0c9746a428b66751d1afe551d86381
   1297 Author: Daniel Drake <dsd (a] gentoo.org>
   1298 Date:   Fri May 2 12:55:34 2008 +0100
   1299 
   1300     detect short descriptor reads
   1301 
   1302 commit f3f17846dcced6b2dc40f899ed6a2aba151c264b
   1303 Author: Daniel Drake <dsd (a] gentoo.org>
   1304 Date:   Fri May 2 12:32:46 2008 +0100
   1305 
   1306     remove "references" and "referenced by" listings in documentation
   1307 
   1308 commit fbb017dd9a26ce449578482b95157b3c850fa446
   1309 Author: Daniel Drake <dsd (a] gentoo.org>
   1310 Date:   Fri May 2 12:32:08 2008 +0100
   1311 
   1312     Use typedef ptr types in parameters and return types
   1313     
   1314     This is passed through to the docs
   1315 
   1316 commit 3675e978fb7a1042f8601931255658bcd14a2298
   1317 Author: Daniel Drake <dsd (a] gentoo.org>
   1318 Date:   Fri May 2 12:28:31 2008 +0100
   1319 
   1320     Expose bus number and device address
   1321 
   1322 commit 2012898ffc492317cb428d97077bf5ee0e98e1da
   1323 Author: Daniel Drake <dsd (a] gentoo.org>
   1324 Date:   Tue Apr 29 15:26:46 2008 +0100
   1325 
   1326     standardised error codes
   1327 
   1328 commit 0269c75ae3de7acb2dc555e45928750e35fdb320
   1329 Author: Daniel Drake <dsd (a] gentoo.org>
   1330 Date:   Tue Apr 29 13:34:26 2008 +0100
   1331 
   1332     Fix descriptor handling memory leaks
   1333 
   1334 commit d3ab4e3bd4068cba41c1e12c4b175018dc3cb343
   1335 Author: Daniel Drake <dsd (a] gentoo.org>
   1336 Date:   Sun Apr 27 23:50:01 2008 +0100
   1337 
   1338     Rename endpoint_type to transfer_type
   1339     
   1340     Matches the USB specs more closely
   1341 
   1342 commit 379e90e0fdcef6f4db1849fa0a7fd524407cf564
   1343 Author: Daniel Drake <dsd (a] gentoo.org>
   1344 Date:   Sun Apr 27 23:41:24 2008 +0100
   1345 
   1346     Remove a FIXME comment
   1347     
   1348     it can't.
   1349 
   1350 commit 2ddf81420557d016bbcbf28dda0d8d1c64d16264
   1351 Author: Daniel Drake <dsd (a] gentoo.org>
   1352 Date:   Sun Apr 27 23:30:34 2008 +0100
   1353 
   1354     Fix unlocked flying_transfers list access
   1355 
   1356 commit 7ac0a405b4c57db42e88cbcba5f135697f03b646
   1357 Author: Daniel Drake <dsd (a] gentoo.org>
   1358 Date:   Sun Apr 27 23:27:04 2008 +0100
   1359 
   1360     Remove libusb_cancel_transfer_sync
   1361     
   1362     This wasn't a particularly nice API. Cancellation should be handled by
   1363     the completion handler.
   1364 
   1365 commit a5006fd7b9dae6f1db7969c8744086ba3a7c027b
   1366 Author: Daniel Drake <dsd (a] gentoo.org>
   1367 Date:   Sun Apr 27 19:56:02 2008 +0100
   1368 
   1369     remove extra timeout check
   1370     
   1371     If select() didn't timeout then don't check for more timeouts
   1372 
   1373 commit 3bdafaa359d9c65e1af360b5338e1f25528a8066
   1374 Author: Daniel Drake <dsd (a] gentoo.org>
   1375 Date:   Sun Apr 27 19:53:51 2008 +0100
   1376 
   1377     Documentation touchups
   1378     
   1379     Detail that interrupt polling interval is fixed to endpoint bInterval,
   1380     and that data may be transferred even on a timeout condition.
   1381 
   1382 commit e12618c79d520955b1abf80a277e881d91907162
   1383 Author: Daniel Drake <dsd (a] gentoo.org>
   1384 Date:   Sat Apr 19 16:17:53 2008 +0100
   1385 
   1386     add threaded example program
   1387 
   1388 commit 1fcdb0678b759569db7cd530457dbc0a5f86fb1d
   1389 Author: Daniel Drake <dsd (a] gentoo.org>
   1390 Date:   Fri Apr 18 23:58:54 2008 +0100
   1391 
   1392     libusb_device mutex protection
   1393 
   1394 commit 0efd2efa65d5513e5754d717d522b2c5c45332e2
   1395 Author: Daniel Drake <dsd (a] gentoo.org>
   1396 Date:   Fri Apr 18 23:42:40 2008 +0100
   1397 
   1398     mutex protection for device and handle lists
   1399 
   1400 commit d2ff2b14a15e5099ff0214502944de30f141a39c
   1401 Author: Daniel Drake <dsd (a] gentoo.org>
   1402 Date:   Fri Apr 18 20:00:31 2008 +0100
   1403 
   1404     lock flying_transfers during transfer removal
   1405 
   1406 commit 2569980762cb66804da31e54bef243702da8dfe9
   1407 Author: Daniel Drake <dsd (a] gentoo.org>
   1408 Date:   Fri Apr 18 19:59:56 2008 +0100
   1409 
   1410     pollfds mutex protection
   1411 
   1412 commit f5a33e08ec0da51ccb5e95a5adec50c5211a9bf5
   1413 Author: Daniel Drake <dsd (a] gentoo.org>
   1414 Date:   Thu Apr 17 18:24:54 2008 +0100
   1415 
   1416     flying_transfers mutex protection
   1417     
   1418     This marks the beginnings of thread safety
   1419 
   1420 commit 85e1994123545125ce0653415d122f9790f8d041
   1421 Author: Daniel Drake <dsd (a] gentoo.org>
   1422 Date:   Thu Apr 17 17:44:28 2008 +0100
   1423 
   1424     Linux: fix control transfer cancellation
   1425 
   1426 commit cf9b831f7bfd97ba88721c1d934aeda522f3692c
   1427 Author: Daniel Drake <dsd (a] gentoo.org>
   1428 Date:   Mon Apr 14 20:03:27 2008 +0100
   1429 
   1430     set correct endpoint type for isochronous transfers
   1431     
   1432     Pointed out by Felix Domke
   1433 
   1434 commit ad6e2b712c5b54af44424e58a2776686314e26b7
   1435 Author: Daniel Drake <dsd (a] gentoo.org>
   1436 Date:   Fri Apr 11 21:40:07 2008 +0100
   1437 
   1438     Linux: fire multiple URBs at once for split transfers
   1439     
   1440     This results in a significant performance increase for bulk transfers
   1441     larger than 16kb, and fixes a bug where data would be spliced and mixed
   1442     between two simultaneously submitted transfers to the same endpoint.
   1443     
   1444     It also allows isochronous transfers larger than 16kb to be submitted.
   1445     
   1446     This commit also improves cancellation - the library now understands
   1447     what is going on.
   1448 
   1449 commit d9b2ce2894ed43d34de6850f2dac50ccabf1db55
   1450 Author: Daniel Drake <dsd (a] gentoo.org>
   1451 Date:   Tue Apr 1 23:28:32 2008 +0100
   1452 
   1453     Constify some return data
   1454     
   1455     Make it clear that apps should not mess with these structures
   1456 
   1457 commit 8d809854e2b19c2b7c27ab05e5d76b34e2a5cead
   1458 Author: Daniel Drake <dsd (a] gentoo.org>
   1459 Date:   Sun Mar 30 22:19:00 2008 +0100
   1460 
   1461     Rename libusb_poll() to libusb_handle_events()
   1462 
   1463 commit 211f80c9f2a4a58cd2bbf5b7751f45089c8961e7
   1464 Author: Daniel Drake <dsd (a] gentoo.org>
   1465 Date:   Tue Mar 25 16:24:30 2008 +0000
   1466 
   1467     Isochronous endpoint I/O
   1468     
   1469     Due to variable-sized structures, this involved changing allocation
   1470     mechanism. All transfers must now be allocated and freed through
   1471     libusb.
   1472     
   1473     A synchronous function is missing, and I could do with writing a few
   1474     more helper functions to simplify things.
   1475 
   1476 commit b1ade6fca668d8aa156d5b5bf3a933f116144dc2
   1477 Author: Daniel Drake <dsd (a] gentoo.org>
   1478 Date:   Sun Mar 23 21:17:32 2008 +0000
   1479 
   1480     distcheck fix for docs
   1481 
   1482 commit 62077b7fa5b222e1bb9dea3467585aed69d596e2
   1483 Author: Daniel Drake <dsd (a] gentoo.org>
   1484 Date:   Sun Mar 23 21:13:14 2008 +0000
   1485 
   1486     Support for changing altsetting
   1487     
   1488     Will probably be suject to later consideration w.r.t. claiming of endpoints
   1489 
   1490 commit 0499e9f418607b5786ac0c3e97bc46737a609ca3
   1491 Author: Daniel Drake <dsd (a] gentoo.org>
   1492 Date:   Thu Mar 20 21:10:01 2008 +0000
   1493 
   1494     it's called bmRequestType
   1495 
   1496 commit 88884ae4bbe721dac117d5190303cb67852fa5d3
   1497 Author: Daniel Drake <dsd (a] gentoo.org>
   1498 Date:   Thu Mar 20 21:07:00 2008 +0000
   1499 
   1500     Save transfer flags before invoking callback
   1501     
   1502     The callback may free the transfer, in which case we can't read the flags
   1503     after it has returned.
   1504 
   1505 commit ead09cde6895df0034a685516987ce253575e9a7
   1506 Author: Daniel Drake <dsd (a] gentoo.org>
   1507 Date:   Sat Mar 15 16:35:12 2008 +0000
   1508 
   1509     API documentation
   1510     
   1511     Hopefully mostly complete. Some constants were renamed and move into
   1512     enums.
   1513 
   1514 commit 285724cc14ea5f993e2c4c92fe0aaf6c335bc139
   1515 Author: Vasily Khoruzhick <anarsoul (a] gmail.com>
   1516 Date:   Sat Mar 15 13:50:53 2008 +0200
   1517 
   1518     Fix get_device_list for realloc case
   1519     
   1520     get_device_list can modify pointer passed to it with realloc, but this
   1521     case wasn't handled and caused crash on my machine. Fixed
   1522     
   1523     Signed-off-by: Vasily Khoruzhick <anarsoul (a] gmail.com>
   1524 
   1525 commit c0c9432d38b22784070dce3a7874c62c31786a27
   1526 Author: Daniel Drake <dsd (a] gentoo.org>
   1527 Date:   Thu Mar 13 12:36:56 2008 +0000
   1528 
   1529     Beginnings of cross-platform abstraction
   1530     
   1531     This also includes a libusb_get_pollfds API change
   1532 
   1533 commit de4c5341d168697baa4c0901c406deb47e78aae7
   1534 Author: Daniel Drake <dsd (a] gentoo.org>
   1535 Date:   Mon Mar 10 18:38:15 2008 +0000
   1536 
   1537     Add transfer flags
   1538 
   1539 commit aae05f688dc26a013166ab9436fd25018b49d76a
   1540 Author: Daniel Drake <dsd (a] gentoo.org>
   1541 Date:   Mon Mar 10 11:32:15 2008 +0000
   1542 
   1543     Simplify libusb_fill_control_transfer()
   1544     
   1545     Transfer length can be inferred from the setup packet.
   1546 
   1547 commit 7c5ea95297c2f3f6afc42f60c1bf1bef777bb1fb
   1548 Author: Daniel Drake <dsd (a] gentoo.org>
   1549 Date:   Mon Mar 10 11:29:24 2008 +0000
   1550 
   1551     get_device fixup
   1552     
   1553     Rename API away from "devh" and fix implementation to match header
   1554 
   1555 commit 9e89d1aa82cbe7e21672ee3e2e545238fffc5318
   1556 Author: Daniel Drake <dsd (a] gentoo.org>
   1557 Date:   Sun Mar 9 16:27:06 2008 +0000
   1558 
   1559     Rename descriptor-getting functions
   1560     
   1561     Based on feedback from Tim Roberts
   1562 
   1563 commit 283ae96c3ccbcee1c3950fce18ae47093ae8200e
   1564 Author: Daniel Drake <dsd (a] gentoo.org>
   1565 Date:   Sun Mar 9 16:15:02 2008 +0000
   1566 
   1567     Simplify cancellation API
   1568     
   1569     No need to provide the device here.
   1570 
   1571 commit ebad1c79688ba603ad017ed0fe2f3c0dc8edd1ad
   1572 Author: Daniel Drake <dsd (a] gentoo.org>
   1573 Date:   Sun Mar 9 16:12:08 2008 +0000
   1574 
   1575     Rename libusb_dev_handle to libusb_device_handle
   1576 
   1577 commit 1ac0a7d88f282b6f293c456fac8edb143cbaca3d
   1578 Author: Daniel Drake <dsd (a] gentoo.org>
   1579 Date:   Sun Mar 9 01:01:57 2008 +0000
   1580 
   1581     Move synchronous I/O implementation to its own file
   1582 
   1583 commit 66348c90ea4570bf999ac301089e006d0cce1926
   1584 Author: Daniel Drake <dsd (a] gentoo.org>
   1585 Date:   Sun Mar 9 00:58:09 2008 +0000
   1586 
   1587     Separate transfer allocation and submission
   1588     
   1589     Leads to some hefty API changes. Now we're much more similar to the
   1590     Linux kernel model.
   1591     
   1592     Problems with dealing with asynchronous control transfers are passed
   1593     on to the user, basically you must allocate a buffer, start with the
   1594     setup, and put the data after. This won't make much sense until
   1595     documented (soon...)
   1596 
   1597 commit d21ebe47ce578c93cd8969be1c933d503e32e5d4
   1598 Author: Daniel Drake <dsd (a] gentoo.org>
   1599 Date:   Sat Mar 8 12:48:35 2008 +0000
   1600 
   1601     Rework URB API naming
   1602     
   1603     Now refer to everything as "transfers" as consistent with the USB spec
   1604     libusb_transfer is now a kind of transfer handle. To reduce confusion
   1605     with libusb_bulk_transfer and libusb_control_transfer, those have been
   1606     renamed to libusb_{control,bulk}_transfer_request.
   1607 
   1608 commit fd6fb3cc093ad47271353a0e468d16547f991382
   1609 Author: Daniel Drake <dsd (a] gentoo.org>
   1610 Date:   Sat Mar 8 11:53:33 2008 +0000
   1611 
   1612     Add fallback on /proc/bus/usb
   1613     
   1614     /dev/bus/usb is a relatively new thing probably not present on every
   1615     system
   1616 
   1617 commit f3fdf447916289cd92b7190377681894e8ab611a
   1618 Author: Daniel Drake <dsd (a] gentoo.org>
   1619 Date:   Sat Mar 8 00:10:16 2008 +0000
   1620 
   1621     Persistent libusb_device storage
   1622     
   1623     Devices are now assigned a session ID (currently busnum:devaddr) which
   1624     is used to distinguish unique devices.
   1625     
   1626     Now multiple callers of libusb_get_device_list will get the same
   1627     libusb_device structure instances.
   1628 
   1629 commit 23f8fb8bafeeda93ce234cb40eb7219d2e36c19c
   1630 Author: Daniel Drake <dsd (a] gentoo.org>
   1631 Date:   Thu Mar 6 23:43:57 2008 +0000
   1632 
   1633     Add convenience function to find and open a device by USB VID+PID
   1634     
   1635     Lots of libusb apps I write are simple test apps not intended to be real
   1636     apps. Having a function available to quickly locate my device will be
   1637     handy in such situations.
   1638 
   1639 commit 9cfdb494fccac53a4277da7c8b6d15f1a72a4959
   1640 Author: Daniel Drake <dsd (a] gentoo.org>
   1641 Date:   Thu Mar 6 23:25:20 2008 +0000
   1642 
   1643     Rework device discovery API
   1644     
   1645     libusb_find_devices and libusb_get_devices are no more
   1646     
   1647     libusb_get_device_list obtains a list of libusb_device structures for all
   1648     known devices in the system.
   1649     
   1650     Each libusb_device now has a reference count, defaulting to 1 on
   1651     instantiation. The reference count of 1 refers to the fact that it is
   1652     present in the list in this scenario.
   1653     
   1654     Opening a device adds a pointer to the libusb_device structure in the
   1655     handle, so that also adds a reference. Closing the device removes that
   1656     reference.
   1657     
   1658     The function to free the device list can optionally unref all the devices
   1659     inside.
   1660     
   1661     In future we will make the libusb_device instances all "global" so that if
   1662     the app calls get_device_list twice it actually gets the same libusb_device
   1663     structure references back. This way we can start to track disconnects, and
   1664     we can investigate adding a unique "session ID" to each libusb_device, an
   1665     identifier guaranteed to be unique to that device until reboot.
   1666 
   1667 commit 77cea822788e024c848c7f554915f771a2dc1e0f
   1668 Author: Daniel Drake <dsd (a] gentoo.org>
   1669 Date:   Thu Mar 6 17:05:04 2008 +0000
   1670 
   1671     Remove ctrl debug code
   1672     
   1673     This was unintentionally committed
   1674 
   1675 commit b873521a6f575628d535f89278bb67888004d0ca
   1676 Author: Daniel Drake <dsd (a] gentoo.org>
   1677 Date:   Tue Feb 26 22:11:34 2008 +0000
   1678 
   1679     Notifications for changes to the fd set
   1680     
   1681     Applications can now be notified when they should start and stop polling
   1682     new file descriptors.
   1683 
   1684 commit ca66e16a370c828d08a5bc3f9f203db145c81a4c
   1685 Author: Daniel Drake <dsd (a] gentoo.org>
   1686 Date:   Fri Feb 1 12:20:20 2008 +0000
   1687 
   1688     Fix header installation path
   1689 
   1690 commit e583100a4086c411093eef5c450880b965df6b1b
   1691 Author: Daniel Drake <dsd (a] gentoo.org>
   1692 Date:   Wed Jan 30 13:24:54 2008 +0000
   1693 
   1694     TODO update
   1695 
   1696 commit 637a8d7ff8a11a23588925d9d3003a609bda8075
   1697 Author: Daniel Drake <dsd (a] gentoo.org>
   1698 Date:   Wed Jan 30 13:19:10 2008 +0000
   1699 
   1700     Remove timers and signalfd
   1701     
   1702     Instead of timers, add a mechanism for informing the parent app when the
   1703     next timeout is due to happen, so that it can call us at that time.
   1704     
   1705     As we no longer use signals, signalfd has also been removed.
   1706 
   1707 commit 8c56abe2e13ed4dd8c15737c21be7b6b1e5cf2ac
   1708 Author: Daniel Drake <dsd (a] gentoo.org>
   1709 Date:   Sat Jan 26 18:16:56 2008 +0000
   1710 
   1711     Poll usbfs descriptors directly
   1712     
   1713     We don't need to use signalfd for this functionality because we can poll
   1714     the file descriptors for write events.
   1715 
   1716 commit e3ce855acec33d37dd833bca5dad5e8c3773003a
   1717 Author: Daniel Drake <dsd (a] gentoo.org>
   1718 Date:   Sat Jan 26 17:26:40 2008 +0000
   1719 
   1720     Fix dpfp example compilation
   1721 
   1722 commit 1d41a5cda2fefe826877ee4445199af30aa188b7
   1723 Author: Daniel Drake <dsd (a] gentoo.org>
   1724 Date:   Sat Jan 26 17:22:53 2008 +0000
   1725 
   1726     C++ header safety
   1727     
   1728     Pointed out by JF
   1729 
   1730 commit 37b7f9a112eb1441d352467f661205b8872d0553
   1731 Author: Daniel Drake <dsd (a] gentoo.org>
   1732 Date:   Sat Jan 26 14:03:43 2008 +0000
   1733 
   1734     Only use -fgnu89-inline when supported
   1735     
   1736     J F pointed out that this option only works on gcc 4.3 and newer.
   1737 
   1738 commit e3a09ca0b9cb6f46d54a0130f678c6097240a2bd
   1739 Author: Daniel Drake <dsd (a] gentoo.org>
   1740 Date:   Sat Jan 5 21:59:40 2008 +0000
   1741 
   1742     Remove more fpusb remnants
   1743 
   1744 commit dcd5e0075fa84601d997d29bb60bc8370b97a375
   1745 Author: Daniel Drake <dsd (a] gentoo.org>
   1746 Date:   Fri Jan 4 01:19:07 2008 +0000
   1747 
   1748     TODO update
   1749     
   1750     Start listing the things I want to discuss/reconsider before 1.0 API
   1751     is final.
   1752 
   1753 commit de53d972ed9c1f21f86ffd585560520e986f212c
   1754 Author: Daniel Drake <dsd (a] gentoo.org>
   1755 Date:   Fri Jan 4 01:17:06 2008 +0000
   1756 
   1757     Rename some _devh_ functions
   1758     
   1759     Decided against naming functions in this style based on advice from
   1760     Tim Roberts. Still not really sure about devh naming in general.
   1761 
   1762 commit 132d84bf8ae34bd0892b3d8207a53d87cc0a9cba
   1763 Author: Daniel Drake <dsd (a] gentoo.org>
   1764 Date:   Fri Jan 4 01:13:25 2008 +0000
   1765 
   1766     Use "transfer" instead of "msg"
   1767     
   1768     Based on a discussion with Tim Roberts.
   1769 
   1770 commit ea6af58a8643137eb01eeb7d2f65404e390feb1b
   1771 Author: Daniel Drake <dsd (a] gentoo.org>
   1772 Date:   Fri Jan 4 00:57:00 2008 +0000
   1773 
   1774     Plural of bus is busses
   1775     
   1776     SF #1633043
   1777 
   1778 commit dbb3fd871e3972b4e670f3161e7cd2f58f357600
   1779 Author: Daniel Drake <dsd (a] gentoo.org>
   1780 Date:   Fri Jan 4 00:54:57 2008 +0000
   1781 
   1782     API renaming: remove fpi and usb_ stuff
   1783     
   1784     fpi changed to usbi.
   1785     
   1786     We should not expose structures with prefix "usb_" in the public
   1787     namespace as it is quite likely there will be some conflict somewhere.
   1788     Instead, using "libusb_" should be safer.
   1789 
   1790 commit e9364d72151ae1de9cce4175f330fe1529f02511
   1791 Author: Daniel Drake <dsd (a] gentoo.org>
   1792 Date:   Fri Jan 4 00:40:49 2008 +0000
   1793 
   1794     Rename to libusb-1.0
   1795     
   1796     I've taken over the libusb project, and what was previously known as fpusb
   1797     will eventually be released as libusb-1.0.
   1798 
   1799 commit f4ed0b6a3e0a20555fdfc9e9b8be7e8a2c8ae192
   1800 Author: Daniel Drake <dsd (a] gentoo.org>
   1801 Date:   Sun Dec 30 22:09:50 2007 +0000
   1802 
   1803     Compiler flags update
   1804     
   1805     Also fix some warnings
   1806 
   1807 commit d3d671efe27491baf1d2ceadbfeeb4e7428d6f9a
   1808 Author: Daniel Drake <dsd (a] gentoo.org>
   1809 Date:   Sun Dec 30 22:05:17 2007 +0000
   1810 
   1811     Fix signalfd structure size on x86
   1812     
   1813     ptr is a 64-bit value
   1814 
   1815 commit dfac6756faad76071a92945e3e3a16b8a841a7ea
   1816 Author: Daniel Drake <dsd (a] gentoo.org>
   1817 Date:   Wed Dec 12 23:32:54 2007 +0000
   1818 
   1819     Don't pass ctrl_msg/bulk_msg structures through async paths
   1820     
   1821     These are easiest to construct on the stack, but in the async case it is
   1822     likely that the submitting function returns (hence stack is destroyed)
   1823     before URB completion.
   1824 
   1825 commit a8d2881eb7c273892acf2ff6e1f3f552631d1d11
   1826 Author: Daniel Drake <dsd (a] gentoo.org>
   1827 Date:   Mon Dec 3 23:29:22 2007 +0000
   1828 
   1829     Add functionality to access device descriptors
   1830 
   1831 commit b5a7a411087b37a6bf56b4688a9e3290daaed153
   1832 Author: Daniel Drake <dsd (a] gentoo.org>
   1833 Date:   Mon Dec 3 22:27:21 2007 +0000
   1834 
   1835     Rename fpusb_device_handle functions to devh
   1836     
   1837     Prevents confusion with functions that work on fpusb_dev structures.
   1838 
   1839 commit eacf4505a473df0f521d1b69d5b45448f0709e2d
   1840 Author: Daniel Drake <dsd (a] gentoo.org>
   1841 Date:   Sun Dec 2 23:16:57 2007 +0000
   1842 
   1843     Add API to access poll fd
   1844     
   1845     Almost forgot... :)
   1846 
   1847 commit 852bba4754ec57679c823f33e8feba6e4a564cbe
   1848 Author: Daniel Drake <dsd (a] gentoo.org>
   1849 Date:   Wed Nov 28 13:48:45 2007 +0000
   1850 
   1851     Initial commit
   1852     
   1853     Basic library structure which supports enumerating detected USB devices
   1854