commit | bb3773090883409865a40e97a8cabb531fa00683 | [log] [tgz] |
---|---|---|
author | Igor Anokhin <igr.anokhin@gmail.com> | Wed Apr 15 13:47:51 2020 +0300 |
committer | Nathan Hjelm <hjelmn@google.com> | Fri Jun 12 09:58:34 2020 -0600 |
tree | 0e420f6e5020892f48fe1247bb27df1e05695531 | |
parent | d55b2fdafb31f1c85a611f9c5438d47a54535a59 [diff] |
os/darwin: use IOUSBDevice as darwin_device_class explicitly kIOUSBDeviceClassName define from IOUSBLib.h file was changed from IOUSBDevice to IOUSBHostDevice in macOS Catalina. In previous macOS versions, it was always defined as IOUSBDevice: ``` #define kIOUSBDeviceClassName "IOUSBDevice" ``` In macOS Catalina it looks as follows: ``` #if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_14 #define kIOUSBDeviceClassName "IOUSBDevice" #define kIOUSBInterfaceClassName "IOUSBInterface" #else #define kIOUSBDeviceClassName kIOUSBHostDeviceClassName #define kIOUSBInterfaceClassName kIOUSBHostInterfaceClassName #endif /* MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_14 */ ``` By default, macOS Catalina uses IOUSBHostDevice. The problem is that using the IOUSBHostDevice class misses some devices. This has been described in 044a7ee commit. To work only with IOUSBDevice, darwin_device_class has been explicitly set to IOUSBDevice. Closes #693 For reference, here's the output of the 'listdevs' example before my changes: 05ac:027b (bus 128, device 2) path: 5 2109:0102 (bus 20, device 6) path: 4 05e3:0751 (bus 20, device 5) path: 1 1a40:0801 (bus 20, device 3) path: 2 0bda:8153 (bus 0, device 2) path: 3 2109:2817 (bus 20, device 1) path: 8 2109:0817 (bus 0, device 1) path: 4 And here's the output after my changes: 05ac:027b (bus 128, device 2) path: 5 2109:0102 (bus 20, device 6) path: 3.2.4 05e3:0751 (bus 20, device 5) path: 3.2.1 1a40:0801 (bus 20, device 3) path: 3.2 0bda:8153 (bus 0, device 2) path: 2.3 2109:2817 (bus 20, device 1) path: 3 2109:0817 (bus 0, device 1) path: 2 Closes #712 Signed-off-by: Nathan Hjelm <hjelmn@google.com>
libusb is a library for USB device access from Linux, macOS, Windows, OpenBSD/NetBSD, Haiku and Solaris userspace. 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: http://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
(Please use the mailing list rather than mailing developers directly)