1
0

a00099.html 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Lightweight USB stack: USB Standard</title>
  9. <link href="../../tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="../../jquery.js"></script>
  11. <script type="text/javascript" src="../../dynsections.js"></script>
  12. <link href="../../navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="../../resize.js"></script>
  14. <script type="text/javascript" src="../../navtreedata.js"></script>
  15. <script type="text/javascript" src="../../navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. </script>
  19. <link href="../../search/search.css" rel="stylesheet" type="text/css"/>
  20. <script type="text/javascript" src="../../search/searchdata.js"></script>
  21. <script type="text/javascript" src="../../search/search.js"></script>
  22. <link href="../../doxygen.css" rel="stylesheet" type="text/css" />
  23. </head>
  24. <body>
  25. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  26. <div id="titlearea">
  27. <table cellspacing="0" cellpadding="0">
  28. <tbody>
  29. <tr style="height: 56px;">
  30. <td id="projectalign" style="padding-left: 0.5em;">
  31. <div id="projectname">Lightweight USB stack
  32. &#160;<span id="projectnumber">1.0</span>
  33. </div>
  34. </td>
  35. </tr>
  36. </tbody>
  37. </table>
  38. </div>
  39. <!-- end header part -->
  40. <!-- Generated by Doxygen 1.8.13 -->
  41. <script type="text/javascript">
  42. var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
  43. </script>
  44. <script type="text/javascript" src="../../menudata.js"></script>
  45. <script type="text/javascript" src="../../menu.js"></script>
  46. <script type="text/javascript">
  47. $(function() {
  48. initMenu('../../',true,false,'search.php','Search');
  49. $(document).ready(function() { init_search(); });
  50. });
  51. </script>
  52. <div id="main-nav"></div>
  53. </div><!-- top -->
  54. <div id="side-nav" class="ui-resizable side-nav-resizable">
  55. <div id="nav-tree">
  56. <div id="nav-tree-contents">
  57. <div id="nav-sync" class="sync"></div>
  58. </div>
  59. </div>
  60. <div id="splitbar" style="-moz-user-select:none;"
  61. class="ui-resizable-handle">
  62. </div>
  63. </div>
  64. <script type="text/javascript">
  65. $(document).ready(function(){initNavTree('da/d74/a00099.html','../../');});
  66. </script>
  67. <div id="doc-content">
  68. <!-- window showing the filter options -->
  69. <div id="MSearchSelectWindow"
  70. onmouseover="return searchBox.OnSearchSelectShow()"
  71. onmouseout="return searchBox.OnSearchSelectHide()"
  72. onkeydown="return searchBox.OnSearchSelectKey(event)">
  73. </div>
  74. <!-- iframe showing the search results (closed by default) -->
  75. <div id="MSearchResultsWindow">
  76. <iframe src="javascript:void(0)" frameborder="0"
  77. name="MSearchResults" id="MSearchResults">
  78. </iframe>
  79. </div>
  80. <div class="header">
  81. <div class="summary">
  82. <a href="#groups">Modules</a> &#124;
  83. <a href="#nested-classes">Data Structures</a> </div>
  84. <div class="headertitle">
  85. <div class="title">USB Standard</div> </div>
  86. </div><!--header-->
  87. <div class="contents">
  88. <p>This module contains generic USB device framework definitions.
  89. <a href="#details">More...</a></p>
  90. <table class="memberdecls">
  91. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
  92. Modules</h2></td></tr>
  93. <tr class="memitem:d0/d61/a00100"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d61/a00100.html">USB standard LANGID codes</a></td></tr>
  94. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  95. </table><table class="memberdecls">
  96. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
  97. Data Structures</h2></td></tr>
  98. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d5/ddf/a00224.html">usb_header_descriptor</a></td></tr>
  99. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">common USB descriptor header <a href="../../d5/ddf/a00224.html#details">More...</a><br /></td></tr>
  100. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/dc2/a00228.html">usb_device_descriptor</a></td></tr>
  102. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a USB device descriptor. <a href="../../de/dc2/a00228.html#details">More...</a><br /></td></tr>
  103. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d53/a00232.html">usb_qualifier_descriptor</a></td></tr>
  105. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB device qualifier descriptor. <a href="../../d0/d53/a00232.html#details">More...</a><br /></td></tr>
  106. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d40/a00236.html">usb_config_descriptor</a></td></tr>
  108. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB device configuration descriptor. <a href="../../d7/d40/a00236.html#details">More...</a><br /></td></tr>
  109. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/d21/a00240.html">usb_interface_descriptor</a></td></tr>
  111. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB interface descriptor. <a href="../../d9/d21/a00240.html#details">More...</a><br /></td></tr>
  112. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d6/d08/a00244.html">usb_iad_descriptor</a></td></tr>
  114. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB interface association descriptor. <a href="../../d6/d08/a00244.html#details">More...</a><br /></td></tr>
  115. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/dd7/a00248.html">usb_endpoint_descriptor</a></td></tr>
  117. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB endpoint descriptor. <a href="../../dd/dd7/a00248.html#details">More...</a><br /></td></tr>
  118. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/ded/a00252.html">usb_string_descriptor</a></td></tr>
  120. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB string descriptor. <a href="../../dc/ded/a00252.html#details">More...</a><br /></td></tr>
  121. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/def/a00256.html">usb_debug_descriptor</a></td></tr>
  123. <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB debug descriptor. <a href="../../d0/def/a00256.html#details">More...</a><br /></td></tr>
  124. <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125. </table><table class="memberdecls">
  126. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  127. Utility functional macros</h2></td></tr>
  128. <tr class="memitem:ga63eb203f5f5e37dc55157680549c656c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga63eb203f5f5e37dc55157680549c656c">VERSION_BCD</a>(maj, min, rev)&#160;&#160;&#160;(((maj &amp; 0xFF) &lt;&lt; 8) | ((min &amp; 0x0F) &lt;&lt; 4) | (rev &amp; 0x0F))</td></tr>
  129. <tr class="separator:ga63eb203f5f5e37dc55157680549c656c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:ga872cd80ad22caad26fe45fe2182645d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga872cd80ad22caad26fe45fe2182645d4">USB_ARRAY_DESC</a>(...)</td></tr>
  131. <tr class="separator:ga872cd80ad22caad26fe45fe2182645d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:ga362afc1ada1c8cbeca04329e99c2e8f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga362afc1ada1c8cbeca04329e99c2e8f9">USB_STRING_DESC</a>(s)</td></tr>
  133. <tr class="separator:ga362afc1ada1c8cbeca04329e99c2e8f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:ga7b68661c679b3b44dfed37455fff2dde"><td class="memItemLeft" align="right" valign="top"><a id="ga7b68661c679b3b44dfed37455fff2dde"></a>
  135. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga7b68661c679b3b44dfed37455fff2dde">USB_CFG_POWER_MA</a>(mA)&#160;&#160;&#160;((mA) &gt;&gt; 1)</td></tr>
  136. <tr class="memdesc:ga7b68661c679b3b44dfed37455fff2dde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro to set мaximum power consumption field for the <a class="el" href="../../d7/d40/a00236.html">usb_config_descriptor</a>. <br /></td></tr>
  137. <tr class="separator:ga7b68661c679b3b44dfed37455fff2dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. </table><table class="memberdecls">
  139. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  140. USB device configuration definitions</h2></td></tr>
  141. <tr class="memitem:ga99e305e78b1ab7c4a5a4f707b37b44bc"><td class="memItemLeft" align="right" valign="top"><a id="ga99e305e78b1ab7c4a5a4f707b37b44bc"></a>
  142. #define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_CFG_ATTR_RESERVED</b>&#160;&#160;&#160;0x80</td></tr>
  143. <tr class="separator:ga99e305e78b1ab7c4a5a4f707b37b44bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:ga9ddd89dfca67de15c1d38c2ae0f9bd80"><td class="memItemLeft" align="right" valign="top"><a id="ga9ddd89dfca67de15c1d38c2ae0f9bd80"></a>
  145. #define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_CFG_ATTR_SELFPOWERED</b>&#160;&#160;&#160;0x40</td></tr>
  146. <tr class="separator:ga9ddd89dfca67de15c1d38c2ae0f9bd80"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147. </table><table class="memberdecls">
  148. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  149. USB endpoint attributes definitions</h2></td></tr>
  150. <tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp6b4c30cbf6a5770dc29fde4cba19da41"></a><a class="anchor" id="USB_ENDPOINT_DEF"></a></p>
  151. </td></tr>
  152. <tr class="memitem:gaf97b4b6b7cfda4ecf08ce1172b4be451"><td class="memItemLeft" align="right" valign="top"><a id="gaf97b4b6b7cfda4ecf08ce1172b4be451"></a>
  153. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaf97b4b6b7cfda4ecf08ce1172b4be451">USB_EPDIR_IN</a>&#160;&#160;&#160;0x00</td></tr>
  154. <tr class="memdesc:gaf97b4b6b7cfda4ecf08ce1172b4be451"><td class="mdescLeft">&#160;</td><td class="mdescRight">Host-to-device endpoint direction. <br /></td></tr>
  155. <tr class="separator:gaf97b4b6b7cfda4ecf08ce1172b4be451"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156. <tr class="memitem:ga51a142fba352a184c600e68190f4ef09"><td class="memItemLeft" align="right" valign="top"><a id="ga51a142fba352a184c600e68190f4ef09"></a>
  157. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga51a142fba352a184c600e68190f4ef09">USB_EPDIR_OUT</a>&#160;&#160;&#160;0x80</td></tr>
  158. <tr class="memdesc:ga51a142fba352a184c600e68190f4ef09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device-to-host endpoint direction. <br /></td></tr>
  159. <tr class="separator:ga51a142fba352a184c600e68190f4ef09"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:gad21ccfa9002cb22958cd5a38682114ee"><td class="memItemLeft" align="right" valign="top"><a id="gad21ccfa9002cb22958cd5a38682114ee"></a>
  161. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gad21ccfa9002cb22958cd5a38682114ee">USB_EPTYPE_CONTROL</a>&#160;&#160;&#160;0x00</td></tr>
  162. <tr class="memdesc:gad21ccfa9002cb22958cd5a38682114ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Control endpoint. <br /></td></tr>
  163. <tr class="separator:gad21ccfa9002cb22958cd5a38682114ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="memitem:ga87bcf2bb75709226f08268be4d472c7a"><td class="memItemLeft" align="right" valign="top"><a id="ga87bcf2bb75709226f08268be4d472c7a"></a>
  165. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga87bcf2bb75709226f08268be4d472c7a">USB_EPTYPE_ISOCHRONUS</a>&#160;&#160;&#160;0x01</td></tr>
  166. <tr class="memdesc:ga87bcf2bb75709226f08268be4d472c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Isochronous endpoint. <br /></td></tr>
  167. <tr class="separator:ga87bcf2bb75709226f08268be4d472c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:ga2e0da3e7ed8f844ab9322b6cf5b5a84b"><td class="memItemLeft" align="right" valign="top"><a id="ga2e0da3e7ed8f844ab9322b6cf5b5a84b"></a>
  169. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga2e0da3e7ed8f844ab9322b6cf5b5a84b">USB_EPTYPE_BULK</a>&#160;&#160;&#160;0x02</td></tr>
  170. <tr class="memdesc:ga2e0da3e7ed8f844ab9322b6cf5b5a84b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bbulk endpoint. <br /></td></tr>
  171. <tr class="separator:ga2e0da3e7ed8f844ab9322b6cf5b5a84b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:gade4942219a9d3206c31adf64bc72ba71"><td class="memItemLeft" align="right" valign="top"><a id="gade4942219a9d3206c31adf64bc72ba71"></a>
  173. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gade4942219a9d3206c31adf64bc72ba71">USB_EPTYPE_INTERRUPT</a>&#160;&#160;&#160;0x03</td></tr>
  174. <tr class="memdesc:gade4942219a9d3206c31adf64bc72ba71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interrupt endpoint. <br /></td></tr>
  175. <tr class="separator:gade4942219a9d3206c31adf64bc72ba71"><td class="memSeparator" colspan="2">&#160;</td></tr>
  176. <tr class="memitem:ga782f6de3a1fe7f7087882663d0f314f8"><td class="memItemLeft" align="right" valign="top"><a id="ga782f6de3a1fe7f7087882663d0f314f8"></a>
  177. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga782f6de3a1fe7f7087882663d0f314f8">USB_EPATTR_NO_SYNC</a>&#160;&#160;&#160;0x00</td></tr>
  178. <tr class="memdesc:ga782f6de3a1fe7f7087882663d0f314f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">No synchronization. <br /></td></tr>
  179. <tr class="separator:ga782f6de3a1fe7f7087882663d0f314f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:ga4ca5965884c1ea94cdeedaa50d2cab11"><td class="memItemLeft" align="right" valign="top"><a id="ga4ca5965884c1ea94cdeedaa50d2cab11"></a>
  181. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga4ca5965884c1ea94cdeedaa50d2cab11">USB_EPATTR_ASYNC</a>&#160;&#160;&#160;0x04</td></tr>
  182. <tr class="memdesc:ga4ca5965884c1ea94cdeedaa50d2cab11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Asynchronous endpoint. <br /></td></tr>
  183. <tr class="separator:ga4ca5965884c1ea94cdeedaa50d2cab11"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. <tr class="memitem:gab02aee2779e7783f4292560f942ce2c6"><td class="memItemLeft" align="right" valign="top"><a id="gab02aee2779e7783f4292560f942ce2c6"></a>
  185. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gab02aee2779e7783f4292560f942ce2c6">USB_EPATTR_ADAPTIVE</a>&#160;&#160;&#160;0x08</td></tr>
  186. <tr class="memdesc:gab02aee2779e7783f4292560f942ce2c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adaptive endpoint. <br /></td></tr>
  187. <tr class="separator:gab02aee2779e7783f4292560f942ce2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  188. <tr class="memitem:gac5b7635e12514f6acba6a29f72e7cbbe"><td class="memItemLeft" align="right" valign="top"><a id="gac5b7635e12514f6acba6a29f72e7cbbe"></a>
  189. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gac5b7635e12514f6acba6a29f72e7cbbe">USB_EPATTR_SYNC</a>&#160;&#160;&#160;0x0C</td></tr>
  190. <tr class="memdesc:gac5b7635e12514f6acba6a29f72e7cbbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous endpoint. <br /></td></tr>
  191. <tr class="separator:gac5b7635e12514f6acba6a29f72e7cbbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  192. <tr class="memitem:ga6305caac69f911af7d3f642916db6739"><td class="memItemLeft" align="right" valign="top"><a id="ga6305caac69f911af7d3f642916db6739"></a>
  193. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga6305caac69f911af7d3f642916db6739">USB_EPUSAGE_DATA</a>&#160;&#160;&#160;0x00</td></tr>
  194. <tr class="memdesc:ga6305caac69f911af7d3f642916db6739"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data endpoint. <br /></td></tr>
  195. <tr class="separator:ga6305caac69f911af7d3f642916db6739"><td class="memSeparator" colspan="2">&#160;</td></tr>
  196. <tr class="memitem:ga18284e16d696647a8fcbc71697cc217c"><td class="memItemLeft" align="right" valign="top"><a id="ga18284e16d696647a8fcbc71697cc217c"></a>
  197. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga18284e16d696647a8fcbc71697cc217c">USB_EPUSAGE_FEEDBACK</a>&#160;&#160;&#160;0x10</td></tr>
  198. <tr class="memdesc:ga18284e16d696647a8fcbc71697cc217c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Feedback endpoint. <br /></td></tr>
  199. <tr class="separator:ga18284e16d696647a8fcbc71697cc217c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  200. <tr class="memitem:ga4bf1b931e18c6f97abd18fa603e92ab7"><td class="memItemLeft" align="right" valign="top"><a id="ga4bf1b931e18c6f97abd18fa603e92ab7"></a>
  201. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga4bf1b931e18c6f97abd18fa603e92ab7">USB_EPUSAGE_IMP_FEEDBACK</a>&#160;&#160;&#160;0x20</td></tr>
  202. <tr class="memdesc:ga4bf1b931e18c6f97abd18fa603e92ab7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implicit feedback Data endpoint. <br /></td></tr>
  203. <tr class="separator:ga4bf1b931e18c6f97abd18fa603e92ab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  204. </table><table class="memberdecls">
  205. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  206. Special string descriptor indexes</h2></td></tr>
  207. <tr class="memitem:ga746bc73e4e35c42810c1b72aa91eea4e"><td class="memItemLeft" align="right" valign="top"><a id="ga746bc73e4e35c42810c1b72aa91eea4e"></a>
  208. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga746bc73e4e35c42810c1b72aa91eea4e">NO_DESCRIPTOR</a>&#160;&#160;&#160;0x00</td></tr>
  209. <tr class="memdesc:ga746bc73e4e35c42810c1b72aa91eea4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">String descriptor doesn't exists in the device. <br /></td></tr>
  210. <tr class="separator:ga746bc73e4e35c42810c1b72aa91eea4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. <tr class="memitem:gaad4d076ee1eb5cba8efec47779bce3e9"><td class="memItemLeft" align="right" valign="top"><a id="gaad4d076ee1eb5cba8efec47779bce3e9"></a>
  212. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaad4d076ee1eb5cba8efec47779bce3e9">INTSERIALNO_DESCRIPTOR</a>&#160;&#160;&#160;0xFE</td></tr>
  213. <tr class="memdesc:gaad4d076ee1eb5cba8efec47779bce3e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">String descriptor is an internal serial number provided by hardware driver. <br /></td></tr>
  214. <tr class="separator:gaad4d076ee1eb5cba8efec47779bce3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  215. </table><table class="memberdecls">
  216. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  217. USB class definitions</h2></td></tr>
  218. <tr class="memitem:ga1e00c14ff205d2d88be93faa2a81927a"><td class="memItemLeft" align="right" valign="top"><a id="ga1e00c14ff205d2d88be93faa2a81927a"></a>
  219. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga1e00c14ff205d2d88be93faa2a81927a">USB_CLASS_PER_INTERFACE</a>&#160;&#160;&#160;0x00</td></tr>
  220. <tr class="memdesc:ga1e00c14ff205d2d88be93faa2a81927a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class defined on interface level. <br /></td></tr>
  221. <tr class="separator:ga1e00c14ff205d2d88be93faa2a81927a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  222. <tr class="memitem:ga2ed8ff1595c1184d0aa4eefbc3c2e39c"><td class="memItemLeft" align="right" valign="top"><a id="ga2ed8ff1595c1184d0aa4eefbc3c2e39c"></a>
  223. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga2ed8ff1595c1184d0aa4eefbc3c2e39c">USB_SUBCLASS_NONE</a>&#160;&#160;&#160;0x00</td></tr>
  224. <tr class="memdesc:ga2ed8ff1595c1184d0aa4eefbc3c2e39c"><td class="mdescLeft">&#160;</td><td class="mdescRight">No subclass defined. <br /></td></tr>
  225. <tr class="separator:ga2ed8ff1595c1184d0aa4eefbc3c2e39c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  226. <tr class="memitem:gadda0f765fb3bbb06a4f66d6431998a65"><td class="memItemLeft" align="right" valign="top"><a id="gadda0f765fb3bbb06a4f66d6431998a65"></a>
  227. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gadda0f765fb3bbb06a4f66d6431998a65">USB_PROTO_NONE</a>&#160;&#160;&#160;0x00</td></tr>
  228. <tr class="memdesc:gadda0f765fb3bbb06a4f66d6431998a65"><td class="mdescLeft">&#160;</td><td class="mdescRight">No protocol defined. <br /></td></tr>
  229. <tr class="separator:gadda0f765fb3bbb06a4f66d6431998a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
  230. <tr class="memitem:ga8785f84db1be6b0b5da34cd91a1b6138"><td class="memItemLeft" align="right" valign="top"><a id="ga8785f84db1be6b0b5da34cd91a1b6138"></a>
  231. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga8785f84db1be6b0b5da34cd91a1b6138">USB_CLASS_AUDIO</a>&#160;&#160;&#160;0x01</td></tr>
  232. <tr class="memdesc:ga8785f84db1be6b0b5da34cd91a1b6138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio device class. <br /></td></tr>
  233. <tr class="separator:ga8785f84db1be6b0b5da34cd91a1b6138"><td class="memSeparator" colspan="2">&#160;</td></tr>
  234. <tr class="memitem:gaa5f3153d014b6267ba8da243b6b46443"><td class="memItemLeft" align="right" valign="top"><a id="gaa5f3153d014b6267ba8da243b6b46443"></a>
  235. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaa5f3153d014b6267ba8da243b6b46443">USB_CLASS_PHYSICAL</a>&#160;&#160;&#160;0x05</td></tr>
  236. <tr class="memdesc:gaa5f3153d014b6267ba8da243b6b46443"><td class="mdescLeft">&#160;</td><td class="mdescRight">Physical device class. <br /></td></tr>
  237. <tr class="separator:gaa5f3153d014b6267ba8da243b6b46443"><td class="memSeparator" colspan="2">&#160;</td></tr>
  238. <tr class="memitem:ga2c519456bac2f388baabf8db178169ac"><td class="memItemLeft" align="right" valign="top"><a id="ga2c519456bac2f388baabf8db178169ac"></a>
  239. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga2c519456bac2f388baabf8db178169ac">USB_CLASS_STILL_IMAGE</a>&#160;&#160;&#160;0x06</td></tr>
  240. <tr class="memdesc:ga2c519456bac2f388baabf8db178169ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Still Imaging device class. <br /></td></tr>
  241. <tr class="separator:ga2c519456bac2f388baabf8db178169ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  242. <tr class="memitem:gab3e03403111b64480ba298d2641cf92f"><td class="memItemLeft" align="right" valign="top"><a id="gab3e03403111b64480ba298d2641cf92f"></a>
  243. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gab3e03403111b64480ba298d2641cf92f">USB_CLASS_PRINTER</a>&#160;&#160;&#160;0x07</td></tr>
  244. <tr class="memdesc:gab3e03403111b64480ba298d2641cf92f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Printer device class. <br /></td></tr>
  245. <tr class="separator:gab3e03403111b64480ba298d2641cf92f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  246. <tr class="memitem:gaa99b73e335df09e6545fc44798a3c1f2"><td class="memItemLeft" align="right" valign="top"><a id="gaa99b73e335df09e6545fc44798a3c1f2"></a>
  247. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaa99b73e335df09e6545fc44798a3c1f2">USB_CLASS_MASS_STORAGE</a>&#160;&#160;&#160;0x08</td></tr>
  248. <tr class="memdesc:gaa99b73e335df09e6545fc44798a3c1f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mass Storage device class. <br /></td></tr>
  249. <tr class="separator:gaa99b73e335df09e6545fc44798a3c1f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  250. <tr class="memitem:gaac5a936a2d1a6e3403798b031294992a"><td class="memItemLeft" align="right" valign="top"><a id="gaac5a936a2d1a6e3403798b031294992a"></a>
  251. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaac5a936a2d1a6e3403798b031294992a">USB_CLASS_HUB</a>&#160;&#160;&#160;0x09</td></tr>
  252. <tr class="memdesc:gaac5a936a2d1a6e3403798b031294992a"><td class="mdescLeft">&#160;</td><td class="mdescRight">HUB device class. <br /></td></tr>
  253. <tr class="separator:gaac5a936a2d1a6e3403798b031294992a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  254. <tr class="memitem:gaebefa708b1fb84af2ab6c60b414d7e7f"><td class="memItemLeft" align="right" valign="top"><a id="gaebefa708b1fb84af2ab6c60b414d7e7f"></a>
  255. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaebefa708b1fb84af2ab6c60b414d7e7f">USB_CLASS_CSCID</a>&#160;&#160;&#160;0x0B</td></tr>
  256. <tr class="memdesc:gaebefa708b1fb84af2ab6c60b414d7e7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Smart Card device class. <br /></td></tr>
  257. <tr class="separator:gaebefa708b1fb84af2ab6c60b414d7e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  258. <tr class="memitem:ga2bc85c84fbcdb58a651eae036ce5c3b9"><td class="memItemLeft" align="right" valign="top"><a id="ga2bc85c84fbcdb58a651eae036ce5c3b9"></a>
  259. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga2bc85c84fbcdb58a651eae036ce5c3b9">USB_CLASS_CONTENT_SEC</a>&#160;&#160;&#160;0x0D</td></tr>
  260. <tr class="memdesc:ga2bc85c84fbcdb58a651eae036ce5c3b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Content Security device class. <br /></td></tr>
  261. <tr class="separator:ga2bc85c84fbcdb58a651eae036ce5c3b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  262. <tr class="memitem:ga42a579e1be399e32a495b82634411449"><td class="memItemLeft" align="right" valign="top"><a id="ga42a579e1be399e32a495b82634411449"></a>
  263. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga42a579e1be399e32a495b82634411449">USB_CLASS_VIDEO</a>&#160;&#160;&#160;0x0E</td></tr>
  264. <tr class="memdesc:ga42a579e1be399e32a495b82634411449"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video device class. <br /></td></tr>
  265. <tr class="separator:ga42a579e1be399e32a495b82634411449"><td class="memSeparator" colspan="2">&#160;</td></tr>
  266. <tr class="memitem:gae3107c8f58dec700e3bdfeabf15680cd"><td class="memItemLeft" align="right" valign="top"><a id="gae3107c8f58dec700e3bdfeabf15680cd"></a>
  267. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gae3107c8f58dec700e3bdfeabf15680cd">USB_CLASS_HEALTHCARE</a>&#160;&#160;&#160;0x0F</td></tr>
  268. <tr class="memdesc:gae3107c8f58dec700e3bdfeabf15680cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Personal Healthcare device class. <br /></td></tr>
  269. <tr class="separator:gae3107c8f58dec700e3bdfeabf15680cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  270. <tr class="memitem:ga2dd0351cedfc2324ac2f9a412b8f52c8"><td class="memItemLeft" align="right" valign="top"><a id="ga2dd0351cedfc2324ac2f9a412b8f52c8"></a>
  271. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga2dd0351cedfc2324ac2f9a412b8f52c8">USB_CLASS_AV</a>&#160;&#160;&#160;0x10</td></tr>
  272. <tr class="memdesc:ga2dd0351cedfc2324ac2f9a412b8f52c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Audio/Video device class. <br /></td></tr>
  273. <tr class="separator:ga2dd0351cedfc2324ac2f9a412b8f52c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  274. <tr class="memitem:ga6d6c5e74c304e3fe44e951888c767764"><td class="memItemLeft" align="right" valign="top"><a id="ga6d6c5e74c304e3fe44e951888c767764"></a>
  275. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga6d6c5e74c304e3fe44e951888c767764">USB_CLASS_BILLBOARD</a>&#160;&#160;&#160;0x11</td></tr>
  276. <tr class="memdesc:ga6d6c5e74c304e3fe44e951888c767764"><td class="mdescLeft">&#160;</td><td class="mdescRight">Billboard device class. <br /></td></tr>
  277. <tr class="separator:ga6d6c5e74c304e3fe44e951888c767764"><td class="memSeparator" colspan="2">&#160;</td></tr>
  278. <tr class="memitem:gae0008b8c1888f45c1d8abf0858c3f859"><td class="memItemLeft" align="right" valign="top"><a id="gae0008b8c1888f45c1d8abf0858c3f859"></a>
  279. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gae0008b8c1888f45c1d8abf0858c3f859">USB_CLASS_CBRIDGE</a>&#160;&#160;&#160;0x12</td></tr>
  280. <tr class="memdesc:gae0008b8c1888f45c1d8abf0858c3f859"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB Type-C Bridge device class. <br /></td></tr>
  281. <tr class="separator:gae0008b8c1888f45c1d8abf0858c3f859"><td class="memSeparator" colspan="2">&#160;</td></tr>
  282. <tr class="memitem:ga3b2d878638ec2583b4c7cc6b98227d90"><td class="memItemLeft" align="right" valign="top"><a id="ga3b2d878638ec2583b4c7cc6b98227d90"></a>
  283. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga3b2d878638ec2583b4c7cc6b98227d90">USB_CLASS_DIAGNOSTIC</a>&#160;&#160;&#160;0xDC</td></tr>
  284. <tr class="memdesc:ga3b2d878638ec2583b4c7cc6b98227d90"><td class="mdescLeft">&#160;</td><td class="mdescRight">Diagnostic device class. <br /></td></tr>
  285. <tr class="separator:ga3b2d878638ec2583b4c7cc6b98227d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
  286. <tr class="memitem:ga23f5dcd78c94757a5ef269fbb5acb636"><td class="memItemLeft" align="right" valign="top"><a id="ga23f5dcd78c94757a5ef269fbb5acb636"></a>
  287. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga23f5dcd78c94757a5ef269fbb5acb636">USB_CLASS_WIRELESS</a>&#160;&#160;&#160;0xE0</td></tr>
  288. <tr class="memdesc:ga23f5dcd78c94757a5ef269fbb5acb636"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wireless controller class. <br /></td></tr>
  289. <tr class="separator:ga23f5dcd78c94757a5ef269fbb5acb636"><td class="memSeparator" colspan="2">&#160;</td></tr>
  290. <tr class="memitem:ga02fb07e20ad6d1af64439f40093bc80f"><td class="memItemLeft" align="right" valign="top"><a id="ga02fb07e20ad6d1af64439f40093bc80f"></a>
  291. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga02fb07e20ad6d1af64439f40093bc80f">USB_CLASS_MISC</a>&#160;&#160;&#160;0xEF</td></tr>
  292. <tr class="memdesc:ga02fb07e20ad6d1af64439f40093bc80f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Miscellanious device class. <br /></td></tr>
  293. <tr class="separator:ga02fb07e20ad6d1af64439f40093bc80f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  294. <tr class="memitem:ga468ff9393384f125de57a533c8e5240b"><td class="memItemLeft" align="right" valign="top"><a id="ga468ff9393384f125de57a533c8e5240b"></a>
  295. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga468ff9393384f125de57a533c8e5240b">USB_CLASS_APP_SPEC</a>&#160;&#160;&#160;0xFE</td></tr>
  296. <tr class="memdesc:ga468ff9393384f125de57a533c8e5240b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Application Specific class. <br /></td></tr>
  297. <tr class="separator:ga468ff9393384f125de57a533c8e5240b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  298. <tr class="memitem:gacacc4de7981ab8e877680cd5a8c3b227"><td class="memItemLeft" align="right" valign="top"><a id="gacacc4de7981ab8e877680cd5a8c3b227"></a>
  299. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gacacc4de7981ab8e877680cd5a8c3b227">USB_CLASS_VENDOR</a>&#160;&#160;&#160;0xFF</td></tr>
  300. <tr class="memdesc:gacacc4de7981ab8e877680cd5a8c3b227"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vendor specific class. <br /></td></tr>
  301. <tr class="separator:gacacc4de7981ab8e877680cd5a8c3b227"><td class="memSeparator" colspan="2">&#160;</td></tr>
  302. <tr class="memitem:ga4468c2fe98b271b38d71e9a0689dd3bc"><td class="memItemLeft" align="right" valign="top"><a id="ga4468c2fe98b271b38d71e9a0689dd3bc"></a>
  303. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga4468c2fe98b271b38d71e9a0689dd3bc">USB_SUBCLASS_VENDOR</a>&#160;&#160;&#160;0xFF</td></tr>
  304. <tr class="memdesc:ga4468c2fe98b271b38d71e9a0689dd3bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vendor specific subclass. <br /></td></tr>
  305. <tr class="separator:ga4468c2fe98b271b38d71e9a0689dd3bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  306. <tr class="memitem:ga1d44bd0e96a322b245b67f3ef4537577"><td class="memItemLeft" align="right" valign="top"><a id="ga1d44bd0e96a322b245b67f3ef4537577"></a>
  307. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga1d44bd0e96a322b245b67f3ef4537577">USB_PROTO_VENDOR</a>&#160;&#160;&#160;0xFF</td></tr>
  308. <tr class="memdesc:ga1d44bd0e96a322b245b67f3ef4537577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vendor specific protocol. <br /></td></tr>
  309. <tr class="separator:ga1d44bd0e96a322b245b67f3ef4537577"><td class="memSeparator" colspan="2">&#160;</td></tr>
  310. <tr class="memitem:gaaf2d6c6cd7b43e2372cd74cf1b36f82c"><td class="memItemLeft" align="right" valign="top"><a id="gaaf2d6c6cd7b43e2372cd74cf1b36f82c"></a>
  311. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaaf2d6c6cd7b43e2372cd74cf1b36f82c">USB_CLASS_IAD</a>&#160;&#160;&#160;0xEF</td></tr>
  312. <tr class="memdesc:gaaf2d6c6cd7b43e2372cd74cf1b36f82c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class defined on interface association level. <br /></td></tr>
  313. <tr class="separator:gaaf2d6c6cd7b43e2372cd74cf1b36f82c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  314. <tr class="memitem:ga3a637995f1146443c98cfd98185a2b83"><td class="memItemLeft" align="right" valign="top"><a id="ga3a637995f1146443c98cfd98185a2b83"></a>
  315. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga3a637995f1146443c98cfd98185a2b83">USB_SUBCLASS_IAD</a>&#160;&#160;&#160;0x02</td></tr>
  316. <tr class="memdesc:ga3a637995f1146443c98cfd98185a2b83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subclass defined on interface association level. <br /></td></tr>
  317. <tr class="separator:ga3a637995f1146443c98cfd98185a2b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
  318. <tr class="memitem:gaa944b2ff7546ea01f53566002ee9ec52"><td class="memItemLeft" align="right" valign="top"><a id="gaa944b2ff7546ea01f53566002ee9ec52"></a>
  319. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaa944b2ff7546ea01f53566002ee9ec52">USB_PROTO_IAD</a>&#160;&#160;&#160;0x01</td></tr>
  320. <tr class="memdesc:gaa944b2ff7546ea01f53566002ee9ec52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Protocol defined on interface association level. <br /></td></tr>
  321. <tr class="separator:gaa944b2ff7546ea01f53566002ee9ec52"><td class="memSeparator" colspan="2">&#160;</td></tr>
  322. </table><table class="memberdecls">
  323. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  324. USB Standard descriptor types</h2></td></tr>
  325. <tr class="memitem:ga76eb46fb8a7219b6c824036f56b94a94"><td class="memItemLeft" align="right" valign="top"><a id="ga76eb46fb8a7219b6c824036f56b94a94"></a>
  326. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga76eb46fb8a7219b6c824036f56b94a94">USB_DTYPE_DEVICE</a>&#160;&#160;&#160;0x01</td></tr>
  327. <tr class="memdesc:ga76eb46fb8a7219b6c824036f56b94a94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Device descriptor. <br /></td></tr>
  328. <tr class="separator:ga76eb46fb8a7219b6c824036f56b94a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
  329. <tr class="memitem:gad2d9345dbf8bb1ed7f49c7856d5d1ef8"><td class="memItemLeft" align="right" valign="top"><a id="gad2d9345dbf8bb1ed7f49c7856d5d1ef8"></a>
  330. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gad2d9345dbf8bb1ed7f49c7856d5d1ef8">USB_DTYPE_CONFIGURATION</a>&#160;&#160;&#160;0x02</td></tr>
  331. <tr class="memdesc:gad2d9345dbf8bb1ed7f49c7856d5d1ef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configuration descriptor. <br /></td></tr>
  332. <tr class="separator:gad2d9345dbf8bb1ed7f49c7856d5d1ef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  333. <tr class="memitem:gabde1b2a68da742b490fa1281c80cce39"><td class="memItemLeft" align="right" valign="top"><a id="gabde1b2a68da742b490fa1281c80cce39"></a>
  334. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gabde1b2a68da742b490fa1281c80cce39">USB_DTYPE_STRING</a>&#160;&#160;&#160;0x03</td></tr>
  335. <tr class="memdesc:gabde1b2a68da742b490fa1281c80cce39"><td class="mdescLeft">&#160;</td><td class="mdescRight">String descriptor. <br /></td></tr>
  336. <tr class="separator:gabde1b2a68da742b490fa1281c80cce39"><td class="memSeparator" colspan="2">&#160;</td></tr>
  337. <tr class="memitem:gaefd56033b4b680837f946ffccdfa7d3b"><td class="memItemLeft" align="right" valign="top"><a id="gaefd56033b4b680837f946ffccdfa7d3b"></a>
  338. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaefd56033b4b680837f946ffccdfa7d3b">USB_DTYPE_INTERFACE</a>&#160;&#160;&#160;0x04</td></tr>
  339. <tr class="memdesc:gaefd56033b4b680837f946ffccdfa7d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface descriptor. <br /></td></tr>
  340. <tr class="separator:gaefd56033b4b680837f946ffccdfa7d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  341. <tr class="memitem:gaf4bc77da317012c0324d2c2d34b2ea5d"><td class="memItemLeft" align="right" valign="top"><a id="gaf4bc77da317012c0324d2c2d34b2ea5d"></a>
  342. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaf4bc77da317012c0324d2c2d34b2ea5d">USB_DTYPE_ENDPOINT</a>&#160;&#160;&#160;0x05</td></tr>
  343. <tr class="memdesc:gaf4bc77da317012c0324d2c2d34b2ea5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Endpoint descriptor. <br /></td></tr>
  344. <tr class="separator:gaf4bc77da317012c0324d2c2d34b2ea5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  345. <tr class="memitem:ga01816e9350a1549df049179f297de6e5"><td class="memItemLeft" align="right" valign="top"><a id="ga01816e9350a1549df049179f297de6e5"></a>
  346. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga01816e9350a1549df049179f297de6e5">USB_DTYPE_QUALIFIER</a>&#160;&#160;&#160;0x06</td></tr>
  347. <tr class="memdesc:ga01816e9350a1549df049179f297de6e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Qualifier descriptor. <br /></td></tr>
  348. <tr class="separator:ga01816e9350a1549df049179f297de6e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  349. <tr class="memitem:ga99bbf7c3e4f9d751bf07d64a0ccd9713"><td class="memItemLeft" align="right" valign="top"><a id="ga99bbf7c3e4f9d751bf07d64a0ccd9713"></a>
  350. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga99bbf7c3e4f9d751bf07d64a0ccd9713">USB_DTYPE_OTHER</a>&#160;&#160;&#160;0x07</td></tr>
  351. <tr class="memdesc:ga99bbf7c3e4f9d751bf07d64a0ccd9713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Descriptor is of other type. <br /></td></tr>
  352. <tr class="separator:ga99bbf7c3e4f9d751bf07d64a0ccd9713"><td class="memSeparator" colspan="2">&#160;</td></tr>
  353. <tr class="memitem:ga3313728a669e31a1a086b25b0168f4ce"><td class="memItemLeft" align="right" valign="top"><a id="ga3313728a669e31a1a086b25b0168f4ce"></a>
  354. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga3313728a669e31a1a086b25b0168f4ce">USB_DTYPE_INTERFACEPOWER</a>&#160;&#160;&#160;0x08</td></tr>
  355. <tr class="memdesc:ga3313728a669e31a1a086b25b0168f4ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface power descriptor. <br /></td></tr>
  356. <tr class="separator:ga3313728a669e31a1a086b25b0168f4ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
  357. <tr class="memitem:gadeb010e5871ad986b4020baa8d38acd3"><td class="memItemLeft" align="right" valign="top"><a id="gadeb010e5871ad986b4020baa8d38acd3"></a>
  358. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gadeb010e5871ad986b4020baa8d38acd3">USB_DTYPE_OTG</a>&#160;&#160;&#160;0x09</td></tr>
  359. <tr class="memdesc:gadeb010e5871ad986b4020baa8d38acd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">OTG descriptor. <br /></td></tr>
  360. <tr class="separator:gadeb010e5871ad986b4020baa8d38acd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  361. <tr class="memitem:ga9b4bc4deb61f79f8ce0fa650a4329764"><td class="memItemLeft" align="right" valign="top"><a id="ga9b4bc4deb61f79f8ce0fa650a4329764"></a>
  362. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga9b4bc4deb61f79f8ce0fa650a4329764">USB_DTYPE_DEBUG</a>&#160;&#160;&#160;0x0A</td></tr>
  363. <tr class="memdesc:ga9b4bc4deb61f79f8ce0fa650a4329764"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug descriptor. <br /></td></tr>
  364. <tr class="separator:ga9b4bc4deb61f79f8ce0fa650a4329764"><td class="memSeparator" colspan="2">&#160;</td></tr>
  365. <tr class="memitem:ga3db10dc9f3b3a09d06fb33084ef5bb33"><td class="memItemLeft" align="right" valign="top"><a id="ga3db10dc9f3b3a09d06fb33084ef5bb33"></a>
  366. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga3db10dc9f3b3a09d06fb33084ef5bb33">USB_DTYPE_INTERFASEASSOC</a>&#160;&#160;&#160;0x0B</td></tr>
  367. <tr class="memdesc:ga3db10dc9f3b3a09d06fb33084ef5bb33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface association descriptor. <br /></td></tr>
  368. <tr class="separator:ga3db10dc9f3b3a09d06fb33084ef5bb33"><td class="memSeparator" colspan="2">&#160;</td></tr>
  369. <tr class="memitem:gad91ea073e6d698b8c81ba0a549cc2fd3"><td class="memItemLeft" align="right" valign="top"><a id="gad91ea073e6d698b8c81ba0a549cc2fd3"></a>
  370. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gad91ea073e6d698b8c81ba0a549cc2fd3">USB_DTYPE_CS_INTERFACE</a>&#160;&#160;&#160;0x24</td></tr>
  371. <tr class="memdesc:gad91ea073e6d698b8c81ba0a549cc2fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class specific interface descriptor. <br /></td></tr>
  372. <tr class="separator:gad91ea073e6d698b8c81ba0a549cc2fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  373. <tr class="memitem:ga61ba428dde3a38fb3295f25e91cdc080"><td class="memItemLeft" align="right" valign="top"><a id="ga61ba428dde3a38fb3295f25e91cdc080"></a>
  374. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga61ba428dde3a38fb3295f25e91cdc080">USB_DTYPE_CS_ENDPOINT</a>&#160;&#160;&#160;0x25</td></tr>
  375. <tr class="memdesc:ga61ba428dde3a38fb3295f25e91cdc080"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class specific endpoint descriptor. <br /></td></tr>
  376. <tr class="separator:ga61ba428dde3a38fb3295f25e91cdc080"><td class="memSeparator" colspan="2">&#160;</td></tr>
  377. </table><table class="memberdecls">
  378. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  379. USB Standard requests</h2></td></tr>
  380. <tr class="memitem:ga2ad287478695ce37d8920c9470b2ed27"><td class="memItemLeft" align="right" valign="top"><a id="ga2ad287478695ce37d8920c9470b2ed27"></a>
  381. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga2ad287478695ce37d8920c9470b2ed27">USB_STD_GET_STATUS</a>&#160;&#160;&#160;0x00</td></tr>
  382. <tr class="memdesc:ga2ad287478695ce37d8920c9470b2ed27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns status for the specified recipient. <br /></td></tr>
  383. <tr class="separator:ga2ad287478695ce37d8920c9470b2ed27"><td class="memSeparator" colspan="2">&#160;</td></tr>
  384. <tr class="memitem:gab75849b041fcad933c092cb2c92e687c"><td class="memItemLeft" align="right" valign="top"><a id="gab75849b041fcad933c092cb2c92e687c"></a>
  385. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gab75849b041fcad933c092cb2c92e687c">USB_STD_CLEAR_FEATURE</a>&#160;&#160;&#160;0x01</td></tr>
  386. <tr class="memdesc:gab75849b041fcad933c092cb2c92e687c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to clear or disable a specific feature. <br /></td></tr>
  387. <tr class="separator:gab75849b041fcad933c092cb2c92e687c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  388. <tr class="memitem:ga62ab8761749f25c14fd23dbe5e24924d"><td class="memItemLeft" align="right" valign="top"><a id="ga62ab8761749f25c14fd23dbe5e24924d"></a>
  389. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga62ab8761749f25c14fd23dbe5e24924d">USB_STD_SET_FEATURE</a>&#160;&#160;&#160;0x03</td></tr>
  390. <tr class="memdesc:ga62ab8761749f25c14fd23dbe5e24924d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to set or enable a specific feature. <br /></td></tr>
  391. <tr class="separator:ga62ab8761749f25c14fd23dbe5e24924d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  392. <tr class="memitem:gaab264006b196a5963223739e4a9289fa"><td class="memItemLeft" align="right" valign="top"><a id="gaab264006b196a5963223739e4a9289fa"></a>
  393. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaab264006b196a5963223739e4a9289fa">USB_STD_SET_ADDRESS</a>&#160;&#160;&#160;0x05</td></tr>
  394. <tr class="memdesc:gaab264006b196a5963223739e4a9289fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the device address for all future device accesses. <br /></td></tr>
  395. <tr class="separator:gaab264006b196a5963223739e4a9289fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  396. <tr class="memitem:ga97f0c52d7008d8ba62008f5e17be6b45"><td class="memItemLeft" align="right" valign="top"><a id="ga97f0c52d7008d8ba62008f5e17be6b45"></a>
  397. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga97f0c52d7008d8ba62008f5e17be6b45">USB_STD_GET_DESCRIPTOR</a>&#160;&#160;&#160;0x06</td></tr>
  398. <tr class="memdesc:ga97f0c52d7008d8ba62008f5e17be6b45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the specified descriptor if the descriptor exists. <br /></td></tr>
  399. <tr class="separator:ga97f0c52d7008d8ba62008f5e17be6b45"><td class="memSeparator" colspan="2">&#160;</td></tr>
  400. <tr class="memitem:gac5d4ec37f340f3af59de27d81bd3b9a2"><td class="memItemLeft" align="right" valign="top"><a id="gac5d4ec37f340f3af59de27d81bd3b9a2"></a>
  401. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gac5d4ec37f340f3af59de27d81bd3b9a2">USB_STD_SET_DESCRIPTOR</a>&#160;&#160;&#160;0x07</td></tr>
  402. <tr class="memdesc:gac5d4ec37f340f3af59de27d81bd3b9a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This request is optional and may be used to update existing descriptors or new descriptors may be added. <br /></td></tr>
  403. <tr class="separator:gac5d4ec37f340f3af59de27d81bd3b9a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  404. <tr class="memitem:gaca070724014a2aa364ee6df5b580894e"><td class="memItemLeft" align="right" valign="top"><a id="gaca070724014a2aa364ee6df5b580894e"></a>
  405. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gaca070724014a2aa364ee6df5b580894e">USB_STD_GET_CONFIG</a>&#160;&#160;&#160;0x08</td></tr>
  406. <tr class="memdesc:gaca070724014a2aa364ee6df5b580894e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current device configuration value. <br /></td></tr>
  407. <tr class="separator:gaca070724014a2aa364ee6df5b580894e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  408. <tr class="memitem:ga5ddeb8485dcaad324de96acd426215ac"><td class="memItemLeft" align="right" valign="top"><a id="ga5ddeb8485dcaad324de96acd426215ac"></a>
  409. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga5ddeb8485dcaad324de96acd426215ac">USB_STD_SET_CONFIG</a>&#160;&#160;&#160;0x09</td></tr>
  410. <tr class="memdesc:ga5ddeb8485dcaad324de96acd426215ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the device configuration. <br /></td></tr>
  411. <tr class="separator:ga5ddeb8485dcaad324de96acd426215ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  412. <tr class="memitem:ga4e01e91a47dfba54fcf7f74d6c8eb731"><td class="memItemLeft" align="right" valign="top"><a id="ga4e01e91a47dfba54fcf7f74d6c8eb731"></a>
  413. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga4e01e91a47dfba54fcf7f74d6c8eb731">USB_STD_GET_INTERFACE</a>&#160;&#160;&#160;0x0A</td></tr>
  414. <tr class="memdesc:ga4e01e91a47dfba54fcf7f74d6c8eb731"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the selected alternate setting for the specified interface. <br /></td></tr>
  415. <tr class="separator:ga4e01e91a47dfba54fcf7f74d6c8eb731"><td class="memSeparator" colspan="2">&#160;</td></tr>
  416. <tr class="memitem:gad03189a1217bbdc02567ed17a6942dc8"><td class="memItemLeft" align="right" valign="top"><a id="gad03189a1217bbdc02567ed17a6942dc8"></a>
  417. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gad03189a1217bbdc02567ed17a6942dc8">USB_STD_SET_INTERFACE</a>&#160;&#160;&#160;0x0B</td></tr>
  418. <tr class="memdesc:gad03189a1217bbdc02567ed17a6942dc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the host to select an alternate setting for the specified interface. <br /></td></tr>
  419. <tr class="separator:gad03189a1217bbdc02567ed17a6942dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  420. <tr class="memitem:ga70e67e3f889ad2c728416a00a4d4c8b0"><td class="memItemLeft" align="right" valign="top"><a id="ga70e67e3f889ad2c728416a00a4d4c8b0"></a>
  421. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga70e67e3f889ad2c728416a00a4d4c8b0">USB_STD_SYNCH_FRAME</a>&#160;&#160;&#160;0x0C</td></tr>
  422. <tr class="memdesc:ga70e67e3f889ad2c728416a00a4d4c8b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used to set and then report an endpoint's synchronization frame. <br /></td></tr>
  423. <tr class="separator:ga70e67e3f889ad2c728416a00a4d4c8b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  424. </table><table class="memberdecls">
  425. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  426. USB Feature selector</h2></td></tr>
  427. <tr class="memitem:ga9ed63c8f4b74289bed63db2d9f93eb62"><td class="memItemLeft" align="right" valign="top"><a id="ga9ed63c8f4b74289bed63db2d9f93eb62"></a>
  428. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga9ed63c8f4b74289bed63db2d9f93eb62">USB_FEAT_ENDPOINT_HALT</a>&#160;&#160;&#160;0x00</td></tr>
  429. <tr class="memdesc:ga9ed63c8f4b74289bed63db2d9f93eb62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Halt endpoint. <br /></td></tr>
  430. <tr class="separator:ga9ed63c8f4b74289bed63db2d9f93eb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
  431. <tr class="memitem:ga9fb1a5f9c4d14831b1c481b009ebc573"><td class="memItemLeft" align="right" valign="top"><a id="ga9fb1a5f9c4d14831b1c481b009ebc573"></a>
  432. #define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_FEAT_REMOTE_WKUP</b>&#160;&#160;&#160;0x01</td></tr>
  433. <tr class="separator:ga9fb1a5f9c4d14831b1c481b009ebc573"><td class="memSeparator" colspan="2">&#160;</td></tr>
  434. <tr class="memitem:ga0de6998107cb381c60906062c219a1f5"><td class="memItemLeft" align="right" valign="top"><a id="ga0de6998107cb381c60906062c219a1f5"></a>
  435. #define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_FEAT_TEST_MODE</b>&#160;&#160;&#160;0x02</td></tr>
  436. <tr class="separator:ga0de6998107cb381c60906062c219a1f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  437. <tr class="memitem:gab5a0f1d3a75c0862549f75f55c82ba28"><td class="memItemLeft" align="right" valign="top"><a id="gab5a0f1d3a75c0862549f75f55c82ba28"></a>
  438. #define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_FEAT_DEBUG_MODE</b>&#160;&#160;&#160;0x06</td></tr>
  439. <tr class="separator:gab5a0f1d3a75c0862549f75f55c82ba28"><td class="memSeparator" colspan="2">&#160;</td></tr>
  440. </table><table class="memberdecls">
  441. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
  442. USB Test mode Selectors</h2></td></tr>
  443. <tr class="memitem:ga43656056ee4e69cd60abf1d98d582925"><td class="memItemLeft" align="right" valign="top"><a id="ga43656056ee4e69cd60abf1d98d582925"></a>
  444. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga43656056ee4e69cd60abf1d98d582925">USB_TEST_J</a>&#160;&#160;&#160;0x01</td></tr>
  445. <tr class="memdesc:ga43656056ee4e69cd60abf1d98d582925"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test J. <br /></td></tr>
  446. <tr class="separator:ga43656056ee4e69cd60abf1d98d582925"><td class="memSeparator" colspan="2">&#160;</td></tr>
  447. <tr class="memitem:ga94cc55d6876e137b0d8101d72ed69f0a"><td class="memItemLeft" align="right" valign="top"><a id="ga94cc55d6876e137b0d8101d72ed69f0a"></a>
  448. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga94cc55d6876e137b0d8101d72ed69f0a">USB_TEST_K</a>&#160;&#160;&#160;0x02</td></tr>
  449. <tr class="memdesc:ga94cc55d6876e137b0d8101d72ed69f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test K. <br /></td></tr>
  450. <tr class="separator:ga94cc55d6876e137b0d8101d72ed69f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  451. <tr class="memitem:gae12f4f9fcbaf8f19ba4f2ded69fd6b0c"><td class="memItemLeft" align="right" valign="top"><a id="gae12f4f9fcbaf8f19ba4f2ded69fd6b0c"></a>
  452. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#gae12f4f9fcbaf8f19ba4f2ded69fd6b0c">USB_TEST_SE0_NAK</a>&#160;&#160;&#160;0x03</td></tr>
  453. <tr class="memdesc:gae12f4f9fcbaf8f19ba4f2ded69fd6b0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test SE0 NAK. <br /></td></tr>
  454. <tr class="separator:gae12f4f9fcbaf8f19ba4f2ded69fd6b0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  455. <tr class="memitem:ga1701867b88f438ef2974c255664099d3"><td class="memItemLeft" align="right" valign="top"><a id="ga1701867b88f438ef2974c255664099d3"></a>
  456. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga1701867b88f438ef2974c255664099d3">USB_TEST_PACKET</a>&#160;&#160;&#160;0x04</td></tr>
  457. <tr class="memdesc:ga1701867b88f438ef2974c255664099d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test Pcaket. <br /></td></tr>
  458. <tr class="separator:ga1701867b88f438ef2974c255664099d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  459. <tr class="memitem:ga21cf0cae77c05fd596928d03305d7bac"><td class="memItemLeft" align="right" valign="top"><a id="ga21cf0cae77c05fd596928d03305d7bac"></a>
  460. #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../da/d74/a00099.html#ga21cf0cae77c05fd596928d03305d7bac">USB_TEST_FORCE_ENABLE</a>&#160;&#160;&#160;0x05</td></tr>
  461. <tr class="memdesc:ga21cf0cae77c05fd596928d03305d7bac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test Force Enable. <br /></td></tr>
  462. <tr class="separator:ga21cf0cae77c05fd596928d03305d7bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  463. </table>
  464. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  465. <p>This module contains generic USB device framework definitions. </p>
  466. <p>This module based on</p><ul>
  467. <li>Chapter 9 of the <a href="https://www.usb.org/sites/default/files/usb_20_20181221.zip">Universal Serial Bus Specification Revision 2.0</a></li>
  468. <li><a href="https://github.com/abcminiuser/lufa">LUFA - the Lightweight USB Framework for AVRs.</a> </li>
  469. </ul>
  470. <h2 class="groupheader">Macro Definition Documentation</h2>
  471. <a id="ga63eb203f5f5e37dc55157680549c656c"></a>
  472. <h2 class="memtitle"><span class="permalink"><a href="#ga63eb203f5f5e37dc55157680549c656c">&#9670;&nbsp;</a></span>VERSION_BCD</h2>
  473. <div class="memitem">
  474. <div class="memproto">
  475. <table class="memname">
  476. <tr>
  477. <td class="memname">#define VERSION_BCD</td>
  478. <td>(</td>
  479. <td class="paramtype">&#160;</td>
  480. <td class="paramname">maj, </td>
  481. </tr>
  482. <tr>
  483. <td class="paramkey"></td>
  484. <td></td>
  485. <td class="paramtype">&#160;</td>
  486. <td class="paramname">min, </td>
  487. </tr>
  488. <tr>
  489. <td class="paramkey"></td>
  490. <td></td>
  491. <td class="paramtype">&#160;</td>
  492. <td class="paramname">rev&#160;</td>
  493. </tr>
  494. <tr>
  495. <td></td>
  496. <td>)</td>
  497. <td></td><td>&#160;&#160;&#160;(((maj &amp; 0xFF) &lt;&lt; 8) | ((min &amp; 0x0F) &lt;&lt; 4) | (rev &amp; 0x0F))</td>
  498. </tr>
  499. </table>
  500. </div><div class="memdoc">
  501. <p>Macro to encode major/minor/version number into BCD code </p><dl class="params"><dt>Parameters</dt><dd>
  502. <table class="params">
  503. <tr><td class="paramname">maj</td><td>Major version </td></tr>
  504. <tr><td class="paramname">min</td><td>Minor version </td></tr>
  505. <tr><td class="paramname">rev</td><td>Revision </td></tr>
  506. </table>
  507. </dd>
  508. </dl>
  509. <p class="definition">Definition at line <a class="el" href="../../da/d24/a00068_source.html#l00040">40</a> of file <a class="el" href="../../da/d24/a00068_source.html">usb_std.h</a>.</p>
  510. </div>
  511. </div>
  512. <a id="ga872cd80ad22caad26fe45fe2182645d4"></a>
  513. <h2 class="memtitle"><span class="permalink"><a href="#ga872cd80ad22caad26fe45fe2182645d4">&#9670;&nbsp;</a></span>USB_ARRAY_DESC</h2>
  514. <div class="memitem">
  515. <div class="memproto">
  516. <table class="memname">
  517. <tr>
  518. <td class="memname">#define USB_ARRAY_DESC</td>
  519. <td>(</td>
  520. <td class="paramtype">&#160;</td>
  521. <td class="paramname"><em>...</em></td><td>)</td>
  522. <td></td>
  523. </tr>
  524. </table>
  525. </div><div class="memdoc">
  526. <b>Value:</b><div class="fragment"><div class="line">{.bLength = 2 + <span class="keyword">sizeof</span>((uint16_t[]){__VA_ARGS__}),\</div><div class="line"> .bDescriptorType = <a class="code" href="../../da/d74/a00099.html#gabde1b2a68da742b490fa1281c80cce39">USB_DTYPE_STRING</a>,\</div><div class="line"> .wString = {__VA_ARGS__}}</div><div class="ttc" id="a00099_html_gabde1b2a68da742b490fa1281c80cce39"><div class="ttname"><a href="../../da/d74/a00099.html#gabde1b2a68da742b490fa1281c80cce39">USB_DTYPE_STRING</a></div><div class="ttdeci">#define USB_DTYPE_STRING</div><div class="ttdoc">String descriptor. </div><div class="ttdef"><b>Definition:</b> <a href="../../da/d24/a00068_source.html#l00121">usb_std.h:121</a></div></div>
  527. </div><!-- fragment --><p>Macro to create <a class="el" href="../../dc/ded/a00252.html">usb_string_descriptor</a> from array </p>
  528. <p class="definition">Definition at line <a class="el" href="../../da/d24/a00068_source.html#l00043">43</a> of file <a class="el" href="../../da/d24/a00068_source.html">usb_std.h</a>.</p>
  529. </div>
  530. </div>
  531. <a id="ga362afc1ada1c8cbeca04329e99c2e8f9"></a>
  532. <h2 class="memtitle"><span class="permalink"><a href="#ga362afc1ada1c8cbeca04329e99c2e8f9">&#9670;&nbsp;</a></span>USB_STRING_DESC</h2>
  533. <div class="memitem">
  534. <div class="memproto">
  535. <table class="memname">
  536. <tr>
  537. <td class="memname">#define USB_STRING_DESC</td>
  538. <td>(</td>
  539. <td class="paramtype">&#160;</td>
  540. <td class="paramname">s</td><td>)</td>
  541. <td></td>
  542. </tr>
  543. </table>
  544. </div><div class="memdoc">
  545. <b>Value:</b><div class="fragment"><div class="line">{.bLength = <span class="keyword">sizeof</span>(CAT(u,s)),\</div><div class="line"> .bDescriptorType = <a class="code" href="../../da/d74/a00099.html#gabde1b2a68da742b490fa1281c80cce39">USB_DTYPE_STRING</a>,\</div><div class="line"> .wString = {CAT(u,s)}}</div><div class="ttc" id="a00099_html_gabde1b2a68da742b490fa1281c80cce39"><div class="ttname"><a href="../../da/d74/a00099.html#gabde1b2a68da742b490fa1281c80cce39">USB_DTYPE_STRING</a></div><div class="ttdeci">#define USB_DTYPE_STRING</div><div class="ttdoc">String descriptor. </div><div class="ttdef"><b>Definition:</b> <a href="../../da/d24/a00068_source.html#l00121">usb_std.h:121</a></div></div>
  546. </div><!-- fragment --><p>Macro to create <a class="el" href="../../dc/ded/a00252.html">usb_string_descriptor</a> from string </p>
  547. <p class="definition">Definition at line <a class="el" href="../../da/d24/a00068_source.html#l00047">47</a> of file <a class="el" href="../../da/d24/a00068_source.html">usb_std.h</a>.</p>
  548. </div>
  549. </div>
  550. </div><!-- contents -->
  551. </div><!-- doc-content -->
  552. <!-- start footer part -->
  553. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  554. <ul>
  555. <li class="footer">Generated by
  556. <a href="http://www.doxygen.org/index.html">
  557. <img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  558. </ul>
  559. </div>
  560. </body>
  561. </html>