1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;4.&#160;Host-Side Data Types and Macros</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The Linux-USB Host Side API"><link rel="up" href="index.html" title="The Linux-USB Host Side API"><link rel="prev" href="API-usb-state-string.html" title="usb_state_string"><link rel="next" href="API-struct-usb-host-endpoint.html" title="struct usb_host_endpoint"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&#160;4.&#160;Host-Side Data Types and Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-usb-state-string.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-struct-usb-host-endpoint.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="hostside"></a>Chapter&#160;4.&#160;Host-Side Data Types and Macros</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="refentrytitle"><a href="API-struct-usb-host-endpoint.html"><span class="phrase">struct usb_host_endpoint</span></a></span><span class="refpurpose"> &#8212; 
2  host-side endpoint descriptor and queue
3 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-interface.html"><span class="phrase">struct usb_interface</span></a></span><span class="refpurpose"> &#8212; 
4     what usb device drivers talk to
5 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-interface-cache.html"><span class="phrase">struct usb_interface_cache</span></a></span><span class="refpurpose"> &#8212; 
6     long-term representation of a device interface
7 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-host-config.html"><span class="phrase">struct usb_host_config</span></a></span><span class="refpurpose"> &#8212; 
8     representation of a device's configuration
9 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-device.html"><span class="phrase">struct usb_device</span></a></span><span class="refpurpose"> &#8212; 
10     kernel's representation of a USB device
11 </span></dt><dt><span class="refentrytitle"><a href="API-usb-hub-for-each-child.html"><span class="phrase">usb_hub_for_each_child</span></a></span><span class="refpurpose"> &#8212; 
12     iterate over all child devices on the hub
13 </span></dt><dt><span class="refentrytitle"><a href="API-usb-interface-claimed.html"><span class="phrase">usb_interface_claimed</span></a></span><span class="refpurpose"> &#8212; 
14     returns true iff an interface is claimed
15 </span></dt><dt><span class="refentrytitle"><a href="API-usb-make-path.html"><span class="phrase">usb_make_path</span></a></span><span class="refpurpose"> &#8212; 
16     returns stable device path in the usb tree
17 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE.html"><span class="phrase">USB_DEVICE</span></a></span><span class="refpurpose"> &#8212; 
18     macro used to describe a specific usb device
19 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE-VER.html"><span class="phrase">USB_DEVICE_VER</span></a></span><span class="refpurpose"> &#8212; 
20     describe a specific usb device with a version range
21 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE-INTERFACE-CLASS.html"><span class="phrase">USB_DEVICE_INTERFACE_CLASS</span></a></span><span class="refpurpose"> &#8212; 
22     describe a usb device with a specific interface class
23 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE-INTERFACE-PROTOCOL.html"><span class="phrase">USB_DEVICE_INTERFACE_PROTOCOL</span></a></span><span class="refpurpose"> &#8212; 
24     describe a usb device with a specific interface protocol
25 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE-INTERFACE-NUMBER.html"><span class="phrase">USB_DEVICE_INTERFACE_NUMBER</span></a></span><span class="refpurpose"> &#8212; 
26     describe a usb device with a specific interface number
27 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE-INFO.html"><span class="phrase">USB_DEVICE_INFO</span></a></span><span class="refpurpose"> &#8212; 
28     macro used to describe a class of usb devices
29 </span></dt><dt><span class="refentrytitle"><a href="API-USB-INTERFACE-INFO.html"><span class="phrase">USB_INTERFACE_INFO</span></a></span><span class="refpurpose"> &#8212; 
30     macro used to describe a class of usb interfaces
31 </span></dt><dt><span class="refentrytitle"><a href="API-USB-DEVICE-AND-INTERFACE-INFO.html"><span class="phrase">USB_DEVICE_AND_INTERFACE_INFO</span></a></span><span class="refpurpose"> &#8212; 
32     describe a specific usb device with a class of usb interfaces
33 </span></dt><dt><span class="refentrytitle"><a href="API-USB-VENDOR-AND-INTERFACE-INFO.html"><span class="phrase">USB_VENDOR_AND_INTERFACE_INFO</span></a></span><span class="refpurpose"> &#8212; 
34     describe a specific usb vendor with a class of usb interfaces
35 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usbdrv-wrap.html"><span class="phrase">struct usbdrv_wrap</span></a></span><span class="refpurpose"> &#8212; 
36     wrapper for driver-model structure
37 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-driver.html"><span class="phrase">struct usb_driver</span></a></span><span class="refpurpose"> &#8212; 
38     identifies USB interface driver to usbcore
39 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-device-driver.html"><span class="phrase">struct usb_device_driver</span></a></span><span class="refpurpose"> &#8212; 
40     identifies USB device driver to usbcore
41 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-class-driver.html"><span class="phrase">struct usb_class_driver</span></a></span><span class="refpurpose"> &#8212; 
42     identifies a USB driver that wants to use the USB major number
43 </span></dt><dt><span class="refentrytitle"><a href="API-module-usb-driver.html"><span class="phrase">module_usb_driver</span></a></span><span class="refpurpose"> &#8212; 
44     Helper macro for registering a USB driver
45 </span></dt><dt><span class="refentrytitle"><a href="API-struct-urb.html"><span class="phrase">struct urb</span></a></span><span class="refpurpose"> &#8212; 
46     USB Request Block
47 </span></dt><dt><span class="refentrytitle"><a href="API-usb-fill-control-urb.html"><span class="phrase">usb_fill_control_urb</span></a></span><span class="refpurpose"> &#8212; 
48     initializes a control urb
49 </span></dt><dt><span class="refentrytitle"><a href="API-usb-fill-bulk-urb.html"><span class="phrase">usb_fill_bulk_urb</span></a></span><span class="refpurpose"> &#8212; 
50     macro to help initialize a bulk urb
51 </span></dt><dt><span class="refentrytitle"><a href="API-usb-fill-int-urb.html"><span class="phrase">usb_fill_int_urb</span></a></span><span class="refpurpose"> &#8212; 
52     macro to help initialize a interrupt urb
53 </span></dt><dt><span class="refentrytitle"><a href="API-usb-urb-dir-in.html"><span class="phrase">usb_urb_dir_in</span></a></span><span class="refpurpose"> &#8212; 
54     check if an URB describes an IN transfer
55 </span></dt><dt><span class="refentrytitle"><a href="API-usb-urb-dir-out.html"><span class="phrase">usb_urb_dir_out</span></a></span><span class="refpurpose"> &#8212; 
56     check if an URB describes an OUT transfer
57 </span></dt><dt><span class="refentrytitle"><a href="API-struct-usb-sg-request.html"><span class="phrase">struct usb_sg_request</span></a></span><span class="refpurpose"> &#8212; 
58     support for scatter/gather I/O
59 </span></dt></dl></div><p>The host side API exposes several layers to drivers, some of
60    which are more necessary than others.
61    These support lifecycle models for host side drivers
62    and devices, and support passing buffers through usbcore to
63    some HCD that performs the I/O for the device driver.
64    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-usb-state-string.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="API-struct-usb-host-endpoint.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">usb_state_string</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">struct usb_host_endpoint</span></td></tr></table></div></body></html>
65