History log of /freebsd-current/lib/libusb/libusb10_io.c
Revision Date Author Comments
# 2a63c3be 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c comment pattern

Remove /^/[*/]\s*\$FreeBSD\$.*\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 6847ea50 11-Jun-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

Improve handling of USB device re-open in the LibUSB v1.x API.

Make sure the "device_is_gone" flag is cleared after every successful open,
so that the "device_is_gone" flag doesn't persist forever.

Found by: sergii.dmytruk@3mdeb.com
PR: 256296
MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 26829924 28-Sep-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

When multiple threads are involved receiving completion events in LibUSB
make sure there is always a master polling thread, by setting the "ctx_handler"
field in the context. Else the reception of completion events can stop.
This happens if event threads are created and destroyed during runtime.

Found by: Ludovic Rousseau <ludovic.rousseau+freebsd@gmail.com>
PR: 231742
MFC after: 1 week
Approved by: re (kib)
Sponsored by: Mellanox Technologies


# 5b21ba5c 14-Sep-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Improve LibUSB debugging by simultaneously allowing both function
and transfer prints. Make sure the debug level comes from the
correct USB context.

Found by: Ludovic Rousseau <ludovic.rousseau+freebsd@gmail.com>
PR: 231264
MFC after: 1 week
Approved by: re (kib)
Sponsored by: Mellanox Technologies


# 540c7229 12-Sep-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix issues about cancelling USB transfers in LibUSB when the USB device has
been detached. When a USB device has been detached the kernel file handle
stops responding to commands. USB applications which continue to run after
the USB device has been detached, depend on LibUSB generated events to tear
down its pending USB transfers. Add code to handle the needed cleanup when
processing the USB transfer(s) fails and prevent new USB transfer(s) from
being submitted.

Found by: Ludovic Rousseau <ludovic.rousseau+freebsd@gmail.com>
PR: 231076
MFC after: 1 week
Approved by: re (gjb)
Sponsored by: Mellanox Technologies


# 5e53a4f9 25-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

lib: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using mis-identified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# a0c93fa3 23-Jun-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

Add support for USB streams to the LibUSB v1.0 API and update the
libusb(3) manual page.

Approved by: re (gjb)
Requested by: swills
MFC after: 1 week


# 03205428 05-Jan-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

Implement two new libusb API functions.

PR: usb/185454
MFC after: 2 weeks


# 22a962c9 07-May-2013 Ed Maste <emaste@FreeBSD.org>

Constify libusb_get_pollfds return

The correct return type, per our libusb(3) man page and the libusb.org
and libusbx projects (whose interface we intend to follow for our libusb),
is const struct libusb_pollfd **.

Unfortunately the doxygen-generated libusbx API documentation[1] omits[2]
the const for some reason.

[1] http://libusbx.sourceforge.net/api-1.0/group__poll.html#gab1a72869a926552b27a6c667695df3a2

[2] http://sourceforge.net/mailarchive/forum.php?thread_name=497D10BE.8090007%40n-dimensional.de&forum_name=libusb-devel

Reviewed by: hselasky@


# 66194130 12-Mar-2013 Hans Petter Selasky <hselasky@FreeBSD.org>

- Make the FreeBSD's USB library compile under Linux.
- Fix a compile warning where the return value of a call
to a write() function was ignored.
- Remove redundant include files from userland USB header files.
- Add some now needed include files to various C-files.


# f7287225 12-Jun-2012 Hans Petter Selasky <hselasky@FreeBSD.org>

LibUSB v1.0 API compiliance and bugfixes.

- Use CLOCK_MONOTONIC instead of CLOCK_REALTIME, because CLOCK_MONOTONIC
does not wrap into negative in near future. This fixes any potential
problems using "pthread_cond_timedwait()".

- Fix a bug where the "libusb_wait_for_event()" function computes an
absolute timeout instead of a relative timeout. USB transfers do
not depend on this timeout value.

- Add dependency towards LibPthread to Makefile, because LibUSB v1.0
needs this library to function correctly.

MFC after: 1 week


# d81535d1 20-Apr-2012 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix some compile warnings.

MFC after: 1 week


# 31f7072c 13-Nov-2010 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix LibUSB v1.0 compliancy.

1) We need to allow the USB callback to free the USB transfer itself.
2) The USB transfer buffer should only be automatically freed when
freeing the USB transfer.

Fixed by: hselasky
Submitted by: Gustau Perez i Querol
Approved by: thompsa (mentor)


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# a1221549 14-Oct-2010 Hans Petter Selasky <hselasky@FreeBSD.org>

- Fix some compile warnings regarding comparing signed to unsigned.

Approved by: thompsa (mentor)


# 005044bd 17-May-2010 Andrew Thompson <thompsa@FreeBSD.org>

MFC r208020

Fix header file compliancy with libusb 1.0 from sourceforge.


# 9c087c5a 12-May-2010 Andrew Thompson <thompsa@FreeBSD.org>

Fix header file compliancy with libusb 1.0 from sourceforge.

Reported by: Xiaofan Chen
Submitted by: Hans Petter Selasky


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# f3cba95c 13-Feb-2010 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Resort includes to match style(9) a bit more. No functional change
is expected after this commit.

Tested by: make buildworld
Reviewed by: hps (patch without .h changes)


# d426c025 11-Feb-2010 Wojciech A. Koszek <wkoszek@FreeBSD.org>

Remove redundand headers and use more standard ones where necessary.

Reviewed by: hps@


# 1110a460 10-Nov-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r199055

- fix refcounting error during data transfer
- fix a memory leak on the USB backend
- fix invalid pointer computations (in one case memory outside the allocated
area was written in LibUSB v1.0)
- make sure memory is always initialised, also in failing cases
- add missing functions from v1.0.4

PR: usb/140325


# ccef4ddf 08-Nov-2009 Andrew Thompson <thompsa@FreeBSD.org>

- fix refcounting error during data transfer
- fix a memory leak on the USB backend
- fix invalid pointer computations (in one case memory outside the allocated
area was written in LibUSB v1.0)
- make sure memory is always initialised, also in failing cases
- add missing functions from v1.0.4

PR: usb/140325
Reported by: Robert Jenssen
Submitted by: Hans Petter Selasky
MFC After: 3 days


# 390065b1 29-Jul-2009 Alfred Perlstein <alfred@FreeBSD.org>

LibUSB v1.0:

- Significantly improve libusb10 support.
- Many minor issues fixed.
- P4 ID: 166189, 165853, 165991, 166052, 166069

Submitted by: hps
Approved by: re


# c500e4dd 10-Jul-2009 Andrew Thompson <thompsa@FreeBSD.org>

Sync the libusb 1.0 exported api to the latest GSoC code.

- Fix possible uninitialised variables and null derefs
- Support big transfers
- Various bug fixes and style changes

Submitted by: Sylvestre Gallon
Sponsored by: Google Summer of Code 2009
Approved by: re (kib)


# 8c8fff31 22-Jun-2009 Andrew Thompson <thompsa@FreeBSD.org>

Add files missed in r194674.

Add libusb 1.0 support which is compatible with the latest revision on
Sourceforge. Libusb 1.0 is a portable usb api released December 2008 and
supersedes the original libusb released 10 years ago, it supports isochronous
endpoints and asynchronous I/O. Many applications have already started using
the interfaces.

This has been developed as part of Google Summer of Code this year by Sylvestre
Gallon and has been cribbed early due to it being desirable in FreeBSD 8.0

Submitted by: Sylvestre Gallon
Sponsored by: Google Summer of Code 2009
Reviewed by: Hans Petter Selasky