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)
       interfaces 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 mean-
	       ing  of	data  to/from the device can be	found.	The report de-
	       scriptor	is delivered 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
	       current	value  of  the	input report.  Normally	a read(2) will
	       only return 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
	       interrupt  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 indicates	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 indi-
	       cates  which   report   is   to	 be   set.    It   should   be
	       UHID_INPUT_REPORT,  UHID_OUTPUT_REPORT, or UHID_FEATURE_REPORT.
	       The value of the	report 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	13.2			 Oct 31, 2020			       UHID(4)

NAME | SYNOPSIS | DESCRIPTION | SYSCTL VARIABLES | FILES | SEE ALSO | HISTORY

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

home | help