Sophie

Sophie

distrib > CentOS > 6 > i386 > by-pkgid > cf93d8a8acdcc6fe2225039da0502495 > files > 1423

kernel-doc-2.6.32-131.17.1.el6.centos.plus.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>struct usb_composite_driver</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /><link rel="home" href="index.html" title="USB Gadget API for Linux" /><link rel="up" href="ch03s05.html" title="Composite Device Framework" /><link rel="prev" href="re54.html" title="struct usb_configuration" /><link rel="next" href="re56.html" title="struct usb_composite_dev" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>struct usb_composite_driver</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re54.html">Prev</a>&#160;</td><th width="60%" align="center">Composite Device Framework</th><td width="20%" align="right">&#160;<a accesskey="n" href="re56.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="struct usb_composite_driver"><a id="API-struct-usb-composite-driver"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct usb_composite_driver &#8212; 
     groups configurations into a gadget
 </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><pre class="programlisting">
struct usb_composite_driver {
  const char * name;
  const struct usb_device_descriptor * dev;
  struct usb_gadget_strings ** strings;
  int (* bind) (struct usb_composite_dev *);
  int (* unbind) (struct usb_composite_dev *);
  void (* suspend) (struct usb_composite_dev *);
  void (* resume) (struct usb_composite_dev *);
};  </pre></div><div class="refsect1" title="Members"><a id="id2945178"></a><h2>Members</h2><div class="variablelist"><dl><dt><span class="term">name</span></dt><dd><p>
   For diagnostics, identifies the driver.
      </p></dd><dt><span class="term">dev</span></dt><dd><p>
   Template descriptor for the device, including default device
   identifiers.
      </p></dd><dt><span class="term">strings</span></dt><dd><p>
   tables of strings, keyed by identifiers assigned during <code class="function">bind</code>
   and language IDs provided in control requests
      </p></dd><dt><span class="term">bind</span></dt><dd><p>
   (REQUIRED) Used to allocate resources that are shared across the
   whole device, such as string IDs, and add its configurations using
   <em class="parameter"><code>usb_add_config</code></em>().  This may fail by returning a negative errno
   value; it should return zero on successful initialization.
      </p></dd><dt><span class="term">unbind</span></dt><dd><p>
   Reverses <em class="parameter"><code>bind</code></em>(); called as a side effect of unregistering
   this driver.
      </p></dd><dt><span class="term">suspend</span></dt><dd><p>
   Notifies when the host stops sending USB traffic,
   after function notifications
      </p></dd><dt><span class="term">resume</span></dt><dd><p>
   Notifies configuration when the host restarts USB traffic,
   before function notifications
      </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2945292"></a><h2>Description</h2><p>
   Devices default to reporting self powered operation.  Devices which rely
   on bus powered operation should report this in their <em class="parameter"><code>bind</code></em>() method.
   </p><p>

   Before returning from <em class="parameter"><code>bind</code></em>, various fields in the template descriptor
   may be overridden.  These include the idVendor/idProduct/bcdDevice values
   normally to bind the appropriate host side driver, and the three strings
   (iManufacturer, iProduct, iSerialNumber) normally used to provide user
   meaningful device identifiers.  (The strings will not be defined unless
   they are defined in <em class="parameter"><code>dev</code></em> and <em class="parameter"><code>strings</code></em>.)  The correct ep0 maxpacket size
   is also reported, as defined by the underlying controller driver.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re54.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch03s05.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="re56.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>struct usb_configuration</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>struct usb_composite_dev</span></td></tr></table></div></body></html>