summaryrefslogtreecommitdiff
path: root/TODO
Commit message (Collapse)AuthorAgeFilesLines
* Linux: Compatibility with new sysfs descriptors fileDaniel Drake2008-06-281-2/+0
| | | | | As of 2.6.26, the descriptors file now includes all descriptors, not just the active one.
* Introduce contexts to the APIDaniel Drake2008-06-261-2/+0
| | | | | Suggested by David Zeuthen. This allows multiple libraries in the same process to independently use libusb without interfering.
* Overflow handlingDaniel Drake2008-06-201-1/+1
|
* docs updateDaniel Drake2008-06-151-0/+6
| | | | Add a THANKS file, make copyright notices easily accessible, update TODO
* Implement serialization of event handlersDaniel Drake2008-05-251-4/+0
| | | | | | Now offers a mechanism to wait for events while another thread is doing the event handling. Complicates things for MT async apps, but then again it's a bit of a tricky combination to start with.
* More informative libusb_open() return codeDaniel Drake2008-05-161-1/+1
| | | | Hopefully one of the last API tweaks...
* Backend documentation for porting effortsDaniel Drake2008-05-131-5/+0
| | | | Hopefully comprehensive enough for people to get started.
* Handle hot-unpluggingDaniel Drake2008-05-111-2/+0
| | | | | This involved moving from select() to poll() because there is no way to distinguish usbfs's POLLERR condition with select().
* Documentation workDaniel Drake2008-05-111-0/+1
|
* Endianness of control setup packetsDaniel Drake2008-05-111-2/+0
| | | | | | | | Document behaviour where host-endian and bus-endian (little) should be used respectively. Also remove packed attribute from libusb_control_setup as all fields are naturally aligned.
* Document that releasing interface causes SET_INTERFACE control requestDaniel Drake2008-05-111-1/+0
|
* Support unconfigured devicesDaniel Drake2008-05-101-1/+0
|
* Linux: fix caching of active configuration for non-sysfsDaniel Drake2008-05-101-1/+0
|
* Rework configuration handlingDaniel Drake2008-05-091-0/+1
| | | | | | libusb no longer caches descriptors in libusb_device but backends are intended to be able to provide copies from memory. In the common linux case we can use sysfs.
* Documentation workDaniel Drake2008-05-081-0/+2
| | | | Partially based on some libusb-devel discussions
* documentation touchupsDaniel Drake2008-05-051-1/+0
|
* Linux: fix logical URB allocationDaniel Drake2008-05-051-1/+0
| | | | | We were allocating the wrong number of URBs for transfers of size multiples of 16k.
* Linux: better EACCES handlingDaniel Drake2008-05-031-1/+0
|
* Linux: use read-only access to enumerate devices and descriptorsDaniel Drake2008-05-031-0/+1
| | | | | Write access is not needed until later. Also fix handling of open() error code.
* Allow multiple interfaces to be claimedDaniel Drake2008-05-021-0/+2
|
* standardised error codesDaniel Drake2008-04-291-1/+0
|
* add threaded example programDaniel Drake2008-04-191-0/+1
|
* lock flying_transfers during transfer removalDaniel Drake2008-04-181-1/+0
|
* Linux: fire multiple URBs at once for split transfersDaniel Drake2008-04-111-2/+1
| | | | | | | | | | | This results in a significant performance increase for bulk transfers larger than 16kb, and fixes a bug where data would be spliced and mixed between two simultaneously submitted transfers to the same endpoint. It also allows isochronous transfers larger than 16kb to be submitted. This commit also improves cancellation - the library now understands what is going on.
* Constify some return dataDaniel Drake2008-04-011-3/+0
| | | | Make it clear that apps should not mess with these structures
* Rename libusb_poll() to libusb_handle_events()Daniel Drake2008-03-301-1/+0
|
* Isochronous endpoint I/ODaniel Drake2008-03-301-1/+1
| | | | | | | | | Due to variable-sized structures, this involved changing allocation mechanism. All transfers must now be allocated and freed through libusb. A synchronous function is missing, and I could do with writing a few more helper functions to simplify things.
* it's called bmRequestTypeDaniel Drake2008-03-201-1/+0
|
* Save transfer flags before invoking callbackDaniel Drake2008-03-201-1/+0
| | | | | The callback may free the transfer, in which case we can't read the flags after it has returned.
* API documentationDaniel Drake2008-03-201-1/+7
| | | | | Hopefully mostly complete. Some constants were renamed and move into enums.
* Beginnings of cross-platform abstractionDaniel Drake2008-03-131-1/+0
| | | | This also includes a libusb_get_pollfds API change
* Add transfer flagsDaniel Drake2008-03-101-5/+0
|
* Rename descriptor-getting functionsDaniel Drake2008-03-091-2/+2
| | | | Based on feedback from Tim Roberts
* Rename libusb_dev_handle to libusb_device_handleDaniel Drake2008-03-091-1/+0
|
* Separate transfer allocation and submissionDaniel Drake2008-03-091-13/+12
| | | | | | | | | | Leads to some hefty API changes. Now we're much more similar to the Linux kernel model. Problems with dealing with asynchronous control transfers are passed on to the user, basically you must allocate a buffer, start with the setup, and put the data after. This won't make much sense until documented (soon...)
* Rework URB API namingDaniel Drake2008-03-081-2/+3
| | | | | | | Now refer to everything as "transfers" as consistent with the USB spec libusb_transfer is now a kind of transfer handle. To reduce confusion with libusb_bulk_transfer and libusb_control_transfer, those have been renamed to libusb_{control,bulk}_transfer_request.
* Add fallback on /proc/bus/usbDaniel Drake2008-03-081-1/+1
| | | | | /dev/bus/usb is a relatively new thing probably not present on every system
* Persistent libusb_device storageDaniel Drake2008-03-081-2/+0
| | | | | | | | Devices are now assigned a session ID (currently busnum:devaddr) which is used to distinguish unique devices. Now multiple callers of libusb_get_device_list will get the same libusb_device structure instances.
* Rework device discovery APIDaniel Drake2008-03-061-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | libusb_find_devices and libusb_get_devices are no more libusb_get_device_list obtains a list of libusb_device structures for all known devices in the system. Each libusb_device now has a reference count, defaulting to 1 on instantiation. The reference count of 1 refers to the fact that it is present in the list in this scenario. Opening a device adds a pointer to the libusb_device structure in the handle, so that also adds a reference. Closing the device removes that reference. The function to free the device list can optionally unref all the devices inside. In future we will make the libusb_device instances all "global" so that if the app calls get_device_list twice it actually gets the same libusb_device structure references back. This way we can start to track disconnects, and we can investigate adding a unique "session ID" to each libusb_device, an identifier guaranteed to be unique to that device until reboot.
* Notifications for changes to the fd setDaniel Drake2008-02-261-0/+1
| | | | | Applications can now be notified when they should start and stop polling new file descriptors.
* TODO updateDaniel Drake2008-01-301-5/+14
|
* Remove timers and signalfdDaniel Drake2008-01-301-1/+0
| | | | | | | Instead of timers, add a mechanism for informing the parent app when the next timeout is due to happen, so that it can call us at that time. As we no longer use signals, signalfd has also been removed.
* Poll usbfs descriptors directlyDaniel Drake2008-01-261-2/+1
| | | | | We don't need to use signalfd for this functionality because we can poll the file descriptors for write events.
* TODO updateDaniel Drake2008-01-041-0/+10
| | | | | Start listing the things I want to discuss/reconsider before 1.0 API is final.
* Add functionality to access device descriptorsDaniel Drake2007-12-031-0/+2
|
* Initial commitDaniel Drake2007-12-021-0/+6
Basic library structure which supports enumerating detected USB devices