Misc: Revert all references to libusb/libusb.info
libusb 1.0.18-rc1
Darwin: Fix Xcode warning in 'struct timeval' initialization
Windows: Fix MinGW parallel build
libusb 1.0.18
Windows: Add support for (old?) Intel USB 3.0 hub driver

* Has VID:PID 8086:1111
Documentation: fix hotplug example

* add a missing call to libusb_handle_events_completed()
* add a missing argument to libusb_hotplug_deregister_callback()
Windows: Add support for AMD USB 3.0 root hubs

* The driver has to be updated to version 1.0.0.66 (2011-10-25) or later
* Older versions can fail with the following warning:
  could not get node connection information for device [..]: [87] The parameter is incorrect.
* Also Remove duplicated "API" string in debug output
* Closes #1
darwin: use destructor function instead of atexit to cleanup state

Using an atexit function to cleanup the state could cause weird interactions
with other atexit functions. Ensure the darwin cleanup function is called
last by making it a destructor function instead.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
Documentation: Update the doxygen tagline

* Make it the same as the one used on the website and elsewhere
darwin: squash warning about returning size_t as int

I also updated the documentation on the backend get_config_descriptor
function. The documentation incorrectly stated that this function returns
0 on success when it really returns the length of the descriptor.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
Enabled additional warnings in Xcode project
Removed empty \see statements, fixing -Wdocumentation warnings
Enabled LTO optimization in release in Xcode project
Removed obsolete comment related to libusbx fork
examples: fix incorrect error message in fxload

* Closes #3
 Updated netlink code to parse events that do not contain BUSNUM and
  DEVNUM but do have a DEVICE parameter.

 These netlink events are now parsed:
 >>>>>>>>>>>>>>>>>
 add@/devices/platform/brcm-ohci-0.0/usb3/3-2/3-2:1.0
 ACTION=add
 DEVPATH=/devices/platform/brcm-ohci-0.0/usb3/3-2/3-2:1.0
 SUBSYSTEM=usb
 SEQNUM=290
 PHYSDEVBUS=usb
 DEVICE=/proc/bus/usb/003/003
 PRODUCT=45e/28e/114
 TYPE=255/255/255
 INTERFACE=255/93/1
 <<<<<<<<<<<<<<<<<

 Also added a retry when opening the device file to work around a race condition with the kernel
Add API for allocating / freeing usb3 bulk streams + Linux implementation

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Add API for using bulk streams

Being able to allocate bulk-streams is not really useful if the user cannot
specify the stream ids when submitting transfers.

The actual stream id gets added to our private itransfer struct, and a setter +
getter are added to get to it. Unfortunately this is the only way to add
support for stream ids without breaking ABI. So this is another item to fix
when we do break ABI in libusb-2.0.

Bulk streams also use a separate transer type, to allow backends to determine
if a transfer is a bulk stream transfer or an ordinary bulk transfer. This is
added because there is no other reliable way to determine if a transfer is
a stream as the stream_id is part of the private itransfer struct so apps
re-using a transfer may not set it to 0. Adding a separate transfer-type
for this was suggested (and coded) by Nathan Hjelm.

Most users will likely use the new libusb_fill_bulk_stream_transfer()
though, and will never know the difference.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>