1commit a04cbb0095a78aeed3f65aaf06c46069d0ac184a 2Author: Daniel Drake <dan@reactivated.net> 3Date: Tue May 4 19:01:59 2010 -0300 4 5 v1.0.8 release 6 7commit 53b47299531974fa8901b74a163f3c8ebae4eec9 8Author: Daniel Drake <dan@reactivated.net> 9Date: 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 16commit 1519828b7ee1fce46d4c51fc097d52e01b8e0bb4 17Author: Daniel Drake <dan@reactivated.net> 18Date: Tue Apr 20 20:14:09 2010 -0300 19 20 Linux: Handle failure to read active configuration during enumeration 21 22commit 45168627cc15aee3875192f34286110dbbd27095 23Author: Nathan Hjelm <hjelmn@me.com> 24Date: 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 31commit 3af329db6dcbfb96d24867c757f9e125e5b7b0e5 32Author: Daniel Drake <dan@reactivated.net> 33Date: Mon Apr 19 19:36:55 2010 -0300 34 35 v1.0.7 release 36 37commit ceb8cacd6d2a4189de0db2ee46d45217511c69be 38Author: Daniel Drake <dan@reactivated.net> 39Date: Mon Apr 19 19:31:12 2010 -0300 40 41 Document that fd set contents are an internal implementation detail (#36) 42 43commit 9bea500b5747bdeba7c8251d45608558e71a1db5 44Author: Martin Koegler <mkoegler@auto.tuwien.ac.at> 45Date: 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 52commit 02df59a309e813c50b8230de99e69fb4e1814279 53Author: Martin Koegler <mkoegler@auto.tuwien.ac.at> 54Date: 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@auto.tuwien.ac.at> 73 74commit ec303b01a5d4e51c000a283853af65059fa62285 75Author: Nathan Hjelm <hjelmn@mac.com> 76Date: Tue Mar 23 16:22:08 2010 -0600 77 78 Darwin: fix enumeration of devices with non-consecutive addresses (#23) 79 80commit cd809e2f7cee3874b7ae16b2c482a8b63a90e4a5 81Author: Bastien Nocera <hadess@hadess.net> 82Date: Mon Mar 8 10:50:51 2010 +0000 83 84 Add more interface classes 85 86 As used in bluez. 87 88commit 1ce4aa67d849f5cad8a21072dc1c7b42158ce817 89Author: Nathan Hjelm <hjelmn@mac.com> 90Date: Thu Mar 18 11:32:32 2010 -0600 91 92 Darwin: Cleanup async callback code, catch request timeouts 93 94commit 68af9f8d731f700267335941a8214d34ab518cc8 95Author: Nathan Hjelm <hjelmn@mac.com> 96Date: 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 103commit cfce4d127184f4e4f334976151a0f80594bb5e22 104Author: Nathan Hjelm <hjelmn@mac.com> 105Date: 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 111commit 161893cfbefefe315f657677705abe090fc526f2 112Author: Nathan Hjelm <hjelmn@mac.com> 113Date: 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 119commit 2a72f38548208044dc3aa62681419d006c35732d 120Author: Nathan Hjelm <hjelmn@mac.com> 121Date: 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 127commit a4186794d87124503db2f5f51f51ce90bb95daa7 128Author: Daniel Drake <dan@reactivated.net> 129Date: Sun Nov 22 17:20:53 2009 +0000 130 131 v1.0.6 release 132 133commit 8392ff22136fccaf1e15d186157609b8dd127bc5 134Author: Ludovic Rousseau <rousseau@debian.org> 135Date: 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 141commit 9cc6bfaa15239bb6db1c1570b9beb6df2f848951 142Author: Ludovic Rousseau <rousseau@debian.org> 143Date: 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 150commit 4c706d2fb6b2c43b10d72ac5dff51cac4d939f1a 151Author: Nathan Hjelm <hjelmn@mac.com> 152Date: 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 161commit 0232fc559cdacb9561f982dd6d28feb4435b3e4e 162Author: Daniel Drake <dan@reactivated.net> 163Date: 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 170commit 0bd7ef5d8697973a026c36c15d6276177b4ec4ea 171Author: Daniel Drake <dan@reactivated.net> 172Date: 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 178commit 90d8fcab9018b8e6887a7e0592d1e5f692117234 179Author: Daniel Drake <dsd@gentoo.org> 180Date: Sun Nov 15 12:17:13 2009 +0000 181 182 v1.0.5 release 183 184commit 11d591058e3f105b0e90c23bbf58b18de691e690 185Author: Daniel Drake <dsd@gentoo.org> 186Date: Sat Nov 7 10:43:59 2009 +0000 187 188 Update documentation about early completion caveats 189 190commit f796c9528a71aa55326b6f0c9c7c5ec073d2bf92 191Author: Ludovic Rousseau <rousseau@debian.org> 192Date: 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 198commit 4783008b7e711de9cb31631e60dda995f44068de 199Author: Daniel Drake <dsd@gentoo.org> 200Date: 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 214commit 9b120c2b3735566533c179aa8ca758fe45899a38 215Author: Daniel Drake <dsd@gentoo.org> 216Date: Sat Nov 7 10:03:07 2009 +0000 217 218 Use AM_SILENT_RULES for building 219 220commit ef6ea6c3ae38e4524f10e16e8cb88177d39c4826 221Author: Daniel Drake <dsd@gentoo.org> 222Date: Fri Nov 6 21:54:08 2009 +0000 223 224 v1.0.4 release 225 226commit 217f57617e0cff0d1bd6d726b243f04c6b179773 227Author: David Moore <dcm@acm.org> 228Date: 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 248commit 69830057547396f893f0d7b3125a05d016313b10 249Author: Daniel Drake <dsd@gentoo.org> 250Date: 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 264commit 98f1b30d24359cb3185051b8df9ebb663cc10369 265Author: Daniel Drake <dsd@gentoo.org> 266Date: Mon Sep 14 08:01:24 2009 +0100 267 268 Clarify that timeout 0 means unlimited timeout 269 270commit 858684f0dd25921e09565034a88709dbf6f6c61b 271Author: Daniel Drake <dsd@gentoo.org> 272Date: 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 287commit fe0d8dce1ed704915d501e7da700440c78144211 288Author: Nathan Hjelm <hjelmn@mac.com> 289Date: Fri Sep 11 18:00:29 2009 +0100 290 291 Darwin: handle overflows 292 293commit f46716f42040986203fa6e873bfdabe1be2900ec 294Author: Daniel Drake <dsd@gentoo.org> 295Date: Thu Aug 27 21:14:54 2009 +0545 296 297 v1.0.3 release 298 299commit 5b489b8b2a5aba7b8b804e5af6d2628735548238 300Author: Toby Peterson <toby@macports.org> 301Date: Sun Aug 23 10:04:59 2009 +0545 302 303 Darwin: 64-bit type fixes 304 305commit ad8ae04d0b52009af0b1180e005f7554d2bbb26c 306Author: Nathan Hjelm <hjelmn@mac.com> 307Date: 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 314commit 45ae2aecf5512dcff059b2a416534e81c6a00c88 315Author: Daniel Drake <dsd@gentoo.org> 316Date: 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 323commit 126129e174062c2a27423817a459e5113f777789 324Author: Daniel Drake <dsd@gentoo.org> 325Date: 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 332commit 0334ee642b47dfe1ca9db64b22e7702ea14b3f09 333Author: Daniel Drake <dsd@gentoo.org> 334Date: 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 345commit 615f18e64e96ae4ecc8e43d0de00933059a5209a 346Author: Daniel Drake <dsd@gentoo.org> 347Date: 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 354commit 86f79fbf61c2018bdf009c7ebf92b38f3a16fd0c 355Author: Nathan Hjelm <hjelmn@mac.com> 356Date: 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 362commit d4bd9ed4de19a9c766f7a23eea8c852cdd61c18f 363Author: Daniel Drake <dsd@gentoo.org> 364Date: 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 371commit 8be256082eb9bd8e243d89529f742926bb29a21b 372Author: Daniel Drake <dsd@gentoo.org> 373Date: Sat Jun 13 17:19:07 2009 +0100 374 375 v1.0.2 release 376 377commit 060e006e663fd59c281be29b71eb197e02b210e8 378Author: Daniel Drake <dsd@gentoo.org> 379Date: 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 388commit c4a905022f684da9a4a853eb9232a81a53df2652 389Author: Nathan Hjelm <hjelmn@mac.com> 390Date: Sun Jun 7 22:29:35 2009 +0100 391 392 Darwin: improve handling of disconnected devices 393 394commit 6b69f54451762ef590b9c938ab000c07cf9099a3 395Author: Nathan Hjelm <hjelmn@mac.com> 396Date: 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 403commit 2b3a9ffa776b383cb2dbc3c55e490e32e4c3c22b 404Author: Daniel Drake <dsd@gentoo.org> 405Date: 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 413commit cad5cb55c37137e94e35c74fdabfe42a5cbd229b 414Author: David Moore <dcm@acm.org> 415Date: 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@acm.org> 428 429commit b501795985a23109f176d296e7b544b4c6354528 430Author: Alex Vatchenko <alex@fabulatech.com> 431Date: 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 438commit 00bb2805e994887f0a754a825c3ce03d22393386 439Author: Daniel Drake <dsd@gentoo.org> 440Date: 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 446commit 068ff5b8a83fec0a9a91c80535a25b89a9ae64e8 447Author: Daniel Drake <dsd@gentoo.org> 448Date: Tue May 12 19:20:51 2009 -0400 449 450 Update AUTHORS 451 452commit aa24c04e4043e39674b59ff0d302b2365cd0078f 453Author: Daniel Drake <dsd@gentoo.org> 454Date: Tue May 12 19:03:37 2009 -0400 455 456 v1.0.1 release 457 458commit 44767677447fae4267131f99c591b14117486cac 459Author: Daniel Drake <dsd@gentoo.org> 460Date: Tue May 12 19:01:44 2009 -0400 461 462 Add BUGS file 463 464 Probably missed a couple of outstanding issues 465 466commit e0365a6f22e0e7f330ac931df031cf6f17f453d1 467Author: Nathan Hjelm <hjelmn@mac.com> 468Date: Sun Mar 22 21:13:29 2009 -0400 469 470 Darwin: get_config_descriptor bugfixes 471 472commit 5fd0e8478240fece646a58a3c6114001a73be99f 473Author: Daniel Drake <dsd@gentoo.org> 474Date: Wed Feb 25 12:33:33 2009 -0300 475 476 Fix compilation of Darwin backend 477 478 My fault. Reported by ihryamzik@gmail.com 479 480commit b49f6bf5c910d0fd694ecf165d7927673707bff9 481Author: Nathan Hjelm <hjelmn@mac.com> 482Date: Mon Feb 16 21:39:29 2009 -0300 483 484 Darwin backend 485 486commit d859158581e9a3250f36cdeeb8ea67cda04053bd 487Author: Nathan Hjelm <hjelmn@mac.com> 488Date: 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 495commit 9196f58bdc8b9e967261df39865215faa5d39cfa 496Author: Nathan Hjelm <hjelmn@mac.com> 497Date: 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 505commit e91207860cac09b3afaafc4c14221b78d585c59a 506Author: Daniel Drake <dsd@gentoo.org> 507Date: Mon Feb 16 21:20:28 2009 -0300 508 509 Fix endianness in device descriptors 510 511 Pointed out by Nathan Hjelm. 512 513commit ccf6d3d2f6acf9b9a1cb5e1f1b03f382ae509b17 514Author: Nathan Hjelm <hjelmn@mac.com> 515Date: Mon Feb 16 21:13:52 2009 -0300 516 517 Only link with librt on Linux 518 519 [dsd: tweak configure.ac change] 520 521commit 894539931e4b4bd85708fe98b956049243cd6fb0 522Author: Hans Ulrich Niedermann <hun@n-dimensional.de> 523Date: 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 533commit abe34a2656f8f9f21e53603796c536585e6233ef 534Author: Hans Ulrich Niedermann <hun@n-dimensional.de> 535Date: 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 545commit 620075c7400764d9bb539b5c02065c45c2e8251e 546Author: Hans Ulrich Niedermann <hun@n-dimensional.de> 547Date: Sun Jan 25 18:20:45 2009 +0100 548 549 Avoid signedness errors in API docs example code 550 551commit c754ae294cfe96ec4738d6641137c9e6c56330c7 552Author: Daniel Drake <dsd@gentoo.org> 553Date: 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 561commit b9ca960f2ba271d2b1a58e22b7c70464d69f6c8a 562Author: David Moore <dcm@acm.org> 563Date: 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@acm.org> 574 575commit d2a8ec2da8abcd8f4648ed118da16191011982dd 576Author: David Moore <dcm@acm.org> 577Date: 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@acm.org> 601 602commit 34b9eebe35d8167d43cffb6ad6175f6b2251b572 603Author: Daniel Drake <dsd@gentoo.org> 604Date: Sat Dec 13 20:06:49 2008 +0000 605 606 v1.0.0 release 607 608 It's here! 609 610commit b1d636dde418dc8fe6a8f037dea0d800e57c6b94 611Author: Mikhail Gusarov <dottedmag@dottedmag.ent> 612Date: Wed Dec 10 15:24:05 2008 +0600 613 614 EOL-whitespace fixes 615 616 Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.ent> 617 618commit 4a9ac382ba5149ae5b3d0962d6a840b5e0dc13aa 619Author: Daniel Drake <dsd@gentoo.org> 620Date: 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 627commit 81a7310d92461ba7b1d98aeff7c4c007fab07120 628Author: Daniel Drake <dsd@gentoo.org> 629Date: 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 635commit 9b4b53453db56ba9c1d707a645bbe6c7a02a3c81 636Author: Daniel Drake <dsd@gentoo.org> 637Date: 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 645commit 0e5b0fcb77a90b8bd95ad23669da472af31ef069 646Author: Daniel Drake <dsd@gentoo.org> 647Date: Fri Nov 21 11:00:47 2008 +0000 648 649 SourceForge website upload system changed 650 651commit a133875e6e2f52eff53ac03f505d59cbdd33e178 652Author: Daniel Drake <dsd@gentoo.org> 653Date: Fri Nov 21 10:54:57 2008 +0000 654 655 v0.9.4 release 656 657commit c32aa662769b676ff3247778664fccc71fc427ec 658Author: Daniel Drake <dsd@gentoo.org> 659Date: 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 676commit 1d7cf3d0fa8698eae25097cbda1870be90ff6f5e 677Author: Bastien Nocera <hadess@hadess.net> 678Date: 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 686commit 914a4e70657c86b5094770aa2d898c978b1cdf41 687Author: Daniel Drake <dsd@gentoo.org> 688Date: 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 694commit d25b566b3b8febafdda4211de724b4727dd4b7e0 695Author: Aurelien Jarno <aurelien@aurel32.net> 696Date: 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 705commit 8674c67ef78e1cf89db1fa584a4304f7c5ddcc5f 706Author: Daniel Drake <dsd@gentoo.org> 707Date: Sun Nov 2 15:00:39 2008 +0000 708 709 Document the logging style 710 711 Suggested by Lou. 712 713commit 94936cbcfe3f02eb65c8b91e29896604316259d8 714Author: Daniel Drake <dsd@gentoo.org> 715Date: Wed Aug 27 22:44:24 2008 -0500 716 717 Async I/O documentation touchups 718 719commit 2f8f1b1a900f5b9828e5e2ff93c2b26a44fd9de2 720Author: Daniel Drake <dsd@gentoo.org> 721Date: Wed Aug 27 21:23:10 2008 -0500 722 723 Doc: fix typo in events lock section 724 725commit 046e681e4ac6b697e40458ee0f5baf3cd8763bb0 726Author: Daniel Drake <dsd@gentoo.org> 727Date: Sat Aug 23 01:00:21 2008 -0500 728 729 v0.9.3 release 730 731commit fec6eaa4eecdf7e0b8299157a5dabef94417f193 732Author: Daniel Drake <dsd@gentoo.org> 733Date: 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 741commit 81627bd38900ec9701ab69c141aa51a9abea1f60 742Author: Daniel Drake <dsd@gentoo.org> 743Date: Sun Aug 10 17:09:48 2008 -0500 744 745 Add libusb_get_configuration prototype 746 747 Pointed out by Lou 748 749commit 1631eaefcc7cdf7047c6b9225618a9aa1b3d87d1 750Author: Daniel Drake <dsd@gentoo.org> 751Date: Sat Jul 19 17:51:28 2008 -0500 752 753 v0.9.2 release 754 755commit 0d9c40d7f3eee15ada624b5caab2cfb912144fdc 756Author: Daniel Drake <dsd@gentoo.org> 757Date: 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 764commit 66c9847ad54b126ccafd4877292454ab57d0c115 765Author: David Engraf <dogge2k@gmx.de> 766Date: 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 773commit 6494f07a6d1b73ce786ae581c4ff691e39e61d19 774Author: Daniel Drake <dsd@gentoo.org> 775Date: 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 783commit 9140f5b414e37a3714cde9c6d6c87c963338a83a 784Author: Daniel Drake <dsd@gentoo.org> 785Date: Sat Jun 28 21:28:44 2008 -0500 786 787 v0.9.1 release 788 789commit 83a029062c1d2bfb584d7a6ee94915583d37464c 790Author: Daniel Drake <dsd@gentoo.org> 791Date: Sat Jun 28 21:24:49 2008 -0500 792 793 Add missing GET_CONTEXT() 794 795commit fbad9a5426f0369394c88987355a8fb06a741ca1 796Author: Daniel Drake <dsd@gentoo.org> 797Date: 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 804commit 819e65f880ca43526036e56c65c415042c91f58f 805Author: Daniel Drake <dsd@gentoo.org> 806Date: Thu Jun 26 22:47:05 2008 -0500 807 808 Allow user data pointer to be passed through pollfd notification API 809 810commit 1df713d622ab4f0b03aad72d903ac7beb8fb3b90 811Author: Daniel Drake <dsd@gentoo.org> 812Date: 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 819commit 9818151c60a85aea6af24cb0996a92c3726c9864 820Author: Daniel Drake <dsd@gentoo.org> 821Date: 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 829commit d5f82893fab3f1c13b1af4ba17aac72479bad7d5 830Author: Daniel Drake <dsd@gentoo.org> 831Date: Fri Jun 20 23:04:53 2008 -0500 832 833 Overflow handling 834 835commit 546dee211eefbdd280fd1fc9dee84a9b52105078 836Author: Artem Egorkine <arteme@gmail.com> 837Date: 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 845commit 947ba8056456a5215724fb502e3e09d50016f699 846Author: Daniel Drake <dsd@gentoo.org> 847Date: 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 855commit e7a7a49d0331ee0e14145f6e7ec39763b36314ac 856Author: Daniel Drake <dsd@gentoo.org> 857Date: 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 863commit 217534e4b396081e038ee5f94c813d1668963673 864Author: Daniel Drake <dsd@gentoo.org> 865Date: Sun Jun 15 15:23:29 2008 -0500 866 867 round up poll timeout 868 869 Pointed out by Richard Röjfors, otherwise we end up busy-looping with 870 a poll() timeout of 0. 871 872commit 5ad79b324bc5e11a75a585398a1e81c26f05e758 873Author: Felipe Balbi <me@felipebalbi.com> 874Date: 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@felipebalbi.com> 881 [dsd: small correction] 882 883commit 2d3a1111caff40ebb87983c861ff548cdc9e5946 884Author: Daniel Drake <dsd@gentoo.org> 885Date: 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 899commit 514bb8790cfe8b93ccfff82bc17081b1030acce0 900Author: Daniel Drake <dsd@gentoo.org> 901Date: 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 916commit d1292f8e7300051239a7ed2769d221dc7a6f9fca 917Author: Daniel Drake <dsd@gentoo.org> 918Date: Sun May 25 23:42:42 2008 +0100 919 920 v0.9.0 release 921 922 First libusb-1.0 beta release 923 924commit 4cd249388e4ed2ca03f1263984ab67df5030bb65 925Author: Daniel Drake <dsd@gentoo.org> 926Date: 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 933commit 7c525480ab3c4db9205bfe30bb0d2bef9096c444 934Author: Daniel Drake <dsd@gentoo.org> 935Date: 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 943commit ff0660a415ecfd0879600eaad1c5899b6d93a30a 944Author: Daniel Drake <dsd@gentoo.org> 945Date: 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 951commit 4d788967e3f8d75eaf3a1ac1ee8e2e8bed0601c1 952Author: Daniel Drake <dsd@gentoo.org> 953Date: 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 962commit bef33bb9eba0da04ee7488d9cd5e6ab12bc61c0c 963Author: Daniel Drake <dsd@gentoo.org> 964Date: 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 970commit a345bacb6f07ebb2122402041a9e8092d4a20a4d 971Author: David Engraf <david.engraf@netcom.eu> 972Date: 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 980commit e44396a458ecea9e5edd9a7577e617571c76860d 981Author: David Engraf <david.engraf@netcom.eu> 982Date: 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 991commit eb25630f52bc9848b444e439632c899977d887b0 992Author: Daniel Drake <dsd@gentoo.org> 993Date: 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 999commit 2b2e9c40b195261b09ac52ebdb93eef25c79de90 1000Author: Daniel Drake <dsd@gentoo.org> 1001Date: 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 1008commit 1298c51f516a7bf04ca9add1b7db14417cdc66f3 1009Author: Daniel Drake <dsd@gentoo.org> 1010Date: 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 1016commit ade26afc42c34ceb1c45afcadd2ea5e8240eaca4 1017Author: Daniel Drake <dsd@gentoo.org> 1018Date: 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 1024commit e25d590a9198995b4f0b6afeb41ecae318715e7e 1025Author: Rob Walker <rob@tenfoot.org.uk> 1026Date: 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 1035commit fec7c84163e25b8f811632828334d75da82bcb16 1036Author: Daniel Drake <dsd@gentoo.org> 1037Date: 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 1044commit aeb905fa5d78cdbba80a680aa7a2bb7338f27f65 1045Author: Daniel Drake <dsd@gentoo.org> 1046Date: Sun May 11 16:04:35 2008 +0100 1047 1048 Documentation work 1049 1050commit ba5d9a45c06311204f51faef41d1ee215bb5b823 1051Author: Daniel Drake <dsd@gentoo.org> 1052Date: 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 1062commit 7bedc3b2683f35ee1dd39a2ebe0ec05be0019f38 1063Author: Daniel Drake <dsd@gentoo.org> 1064Date: Sun May 11 15:11:59 2008 +0100 1065 1066 Document that releasing interface causes SET_INTERFACE control request 1067 1068commit f2ede9876cd4f5cfa7751b975670fa449187fe3d 1069Author: Daniel Drake <dsd@gentoo.org> 1070Date: Sat May 10 21:45:42 2008 +0100 1071 1072 Support unconfigured devices 1073 1074commit 8ebb4ccdfaf5f095a1c38787d909d280ea64405c 1075Author: Daniel Drake <dsd@gentoo.org> 1076Date: Sat May 10 20:56:44 2008 +0100 1077 1078 Linux: fix caching of active configuration for non-sysfs 1079 1080commit c3844f7aeb2176636ce6e6ef697659fdb0b30048 1081Author: Daniel Drake <dsd@gentoo.org> 1082Date: 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 1088commit d77052c0d630e33737c38d601fd633155f6b2229 1089Author: Daniel Drake <dsd@gentoo.org> 1090Date: 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 1096commit 74bc842bac1a32a26323da6c3e8af2f66e1b5cfa 1097Author: Daniel Drake <dsd@gentoo.org> 1098Date: 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 1104commit fe4adcc99e30115204ab832ad3e0170c9aca7629 1105Author: Daniel Drake <dsd@gentoo.org> 1106Date: 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 1114commit 5741bfe01a2481b8c3830c80edc3637bf62a7e16 1115Author: Daniel Drake <dsd@gentoo.org> 1116Date: Fri May 9 14:36:14 2008 +0100 1117 1118 libusb_get_device_list() can return negative error code 1119 1120commit 45413101b78298e9332b22a34bc6bc159000ad8a 1121Author: Daniel Drake <dsd@gentoo.org> 1122Date: 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 1129commit 10d4e427cc171dfd6ad7f43a33ce3cfebcd7aa04 1130Author: Daniel Drake <dsd@gentoo.org> 1131Date: Thu May 8 23:04:52 2008 +0100 1132 1133 Documentation work 1134 1135 Partially based on some libusb-devel discussions 1136 1137commit ded0a249322571a075e3ed3528021864247dfa55 1138Author: Daniel Drake <dsd@gentoo.org> 1139Date: 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 1147commit 885c2a5de69d6b7d8902bb55d6d83680a5a1a6e5 1148Author: Daniel Drake <dsd@gentoo.org> 1149Date: Mon May 5 21:34:31 2008 +0100 1150 1151 documentation touchups 1152 1153commit 59c205d542b43d79fe28622dbe8f03a3a3300b6f 1154Author: Daniel Drake <dsd@gentoo.org> 1155Date: Mon May 5 21:17:03 2008 +0100 1156 1157 more error code sanitization 1158 1159commit 88055d4b5913102a90ff666f75fd922c74860dc5 1160Author: Daniel Drake <dsd@gentoo.org> 1161Date: Mon May 5 20:57:43 2008 +0100 1162 1163 Isochronous transfer helper functions 1164 1165commit a95c943ed301dcd20e92b0b3b255568899a4c42e 1166Author: Daniel Drake <dsd@gentoo.org> 1167Date: Mon May 5 17:54:33 2008 +0100 1168 1169 free open devices on exit 1170 1171commit b27fff633843824744df7d334cb89ece329cafa6 1172Author: Daniel Drake <dsd@gentoo.org> 1173Date: 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 1180commit a304eca71f22c6df7d70a901483b30f1b8e93378 1181Author: Daniel Drake <dsd@gentoo.org> 1182Date: Mon May 5 16:22:33 2008 +0100 1183 1184 Detect endpoint halts and unsupported control requests 1185 1186commit 7da521954ba661d3f537440c31a84b66e974d56b 1187Author: Daniel Drake <dsd@gentoo.org> 1188Date: 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 1195commit 470b1bc42bf53373ce678fc76bab9160a54d6881 1196Author: Daniel Drake <dsd@gentoo.org> 1197Date: Sun May 4 16:51:23 2008 +0100 1198 1199 add functionality for querying and detaching kernel driver 1200 1201commit 17ecfb0ecc833596c43755c80d461cddb9b3b0d7 1202Author: Daniel Drake <dsd@gentoo.org> 1203Date: Sun May 4 16:20:46 2008 +0100 1204 1205 Descriptor reading functionality 1206 1207commit bdce367d1bd8691465844b2411c85215498f517d 1208Author: Daniel Drake <dsd@gentoo.org> 1209Date: Sun May 4 14:22:16 2008 +0100 1210 1211 sanitized error returns from synchronous I/O functions 1212 1213commit bfe74e9cd9c17a40fff042ea0647326f51cfecae 1214Author: Daniel Drake <dsd@gentoo.org> 1215Date: Sun May 4 14:10:19 2008 +0100 1216 1217 implement libusb_reset_device() 1218 1219commit c01f744ce07bbeccbe353e956479f0cc5a811a6f 1220Author: Daniel Drake <dsd@gentoo.org> 1221Date: Sun May 4 13:46:41 2008 +0100 1222 1223 Add functionality to clear endpoint halt conditions 1224 1225commit 5878daa85e3364bb3885190425d4f9deaa2d8c36 1226Author: Daniel Drake <dsd@gentoo.org> 1227Date: 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 1233commit a74106a9b48b88bae0e099be34a18d653a8f1238 1234Author: Daniel Drake <dsd@gentoo.org> 1235Date: 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 1242commit 0f463fe671455670efcf4a93e526b2a9082b0afe 1243Author: Daniel Drake <dsd@gentoo.org> 1244Date: Sat May 3 16:24:11 2008 +0100 1245 1246 Add libusb_set_configuration() 1247 1248commit e65608994f795f97e4d6adac20329ca08709db2d 1249Author: Daniel Drake <dsd@gentoo.org> 1250Date: Sat May 3 15:40:23 2008 +0100 1251 1252 rename LIBUSB_ERROR_NOMEM to LIBUSB_ERROR_NO_MEM 1253 improves consistency 1254 1255commit 5384bbf300779e7936eac9ebd33ee38f5b533f8e 1256Author: Daniel Drake <dsd@gentoo.org> 1257Date: Sat May 3 14:34:54 2008 +0100 1258 1259 Linux: better EACCES handling 1260 1261commit 1936eeeba3f933a078df1005cc7c1533a8ec2bac 1262Author: Daniel Drake <dsd@gentoo.org> 1263Date: 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 1269commit e2f822b4f17342f614ab2455179a80975fca6cb0 1270Author: Daniel Drake <dsd@gentoo.org> 1271Date: 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 1278commit 81204eed3d0a7744b89b68bd90d567b68d191a91 1279Author: Daniel Drake <dsd@gentoo.org> 1280Date: Fri May 2 17:45:23 2008 +0100 1281 1282 document pollfd notifiers 1283 1284commit e20f8281fb7da32587f81b5eea5818af1eab0fe0 1285Author: Daniel Drake <dsd@gentoo.org> 1286Date: Fri May 2 17:33:52 2008 +0100 1287 1288 Allow multiple interfaces to be claimed 1289 1290commit 66685ff25d81a1f1a2a3dbda882d407638d00672 1291Author: Daniel Drake <dsd@gentoo.org> 1292Date: Fri May 2 16:55:36 2008 +0100 1293 1294 Documentation improvements 1295 1296commit 55bce39cbe0c9746a428b66751d1afe551d86381 1297Author: Daniel Drake <dsd@gentoo.org> 1298Date: Fri May 2 12:55:34 2008 +0100 1299 1300 detect short descriptor reads 1301 1302commit f3f17846dcced6b2dc40f899ed6a2aba151c264b 1303Author: Daniel Drake <dsd@gentoo.org> 1304Date: Fri May 2 12:32:46 2008 +0100 1305 1306 remove "references" and "referenced by" listings in documentation 1307 1308commit fbb017dd9a26ce449578482b95157b3c850fa446 1309Author: Daniel Drake <dsd@gentoo.org> 1310Date: 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 1316commit 3675e978fb7a1042f8601931255658bcd14a2298 1317Author: Daniel Drake <dsd@gentoo.org> 1318Date: Fri May 2 12:28:31 2008 +0100 1319 1320 Expose bus number and device address 1321 1322commit 2012898ffc492317cb428d97077bf5ee0e98e1da 1323Author: Daniel Drake <dsd@gentoo.org> 1324Date: Tue Apr 29 15:26:46 2008 +0100 1325 1326 standardised error codes 1327 1328commit 0269c75ae3de7acb2dc555e45928750e35fdb320 1329Author: Daniel Drake <dsd@gentoo.org> 1330Date: Tue Apr 29 13:34:26 2008 +0100 1331 1332 Fix descriptor handling memory leaks 1333 1334commit d3ab4e3bd4068cba41c1e12c4b175018dc3cb343 1335Author: Daniel Drake <dsd@gentoo.org> 1336Date: 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 1342commit 379e90e0fdcef6f4db1849fa0a7fd524407cf564 1343Author: Daniel Drake <dsd@gentoo.org> 1344Date: Sun Apr 27 23:41:24 2008 +0100 1345 1346 Remove a FIXME comment 1347 1348 it can't. 1349 1350commit 2ddf81420557d016bbcbf28dda0d8d1c64d16264 1351Author: Daniel Drake <dsd@gentoo.org> 1352Date: Sun Apr 27 23:30:34 2008 +0100 1353 1354 Fix unlocked flying_transfers list access 1355 1356commit 7ac0a405b4c57db42e88cbcba5f135697f03b646 1357Author: Daniel Drake <dsd@gentoo.org> 1358Date: 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 1365commit a5006fd7b9dae6f1db7969c8744086ba3a7c027b 1366Author: Daniel Drake <dsd@gentoo.org> 1367Date: 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 1373commit 3bdafaa359d9c65e1af360b5338e1f25528a8066 1374Author: Daniel Drake <dsd@gentoo.org> 1375Date: 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 1382commit e12618c79d520955b1abf80a277e881d91907162 1383Author: Daniel Drake <dsd@gentoo.org> 1384Date: Sat Apr 19 16:17:53 2008 +0100 1385 1386 add threaded example program 1387 1388commit 1fcdb0678b759569db7cd530457dbc0a5f86fb1d 1389Author: Daniel Drake <dsd@gentoo.org> 1390Date: Fri Apr 18 23:58:54 2008 +0100 1391 1392 libusb_device mutex protection 1393 1394commit 0efd2efa65d5513e5754d717d522b2c5c45332e2 1395Author: Daniel Drake <dsd@gentoo.org> 1396Date: Fri Apr 18 23:42:40 2008 +0100 1397 1398 mutex protection for device and handle lists 1399 1400commit d2ff2b14a15e5099ff0214502944de30f141a39c 1401Author: Daniel Drake <dsd@gentoo.org> 1402Date: Fri Apr 18 20:00:31 2008 +0100 1403 1404 lock flying_transfers during transfer removal 1405 1406commit 2569980762cb66804da31e54bef243702da8dfe9 1407Author: Daniel Drake <dsd@gentoo.org> 1408Date: Fri Apr 18 19:59:56 2008 +0100 1409 1410 pollfds mutex protection 1411 1412commit f5a33e08ec0da51ccb5e95a5adec50c5211a9bf5 1413Author: Daniel Drake <dsd@gentoo.org> 1414Date: Thu Apr 17 18:24:54 2008 +0100 1415 1416 flying_transfers mutex protection 1417 1418 This marks the beginnings of thread safety 1419 1420commit 85e1994123545125ce0653415d122f9790f8d041 1421Author: Daniel Drake <dsd@gentoo.org> 1422Date: Thu Apr 17 17:44:28 2008 +0100 1423 1424 Linux: fix control transfer cancellation 1425 1426commit cf9b831f7bfd97ba88721c1d934aeda522f3692c 1427Author: Daniel Drake <dsd@gentoo.org> 1428Date: 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 1434commit ad6e2b712c5b54af44424e58a2776686314e26b7 1435Author: Daniel Drake <dsd@gentoo.org> 1436Date: 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 1449commit d9b2ce2894ed43d34de6850f2dac50ccabf1db55 1450Author: Daniel Drake <dsd@gentoo.org> 1451Date: 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 1457commit 8d809854e2b19c2b7c27ab05e5d76b34e2a5cead 1458Author: Daniel Drake <dsd@gentoo.org> 1459Date: Sun Mar 30 22:19:00 2008 +0100 1460 1461 Rename libusb_poll() to libusb_handle_events() 1462 1463commit 211f80c9f2a4a58cd2bbf5b7751f45089c8961e7 1464Author: Daniel Drake <dsd@gentoo.org> 1465Date: 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 1476commit b1ade6fca668d8aa156d5b5bf3a933f116144dc2 1477Author: Daniel Drake <dsd@gentoo.org> 1478Date: Sun Mar 23 21:17:32 2008 +0000 1479 1480 distcheck fix for docs 1481 1482commit 62077b7fa5b222e1bb9dea3467585aed69d596e2 1483Author: Daniel Drake <dsd@gentoo.org> 1484Date: 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 1490commit 0499e9f418607b5786ac0c3e97bc46737a609ca3 1491Author: Daniel Drake <dsd@gentoo.org> 1492Date: Thu Mar 20 21:10:01 2008 +0000 1493 1494 it's called bmRequestType 1495 1496commit 88884ae4bbe721dac117d5190303cb67852fa5d3 1497Author: Daniel Drake <dsd@gentoo.org> 1498Date: 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 1505commit ead09cde6895df0034a685516987ce253575e9a7 1506Author: Daniel Drake <dsd@gentoo.org> 1507Date: 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 1514commit 285724cc14ea5f993e2c4c92fe0aaf6c335bc139 1515Author: Vasily Khoruzhick <anarsoul@gmail.com> 1516Date: 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@gmail.com> 1524 1525commit c0c9432d38b22784070dce3a7874c62c31786a27 1526Author: Daniel Drake <dsd@gentoo.org> 1527Date: 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 1533commit de4c5341d168697baa4c0901c406deb47e78aae7 1534Author: Daniel Drake <dsd@gentoo.org> 1535Date: Mon Mar 10 18:38:15 2008 +0000 1536 1537 Add transfer flags 1538 1539commit aae05f688dc26a013166ab9436fd25018b49d76a 1540Author: Daniel Drake <dsd@gentoo.org> 1541Date: 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 1547commit 7c5ea95297c2f3f6afc42f60c1bf1bef777bb1fb 1548Author: Daniel Drake <dsd@gentoo.org> 1549Date: 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 1555commit 9e89d1aa82cbe7e21672ee3e2e545238fffc5318 1556Author: Daniel Drake <dsd@gentoo.org> 1557Date: Sun Mar 9 16:27:06 2008 +0000 1558 1559 Rename descriptor-getting functions 1560 1561 Based on feedback from Tim Roberts 1562 1563commit 283ae96c3ccbcee1c3950fce18ae47093ae8200e 1564Author: Daniel Drake <dsd@gentoo.org> 1565Date: Sun Mar 9 16:15:02 2008 +0000 1566 1567 Simplify cancellation API 1568 1569 No need to provide the device here. 1570 1571commit ebad1c79688ba603ad017ed0fe2f3c0dc8edd1ad 1572Author: Daniel Drake <dsd@gentoo.org> 1573Date: Sun Mar 9 16:12:08 2008 +0000 1574 1575 Rename libusb_dev_handle to libusb_device_handle 1576 1577commit 1ac0a7d88f282b6f293c456fac8edb143cbaca3d 1578Author: Daniel Drake <dsd@gentoo.org> 1579Date: Sun Mar 9 01:01:57 2008 +0000 1580 1581 Move synchronous I/O implementation to its own file 1582 1583commit 66348c90ea4570bf999ac301089e006d0cce1926 1584Author: Daniel Drake <dsd@gentoo.org> 1585Date: 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 1597commit d21ebe47ce578c93cd8969be1c933d503e32e5d4 1598Author: Daniel Drake <dsd@gentoo.org> 1599Date: 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 1608commit fd6fb3cc093ad47271353a0e468d16547f991382 1609Author: Daniel Drake <dsd@gentoo.org> 1610Date: 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 1617commit f3fdf447916289cd92b7190377681894e8ab611a 1618Author: Daniel Drake <dsd@gentoo.org> 1619Date: 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 1629commit 23f8fb8bafeeda93ce234cb40eb7219d2e36c19c 1630Author: Daniel Drake <dsd@gentoo.org> 1631Date: 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 1639commit 9cfdb494fccac53a4277da7c8b6d15f1a72a4959 1640Author: Daniel Drake <dsd@gentoo.org> 1641Date: 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 1667commit 77cea822788e024c848c7f554915f771a2dc1e0f 1668Author: Daniel Drake <dsd@gentoo.org> 1669Date: Thu Mar 6 17:05:04 2008 +0000 1670 1671 Remove ctrl debug code 1672 1673 This was unintentionally committed 1674 1675commit b873521a6f575628d535f89278bb67888004d0ca 1676Author: Daniel Drake <dsd@gentoo.org> 1677Date: 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 1684commit ca66e16a370c828d08a5bc3f9f203db145c81a4c 1685Author: Daniel Drake <dsd@gentoo.org> 1686Date: Fri Feb 1 12:20:20 2008 +0000 1687 1688 Fix header installation path 1689 1690commit e583100a4086c411093eef5c450880b965df6b1b 1691Author: Daniel Drake <dsd@gentoo.org> 1692Date: Wed Jan 30 13:24:54 2008 +0000 1693 1694 TODO update 1695 1696commit 637a8d7ff8a11a23588925d9d3003a609bda8075 1697Author: Daniel Drake <dsd@gentoo.org> 1698Date: 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 1707commit 8c56abe2e13ed4dd8c15737c21be7b6b1e5cf2ac 1708Author: Daniel Drake <dsd@gentoo.org> 1709Date: 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 1716commit e3ce855acec33d37dd833bca5dad5e8c3773003a 1717Author: Daniel Drake <dsd@gentoo.org> 1718Date: Sat Jan 26 17:26:40 2008 +0000 1719 1720 Fix dpfp example compilation 1721 1722commit 1d41a5cda2fefe826877ee4445199af30aa188b7 1723Author: Daniel Drake <dsd@gentoo.org> 1724Date: Sat Jan 26 17:22:53 2008 +0000 1725 1726 C++ header safety 1727 1728 Pointed out by JF 1729 1730commit 37b7f9a112eb1441d352467f661205b8872d0553 1731Author: Daniel Drake <dsd@gentoo.org> 1732Date: 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 1738commit e3a09ca0b9cb6f46d54a0130f678c6097240a2bd 1739Author: Daniel Drake <dsd@gentoo.org> 1740Date: Sat Jan 5 21:59:40 2008 +0000 1741 1742 Remove more fpusb remnants 1743 1744commit dcd5e0075fa84601d997d29bb60bc8370b97a375 1745Author: Daniel Drake <dsd@gentoo.org> 1746Date: 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 1753commit de53d972ed9c1f21f86ffd585560520e986f212c 1754Author: Daniel Drake <dsd@gentoo.org> 1755Date: 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 1762commit 132d84bf8ae34bd0892b3d8207a53d87cc0a9cba 1763Author: Daniel Drake <dsd@gentoo.org> 1764Date: 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 1770commit ea6af58a8643137eb01eeb7d2f65404e390feb1b 1771Author: Daniel Drake <dsd@gentoo.org> 1772Date: Fri Jan 4 00:57:00 2008 +0000 1773 1774 Plural of bus is busses 1775 1776 SF #1633043 1777 1778commit dbb3fd871e3972b4e670f3161e7cd2f58f357600 1779Author: Daniel Drake <dsd@gentoo.org> 1780Date: 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 1790commit e9364d72151ae1de9cce4175f330fe1529f02511 1791Author: Daniel Drake <dsd@gentoo.org> 1792Date: 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 1799commit f4ed0b6a3e0a20555fdfc9e9b8be7e8a2c8ae192 1800Author: Daniel Drake <dsd@gentoo.org> 1801Date: Sun Dec 30 22:09:50 2007 +0000 1802 1803 Compiler flags update 1804 1805 Also fix some warnings 1806 1807commit d3d671efe27491baf1d2ceadbfeeb4e7428d6f9a 1808Author: Daniel Drake <dsd@gentoo.org> 1809Date: 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 1815commit dfac6756faad76071a92945e3e3a16b8a841a7ea 1816Author: Daniel Drake <dsd@gentoo.org> 1817Date: 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 1825commit a8d2881eb7c273892acf2ff6e1f3f552631d1d11 1826Author: Daniel Drake <dsd@gentoo.org> 1827Date: Mon Dec 3 23:29:22 2007 +0000 1828 1829 Add functionality to access device descriptors 1830 1831commit b5a7a411087b37a6bf56b4688a9e3290daaed153 1832Author: Daniel Drake <dsd@gentoo.org> 1833Date: 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 1839commit eacf4505a473df0f521d1b69d5b45448f0709e2d 1840Author: Daniel Drake <dsd@gentoo.org> 1841Date: Sun Dec 2 23:16:57 2007 +0000 1842 1843 Add API to access poll fd 1844 1845 Almost forgot... :) 1846 1847commit 852bba4754ec57679c823f33e8feba6e4a564cbe 1848Author: Daniel Drake <dsd@gentoo.org> 1849Date: Wed Nov 28 13:48:45 2007 +0000 1850 1851 Initial commit 1852 1853 Basic library structure which supports enumerating detected USB devices 1854