usb 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +4 -0
  3. package/dist/index.d.ts +2 -1
  4. package/dist/index.js +3 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/usb/bindings.d.ts +4 -0
  7. package/dist/usb/device.js +5 -0
  8. package/dist/usb/device.js.map +1 -1
  9. package/dist/usb/interface.d.ts +1 -1
  10. package/dist/usb/interface.js +1 -5
  11. package/dist/usb/interface.js.map +1 -1
  12. package/dist/webusb/webusb-device.d.ts +2 -1
  13. package/dist/webusb/webusb-device.js +21 -14
  14. package/dist/webusb/webusb-device.js.map +1 -1
  15. package/libusb/.gitattributes +2 -6
  16. package/libusb/.private/appveyor_build.sh +22 -0
  17. package/libusb/.private/bm.sh +1 -1
  18. package/libusb/.private/ci-build.sh +67 -0
  19. package/libusb/.private/post-rewrite.sh +5 -1
  20. package/libusb/.private/pre-commit.sh +5 -1
  21. package/libusb/.private/wbs.txt +4 -19
  22. package/libusb/.travis.yml +32 -23
  23. package/libusb/AUTHORS +76 -3
  24. package/libusb/ChangeLog +41 -3
  25. package/libusb/INSTALL_WIN.txt +22 -44
  26. package/libusb/Makefile.am +32 -10
  27. package/libusb/{README.md → README} +2 -2
  28. package/libusb/README.git +3 -3
  29. package/libusb/Xcode/common.xcconfig +23 -19
  30. package/libusb/Xcode/config.h +25 -13
  31. package/libusb/Xcode/libusb.xcodeproj/project.pbxproj +511 -109
  32. package/libusb/android/README +90 -54
  33. package/libusb/android/config.h +23 -43
  34. package/libusb/android/examples/unrooted_android.c +301 -0
  35. package/libusb/android/examples/unrooted_android.h +36 -0
  36. package/libusb/android/jni/Android.mk +1 -1
  37. package/libusb/android/jni/Application.mk +16 -0
  38. package/libusb/android/jni/examples.mk +63 -29
  39. package/libusb/android/jni/libusb.mk +14 -8
  40. package/libusb/android/jni/tests.mk +13 -24
  41. package/libusb/appveyor.yml +69 -30
  42. package/libusb/autogen.sh +5 -3
  43. package/libusb/bootstrap.sh +6 -2
  44. package/libusb/configure.ac +302 -228
  45. package/libusb/doc/Makefile.in +22 -0
  46. package/libusb/doc/doxygen.cfg.in +460 -223
  47. package/libusb/examples/Makefile.am +6 -13
  48. package/libusb/examples/dpfp.c +276 -73
  49. package/libusb/examples/ezusb.c +18 -8
  50. package/libusb/examples/ezusb.h +6 -17
  51. package/libusb/examples/fxload.c +4 -5
  52. package/libusb/examples/hotplugtest.c +1 -1
  53. package/libusb/examples/sam3u_benchmark.c +59 -24
  54. package/libusb/examples/testlibusb.c +138 -104
  55. package/libusb/examples/xusb.c +26 -22
  56. package/libusb/libusb/Makefile.am +57 -70
  57. package/libusb/libusb/Makefile.am.extra +26 -0
  58. package/libusb/libusb/core.c +420 -423
  59. package/libusb/libusb/descriptor.c +365 -419
  60. package/libusb/libusb/hotplug.c +197 -104
  61. package/libusb/libusb/io.c +491 -528
  62. package/libusb/libusb/libusb-1.0.def +7 -3
  63. package/libusb/libusb/libusb-1.0.rc +1 -9
  64. package/libusb/libusb/libusb.h +295 -226
  65. package/libusb/libusb/libusbi.h +587 -314
  66. package/libusb/libusb/os/darwin_usb.c +634 -317
  67. package/libusb/libusb/os/darwin_usb.h +39 -15
  68. package/libusb/libusb/os/events_posix.c +300 -0
  69. package/libusb/libusb/os/events_posix.h +59 -0
  70. package/libusb/libusb/os/events_windows.c +214 -0
  71. package/libusb/{msvc/missing.h → libusb/os/events_windows.h} +25 -11
  72. package/libusb/libusb/os/haiku_pollfs.cpp +14 -9
  73. package/libusb/libusb/os/haiku_usb.h +12 -12
  74. package/libusb/libusb/os/haiku_usb_backend.cpp +36 -37
  75. package/libusb/libusb/os/haiku_usb_raw.cpp +80 -116
  76. package/libusb/libusb/os/linux_netlink.c +55 -63
  77. package/libusb/libusb/os/linux_udev.c +61 -69
  78. package/libusb/libusb/os/linux_usbfs.c +926 -1015
  79. package/libusb/libusb/os/linux_usbfs.h +74 -57
  80. package/libusb/libusb/os/netbsd_usb.c +103 -168
  81. package/libusb/libusb/os/null_usb.c +111 -0
  82. package/libusb/libusb/os/openbsd_usb.c +71 -120
  83. package/libusb/libusb/os/sunos_usb.c +289 -375
  84. package/libusb/libusb/os/sunos_usb.h +0 -1
  85. package/libusb/libusb/os/threads_posix.c +81 -32
  86. package/libusb/libusb/os/threads_posix.h +19 -23
  87. package/libusb/libusb/os/threads_windows.c +9 -95
  88. package/libusb/libusb/os/threads_windows.h +33 -31
  89. package/libusb/libusb/os/windows_common.c +904 -0
  90. package/libusb/libusb/os/windows_common.h +329 -42
  91. package/libusb/libusb/os/windows_usbdk.c +161 -267
  92. package/libusb/libusb/os/windows_usbdk.h +5 -2
  93. package/libusb/libusb/os/windows_winusb.c +1326 -1190
  94. package/libusb/libusb/os/windows_winusb.h +167 -167
  95. package/libusb/libusb/strerror.c +20 -30
  96. package/libusb/libusb/sync.c +20 -21
  97. package/libusb/libusb/version.h +1 -1
  98. package/libusb/libusb/version_nano.h +1 -1
  99. package/libusb/msvc/.gitattributes +3 -0
  100. package/libusb/msvc/config.h +27 -20
  101. package/libusb/msvc/{hotplugtest_2012.vcxproj → dpfp_2013.vcxproj} +14 -10
  102. package/libusb/msvc/dpfp_2013.vcxproj.filters +26 -0
  103. package/libusb/msvc/{listdevs_2010.vcxproj → dpfp_2015.vcxproj} +14 -9
  104. package/libusb/msvc/dpfp_2015.vcxproj.filters +26 -0
  105. package/libusb/msvc/dpfp_2017.vcxproj +106 -0
  106. package/libusb/msvc/dpfp_2017.vcxproj.filters +26 -0
  107. package/libusb/msvc/dpfp_2019.vcxproj +106 -0
  108. package/libusb/msvc/dpfp_2019.vcxproj.filters +26 -0
  109. package/libusb/msvc/dpfp_threaded_2013.vcxproj +87 -0
  110. package/libusb/msvc/dpfp_threaded_2013.vcxproj.filters +26 -0
  111. package/libusb/msvc/dpfp_threaded_2015.vcxproj +87 -0
  112. package/libusb/msvc/dpfp_threaded_2015.vcxproj.filters +26 -0
  113. package/libusb/msvc/dpfp_threaded_2017.vcxproj +106 -0
  114. package/libusb/msvc/dpfp_threaded_2017.vcxproj.filters +26 -0
  115. package/libusb/msvc/{fxload_2012.vcxproj → dpfp_threaded_2019.vcxproj} +32 -17
  116. package/libusb/msvc/dpfp_threaded_2019.vcxproj.filters +26 -0
  117. package/libusb/msvc/fxload_2013.vcxproj +6 -3
  118. package/libusb/msvc/fxload_2013.vcxproj.filters +35 -0
  119. package/libusb/msvc/fxload_2015.vcxproj +6 -3
  120. package/libusb/msvc/fxload_2015.vcxproj.filters +35 -0
  121. package/libusb/msvc/fxload_2017.vcxproj +6 -7
  122. package/libusb/msvc/fxload_2017.vcxproj.filters +35 -0
  123. package/libusb/msvc/{fxload_2010.vcxproj → fxload_2019.vcxproj} +29 -6
  124. package/libusb/msvc/fxload_2019.vcxproj.filters +35 -0
  125. package/libusb/{examples → msvc}/getopt/getopt.c +0 -0
  126. package/libusb/{examples → msvc}/getopt/getopt.h +0 -0
  127. package/libusb/{examples → msvc}/getopt/getopt1.c +0 -0
  128. package/libusb/msvc/getopt_2013.vcxproj +4 -5
  129. package/libusb/msvc/getopt_2013.vcxproj.filters +26 -0
  130. package/libusb/msvc/getopt_2015.vcxproj +4 -4
  131. package/libusb/msvc/getopt_2015.vcxproj.filters +26 -0
  132. package/libusb/msvc/getopt_2017.vcxproj +4 -10
  133. package/libusb/msvc/getopt_2017.vcxproj.filters +26 -0
  134. package/libusb/msvc/{getopt_2012.vcxproj → getopt_2019.vcxproj} +25 -6
  135. package/libusb/msvc/getopt_2019.vcxproj.filters +26 -0
  136. package/libusb/msvc/hotplugtest_2013.vcxproj +6 -3
  137. package/libusb/msvc/hotplugtest_2013.vcxproj.filters +23 -0
  138. package/libusb/msvc/hotplugtest_2015.vcxproj +6 -3
  139. package/libusb/msvc/hotplugtest_2015.vcxproj.filters +23 -0
  140. package/libusb/msvc/hotplugtest_2017.vcxproj +6 -7
  141. package/libusb/msvc/hotplugtest_2017.vcxproj.filters +23 -0
  142. package/libusb/msvc/hotplugtest_2019.vcxproj +105 -0
  143. package/libusb/msvc/hotplugtest_2019.vcxproj.filters +23 -0
  144. package/libusb/msvc/libusb_2013.sln +50 -20
  145. package/libusb/msvc/libusb_2015.sln +51 -21
  146. package/libusb/msvc/libusb_2017.sln +90 -36
  147. package/libusb/msvc/libusb_2019.sln +240 -0
  148. package/libusb/msvc/libusb_dll_2013.vcxproj +6 -9
  149. package/libusb/msvc/libusb_dll_2013.vcxproj.filters +94 -0
  150. package/libusb/msvc/libusb_dll_2015.vcxproj +6 -8
  151. package/libusb/msvc/libusb_dll_2015.vcxproj.filters +94 -0
  152. package/libusb/msvc/libusb_dll_2017.vcxproj +6 -16
  153. package/libusb/msvc/libusb_dll_2017.vcxproj.filters +94 -0
  154. package/libusb/msvc/{libusb_dll_2010.vcxproj → libusb_dll_2019.vcxproj} +27 -9
  155. package/libusb/msvc/libusb_dll_2019.vcxproj.filters +94 -0
  156. package/libusb/msvc/libusb_static_2013.vcxproj +5 -9
  157. package/libusb/msvc/libusb_static_2013.vcxproj.filters +80 -0
  158. package/libusb/msvc/libusb_static_2015.vcxproj +5 -8
  159. package/libusb/msvc/libusb_static_2015.vcxproj.filters +80 -0
  160. package/libusb/msvc/libusb_static_2017.vcxproj +5 -8
  161. package/libusb/msvc/libusb_static_2017.vcxproj.filters +80 -0
  162. package/libusb/msvc/{libusb_static_2010.vcxproj → libusb_static_2019.vcxproj} +26 -9
  163. package/libusb/msvc/libusb_static_2019.vcxproj.filters +80 -0
  164. package/libusb/msvc/listdevs_2013.vcxproj +6 -3
  165. package/libusb/msvc/listdevs_2013.vcxproj.filters +23 -0
  166. package/libusb/msvc/listdevs_2015.vcxproj +6 -3
  167. package/libusb/msvc/listdevs_2015.vcxproj.filters +23 -0
  168. package/libusb/msvc/listdevs_2017.vcxproj +6 -7
  169. package/libusb/msvc/listdevs_2017.vcxproj.filters +23 -0
  170. package/libusb/msvc/listdevs_2019.vcxproj +105 -0
  171. package/libusb/msvc/listdevs_2019.vcxproj.filters +23 -0
  172. package/libusb/msvc/{listdevs_2012.vcxproj → sam3u_benchmark_2013.vcxproj} +13 -9
  173. package/libusb/msvc/sam3u_benchmark_2013.vcxproj.filters +26 -0
  174. package/libusb/msvc/{hotplugtest_2010.vcxproj → sam3u_benchmark_2015.vcxproj} +13 -8
  175. package/libusb/msvc/sam3u_benchmark_2015.vcxproj.filters +26 -0
  176. package/libusb/msvc/sam3u_benchmark_2017.vcxproj +106 -0
  177. package/libusb/msvc/sam3u_benchmark_2017.vcxproj.filters +26 -0
  178. package/libusb/msvc/sam3u_benchmark_2019.vcxproj +106 -0
  179. package/libusb/msvc/sam3u_benchmark_2019.vcxproj.filters +26 -0
  180. package/libusb/msvc/stress_2013.vcxproj +4 -2
  181. package/libusb/msvc/stress_2013.vcxproj.filters +32 -0
  182. package/libusb/msvc/stress_2015.vcxproj +4 -2
  183. package/libusb/msvc/stress_2015.vcxproj.filters +32 -0
  184. package/libusb/msvc/stress_2017.vcxproj +4 -6
  185. package/libusb/msvc/stress_2017.vcxproj.filters +32 -0
  186. package/libusb/msvc/{stress_2010.vcxproj → stress_2019.vcxproj} +26 -4
  187. package/libusb/msvc/stress_2019.vcxproj.filters +32 -0
  188. package/libusb/msvc/testlibusb_2013.vcxproj +6 -3
  189. package/libusb/msvc/testlibusb_2013.vcxproj.filters +23 -0
  190. package/libusb/msvc/testlibusb_2015.vcxproj +6 -3
  191. package/libusb/msvc/testlibusb_2015.vcxproj.filters +23 -0
  192. package/libusb/msvc/testlibusb_2017.vcxproj +6 -7
  193. package/libusb/msvc/testlibusb_2017.vcxproj.filters +23 -0
  194. package/libusb/msvc/{testlibusb_2010.vcxproj → testlibusb_2019.vcxproj} +28 -5
  195. package/libusb/msvc/testlibusb_2019.vcxproj.filters +23 -0
  196. package/libusb/msvc/xusb_2013.vcxproj +6 -3
  197. package/libusb/msvc/xusb_2013.vcxproj.filters +23 -0
  198. package/libusb/msvc/xusb_2015.vcxproj +6 -3
  199. package/libusb/msvc/xusb_2015.vcxproj.filters +23 -0
  200. package/libusb/msvc/xusb_2017.vcxproj +6 -7
  201. package/libusb/msvc/xusb_2017.vcxproj.filters +23 -0
  202. package/libusb/msvc/{xusb_2010.vcxproj → xusb_2019.vcxproj} +28 -5
  203. package/libusb/msvc/xusb_2019.vcxproj.filters +23 -0
  204. package/libusb/tests/Makefile.am +1 -0
  205. package/libusb/tests/libusb_testlib.h +12 -43
  206. package/libusb/tests/stress.c +59 -50
  207. package/libusb/tests/testlib.c +78 -171
  208. package/libusb.gypi +10 -11
  209. package/package.json +2 -2
  210. package/prebuilds/android-arm/node.napi.armv7.node +0 -0
  211. package/prebuilds/android-arm64/node.napi.armv8.node +0 -0
  212. package/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
  213. package/prebuilds/linux-arm/node.napi.armv6.node +0 -0
  214. package/prebuilds/linux-arm/node.napi.armv7.node +0 -0
  215. package/prebuilds/linux-arm64/node.napi.armv8.node +0 -0
  216. package/prebuilds/linux-ia32/node.napi.node +0 -0
  217. package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
  218. package/prebuilds/linux-x64/node.napi.musl.node +0 -0
  219. package/prebuilds/win32-ia32/node.napi.node +0 -0
  220. package/prebuilds/win32-x64/node.napi.node +0 -0
  221. package/src/device.cc +12 -7
  222. package/src/node_usb.cc +10 -0
  223. package/test/usb.coffee +6 -0
  224. package/tsc/index.ts +2 -0
  225. package/tsc/usb/bindings.ts +5 -0
  226. package/tsc/usb/device.ts +6 -0
  227. package/tsc/usb/interface.ts +2 -7
  228. package/tsc/webusb/webusb-device.ts +12 -8
  229. package/libusb/.private/bd.cmd +0 -89
  230. package/libusb/.private/bwince.cmd +0 -57
  231. package/libusb/.private/wbs_wince.txt +0 -42
  232. package/libusb/Brewfile +0 -4
  233. package/libusb/appveyor_cygwin.bat +0 -11
  234. package/libusb/appveyor_minGW.bat +0 -19
  235. package/libusb/doc/Makefile.am +0 -9
  236. package/libusb/examples/dpfp_threaded.c +0 -557
  237. package/libusb/libusb/hotplug.h +0 -99
  238. package/libusb/libusb/os/poll_posix.c +0 -84
  239. package/libusb/libusb/os/poll_posix.h +0 -14
  240. package/libusb/libusb/os/poll_windows.c +0 -447
  241. package/libusb/libusb/os/poll_windows.h +0 -98
  242. package/libusb/libusb/os/wince_usb.c +0 -888
  243. package/libusb/libusb/os/wince_usb.h +0 -126
  244. package/libusb/libusb/os/windows_nt_common.c +0 -1010
  245. package/libusb/libusb/os/windows_nt_common.h +0 -110
  246. package/libusb/libusb/os/windows_nt_shared_types.h +0 -147
  247. package/libusb/msvc/appveyor.bat +0 -27
  248. package/libusb/msvc/ddk_build.cmd +0 -219
  249. package/libusb/msvc/errno.h +0 -102
  250. package/libusb/msvc/fxload_sources +0 -23
  251. package/libusb/msvc/getopt_2005.vcproj +0 -288
  252. package/libusb/msvc/getopt_2010.vcxproj +0 -72
  253. package/libusb/msvc/getopt_sources +0 -24
  254. package/libusb/msvc/hotplugtest_sources +0 -20
  255. package/libusb/msvc/inttypes.h +0 -295
  256. package/libusb/msvc/libusb.dsw +0 -71
  257. package/libusb/msvc/libusb_2005.sln +0 -95
  258. package/libusb/msvc/libusb_2010.sln +0 -105
  259. package/libusb/msvc/libusb_2012.sln +0 -105
  260. package/libusb/msvc/libusb_dll.dsp +0 -194
  261. package/libusb/msvc/libusb_dll_2005.vcproj +0 -464
  262. package/libusb/msvc/libusb_dll_2012.vcxproj +0 -107
  263. package/libusb/msvc/libusb_dll_wince.vcproj +0 -1251
  264. package/libusb/msvc/libusb_sources +0 -43
  265. package/libusb/msvc/libusb_static.dsp +0 -174
  266. package/libusb/msvc/libusb_static_2005.vcproj +0 -390
  267. package/libusb/msvc/libusb_static_2012.vcxproj +0 -98
  268. package/libusb/msvc/libusb_static_wince.vcproj +0 -1179
  269. package/libusb/msvc/libusb_wince.sln +0 -246
  270. package/libusb/msvc/listdevs.dsp +0 -103
  271. package/libusb/msvc/listdevs_2005.vcproj +0 -360
  272. package/libusb/msvc/listdevs_sources +0 -20
  273. package/libusb/msvc/listdevs_wince.vcproj +0 -1120
  274. package/libusb/msvc/missing.c +0 -80
  275. package/libusb/msvc/stdint.h +0 -256
  276. package/libusb/msvc/stress_2005.vcproj +0 -390
  277. package/libusb/msvc/stress_2012.vcxproj +0 -87
  278. package/libusb/msvc/stress_sources +0 -21
  279. package/libusb/msvc/stress_wince.vcproj +0 -1128
  280. package/libusb/msvc/testlibusb_2012.vcxproj +0 -83
  281. package/libusb/msvc/testlibusb_sources +0 -20
  282. package/libusb/msvc/xusb.dsp +0 -102
  283. package/libusb/msvc/xusb_2005.vcproj +0 -344
  284. package/libusb/msvc/xusb_2012.vcxproj +0 -83
  285. package/libusb/msvc/xusb_sources +0 -20
  286. package/libusb/msvc/xusb_wince.vcproj +0 -1120
  287. package/libusb/travis-autogen.sh +0 -39
@@ -21,29 +21,20 @@
21
21
  #ifndef LIBUSB_USBFS_H
22
22
  #define LIBUSB_USBFS_H
23
23
 
24
+ #include <linux/magic.h>
24
25
  #include <linux/types.h>
25
26
 
26
- #define SYSFS_DEVICE_PATH "/sys/bus/usb/devices"
27
+ #define SYSFS_MOUNT_PATH "/sys"
28
+ #define SYSFS_DEVICE_PATH SYSFS_MOUNT_PATH "/bus/usb/devices"
27
29
 
28
30
  struct usbfs_ctrltransfer {
29
31
  /* keep in sync with usbdevice_fs.h:usbdevfs_ctrltransfer */
30
- uint8_t bmRequestType;
31
- uint8_t bRequest;
32
- uint16_t wValue;
33
- uint16_t wIndex;
34
- uint16_t wLength;
35
-
36
- uint32_t timeout; /* in milliseconds */
37
-
38
- /* pointer to data */
39
- void *data;
40
- };
41
-
42
- struct usbfs_bulktransfer {
43
- /* keep in sync with usbdevice_fs.h:usbdevfs_bulktransfer */
44
- unsigned int ep;
45
- unsigned int len;
46
- unsigned int timeout; /* in milliseconds */
32
+ __u8 bmRequestType;
33
+ __u8 bRequest;
34
+ __u16 wValue;
35
+ __u16 wIndex;
36
+ __u16 wLength;
37
+ __u32 timeout; /* in milliseconds */
47
38
 
48
39
  /* pointer to data */
49
40
  void *data;
@@ -55,7 +46,7 @@ struct usbfs_setinterface {
55
46
  unsigned int altsetting;
56
47
  };
57
48
 
58
- #define USBFS_MAXDRIVERNAME 255
49
+ #define USBFS_MAXDRIVERNAME 255
59
50
 
60
51
  struct usbfs_getdriver {
61
52
  unsigned int interface;
@@ -63,17 +54,15 @@ struct usbfs_getdriver {
63
54
  };
64
55
 
65
56
  #define USBFS_URB_SHORT_NOT_OK 0x01
66
- #define USBFS_URB_ISO_ASAP 0x02
57
+ #define USBFS_URB_ISO_ASAP 0x02
67
58
  #define USBFS_URB_BULK_CONTINUATION 0x04
68
59
  #define USBFS_URB_QUEUE_BULK 0x10
69
60
  #define USBFS_URB_ZERO_PACKET 0x40
70
61
 
71
- enum usbfs_urb_type {
72
- USBFS_URB_TYPE_ISO = 0,
73
- USBFS_URB_TYPE_INTERRUPT = 1,
74
- USBFS_URB_TYPE_CONTROL = 2,
75
- USBFS_URB_TYPE_BULK = 3,
76
- };
62
+ #define USBFS_URB_TYPE_ISO 0
63
+ #define USBFS_URB_TYPE_INTERRUPT 1
64
+ #define USBFS_URB_TYPE_CONTROL 2
65
+ #define USBFS_URB_TYPE_BULK 3
77
66
 
78
67
  struct usbfs_iso_packet_desc {
79
68
  unsigned int length;
@@ -117,16 +106,11 @@ struct usbfs_ioctl {
117
106
  void *data; /* param buffer (in, or out) */
118
107
  };
119
108
 
120
- struct usbfs_hub_portinfo {
121
- unsigned char numports;
122
- unsigned char port[127]; /* port to device num mapping */
123
- };
124
-
125
- #define USBFS_CAP_ZERO_PACKET 0x01
126
- #define USBFS_CAP_BULK_CONTINUATION 0x02
127
- #define USBFS_CAP_NO_PACKET_SIZE_LIM 0x04
128
- #define USBFS_CAP_BULK_SCATTER_GATHER 0x08
129
- #define USBFS_CAP_REAP_AFTER_DISCONNECT 0x10
109
+ #define USBFS_CAP_ZERO_PACKET 0x01
110
+ #define USBFS_CAP_BULK_CONTINUATION 0x02
111
+ #define USBFS_CAP_NO_PACKET_SIZE_LIM 0x04
112
+ #define USBFS_CAP_BULK_SCATTER_GATHER 0x08
113
+ #define USBFS_CAP_REAP_AFTER_DISCONNECT 0x10
130
114
 
131
115
  #define USBFS_DISCONNECT_CLAIM_IF_DRIVER 0x01
132
116
  #define USBFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02
@@ -143,35 +127,39 @@ struct usbfs_streams {
143
127
  unsigned char eps[0];
144
128
  };
145
129
 
146
- #define IOCTL_USBFS_CONTROL _IOWR('U', 0, struct usbfs_ctrltransfer)
147
- #define IOCTL_USBFS_BULK _IOWR('U', 2, struct usbfs_bulktransfer)
148
- #define IOCTL_USBFS_RESETEP _IOR('U', 3, unsigned int)
149
- #define IOCTL_USBFS_SETINTF _IOR('U', 4, struct usbfs_setinterface)
150
- #define IOCTL_USBFS_SETCONFIG _IOR('U', 5, unsigned int)
151
- #define IOCTL_USBFS_GETDRIVER _IOW('U', 8, struct usbfs_getdriver)
152
- #define IOCTL_USBFS_SUBMITURB _IOR('U', 10, struct usbfs_urb)
153
- #define IOCTL_USBFS_DISCARDURB _IO('U', 11)
154
- #define IOCTL_USBFS_REAPURB _IOW('U', 12, void *)
130
+ #define USBFS_SPEED_UNKNOWN 0
131
+ #define USBFS_SPEED_LOW 1
132
+ #define USBFS_SPEED_FULL 2
133
+ #define USBFS_SPEED_HIGH 3
134
+ #define USBFS_SPEED_WIRELESS 4
135
+ #define USBFS_SPEED_SUPER 5
136
+ #define USBFS_SPEED_SUPER_PLUS 6
137
+
138
+ #define IOCTL_USBFS_CONTROL _IOWR('U', 0, struct usbfs_ctrltransfer)
139
+ #define IOCTL_USBFS_SETINTERFACE _IOR('U', 4, struct usbfs_setinterface)
140
+ #define IOCTL_USBFS_SETCONFIGURATION _IOR('U', 5, unsigned int)
141
+ #define IOCTL_USBFS_GETDRIVER _IOW('U', 8, struct usbfs_getdriver)
142
+ #define IOCTL_USBFS_SUBMITURB _IOR('U', 10, struct usbfs_urb)
143
+ #define IOCTL_USBFS_DISCARDURB _IO('U', 11)
155
144
  #define IOCTL_USBFS_REAPURBNDELAY _IOW('U', 13, void *)
156
- #define IOCTL_USBFS_CLAIMINTF _IOR('U', 15, unsigned int)
157
- #define IOCTL_USBFS_RELEASEINTF _IOR('U', 16, unsigned int)
158
- #define IOCTL_USBFS_CONNECTINFO _IOW('U', 17, struct usbfs_connectinfo)
159
- #define IOCTL_USBFS_IOCTL _IOWR('U', 18, struct usbfs_ioctl)
160
- #define IOCTL_USBFS_HUB_PORTINFO _IOR('U', 19, struct usbfs_hub_portinfo)
145
+ #define IOCTL_USBFS_CLAIMINTERFACE _IOR('U', 15, unsigned int)
146
+ #define IOCTL_USBFS_RELEASEINTERFACE _IOR('U', 16, unsigned int)
147
+ #define IOCTL_USBFS_CONNECTINFO _IOW('U', 17, struct usbfs_connectinfo)
148
+ #define IOCTL_USBFS_IOCTL _IOWR('U', 18, struct usbfs_ioctl)
161
149
  #define IOCTL_USBFS_RESET _IO('U', 20)
162
- #define IOCTL_USBFS_CLEAR_HALT _IOR('U', 21, unsigned int)
163
- #define IOCTL_USBFS_DISCONNECT _IO('U', 22)
164
- #define IOCTL_USBFS_CONNECT _IO('U', 23)
165
- #define IOCTL_USBFS_CLAIM_PORT _IOR('U', 24, unsigned int)
166
- #define IOCTL_USBFS_RELEASE_PORT _IOR('U', 25, unsigned int)
150
+ #define IOCTL_USBFS_CLEAR_HALT _IOR('U', 21, unsigned int)
151
+ #define IOCTL_USBFS_DISCONNECT _IO('U', 22)
152
+ #define IOCTL_USBFS_CONNECT _IO('U', 23)
167
153
  #define IOCTL_USBFS_GET_CAPABILITIES _IOR('U', 26, __u32)
168
154
  #define IOCTL_USBFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbfs_disconnect_claim)
169
155
  #define IOCTL_USBFS_ALLOC_STREAMS _IOR('U', 28, struct usbfs_streams)
170
156
  #define IOCTL_USBFS_FREE_STREAMS _IOR('U', 29, struct usbfs_streams)
157
+ #define IOCTL_USBFS_DROP_PRIVILEGES _IOW('U', 30, __u32)
158
+ #define IOCTL_USBFS_GET_SPEED _IO('U', 31)
171
159
 
172
160
  extern usbi_mutex_static_t linux_hotplug_lock;
173
161
 
174
- #if defined(HAVE_LIBUDEV)
162
+ #ifdef HAVE_LIBUDEV
175
163
  int linux_udev_start_event_monitor(void);
176
164
  int linux_udev_stop_event_monitor(void);
177
165
  int linux_udev_scan_devices(struct libusb_context *ctx);
@@ -182,10 +170,39 @@ int linux_netlink_stop_event_monitor(void);
182
170
  void linux_netlink_hotplug_poll(void);
183
171
  #endif
184
172
 
173
+ static inline int linux_start_event_monitor(void)
174
+ {
175
+ #if defined(HAVE_LIBUDEV)
176
+ return linux_udev_start_event_monitor();
177
+ #elif !defined(__ANDROID__)
178
+ return linux_netlink_start_event_monitor();
179
+ #else
180
+ return LIBUSB_SUCCESS;
181
+ #endif
182
+ }
183
+
184
+ static inline void linux_stop_event_monitor(void)
185
+ {
186
+ #if defined(HAVE_LIBUDEV)
187
+ linux_udev_stop_event_monitor();
188
+ #elif !defined(__ANDROID__)
189
+ linux_netlink_stop_event_monitor();
190
+ #endif
191
+ }
192
+
193
+ static inline void linux_hotplug_poll(void)
194
+ {
195
+ #if defined(HAVE_LIBUDEV)
196
+ linux_udev_hotplug_poll();
197
+ #elif !defined(__ANDROID__)
198
+ linux_netlink_hotplug_poll();
199
+ #endif
200
+ }
201
+
185
202
  void linux_hotplug_enumerate(uint8_t busnum, uint8_t devaddr, const char *sys_name);
186
203
  void linux_device_disconnected(uint8_t busnum, uint8_t devaddr);
187
204
 
188
- int linux_get_device_address (struct libusb_context *ctx, int detached,
205
+ int linux_get_device_address(struct libusb_context *ctx, int detached,
189
206
  uint8_t *busnum, uint8_t *devaddr, const char *dev_node,
190
207
  const char *sys_name, int fd);
191
208
  int linux_enumerate_device(struct libusb_context *ctx,