mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-23 13:22:40 +02:00
494 lines
98 KiB
HTML
494 lines
98 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/usbhs.h Source File</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"> 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&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&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function() { init_codefold(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<!-- 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="headertitle"><div class="title">usbhs.h</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="usbhs_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> * @file usbhs.h</span></div>
|
|
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> * @brief USB (usb:hs) devices service IPC wrapper.</span></div>
|
|
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> * @author yellows8</span></div>
|
|
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment"> * @copyright libnx Authors</span></div>
|
|
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
|
|
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include "../types.h"</span></div>
|
|
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "../sf/service.h"</span></div>
|
|
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include "../services/usb.h"</span></div>
|
|
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include "../kernel/event.h"</span></div>
|
|
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include "../kernel/tmem.h"</span></div>
|
|
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
|
|
<div class="foldopen" id="foldopen00014" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58"> 14</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {<span class="comment"></span></div>
|
|
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> ///< These use \ref usb_device_descriptor. Bit2..6 require [6.0.0+], these are ignored on eariler versions.</span></div>
|
|
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58a5c7b4c5d1a9d1b8de8cd3118c8bc771e"> 16</a></span><span class="comment"></span> <a class="code hl_enumvalue" href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58a5c7b4c5d1a9d1b8de8cd3118c8bc771e">UsbHsInterfaceFilterFlags_idVendor</a> = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0),</div>
|
|
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> UsbHsInterfaceFilterFlags_idProduct = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1),</div>
|
|
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> UsbHsInterfaceFilterFlags_bcdDevice_Min = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(2),</div>
|
|
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> UsbHsInterfaceFilterFlags_bcdDevice_Max = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(3),</div>
|
|
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> UsbHsInterfaceFilterFlags_bDeviceClass = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(4),</div>
|
|
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> UsbHsInterfaceFilterFlags_bDeviceSubClass = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(5),</div>
|
|
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_enumvalue" href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58ad132a78a55f9c60a43717bb87482313b">UsbHsInterfaceFilterFlags_bDeviceProtocol</a> = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(6),</div>
|
|
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58ad132a78a55f9c60a43717bb87482313b"> 24</a></span><span class="comment"> ///< These use \ref usb_interface_descriptor.</span></div>
|
|
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"></span> UsbHsInterfaceFilterFlags_bInterfaceClass = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(7),</div>
|
|
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> UsbHsInterfaceFilterFlags_bInterfaceSubClass = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(8),</div>
|
|
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> UsbHsInterfaceFilterFlags_bInterfaceProtocol = <a class="code hl_define" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(9),</div>
|
|
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>} <a class="code hl_enumeration" href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58">UsbHsInterfaceFilterFlags</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">/// Interface filtering struct. When the associated flag bit is set, the associated descriptor field and struct field are compared, on mismatch the interface is filtered out.</span></div>
|
|
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">/// [7.0.0+]: The filter struct has to be unique, it can't be used by anything else (including other processes). Hence, Flags has to be non-zero. When initialized with usb:hs:a and VID and/or PID filtering is enabled, the VID/PID will be checked against a blacklist.</span></div>
|
|
<div class="foldopen" id="foldopen00032" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceFilter.html"> 32</a></span><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceFilter.html#a541879534608d722233f656a7ea31c73"> 33</a></span> <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code hl_variable" href="structUsbHsInterfaceFilter.html#a541879534608d722233f656a7ea31c73">Flags</a>; <span class="comment">///< See \ref UsbHsInterfaceFilterFlags. Setting this to 0 is equivalent to disabling filtering.</span></div>
|
|
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> idVendor;</div>
|
|
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> idProduct;</div>
|
|
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceFilter.html#a69196028f25f54b62bfcd991b8e14707"> 36</a></span> <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code hl_variable" href="structUsbHsInterfaceFilter.html#a69196028f25f54b62bfcd991b8e14707">bcdDevice_Min</a>; <span class="comment">///< Descriptor value must be >= bcdDevice_Min.</span></div>
|
|
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceFilter.html#af6df63de27118e0103ba0a98c4a29e3e"> 37</a></span> <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code hl_variable" href="structUsbHsInterfaceFilter.html#af6df63de27118e0103ba0a98c4a29e3e">bcdDevice_Max</a>; <span class="comment">///< Descriptor value must be <= bcdDevice_Max.</span></div>
|
|
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bDeviceClass;</div>
|
|
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bDeviceSubClass;</div>
|
|
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bDeviceProtocol;</div>
|
|
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bInterfaceClass;</div>
|
|
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bInterfaceSubClass;</div>
|
|
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bInterfaceProtocol;</div>
|
|
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>} <a class="code hl_struct" href="structUsbHsInterfaceFilter.html">UsbHsInterfaceFilter</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">/// Descriptors which are not available are set to all-zero.</span></div>
|
|
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">/// The INPUT/OUTPUT endpoint descriptors were swapped with [8.0.0+], libnx converts this struct to the newer layout when running on pre-8.0.0.</span></div>
|
|
<div class="foldopen" id="foldopen00048" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceInfo.html"> 48</a></span><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_typedef" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> ID;</div>
|
|
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> deviceID_2;</div>
|
|
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> unk_x8;</div>
|
|
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
|
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__interface__descriptor.html">usb_interface_descriptor</a> interface_desc;</div>
|
|
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> pad_x15[0x7];</div>
|
|
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__endpoint__descriptor.html">usb_endpoint_descriptor</a> input_endpoint_descs[15];</div>
|
|
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> pad_x85[0x7];</div>
|
|
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__endpoint__descriptor.html">usb_endpoint_descriptor</a> output_endpoint_descs[15];</div>
|
|
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> pad_xf5[0x6];</div>
|
|
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceInfo.html#afb92542967c0cd3b99e8ae405e4a0e9c"> 59</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__ss__endpoint__companion__descriptor.html">usb_ss_endpoint_companion_descriptor</a> input_ss_endpoint_companion_descs[15]; <span class="comment">///< ?</span></div>
|
|
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> pad_x155[0x6];</div>
|
|
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structUsbHsInterfaceInfo.html#a7fc5c80a3c624d9a8040dee087f5fbeb"> 61</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__ss__endpoint__companion__descriptor.html">usb_ss_endpoint_companion_descriptor</a> output_ss_endpoint_companion_descs[15]; <span class="comment">///< ?</span></div>
|
|
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> pad_x1b5[0x3];</div>
|
|
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>} <a class="code hl_define" href="types_8h.html#ab6bd3fc8e13d24a2612da07835dda696">NX_PACKED</a> <a class="code hl_struct" href="structUsbHsInterfaceInfo.html">UsbHsInterfaceInfo</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment">/// Interface struct. Note that devices have a seperate \ref UsbHsInterface for each interface.</span></div>
|
|
<div class="foldopen" id="foldopen00066" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="structUsbHsInterface.html"> 66</a></span><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_struct" href="structUsbHsInterfaceInfo.html">UsbHsInterfaceInfo</a> inf;</div>
|
|
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
|
|
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordtype">char</span> pathstr[0x40];</div>
|
|
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> busID;</div>
|
|
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> deviceID;</div>
|
|
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
|
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__device__descriptor.html">usb_device_descriptor</a> device_desc;</div>
|
|
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__config__descriptor.html">usb_config_descriptor</a> config_desc;</div>
|
|
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> pad_x21b[0x5];</div>
|
|
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
|
|
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structUsbHsInterface.html#aef1c1405e0031cde861e08f09746ca30"> 77</a></span> <a class="code hl_typedef" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code hl_variable" href="structUsbHsInterface.html#aef1c1405e0031cde861e08f09746ca30">timestamp</a>; <span class="comment">///< Unknown u64 timestamp for when the device was inserted?</span></div>
|
|
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span>} <a class="code hl_define" href="types_8h.html#ab6bd3fc8e13d24a2612da07835dda696">NX_PACKED</a> <a class="code hl_struct" href="structUsbHsInterface.html">UsbHsInterface</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
|
|
<div class="foldopen" id="foldopen00080" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="structUsbHsXferReport.html"> 80</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> xferId;</div>
|
|
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> res;</div>
|
|
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> requestedSize;</div>
|
|
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> transferredSize;</div>
|
|
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="structUsbHsXferReport.html#a75aea5ebe7ebd2d0777cf4c132aa6d99"> 85</a></span> <a class="code hl_typedef" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code hl_variable" href="structUsbHsXferReport.html#a75aea5ebe7ebd2d0777cf4c132aa6d99">id</a>; <span class="comment">///< id from \ref usbHsEpPostBufferAsync.</span></div>
|
|
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>} <a class="code hl_struct" href="structUsbHsXferReport.html">UsbHsXferReport</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
|
|
<div class="foldopen" id="foldopen00088" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structUsbHsRingHeader.html"> 88</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_typedef" href="types_8h.html#ace392b4d1c3911331b2fe5ddc99fdcba">vu64</a> write_index;</div>
|
|
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_typedef" href="types_8h.html#ace392b4d1c3911331b2fe5ddc99fdcba">vu64</a> read_index;</div>
|
|
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span>} <a class="code hl_struct" href="structUsbHsRingHeader.html">UsbHsRingHeader</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment">/// The interface service object. These Events have autoclear=false.</span></div>
|
|
<div class="foldopen" id="foldopen00094" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="structUsbHsClientIfSession.html"> 94</a></span><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_struct" href="structService.html">Service</a> s;</div>
|
|
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="structUsbHsClientIfSession.html#ab72ca138a566e866ba6754b7e1efff88"> 96</a></span> <a class="code hl_struct" href="structEvent.html">Event</a> <a class="code hl_variable" href="structUsbHsClientIfSession.html#ab72ca138a566e866ba6754b7e1efff88">event0</a>; <span class="comment">///< Unknown.</span></div>
|
|
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="structUsbHsClientIfSession.html#a756b77f112ab1f7be050bcb707969496"> 97</a></span> <a class="code hl_struct" href="structEvent.html">Event</a> <a class="code hl_variable" href="structUsbHsClientIfSession.html#a756b77f112ab1f7be050bcb707969496">eventCtrlXfer</a>; <span class="comment">///< [2.0.0+] Signaled when CtrlXferAsync finishes.</span></div>
|
|
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_typedef" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> ID;</div>
|
|
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
|
|
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="structUsbHsClientIfSession.html#a398beebe78896dd96848b9796b3dcc63"> 100</a></span> <a class="code hl_struct" href="structUsbHsInterface.html">UsbHsInterface</a> <a class="code hl_variable" href="structUsbHsClientIfSession.html#a398beebe78896dd96848b9796b3dcc63">inf</a>; <span class="comment">///< Initialized with the input interface from \ref usbHsAcquireUsbIf, then overwritten with the cmd output. Pre-3.0.0 this only overwrites the first 0x1B8-bytes (data before pathstr).</span></div>
|
|
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span>} <a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
|
|
<div class="foldopen" id="foldopen00103" data-start="{" data-end="};">
|
|
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="structUsbHsClientEpSession.html"> 103</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_struct" href="structService.html">Service</a> s;</div>
|
|
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="structUsbHsClientEpSession.html#aeb03a086040997878636afda602caf0c"> 105</a></span> <a class="code hl_struct" href="structEvent.html">Event</a> <a class="code hl_variable" href="structUsbHsClientEpSession.html#aeb03a086040997878636afda602caf0c">eventXfer</a>; <span class="comment">///< [2.0.0+] Signaled when PostBufferAsync finishes.</span></div>
|
|
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> maxUrbCount;</div>
|
|
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_typedef" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> max_reports;</div>
|
|
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">void</span>* ringbuf;</div>
|
|
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
|
|
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">struct </span><a class="code hl_struct" href="structusb__endpoint__descriptor.html">usb_endpoint_descriptor</a> desc;</div>
|
|
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>} <a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>;</div>
|
|
</div>
|
|
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment">/// Initialize usb:hs.</span></div>
|
|
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a143d1f40c022f771d0bccf2203e77cae"> 114</a></span><span class="comment"></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a143d1f40c022f771d0bccf2203e77cae">usbHsInitialize</a>(<span class="keywordtype">void</span>);</div>
|
|
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment">/// Exit usb:hs.</span></div>
|
|
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a0cf521e76dcb3abcb049daa39dda93e6"> 117</a></span><span class="comment"></span><span class="keywordtype">void</span> <a class="code hl_function" href="usbhs_8h.html#a0cf521e76dcb3abcb049daa39dda93e6">usbHsExit</a>(<span class="keywordtype">void</span>);</div>
|
|
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment">/// Gets the Service object for the actual usb:hs service session.</span></div>
|
|
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a49abd5bfc8ce983dd2e640a2ccc44ba3"> 120</a></span><span class="comment"></span><a class="code hl_struct" href="structService.html">Service</a>* <a class="code hl_function" href="usbhs_8h.html#a49abd5bfc8ce983dd2e640a2ccc44ba3">usbHsGetServiceSession</a>(<span class="keywordtype">void</span>);</div>
|
|
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment">/// Returns the Event loaded during init with autoclear=false.</span></div>
|
|
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment">/// Signaled when a device was removed.</span></div>
|
|
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment">/// When signaled, the user should use \ref usbHsQueryAcquiredInterfaces and cleanup state for all interfaces which are not listed in the output interfaces (none of the IDs match \ref usbHsIfGetID output).</span></div>
|
|
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a3ea256940ca296804fc3f8b66d379cee"> 125</a></span><span class="comment"></span><a class="code hl_struct" href="structEvent.html">Event</a>* <a class="code hl_function" href="usbhs_8h.html#a3ea256940ca296804fc3f8b66d379cee">usbHsGetInterfaceStateChangeEvent</a>(<span class="keywordtype">void</span>);</div>
|
|
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> * @brief Returns an array of all \ref UsbHsInterface. Internally this loads the same interfaces as \ref usbHsQueryAvailableInterfaces, followed by \ref usbHsQueryAcquiredInterfaces. However, ID in \ref UsbHsInterface is set to -1, hence the output from this should not be used with \ref usbHsAcquireUsbIf.</span></div>
|
|
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> * @param[in] filter \ref UsbHsInterfaceFilter.</span></div>
|
|
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> * @param[out] interfaces Array of output interfaces.</span></div>
|
|
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> * @param[in] interfaces_maxsize Max byte-size of the interfaces buffer.</span></div>
|
|
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> * @param[out] total_entries Total number of output interfaces.</span></div>
|
|
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="usbhs_8h.html#ad6837a22e5321182b8aad554f2955203"> 134</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#ad6837a22e5321182b8aad554f2955203">usbHsQueryAllInterfaces</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structUsbHsInterfaceFilter.html">UsbHsInterfaceFilter</a>* filter, <a class="code hl_struct" href="structUsbHsInterface.html">UsbHsInterface</a>* interfaces, <span class="keywordtype">size_t</span> interfaces_maxsize, <a class="code hl_typedef" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* total_entries);</div>
|
|
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment"> * @brief Returns an array of \ref UsbHsInterface which are available.</span></div>
|
|
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment"> * @param[in] filter \ref UsbHsInterfaceFilter.</span></div>
|
|
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment"> * @param[out] interfaces Array of output interfaces.</span></div>
|
|
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"> * @param[in] interfaces_maxsize Max byte-size of the interfaces buffer.</span></div>
|
|
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="comment"> * @param[out] total_entries Total number of output interfaces.</span></div>
|
|
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a9968d4a9732ce4aa8cfa9d725862c2f8"> 143</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a9968d4a9732ce4aa8cfa9d725862c2f8">usbHsQueryAvailableInterfaces</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structUsbHsInterfaceFilter.html">UsbHsInterfaceFilter</a>* filter, <a class="code hl_struct" href="structUsbHsInterface.html">UsbHsInterface</a>* interfaces, <span class="keywordtype">size_t</span> interfaces_maxsize, <a class="code hl_typedef" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* total_entries);</div>
|
|
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment"> * @brief Returns an array of \ref UsbHsInterface which were previously acquired.</span></div>
|
|
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment"> * @param[out] interfaces Array of output interfaces.</span></div>
|
|
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment"> * @param[in] interfaces_maxsize Max byte-size of the interfaces buffer.</span></div>
|
|
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment"> * @param[out] total_entries Total number of output interfaces.</span></div>
|
|
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a22bee23047fc588203a48d8cfc3c7a6f"> 151</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a22bee23047fc588203a48d8cfc3c7a6f">usbHsQueryAcquiredInterfaces</a>(<a class="code hl_struct" href="structUsbHsInterface.html">UsbHsInterface</a>* interfaces, <span class="keywordtype">size_t</span> interfaces_maxsize, <a class="code hl_typedef" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* total_entries);</div>
|
|
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"> * @brief Creates an event which is signaled when an interface is available which passes the filtering checks.</span></div>
|
|
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"> * @param[out] out_event Event object.</span></div>
|
|
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> * @param[in] autoclear Event autoclear.</span></div>
|
|
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"> * @param[in] index Event index, must be 0..2.</span></div>
|
|
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment"> * @param[in] filter \ref UsbHsInterfaceFilter.</span></div>
|
|
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"><a class="line" href="usbhs_8h.html#aac6d7738e8969db4f10455565d237bae"> 160</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#aac6d7738e8969db4f10455565d237bae">usbHsCreateInterfaceAvailableEvent</a>(<a class="code hl_struct" href="structEvent.html">Event</a>* out_event, <span class="keywordtype">bool</span> autoclear, <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> index, <span class="keyword">const</span> <a class="code hl_struct" href="structUsbHsInterfaceFilter.html">UsbHsInterfaceFilter</a>* filter);</div>
|
|
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> * @brief Destroys an event setup by \ref usbHsCreateInterfaceAvailableEvent. This *must* be used at some point during cleanup.</span></div>
|
|
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"> * @param[in] event Event object to close.</span></div>
|
|
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> * @param[in] index Event index, must be 0..2.</span></div>
|
|
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a036f818a979079eb60eb3155144f0032"> 167</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a036f818a979079eb60eb3155144f0032">usbHsDestroyInterfaceAvailableEvent</a>(<a class="code hl_struct" href="structEvent.html">Event</a>* event, <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> index);</div>
|
|
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"> * @brief Acquires/opens the specified interface. This returns an error if the interface was already acquired by another process.</span></div>
|
|
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> * @param[in] s The service object.</span></div>
|
|
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment"> * @param[in] interface Interface to use.</span></div>
|
|
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a41a6008fbe404a31ba1ebcd1083a3001"> 174</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a41a6008fbe404a31ba1ebcd1083a3001">usbHsAcquireUsbIf</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_struct" href="structUsbHsInterface.html">UsbHsInterface</a> *interface);</div>
|
|
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment">/// UsbHsClientIfSession</span></div>
|
|
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment">/// Closes the specified interface session.</span></div>
|
|
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a67e85073d3a9fbb29cd42e3045f68dcf"> 179</a></span><span class="comment"></span><span class="keywordtype">void</span> <a class="code hl_function" href="usbhs_8h.html#a67e85073d3a9fbb29cd42e3045f68dcf">usbHsIfClose</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s);</div>
|
|
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment">/// Returns whether the specified interface session was initialized.</span></div>
|
|
<div class="foldopen" id="foldopen00182" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="usbhs_8h.html#aa79d15b8f928489a830605ac3251abde"> 182</a></span><span class="comment"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="usbhs_8h.html#aa79d15b8f928489a830605ac3251abde">usbHsIfIsActive</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s) {</div>
|
|
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordflow">return</span> <a class="code hl_function" href="service_8h.html#aa0e36f8dbc761d82a6d7c9cc2799f2dc">serviceIsActive</a>(&s->s);</div>
|
|
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment">/// Returns the ID which can be used for comparing with the ID in the output interfaces from \ref usbHsQueryAcquiredInterfaces.</span></div>
|
|
<div class="foldopen" id="foldopen00187" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="usbhs_8h.html#aa4cc2335634047799398aba4230644fc"> 187</a></span><span class="comment"></span><span class="keyword">static</span> <span class="keyword">inline</span> <a class="code hl_typedef" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> <a class="code hl_function" href="usbhs_8h.html#aa4cc2335634047799398aba4230644fc">usbHsIfGetID</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s) {</div>
|
|
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span> s->ID;</div>
|
|
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment"> * @brief Selects an interface.</span></div>
|
|
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="comment"> * @param[in] s The service object.</span></div>
|
|
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="comment"> * @param[out] inf The output interface info. If NULL, the output is stored within s instead.</span></div>
|
|
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="comment"> * @param[in] id ID</span></div>
|
|
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a2c9023e5f33814095c12047e17527bcc"> 197</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a2c9023e5f33814095c12047e17527bcc">usbHsIfSetInterface</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_struct" href="structUsbHsInterfaceInfo.html">UsbHsInterfaceInfo</a>* inf, <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> <span class="keywordtype">id</span>);</div>
|
|
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="comment"> * @brief Gets an interface.</span></div>
|
|
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment"> * @param[in] s The service object.</span></div>
|
|
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="comment"> * @param[out] inf The output interface info. If NULL, the output is stored within s instead.</span></div>
|
|
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"><a class="line" href="usbhs_8h.html#ae5d34d2f1601d378280309332fb78b11"> 204</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#ae5d34d2f1601d378280309332fb78b11">usbHsIfGetInterface</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_struct" href="structUsbHsInterfaceInfo.html">UsbHsInterfaceInfo</a>* inf);</div>
|
|
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="comment"> * @brief Gets an alternate interface.</span></div>
|
|
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment"> * @param[in] s The service object.</span></div>
|
|
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment"> * @param[out] inf The output interface info. If NULL, the output is stored within s instead.</span></div>
|
|
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="comment"> * @param[in] id ID</span></div>
|
|
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a27cc63999adde972ca2e0ea8035c21a2"> 212</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a27cc63999adde972ca2e0ea8035c21a2">usbHsIfGetAlternateInterface</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_struct" href="structUsbHsInterfaceInfo.html">UsbHsInterfaceInfo</a>* inf, <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> <span class="keywordtype">id</span>);</div>
|
|
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="comment">/// On [1.0.0] this is stubbed, just returns 0 with out=0.</span></div>
|
|
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a58d6fdcb838c2069b9cb0c3be9449254"> 215</a></span><span class="comment"></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a58d6fdcb838c2069b9cb0c3be9449254">usbHsIfGetCurrentFrame</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* out);</div>
|
|
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment">/// Uses a control transfer, this will block until the transfer finishes. The buffer address and size should be aligned to 0x1000-bytes, where wLength is the original size.</span></div>
|
|
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="usbhs_8h.html#adf5d082945fb0d6ec54af30f35abd102"> 218</a></span><span class="comment"></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#adf5d082945fb0d6ec54af30f35abd102">usbHsIfCtrlXfer</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bmRequestType, <a class="code hl_typedef" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> bRequest, <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> wValue, <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> wIndex, <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> wLength, <span class="keywordtype">void</span>* buffer, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* transferredSize);</div>
|
|
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="comment"> * @brief Opens an endpoint. maxUrbCount*maxXferSize must be non-zero.</span></div>
|
|
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span><span class="comment"> * @param[in] s The interface object.</span></div>
|
|
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment"> * @param[out] ep The endpoint object.</span></div>
|
|
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment"> * @param[in] maxUrbCount maxUrbCount, must be <0x11.</span></div>
|
|
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment"> * @param[in] maxXferSize Max transfer size for a packet. This can be desc->wMaxPacketSize. Must be <=0xFF0000.</span></div>
|
|
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment"> * @param[in] desc Endpoint descriptor.</span></div>
|
|
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a9c55fec0d4198b6a895a68e038b60c8e"> 228</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a9c55fec0d4198b6a895a68e038b60c8e">usbHsIfOpenUsbEp</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s, <a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* ep, <a class="code hl_typedef" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> maxUrbCount, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> maxXferSize, <span class="keyword">struct</span> <a class="code hl_struct" href="structusb__endpoint__descriptor.html">usb_endpoint_descriptor</a> *desc);</div>
|
|
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="comment">/// Resets the device: has the same affect as unplugging the device and plugging it back in.</span></div>
|
|
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a1ed03258b51e4cc56d7b880d867cfb89"> 231</a></span><span class="comment"></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a1ed03258b51e4cc56d7b880d867cfb89">usbHsIfResetDevice</a>(<a class="code hl_struct" href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a>* s);</div>
|
|
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="comment">/// UsbHsClientEpSession</span></div>
|
|
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="comment">/// Closes the specified endpoint session.</span></div>
|
|
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="usbhs_8h.html#aa937552b4b573b9acd3c95dfb42e2dfa"> 236</a></span><span class="comment"></span><span class="keywordtype">void</span> <a class="code hl_function" href="usbhs_8h.html#aa937552b4b573b9acd3c95dfb42e2dfa">usbHsEpClose</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s);</div>
|
|
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span><span class="comment">/// Gets the Xfer Event which is signaled when PostBufferAsync finishes. This is only valid for [2.0.0+]. If using \ref eventWait with this, then \ref eventClear should be used if the event was signaled (since the autoclear is false).</span></div>
|
|
<div class="foldopen" id="foldopen00239" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a383d8255da2192f1a6c2cbd1e1e5d7db"> 239</a></span><span class="comment"></span><a class="code hl_define" href="types_8h.html#ae2a0903442f062ed4f9f0568a6f1a297">NX_CONSTEXPR</a> <a class="code hl_struct" href="structEvent.html">Event</a>* <a class="code hl_function" href="usbhs_8h.html#a383d8255da2192f1a6c2cbd1e1e5d7db">usbHsEpGetXferEvent</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s) {</div>
|
|
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> &s-><a class="code hl_variable" href="structUsbHsClientEpSession.html#aeb03a086040997878636afda602caf0c">eventXfer</a>;</div>
|
|
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="comment">/// Gets the buffer size to use with \ref usbHsEpShareReportRing.</span></div>
|
|
<div class="foldopen" id="foldopen00244" data-start="{" data-end="}">
|
|
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a3fa9fc5df5fe4b7781818ea0261d4d32"> 244</a></span><span class="comment"></span><a class="code hl_define" href="types_8h.html#ae2a0903442f062ed4f9f0568a6f1a297">NX_CONSTEXPR</a> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code hl_function" href="usbhs_8h.html#a3fa9fc5df5fe4b7781818ea0261d4d32">usbHsEpGetReportRingSize</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s) {</div>
|
|
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <a class="code hl_typedef" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> max_reports = s->maxUrbCount * 0x21;</div>
|
|
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size = <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structUsbHsRingHeader.html">UsbHsRingHeader</a>) + max_reports*<span class="keyword">sizeof</span>(<a class="code hl_struct" href="structUsbHsXferReport.html">UsbHsXferReport</a>);</div>
|
|
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> size = (size+0xFFF) & ~0xFFF;</div>
|
|
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> size;</div>
|
|
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>}</div>
|
|
</div>
|
|
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="comment"> * @brief Starts an async data transfer with the specified endpoint. The Event from \ref usbHsEpGetXferEvent can be used to determine when the transfer finished. If you don't need async, \ref usbHsEpPostBuffer can be used instead.</span></div>
|
|
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="comment"> * @note Only available on [2.0.0+].</span></div>
|
|
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span><span class="comment"> * @param[in] s The endpoint object.</span></div>
|
|
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span><span class="comment"> * @param buffer Data buffer. The buffer address and size should be aligned to 0x1000-bytes.</span></div>
|
|
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="comment"> * @param[in] size The actual data size.</span></div>
|
|
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span><span class="comment"> * @param[in] id This is an arbitrary value which will be later returned in \ref UsbHsXferReport. For example a value starting at 0 can be used, then if sending multiple requests at once this value can be incremented each time (with 0 for the first request in this set of requests).</span></div>
|
|
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span><span class="comment"> * @param[out] xferId Output xferId.</span></div>
|
|
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a100292537479a0fb72a84660eca4a706"> 260</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a100292537479a0fb72a84660eca4a706">usbHsEpPostBufferAsync</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s, <span class="keywordtype">void</span>* buffer, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code hl_typedef" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <span class="keywordtype">id</span>, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* xferId);</div>
|
|
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment"> * @brief Gets an array of \ref UsbHsXferReport for the specified endpoint. This should be used after waiting on the Event from \ref usbHsEpGetXferEvent.</span></div>
|
|
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment"> * @note Only available on [2.0.0+].</span></div>
|
|
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="comment"> * @param[in] s The endpoint object.</span></div>
|
|
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="comment"> * @param[out] reports Output array of \ref UsbHsXferReport.</span></div>
|
|
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="comment"> * @param[in] max_reports Size of the reports array in entries.</span></div>
|
|
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment"> * @param[out] count Number of entries written to the array.</span></div>
|
|
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"><a class="line" href="usbhs_8h.html#ab28f45274f05e186c34fca737cb6580e"> 270</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#ab28f45274f05e186c34fca737cb6580e">usbHsEpGetXferReport</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s, <a class="code hl_struct" href="structUsbHsXferReport.html">UsbHsXferReport</a>* reports, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> max_reports, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* count);</div>
|
|
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment"> * @brief Uses a data transfer with the specified endpoint, this will block until the transfer finishes. This wraps \ref usbHsEpPostBufferAsync and \ref usbHsEpGetXferReport, and also handles the Event (on pre-2.0.0 this handles using the relevant cmds instead). If async is needed, use \ref usbHsEpPostBufferAsync instead.</span></div>
|
|
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="comment"> * @param[in] s The endpoint object.</span></div>
|
|
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span><span class="comment"> * @param buffer Data buffer. The buffer address and size should be aligned to 0x1000-bytes.</span></div>
|
|
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment"> * @param[in] size The actual data size.</span></div>
|
|
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment"> * @param[out] transferredSize Output transferred size.</span></div>
|
|
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a65b9b46e1169c4d83dd8d575a85f557e"> 279</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a65b9b46e1169c4d83dd8d575a85f557e">usbHsEpPostBuffer</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s, <span class="keywordtype">void</span>* buffer, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* transferredSize);</div>
|
|
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="comment"> * @brief This uses the same functionality internally as \ref usbHsEpPostBufferAsync except the urbs array and unk1/unk2 are specified by the user instead.</span></div>
|
|
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span><span class="comment"> * @note Only available on [2.0.0+].</span></div>
|
|
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span><span class="comment"> * @param[in] s The endpoint object.</span></div>
|
|
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span><span class="comment"> * @param buffer Data buffer. The buffer address and size should be aligned to 0x1000-bytes.</span></div>
|
|
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span><span class="comment"> * @param[in] urbs Input array of u32s for the size of each urb.</span></div>
|
|
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="comment"> * @param[in] urbCount Total entries in the urbs array.</span></div>
|
|
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="comment"> * @param[in] id Same as \ref usbHsEpPostBufferAsync.</span></div>
|
|
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><span class="comment"> * @param[in] unk1 \ref usbHsEpPostBufferAsync would internally pass value 0 here.</span></div>
|
|
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span><span class="comment"> * @param[in] unk2 \ref usbHsEpPostBufferAsync would internally pass value 0 here.</span></div>
|
|
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span><span class="comment"> * @param[out] xferId Output xferId.</span></div>
|
|
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"><a class="line" href="usbhs_8h.html#aac9656beb528e6a6ff7176e1d94e1024"> 293</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#aac9656beb528e6a6ff7176e1d94e1024">usbHsEpBatchBufferAsync</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s, <span class="keywordtype">void</span>* buffer, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* urbs, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> urbCount, <a class="code hl_typedef" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <span class="keywordtype">id</span>, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> unk1, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> unk2, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* xferId);</div>
|
|
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="comment"> * @brief This can be used to map the specified buffer as devicemem, which can then be used with \ref usbHsEpPostBufferAsync / \ref usbHsEpPostBuffer / \ref usbHsEpBatchBufferAsync. If the buffer address passed to those funcs is within this SmmuSpace, the specified buffer must be within the bounds of the SmmuSpace buffer.</span></div>
|
|
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="comment"> * @note Only available on [4.0.0+].</span></div>
|
|
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="comment"> * @note A buffer from usbHsEpCreateSmmuSpace can't be reused by another endpoint with the aforementioned funcs.</span></div>
|
|
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="comment"> * @note This can only be used once per UsbHsClientEpSession object.</span></div>
|
|
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span><span class="comment"> * @param[in] s The endpoint object.</span></div>
|
|
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span><span class="comment"> * @param buffer Buffer address, this must be aligned to 0x1000-bytes.</span></div>
|
|
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span><span class="comment"> * @param[in] size Buffer size, this must be aligned to 0x1000-bytes.</span></div>
|
|
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="usbhs_8h.html#a3f5366d85394212e3b983f4a9ced47c9"> 304</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#a3f5366d85394212e3b983f4a9ced47c9">usbHsEpCreateSmmuSpace</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s, <span class="keywordtype">void</span>* buffer, <a class="code hl_typedef" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span><span class="comment"></span> </div>
|
|
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span><span class="comment">/**</span></div>
|
|
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span><span class="comment"> * @brief This creates TransferMemory which is used to read \ref UsbHsXferReport when \ref usbHsEpGetXferReport is used, instead of using the service cmd.</span></div>
|
|
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="comment"> * @note Only available on [4.0.0+].</span></div>
|
|
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="comment"> * @param buffer Buffer, must be 0x1000-byte aligned.</span></div>
|
|
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span><span class="comment"> * @param[in] size Buffer size, \ref usbHsEpGetReportRingSize can be used to calculate this.</span></div>
|
|
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="comment"> */</span></div>
|
|
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"><a class="line" href="usbhs_8h.html#ab5eabb933b1a9fc329a5393f70982efc"> 312</a></span><a class="code hl_typedef" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> <a class="code hl_function" href="usbhs_8h.html#ab5eabb933b1a9fc329a5393f70982efc">usbHsEpShareReportRing</a>(<a class="code hl_struct" href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a>* s, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">size_t</span> size);</div>
|
|
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> </div>
|
|
<div class="ttc" id="aservice_8h_html_aa0e36f8dbc761d82a6d7c9cc2799f2dc"><div class="ttname"><a href="service_8h.html#aa0e36f8dbc761d82a6d7c9cc2799f2dc">serviceIsActive</a></div><div class="ttdeci">static bool serviceIsActive(Service *s)</div><div class="ttdoc">Returns whether a service has been initialized.</div><div class="ttdef"><b>Definition</b> service.h:92</div></div>
|
|
<div class="ttc" id="astructEvent_html"><div class="ttname"><a href="structEvent.html">Event</a></div><div class="ttdoc">Kernel-mode event structure.</div><div class="ttdef"><b>Definition</b> event.h:13</div></div>
|
|
<div class="ttc" id="astructService_html"><div class="ttname"><a href="structService.html">Service</a></div><div class="ttdoc">Service object structure.</div><div class="ttdef"><b>Definition</b> service.h:14</div></div>
|
|
<div class="ttc" id="astructUsbHsClientEpSession_html"><div class="ttname"><a href="structUsbHsClientEpSession.html">UsbHsClientEpSession</a></div><div class="ttdef"><b>Definition</b> usbhs.h:103</div></div>
|
|
<div class="ttc" id="astructUsbHsClientEpSession_html_aeb03a086040997878636afda602caf0c"><div class="ttname"><a href="structUsbHsClientEpSession.html#aeb03a086040997878636afda602caf0c">UsbHsClientEpSession::eventXfer</a></div><div class="ttdeci">Event eventXfer</div><div class="ttdoc">[2.0.0+] Signaled when PostBufferAsync finishes.</div><div class="ttdef"><b>Definition</b> usbhs.h:105</div></div>
|
|
<div class="ttc" id="astructUsbHsClientIfSession_html"><div class="ttname"><a href="structUsbHsClientIfSession.html">UsbHsClientIfSession</a></div><div class="ttdoc">The interface service object. These Events have autoclear=false.</div><div class="ttdef"><b>Definition</b> usbhs.h:94</div></div>
|
|
<div class="ttc" id="astructUsbHsClientIfSession_html_a398beebe78896dd96848b9796b3dcc63"><div class="ttname"><a href="structUsbHsClientIfSession.html#a398beebe78896dd96848b9796b3dcc63">UsbHsClientIfSession::inf</a></div><div class="ttdeci">UsbHsInterface inf</div><div class="ttdoc">Initialized with the input interface from usbHsAcquireUsbIf, then overwritten with the cmd output....</div><div class="ttdef"><b>Definition</b> usbhs.h:100</div></div>
|
|
<div class="ttc" id="astructUsbHsClientIfSession_html_a756b77f112ab1f7be050bcb707969496"><div class="ttname"><a href="structUsbHsClientIfSession.html#a756b77f112ab1f7be050bcb707969496">UsbHsClientIfSession::eventCtrlXfer</a></div><div class="ttdeci">Event eventCtrlXfer</div><div class="ttdoc">[2.0.0+] Signaled when CtrlXferAsync finishes.</div><div class="ttdef"><b>Definition</b> usbhs.h:97</div></div>
|
|
<div class="ttc" id="astructUsbHsClientIfSession_html_ab72ca138a566e866ba6754b7e1efff88"><div class="ttname"><a href="structUsbHsClientIfSession.html#ab72ca138a566e866ba6754b7e1efff88">UsbHsClientIfSession::event0</a></div><div class="ttdeci">Event event0</div><div class="ttdoc">Unknown.</div><div class="ttdef"><b>Definition</b> usbhs.h:96</div></div>
|
|
<div class="ttc" id="astructUsbHsInterfaceFilter_html"><div class="ttname"><a href="structUsbHsInterfaceFilter.html">UsbHsInterfaceFilter</a></div><div class="ttdoc">Interface filtering struct.</div><div class="ttdef"><b>Definition</b> usbhs.h:32</div></div>
|
|
<div class="ttc" id="astructUsbHsInterfaceFilter_html_a541879534608d722233f656a7ea31c73"><div class="ttname"><a href="structUsbHsInterfaceFilter.html#a541879534608d722233f656a7ea31c73">UsbHsInterfaceFilter::Flags</a></div><div class="ttdeci">u16 Flags</div><div class="ttdoc">See UsbHsInterfaceFilterFlags. Setting this to 0 is equivalent to disabling filtering.</div><div class="ttdef"><b>Definition</b> usbhs.h:33</div></div>
|
|
<div class="ttc" id="astructUsbHsInterfaceFilter_html_a69196028f25f54b62bfcd991b8e14707"><div class="ttname"><a href="structUsbHsInterfaceFilter.html#a69196028f25f54b62bfcd991b8e14707">UsbHsInterfaceFilter::bcdDevice_Min</a></div><div class="ttdeci">u16 bcdDevice_Min</div><div class="ttdoc">Descriptor value must be >= bcdDevice_Min.</div><div class="ttdef"><b>Definition</b> usbhs.h:36</div></div>
|
|
<div class="ttc" id="astructUsbHsInterfaceFilter_html_af6df63de27118e0103ba0a98c4a29e3e"><div class="ttname"><a href="structUsbHsInterfaceFilter.html#af6df63de27118e0103ba0a98c4a29e3e">UsbHsInterfaceFilter::bcdDevice_Max</a></div><div class="ttdeci">u16 bcdDevice_Max</div><div class="ttdoc">Descriptor value must be <= bcdDevice_Max.</div><div class="ttdef"><b>Definition</b> usbhs.h:37</div></div>
|
|
<div class="ttc" id="astructUsbHsInterfaceInfo_html"><div class="ttname"><a href="structUsbHsInterfaceInfo.html">UsbHsInterfaceInfo</a></div><div class="ttdoc">Descriptors which are not available are set to all-zero.</div><div class="ttdef"><b>Definition</b> usbhs.h:48</div></div>
|
|
<div class="ttc" id="astructUsbHsInterface_html"><div class="ttname"><a href="structUsbHsInterface.html">UsbHsInterface</a></div><div class="ttdoc">Interface struct. Note that devices have a seperate UsbHsInterface for each interface.</div><div class="ttdef"><b>Definition</b> usbhs.h:66</div></div>
|
|
<div class="ttc" id="astructUsbHsInterface_html_aef1c1405e0031cde861e08f09746ca30"><div class="ttname"><a href="structUsbHsInterface.html#aef1c1405e0031cde861e08f09746ca30">UsbHsInterface::timestamp</a></div><div class="ttdeci">u64 timestamp</div><div class="ttdoc">Unknown u64 timestamp for when the device was inserted?</div><div class="ttdef"><b>Definition</b> usbhs.h:77</div></div>
|
|
<div class="ttc" id="astructUsbHsRingHeader_html"><div class="ttname"><a href="structUsbHsRingHeader.html">UsbHsRingHeader</a></div><div class="ttdef"><b>Definition</b> usbhs.h:88</div></div>
|
|
<div class="ttc" id="astructUsbHsXferReport_html"><div class="ttname"><a href="structUsbHsXferReport.html">UsbHsXferReport</a></div><div class="ttdef"><b>Definition</b> usbhs.h:80</div></div>
|
|
<div class="ttc" id="astructUsbHsXferReport_html_a75aea5ebe7ebd2d0777cf4c132aa6d99"><div class="ttname"><a href="structUsbHsXferReport.html#a75aea5ebe7ebd2d0777cf4c132aa6d99">UsbHsXferReport::id</a></div><div class="ttdeci">u64 id</div><div class="ttdoc">id from usbHsEpPostBufferAsync.</div><div class="ttdef"><b>Definition</b> usbhs.h:85</div></div>
|
|
<div class="ttc" id="astructusb__config__descriptor_html"><div class="ttname"><a href="structusb__config__descriptor.html">usb_config_descriptor</a></div><div class="ttdoc">Imported from libusb, with some adjustments.</div><div class="ttdef"><b>Definition</b> usb.h:66</div></div>
|
|
<div class="ttc" id="astructusb__device__descriptor_html"><div class="ttname"><a href="structusb__device__descriptor.html">usb_device_descriptor</a></div><div class="ttdoc">Imported from libusb, with some adjustments.</div><div class="ttdef"><b>Definition</b> usb.h:48</div></div>
|
|
<div class="ttc" id="astructusb__endpoint__descriptor_html"><div class="ttname"><a href="structusb__endpoint__descriptor.html">usb_endpoint_descriptor</a></div><div class="ttdoc">Imported from libusb, with some adjustments.</div><div class="ttdef"><b>Definition</b> usb.h:25</div></div>
|
|
<div class="ttc" id="astructusb__interface__descriptor_html"><div class="ttname"><a href="structusb__interface__descriptor.html">usb_interface_descriptor</a></div><div class="ttdoc">Imported from libusb, with some adjustments.</div><div class="ttdef"><b>Definition</b> usb.h:35</div></div>
|
|
<div class="ttc" id="astructusb__ss__endpoint__companion__descriptor_html"><div class="ttname"><a href="structusb__ss__endpoint__companion__descriptor.html">usb_ss_endpoint_companion_descriptor</a></div><div class="ttdoc">Imported from libusb, with some adjustments.</div><div class="ttdef"><b>Definition</b> usb.h:78</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a3a8ea58898cb58fc96013383d39f482c"><div class="ttname"><a href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a></div><div class="ttdeci">#define BIT(n)</div><div class="ttdoc">Creates a bitmask from a bit number.</div><div class="ttdef"><b>Definition</b> types.h:54</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a3f7e2bcbb0b4c338f3c4f6c937cd4234"><div class="ttname"><a href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a></div><div class="ttdeci">uint64_t u64</div><div class="ttdoc">64-bit unsigned integer.</div><div class="ttdef"><b>Definition</b> types.h:22</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a92c50087ca0e64fa93fc59402c55f8ca"><div class="ttname"><a href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a></div><div class="ttdeci">uint8_t u8</div><div class="ttdoc">8-bit unsigned integer.</div><div class="ttdef"><b>Definition</b> types.h:19</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ab6bd3fc8e13d24a2612da07835dda696"><div class="ttname"><a href="types_8h.html#ab6bd3fc8e13d24a2612da07835dda696">NX_PACKED</a></div><div class="ttdeci">#define NX_PACKED</div><div class="ttdoc">Packs a struct so that it won't include padding bytes.</div><div class="ttdef"><b>Definition</b> types.h:63</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ace392b4d1c3911331b2fe5ddc99fdcba"><div class="ttname"><a href="types_8h.html#ace392b4d1c3911331b2fe5ddc99fdcba">vu64</a></div><div class="ttdeci">volatile u64 vu64</div><div class="ttdoc">64-bit volatile unsigned integer.</div><div class="ttdef"><b>Definition</b> types.h:34</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ace9d960e74685e2cd84b36132dbbf8aa"><div class="ttname"><a href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a></div><div class="ttdeci">uint16_t u16</div><div class="ttdoc">16-bit unsigned integer.</div><div class="ttdef"><b>Definition</b> types.h:20</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ad1be2721625a17f1be47fac918032afe"><div class="ttname"><a href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a></div><div class="ttdeci">u32 Result</div><div class="ttdoc">Function error code result type.</div><div class="ttdef"><b>Definition</b> types.h:44</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ae2a0903442f062ed4f9f0568a6f1a297"><div class="ttname"><a href="types_8h.html#ae2a0903442f062ed4f9f0568a6f1a297">NX_CONSTEXPR</a></div><div class="ttdeci">#define NX_CONSTEXPR</div><div class="ttdoc">Flags a function as constexpr in C++14 and above; or as (always) inline otherwise.</div><div class="ttdef"><b>Definition</b> types.h:92</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ae9b1af5c037e57a98884758875d3a7c4"><div class="ttname"><a href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a></div><div class="ttdeci">int32_t s32</div><div class="ttdoc">32-bit signed integer.</div><div class="ttdef"><b>Definition</b> types.h:27</div></div>
|
|
<div class="ttc" id="atypes_8h_html_afaa62991928fb9fb18ff0db62a040aba"><div class="ttname"><a href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a></div><div class="ttdeci">uint32_t u32</div><div class="ttdoc">32-bit unsigned integer.</div><div class="ttdef"><b>Definition</b> types.h:21</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a036f818a979079eb60eb3155144f0032"><div class="ttname"><a href="usbhs_8h.html#a036f818a979079eb60eb3155144f0032">usbHsDestroyInterfaceAvailableEvent</a></div><div class="ttdeci">Result usbHsDestroyInterfaceAvailableEvent(Event *event, u8 index)</div><div class="ttdoc">Destroys an event setup by usbHsCreateInterfaceAvailableEvent.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a0cf521e76dcb3abcb049daa39dda93e6"><div class="ttname"><a href="usbhs_8h.html#a0cf521e76dcb3abcb049daa39dda93e6">usbHsExit</a></div><div class="ttdeci">void usbHsExit(void)</div><div class="ttdoc">Exit usb:hs.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a0dbdcc3c2cc14ea8e35146636c4ecd58"><div class="ttname"><a href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58">UsbHsInterfaceFilterFlags</a></div><div class="ttdeci">UsbHsInterfaceFilterFlags</div><div class="ttdef"><b>Definition</b> usbhs.h:14</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a0dbdcc3c2cc14ea8e35146636c4ecd58a5c7b4c5d1a9d1b8de8cd3118c8bc771e"><div class="ttname"><a href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58a5c7b4c5d1a9d1b8de8cd3118c8bc771e">UsbHsInterfaceFilterFlags_idVendor</a></div><div class="ttdeci">@ UsbHsInterfaceFilterFlags_idVendor</div><div class="ttdoc">These use usb_device_descriptor. Bit2..6 require [6.0.0+], these are ignored on eariler versions.</div><div class="ttdef"><b>Definition</b> usbhs.h:16</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a0dbdcc3c2cc14ea8e35146636c4ecd58ad132a78a55f9c60a43717bb87482313b"><div class="ttname"><a href="usbhs_8h.html#a0dbdcc3c2cc14ea8e35146636c4ecd58ad132a78a55f9c60a43717bb87482313b">UsbHsInterfaceFilterFlags_bDeviceProtocol</a></div><div class="ttdeci">@ UsbHsInterfaceFilterFlags_bDeviceProtocol</div><div class="ttdoc">These use usb_interface_descriptor.</div><div class="ttdef"><b>Definition</b> usbhs.h:22</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a100292537479a0fb72a84660eca4a706"><div class="ttname"><a href="usbhs_8h.html#a100292537479a0fb72a84660eca4a706">usbHsEpPostBufferAsync</a></div><div class="ttdeci">Result usbHsEpPostBufferAsync(UsbHsClientEpSession *s, void *buffer, u32 size, u64 id, u32 *xferId)</div><div class="ttdoc">Starts an async data transfer with the specified endpoint.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a143d1f40c022f771d0bccf2203e77cae"><div class="ttname"><a href="usbhs_8h.html#a143d1f40c022f771d0bccf2203e77cae">usbHsInitialize</a></div><div class="ttdeci">Result usbHsInitialize(void)</div><div class="ttdoc">Initialize usb:hs.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a1ed03258b51e4cc56d7b880d867cfb89"><div class="ttname"><a href="usbhs_8h.html#a1ed03258b51e4cc56d7b880d867cfb89">usbHsIfResetDevice</a></div><div class="ttdeci">Result usbHsIfResetDevice(UsbHsClientIfSession *s)</div><div class="ttdoc">Resets the device: has the same affect as unplugging the device and plugging it back in.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a22bee23047fc588203a48d8cfc3c7a6f"><div class="ttname"><a href="usbhs_8h.html#a22bee23047fc588203a48d8cfc3c7a6f">usbHsQueryAcquiredInterfaces</a></div><div class="ttdeci">Result usbHsQueryAcquiredInterfaces(UsbHsInterface *interfaces, size_t interfaces_maxsize, s32 *total_entries)</div><div class="ttdoc">Returns an array of UsbHsInterface which were previously acquired.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a27cc63999adde972ca2e0ea8035c21a2"><div class="ttname"><a href="usbhs_8h.html#a27cc63999adde972ca2e0ea8035c21a2">usbHsIfGetAlternateInterface</a></div><div class="ttdeci">Result usbHsIfGetAlternateInterface(UsbHsClientIfSession *s, UsbHsInterfaceInfo *inf, u8 id)</div><div class="ttdoc">Gets an alternate interface.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a2c9023e5f33814095c12047e17527bcc"><div class="ttname"><a href="usbhs_8h.html#a2c9023e5f33814095c12047e17527bcc">usbHsIfSetInterface</a></div><div class="ttdeci">Result usbHsIfSetInterface(UsbHsClientIfSession *s, UsbHsInterfaceInfo *inf, u8 id)</div><div class="ttdoc">Selects an interface.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a383d8255da2192f1a6c2cbd1e1e5d7db"><div class="ttname"><a href="usbhs_8h.html#a383d8255da2192f1a6c2cbd1e1e5d7db">usbHsEpGetXferEvent</a></div><div class="ttdeci">static Event * usbHsEpGetXferEvent(UsbHsClientEpSession *s)</div><div class="ttdoc">Gets the Xfer Event which is signaled when PostBufferAsync finishes. This is only valid for [2....</div><div class="ttdef"><b>Definition</b> usbhs.h:239</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a3ea256940ca296804fc3f8b66d379cee"><div class="ttname"><a href="usbhs_8h.html#a3ea256940ca296804fc3f8b66d379cee">usbHsGetInterfaceStateChangeEvent</a></div><div class="ttdeci">Event * usbHsGetInterfaceStateChangeEvent(void)</div><div class="ttdoc">Returns the Event loaded during init with autoclear=false.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a3f5366d85394212e3b983f4a9ced47c9"><div class="ttname"><a href="usbhs_8h.html#a3f5366d85394212e3b983f4a9ced47c9">usbHsEpCreateSmmuSpace</a></div><div class="ttdeci">Result usbHsEpCreateSmmuSpace(UsbHsClientEpSession *s, void *buffer, u32 size)</div><div class="ttdoc">This can be used to map the specified buffer as devicemem, which can then be used with usbHsEpPostBuf...</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a3fa9fc5df5fe4b7781818ea0261d4d32"><div class="ttname"><a href="usbhs_8h.html#a3fa9fc5df5fe4b7781818ea0261d4d32">usbHsEpGetReportRingSize</a></div><div class="ttdeci">static u32 usbHsEpGetReportRingSize(UsbHsClientEpSession *s)</div><div class="ttdoc">Gets the buffer size to use with usbHsEpShareReportRing.</div><div class="ttdef"><b>Definition</b> usbhs.h:244</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a41a6008fbe404a31ba1ebcd1083a3001"><div class="ttname"><a href="usbhs_8h.html#a41a6008fbe404a31ba1ebcd1083a3001">usbHsAcquireUsbIf</a></div><div class="ttdeci">Result usbHsAcquireUsbIf(UsbHsClientIfSession *s, UsbHsInterface *interface)</div><div class="ttdoc">Acquires/opens the specified interface.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a49abd5bfc8ce983dd2e640a2ccc44ba3"><div class="ttname"><a href="usbhs_8h.html#a49abd5bfc8ce983dd2e640a2ccc44ba3">usbHsGetServiceSession</a></div><div class="ttdeci">Service * usbHsGetServiceSession(void)</div><div class="ttdoc">Gets the Service object for the actual usb:hs service session.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a58d6fdcb838c2069b9cb0c3be9449254"><div class="ttname"><a href="usbhs_8h.html#a58d6fdcb838c2069b9cb0c3be9449254">usbHsIfGetCurrentFrame</a></div><div class="ttdeci">Result usbHsIfGetCurrentFrame(UsbHsClientIfSession *s, u32 *out)</div><div class="ttdoc">On [1.0.0] this is stubbed, just returns 0 with out=0.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a65b9b46e1169c4d83dd8d575a85f557e"><div class="ttname"><a href="usbhs_8h.html#a65b9b46e1169c4d83dd8d575a85f557e">usbHsEpPostBuffer</a></div><div class="ttdeci">Result usbHsEpPostBuffer(UsbHsClientEpSession *s, void *buffer, u32 size, u32 *transferredSize)</div><div class="ttdoc">Uses a data transfer with the specified endpoint, this will block until the transfer finishes.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a67e85073d3a9fbb29cd42e3045f68dcf"><div class="ttname"><a href="usbhs_8h.html#a67e85073d3a9fbb29cd42e3045f68dcf">usbHsIfClose</a></div><div class="ttdeci">void usbHsIfClose(UsbHsClientIfSession *s)</div><div class="ttdoc">UsbHsClientIfSession.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a9968d4a9732ce4aa8cfa9d725862c2f8"><div class="ttname"><a href="usbhs_8h.html#a9968d4a9732ce4aa8cfa9d725862c2f8">usbHsQueryAvailableInterfaces</a></div><div class="ttdeci">Result usbHsQueryAvailableInterfaces(const UsbHsInterfaceFilter *filter, UsbHsInterface *interfaces, size_t interfaces_maxsize, s32 *total_entries)</div><div class="ttdoc">Returns an array of UsbHsInterface which are available.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_a9c55fec0d4198b6a895a68e038b60c8e"><div class="ttname"><a href="usbhs_8h.html#a9c55fec0d4198b6a895a68e038b60c8e">usbHsIfOpenUsbEp</a></div><div class="ttdeci">Result usbHsIfOpenUsbEp(UsbHsClientIfSession *s, UsbHsClientEpSession *ep, u16 maxUrbCount, u32 maxXferSize, struct usb_endpoint_descriptor *desc)</div><div class="ttdoc">Opens an endpoint.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_aa4cc2335634047799398aba4230644fc"><div class="ttname"><a href="usbhs_8h.html#aa4cc2335634047799398aba4230644fc">usbHsIfGetID</a></div><div class="ttdeci">static s32 usbHsIfGetID(UsbHsClientIfSession *s)</div><div class="ttdoc">Returns the ID which can be used for comparing with the ID in the output interfaces from usbHsQueryAc...</div><div class="ttdef"><b>Definition</b> usbhs.h:187</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_aa79d15b8f928489a830605ac3251abde"><div class="ttname"><a href="usbhs_8h.html#aa79d15b8f928489a830605ac3251abde">usbHsIfIsActive</a></div><div class="ttdeci">static bool usbHsIfIsActive(UsbHsClientIfSession *s)</div><div class="ttdoc">Returns whether the specified interface session was initialized.</div><div class="ttdef"><b>Definition</b> usbhs.h:182</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_aa937552b4b573b9acd3c95dfb42e2dfa"><div class="ttname"><a href="usbhs_8h.html#aa937552b4b573b9acd3c95dfb42e2dfa">usbHsEpClose</a></div><div class="ttdeci">void usbHsEpClose(UsbHsClientEpSession *s)</div><div class="ttdoc">UsbHsClientEpSession.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_aac6d7738e8969db4f10455565d237bae"><div class="ttname"><a href="usbhs_8h.html#aac6d7738e8969db4f10455565d237bae">usbHsCreateInterfaceAvailableEvent</a></div><div class="ttdeci">Result usbHsCreateInterfaceAvailableEvent(Event *out_event, bool autoclear, u8 index, const UsbHsInterfaceFilter *filter)</div><div class="ttdoc">Creates an event which is signaled when an interface is available which passes the filtering checks.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_aac9656beb528e6a6ff7176e1d94e1024"><div class="ttname"><a href="usbhs_8h.html#aac9656beb528e6a6ff7176e1d94e1024">usbHsEpBatchBufferAsync</a></div><div class="ttdeci">Result usbHsEpBatchBufferAsync(UsbHsClientEpSession *s, void *buffer, u32 *urbs, u32 urbCount, u64 id, u32 unk1, u32 unk2, u32 *xferId)</div><div class="ttdoc">This uses the same functionality internally as usbHsEpPostBufferAsync except the urbs array and unk1/...</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_ab28f45274f05e186c34fca737cb6580e"><div class="ttname"><a href="usbhs_8h.html#ab28f45274f05e186c34fca737cb6580e">usbHsEpGetXferReport</a></div><div class="ttdeci">Result usbHsEpGetXferReport(UsbHsClientEpSession *s, UsbHsXferReport *reports, u32 max_reports, u32 *count)</div><div class="ttdoc">Gets an array of UsbHsXferReport for the specified endpoint.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_ab5eabb933b1a9fc329a5393f70982efc"><div class="ttname"><a href="usbhs_8h.html#ab5eabb933b1a9fc329a5393f70982efc">usbHsEpShareReportRing</a></div><div class="ttdeci">Result usbHsEpShareReportRing(UsbHsClientEpSession *s, void *buffer, size_t size)</div><div class="ttdoc">This creates TransferMemory which is used to read UsbHsXferReport when usbHsEpGetXferReport is used,...</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_ad6837a22e5321182b8aad554f2955203"><div class="ttname"><a href="usbhs_8h.html#ad6837a22e5321182b8aad554f2955203">usbHsQueryAllInterfaces</a></div><div class="ttdeci">Result usbHsQueryAllInterfaces(const UsbHsInterfaceFilter *filter, UsbHsInterface *interfaces, size_t interfaces_maxsize, s32 *total_entries)</div><div class="ttdoc">Returns an array of all UsbHsInterface.</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_adf5d082945fb0d6ec54af30f35abd102"><div class="ttname"><a href="usbhs_8h.html#adf5d082945fb0d6ec54af30f35abd102">usbHsIfCtrlXfer</a></div><div class="ttdeci">Result usbHsIfCtrlXfer(UsbHsClientIfSession *s, u8 bmRequestType, u8 bRequest, u16 wValue, u16 wIndex, u16 wLength, void *buffer, u32 *transferredSize)</div><div class="ttdoc">Uses a control transfer, this will block until the transfer finishes. The buffer address and size sho...</div></div>
|
|
<div class="ttc" id="ausbhs_8h_html_ae5d34d2f1601d378280309332fb78b11"><div class="ttname"><a href="usbhs_8h.html#ae5d34d2f1601d378280309332fb78b11">usbHsIfGetInterface</a></div><div class="ttdeci">Result usbHsIfGetInterface(UsbHsClientIfSession *s, UsbHsInterfaceInfo *inf)</div><div class="ttdoc">Gets an interface.</div></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated by <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>
|