libnx/usb_8h.html
2025-05-08 06:59:12 +00:00

408 lines
30 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libnx: include/switch/services/usb.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">libnx<span id="projectnumber">&#160;v4.9.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_42bea3d40f1f1694e41a8f3166c98108.html">switch</a></li><li class="navelem"><a class="el" href="dir_04a7e0b94d44ce4fc7ca3462163fd33c.html">services</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle"><div class="title">usb.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Common USB (usb:*) service IPC header.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="types_8h_source.html">../types.h</a>&quot;</code><br />
</div>
<p><a href="usb_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structusb__endpoint__descriptor.html">usb_endpoint_descriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with some adjustments. <a href="structusb__endpoint__descriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structusb__interface__descriptor.html">usb_interface_descriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with some adjustments. <a href="structusb__interface__descriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structusb__device__descriptor.html">usb_device_descriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with some adjustments. <a href="structusb__device__descriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structusb__config__descriptor.html">usb_config_descriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with some adjustments. <a href="structusb__config__descriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structusb__ss__endpoint__companion__descriptor.html">usb_ss_endpoint_companion_descriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with some adjustments. <a href="structusb__ss__endpoint__companion__descriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structusb__string__descriptor.html">usb_string_descriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with some adjustments. <a href="structusb__string__descriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aeaeb5548b6db222104675158bce05d85" id="r_aeaeb5548b6db222104675158bce05d85"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#aeaeb5548b6db222104675158bce05d85">USB_DT_INTERFACE_SIZE</a>&#160;&#160;&#160;9</td></tr>
<tr class="memdesc:aeaeb5548b6db222104675158bce05d85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Names starting with "libusb" were changed to "usb" to avoid collision with actual libusb if it's ever used. <br /></td></tr>
<tr class="separator:aeaeb5548b6db222104675158bce05d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08bf41bc04ea5919ed8820007c198b71" id="r_a08bf41bc04ea5919ed8820007c198b71"><td class="memItemLeft" align="right" valign="top"><a id="a08bf41bc04ea5919ed8820007c198b71" name="a08bf41bc04ea5919ed8820007c198b71"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_DT_ENDPOINT_SIZE</b>&#160;&#160;&#160;7</td></tr>
<tr class="separator:a08bf41bc04ea5919ed8820007c198b71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf113fe0d44d34bd71d49e7baf39d9d3" id="r_adf113fe0d44d34bd71d49e7baf39d9d3"><td class="memItemLeft" align="right" valign="top"><a id="adf113fe0d44d34bd71d49e7baf39d9d3" name="adf113fe0d44d34bd71d49e7baf39d9d3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_DT_DEVICE_SIZE</b>&#160;&#160;&#160;0x12</td></tr>
<tr class="separator:adf113fe0d44d34bd71d49e7baf39d9d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2081e5b62bfe6f3989c05190f0804547" id="r_a2081e5b62bfe6f3989c05190f0804547"><td class="memItemLeft" align="right" valign="top"><a id="a2081e5b62bfe6f3989c05190f0804547" name="a2081e5b62bfe6f3989c05190f0804547"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_DT_SS_ENDPOINT_COMPANION_SIZE</b>&#160;&#160;&#160;6</td></tr>
<tr class="separator:a2081e5b62bfe6f3989c05190f0804547"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af69ecdd9367b248cd22627a3a1886dfe" id="r_af69ecdd9367b248cd22627a3a1886dfe"><td class="memItemLeft" align="right" valign="top"><a id="af69ecdd9367b248cd22627a3a1886dfe" name="af69ecdd9367b248cd22627a3a1886dfe"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_ENDPOINT_ADDRESS_MASK</b>&#160;&#160;&#160;0x0f /* in bEndpointAddress */</td></tr>
<tr class="separator:af69ecdd9367b248cd22627a3a1886dfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93a6aa5841b4ff46167822362add046d" id="r_a93a6aa5841b4ff46167822362add046d"><td class="memItemLeft" align="right" valign="top"><a id="a93a6aa5841b4ff46167822362add046d" name="a93a6aa5841b4ff46167822362add046d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_ENDPOINT_DIR_MASK</b>&#160;&#160;&#160;0x80</td></tr>
<tr class="separator:a93a6aa5841b4ff46167822362add046d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b70fd1aa999a5b761e1a302063a6442" id="r_a3b70fd1aa999a5b761e1a302063a6442"><td class="memItemLeft" align="right" valign="top"><a id="a3b70fd1aa999a5b761e1a302063a6442" name="a3b70fd1aa999a5b761e1a302063a6442"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>USB_TRANSFER_TYPE_MASK</b>&#160;&#160;&#160;0x03 /* in bmAttributes */</td></tr>
<tr class="separator:a3b70fd1aa999a5b761e1a302063a6442"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a64d3a394e6739964c4cba189ac0fced0" id="r_a64d3a394e6739964c4cba189ac0fced0"><td class="memItemLeft" align="right" valign="top"><a id="a64d3a394e6739964c4cba189ac0fced0" name="a64d3a394e6739964c4cba189ac0fced0"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#a64d3a394e6739964c4cba189ac0fced0">usb_class_code</a> { <br />
&#160;&#160;<b>USB_CLASS_PER_INTERFACE</b> = 0
, <br />
&#160;&#160;<b>USB_CLASS_AUDIO</b> = 1
, <br />
&#160;&#160;<b>USB_CLASS_COMM</b> = 2
, <br />
&#160;&#160;<b>USB_CLASS_HID</b> = 3
, <br />
&#160;&#160;<b>USB_CLASS_PHYSICAL</b> = 5
, <br />
&#160;&#160;<b>USB_CLASS_PRINTER</b> = 7
, <br />
&#160;&#160;<b>USB_CLASS_PTP</b> = 6
, <br />
&#160;&#160;<b>USB_CLASS_IMAGE</b> = 6
, <br />
&#160;&#160;<b>USB_CLASS_MASS_STORAGE</b> = 8
, <br />
&#160;&#160;<b>USB_CLASS_HUB</b> = 9
, <br />
&#160;&#160;<b>USB_CLASS_DATA</b> = 10
, <br />
&#160;&#160;<b>USB_CLASS_SMART_CARD</b> = 0x0b
, <br />
&#160;&#160;<b>USB_CLASS_CONTENT_SECURITY</b> = 0x0d
, <br />
&#160;&#160;<b>USB_CLASS_VIDEO</b> = 0x0e
, <br />
&#160;&#160;<b>USB_CLASS_PERSONAL_HEALTHCARE</b> = 0x0f
, <br />
&#160;&#160;<b>USB_CLASS_DIAGNOSTIC_DEVICE</b> = 0xdc
, <br />
&#160;&#160;<b>USB_CLASS_WIRELESS</b> = 0xe0
, <br />
&#160;&#160;<b>USB_CLASS_APPLICATION</b> = 0xfe
, <br />
&#160;&#160;<b>USB_CLASS_VENDOR_SPEC</b> = 0xff
<br />
}</td></tr>
<tr class="memdesc:a64d3a394e6739964c4cba189ac0fced0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <br /></td></tr>
<tr class="separator:a64d3a394e6739964c4cba189ac0fced0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87d46dd117d939964c939f1518dec93f" id="r_a87d46dd117d939964c939f1518dec93f"><td class="memItemLeft" align="right" valign="top"><a id="a87d46dd117d939964c939f1518dec93f" name="a87d46dd117d939964c939f1518dec93f"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#a87d46dd117d939964c939f1518dec93f">usb_descriptor_type</a> { <br />
&#160;&#160;<b>USB_DT_DEVICE</b> = 0x01
, <br />
&#160;&#160;<b>USB_DT_CONFIG</b> = 0x02
, <br />
&#160;&#160;<b>USB_DT_STRING</b> = 0x03
, <br />
&#160;&#160;<b>USB_DT_INTERFACE</b> = 0x04
, <br />
&#160;&#160;<b>USB_DT_ENDPOINT</b> = 0x05
, <br />
&#160;&#160;<b>USB_DT_BOS</b> = 0x0f
, <br />
&#160;&#160;<b>USB_DT_DEVICE_CAPABILITY</b> = 0x10
, <br />
&#160;&#160;<b>USB_DT_HID</b> = 0x21
, <br />
&#160;&#160;<b>USB_DT_REPORT</b> = 0x22
, <br />
&#160;&#160;<b>USB_DT_PHYSICAL</b> = 0x23
, <br />
&#160;&#160;<b>USB_DT_HUB</b> = 0x29
, <br />
&#160;&#160;<b>USB_DT_SUPERSPEED_HUB</b> = 0x2a
, <br />
&#160;&#160;<b>USB_DT_SS_ENDPOINT_COMPANION</b> = 0x30
<br />
}</td></tr>
<tr class="memdesc:a87d46dd117d939964c939f1518dec93f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <br /></td></tr>
<tr class="separator:a87d46dd117d939964c939f1518dec93f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94ff37ca1b972cf196bedacdc3f436f1" id="r_a94ff37ca1b972cf196bedacdc3f436f1"><td class="memItemLeft" align="right" valign="top"><a id="a94ff37ca1b972cf196bedacdc3f436f1" name="a94ff37ca1b972cf196bedacdc3f436f1"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#a94ff37ca1b972cf196bedacdc3f436f1">usb_endpoint_direction</a> { <br />
&#160;&#160;<b>USB_ENDPOINT_IN</b> = 0x80
, <br />
&#160;&#160;<b>USB_ENDPOINT_OUT</b> = 0x00
<br />
}</td></tr>
<tr class="memdesc:a94ff37ca1b972cf196bedacdc3f436f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <br /></td></tr>
<tr class="separator:a94ff37ca1b972cf196bedacdc3f436f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afea008df386fe0c109e0a1657a4b79fc" id="r_afea008df386fe0c109e0a1657a4b79fc"><td class="memItemLeft" align="right" valign="top"><a id="afea008df386fe0c109e0a1657a4b79fc" name="afea008df386fe0c109e0a1657a4b79fc"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#afea008df386fe0c109e0a1657a4b79fc">usb_transfer_type</a> { <br />
&#160;&#160;<b>USB_TRANSFER_TYPE_CONTROL</b> = 0
, <br />
&#160;&#160;<b>USB_TRANSFER_TYPE_ISOCHRONOUS</b> = 1
, <br />
&#160;&#160;<b>USB_TRANSFER_TYPE_BULK</b> = 2
, <br />
&#160;&#160;<b>USB_TRANSFER_TYPE_INTERRUPT</b> = 3
, <br />
&#160;&#160;<b>USB_TRANSFER_TYPE_BULK_STREAM</b> = 4
<br />
}</td></tr>
<tr class="memdesc:afea008df386fe0c109e0a1657a4b79fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <br /></td></tr>
<tr class="separator:afea008df386fe0c109e0a1657a4b79fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6874e8f9ccae4d268b3b0e6e22dd3562" id="r_a6874e8f9ccae4d268b3b0e6e22dd3562"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562">usb_standard_request</a> { <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562aae77cfe1c3c6fafb83c2dccf40ef7f22">USB_REQUEST_GET_STATUS</a> = 0x00
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a76da2a8e661b191b2c33e70f5c35396b">USB_REQUEST_CLEAR_FEATURE</a> = 0x01
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562aaf2cb29dac56a65fec5f50b93cb0fe1d">USB_REQUEST_SET_FEATURE</a> = 0x03
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a277abb98078a62353378bc1f04dded1a">USB_REQUEST_SET_ADDRESS</a> = 0x05
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562ae444b57cd54924fb378c2fe622292588">USB_REQUEST_GET_DESCRIPTOR</a> = 0x06
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a9903fc6d00f682ddb16bf4c607416d3b">USB_REQUEST_SET_DESCRIPTOR</a> = 0x07
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562af1e1bc551f15939c5fbc25b66c3cbf5d">USB_REQUEST_GET_CONFIGURATION</a> = 0x08
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a114d99d2fef6d8dca231e08ac8361869">USB_REQUEST_SET_CONFIGURATION</a> = 0x09
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a91be0e1b348c287a96a19b69d53ba88b">USB_REQUEST_GET_INTERFACE</a> = 0x0A
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562ad0b2b1a2d9709594947a980d4bce645d">USB_REQUEST_SET_INTERFACE</a> = 0x0B
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a4ecd57f7da528b69a5bca5863896c6bd">USB_REQUEST_SYNCH_FRAME</a> = 0x0C
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562aa13bac86f2b9152963798ff3874ff654">USB_REQUEST_SET_SEL</a> = 0x30
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562a8dd2ac63a91f40442a4b649befac888b">USB_SET_ISOCH_DELAY</a> = 0x31
<br />
}</td></tr>
<tr class="memdesc:a6874e8f9ccae4d268b3b0e6e22dd3562"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <a href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562">More...</a><br /></td></tr>
<tr class="separator:a6874e8f9ccae4d268b3b0e6e22dd3562"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace11822fcebf8fa3949aed30be112126" id="r_ace11822fcebf8fa3949aed30be112126"><td class="memItemLeft" align="right" valign="top"><a id="ace11822fcebf8fa3949aed30be112126" name="ace11822fcebf8fa3949aed30be112126"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#ace11822fcebf8fa3949aed30be112126">usb_iso_sync_type</a> { <br />
&#160;&#160;<b>USB_ISO_SYNC_TYPE_NONE</b> = 0
, <br />
&#160;&#160;<b>USB_ISO_SYNC_TYPE_ASYNC</b> = 1
, <br />
&#160;&#160;<b>USB_ISO_SYNC_TYPE_ADAPTIVE</b> = 2
, <br />
&#160;&#160;<b>USB_ISO_SYNC_TYPE_SYNC</b> = 3
<br />
}</td></tr>
<tr class="memdesc:ace11822fcebf8fa3949aed30be112126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <br /></td></tr>
<tr class="separator:ace11822fcebf8fa3949aed30be112126"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac18c30e5e309c8adc3e2aa59f5b54d8d" id="r_ac18c30e5e309c8adc3e2aa59f5b54d8d"><td class="memItemLeft" align="right" valign="top"><a id="ac18c30e5e309c8adc3e2aa59f5b54d8d" name="ac18c30e5e309c8adc3e2aa59f5b54d8d"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#ac18c30e5e309c8adc3e2aa59f5b54d8d">usb_iso_usage_type</a> { <br />
&#160;&#160;<b>USB_ISO_USAGE_TYPE_DATA</b> = 0
, <br />
&#160;&#160;<b>USB_ISO_USAGE_TYPE_FEEDBACK</b> = 1
, <br />
&#160;&#160;<b>USB_ISO_USAGE_TYPE_IMPLICIT</b> = 2
<br />
}</td></tr>
<tr class="memdesc:ac18c30e5e309c8adc3e2aa59f5b54d8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imported from libusb, with changed names. <br /></td></tr>
<tr class="separator:ac18c30e5e309c8adc3e2aa59f5b54d8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b4994a3d515390e4db5392fdd7230e5" id="r_a7b4994a3d515390e4db5392fdd7230e5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5">UsbState</a> { <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5a5369809fe822770dc90c9b7fae897c50">UsbState_Detached</a> = 0
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5afcbf7042e0296ded59569acb7935e7b7">UsbState_Attached</a> = 1
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5ab8c9e722b20efe37d5fd51f5a911296e">UsbState_Powered</a> = 2
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5a332a8dd629c40069b77a6f04976716ad">UsbState_Default</a> = 3
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5aa180081f92e98d8193c974e7d8e21bdc">UsbState_Address</a> = 4
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5adde609567b2f711cf9bf93c2c98afedc">UsbState_Configured</a> = 5
, <br />
&#160;&#160;<a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5abb4b1bec20f0aacb1e3190f74b3ddb43">UsbState_Suspended</a> = 6
<br />
}</td></tr>
<tr class="memdesc:a7b4994a3d515390e4db5392fdd7230e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">USB Device States, per USB 2.0 spec. <a href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5">More...</a><br /></td></tr>
<tr class="separator:a7b4994a3d515390e4db5392fdd7230e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Common USB (usb:*) service IPC header. </p>
<dl class="section author"><dt>Author</dt><dd>SciresM, yellows8 </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>libnx Authors </dd></dl>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aeaeb5548b6db222104675158bce05d85" name="aeaeb5548b6db222104675158bce05d85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeaeb5548b6db222104675158bce05d85">&#9670;&#160;</a></span>USB_DT_INTERFACE_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define USB_DT_INTERFACE_SIZE&#160;&#160;&#160;9</td>
</tr>
</table>
</div><div class="memdoc">
<p>Names starting with "libusb" were changed to "usb" to avoid collision with actual libusb if it's ever used. </p>
<p>Imported from libusb with changed names. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a6874e8f9ccae4d268b3b0e6e22dd3562" name="a6874e8f9ccae4d268b3b0e6e22dd3562"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6874e8f9ccae4d268b3b0e6e22dd3562">&#9670;&#160;</a></span>usb_standard_request</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="usb_8h.html#a6874e8f9ccae4d268b3b0e6e22dd3562">usb_standard_request</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Imported from libusb, with changed names. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562aae77cfe1c3c6fafb83c2dccf40ef7f22" name="a6874e8f9ccae4d268b3b0e6e22dd3562aae77cfe1c3c6fafb83c2dccf40ef7f22"></a>USB_REQUEST_GET_STATUS&#160;</td><td class="fielddoc"><p>Request status of the specific recipient. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a76da2a8e661b191b2c33e70f5c35396b" name="a6874e8f9ccae4d268b3b0e6e22dd3562a76da2a8e661b191b2c33e70f5c35396b"></a>USB_REQUEST_CLEAR_FEATURE&#160;</td><td class="fielddoc"><p>Clear or disable a specific feature. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562aaf2cb29dac56a65fec5f50b93cb0fe1d" name="a6874e8f9ccae4d268b3b0e6e22dd3562aaf2cb29dac56a65fec5f50b93cb0fe1d"></a>USB_REQUEST_SET_FEATURE&#160;</td><td class="fielddoc"><p>Set or enable a specific feature. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a277abb98078a62353378bc1f04dded1a" name="a6874e8f9ccae4d268b3b0e6e22dd3562a277abb98078a62353378bc1f04dded1a"></a>USB_REQUEST_SET_ADDRESS&#160;</td><td class="fielddoc"><p>Set device address for all future accesses. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562ae444b57cd54924fb378c2fe622292588" name="a6874e8f9ccae4d268b3b0e6e22dd3562ae444b57cd54924fb378c2fe622292588"></a>USB_REQUEST_GET_DESCRIPTOR&#160;</td><td class="fielddoc"><p>Get the specified descriptor. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a9903fc6d00f682ddb16bf4c607416d3b" name="a6874e8f9ccae4d268b3b0e6e22dd3562a9903fc6d00f682ddb16bf4c607416d3b"></a>USB_REQUEST_SET_DESCRIPTOR&#160;</td><td class="fielddoc"><p>Used to update existing descriptors or add new descriptors. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562af1e1bc551f15939c5fbc25b66c3cbf5d" name="a6874e8f9ccae4d268b3b0e6e22dd3562af1e1bc551f15939c5fbc25b66c3cbf5d"></a>USB_REQUEST_GET_CONFIGURATION&#160;</td><td class="fielddoc"><p>Get the current device configuration value. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a114d99d2fef6d8dca231e08ac8361869" name="a6874e8f9ccae4d268b3b0e6e22dd3562a114d99d2fef6d8dca231e08ac8361869"></a>USB_REQUEST_SET_CONFIGURATION&#160;</td><td class="fielddoc"><p>Set device configuration. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a91be0e1b348c287a96a19b69d53ba88b" name="a6874e8f9ccae4d268b3b0e6e22dd3562a91be0e1b348c287a96a19b69d53ba88b"></a>USB_REQUEST_GET_INTERFACE&#160;</td><td class="fielddoc"><p>Return the selected alternate setting for the specified interface. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562ad0b2b1a2d9709594947a980d4bce645d" name="a6874e8f9ccae4d268b3b0e6e22dd3562ad0b2b1a2d9709594947a980d4bce645d"></a>USB_REQUEST_SET_INTERFACE&#160;</td><td class="fielddoc"><p>Select an alternate interface for the specified interface. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a4ecd57f7da528b69a5bca5863896c6bd" name="a6874e8f9ccae4d268b3b0e6e22dd3562a4ecd57f7da528b69a5bca5863896c6bd"></a>USB_REQUEST_SYNCH_FRAME&#160;</td><td class="fielddoc"><p>Set then report an endpoint's synchronization frame. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562aa13bac86f2b9152963798ff3874ff654" name="a6874e8f9ccae4d268b3b0e6e22dd3562aa13bac86f2b9152963798ff3874ff654"></a>USB_REQUEST_SET_SEL&#160;</td><td class="fielddoc"><p>Sets both the U1 and U2 Exit Latency. </p>
</td></tr>
<tr><td class="fieldname"><a id="a6874e8f9ccae4d268b3b0e6e22dd3562a8dd2ac63a91f40442a4b649befac888b" name="a6874e8f9ccae4d268b3b0e6e22dd3562a8dd2ac63a91f40442a4b649befac888b"></a>USB_SET_ISOCH_DELAY&#160;</td><td class="fielddoc"><p>Delay from the time a host transmits a packet to the time it is received by the device. </p>
</td></tr>
</table>
</div>
</div>
<a id="a7b4994a3d515390e4db5392fdd7230e5" name="a7b4994a3d515390e4db5392fdd7230e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b4994a3d515390e4db5392fdd7230e5">&#9670;&#160;</a></span>UsbState</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="usb_8h.html#a7b4994a3d515390e4db5392fdd7230e5">UsbState</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>USB Device States, per USB 2.0 spec. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5a5369809fe822770dc90c9b7fae897c50" name="a7b4994a3d515390e4db5392fdd7230e5a5369809fe822770dc90c9b7fae897c50"></a>UsbState_Detached&#160;</td><td class="fielddoc"><p>Device is not attached to USB. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5afcbf7042e0296ded59569acb7935e7b7" name="a7b4994a3d515390e4db5392fdd7230e5afcbf7042e0296ded59569acb7935e7b7"></a>UsbState_Attached&#160;</td><td class="fielddoc"><p>Device is attached, but is not powered. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5ab8c9e722b20efe37d5fd51f5a911296e" name="a7b4994a3d515390e4db5392fdd7230e5ab8c9e722b20efe37d5fd51f5a911296e"></a>UsbState_Powered&#160;</td><td class="fielddoc"><p>Device is attached and powered, but has not been reset. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5a332a8dd629c40069b77a6f04976716ad" name="a7b4994a3d515390e4db5392fdd7230e5a332a8dd629c40069b77a6f04976716ad"></a>UsbState_Default&#160;</td><td class="fielddoc"><p>Device is attached, powered, and has been reset, but does not have an address. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5aa180081f92e98d8193c974e7d8e21bdc" name="a7b4994a3d515390e4db5392fdd7230e5aa180081f92e98d8193c974e7d8e21bdc"></a>UsbState_Address&#160;</td><td class="fielddoc"><p>Device is attached, powered, has been reset, has an address, but is not configured. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5adde609567b2f711cf9bf93c2c98afedc" name="a7b4994a3d515390e4db5392fdd7230e5adde609567b2f711cf9bf93c2c98afedc"></a>UsbState_Configured&#160;</td><td class="fielddoc"><p>Device is attached, powered, has been reset, has an address, configured, and may be used. </p>
</td></tr>
<tr><td class="fieldname"><a id="a7b4994a3d515390e4db5392fdd7230e5abb4b1bec20f0aacb1e3190f74b3ddb43" name="a7b4994a3d515390e4db5392fdd7230e5abb4b1bec20f0aacb1e3190f74b3ddb43"></a>UsbState_Suspended&#160;</td><td class="fielddoc"><p>Device is attached and powered, but has not seen bus activity for 3ms. Device is suspended and cannot be used. </p>
</td></tr>
</table>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>