usb 1.7.2-prebuild

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 (183) hide show
  1. package/.github/workflows/prebuild.yml +62 -0
  2. package/.gitmodules +3 -0
  3. package/LICENSE +7 -0
  4. package/Readme.md +339 -0
  5. package/binding.gyp +90 -0
  6. package/libusb/.gitattributes +11 -0
  7. package/libusb/.private/README.txt +5 -0
  8. package/libusb/.private/bd.cmd +89 -0
  9. package/libusb/.private/bm.sh +54 -0
  10. package/libusb/.private/bwince.cmd +57 -0
  11. package/libusb/.private/post-rewrite.sh +28 -0
  12. package/libusb/.private/pre-commit.sh +42 -0
  13. package/libusb/.private/wbs.txt +61 -0
  14. package/libusb/.private/wbs_wince.txt +42 -0
  15. package/libusb/AUTHORS +78 -0
  16. package/libusb/COPYING +504 -0
  17. package/libusb/ChangeLog +211 -0
  18. package/libusb/INSTALL +234 -0
  19. package/libusb/INSTALL_WIN.txt +73 -0
  20. package/libusb/Makefile.am +28 -0
  21. package/libusb/NEWS +2 -0
  22. package/libusb/PORTING +94 -0
  23. package/libusb/README +28 -0
  24. package/libusb/README.git +41 -0
  25. package/libusb/TODO +2 -0
  26. package/libusb/Xcode/common.xcconfig +49 -0
  27. package/libusb/Xcode/debug.xcconfig +29 -0
  28. package/libusb/Xcode/libusb.xcconfig +21 -0
  29. package/libusb/Xcode/libusb.xcodeproj/project.pbxproj +1 -0
  30. package/libusb/Xcode/libusb_debug.xcconfig +21 -0
  31. package/libusb/Xcode/libusb_release.xcconfig +21 -0
  32. package/libusb/Xcode/release.xcconfig +30 -0
  33. package/libusb/android/README +114 -0
  34. package/libusb/android/jni/Android.mk +23 -0
  35. package/libusb/android/jni/Application.mk +24 -0
  36. package/libusb/android/jni/examples.mk +134 -0
  37. package/libusb/android/jni/libusb.mk +54 -0
  38. package/libusb/android/jni/tests.mk +56 -0
  39. package/libusb/autogen.sh +8 -0
  40. package/libusb/bootstrap.sh +19 -0
  41. package/libusb/configure.ac +304 -0
  42. package/libusb/doc/Makefile.am +9 -0
  43. package/libusb/doc/doxygen.cfg.in +1288 -0
  44. package/libusb/doc/libusb.png +0 -0
  45. package/libusb/examples/Makefile.am +19 -0
  46. package/libusb/examples/dpfp.c +506 -0
  47. package/libusb/examples/dpfp_threaded.c +544 -0
  48. package/libusb/examples/ezusb.c +831 -0
  49. package/libusb/examples/ezusb.h +120 -0
  50. package/libusb/examples/fxload.c +287 -0
  51. package/libusb/examples/getopt/getopt.c +1060 -0
  52. package/libusb/examples/getopt/getopt.h +180 -0
  53. package/libusb/examples/getopt/getopt1.c +188 -0
  54. package/libusb/examples/hotplugtest.c +104 -0
  55. package/libusb/examples/listdevs.c +71 -0
  56. package/libusb/examples/sam3u_benchmark.c +193 -0
  57. package/libusb/examples/xusb.c +1129 -0
  58. package/libusb/libusb/Makefile.am +75 -0
  59. package/libusb/libusb/core.c +2342 -0
  60. package/libusb/libusb/descriptor.c +1199 -0
  61. package/libusb/libusb/hotplug.c +327 -0
  62. package/libusb/libusb/hotplug.h +82 -0
  63. package/libusb/libusb/io.c +2631 -0
  64. package/libusb/libusb/libusb-1.0.def +166 -0
  65. package/libusb/libusb/libusb-1.0.rc +61 -0
  66. package/libusb/libusb/libusb.h +1998 -0
  67. package/libusb/libusb/libusbi.h +1040 -0
  68. package/libusb/libusb/os/darwin_usb.c +2009 -0
  69. package/libusb/libusb/os/darwin_usb.h +162 -0
  70. package/libusb/libusb/os/linux_netlink.c +369 -0
  71. package/libusb/libusb/os/linux_udev.c +307 -0
  72. package/libusb/libusb/os/linux_usbfs.c +2695 -0
  73. package/libusb/libusb/os/linux_usbfs.h +192 -0
  74. package/libusb/libusb/os/netbsd_usb.c +738 -0
  75. package/libusb/libusb/os/openbsd_usb.c +832 -0
  76. package/libusb/libusb/os/poll_posix.c +51 -0
  77. package/libusb/libusb/os/poll_posix.h +11 -0
  78. package/libusb/libusb/os/poll_windows.c +796 -0
  79. package/libusb/libusb/os/poll_windows.h +131 -0
  80. package/libusb/libusb/os/threads_posix.c +82 -0
  81. package/libusb/libusb/os/threads_posix.h +50 -0
  82. package/libusb/libusb/os/threads_windows.c +212 -0
  83. package/libusb/libusb/os/threads_windows.h +87 -0
  84. package/libusb/libusb/os/wince_usb.c +1032 -0
  85. package/libusb/libusb/os/wince_usb.h +131 -0
  86. package/libusb/libusb/os/windows_common.h +108 -0
  87. package/libusb/libusb/os/windows_usb.c +5347 -0
  88. package/libusb/libusb/os/windows_usb.h +971 -0
  89. package/libusb/libusb/strerror.c +199 -0
  90. package/libusb/libusb/sync.c +307 -0
  91. package/libusb/libusb/version.h +18 -0
  92. package/libusb/libusb/version_nano.h +1 -0
  93. package/libusb/libusb-1.0.pc.in +11 -0
  94. package/libusb/msvc/config.h +50 -0
  95. package/libusb/msvc/ddk_build.cmd +175 -0
  96. package/libusb/msvc/errno.h +102 -0
  97. package/libusb/msvc/fxload_2010.vcxproj +170 -0
  98. package/libusb/msvc/fxload_2010.vcxproj.filters +25 -0
  99. package/libusb/msvc/fxload_2012.vcxproj +174 -0
  100. package/libusb/msvc/fxload_2012.vcxproj.filters +25 -0
  101. package/libusb/msvc/fxload_2013.vcxproj +174 -0
  102. package/libusb/msvc/fxload_sources +23 -0
  103. package/libusb/msvc/getopt_2005.vcproj +288 -0
  104. package/libusb/msvc/getopt_2010.vcxproj +131 -0
  105. package/libusb/msvc/getopt_2010.vcxproj.filters +26 -0
  106. package/libusb/msvc/getopt_2012.vcxproj +136 -0
  107. package/libusb/msvc/getopt_2012.vcxproj.filters +26 -0
  108. package/libusb/msvc/getopt_2013.vcxproj +136 -0
  109. package/libusb/msvc/getopt_sources +20 -0
  110. package/libusb/msvc/hotplugtest_2010.vcxproj +163 -0
  111. package/libusb/msvc/hotplugtest_2010.vcxproj.filters +14 -0
  112. package/libusb/msvc/hotplugtest_2012.vcxproj +167 -0
  113. package/libusb/msvc/hotplugtest_2012.vcxproj.filters +14 -0
  114. package/libusb/msvc/hotplugtest_2013.vcxproj +167 -0
  115. package/libusb/msvc/hotplugtest_sources +20 -0
  116. package/libusb/msvc/inttypes.h +295 -0
  117. package/libusb/msvc/libusb.dsw +71 -0
  118. package/libusb/msvc/libusb_2005.sln +95 -0
  119. package/libusb/msvc/libusb_2010.sln +94 -0
  120. package/libusb/msvc/libusb_2012.sln +94 -0
  121. package/libusb/msvc/libusb_2013.sln +100 -0
  122. package/libusb/msvc/libusb_2015.sln +100 -0
  123. package/libusb/msvc/libusb_dll.dsp +194 -0
  124. package/libusb/msvc/libusb_dll_2005.vcproj +436 -0
  125. package/libusb/msvc/libusb_dll_2010.vcxproj +170 -0
  126. package/libusb/msvc/libusb_dll_2010.vcxproj.filters +81 -0
  127. package/libusb/msvc/libusb_dll_2012.vcxproj +175 -0
  128. package/libusb/msvc/libusb_dll_2012.vcxproj.filters +84 -0
  129. package/libusb/msvc/libusb_dll_2013.vcxproj +175 -0
  130. package/libusb/msvc/libusb_dll_wince.vcproj +1243 -0
  131. package/libusb/msvc/libusb_sources +38 -0
  132. package/libusb/msvc/libusb_static.dsp +174 -0
  133. package/libusb/msvc/libusb_static_2005.vcproj +362 -0
  134. package/libusb/msvc/libusb_static_2010.vcxproj +156 -0
  135. package/libusb/msvc/libusb_static_2010.vcxproj.filters +74 -0
  136. package/libusb/msvc/libusb_static_2012.vcxproj +160 -0
  137. package/libusb/msvc/libusb_static_2012.vcxproj.filters +74 -0
  138. package/libusb/msvc/libusb_static_2013.vcxproj +160 -0
  139. package/libusb/msvc/libusb_static_wince.vcproj +1185 -0
  140. package/libusb/msvc/libusb_wince.sln +246 -0
  141. package/libusb/msvc/listdevs.dsp +103 -0
  142. package/libusb/msvc/listdevs_2005.vcproj +360 -0
  143. package/libusb/msvc/listdevs_2010.vcxproj +165 -0
  144. package/libusb/msvc/listdevs_2010.vcxproj.filters +14 -0
  145. package/libusb/msvc/listdevs_2012.vcxproj +169 -0
  146. package/libusb/msvc/listdevs_2012.vcxproj.filters +14 -0
  147. package/libusb/msvc/listdevs_2013.vcxproj +169 -0
  148. package/libusb/msvc/listdevs_sources +19 -0
  149. package/libusb/msvc/listdevs_wince.vcproj +1120 -0
  150. package/libusb/msvc/missing.c +80 -0
  151. package/libusb/msvc/missing.h +32 -0
  152. package/libusb/msvc/stdint.h +256 -0
  153. package/libusb/msvc/stress_2005.vcproj +390 -0
  154. package/libusb/msvc/stress_2010.vcxproj +167 -0
  155. package/libusb/msvc/stress_2010.vcxproj.filters +25 -0
  156. package/libusb/msvc/stress_2012.vcxproj +171 -0
  157. package/libusb/msvc/stress_2012.vcxproj.filters +25 -0
  158. package/libusb/msvc/stress_2013.vcxproj +171 -0
  159. package/libusb/msvc/stress_wince.vcproj +1128 -0
  160. package/libusb/msvc/xusb.dsp +102 -0
  161. package/libusb/msvc/xusb_2005.vcproj +344 -0
  162. package/libusb/msvc/xusb_2010.vcxproj +163 -0
  163. package/libusb/msvc/xusb_2010.vcxproj.filters +14 -0
  164. package/libusb/msvc/xusb_2012.vcxproj +167 -0
  165. package/libusb/msvc/xusb_2012.vcxproj.filters +14 -0
  166. package/libusb/msvc/xusb_2013.vcxproj +167 -0
  167. package/libusb/msvc/xusb_sources +20 -0
  168. package/libusb/msvc/xusb_wince.vcproj +1120 -0
  169. package/libusb/tests/Makefile.am +6 -0
  170. package/libusb/tests/libusb_testlib.h +107 -0
  171. package/libusb/tests/stress.c +160 -0
  172. package/libusb/tests/testlib.c +281 -0
  173. package/libusb.gypi +136 -0
  174. package/libusb_config/config.h +1 -0
  175. package/package.json +69 -0
  176. package/src/device.cc +412 -0
  177. package/src/helpers.h +64 -0
  178. package/src/node_usb.cc +319 -0
  179. package/src/node_usb.h +120 -0
  180. package/src/transfer.cc +148 -0
  181. package/src/uv_async_queue.h +33 -0
  182. package/test/usb.coffee +191 -0
  183. package/usb.js +524 -0
@@ -0,0 +1,211 @@
1
+ For detailed information about the changes below, please see the git log or
2
+ visit: http://log.libusb.info
3
+
4
+ 2014-05-30: v1.0.19
5
+ * Add support for USB bulk streams on Linux and Mac OS X (#11)
6
+ * Windows: Add AMD and Intel USB-3.0 root hub support
7
+ * Windows: Fix USB 3.0 speed detection on Windows 8 or later (#10)
8
+ * Added Russian translation for libusb_strerror strings
9
+ * All: Various small fixes and cleanups
10
+ The (#xx) numbers are libusb issue numbers, see ie:
11
+ https://github.com/libusb/libusb/issues/11
12
+
13
+ 2014-01-25: v1.0.18
14
+ * Fix multiple memory leaks
15
+ * Fix a crash when HID transfers return no data on Windows
16
+ * Ensure all pending events are consumed
17
+ * Improve Android and ucLinux support
18
+ * Multiple Windows improvements (error logging, VS2013, VIA xHCI support)
19
+ * Multiple OS X improvements (broken compilation, SIGFPE, 64bit support)
20
+
21
+ 2013-09-06: v1.0.17
22
+ * Hotplug callbacks now always get passed a libusb_context, even if it is
23
+ the default context. Previously NULL would be passed for the default context,
24
+ but since the first context created is the default context, and most apps
25
+ use only 1 context, this meant that apps explicitly creating a context would
26
+ still get passed NULL
27
+ * Android: Add .mk files to build with the Android NDK
28
+ * Darwin: Add Xcode project
29
+ * Darwin: Fix crash on unplug (#121)
30
+ * Linux: Fix hang (deadlock) on libusb_exit
31
+ * Linux: Fix libusb build failure with --disable-udev (#124)
32
+ * Linux: Fix libusb_get_device_list() hang with --disable-udev (#130)
33
+ * OpenBSD: Update OpenBSD backend with support for control transfers to
34
+ non-ugen(4) devices and make get_configuration() no longer generate I/O.
35
+ Note that using this libusb version on OpenBSD requires using
36
+ OpenBSD 5.3-current or later. Users of older OpenBSD versions are advised
37
+ to stay with the libusb shipped with OpenBSD (mpi)
38
+ * Windows: fix libusb_dll_2010.vcxproj link errors (#129)
39
+ * Various other bug fixes and improvements
40
+
41
+ 2013-07-11: v1.0.16
42
+ * Add hotplug support for Darwin and Linux (#9)
43
+ * Add superspeed endpoint companion descriptor support (#15)
44
+ * Add BOS descriptor support (#15)
45
+ * Make descriptor parsing code more robust
46
+ * New libusb_get_port_numbers API, this is libusb_get_port_path without
47
+ the unnecessary context parameter, libusb_get_port_path is now deprecated
48
+ * New libusb_strerror API (#14)
49
+ * New libusb_set_auto_detach_kernel_driver API (#17)
50
+ * Improve topology API docs (#95)
51
+ * Logging now use a single write call per log-message, avoiding log-message
52
+ "interlacing" when using multiple threads.
53
+ * Android: use Android logging when building on Android (#101)
54
+ * Darwin: make libusb_reset reenumerate device on descriptors change (#89)
55
+ * Darwin: add support for the LIBUSB_TRANSFER_ADD_ZERO_PACKET flag (#91)
56
+ * Darwin: add a device cache (#112, #114)
57
+ * Examples: Add sam3u_benchmark isochronous example by Harald Welte (#109)
58
+ * Many other bug fixes and improvements
59
+ The (#xx) numbers are libusbx issue numbers, see ie:
60
+ https://github.com/libusbx/libusbx/issues/9
61
+
62
+ 2013-04-15: v1.0.15
63
+ * Improve transfer cancellation and avoid short read failures on broken descriptors
64
+ * Filter out 8-bit characters in libusb_get_string_descriptor_ascii()
65
+ * Add WinCE support
66
+ * Add library stress tests
67
+ * Add Cypress FX3 firmware upload support for fxload sample
68
+ * Add HID and kernel driver detach support capabilities detection
69
+ * Add SuperSpeed detection on OS X
70
+ * Fix bInterval value interpretation on OS X
71
+ * Fix issues with autoclaim, composite HID devices, interface autoclaim and
72
+ early abort in libusb_close() on Windows. Also add VS2012 solution files.
73
+ * Improve fd event handling on Linux
74
+ * Other bug fixes and improvements
75
+
76
+ 2012-09-26: v1.0.14
77
+ * Reverts the previous API change with regards to bMaxPower.
78
+ If this doesn't matter to you, you are encouraged to keep using v1.0.13,
79
+ as it will use the same attribute as v2.0, to be released soon.
80
+ * Note that LIBUSB_API_VERSION is *decreased* to 0x010000FF and the previous
81
+ guidelines with regards to concurrent use of MaxPower/bMaxPower still apply.
82
+
83
+ 2012-09-20: v1.0.13
84
+ * [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where
85
+ MaxPower was used instead of bMaxPower, as defined in the specs. If your
86
+ application was accessing the MaxPower attribute, and you need to maintain
87
+ compatibility with libusb or older versions, see APPENDIX A below.
88
+ * Fix broken support for the 0.1 -> 1.0 libusb-compat layer
89
+ * Fix unwanted cancellation of pending timeouts as well as major timeout related bugs
90
+ * Fix handling of HID and composite devices on Windows
91
+ * Introduce LIBUSB_API_VERSION macro
92
+ * Add Cypress FX/FX2 firmware upload sample, based on fxload from
93
+ http://linux-hotplug.sourceforge.net
94
+ * Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that while
95
+ the drivers allow it, isochronous transfers are not supported yet in libusb. Also
96
+ not supported yet is the use of libusb-win32 filter drivers on composite interfaces
97
+ * Add support for the new get_capabilities ioctl on Linux and avoid unnecessary
98
+ splitting of bulk transfers
99
+ * Improve support for newer Intel and Renesas USB 3.0 controllers on Windows
100
+ * Harmonize the device number for root hubs across platforms
101
+ * Other bug fixes and improvements
102
+
103
+ 2012-06-15: v1.0.12
104
+ * Fix a potential major regression with pthread on Linux
105
+ * Fix missing thread ID from debug log output on cygwin
106
+ * Fix possible crash when using longjmp and MinGW's gcc 4.6
107
+ * Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path()
108
+ * Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable
109
+ * Define log levels in libusb.h and set timestamp origin to first libusb_init() call
110
+ * All logging is now sent to to stderr (info was sent to stdout previously)
111
+ * Update log messages severity and avoid polluting log output on OS-X
112
+ * Add HID driver support on Windows
113
+ * Enable interchangeability of MSVC and MinGW DLLs
114
+ * Additional bug fixes and improvements
115
+
116
+ 2012-05-08: v1.0.11
117
+ * Revert removal of critical Windows event handling that was introduced in 1.0.10
118
+ * Fix a possible deadlock in Windows when submitting transfers
119
+ * Add timestamped logging
120
+ * Add NetBSD support (experimental) and BSD libusb_get_device_speed() data
121
+ * Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure)
122
+ * Search for device nodes in /dev for Android support
123
+ * Other bug fixes
124
+
125
+ 2012-04-17: v1.0.10
126
+ * Public release
127
+ * Add libusb_get_version
128
+ * Add Visual Studio 2010 project files
129
+ * Some Windows code cleanup
130
+ * Fix xusb sample warnings
131
+
132
+ 2012-04-02: v1.0.9
133
+ * First libusbx release
134
+ * Add libusb_get_device_speed (all, except BSD) and libusb_error_name
135
+ * Add Windows support (WinUSB driver only)
136
+ * Add OpenBSD support
137
+ * Add xusb sample
138
+ * Tons of bug fixes
139
+
140
+ 2010-05-07: v1.0.8
141
+ * Bug fixes
142
+
143
+ 2010-04-19: v1.0.7
144
+ * Bug fixes and documentation tweaks
145
+ * Add more interface class definitions
146
+
147
+ 2009-11-22: v1.0.6
148
+ * Bug fixes
149
+ * Increase libusb_handle_events() timeout to 60s for powersaving
150
+
151
+ 2009-11-15: v1.0.5
152
+ * Use timerfd when available for timer management
153
+ * Small fixes/updates
154
+
155
+ 2009-11-06: v1.0.4 release
156
+ * Bug fixes including transfer locking to fix some potential threading races
157
+ * More flexibility with clock types on Linux
158
+ * Use new bulk continuation tracking in Linux 2.6.32 for improved handling
159
+ of short/failed transfers
160
+
161
+ 2009-08-27: v1.0.3 release
162
+ * Bug fixes
163
+ * Add libusb_get_max_iso_packet_size()
164
+
165
+ 2009-06-13: v1.0.2 release
166
+ * Bug fixes
167
+
168
+ 2009-05-12: v1.0.1 release
169
+ * Bug fixes
170
+ * Darwin backend
171
+
172
+ 2008-12-13: v1.0.0 release
173
+ * Bug fixes
174
+
175
+ 2008-11-21: v0.9.4 release
176
+ * Bug fixes
177
+ * Add libusb_attach_kernel_driver()
178
+
179
+ 2008-08-23: v0.9.3 release
180
+ * Bug fixes
181
+
182
+ 2008-07-19: v0.9.2 release
183
+ * Bug fixes
184
+
185
+ 2008-06-28: v0.9.1 release
186
+ * Bug fixes
187
+ * Introduce contexts to the API
188
+ * Compatibility with new Linux kernel features
189
+
190
+ 2008-05-25: v0.9.0 release
191
+ * First libusb-1.0 beta release
192
+
193
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
194
+
195
+ APPENDIX A - How to maintain code compatibility with versions of libusb and
196
+ libusb that use MaxPower:
197
+
198
+ If you must to maintain compatibility with versions of the library that aren't
199
+ using the bMaxPower attribute in struct libusb_config_descriptor, the
200
+ recommended way is to use the new LIBUSB_API_VERSION macro with an #ifdef.
201
+ For instance, if your code was written as follows:
202
+
203
+ if (dev->config[0].MaxPower < 250)
204
+
205
+ Then you should modify it to have:
206
+
207
+ #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000100)
208
+ if (dev->config[0].bMaxPower < 250)
209
+ #else
210
+ if (dev->config[0].MaxPower < 250)
211
+ #endif
package/libusb/INSTALL ADDED
@@ -0,0 +1,234 @@
1
+ Installation Instructions
2
+ *************************
3
+
4
+ Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
5
+ 2006 Free Software Foundation, Inc.
6
+
7
+ This file is free documentation; the Free Software Foundation gives
8
+ unlimited permission to copy, distribute and modify it.
9
+
10
+ Basic Installation
11
+ ==================
12
+
13
+ Briefly, the shell commands `./configure; make; make install' should
14
+ configure, build, and install this package. The following
15
+ more-detailed instructions are generic; see the `README' file for
16
+ instructions specific to this package.
17
+
18
+ The `configure' shell script attempts to guess correct values for
19
+ various system-dependent variables used during compilation. It uses
20
+ those values to create a `Makefile' in each directory of the package.
21
+ It may also create one or more `.h' files containing system-dependent
22
+ definitions. Finally, it creates a shell script `config.status' that
23
+ you can run in the future to recreate the current configuration, and a
24
+ file `config.log' containing compiler output (useful mainly for
25
+ debugging `configure').
26
+
27
+ It can also use an optional file (typically called `config.cache'
28
+ and enabled with `--cache-file=config.cache' or simply `-C') that saves
29
+ the results of its tests to speed up reconfiguring. Caching is
30
+ disabled by default to prevent problems with accidental use of stale
31
+ cache files.
32
+
33
+ If you need to do unusual things to compile the package, please try
34
+ to figure out how `configure' could check whether to do them, and mail
35
+ diffs or instructions to the address given in the `README' so they can
36
+ be considered for the next release. If you are using the cache, and at
37
+ some point `config.cache' contains results you don't want to keep, you
38
+ may remove or edit it.
39
+
40
+ The file `configure.ac' (or `configure.in') is used to create
41
+ `configure' by a program called `autoconf'. You need `configure.ac' if
42
+ you want to change it or regenerate `configure' using a newer version
43
+ of `autoconf'.
44
+
45
+ The simplest way to compile this package is:
46
+
47
+ 1. `cd' to the directory containing the package's source code and type
48
+ `./configure' to configure the package for your system.
49
+
50
+ Running `configure' might take a while. While running, it prints
51
+ some messages telling which features it is checking for.
52
+
53
+ 2. Type `make' to compile the package.
54
+
55
+ 3. Optionally, type `make check' to run any self-tests that come with
56
+ the package.
57
+
58
+ 4. Type `make install' to install the programs and any data files and
59
+ documentation.
60
+
61
+ 5. You can remove the program binaries and object files from the
62
+ source code directory by typing `make clean'. To also remove the
63
+ files that `configure' created (so you can compile the package for
64
+ a different kind of computer), type `make distclean'. There is
65
+ also a `make maintainer-clean' target, but that is intended mainly
66
+ for the package's developers. If you use it, you may have to get
67
+ all sorts of other programs in order to regenerate files that came
68
+ with the distribution.
69
+
70
+ Compilers and Options
71
+ =====================
72
+
73
+ Some systems require unusual options for compilation or linking that the
74
+ `configure' script does not know about. Run `./configure --help' for
75
+ details on some of the pertinent environment variables.
76
+
77
+ You can give `configure' initial values for configuration parameters
78
+ by setting variables in the command line or in the environment. Here
79
+ is an example:
80
+
81
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
82
+
83
+ *Note Defining Variables::, for more details.
84
+
85
+ Compiling For Multiple Architectures
86
+ ====================================
87
+
88
+ You can compile the package for more than one kind of computer at the
89
+ same time, by placing the object files for each architecture in their
90
+ own directory. To do this, you can use GNU `make'. `cd' to the
91
+ directory where you want the object files and executables to go and run
92
+ the `configure' script. `configure' automatically checks for the
93
+ source code in the directory that `configure' is in and in `..'.
94
+
95
+ With a non-GNU `make', it is safer to compile the package for one
96
+ architecture at a time in the source code directory. After you have
97
+ installed the package for one architecture, use `make distclean' before
98
+ reconfiguring for another architecture.
99
+
100
+ Installation Names
101
+ ==================
102
+
103
+ By default, `make install' installs the package's commands under
104
+ `/usr/local/bin', include files under `/usr/local/include', etc. You
105
+ can specify an installation prefix other than `/usr/local' by giving
106
+ `configure' the option `--prefix=PREFIX'.
107
+
108
+ You can specify separate installation prefixes for
109
+ architecture-specific files and architecture-independent files. If you
110
+ pass the option `--exec-prefix=PREFIX' to `configure', the package uses
111
+ PREFIX as the prefix for installing programs and libraries.
112
+ Documentation and other data files still use the regular prefix.
113
+
114
+ In addition, if you use an unusual directory layout you can give
115
+ options like `--bindir=DIR' to specify different values for particular
116
+ kinds of files. Run `configure --help' for a list of the directories
117
+ you can set and what kinds of files go in them.
118
+
119
+ If the package supports it, you can cause programs to be installed
120
+ with an extra prefix or suffix on their names by giving `configure' the
121
+ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
122
+
123
+ Optional Features
124
+ =================
125
+
126
+ Some packages pay attention to `--enable-FEATURE' options to
127
+ `configure', where FEATURE indicates an optional part of the package.
128
+ They may also pay attention to `--with-PACKAGE' options, where PACKAGE
129
+ is something like `gnu-as' or `x' (for the X Window System). The
130
+ `README' should mention any `--enable-' and `--with-' options that the
131
+ package recognizes.
132
+
133
+ For packages that use the X Window System, `configure' can usually
134
+ find the X include and library files automatically, but if it doesn't,
135
+ you can use the `configure' options `--x-includes=DIR' and
136
+ `--x-libraries=DIR' to specify their locations.
137
+
138
+ Specifying the System Type
139
+ ==========================
140
+
141
+ There may be some features `configure' cannot figure out automatically,
142
+ but needs to determine by the type of machine the package will run on.
143
+ Usually, assuming the package is built to be run on the _same_
144
+ architectures, `configure' can figure that out, but if it prints a
145
+ message saying it cannot guess the machine type, give it the
146
+ `--build=TYPE' option. TYPE can either be a short name for the system
147
+ type, such as `sun4', or a canonical name which has the form:
148
+
149
+ CPU-COMPANY-SYSTEM
150
+
151
+ where SYSTEM can have one of these forms:
152
+
153
+ OS KERNEL-OS
154
+
155
+ See the file `config.sub' for the possible values of each field. If
156
+ `config.sub' isn't included in this package, then this package doesn't
157
+ need to know the machine type.
158
+
159
+ If you are _building_ compiler tools for cross-compiling, you should
160
+ use the option `--target=TYPE' to select the type of system they will
161
+ produce code for.
162
+
163
+ If you want to _use_ a cross compiler, that generates code for a
164
+ platform different from the build platform, you should specify the
165
+ "host" platform (i.e., that on which the generated programs will
166
+ eventually be run) with `--host=TYPE'.
167
+
168
+ Sharing Defaults
169
+ ================
170
+
171
+ If you want to set default values for `configure' scripts to share, you
172
+ can create a site shell script called `config.site' that gives default
173
+ values for variables like `CC', `cache_file', and `prefix'.
174
+ `configure' looks for `PREFIX/share/config.site' if it exists, then
175
+ `PREFIX/etc/config.site' if it exists. Or, you can set the
176
+ `CONFIG_SITE' environment variable to the location of the site script.
177
+ A warning: not all `configure' scripts look for a site script.
178
+
179
+ Defining Variables
180
+ ==================
181
+
182
+ Variables not defined in a site shell script can be set in the
183
+ environment passed to `configure'. However, some packages may run
184
+ configure again during the build, and the customized values of these
185
+ variables may be lost. In order to avoid this problem, you should set
186
+ them in the `configure' command line, using `VAR=value'. For example:
187
+
188
+ ./configure CC=/usr/local2/bin/gcc
189
+
190
+ causes the specified `gcc' to be used as the C compiler (unless it is
191
+ overridden in the site shell script).
192
+
193
+ Unfortunately, this technique does not work for `CONFIG_SHELL' due to
194
+ an Autoconf bug. Until the bug is fixed you can use this workaround:
195
+
196
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
197
+
198
+ `configure' Invocation
199
+ ======================
200
+
201
+ `configure' recognizes the following options to control how it operates.
202
+
203
+ `--help'
204
+ `-h'
205
+ Print a summary of the options to `configure', and exit.
206
+
207
+ `--version'
208
+ `-V'
209
+ Print the version of Autoconf used to generate the `configure'
210
+ script, and exit.
211
+
212
+ `--cache-file=FILE'
213
+ Enable the cache: use and save the results of the tests in FILE,
214
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
215
+ disable caching.
216
+
217
+ `--config-cache'
218
+ `-C'
219
+ Alias for `--cache-file=config.cache'.
220
+
221
+ `--quiet'
222
+ `--silent'
223
+ `-q'
224
+ Do not print messages saying which checks are being made. To
225
+ suppress all normal output, redirect it to `/dev/null' (any error
226
+ messages will still be shown).
227
+
228
+ `--srcdir=DIR'
229
+ Look for the package's source code in directory DIR. Usually
230
+ `configure' can determine that directory automatically.
231
+
232
+ `configure' also accepts some other, not widely useful, options. Run
233
+ `configure --help' for more details.
234
+
@@ -0,0 +1,73 @@
1
+ Installation Instructions for Windows
2
+ *************************************
3
+
4
+ If you are compiling for MinGW or cygwin, please refer to the INSTALL file.
5
+
6
+ If you are using Microsoft Visual Studio:
7
+ - Open the relevant solution file in /msvc:
8
+ libusb.dsw for MSVC6, libusb_2005.sln for Visual Studio 2005 or 2008,
9
+ libusb_2010.sln for Visual Studio 2010,
10
+ libusb_2012.sln for Visual Studio 2012 or later,
11
+ libusb_wince.sln for Windows CE support in Visual Studio 2005.
12
+ - If you want to debug the library, uncomment the ENABLE_DEBUG_LOGGING define
13
+ in msvc\config.h
14
+ - Select your configuration and compile the project
15
+
16
+ Note that if you are using Visual Studio Express, you may have to install the
17
+ Windows SDK to be able to compile the 64 bit version of the library.
18
+
19
+ If you are using the freely available Windows DDK/WDK (Driver Development Kit)
20
+ - If you want to debug the library, uncomment the ENABLE_DEBUG_LOGGING define
21
+ in msvc\config.h
22
+ - Open one of the relevant Free Build or Checked Build prompt for your target
23
+ platform
24
+ - Navigate to the msvc\ directory where the ddk_build.cmd file is located, and
25
+ run 'ddk_build'
26
+ - To produce a DLL rather than a static library, use: 'ddk_build DLL'
27
+ - To produce a static library that uses LIBCMT[d] instead of MSVCRT[d] (/MT[d]
28
+ vs /MD[d] in Visual Studio) use: 'ddk_build /MT'
29
+
30
+ Note that using the Windows DDK, it is possible to compile both the 32 and 64
31
+ bit versions of the library.
32
+
33
+ If you are building for Windows CE then you will need the Windows CE Standard 5.00 SDK.
34
+
35
+ Destination directories
36
+ ***********************
37
+
38
+ The 32 bit binaries compiled either from Visual Studio or the DDK are placed in
39
+ a Win32\ directory at the root of the library
40
+ The 64 bit binaries are placed in an x64\ directory
41
+ Windows CE binaries are placed in one of the following directories, depending
42
+ on the target processor: ARMV4I, MIPSII, MIPSII_FP, MIPSIV, MIPSIV_FP, SH4 or x86.
43
+
44
+
45
+ Troubleshooting
46
+ ***************
47
+
48
+ If the compilation process complains about missing libraries, ensure that the
49
+ default library paths for your project points to the relevant directories.
50
+ If needed, these libraries can be obtained by installing either the latest
51
+ Windows SDK or the DDK (Links provided at the end of this file).
52
+
53
+ For Windows CE it is necessary to install the CE USB Kernel Wrapper driver for
54
+ libusb to function on a device.
55
+
56
+ Links
57
+ *****
58
+
59
+ Additional information related to the Windows backend:
60
+ http://windows.libusb.info
61
+
62
+ Latest Windows Driver (Development) Kit (WDK):
63
+ http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff
64
+
65
+ Latest Microsoft Windows SDK:
66
+ http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505
67
+
68
+ Windows CE Standard 5.00 SDK:
69
+ http://www.microsoft.com/en-gb/download/details.aspx?id=17310
70
+
71
+ Windows CE USB Kernel Wrapper Driver:
72
+ https://github.com/RealVNC/CEUSBKWrapper
73
+
@@ -0,0 +1,28 @@
1
+ AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip
2
+ ACLOCAL_AMFLAGS = -I m4
3
+ DISTCLEANFILES = libusb-1.0.pc
4
+ EXTRA_DIST = TODO PORTING msvc libusb/libusb-1.0.def libusb/version_nano.h \
5
+ examples/getopt/getopt.c examples/getopt/getopt1.c examples/getopt/getopt.h \
6
+ android Xcode
7
+ SUBDIRS = libusb doc
8
+
9
+ if BUILD_EXAMPLES
10
+ SUBDIRS += examples
11
+ endif
12
+
13
+ if BUILD_TESTS
14
+ SUBDIRS += tests
15
+ endif
16
+
17
+ pkgconfigdir=$(libdir)/pkgconfig
18
+ pkgconfig_DATA=libusb-1.0.pc
19
+
20
+ .PHONY: dist-up
21
+
22
+ reldir = .release/$(distdir)
23
+ dist-up: dist
24
+ rm -rf $(reldir)
25
+ mkdir -p $(reldir)
26
+ cp $(distdir).tar.bz2 $(reldir)
27
+ rsync -rv $(reldir) frs.sourceforge.net:/home/frs/project/l/li/libusb/libusb-1.0/
28
+ rm -rf $(reldir)
package/libusb/NEWS ADDED
@@ -0,0 +1,2 @@
1
+ For the latest libusb news, please refer to the ChangeLog file, or visit:
2
+ http://libusb.info
package/libusb/PORTING ADDED
@@ -0,0 +1,94 @@
1
+ PORTING LIBUSB TO OTHER PLATFORMS
2
+
3
+ Introduction
4
+ ============
5
+
6
+ This document is aimed at developers wishing to port libusb to unsupported
7
+ platforms. I believe the libusb API is OS-independent, so by supporting
8
+ multiple operating systems we pave the way for cross-platform USB device
9
+ drivers.
10
+
11
+ Implementation-wise, the basic idea is that you provide an interface to
12
+ libusb's internal "backend" API, which performs the appropriate operations on
13
+ your target platform.
14
+
15
+ In terms of USB I/O, your backend provides functionality to submit
16
+ asynchronous transfers (synchronous transfers are implemented in the higher
17
+ layers, based on the async interface). Your backend must also provide
18
+ functionality to cancel those transfers.
19
+
20
+ Your backend must also provide an event handling function to "reap" ongoing
21
+ transfers and process their results.
22
+
23
+ The backend must also provide standard functions for other USB operations,
24
+ e.g. setting configuration, obtaining descriptors, etc.
25
+
26
+
27
+ File descriptors for I/O polling
28
+ ================================
29
+
30
+ For libusb to work, your event handling function obviously needs to be called
31
+ at various points in time. Your backend must provide a set of file descriptors
32
+ which libusb and its users can pass to poll() or select() to determine when
33
+ it is time to call the event handling function.
34
+
35
+ On Linux, this is easy: the usbfs kernel interface exposes a file descriptor
36
+ which can be passed to poll(). If something similar is not true for your
37
+ platform, you can emulate this using an internal library thread to reap I/O as
38
+ necessary, and a pipe() with the main library to raise events. The file
39
+ descriptor of the pipe can then be provided to libusb as an event source.
40
+
41
+
42
+ Interface semantics and documentation
43
+ =====================================
44
+
45
+ Documentation of the backend interface can be found in libusbi.h inside the
46
+ usbi_os_backend structure definition.
47
+
48
+ Your implementations of these functions will need to call various internal
49
+ libusb functions, prefixed with "usbi_". Documentation for these functions
50
+ can be found in the .c files where they are implemented.
51
+
52
+ You probably want to skim over *all* the documentation before starting your
53
+ implementation. For example, you probably need to allocate and store private
54
+ OS-specific data for device handles, but the documentation for the mechanism
55
+ for doing so is probably not the first thing you will see.
56
+
57
+ The Linux backend acts as a good example - view it as a reference
58
+ implementation which you should try to match the behaviour of.
59
+
60
+
61
+ Getting started
62
+ ===============
63
+
64
+ 1. Modify configure.ac to detect your platform appropriately (see the OS_LINUX
65
+ stuff for an example).
66
+
67
+ 2. Implement your backend in the libusb/os/ directory, modifying
68
+ libusb/os/Makefile.am appropriately.
69
+
70
+ 3. Add preprocessor logic to the top of libusb/core.c to statically assign the
71
+ right usbi_backend for your platform.
72
+
73
+ 4. Produce and test your implementation.
74
+
75
+ 5. Send your implementation to libusb-devel mailing list.
76
+
77
+
78
+ Implementation difficulties? Questions?
79
+ =======================================
80
+
81
+ If you encounter difficulties porting libusb to your platform, please raise
82
+ these issues on the libusb-devel mailing list. Where possible and sensible, I
83
+ am interested in solving problems preventing libusb from operating on other
84
+ platforms.
85
+
86
+ The libusb-devel mailing list is also a good place to ask questions and
87
+ make suggestions about the internal API. Hopefully we can produce some
88
+ better documentation based on your questions and other input.
89
+
90
+ You are encouraged to get involved in the process; if the library needs
91
+ some infrastructure additions/modifications to better support your platform,
92
+ you are encouraged to make such changes (in cleanly distinct patch
93
+ submissions). Even if you do not make such changes yourself, please do raise
94
+ the issues on the mailing list at the very minimum.
package/libusb/README ADDED
@@ -0,0 +1,28 @@
1
+ libusb
2
+ ======
3
+
4
+ libusb is a library for USB device access from Linux, Mac OS X,
5
+ Windows and OpenBSD/NetBSD userspace.
6
+ It is written in C and licensed under the GNU Lesser General Public
7
+ License version 2.1 or, at your option, any later version (see COPYING).
8
+
9
+ libusb is abstracted internally in such a way that it can hopefully
10
+ be ported to other operating systems. Please see the PORTING file
11
+ for more information.
12
+
13
+ libusb homepage:
14
+ http://libusb.info/
15
+
16
+ Developers will wish to consult the API documentation:
17
+ http://api.libusb.info
18
+
19
+ Use the mailing list for questions, comments, etc:
20
+ http://mailing-list.libusb.info
21
+
22
+ - Pete Batard <pete@akeo.ie>
23
+ - Hans de Goede <hdegoede@redhat.com>
24
+ - Xiaofan Chen <xiaofanc@gmail.com>
25
+ - Ludovic Rousseau <ludovic.rousseau@gmail.com>
26
+ - Nathan Hjelm <hjelmn@users.sourceforge.net>
27
+ - Chris Dickens <christopher.a.dickens@gmail.com>
28
+ (Please use the mailing list rather than mailing developers directly)