Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
UHID(4) 		     Kernel Interfaces Manual			 UHID(4)

NAME
     uhid -- USB generic HID support

SYNOPSIS
     To compile this driver into the kernel, place the following line in your
     kernel configuration file:

	   device uhid
	   device hid
	   device usb

     Alternatively, to load the driver as a module at boot time, place the
     following line in loader.conf(5):

	   uhid_load="YES"

DESCRIPTION
     The  uhid	driver provides support for all HID (Human Interface Device) in-
     terfaces in USB devices that do not have a special driver.

     The device handles the following ioctl(2) calls:

     USB_GET_REPORT_ID (int)
	     Get the report identifier used by this HID report.

     USB_GET_REPORT_DESC (struct usb_gen_descriptor)
	     Get the HID report descriptor.   Copies  a  maximum  of  ugd_maxlen
	     bytes  of	the  report descriptor data into the memory specified by
	     ugd_data.	Upon return ugd_actlen is set to  the  number  of  bytes
	     copied.  Using this descriptor the exact layout and meaning of data
	     to/from  the  device can be found.  The report descriptor is deliv-
	     ered without any processing.

	     struct usb_gen_descriptor {
		     void   *ugd_data;
		     uint16_t ugd_maxlen;
		     uint16_t ugd_actlen;
		     uint8_t ugd_report_type;
		     ...
	     };

     USB_SET_IMMED (int)
	     Sets the device in a mode where each read(2) will return  the  cur-
	     rent  value  of the input report.	Normally a read(2) will only re-
	     turn the data that the device reports on its interrupt pipe.   This
	     call may fail if the device does not support this feature.

     USB_GET_REPORT (struct usb_gen_descriptor)
	     Get a report from the device without waiting for data on the inter-
	     rupt pipe.  Copies a maximum of ugd_maxlen bytes of the report data
	     into  the	memory specified by ugd_data.  Upon return ugd_actlen is
	     set to the number of bytes copied.  The ugd_report_type field indi-
	     cates which report is requested.  It should  be  UHID_INPUT_REPORT,
	     UHID_OUTPUT_REPORT,  or UHID_FEATURE_REPORT.  This call may fail if
	     the device does not support this feature.

     USB_SET_REPORT (struct usb_gen_descriptor)
	     Set a report in the device.  The  ugd_report_type	field  indicates
	     which  report  is	to  be	set.   It  should  be UHID_INPUT_REPORT,
	     UHID_OUTPUT_REPORT, or UHID_FEATURE_REPORT.  The value of	the  re-
	     port  is specified by the ugd_data and the ugd_maxlen fields.  This
	     call may fail if the device does not support this feature.

     USB_GET_DEVICEINFO (struct usb_device_info)
	     Returns information about the device, like USB vendor  ID	and  USB
	     product  ID.   This call will not issue any USB transactions.  Also
	     refer to ugen(4).

     Use read(2) to get data from the device.  Data should be read in chunks  of
     the size prescribed by the report descriptor.

     Use  write(2) to send data to the device.	Data should be written in chunks
     of the size prescribed by the report descriptor.

SYSCTL VARIABLES
     The following variables are  available  as  both  sysctl(8)  variables  and
     loader(8) tunables:

     hw.usb.uhid.debug
	     Debug output level, where 0 is debugging disabled and larger values
	     increase debug message verbosity.	Default is 0.

FILES
     /dev/uhid?

SEE ALSO
     usbhidctl(1), usb(4)

HISTORY
     The  uhid driver appeared in NetBSD 1.4.  This manual page was adopted from
     NetBSD by Tom Rhodes <trhodes@FreeBSD.org> in April 2002.

FreeBSD ports 15.quarterly	  Oct 31, 2020				 UHID(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=uhid&sektion=4&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help