mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
455 lines
27 KiB
HTML
455 lines
27 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/kernel/wait.h File Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">libnx<span id="projectnumber"> 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>
|
|
<!-- 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_36b4ff30955378a33ed199d75bfba1a9.html">kernel</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Data Structures</a> |
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#typedef-members">Typedefs</a> |
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">wait.h File Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>User mode synchronization primitive waiting operations.
|
|
<a href="#details">More...</a></p>
|
|
<div class="textblock"><code>#include "<a class="el" href="mutex_8h_source.html">mutex.h</a>"</code><br />
|
|
</div>
|
|
<p><a href="wait_8h_source.html">Go to the source code of this file.</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
|
Data Structures</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structWaitableNode.html">WaitableNode</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structWaitable.html">Waitable</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structWaiter.html">Waiter</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structWaiter.html" title="Waiter structure, representing any generic waitable synchronization object; both kernel-mode and user...">Waiter</a> structure, representing any generic waitable synchronization object; both kernel-mode and user-mode. <a href="structWaiter.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:a184cb0e9eb868ba17f14a6a1c348bef4" id="r_a184cb0e9eb868ba17f14a6a1c348bef4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wait_8h.html#a184cb0e9eb868ba17f14a6a1c348bef4">waitMulti</a>(idx_out, timeout, ...)</td></tr>
|
|
<tr class="memdesc:a184cb0e9eb868ba17f14a6a1c348bef4"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro for <a class="el" href="wait_8h.html#a6da5414d448ff377baea7bfc1bad075d">waitObjects</a> that accepts <a class="el" href="structWaiter.html">Waiter</a> structures as variadic arguments instead of as an array. <br /></td></tr>
|
|
<tr class="separator:a184cb0e9eb868ba17f14a6a1c348bef4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a22d9844366cf5085747b3d98d8818eb7" id="r_a22d9844366cf5085747b3d98d8818eb7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="wait_8h.html#a22d9844366cf5085747b3d98d8818eb7">waitMultiHandle</a>(idx_out, timeout, ...)</td></tr>
|
|
<tr class="memdesc:a22d9844366cf5085747b3d98d8818eb7"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro for <a class="el" href="wait_8h.html#a6c186f6fff1bb0f1183b19cdd4fc68b0">waitHandles</a> that accepts handles as variadic arguments instead of as an array. <br /></td></tr>
|
|
<tr class="separator:a22d9844366cf5085747b3d98d8818eb7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:a67a96c3076527257ae8e42cc42b184fd" id="r_a67a96c3076527257ae8e42cc42b184fd"><td class="memItemLeft" align="right" valign="top"><a id="a67a96c3076527257ae8e42cc42b184fd" name="a67a96c3076527257ae8e42cc42b184fd"></a>
|
|
typedef struct WaitableMethods </td><td class="memItemRight" valign="bottom"><b>WaitableMethods</b></td></tr>
|
|
<tr class="separator:a67a96c3076527257ae8e42cc42b184fd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:a61f9aad41b2a8803f4a27777e66c9df0" id="r_a61f9aad41b2a8803f4a27777e66c9df0"><td class="memItemLeft" align="right" valign="top"><a id="a61f9aad41b2a8803f4a27777e66c9df0" name="a61f9aad41b2a8803f4a27777e66c9df0"></a>enum  </td><td class="memItemRight" valign="bottom"><b>WaiterType</b> { <br />
|
|
  <b>WaiterType_Handle</b>
|
|
, <br />
|
|
  <b>WaiterType_HandleWithClear</b>
|
|
, <br />
|
|
  <b>WaiterType_Waitable</b>
|
|
<br />
|
|
}</td></tr>
|
|
<tr class="separator:a61f9aad41b2a8803f4a27777e66c9df0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:aab566c1bfeaeea7a02d4fc20d34a0025" id="r_aab566c1bfeaeea7a02d4fc20d34a0025"><td class="memItemLeft" align="right" valign="top"><a id="aab566c1bfeaeea7a02d4fc20d34a0025" name="aab566c1bfeaeea7a02d4fc20d34a0025"></a>
|
|
static <a class="el" href="structWaiter.html">Waiter</a> </td><td class="memItemRight" valign="bottom"><b>waiterForHandle</b> (<a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> h)</td></tr>
|
|
<tr class="memdesc:aab566c1bfeaeea7a02d4fc20d34a0025"><td class="mdescLeft"> </td><td class="mdescRight">Creates a <a class="el" href="structWaiter.html">Waiter</a> for a kernel-mode <a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>. <br /></td></tr>
|
|
<tr class="separator:aab566c1bfeaeea7a02d4fc20d34a0025"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6da5414d448ff377baea7bfc1bad075d" id="r_a6da5414d448ff377baea7bfc1bad075d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="wait_8h.html#a6da5414d448ff377baea7bfc1bad075d">waitObjects</a> (<a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> *idx_out, const <a class="el" href="structWaiter.html">Waiter</a> *objects, <a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> num_objects, <a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> timeout)</td></tr>
|
|
<tr class="memdesc:a6da5414d448ff377baea7bfc1bad075d"><td class="mdescLeft"> </td><td class="mdescRight">Waits for an arbitrary number of generic waitable synchronization objects, optionally with a timeout. <br /></td></tr>
|
|
<tr class="separator:a6da5414d448ff377baea7bfc1bad075d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6c186f6fff1bb0f1183b19cdd4fc68b0" id="r_a6c186f6fff1bb0f1183b19cdd4fc68b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="wait_8h.html#a6c186f6fff1bb0f1183b19cdd4fc68b0">waitHandles</a> (<a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> *idx_out, const <a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *handles, <a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> num_handles, <a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> timeout)</td></tr>
|
|
<tr class="memdesc:a6c186f6fff1bb0f1183b19cdd4fc68b0"><td class="mdescLeft"> </td><td class="mdescRight">Waits for an arbitrary number of kernel synchronization objects, optionally with a timeout. <br /></td></tr>
|
|
<tr class="separator:a6c186f6fff1bb0f1183b19cdd4fc68b0"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8b0e92da5e3dfcb52c40371c90727d1d" id="r_a8b0e92da5e3dfcb52c40371c90727d1d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="wait_8h.html#a8b0e92da5e3dfcb52c40371c90727d1d">waitSingle</a> (<a class="el" href="structWaiter.html">Waiter</a> w, <a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> timeout)</td></tr>
|
|
<tr class="memdesc:a8b0e92da5e3dfcb52c40371c90727d1d"><td class="mdescLeft"> </td><td class="mdescRight">Waits on a single generic waitable synchronization object, optionally with a timeout. <br /></td></tr>
|
|
<tr class="separator:a8b0e92da5e3dfcb52c40371c90727d1d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aae76c9fd3eca90f86986663d72204bb9" id="r_aae76c9fd3eca90f86986663d72204bb9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="wait_8h.html#aae76c9fd3eca90f86986663d72204bb9">waitSingleHandle</a> (<a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> h, <a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> timeout)</td></tr>
|
|
<tr class="memdesc:aae76c9fd3eca90f86986663d72204bb9"><td class="mdescLeft"> </td><td class="mdescRight">Waits for a single kernel synchronization object, optionally with a timeout. <br /></td></tr>
|
|
<tr class="separator:aae76c9fd3eca90f86986663d72204bb9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>User mode synchronization primitive waiting operations. </p>
|
|
<dl class="section author"><dt>Author</dt><dd>plutoo </dd></dl>
|
|
<dl class="section copyright"><dt>Copyright</dt><dd>libnx Authors </dd></dl>
|
|
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
|
<a id="a184cb0e9eb868ba17f14a6a1c348bef4" name="a184cb0e9eb868ba17f14a6a1c348bef4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a184cb0e9eb868ba17f14a6a1c348bef4">◆ </a></span>waitMulti</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define waitMulti</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">idx_out, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">timeout, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname"><em>...</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ({ \</div>
|
|
<div class="line"> <a class="code hl_struct" href="structWaiter.html">Waiter</a> __objects[] = { __VA_ARGS__ }; \</div>
|
|
<div class="line"> waitObjects((idx_out), __objects, <span class="keyword">sizeof</span>(__objects) / <span class="keyword">sizeof</span>(<a class="code hl_struct" href="structWaiter.html">Waiter</a>), (timeout)); \</div>
|
|
<div class="line">})</div>
|
|
<div class="ttc" id="astructWaiter_html"><div class="ttname"><a href="structWaiter.html">Waiter</a></div><div class="ttdoc">Waiter structure, representing any generic waitable synchronization object; both kernel-mode and user...</div><div class="ttdef"><b>Definition</b> wait.h:36</div></div>
|
|
</div><!-- fragment -->
|
|
<p>Helper macro for <a class="el" href="wait_8h.html#a6da5414d448ff377baea7bfc1bad075d">waitObjects</a> that accepts <a class="el" href="structWaiter.html">Waiter</a> structures as variadic arguments instead of as an array. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">idx_out</td><td>The index of the signalled waiter. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout (in nanoseconds). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The number of objects must not be greater than <a class="el" href="svc_8h.html#adb3582f9aaf78eddd43389c3b50e015f">MAX_WAIT_OBJECTS</a>. This is a Horizon kernel limitation. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a22d9844366cf5085747b3d98d8818eb7" name="a22d9844366cf5085747b3d98d8818eb7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a22d9844366cf5085747b3d98d8818eb7">◆ </a></span>waitMultiHandle</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define waitMultiHandle</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">idx_out, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">timeout, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname"><em>...</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> ({ \</div>
|
|
<div class="line"> <a class="code hl_typedef" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> __handles[] = { __VA_ARGS__ }; \</div>
|
|
<div class="line"> waitHandles((idx_out), __handles, <span class="keyword">sizeof</span>(__handles) / <span class="keyword">sizeof</span>(<a class="code hl_typedef" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>), (timeout)); \</div>
|
|
<div class="line">})</div>
|
|
<div class="ttc" id="atypes_8h_html_ab6d744c6b5de129f12937e482dc674fb"><div class="ttname"><a href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a></div><div class="ttdeci">u32 Handle</div><div class="ttdoc">Kernel object handle.</div><div class="ttdef"><b>Definition</b> types.h:43</div></div>
|
|
</div><!-- fragment -->
|
|
<p>Helper macro for <a class="el" href="wait_8h.html#a6c186f6fff1bb0f1183b19cdd4fc68b0">waitHandles</a> that accepts handles as variadic arguments instead of as an array. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">idx_out</td><td>The index of the signalled handle. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout (in nanoseconds). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The number of objects must not be greater than <a class="el" href="svc_8h.html#adb3582f9aaf78eddd43389c3b50e015f">MAX_WAIT_OBJECTS</a>. This is a Horizon kernel limitation. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="a6c186f6fff1bb0f1183b19cdd4fc68b0" name="a6c186f6fff1bb0f1183b19cdd4fc68b0"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6c186f6fff1bb0f1183b19cdd4fc68b0">◆ </a></span>waitHandles()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> waitHandles </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> * </td>
|
|
<td class="paramname"><em>idx_out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> * </td>
|
|
<td class="paramname"><em>handles</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> </td>
|
|
<td class="paramname"><em>num_handles</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> </td>
|
|
<td class="paramname"><em>timeout</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Waits for an arbitrary number of kernel synchronization objects, optionally with a timeout. </p>
|
|
<p>This function replaces <a class="el" href="svc_8h.html#a24db9958be55b2c39da7240eb18e1e32">svcWaitSynchronization</a>. </p><dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">idx_out</td><td>Variable that will received the index of the signalled object. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">handles</td><td>Array containing handles. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">num_handles</td><td>Number of handles in the array. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout (in nanoseconds). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The number of objects must not be greater than <a class="el" href="svc_8h.html#adb3582f9aaf78eddd43389c3b50e015f">MAX_WAIT_OBJECTS</a>. This is a Horizon kernel limitation. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a6da5414d448ff377baea7bfc1bad075d" name="a6da5414d448ff377baea7bfc1bad075d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a6da5414d448ff377baea7bfc1bad075d">◆ </a></span>waitObjects()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> waitObjects </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> * </td>
|
|
<td class="paramname"><em>idx_out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const <a class="el" href="structWaiter.html">Waiter</a> * </td>
|
|
<td class="paramname"><em>objects</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> </td>
|
|
<td class="paramname"><em>num_objects</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> </td>
|
|
<td class="paramname"><em>timeout</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Waits for an arbitrary number of generic waitable synchronization objects, optionally with a timeout. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">idx_out</td><td>Variable that will received the index of the signalled object. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">objects</td><td>Array containing <a class="el" href="structWaiter.html">Waiter</a> structures. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">num_objects</td><td>Number of objects in the array. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout (in nanoseconds). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Result code. </dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The number of objects must not be greater than <a class="el" href="svc_8h.html#adb3582f9aaf78eddd43389c3b50e015f">MAX_WAIT_OBJECTS</a>. This is a Horizon kernel limitation. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a8b0e92da5e3dfcb52c40371c90727d1d" name="a8b0e92da5e3dfcb52c40371c90727d1d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a8b0e92da5e3dfcb52c40371c90727d1d">◆ </a></span>waitSingle()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> waitSingle </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structWaiter.html">Waiter</a> </td>
|
|
<td class="paramname"><em>w</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> </td>
|
|
<td class="paramname"><em>timeout</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Waits on a single generic waitable synchronization object, optionally with a timeout. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">w</td><td><a class="el" href="structWaiter.html">Waiter</a> structure. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout (in nanoseconds). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aae76c9fd3eca90f86986663d72204bb9" name="aae76c9fd3eca90f86986663d72204bb9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aae76c9fd3eca90f86986663d72204bb9">◆ </a></span>waitSingleHandle()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="types_8h.html#ad1be2721625a17f1be47fac918032afe">Result</a> waitSingleHandle </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> </td>
|
|
<td class="paramname"><em>h</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> </td>
|
|
<td class="paramname"><em>timeout</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Waits for a single kernel synchronization object, optionally with a timeout. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td><a class="el" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> of the object. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Timeout (in nanoseconds). </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
</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>
|