History log of /freebsd-current/lib/libusbhid/parse.c
Revision Date Author Comments
# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


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

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

The SPDX folks have obsoleted the BSD-2-Clause-NetBSD 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


# eff81549 05-Jun-2020 Hans Petter Selasky <hselasky@FreeBSD.org>

USB HID descriptors may push/pop the current state to allow
description of items residing in a so-called union. FreeBSD currently
only supports 4 such pop levels.

If the push level is not restored within the processing of the same
HID item, an invalid memory location may be used for subsequent HID
item processing.

Verify that the push level is always valid when processing HID items.

Reported by: Andy Nguyen (Google)
MFC after: 3 days
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.


# ec9b9fbd 20-Sep-2012 Alexander Motin <mav@FreeBSD.org>

Restore handling of the third argument (id) of hid_start_parse(), same as
it is done in NetBSD/OpenBSD, and as it was here before r205728.

I personally think this API or its implementation is incorrect, as it is not
correct to filter collections based on report ID, as they are orthogonal
in general case, but I see no harm from supporting this feature.

PR: usb/171810
Submitted by: Vitaly Magerya <vmagerya@gmail.com>
MFC after: 1 month


# cff79d9e 16-May-2012 Alexander Motin <mav@FreeBSD.org>

HID Report ID is unsigned value, so clear the rest of bits from possible
sign expansion.


# 7778ab7e 28-Sep-2011 Alexander Motin <mav@FreeBSD.org>

MFprojects/hid:
Import the rest of HID improvements from the branch:
- improve report descriptor parser in libusbhid to handle several kinds of
reports same time;
- add to the libusbhid API two functions wrapping respective kernel IOCTLs
for reading and writing reports;
- tune uhid IOCTL interface to allow reading and writing arbitrary report,
when multiple supported by the device;
- teach usbhidctl to set output and feature reports;
- make usbhidaction support all the same item names as bhidctl.

Sponsored by: iXsystems, inc.


# 1bee2ec7 30-Jul-2011 Alexander Motin <mav@FreeBSD.org>

MFprojects/hid:
- Fix usbhidctl and usbhidaction to handle HID devices with multiple
report ids, such as multimedia keyboards.
- Add collection type and report id to the `usbhidctl -r` output. They
are important for proper device understanding and debugging.
- Fix usbhidaction tool to properly handle items having report_count
more then 1.

Approved by: re (kib)
MFC after: 2 weeks


# 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.


# 73f68b3d 18-May-2010 Kai Wang <kaiw@FreeBSD.org>

MFC r205728

Merge improvements from kernel HID parser to the userland usbhid(3)
parser. This merge does not change any API and should not break any
native or thirdparty applications.

Changes include:

* Merge multiple report ID support and other improvements from kernel
HID parser.
* Ignore rid argument in hid_start_parser, parse all the report items since
we now support multiple report ID.
* Skip report ID byte in hid_get_data() and set report ID byte in
hid_set_data(), if report ID is non-zero.
* Reimplement hid_get_report_id: instead get report id from uhid device
(which is always 0), try parsing the report descriptor and return the
first report ID encountered.

MFC r207812

hid_get_data() now expects that the hid data passed in always contains
the report ID byte. Thus we should not skip the the report ID byte in
hid_interrupt(). Also, if HUP_KEYBOARD usage is an array, do not try
to modify the 'data' pointer, instead, increase the hid_item_t field
'pos' by 'report_size' before calling hid_get_data() during each
iteration.


# cde58781 27-Mar-2010 Kai Wang <kaiw@FreeBSD.org>

Merge improvements from kernel HID parser to the userland usbhid(3)
parser. This merge does not change any API and should not break any
native or thirdparty applications.

Changes include:

* Merge multiple report ID support and other improvements from kernel
HID parser.
* Ignore rid argument in hid_start_parser, parse all the report items since
we now support multiple report ID.
* Skip report ID byte in hid_get_data() and set report ID byte in
hid_set_data(), if report ID is non-zero.
* Reimplement hid_get_report_id: instead get report id from uhid device
(which is always 0), try parsing the report descriptor and return the
first report ID encountered.

Reviewed by: hps
Silent on: -usb mailing list


# 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.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# e898d5ad 11-Feb-2004 Maksim Yevmenkin <emax@FreeBSD.org>

Do not cast dval.
Make global _usage_page unsigned.

Reviewed by: imp (mentor)


# 8f63fe01 27-Jan-2004 Maksim Yevmenkin <emax@FreeBSD.org>

The report size is not a local item, so don't clear it when clearing local items.

PR: misc/58971
Reviewed by: imp (mentor), mdodd
Obtained from: NetBSD


# cf0e07e5 08-Apr-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

Sync with NetBSD.

- Bump shared library version on libusbhid.
- Retire libusbhid.h; it is called usbhid.h now.
- hid_start_parse() takes a third argument.
- hid_locate() takes a fifth argument.
- hid_report_size() order of arguments changes.
- Other changes, including formatting and whitespace.

Bump __FreeBSD_version.

This change will break all third party applications that rely on previous
FreeBSD specific behavior.


# 234e6b87 06-Apr-2003 Matthew N. Dodd <mdodd@FreeBSD.org>

MF NetBSD:

- Reduce diffs with NetBSD.
- Formatting and explicit values for enum declaration.
- Order of prototypes.
- zero report_size in hid_clear_local()
- errx() needs no newline
- Don't initialie variable in declaration in hid_parse_usage_in_page().
- Use fmtcheck() in hid_usage_in_page().


# 5450b5b0 28-Mar-2002 Josef Karthauser <joe@FreeBSD.org>

Finish the libusb.h -> libusbhid.h migration.

MFC after: 7 days


# 209040d8 30-Sep-2001 Matthew Dillon <dillon@FreeBSD.org>

Add __FBSDID()s to libusb


# b425e319 16-Oct-2000 Nick Hibma <n_hibma@FreeBSD.org>

Sync with NetBSD:

K&R -> ANSI

Bugfix: 'Keep the bit position even when the report descriptor says POP.'

Add hid_use_report_desc, hid_parse_usage_page, hid_parse_usage_in_page.

Changed iface for hid_report_size.


# 96102cae 07-Jul-2000 Nick Hibma <n_hibma@FreeBSD.org>

Remove DIAGASSERT


# 9e2046df 11-Jun-2000 Nick Hibma <n_hibma@FreeBSD.org>

The USB library from NetBSD by Lennart Augustsson <lennart@augustsson.net>.