Skip to content
Permalink
Browse files

Merge pull request #8070 from leoetlino/usb-fixes

Update and patch libusb to fix USB issues
  • Loading branch information...
leoetlino committed May 29, 2019
2 parents 918d707 + 256c937 commit aca46b11f869a31be3e98af756c4fdfe5c6ed22a
Showing with 6,440 additions and 20,853 deletions.
  1. +8 −0 Externals/.gitignore
  2. +49 −0 Externals/libusb/.travis.yml
  3. +32 −2 Externals/libusb/AUTHORS
  4. +4 −0 Externals/libusb/Brewfile
  5. +35 −0 Externals/libusb/ChangeLog
  6. +0 −7 Externals/libusb/DOLPHIN
  7. +73 −0 Externals/libusb/INSTALL_WIN.txt
  8. +28 −0 Externals/libusb/Makefile.am
  9. +0 −33 Externals/libusb/README
  10. +1 −0 Externals/libusb/README
  11. +41 −0 Externals/libusb/README.git
  12. +32 −0 Externals/libusb/README.md
  13. +8 −0 Externals/libusb/autogen.sh
  14. +6 −0 Externals/libusb/bootstrap.sh
  15. +332 −0 Externals/libusb/configure.ac
  16. +11 −0 Externals/libusb/libusb-1.0.pc.in
  17. +9 −7 Externals/libusb/libusb/Makefile.am
  18. +427 −246 Externals/libusb/libusb/core.c
  19. +27 −25 Externals/libusb/libusb/descriptor.c
  20. +73 −50 Externals/libusb/libusb/hotplug.c
  21. +34 −25 Externals/libusb/libusb/hotplug.h
  22. +83 −67 Externals/libusb/libusb/io.c
  23. +10 −6 Externals/libusb/libusb/libusb-1.0.def
  24. +106 −48 Externals/libusb/libusb/libusb.h
  25. +141 −94 Externals/libusb/libusb/libusbi.h
  26. +389 −231 Externals/libusb/libusb/os/darwin_usb.c
  27. +55 −16 Externals/libusb/libusb/os/darwin_usb.h
  28. +6 −6 Externals/libusb/libusb/os/haiku_usb_backend.cpp
  29. +49 −46 Externals/libusb/libusb/os/haiku_usb_raw.cpp
  30. +37 −28 Externals/libusb/libusb/os/linux_netlink.c
  31. +32 −10 Externals/libusb/libusb/os/linux_udev.c
  32. +314 −154 Externals/libusb/libusb/os/linux_usbfs.c
  33. +3 −2 Externals/libusb/libusb/os/linux_usbfs.h
  34. +8 −3 Externals/libusb/libusb/os/netbsd_usb.c
  35. +3 −3 Externals/libusb/libusb/os/openbsd_usb.c
  36. +36 −5 Externals/libusb/libusb/os/poll_posix.c
  37. +3 −0 Externals/libusb/libusb/os/poll_posix.h
  38. +241 −562 Externals/libusb/libusb/os/poll_windows.c
  39. +11 −42 Externals/libusb/libusb/os/poll_windows.h
  40. +518 −115 Externals/libusb/libusb/os/sunos_usb.c
  41. +6 −0 Externals/libusb/libusb/os/sunos_usb.h
  42. +6 −5 Externals/libusb/libusb/os/threads_posix.c
  43. +70 −26 Externals/libusb/libusb/os/threads_posix.h
  44. +39 −172 Externals/libusb/libusb/os/threads_windows.c
  45. +64 −29 Externals/libusb/libusb/os/threads_windows.h
  46. +51 −62 Externals/libusb/libusb/os/wince_usb.c
  47. +24 −35 Externals/libusb/libusb/os/windows_common.h
  48. +571 −179 Externals/libusb/libusb/os/windows_nt_common.c
  49. +71 −34 Externals/libusb/libusb/os/windows_nt_common.h
  50. +147 −0 Externals/libusb/libusb/os/windows_nt_shared_types.h
  51. +171 −257 Externals/libusb/libusb/os/windows_usbdk.c
  52. +3 −46 Externals/libusb/libusb/os/windows_usbdk.h
  53. +1,368 −1,286 Externals/libusb/libusb/os/windows_winusb.c
  54. +244 −411 Externals/libusb/libusb/os/windows_winusb.h
  55. +33 −2 Externals/libusb/libusb/strerror.c
  56. +2 −2 Externals/libusb/libusb/version.h
  57. +1 −1 Externals/libusb/libusb/version_nano.h
  58. +2 −1 Externals/libusb/libusb_static_2013.vcxproj
  59. +0 −28 Externals/libusb/msvc/appveyor.bat
  60. +5 −4 Externals/libusb/msvc/config.h
  61. +0 −184 Externals/libusb/msvc/ddk_build.cmd
  62. +0 −102 Externals/libusb/msvc/errno.h
  63. +0 −170 Externals/libusb/msvc/fxload_2010.vcxproj
  64. +0 −25 Externals/libusb/msvc/fxload_2010.vcxproj.filters
  65. +0 −174 Externals/libusb/msvc/fxload_2012.vcxproj
  66. +0 −25 Externals/libusb/msvc/fxload_2012.vcxproj.filters
  67. +0 −174 Externals/libusb/msvc/fxload_2013.vcxproj
  68. +0 −174 Externals/libusb/msvc/fxload_2015.vcxproj
  69. +0 −23 Externals/libusb/msvc/fxload_sources
  70. +0 −288 Externals/libusb/msvc/getopt_2005.vcproj
  71. +0 −131 Externals/libusb/msvc/getopt_2010.vcxproj
  72. +0 −26 Externals/libusb/msvc/getopt_2010.vcxproj.filters
  73. +0 −136 Externals/libusb/msvc/getopt_2012.vcxproj
  74. +0 −26 Externals/libusb/msvc/getopt_2012.vcxproj.filters
  75. +0 −136 Externals/libusb/msvc/getopt_2013.vcxproj
  76. +0 −136 Externals/libusb/msvc/getopt_2015.vcxproj
  77. +0 −20 Externals/libusb/msvc/getopt_sources
  78. +0 −163 Externals/libusb/msvc/hotplugtest_2010.vcxproj
  79. +0 −14 Externals/libusb/msvc/hotplugtest_2010.vcxproj.filters
  80. +0 −167 Externals/libusb/msvc/hotplugtest_2012.vcxproj
  81. +0 −14 Externals/libusb/msvc/hotplugtest_2012.vcxproj.filters
  82. +0 −167 Externals/libusb/msvc/hotplugtest_2013.vcxproj
  83. +0 −167 Externals/libusb/msvc/hotplugtest_2015.vcxproj
  84. +0 −20 Externals/libusb/msvc/hotplugtest_sources
  85. +0 −295 Externals/libusb/msvc/inttypes.h
  86. +0 −71 Externals/libusb/msvc/libusb.dsw
  87. +0 −194 Externals/libusb/msvc/libusb_dll.dsp
  88. +0 −436 Externals/libusb/msvc/libusb_dll_2005.vcproj
  89. +0 −174 Externals/libusb/msvc/libusb_dll_2010.vcxproj
  90. +0 −81 Externals/libusb/msvc/libusb_dll_2010.vcxproj.filters
  91. +0 −178 Externals/libusb/msvc/libusb_dll_2012.vcxproj
  92. +0 −84 Externals/libusb/msvc/libusb_dll_2012.vcxproj.filters
  93. +0 −178 Externals/libusb/msvc/libusb_dll_2013.vcxproj
  94. +0 −178 Externals/libusb/msvc/libusb_dll_2015.vcxproj
  95. +0 −1,243 Externals/libusb/msvc/libusb_dll_wince.vcproj
  96. +0 −45 Externals/libusb/msvc/libusb_sources
  97. +0 −174 Externals/libusb/msvc/libusb_static.dsp
  98. +0 −362 Externals/libusb/msvc/libusb_static_2005.vcproj
  99. +0 −158 Externals/libusb/msvc/libusb_static_2010.vcxproj
  100. +0 −74 Externals/libusb/msvc/libusb_static_2010.vcxproj.filters
  101. +0 −162 Externals/libusb/msvc/libusb_static_2012.vcxproj
  102. +0 −74 Externals/libusb/msvc/libusb_static_2012.vcxproj.filters
  103. +0 −162 Externals/libusb/msvc/libusb_static_2013.vcxproj
  104. +0 −162 Externals/libusb/msvc/libusb_static_2015.vcxproj
  105. +0 −1,185 Externals/libusb/msvc/libusb_static_wince.vcproj
  106. +0 −178 Externals/libusb/msvc/libusb_usbdk_dll_2013.vcxproj
  107. +0 −178 Externals/libusb/msvc/libusb_usbdk_dll_2015.vcxproj
  108. +0 −162 Externals/libusb/msvc/libusb_usbdk_static_2013.vcxproj
  109. +0 −162 Externals/libusb/msvc/libusb_usbdk_static_2015.vcxproj
  110. +0 −103 Externals/libusb/msvc/listdevs.dsp
  111. +0 −360 Externals/libusb/msvc/listdevs_2005.vcproj
  112. +0 −165 Externals/libusb/msvc/listdevs_2010.vcxproj
  113. +0 −14 Externals/libusb/msvc/listdevs_2010.vcxproj.filters
  114. +0 −169 Externals/libusb/msvc/listdevs_2012.vcxproj
  115. +0 −14 Externals/libusb/msvc/listdevs_2012.vcxproj.filters
  116. +0 −169 Externals/libusb/msvc/listdevs_2013.vcxproj
  117. +0 −169 Externals/libusb/msvc/listdevs_2015.vcxproj
  118. +0 −19 Externals/libusb/msvc/listdevs_sources
  119. +0 −1,120 Externals/libusb/msvc/listdevs_wince.vcproj
  120. +0 −80 Externals/libusb/msvc/missing.c
  121. +0 −32 Externals/libusb/msvc/missing.h
  122. +0 −256 Externals/libusb/msvc/stdint.h
  123. +0 −390 Externals/libusb/msvc/stress_2005.vcproj
  124. +0 −167 Externals/libusb/msvc/stress_2010.vcxproj
  125. +0 −25 Externals/libusb/msvc/stress_2010.vcxproj.filters
  126. +0 −171 Externals/libusb/msvc/stress_2012.vcxproj
  127. +0 −25 Externals/libusb/msvc/stress_2012.vcxproj.filters
  128. +0 −171 Externals/libusb/msvc/stress_2013.vcxproj
  129. +0 −171 Externals/libusb/msvc/stress_2015.vcxproj
  130. +0 −1,128 Externals/libusb/msvc/stress_wince.vcproj
  131. +0 −102 Externals/libusb/msvc/xusb.dsp
  132. +0 −344 Externals/libusb/msvc/xusb_2005.vcproj
  133. +0 −163 Externals/libusb/msvc/xusb_2010.vcxproj
  134. +0 −14 Externals/libusb/msvc/xusb_2010.vcxproj.filters
  135. +0 −167 Externals/libusb/msvc/xusb_2012.vcxproj
  136. +0 −14 Externals/libusb/msvc/xusb_2012.vcxproj.filters
  137. +0 −167 Externals/libusb/msvc/xusb_2013.vcxproj
  138. +0 −167 Externals/libusb/msvc/xusb_2015.vcxproj
  139. +0 −20 Externals/libusb/msvc/xusb_sources
  140. +0 −1,120 Externals/libusb/msvc/xusb_wince.vcproj
  141. +39 −0 Externals/libusb/travis-autogen.sh
  142. +1 −0 Source/Core/Core/CMakeLists.txt
  143. +4 −0 Source/Core/Core/Core.vcxproj
  144. +2 −0 Source/Core/Core/Core.vcxproj.filters
  145. +14 −64 Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp
  146. +0 −9 Source/Core/Core/IOS/USB/Bluetooth/BTReal.h
  147. +12 −63 Source/Core/Core/IOS/USB/Host.cpp
  148. +0 −8 Source/Core/Core/IOS/USB/Host.h
  149. +12 −24 Source/Core/Core/IOS/USB/LibusbDevice.cpp
  150. +2 −15 Source/Core/Core/IOS/USB/LibusbDevice.h
  151. +127 −0 Source/Core/Core/LibusbUtils.cpp
  152. +48 −0 Source/Core/Core/LibusbUtils.h
  153. +19 −39 Source/Core/InputCommon/GCAdapter.cpp
  154. +7 −10 Source/Core/UICommon/USBUtils.cpp
@@ -0,0 +1,8 @@
libusb/android
libusb/appveyor*
libusb/doc
libusb/examples
libusb/msvc/*
!libusb/msvc/config.h
libusb/tests
libusb/Xcode
@@ -0,0 +1,49 @@
language: c

matrix:
include:
- os: linux
dist: trusty
sudo: required
compiler: gcc
- os: linux
dist: trusty
sudo: required
compiler: clang
- os: osx
osx_image: xcode8
compiler: gcc
- os: osx
osx_image: xcode8
compiler: clang
- os: osx
osx_image: xcode7.1
compiler: gcc
- os: osx
osx_image: xcode7.1
compiler: clang
- os: osx
osx_image: beta-xcode6.2
compiler: gcc
- os: osx
osx_image: beta-xcode6.2
compiler: clang

addons:
homebrew:
update: true
brewfile: true
apt:
packages:
- autoconf
- automake
- libtool
- m4
- libudev-dev
sources:
- ubuntu-toolchain-r-test

script:
- ./autogen.sh && make clean && make
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./travis-autogen.sh --disable-udev && make clean && make ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cd Xcode && xcodebuild -project libusb.xcodeproj ; fi
@@ -8,27 +8,37 @@ Copyright © 2010-2012 Michael Plante <michael.plante@gmail.com>
Copyright © 2011-2013 Hans de Goede <hdegoede@redhat.com>
Copyright © 2012-2013 Martin Pieuchot <mpi@openbsd.org>
Copyright © 2012-2013 Toby Gray <toby.gray@realvnc.com>
Copyright © 2013-2015 Chris Dickens <christopher.a.dickens@gmail.com>
Copyright © 2013-2018 Chris Dickens <christopher.a.dickens@gmail.com>

Other contributors:
Adrian Bunk
Akshay Jaggi
Alan Ott
Alan Stern
Alex Vatchenko
Andrew Fernandes
Andy Chunyu
Andy McFadden
Angus Gratton
Anil Nair
Anthony Clay
Antonio Ospite
Artem Egorkine
Aurelien Jarno
Bastien Nocera
Bei Zhang
Benjamin Dobell
Brent Rector
Carl Karsten
Christophe Zeitouny
Colin Walters
Dave Camarillo
David Engraf
David Moore
Davidlohr Bueso
Dmitry Fleytman
Doug Johnston
Evan Hunter
Federico Manzan
Felipe Balbi
Florian Albrechtskirchinger
@@ -41,23 +51,34 @@ Hans Ulrich Niedermann
Hector Martin
Hoi-Ho Chan
Ilya Konstantinov
Jakub Klama
James Hanko
Jeffrey Nichols
Johann Richard
John Sheu
Jonathon Jongsma
Joost Muller
Josh Gao
Joshua Blake
Justin Bischoff
KIMURA Masaru
Karsten Koenig
Konrad Rzepecki
Kuangye Guo
Lars Kanis
Lars Wirzenius
Lei Chen
Luca Longinotti
Marcus Meissner
Markus Heidelberg
Martin Ettl
Martin Koegler
Matthew Stapleton
Matthias Bolte
Michel Zou
Mike Frysinger
Mikhail Gusarov
Morgan Leborgne
Moritz Fischer
Ларионов Даниил
Nicholas Corgan
@@ -66,10 +87,17 @@ Orin Eman
Paul Fertser
Pekka Nikander
Rob Walker
Romain Vimont
Roman Kalashnikov
Sameeh Jubran
Sean McBride
Sebastian Pipping
Sergey Serb
Simon Haggett
Simon Newton
Stefan Agner
Stefan Tauner
Steinar H. Gunderson
Thomas Röfer
Tim Hutt
Tim Roberts
@@ -81,9 +109,11 @@ Uri Lublin
Vasily Khoruzhick
Vegard Storheil Eriksen
Venkatesh Shukla
Vianney le Clément de Saint-Marcq
Victor Toso
Vitali Lovich
William Skellenger
Xiaofan Chen
Zoltán Kovács
Роман Донченко
parafin
xantares
@@ -0,0 +1,4 @@
brew 'automake'
brew 'libtool'
brew 'autoconf'
brew 'm4'
@@ -1,6 +1,41 @@
For detailed information about the changes below, please see the git log or
visit: http://log.libusb.info

2019-04-05: v1.0.23 (in progress)
* Add German translation (#446)
* Add Hungarian translation (#493)
* Android: Improved support for Android
* configure.ac: Fix detection of clock_gettime library (#439)
* Darwin(macOS): Switch from using ResetDevice to USBDeviceReEnumerate (#455)
* Darwin(macOS): Remove code that changed the device class used (#428)
* Darwin(macOS): Reduce hotplug timeout to 1ms (from 5s)
* New API libusb_set_log_cb() to redirect global and per context log
messages to the provided log handling function
* New API libusb_wrap_sys_device to allow the user to specify the
usb device to use.
* Solaris: Break infinite recursion in backend clock_gettime
* Solaris: Enable timerfd on sunos when available
* Windows: Add support for isochronous transfers with WinUSB
* Various other bug fixes and improvements

2018-03-24: v1.0.22:
* New libusb_set_option() API
* Fix transfer timeout not being cleared upon resubmission
* Report super speed plus devices on modern Linux and macOS
* Darwin: Improve support for macOS Sierra and High Sierra
* Darwin: SDK fixes and improvements
* Linux: Let initialization succeed when no devices are present
* Linux: Mark internal file descriptors with CLOEXEC flag
* Solaris: Add support for attach/detach kernel driver
* Windows: Add dynamic UsbDk backend selection
* Windows: Add isochronous transfer support via libusbK
* Windows: Add Visual Studio 2017 support
* Windows: Fix enumeration problems on Windows 8 and later
* Windows: Major rework of poll() emulation
* Windows: Numerous HID API fixes
* Windows: Support cancelation of individual transfers (Vista and later)
* Various other bug fixes and improvements

2016-10-01: v1.0.21:
* Core: Refactor code related to transfer flags and timeout handling
* Darwin: Ignore root hub simulation devices

This file was deleted.

@@ -0,0 +1,73 @@
Installation Instructions for Windows
*************************************

If you are compiling for MinGW or cygwin, please refer to the INSTALL file.

If you are using Microsoft Visual Studio:
- Open the relevant solution file in /msvc:
libusb.dsw for MSVC6, libusb_2005.sln for Visual Studio 2005 or 2008,
libusb_2010.sln for Visual Studio 2010,
libusb_2012.sln for Visual Studio 2012 or later,
libusb_wince.sln for Windows CE support in Visual Studio 2005.
- If you want to debug the library, uncomment the ENABLE_DEBUG_LOGGING define
in msvc\config.h
- Select your configuration and compile the project

Note that if you are using Visual Studio Express, you may have to install the
Windows SDK to be able to compile the 64 bit version of the library.

If you are using the freely available Windows DDK/WDK (Driver Development Kit)
- If you want to debug the library, uncomment the ENABLE_DEBUG_LOGGING define
in msvc\config.h
- Open one of the relevant Free Build or Checked Build prompt for your target
platform
- Navigate to the msvc\ directory where the ddk_build.cmd file is located, and
run 'ddk_build'
- To produce a DLL rather than a static library, use: 'ddk_build DLL'
- To produce a static library that uses LIBCMT[d] instead of MSVCRT[d] (/MT[d]
vs /MD[d] in Visual Studio) use: 'ddk_build /MT'

Note that using the Windows DDK, it is possible to compile both the 32 and 64
bit versions of the library.

If you are building for Windows CE then you will need the Windows CE Standard 5.00 SDK.

Destination directories
***********************

The 32 bit binaries compiled either from Visual Studio or the DDK are placed in
a Win32\ directory at the root of the library
The 64 bit binaries are placed in an x64\ directory
Windows CE binaries are placed in one of the following directories, depending
on the target processor: ARMV4I, MIPSII, MIPSII_FP, MIPSIV, MIPSIV_FP, SH4 or x86.


Troubleshooting
***************

If the compilation process complains about missing libraries, ensure that the
default library paths for your project points to the relevant directories.
If needed, these libraries can be obtained by installing either the latest
Windows SDK or the DDK (Links provided at the end of this file).

For Windows CE it is necessary to install the CE USB Kernel Wrapper driver for
libusb to function on a device.

Links
*****

Additional information related to the Windows backend:
http://windows.libusb.info

Latest Windows Driver (Development) Kit (WDK):
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff

Latest Microsoft Windows SDK:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505

Windows CE Standard 5.00 SDK:
http://www.microsoft.com/en-gb/download/details.aspx?id=17310

Windows CE USB Kernel Wrapper Driver:
https://github.com/RealVNC/CEUSBKWrapper

@@ -0,0 +1,28 @@
AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip
ACLOCAL_AMFLAGS = -I m4
DISTCLEANFILES = libusb-1.0.pc
EXTRA_DIST = TODO PORTING msvc libusb/libusb-1.0.def libusb/version_nano.h \
examples/getopt/getopt.c examples/getopt/getopt1.c examples/getopt/getopt.h \
android Xcode
SUBDIRS = libusb doc

if BUILD_EXAMPLES
SUBDIRS += examples
endif

if BUILD_TESTS
SUBDIRS += tests
endif

pkgconfigdir=$(libdir)/pkgconfig
pkgconfig_DATA=libusb-1.0.pc

.PHONY: dist-up

reldir = .release/$(distdir)
dist-up: dist
rm -rf $(reldir)
mkdir -p $(reldir)
cp $(distdir).tar.bz2 $(reldir)
rsync -rv $(reldir) frs.sourceforge.net:/home/frs/project/l/li/libusb/libusb-1.0/
rm -rf $(reldir)

This file was deleted.

0 comments on commit aca46b1

Please sign in to comment.
You can’t perform that action at this time.