HID(7D)HID(7D)NAME
hid - Human interface device (HID) class driver
SYNOPSIS
keyboard@unit-address
mouse@unit-address
input@unit-address:consumer_control
#include <sys/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 speci‐
fication. 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 inter‐
faces are required to have an interrupt pipe for the device to send
data packets, and the hid driver opens the pipe to the interrupt end‐
point and starts polling. The hid driver is also responsible for man‐
aging 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 key‐
board 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 exter‐
nal 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 key‐
board 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 exter‐
nal 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 argu‐
ment 0 means the internal stream gets the input, 1
means the external stream gets the input.
FILES
/kernel/drv/hid
32-bit x86 ELF kernel hid module
/kernel/drv/amd64/hid
64-bit x86 ELF kernel hid module
/kernel/drv/sparcv9/hid
64-bit SPARC ELF kernel hid module
/kernel/misc/hidparser
32-bit x86 ELF kernel hidparser 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(5) for descriptions of the following attributes:
┌───────────────┬───────────────────────────────┐
│ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├───────────────┼───────────────────────────────┤
│Architecture │ SPARC, x86, PCI-based systems │
└───────────────┴───────────────────────────────┘
SEE ALSOcfgadm_usb(1M), attributes(5), usba(7D), virtualkm(7D)
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 Administration
http://www.sun.com
DIAGNOSTICS
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 sup‐
ported by the hid driver.
The following messages may be logged into the system log. They are for‐
matted 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 consquently, 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. Occa‐
sionally, this may cause unexpected results.
Aug 21, 2009 HID(7D)