History log of /openbsd-current/sys/dev/hid/hid.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.11 12-Aug-2023 miod

Better uwacom(4) support for Intuos S and One S tablets; most of the work
done by Vladimir Meshcheriakov (first name dot last name at epita somewhere in
frogland), thanks!

Tested by Peter J. Philipp on Intuos Draw and by espie@ on Intuos S.


Revision tags: OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.10 20-May-2022 anton

Rename hid_none to hid_all as it represents all possible hid kinds by
now.


Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
# 1.9 01-Sep-2021 anton

Add support for the more rare volume usage which differs compared to the
more common volume increment/decrement usages in which each volume
change direction is represented using a distinct usage. The volume usage
instead uses bits of the interrupt buffer to represent the wanted
volume. The same bits should be within the bounds given by the logical
min/max associated with the HID item. However, the volume is not
interpreted as an absolute value but rather just looking at the sign bit
in order to determine the volume change direction.

I couldn't find any documentation of this usage and the implementation is
therefore solely based on analysing actual data from Richard Toohey's
<richardjtoohey at gmail dot com> Dell keyboard.


# 1.8 20-Aug-2021 anton

add consumer control hid usages, will be used by ucc(4)


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.7 31-May-2020 jcs

add umstc(4) for Microsoft Surface Type Cover keyboards


Revision tags: OPENBSD_6_7_BASE
# 1.6 17-Dec-2019 reyk

Add fido(4), a HID driver for FIDO/U2F security keys

While FIDO/U2F keys were already supported by the generic uhid(4)
driver, this driver adds the first step to tighten the security of
FIDO/U2F access. Specifically, users don't need read/write access to
all USB/HID devices anymore and the driver also improves integration
with pledge(2) and unveil(2): It is pledge-friendly because it doesn't
require any ioctls to discover the device and unveil-friendly because
it uses a single /dev/fido/* directory for its device nodes.

It also allows to support FIDO/U2F in firefox without further
weakening the "sandbox" of the browser. Firefox does not have a
proper privsep design and many operations, such as U2F access, are
handled directly by the main process. This means that the browser's
"fat" main process needs direct read/write access to all USB HID
devices, at least on other operating systems. With fido(4) we can
support security keys in Firefox under OpenBSD without such a
compromise.

With this change, libfido2 stops using the ioctl to query the device
vendor/product and just assumes "OpenBSD" "fido(4)" instead. The
ioctl is still supported but there was no benefit in obtaining the
vendor product or name; it also allows to use libfido2 under pledge.

With feedback from deraadt@ and many others
OK kettenis@ djm@ and jmc@ for the manpage bits


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.10 20-May-2022 anton

Rename hid_none to hid_all as it represents all possible hid kinds by
now.


Revision tags: OPENBSD_7_0_BASE OPENBSD_7_1_BASE
# 1.9 01-Sep-2021 anton

Add support for the more rare volume usage which differs compared to the
more common volume increment/decrement usages in which each volume
change direction is represented using a distinct usage. The volume usage
instead uses bits of the interrupt buffer to represent the wanted
volume. The same bits should be within the bounds given by the logical
min/max associated with the HID item. However, the volume is not
interpreted as an absolute value but rather just looking at the sign bit
in order to determine the volume change direction.

I couldn't find any documentation of this usage and the implementation is
therefore solely based on analysing actual data from Richard Toohey's
<richardjtoohey at gmail dot com> Dell keyboard.


# 1.8 20-Aug-2021 anton

add consumer control hid usages, will be used by ucc(4)


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.7 31-May-2020 jcs

add umstc(4) for Microsoft Surface Type Cover keyboards


Revision tags: OPENBSD_6_7_BASE
# 1.6 17-Dec-2019 reyk

Add fido(4), a HID driver for FIDO/U2F security keys

While FIDO/U2F keys were already supported by the generic uhid(4)
driver, this driver adds the first step to tighten the security of
FIDO/U2F access. Specifically, users don't need read/write access to
all USB/HID devices anymore and the driver also improves integration
with pledge(2) and unveil(2): It is pledge-friendly because it doesn't
require any ioctls to discover the device and unveil-friendly because
it uses a single /dev/fido/* directory for its device nodes.

It also allows to support FIDO/U2F in firefox without further
weakening the "sandbox" of the browser. Firefox does not have a
proper privsep design and many operations, such as U2F access, are
handled directly by the main process. This means that the browser's
"fat" main process needs direct read/write access to all USB HID
devices, at least on other operating systems. With fido(4) we can
support security keys in Firefox under OpenBSD without such a
compromise.

With this change, libfido2 stops using the ioctl to query the device
vendor/product and just assumes "OpenBSD" "fido(4)" instead. The
ioctl is still supported but there was no benefit in obtaining the
vendor product or name; it also allows to use libfido2 under pledge.

With feedback from deraadt@ and many others
OK kettenis@ djm@ and jmc@ for the manpage bits


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.9 01-Sep-2021 anton

Add support for the more rare volume usage which differs compared to the
more common volume increment/decrement usages in which each volume
change direction is represented using a distinct usage. The volume usage
instead uses bits of the interrupt buffer to represent the wanted
volume. The same bits should be within the bounds given by the logical
min/max associated with the HID item. However, the volume is not
interpreted as an absolute value but rather just looking at the sign bit
in order to determine the volume change direction.

I couldn't find any documentation of this usage and the implementation is
therefore solely based on analysing actual data from Richard Toohey's
<richardjtoohey at gmail dot com> Dell keyboard.


# 1.8 20-Aug-2021 anton

add consumer control hid usages, will be used by ucc(4)


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.7 31-May-2020 jcs

add umstc(4) for Microsoft Surface Type Cover keyboards


Revision tags: OPENBSD_6_7_BASE
# 1.6 17-Dec-2019 reyk

Add fido(4), a HID driver for FIDO/U2F security keys

While FIDO/U2F keys were already supported by the generic uhid(4)
driver, this driver adds the first step to tighten the security of
FIDO/U2F access. Specifically, users don't need read/write access to
all USB/HID devices anymore and the driver also improves integration
with pledge(2) and unveil(2): It is pledge-friendly because it doesn't
require any ioctls to discover the device and unveil-friendly because
it uses a single /dev/fido/* directory for its device nodes.

It also allows to support FIDO/U2F in firefox without further
weakening the "sandbox" of the browser. Firefox does not have a
proper privsep design and many operations, such as U2F access, are
handled directly by the main process. This means that the browser's
"fat" main process needs direct read/write access to all USB HID
devices, at least on other operating systems. With fido(4) we can
support security keys in Firefox under OpenBSD without such a
compromise.

With this change, libfido2 stops using the ioctl to query the device
vendor/product and just assumes "OpenBSD" "fido(4)" instead. The
ioctl is still supported but there was no benefit in obtaining the
vendor product or name; it also allows to use libfido2 under pledge.

With feedback from deraadt@ and many others
OK kettenis@ djm@ and jmc@ for the manpage bits


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.8 20-Aug-2021 anton

add consumer control hid usages, will be used by ucc(4)


Revision tags: OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.7 31-May-2020 jcs

add umstc(4) for Microsoft Surface Type Cover keyboards


Revision tags: OPENBSD_6_7_BASE
# 1.6 17-Dec-2019 reyk

Add fido(4), a HID driver for FIDO/U2F security keys

While FIDO/U2F keys were already supported by the generic uhid(4)
driver, this driver adds the first step to tighten the security of
FIDO/U2F access. Specifically, users don't need read/write access to
all USB/HID devices anymore and the driver also improves integration
with pledge(2) and unveil(2): It is pledge-friendly because it doesn't
require any ioctls to discover the device and unveil-friendly because
it uses a single /dev/fido/* directory for its device nodes.

It also allows to support FIDO/U2F in firefox without further
weakening the "sandbox" of the browser. Firefox does not have a
proper privsep design and many operations, such as U2F access, are
handled directly by the main process. This means that the browser's
"fat" main process needs direct read/write access to all USB HID
devices, at least on other operating systems. With fido(4) we can
support security keys in Firefox under OpenBSD without such a
compromise.

With this change, libfido2 stops using the ioctl to query the device
vendor/product and just assumes "OpenBSD" "fido(4)" instead. The
ioctl is still supported but there was no benefit in obtaining the
vendor product or name; it also allows to use libfido2 under pledge.

With feedback from deraadt@ and many others
OK kettenis@ djm@ and jmc@ for the manpage bits


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.7 31-May-2020 jcs

add umstc(4) for Microsoft Surface Type Cover keyboards


Revision tags: OPENBSD_6_7_BASE
# 1.6 17-Dec-2019 reyk

Add fido(4), a HID driver for FIDO/U2F security keys

While FIDO/U2F keys were already supported by the generic uhid(4)
driver, this driver adds the first step to tighten the security of
FIDO/U2F access. Specifically, users don't need read/write access to
all USB/HID devices anymore and the driver also improves integration
with pledge(2) and unveil(2): It is pledge-friendly because it doesn't
require any ioctls to discover the device and unveil-friendly because
it uses a single /dev/fido/* directory for its device nodes.

It also allows to support FIDO/U2F in firefox without further
weakening the "sandbox" of the browser. Firefox does not have a
proper privsep design and many operations, such as U2F access, are
handled directly by the main process. This means that the browser's
"fat" main process needs direct read/write access to all USB HID
devices, at least on other operating systems. With fido(4) we can
support security keys in Firefox under OpenBSD without such a
compromise.

With this change, libfido2 stops using the ioctl to query the device
vendor/product and just assumes "OpenBSD" "fido(4)" instead. The
ioctl is still supported but there was no benefit in obtaining the
vendor product or name; it also allows to use libfido2 under pledge.

With feedback from deraadt@ and many others
OK kettenis@ djm@ and jmc@ for the manpage bits


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.6 17-Dec-2019 reyk

Add fido(4), a HID driver for FIDO/U2F security keys

While FIDO/U2F keys were already supported by the generic uhid(4)
driver, this driver adds the first step to tighten the security of
FIDO/U2F access. Specifically, users don't need read/write access to
all USB/HID devices anymore and the driver also improves integration
with pledge(2) and unveil(2): It is pledge-friendly because it doesn't
require any ioctls to discover the device and unveil-friendly because
it uses a single /dev/fido/* directory for its device nodes.

It also allows to support FIDO/U2F in firefox without further
weakening the "sandbox" of the browser. Firefox does not have a
proper privsep design and many operations, such as U2F access, are
handled directly by the main process. This means that the browser's
"fat" main process needs direct read/write access to all USB HID
devices, at least on other operating systems. With fido(4) we can
support security keys in Firefox under OpenBSD without such a
compromise.

With this change, libfido2 stops using the ioctl to query the device
vendor/product and just assumes "OpenBSD" "fido(4)" instead. The
ioctl is still supported but there was no benefit in obtaining the
vendor product or name; it also allows to use libfido2 under pledge.

With feedback from deraadt@ and many others
OK kettenis@ djm@ and jmc@ for the manpage bits


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.5 12-Sep-2016 mpi

Define for HUP_WACOM, missed in previous.


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE
# 1.4 20-Jan-2016 jcs

add hidmt, a HID-layer driver for multitouch touchpads that conform
to the "Windows Precision Touchpad" standard. when a compatible
device is found, hidmt claims all report ids and switches the device
into multitouch packet mode.

add imt, an i2c-HID driver that sits between ihidev and hidmt


# 1.3 20-Jan-2016 jcs

add hid_get_udata
code from FreeBSD, name from NetBSD


# 1.2 08-Jan-2016 jcs

protect structs in hid.h with #ifdef _KERNEL, to allow inclusion in
libusbhid


# 1.1 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi