HID(4D) Devices HID(4D)
NAME
hid - Human interface device (HID) class driver
SYNOPSIS
keyboard@unit-address mouse@unit-address input@unit-address:consumer_control #include <sys/usb/clients/hid/hid.h> int ioctl(int fildes, int command, ... /*arg*/);DESCRIPTION
The
hid driver is a USBA (Solaris USB Architecture) compliant client
driver that supports the
Human Interface Device Class (HID) 1.0 specification. The Human Interface Device (HID) class encompasses
devices controlled by humans to operate computer systems. Typical
examples of HID devices include keyboards, mice, trackballs, and
joysticks. HID also covers front-panel controls such as knobs,
switches, and buttons. A USB device with multiple interfaces may have
one interface for audio and a HID interface to define the buttons
that control the audio.
The
hid driver is general and primarily handles the USB functionality
of the device and generic HID functionality. For example, HID
interfaces are required to have an interrupt pipe for the device to
send data packets, and the
hid driver opens the pipe to the interrupt
endpoint and starts polling. The
hid driver is also responsible for
managing the device through the default control pipe. In addition to
being a USB client driver, the
hid driver is also a STREAMS driver so
that modules may be pushed on top of it.
The HID specification is flexible, and HID devices dynamically
describe their packets and other parameters through a HID report
descriptor. The HID parser is a misc module that parses the HID
report descriptor and creates a database of information about the
device. The
hid driver queries the HID parser to find out the type
and characteristics of the HID device. The HID specification
predefines packet formats for the boot protocol keyboard and mouse.
IOCTLS
HIDIOCKMGDIRECT This ioctl should only be addressed to a USB
keyboard or mouse device. The
hid driver maintains
two streams for each USB keyboard/mouse instance:
an internal one for the use of the kernel and an
external one for the use of user applications.
This ioctl returns the information of which stream
gets the input for the moment.
arg must point to a variable of
int type. Upon
return,
0 means the internal stream gets the
input,
1 means the external stream gets the input.
HIDIOCKMSDIRECT This ioctl should only be addressed to a USB
keyboard or mouse device. The hid driver maintains
two streams for each USB keyboard/mouse instance:
an internal one for the use of the kernel and an
external one for the use of user applications.
This ioctl sets which stream should get the input
for the moment.
arg must point to a variable of
int type. The
argument
0 means the internal stream gets the
input,
1 means the external stream gets the input.
FILES
/kernel/drv/amd64/hid 64-bit x86 ELF kernel hid module
/kernel/drv/sparcv9/hid 64-bit SPARC ELF kernel hid module
/kernel/misc/amd64/hidparser 64-bit x86 ELF kernel hidparser module
/kernel/misc/sparcv9/hidparser 64-bit SPARC ELF kernel hidparser module
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------+-------------------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-------------------------------+
|Architecture | SPARC, x86, PCI-based systems |
+---------------+-------------------------------+
SEE ALSO
usba(4D),
virtualkm(4D),
attributes(7),
cfgadm_usb(8) Writing Device Drivers STREAMS Programming Guide Universal Serial Bus Specification 1.0 and 1.1 Device Class Definition for Human Interface Devices (HID) 1.1 System Administration Guide: Basic AdministrationDIAGNOSTICS
hid_attach: Unsupported HID device. The device requires a protocol not supported by the hid driver.
Parsing of hid descriptor failed. The HID report descriptor cannot be parsed correctly. The device
cannot be supported by the hid driver.
Invalid report descriptor. The HID report descriptor is invalid. The device cannot be
supported by the hid driver.
The following messages may be logged into the system log. They are
formatted in the following manner:
<device path><hid<instance number>): message...
hid_attach: Unsupported HID device. The device cannot be supported by this version of the HID driver.
Parsing of HID descriptor failed. The device cannot be supported by this version of the HID driver.
Invalid report descriptor. The device cannot be supported by this version of the HID driver.
NOTES
The hid driver currently supports only keyboard, mouse and audio HID
control devices.
Normally a mouse is not power managed and consequently, screen
darkening can be undone with a mouse movement. If power management of
the mouse is required, add the following line to
hid.conf then reboot
the system:
hid-mouse-pm-enable;
Modern mice that are power managed require a 'click' to wake up.
Occasionally, this may cause unexpected results.
June 19, 2021 HID(4D)