Solaris: fails to find USB devices on SPARC platform
authorKenjiro Tsuji <kenjiro.tsuji@oracle.com>
Thu, 26 Sep 2019 00:11:12 +0000 (17:11 -0700)
committerNathan Hjelm <hjelmn@google.com>
Thu, 26 Sep 2019 17:44:39 +0000 (11:44 -0600)
commit8b04a5510f541306e37ad8cfa83984f913fa08d1
tree6e9000e8f088db394c08f63fd2db5067cf186176
parenta45730f4339d5d6391757ee2d4c2f86b8411de5f
Solaris: fails to find USB devices on SPARC platform

On SPARC platform, libusb fails to find USB devices. sunos_fill_in_dev_info()
reads the usb-dev-descriptor property and stores idVendor and idProduct to
the dev_sesc structure in little endian.  However, when creating a device name
for 'match_str' to be specified to sunos_physpath_to_devlink(), it's using the
idVendor and idProduct in dev_descr as is without converting them to the host
endian, that is big endian for SPARC.  As a result, 'match_str' has a wrong
device name and sunos_physpath_to_devlink() fails to find the device path
corresponding to the USB device. idVendor and idProduct need to be converted
to the host endian when creating 'match_str'.
This is a fix for #587.

Closes #628

Signed-off-by: Nathan Hjelm <hjelmn@google.com>
libusb/os/sunos_usb.c
libusb/version_nano.h