]> sigrok.org Git - libsigrok.git/commit
Fix FreeBSD issue with libusb_get_port_numbers()
authorUffe Jakobsen <redacted>
Thu, 22 Jan 2015 00:11:22 +0000 (01:11 +0100)
committerUwe Hermann <redacted>
Sun, 25 Jan 2015 22:36:29 +0000 (23:36 +0100)
commit19643b96e27cdeb84123fc91158b25a0d1a6368d
treec626a221b2faebee2c7b2eb60810526b30ef9f2d
parent7a8a1aba3797ed250f7b0e149ea4a6306be364b8
Fix FreeBSD issue with libusb_get_port_numbers()

Currently (as of date 20150122) an ioctl problem within the
FreeBSD kernel is preventing libusb_get_port_numbers() from working.
Hence calls to libusb_get_port_numbers() will always return 0.
This makes it impossible to establish a physical path the the usb device.

This problem has existed "forever" -
meaning that libusb_get_port_numbers() has never worked.

A fix is committed to FreeBSD "current" head  -
and will later be merged (MFC'ed) to maintenance branches.
See: https://svnweb.freebsd.org/base?view=revision&revision=277417

Additionally FreeBSD requires that devices prior to calling
libusb_get_port_numbers() have been opened with libusb_open().

The patch is "forwards-compatible".
Currently it acts specificly to libusb_get_port_numbers()
currently returning 0 on FreeBSD.
In these situations it constructs an artificial path to the device.
When FreeBSD kernels appears with proper working ioctl
supporting libusb_get_port_numbers() the code will construct
proper physical paths for newer kernels - while still generating
artificial physical paths for older defective kernels.
src/usb.c