- C 90.4%
- C++ 4.8%
- Meson 1.7%
- M4 1.3%
- Makefile 1.1%
- Other 0.6%
|
Maciej Nowak
badc836c75
Windows manages each sub-device of composite device as separate device - each one requires separate call to CreateFile to obtain dev_handle. Opening all sub-devices eagerly prevents other applications for accessing any sub-device even if application that opened the device is not using them. This commit modifies WinUSB backend to call CreateFile lazily, so device handle is opened when necessary (by claiming the interface) and release as soon as possible (by releasing the interface). Implementation details: * winusbx_open becomes essentially no-operation * winusbx_claim_interface ensures that device handle is opened * interface used to initialize WinUSB handle has associated counter of claimed interfaces * claiming and releasing interfaces modifies ref-counter accordingly * when counter reaches zero on releasing interface, device handle is closed Signed-off-by: Maciej Nowak <maciejt.nowak@gmail.com> |
||
|---|---|---|
| .github | CI: Add Linux and MSYS build with logging disabled | |
| .private | Replace all http://libusb.info/ with https | |
| android | android: Fix typo and syntax in comments | |
| doc | meson: Defined an option to control if things will get installed or not | |
| examples | meson: Added an option to control what kind of build will be done when in a cross-build environment | |
| libusb | Windows: lazily open device handle (CreateFile call) | |
| meson | meson: Add licensing information | |
| msvc | meson: Added an option to control what kind of build will be done when in a cross-build environment | |
| tests | meson: Added an option to control what kind of build will be done when in a cross-build environment | |
| Xcode | xcode: Add files from other backends into the Xcode project | |
| .codespellrc | Correct some spelling and add codespell config file | |
| .gitattributes | Windows: Remove support for WinCE and Visual Studio older than 2013 | |
| .gitignore | .gitignore: Ignore test binaries and logs | |
| .travis.yml | travis: Turn off Homebrew updates | |
| appveyor.yml | msvc: Rework msbuild files | |
| AUTHORS | libusb 1.0.27-rc1 | |
| autogen.sh | autogen: Support being called from external build dir | |
| bootstrap.sh | autogen: Support being called from external build dir | |
| ChangeLog | libusb 1.0.27 | |
| configure.ac | configure.ac: Bump libtool library version | |
| COPYING | Initial commit | |
| HACKING | Add HACKING file with hints on proper commits | |
| INSTALL_WIN.txt | msvc: Rework msbuild files | |
| libusb-1.0.pc.in | Solaris backend | |
| LICENSE.meson.txt | meson: Add licensing information | |
| Makefile.am | Makefiles: Remove target-specific variables | |
| meson.build | meson: Fix cross build on macOS | |
| meson_options.txt | meson: Defined an option to control if things will get installed or not | |
| NEWS | Replace all http://libusb.info/ with https | |
| PORTING | Misc: Revert all references to libusb/libusb.info | |
| README | Replace all http://libusb.info/ with https | |
| README.git | Correct some spelling and add codespell config file | |
| README.md | Exchange README.md and README | |
| TODO | Updated TODO link | |
libusb
Build Status Build Status Coverity Scan Build Status
libusb is a library for USB device access from Linux, macOS, Windows, OpenBSD/NetBSD, Haiku, Solaris userspace, and WebAssembly via WebUSB. It is written in C (Haiku backend in C++) and licensed under the GNU Lesser General Public License version 2.1 or, at your option, any later version (see COPYING).
libusb is abstracted internally in such a way that it can hopefully be ported to other operating systems. Please see the PORTING file for more information.
libusb homepage: https://libusb.info/
Developers will wish to consult the API documentation: http://api.libusb.info
Use the mailing list for questions, comments, etc: http://mailing-list.libusb.info
- Hans de Goede hdegoede@redhat.com
- Xiaofan Chen xiaofanc@gmail.com
- Ludovic Rousseau ludovic.rousseau@gmail.com
- Nathan Hjelm hjelmn@cs.unm.edu
- Chris Dickens christopher.a.dickens@gmail.com
(Please use the mailing list rather than mailing developers directly)