<?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_dev</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="re55.html" title="struct usb_composite_driver" /><link rel="next" href="re57.html" title="usb_add_function" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span>struct usb_composite_dev</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re55.html">Prev</a> </td><th width="60%" align="center">Composite Device Framework</th><td width="20%" align="right"> <a accesskey="n" href="re57.html">Next</a></td></tr></table><hr /></div><div class="refentry" title="struct usb_composite_dev"><a id="API-struct-usb-composite-dev"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct usb_composite_dev — represents one composite usb gadget </p></div><div class="refsynopsisdiv" title="Synopsis"><h2>Synopsis</h2><pre class="programlisting"> struct usb_composite_dev { struct usb_gadget * gadget; struct usb_request * req; unsigned bufsiz; struct usb_configuration * config; }; </pre></div><div class="refsect1" title="Members"><a id="id2998790"></a><h2>Members</h2><div class="variablelist"><dl><dt><span class="term">gadget</span></dt><dd><p> read-only, abstracts the gadget's usb peripheral controller </p></dd><dt><span class="term">req</span></dt><dd><p> used for control responses; buffer is pre-allocated </p></dd><dt><span class="term">bufsiz</span></dt><dd><p> size of buffer pre-allocated in <em class="parameter"><code>req</code></em> </p></dd><dt><span class="term">config</span></dt><dd><p> the currently active configuration </p></dd></dl></div></div><div class="refsect1" title="Description"><a id="id2998852"></a><h2>Description</h2><p> One of these devices is allocated and initialized before the associated device driver's <code class="function">bind</code> is called. </p></div><div class="refsect1" title="OPEN ISSUE"><a id="id2998868"></a><h2>OPEN ISSUE</h2><p> it appears that some WUSB devices will need to be built by combining a normal (wired) gadget with a wireless one. This revision of the gadget framework should probably try to make sure doing that won't hurt too much. </p></div><div class="refsect1" title="One notion for how to handle Wireless USB devices involves"><a id="id2998882"></a><h2>One notion for how to handle Wireless USB devices involves</h2><p> (a) a second gadget here, discovery mechanism TBD, but likely needing separate <span class="quote">“<span class="quote">register/unregister WUSB gadget</span>”</span> calls; (b) updates to usb_gadget to include flags <span class="quote">“<span class="quote">is it wireless</span>”</span>, <span class="quote">“<span class="quote">is it wired</span>”</span>, plus (presumably in a wrapper structure) bandgroup and PHY info; (c) presumably a wireless_ep wrapping a usb_ep, and reporting wireless-specific parameters like maxburst and maxsequence; (d) configurations that are specific to wireless links; (e) function drivers that understand wireless configs and will support wireless for (additional) function instances; (f) a function to support association setup (like CBAF), not necessarily requiring a wireless adapter; (g) composite device setup that can create one or more wireless configs, including appropriate association setup support; (h) more, TBD. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re55.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03s05.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="re57.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span>struct usb_composite_driver</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span>usb_add_function</span></td></tr></table></div></body></html>