1902 lines
452 KiB
HTML
1902 lines
452 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">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.9.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>libctru: include/3ds/svc.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 style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">libctru
|
|
 <span id="projectnumber">v2.4.1</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.9.1 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(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">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</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_d475325f6a9fe3bfc3a495c72a9e475e.html">3ds</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<div class="title">svc.h</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="svc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * @file svc.h</span></div>
|
|
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * @brief Syscall wrappers.</span></div>
|
|
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#pragma once</span></div>
|
|
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  </div>
|
|
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="types_8h.html">types.h</a>"</span></div>
|
|
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">/// Pseudo handle for the current process</span></div>
|
|
<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="svc_8h.html#a0b30bcbc98ad85fe81ac6de8ea464276"> 10</a></span> <span class="comment"></span><span class="preprocessor">#define CUR_PROCESS_HANDLE 0xFFFF8001</span></div>
|
|
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">///@name Memory management</span></div>
|
|
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * @brief @ref svcControlMemory operation flags</span></div>
|
|
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * The lowest 8 bits are the operation</span></div>
|
|
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0f"> 20</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa0277897bdb24ec61ebe721b6e2213393"> 21</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa0277897bdb24ec61ebe721b6e2213393">MEMOP_FREE</a> = 1, <span class="comment">///< Memory un-mapping</span></div>
|
|
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0faa08bd2ac9bdfc6a958ef71a6d4615f88"> 22</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0faa08bd2ac9bdfc6a958ef71a6d4615f88">MEMOP_RESERVE</a> = 2, <span class="comment">///< Reserve memory</span></div>
|
|
<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa204affee42a49e0da0c743a910e9ebed"> 23</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa204affee42a49e0da0c743a910e9ebed">MEMOP_ALLOC</a> = 3, <span class="comment">///< Memory mapping</span></div>
|
|
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fad3419008fb719308be57a96f7dbc1a07"> 24</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fad3419008fb719308be57a96f7dbc1a07">MEMOP_MAP</a> = 4, <span class="comment">///< Mirror mapping</span></div>
|
|
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0faebba281d2e3a26717e803b22cb4f6951"> 25</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0faebba281d2e3a26717e803b22cb4f6951">MEMOP_UNMAP</a> = 5, <span class="comment">///< Mirror unmapping</span></div>
|
|
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa19d01531a81ab0476a6977ea5c4f8eb1"> 26</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa19d01531a81ab0476a6977ea5c4f8eb1">MEMOP_PROT</a> = 6, <span class="comment">///< Change protection</span></div>
|
|
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
|
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fad4d969ef37e24230f5f66b1700634763"> 28</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fad4d969ef37e24230f5f66b1700634763">MEMOP_REGION_APP</a> = 0x100, <span class="comment">///< APPLICATION memory region.</span></div>
|
|
<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fae9985e0572e18a1f8334ab8887bfa50d"> 29</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fae9985e0572e18a1f8334ab8887bfa50d">MEMOP_REGION_SYSTEM</a> = 0x200, <span class="comment">///< SYSTEM memory region.</span></div>
|
|
<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa3be4e93c776697aeedd82f51b28f21ed"> 30</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa3be4e93c776697aeedd82f51b28f21ed">MEMOP_REGION_BASE</a> = 0x300, <span class="comment">///< BASE memory region.</span></div>
|
|
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  </div>
|
|
<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa09aacdab03ccb3fe52723ee25e105329"> 32</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa09aacdab03ccb3fe52723ee25e105329">MEMOP_OP_MASK</a> = 0xFF, <span class="comment">///< Operation bitmask.</span></div>
|
|
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa58a22e2d8cd7250a43819805757e4413"> 33</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa58a22e2d8cd7250a43819805757e4413">MEMOP_REGION_MASK</a> = 0xF00, <span class="comment">///< Region bitmask.</span></div>
|
|
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fa38d1aa9f77dfede9f2bb50aa7c39ffd7"> 34</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa38d1aa9f77dfede9f2bb50aa7c39ffd7">MEMOP_LINEAR_FLAG</a> = 0x10000, <span class="comment">///< Flag for linear memory operations</span></div>
|
|
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
|
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="svc_8h.html#a754721841a571940880975d2191f3e0fac0a3b46ec2c6ead43fb1de9772729595"> 36</a></span>  <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fac0a3b46ec2c6ead43fb1de9772729595">MEMOP_ALLOC_LINEAR</a> = <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa38d1aa9f77dfede9f2bb50aa7c39ffd7">MEMOP_LINEAR_FLAG</a> | <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0fa204affee42a49e0da0c743a910e9ebed">MEMOP_ALLOC</a>, <span class="comment">///< Allocates linear memory.</span></div>
|
|
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> } <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0f">MemOp</a>;</div>
|
|
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">/// The state of a memory block.</span></div>
|
|
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7"> 40</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a28319451e29cd1d428cb794e452c755b"> 41</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a28319451e29cd1d428cb794e452c755b">MEMSTATE_FREE</a> = 0, <span class="comment">///< Free memory</span></div>
|
|
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7ac0adf485622be6e0fbbdc7cbb8c47117"> 42</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7ac0adf485622be6e0fbbdc7cbb8c47117">MEMSTATE_RESERVED</a> = 1, <span class="comment">///< Reserved memory</span></div>
|
|
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a99d241b8c1e39f56cc62c0ae8f0a1a49"> 43</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a99d241b8c1e39f56cc62c0ae8f0a1a49">MEMSTATE_IO</a> = 2, <span class="comment">///< I/O memory</span></div>
|
|
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7aaca66457f6d543c2b19b0430590fc143"> 44</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7aaca66457f6d543c2b19b0430590fc143">MEMSTATE_STATIC</a> = 3, <span class="comment">///< Static memory</span></div>
|
|
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a271fa8404bb634409a54c9d4f5f35627"> 45</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a271fa8404bb634409a54c9d4f5f35627">MEMSTATE_CODE</a> = 4, <span class="comment">///< Code memory</span></div>
|
|
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a728b20cb6be4b28ab6694984b7e79018"> 46</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a728b20cb6be4b28ab6694984b7e79018">MEMSTATE_PRIVATE</a> = 5, <span class="comment">///< Private memory</span></div>
|
|
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a46982bcef4b1151bc212a8ae7b9605eb"> 47</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a46982bcef4b1151bc212a8ae7b9605eb">MEMSTATE_SHARED</a> = 6, <span class="comment">///< Shared memory</span></div>
|
|
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a4dd019bd15843b85ba5b2e980816df50"> 48</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a4dd019bd15843b85ba5b2e980816df50">MEMSTATE_CONTINUOUS</a> = 7, <span class="comment">///< Continuous memory</span></div>
|
|
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a5e54fc6b8c3f3090eba67147f3000d31"> 49</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a5e54fc6b8c3f3090eba67147f3000d31">MEMSTATE_ALIASED</a> = 8, <span class="comment">///< Aliased memory</span></div>
|
|
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a26e7ac8c3e0c4a0ed3f77d0bd9788ac5"> 50</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a26e7ac8c3e0c4a0ed3f77d0bd9788ac5">MEMSTATE_ALIAS</a> = 9, <span class="comment">///< Alias memory</span></div>
|
|
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a59073efd4c26f46fee26de08c255e0b2"> 51</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a59073efd4c26f46fee26de08c255e0b2">MEMSTATE_ALIASCODE</a> = 10, <span class="comment">///< Aliased code memory</span></div>
|
|
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7ae339e1d3911aeadbe94cffaa8e27436b"> 52</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7ae339e1d3911aeadbe94cffaa8e27436b">MEMSTATE_LOCKED</a> = 11, <span class="comment">///< Locked memory</span></div>
|
|
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> } <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7">MemState</a>;</div>
|
|
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">/// Memory permission flags</span></div>
|
|
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8"> 56</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a94982bf2da2aa85b256d272073d8a3b2"> 57</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a94982bf2da2aa85b256d272073d8a3b2">MEMPERM_READ</a> = 1, <span class="comment">///< Readable</span></div>
|
|
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a1cd211ea237b7a2f9d79784ad80381ef"> 58</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a1cd211ea237b7a2f9d79784ad80381ef">MEMPERM_WRITE</a> = 2, <span class="comment">///< Writable</span></div>
|
|
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a95166c88c977b8f6621cc3fddfbef097"> 59</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a95166c88c977b8f6621cc3fddfbef097">MEMPERM_EXECUTE</a> = 4, <span class="comment">///< Executable</span></div>
|
|
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a6a38ed1f87f49fe7db01ad467e5bdf11"> 60</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a6a38ed1f87f49fe7db01ad467e5bdf11">MEMPERM_READWRITE</a> = <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a94982bf2da2aa85b256d272073d8a3b2">MEMPERM_READ</a> | <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a1cd211ea237b7a2f9d79784ad80381ef">MEMPERM_WRITE</a>, <span class="comment">///< Readable and writable</span></div>
|
|
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8aec242833b7930ca0c26c9a82cc0106f0"> 61</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8aec242833b7930ca0c26c9a82cc0106f0">MEMPERM_READEXECUTE</a> = <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a94982bf2da2aa85b256d272073d8a3b2">MEMPERM_READ</a> | <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a95166c88c977b8f6621cc3fddfbef097">MEMPERM_EXECUTE</a>, <span class="comment">///< Readable and executable</span></div>
|
|
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a00b3d9ebe75e827a690b181275e36285"> 62</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a00b3d9ebe75e827a690b181275e36285">MEMPERM_DONTCARE</a> = 0x10000000, <span class="comment">///< Don't care</span></div>
|
|
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> } <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a>;</div>
|
|
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">/// Memory regions.</span></div>
|
|
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eb"> 66</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
|
|
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
|
|
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba87d800dfa880eb2c7606cbc6e88cdfc9"> 68</a></span>  <a class="code" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba87d800dfa880eb2c7606cbc6e88cdfc9">MEMREGION_ALL</a> = 0, <span class="comment">///< All regions.</span></div>
|
|
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92ebaa6dca7f0283dc36043000cf009b3037d"> 69</a></span>  <a class="code" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92ebaa6dca7f0283dc36043000cf009b3037d">MEMREGION_APPLICATION</a> = 1, <span class="comment">///< APPLICATION memory.</span></div>
|
|
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba3593cd195de87cfb8d9ef3a8d4aa4d61"> 70</a></span>  <a class="code" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba3593cd195de87cfb8d9ef3a8d4aa4d61">MEMREGION_SYSTEM</a> = 2, <span class="comment">///< SYSTEM memory.</span></div>
|
|
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba71250d7c703bed890cb5c41e6a04b292"> 71</a></span>  <a class="code" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba71250d7c703bed890cb5c41e6a04b292">MEMREGION_BASE</a> = 3, <span class="comment">///< BASE memory.</span></div>
|
|
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> } <a class="code" href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eb">MemRegion</a>;</div>
|
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">/// Memory information.</span></div>
|
|
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structMemInfo.html"> 75</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structMemInfo.html#a09e7aca5fd9ef2548ac6ada176c05ae4"> 76</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structMemInfo.html#a09e7aca5fd9ef2548ac6ada176c05ae4">base_addr</a>; <span class="comment">///< Base address.</span></div>
|
|
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structMemInfo.html#aafaee8ba3c6411806c7e319bec27b473"> 77</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structMemInfo.html#aafaee8ba3c6411806c7e319bec27b473">size</a>; <span class="comment">///< Size.</span></div>
|
|
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structMemInfo.html#a605f0850163837f0aef887a7413c7e0b"> 78</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structMemInfo.html#a605f0850163837f0aef887a7413c7e0b">perm</a>; <span class="comment">///< Memory permissions. See @ref MemPerm</span></div>
|
|
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structMemInfo.html#a4473b7b20d510475032d0eb242d74165"> 79</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structMemInfo.html#a4473b7b20d510475032d0eb242d74165">state</a>; <span class="comment">///< Memory state. See @ref MemState</span></div>
|
|
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> } <a class="code" href="structMemInfo.html">MemInfo</a>;</div>
|
|
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">/// Memory page information.</span></div>
|
|
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structPageInfo.html"> 83</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structPageInfo.html#a3dc8d09f59ee6c9562713186b8b037aa"> 84</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structPageInfo.html#a3dc8d09f59ee6c9562713186b8b037aa">flags</a>; <span class="comment">///< Page flags.</span></div>
|
|
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> } <a class="code" href="structPageInfo.html">PageInfo</a>;</div>
|
|
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">/// Arbitration modes.</span></div>
|
|
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="svc_8h.html#a00f5b708129ef172b59197a775b533ec"> 88</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="svc_8h.html#a00f5b708129ef172b59197a775b533eca503fb7656e3429195054786b8779cbd6"> 89</a></span>  <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533eca503fb7656e3429195054786b8779cbd6">ARBITRATION_SIGNAL</a> = 0, <span class="comment">///< Signal #value threads for wake-up.</span></div>
|
|
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="svc_8h.html#a00f5b708129ef172b59197a775b533eca9416744f50ce5abc375c88692271c751"> 90</a></span>  <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533eca9416744f50ce5abc375c88692271c751">ARBITRATION_WAIT_IF_LESS_THAN</a> = 1, <span class="comment">///< If the memory at the address is strictly lower than #value, then wait for signal.</span></div>
|
|
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="svc_8h.html#a00f5b708129ef172b59197a775b533eca551c32ebca2151dc1fed5450d458433f"> 91</a></span>  <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533eca551c32ebca2151dc1fed5450d458433f">ARBITRATION_DECREMENT_AND_WAIT_IF_LESS_THAN</a> = 2, <span class="comment">///< If the memory at the address is strictly lower than #value, then decrement it and wait for signal.</span></div>
|
|
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="svc_8h.html#a00f5b708129ef172b59197a775b533ecafe6754c50fcd095096605d9587188970"> 92</a></span>  <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533ecafe6754c50fcd095096605d9587188970">ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT</a> = 3, <span class="comment">///< If the memory at the address is strictly lower than #value, then wait for signal or timeout.</span></div>
|
|
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="svc_8h.html#a00f5b708129ef172b59197a775b533ecab503e618303a55b029bda8eef14776e9"> 93</a></span>  <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533ecab503e618303a55b029bda8eef14776e9">ARBITRATION_DECREMENT_AND_WAIT_IF_LESS_THAN_TIMEOUT</a> = 4, <span class="comment">///< If the memory at the address is strictly lower than #value, then decrement it and wait for signal or timeout.</span></div>
|
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> } <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533ec">ArbitrationType</a>;</div>
|
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">/// Special value to signal all the threads</span></div>
|
|
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="svc_8h.html#acca9c678c119f4d1291e09c58f9ccaf5"> 97</a></span> <span class="comment"></span><span class="preprocessor">#define ARBITRATION_SIGNAL_ALL (-1)</span></div>
|
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">///@name Multithreading</span></div>
|
|
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/// Reset types (for use with events and timers)</span></div>
|
|
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdf"> 105</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa5e28681d7775d2a1fe89b4644ed8d57e"> 106</a></span>  <a class="code" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa5e28681d7775d2a1fe89b4644ed8d57e">RESET_ONESHOT</a> = 0, <span class="comment">///< When the primitive is signaled, it will wake up exactly one thread and will clear itself automatically.</span></div>
|
|
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa09868fdada28ca7c71200f2996ced929"> 107</a></span>  <a class="code" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa09868fdada28ca7c71200f2996ced929">RESET_STICKY</a> = 1, <span class="comment">///< When the primitive is signaled, it will wake up all threads and it won't clear itself automatically.</span></div>
|
|
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa7b810dd120f32f073cf6f36de294191e"> 108</a></span>  <a class="code" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa7b810dd120f32f073cf6f36de294191e">RESET_PULSE</a> = 2, <span class="comment">///< Only meaningful for timers: same as ONESHOT but it will periodically signal the timer instead of just once.</span></div>
|
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> } <a class="code" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdf">ResetType</a>;</div>
|
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">/// Types of thread info.</span></div>
|
|
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807"> 112</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807a5e0a7120c0d6495acc852bc43a3ea851">THREADINFO_TYPE_UNKNOWN</a> <span class="comment">///< Unknown.</span></div>
|
|
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807a5e0a7120c0d6495acc852bc43a3ea851"> 114</a></span> } <a class="code" href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807">ThreadInfoType</a>;</div>
|
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">/// Types of resource limit</span></div>
|
|
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780a"> 117</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aae4775036f8b37b62df9dbb8614653bcd"> 118</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aae4775036f8b37b62df9dbb8614653bcd">RESLIMIT_PRIORITY</a> = 0, <span class="comment">///< Thread priority</span></div>
|
|
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa52c9772c9039e666d86e41b791c8802c"> 119</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa52c9772c9039e666d86e41b791c8802c">RESLIMIT_COMMIT</a> = 1, <span class="comment">///< Quantity of allocatable memory</span></div>
|
|
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aaccd534676d1d91de2401e7810de813fb"> 120</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aaccd534676d1d91de2401e7810de813fb">RESLIMIT_THREAD</a> = 2, <span class="comment">///< Number of threads</span></div>
|
|
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa80e01172679736fc55506de2383329af"> 121</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa80e01172679736fc55506de2383329af">RESLIMIT_EVENT</a> = 3, <span class="comment">///< Number of events</span></div>
|
|
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aac32acf08c278fbb9c5d37cd5abaa15b8"> 122</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aac32acf08c278fbb9c5d37cd5abaa15b8">RESLIMIT_MUTEX</a> = 4, <span class="comment">///< Number of mutexes</span></div>
|
|
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa33bf64fee360e49f019fc108a12b6869"> 123</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa33bf64fee360e49f019fc108a12b6869">RESLIMIT_SEMAPHORE</a> = 5, <span class="comment">///< Number of semaphores</span></div>
|
|
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa188b2b030f861dde3218e8736d8c7341"> 124</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa188b2b030f861dde3218e8736d8c7341">RESLIMIT_TIMER</a> = 6, <span class="comment">///< Number of timers</span></div>
|
|
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aad5c0584427164249900e2957c020c7b9"> 125</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aad5c0584427164249900e2957c020c7b9">RESLIMIT_SHAREDMEMORY</a> = 7, <span class="comment">///< Number of shared memory objects, see @ref svcCreateMemoryBlock</span></div>
|
|
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aab702ae213a302c7ae032dccd116a5d35"> 126</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aab702ae213a302c7ae032dccd116a5d35">RESLIMIT_ADDRESSARBITER</a> = 8, <span class="comment">///< Number of address arbiters</span></div>
|
|
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa3aab1b0ef50ad3e6ea1ab9118f976c2b"> 127</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa3aab1b0ef50ad3e6ea1ab9118f976c2b">RESLIMIT_CPUTIME</a> = 9, <span class="comment">///< CPU time. Value expressed in percentage regular until it reaches 90.</span></div>
|
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
|
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa81bcdab92bd58b56bf3b6096a3aaf1d4"> 129</a></span>  <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa81bcdab92bd58b56bf3b6096a3aaf1d4">RESLIMIT_BIT</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(31), <span class="comment">///< Forces enum size to be 32 bits</span></div>
|
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> } <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780a">ResourceLimitType</a>;</div>
|
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">/// Pseudo handle for the current thread</span></div>
|
|
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="svc_8h.html#a848b6094dcf31bfb0fa5cc999348c2d4"> 133</a></span> <span class="comment"></span><span class="preprocessor">#define CUR_THREAD_HANDLE 0xFFFF8000</span></div>
|
|
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">///@name Device drivers</span></div>
|
|
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">/// DMA transfer state.</span></div>
|
|
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebf"> 141</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa4cfd2baa9583d9e77769f5df64de91cf"> 142</a></span>  <a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa4cfd2baa9583d9e77769f5df64de91cf">DMASTATE_STARTING</a> = 0, <span class="comment">///< DMA transfer involving at least one device is starting and has not reached DMAWFP yet.</span></div>
|
|
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa9ba0cef50f71f9aa4206a49ec23909c1"> 143</a></span>  <a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa9ba0cef50f71f9aa4206a49ec23909c1">DMASTATE_WFP_DST</a> = 1, <span class="comment">///< DMA channel is in WFP state for the destination device (2nd loop iteration onwards).</span></div>
|
|
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa053576718864451c3aaee2cd88784570"> 144</a></span>  <a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa053576718864451c3aaee2cd88784570">DMASTATE_WFP_SRC</a> = 2, <span class="comment">///< DMA channel is in WFP state for the source device (2nd loop iteration onwards).</span></div>
|
|
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfae44a8d9ac979aa20cd6851f8b2663291"> 145</a></span>  <a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfae44a8d9ac979aa20cd6851f8b2663291">DMASTATE_RUNNING</a> = 3, <span class="comment">///< DMA transfer is running.</span></div>
|
|
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfadbb15c5adf95a4a14ac003c55d8c76e9"> 146</a></span>  <a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfadbb15c5adf95a4a14ac003c55d8c76e9">DMASTATE_DONE</a> = 4, <span class="comment">///< DMA transfer is done.</span></div>
|
|
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> } <a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebf">DmaState</a>;</div>
|
|
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">/// Configuration flags for \ref DmaConfig.</span></div>
|
|
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment"></span><span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa367fac3881d4b71507ef5dedc1056daa"> 151</a></span>  <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa367fac3881d4b71507ef5dedc1056daa">DMACFG_SRC_IS_DEVICE</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0), <span class="comment">///< DMA source is a device/peripheral. Address will not auto-increment.</span></div>
|
|
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa8aaca715197bd1cb3677d4a5054475e4"> 152</a></span>  <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa8aaca715197bd1cb3677d4a5054475e4">DMACFG_DST_IS_DEVICE</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1), <span class="comment">///< DMA destination is a device/peripheral. Address will not auto-increment.</span></div>
|
|
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aabca3d1ffd34e4da56caf2b4f605bab4b"> 153</a></span>  <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aabca3d1ffd34e4da56caf2b4f605bab4b">DMACFG_WAIT_AVAILABLE</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(2), <span class="comment">///< Make \ref svcStartInterProcessDma wait for the channel to be unlocked.</span></div>
|
|
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aaf5ab7887ce35d2081382ebcca6f244a7"> 154</a></span>  <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aaf5ab7887ce35d2081382ebcca6f244a7">DMACFG_KEEP_LOCKED</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(3), <span class="comment">///< Keep the channel locked after the transfer. Required for \ref svcRestartDma.</span></div>
|
|
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa7e14b15bddd396c19222999d931c9c31"> 155</a></span>  <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa7e14b15bddd396c19222999d931c9c31">DMACFG_USE_SRC_CONFIG</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(6), <span class="comment">///< Use the provided source device configuration even if the DMA source is not a device.</span></div>
|
|
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aacec84f8191c71ebe4ee1fea21f6da313"> 156</a></span>  <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aacec84f8191c71ebe4ee1fea21f6da313">DMACFG_USE_DST_CONFIG</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(7), <span class="comment">///< Use the provided destination device configuration even if the DMA destination is not a device.</span></div>
|
|
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> };</div>
|
|
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">/// Configuration flags for \ref svcRestartDma.</span></div>
|
|
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment"></span><span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="svc_8h.html#a7859c0a3efa8b1c360f5c2376baf051eae57d3f8a94c001e6d7d3bcf05cdd91f0"> 161</a></span>  <a class="code" href="svc_8h.html#a7859c0a3efa8b1c360f5c2376baf051eae57d3f8a94c001e6d7d3bcf05cdd91f0">DMARST_UNLOCK</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0), <span class="comment">///< Unlock the channel after transfer.</span></div>
|
|
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="svc_8h.html#a7859c0a3efa8b1c360f5c2376baf051eafba2c004446b8bcc6c178cc2ebcc9320"> 162</a></span>  <a class="code" href="svc_8h.html#a7859c0a3efa8b1c360f5c2376baf051eafba2c004446b8bcc6c178cc2ebcc9320">DMARST_RESUME_DEVICE</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1), <span class="comment">///< Replace DMAFLUSHP instructions by NOP (they may not be regenerated even if this flag is not set).</span></div>
|
|
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> };</div>
|
|
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment"> * @brief Device configuration structure, part of \ref DmaConfig.</span></div>
|
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="comment"> * @note</span></div>
|
|
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment"> * - if (and only if) src/dst is a device, then src/dst won't be auto-incremented.</span></div>
|
|
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment"> * - the kernel uses DMAMOV instead of DMAADNH, when having to decrement (possibly working around an erratum);</span></div>
|
|
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment"> * this forces all loops to be unrolled -- you need to keep that in mind when using negative increments, as the kernel</span></div>
|
|
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment"> * uses a limit of 100 DMA instruction bytes per channel.</span></div>
|
|
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html"> 173</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html#a0d63473bec3ec7ebff879ccfc6b26d4d"> 174</a></span>  <a class="code" href="types_8h.html#a9e382f207c65ca13ab4ae98363aeda80">s8</a> <a class="code" href="structDmaDeviceConfig.html#a0d63473bec3ec7ebff879ccfc6b26d4d">deviceId</a>; <span class="comment">///< DMA device ID.</span></div>
|
|
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html#ac8b8d2e083b741b2fdf1ea2ce1587cac"> 175</a></span>  <a class="code" href="types_8h.html#a9e382f207c65ca13ab4ae98363aeda80">s8</a> <a class="code" href="structDmaDeviceConfig.html#ac8b8d2e083b741b2fdf1ea2ce1587cac">allowedAlignments</a>; <span class="comment">///< Mask of allowed access alignments (8, 4, 2, 1).</span></div>
|
|
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html#a4cf37a47e55e2fb89bbf52a86c12df7a"> 176</a></span>  <a class="code" href="types_8h.html#aa980e2c02ba2305e0f489d5650655425">s16</a> <a class="code" href="structDmaDeviceConfig.html#a4cf37a47e55e2fb89bbf52a86c12df7a">burstSize</a>; <span class="comment">///< Number of bytes transferred in a burst loop. Can be 0 (in which case the max allowed alignment is used as unit).</span></div>
|
|
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html#a629d5de5271384b5e0b7947a97be66c4"> 177</a></span>  <a class="code" href="types_8h.html#aa980e2c02ba2305e0f489d5650655425">s16</a> <a class="code" href="structDmaDeviceConfig.html#a629d5de5271384b5e0b7947a97be66c4">transferSize</a>; <span class="comment">///< Number of bytes transferred in a "transfer" loop (made of burst loops).</span></div>
|
|
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html#a0425b1d1ea007d4a3346894f0f36dc3a"> 178</a></span>  <a class="code" href="types_8h.html#aa980e2c02ba2305e0f489d5650655425">s16</a> <a class="code" href="structDmaDeviceConfig.html#a0425b1d1ea007d4a3346894f0f36dc3a">burstStride</a>; <span class="comment">///< Burst loop stride, can be <= 0.</span></div>
|
|
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structDmaDeviceConfig.html#a310cb52828836478313a8c01e7b529ed"> 179</a></span>  <a class="code" href="types_8h.html#aa980e2c02ba2305e0f489d5650655425">s16</a> <a class="code" href="structDmaDeviceConfig.html#a310cb52828836478313a8c01e7b529ed">transferStride</a>; <span class="comment">///< "Transfer" loop stride, can be <= 0.</span></div>
|
|
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> } <a class="code" href="structDmaDeviceConfig.html">DmaDeviceConfig</a>;</div>
|
|
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">/// Configuration stucture for \ref svcStartInterProcessDma.</span></div>
|
|
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structDmaConfig.html"> 183</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structDmaConfig.html#a11cd1631cce0b01cce18f5c2474018b5"> 184</a></span>  <a class="code" href="types_8h.html#a9e382f207c65ca13ab4ae98363aeda80">s8</a> <a class="code" href="structDmaConfig.html#a11cd1631cce0b01cce18f5c2474018b5">channelId</a>; <span class="comment">///< Channel ID (Arm11: 0-7, Arm9: 0-1). Use -1 to auto-assign to a free channel (Arm11: 3-7, Arm9: 0-1).</span></div>
|
|
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structDmaConfig.html#a4edea2c1db04623bf527cfb37e907f8d"> 185</a></span>  <a class="code" href="types_8h.html#a9e382f207c65ca13ab4ae98363aeda80">s8</a> <a class="code" href="structDmaConfig.html#a4edea2c1db04623bf527cfb37e907f8d">endianSwapSize</a>; <span class="comment">///< Endian swap size (can be 0).</span></div>
|
|
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="structDmaConfig.html#ae754da825365b8c20ca15d5a22f66a40"> 186</a></span>  <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> <a class="code" href="structDmaConfig.html#ae754da825365b8c20ca15d5a22f66a40">flags</a>; <span class="comment">///< DMACFG_* flags.</span></div>
|
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> _padding;</div>
|
|
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structDmaConfig.html#a96bff82895b0a4c15a68aa40066e7f5d"> 188</a></span>  <a class="code" href="structDmaDeviceConfig.html">DmaDeviceConfig</a> <a class="code" href="structDmaConfig.html#a96bff82895b0a4c15a68aa40066e7f5d">srcCfg</a>; <span class="comment">///< Source device configuration, read if \ref DMACFG_SRC_IS_DEVICE and/or \ref DMACFG_USE_SRC_CONFIG are set.</span></div>
|
|
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structDmaConfig.html#af3ffc0bd8ef24a50cdb68aeb24f88819"> 189</a></span>  <a class="code" href="structDmaDeviceConfig.html">DmaDeviceConfig</a> <a class="code" href="structDmaConfig.html#af3ffc0bd8ef24a50cdb68aeb24f88819">dstCfg</a>; <span class="comment">///< Destination device configuration, read if \ref DMACFG_SRC_IS_DEVICE and/or \ref DMACFG_USE_SRC_CONFIG are set.</span></div>
|
|
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> } <a class="code" href="structDmaConfig.html">DmaConfig</a>;</div>
|
|
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">///@name Debugging</span></div>
|
|
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">/// Operations for \ref svcControlPerformanceCounter</span></div>
|
|
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084"> 198</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a459599575a462e0e95444335d06e15e9"> 199</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a459599575a462e0e95444335d06e15e9">PERFCOUNTEROP_ENABLE</a> = 0, <span class="comment">///< Enable and lock perfmon. functionality.</span></div>
|
|
<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084ac4ed24fde8e2c67d1c6893e78ccbe73e"> 200</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084ac4ed24fde8e2c67d1c6893e78ccbe73e">PERFCOUNTEROP_DISABLE</a> = 1, <span class="comment">///< Disable and forcibly unlock perfmon. functionality.</span></div>
|
|
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084ad74be58d4d109f73497a2b7187b6de75"> 201</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084ad74be58d4d109f73497a2b7187b6de75">PERFCOUNTEROP_GET_VALUE</a> = 2, <span class="comment">///< Get the value of a counter register.</span></div>
|
|
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a8bf947d1af73e26fef6ad2682bc2ba9a"> 202</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a8bf947d1af73e26fef6ad2682bc2ba9a">PERFCOUNTEROP_SET_VALUE</a> = 3, <span class="comment">///< Set the value of a counter register.</span></div>
|
|
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084aa200abb919c37b196f1f3fd474b52658"> 203</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084aa200abb919c37b196f1f3fd474b52658">PERFCOUNTEROP_GET_OVERFLOW_FLAGS</a> = 4, <span class="comment">///< Get the overflow flags for all CP15 and SCU counters.</span></div>
|
|
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084af56848a9adfc24df081e54d97b313912"> 204</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084af56848a9adfc24df081e54d97b313912">PERFCOUNTEROP_RESET</a> = 5, <span class="comment">///< Reset the value and/or overflow flags of selected counters.</span></div>
|
|
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a8c6f75508fbc8f1b9024a9d456dc191d"> 205</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a8c6f75508fbc8f1b9024a9d456dc191d">PERFCOUNTEROP_GET_EVENT</a> = 6, <span class="comment">///< Get the event ID associated to a particular counter.</span></div>
|
|
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a0f31b33961d1fb6f10b0f26aae56ea51"> 206</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a0f31b33961d1fb6f10b0f26aae56ea51">PERFCOUNTEROP_SET_EVENT</a> = 7, <span class="comment">///< Set the event ID associated to a paritcular counter.</span></div>
|
|
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a5a97513b29876bee7af1770af3066122"> 207</a></span>  <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a5a97513b29876bee7af1770af3066122">PERFCOUNTEROP_SET_VIRTUAL_COUNTER_ENABLED</a> = 8, <span class="comment">///< (Dis)allow the kernel to track counter overflows and to use 64-bit counter values.</span></div>
|
|
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> } <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084">PerfCounterOperation</a>;</div>
|
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">/// Performance counter register IDs (CP15 and SCU).</span></div>
|
|
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25"> 211</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
|
|
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> {</div>
|
|
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// CP15 registers:</span></div>
|
|
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  PERFCOUNTERREG_CORE_BASE = 0,</div>
|
|
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25ad766b5a7dbfc2146f20e1b05bec28abf"> 215</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25ad766b5a7dbfc2146f20e1b05bec28abf">PERFCOUNTERREG_CORE_COUNT_REG_0</a> = PERFCOUNTERREG_CORE_BASE, <span class="comment">///< CP15 PMN0.</span></div>
|
|
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a2df47c626c6f922950c421b9b9dc25f7"> 216</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a2df47c626c6f922950c421b9b9dc25f7">PERFCOUNTERREG_CORE_COUNT_REG_1</a>, <span class="comment">///< CP15 PMN1.</span></div>
|
|
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a21629d5ab07c1422ecbb559d4a11f46c"> 217</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a21629d5ab07c1422ecbb559d4a11f46c">PERFCOUNTERREG_CORE_CYCLE_COUNTER</a>, <span class="comment">///< CP15 CCNT.</span></div>
|
|
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// SCU registers</span></div>
|
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  PERFCOUNTERREG_SCU_BASE = 0x10,</div>
|
|
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a9efbd9753e6db0e05ed3530cedb02c7e"> 221</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a9efbd9753e6db0e05ed3530cedb02c7e">PERFCOUNTERREG_SCU_0</a> = PERFCOUNTERREG_SCU_BASE, <span class="comment">///< SCU MN0.</span></div>
|
|
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a8cd0cf2d5df85b29d57a4e59b08b6c54"> 222</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a8cd0cf2d5df85b29d57a4e59b08b6c54">PERFCOUNTERREG_SCU_1</a>, <span class="comment">///< SCU MN1.</span></div>
|
|
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a928354e899519d64cc2158bf6fed3fd2"> 223</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a928354e899519d64cc2158bf6fed3fd2">PERFCOUNTERREG_SCU_2</a>, <span class="comment">///< SCU MN2.</span></div>
|
|
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a7a7051dae3b036b43e26c73166263748"> 224</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a7a7051dae3b036b43e26c73166263748">PERFCOUNTERREG_SCU_3</a>, <span class="comment">///< SCU MN3.</span></div>
|
|
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25ae23cdfca904749e817efa2171e7f98a9"> 225</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25ae23cdfca904749e817efa2171e7f98a9">PERFCOUNTERREG_SCU_4</a>, <span class="comment">///< SCU MN4. Prod-N3DS only. IRQ line missing.</span></div>
|
|
<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a7f13355747739b775648ee8802facf91"> 226</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a7f13355747739b775648ee8802facf91">PERFCOUNTERREG_SCU_5</a>, <span class="comment">///< SCU MN5. Prod-N3DS only. IRQ line missing.</span></div>
|
|
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a5dec0a4112ca52e49f81390da99ccf6f"> 227</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a5dec0a4112ca52e49f81390da99ccf6f">PERFCOUNTERREG_SCU_6</a>, <span class="comment">///< SCU MN6. Prod-N3DS only. IRQ line missing.</span></div>
|
|
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="svc_8h.html#af19b39931820deecca7704fe82695c25a5871f8bc09de26839e6b75b81b677481"> 228</a></span>  <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25a5871f8bc09de26839e6b75b81b677481">PERFCOUNTERREG_SCU_7</a>, <span class="comment">///< SCU MN7. Prod-N3DS only. IRQ line missing.</span></div>
|
|
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> } <a class="code" href="svc_8h.html#af19b39931820deecca7704fe82695c25">PerfCounterRegister</a>;</div>
|
|
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="comment"> * @brief Performance counter event IDs (CP15 or SCU).</span></div>
|
|
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment"> * </span></div>
|
|
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="comment"> * @note Refer to:</span></div>
|
|
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="comment"> * - CP15: https://developer.arm.com/documentation/ddi0360/e/control-coprocessor-cp15/register-descriptions/c15--performance-monitor-control-register--pmnc-</span></div>
|
|
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="comment"> * - SCU: https://developer.arm.com/documentation/ddi0360/e/mpcore-private-memory-region/about-the-mpcore-private-memory-region/performance-monitor-event-registers</span></div>
|
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2"> 238</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span></div>
|
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> {</div>
|
|
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// Core events:</span></div>
|
|
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  PERFCOUNTEREVT_CORE_BASE = 0x0,</div>
|
|
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  PERFCOUNTEREVT_CORE_INST_CACHE_MISS = PERFCOUNTEREVT_CORE_BASE,</div>
|
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  PERFCOUNTEREVT_CORE_STALL_BY_LACK_OF_INST,</div>
|
|
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  PERFCOUNTEREVT_CORE_STALL_BY_DATA_HAZARD,</div>
|
|
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  PERFCOUNTEREVT_CORE_INST_MICRO_TLB_MISS,</div>
|
|
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  PERFCOUNTEREVT_CORE_DATA_MICRO_TLB_MISS,</div>
|
|
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  PERFCOUNTEREVT_CORE_BRANCH_INST,</div>
|
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  PERFCOUNTEREVT_CORE_BRANCH_NOT_PREDICTED,</div>
|
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  PERFCOUNTEREVT_CORE_BRANCH_MISS_PREDICTED,</div>
|
|
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  PERFCOUNTEREVT_CORE_INST_EXECUTED,</div>
|
|
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  PERFCOUNTEREVT_CORE_FOLDED_INST_EXECUTED,</div>
|
|
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  PERFCOUNTEREVT_CORE_DATA_CACHE_READ,</div>
|
|
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  PERFCOUNTEREVT_CORE_DATA_CACHE_READ_MISS,</div>
|
|
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  PERFCOUNTEREVT_CORE_DATA_CACHE_WRITE,</div>
|
|
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  PERFCOUNTEREVT_CORE_DATA_CACHE_WRITE_MISS,</div>
|
|
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  PERFCOUNTEREVT_CORE_DATA_CACHE_LINE_EVICTION,</div>
|
|
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  PERFCOUNTEREVT_CORE_PC_CHANGED,</div>
|
|
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  PERFCOUNTEREVT_CORE_MAIN_TLB_MISS,</div>
|
|
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  PERFCOUNTEREVT_CORE_EXTERNAL_REQUEST,</div>
|
|
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  PERFCOUNTEREVT_CORE_STALL_BY_LSU_FULL,</div>
|
|
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  PERFCOUNTEREVT_CORE_STORE_BUFFER_DRAIN,</div>
|
|
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  PERFCOUNTEREVT_CORE_MERGE_IN_STORE_BUFFER,</div>
|
|
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2a413cb88f85b5e31e3cfd63f85317d364"> 263</a></span>  <a class="code" href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2a413cb88f85b5e31e3cfd63f85317d364">PERFCOUNTEREVT_CORE_CYCLE_COUNT</a> = PERFCOUNTEREVT_CORE_BASE + 0xFF, <span class="comment">///< One cycle elapsed.</span></div>
|
|
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2a666c6779ce705be7fe8bbb9996531577"> 264</a></span>  <a class="code" href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2a666c6779ce705be7fe8bbb9996531577">PERFCOUNTEREVT_CORE_CYCLE_COUNT_64</a> = PERFCOUNTEREVT_CORE_BASE + 0xFFF, <span class="comment">///< 64 cycles elapsed.</span></div>
|
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
|
|
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
|
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  PERFCOUNTEREVT_SCU_BASE = 0x1000,</div>
|
|
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  PERFCOUNTEREVT_SCU_DISABLED = PERFCOUNTEREVT_SCU_BASE,</div>
|
|
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  PERFCOUNTEREVT_SCU_LINEFILL_MISS_FROM_CORE0,</div>
|
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  PERFCOUNTEREVT_SCU_LINEFILL_MISS_FROM_CORE1,</div>
|
|
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  PERFCOUNTEREVT_SCU_LINEFILL_MISS_FROM_CORE2,</div>
|
|
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  PERFCOUNTEREVT_SCU_LINEFILL_MISS_FROM_CORE3,</div>
|
|
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  PERFCOUNTEREVT_SCU_LINEFILL_HIT_FROM_CORE0,</div>
|
|
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  PERFCOUNTEREVT_SCU_LINEFILL_HIT_FROM_CORE1,</div>
|
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  PERFCOUNTEREVT_SCU_LINEFILL_HIT_FROM_CORE2,</div>
|
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  PERFCOUNTEREVT_SCU_LINEFILL_HIT_FROM_CORE3,</div>
|
|
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  PERFCOUNTEREVT_SCU_LINE_MISSING_FROM_CORE0,</div>
|
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  PERFCOUNTEREVT_SCU_LINE_MISSING_FROM_CORE1,</div>
|
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  PERFCOUNTEREVT_SCU_LINE_MISSING_FROM_CORE2,</div>
|
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  PERFCOUNTEREVT_SCU_LINE_MISSING_FROM_CORE3,</div>
|
|
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  PERFCOUNTEREVT_SCU_LINE_MIGRATION,</div>
|
|
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  PERFCOUNTEREVT_SCU_READ_BUSY_PORT0,</div>
|
|
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  PERFCOUNTEREVT_SCU_READ_BUSY_PORT1,</div>
|
|
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  PERFCOUNTEREVT_SCU_WRITE_BUSY_PORT0,</div>
|
|
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  PERFCOUNTEREVT_SCU_WRITE_BUSY_PORT1,</div>
|
|
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  PERFCOUNTEREVT_SCU_EXTERNAL_READ,</div>
|
|
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  PERFCOUNTEREVT_SCU_EXTERNAL_WRITE,</div>
|
|
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  PERFCOUNTEREVT_SCU_CYCLE_COUNT = PERFCOUNTEREVT_SCU_BASE + 0x1F,</div>
|
|
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> } <a class="code" href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2">PerfCounterEvent</a>;</div>
|
|
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment">/// Event relating to the attachment of a process.</span></div>
|
|
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="structAttachProcessEvent.html"> 292</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="structAttachProcessEvent.html#a4336428142f8dce15453026419cc0657"> 293</a></span>  <a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code" href="structAttachProcessEvent.html#a4336428142f8dce15453026419cc0657">program_id</a>; <span class="comment">///< ID of the program.</span></div>
|
|
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structAttachProcessEvent.html#ad68812d7fee15a9ec7e4b629b5a5da16"> 294</a></span>  <span class="keywordtype">char</span> process_name[8]; <span class="comment">///< Name of the process.</span></div>
|
|
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structAttachProcessEvent.html#a4882ac904877a6b49e672376eaa7f79d"> 295</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structAttachProcessEvent.html#a4882ac904877a6b49e672376eaa7f79d">process_id</a>; <span class="comment">///< ID of the process.</span></div>
|
|
<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structAttachProcessEvent.html#a28728766fa49b7fbe9c6f8bf3fb44bd0"> 296</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structAttachProcessEvent.html#a28728766fa49b7fbe9c6f8bf3fb44bd0">other_flags</a>; <span class="comment">///< Always 0</span></div>
|
|
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> } <a class="code" href="structAttachProcessEvent.html">AttachProcessEvent</a>;</div>
|
|
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="comment">/// Reasons for an exit process event.</span></div>
|
|
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576f"> 300</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576faccb26b6a0c89e63f867c8882b65f7d57"> 301</a></span>  <a class="code" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576faccb26b6a0c89e63f867c8882b65f7d57">EXITPROCESS_EVENT_EXIT</a> = 0, <span class="comment">///< Process exited either normally or due to an uncaught exception.</span></div>
|
|
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576faefc8659c329768612032ddd127a1eade"> 302</a></span>  <a class="code" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576faefc8659c329768612032ddd127a1eade">EXITPROCESS_EVENT_TERMINATE</a> = 1, <span class="comment">///< Process has been terminated by @ref svcTerminateProcess.</span></div>
|
|
<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576fa16ce26136f8806a56dc5419954a53010"> 303</a></span>  <a class="code" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576fa16ce26136f8806a56dc5419954a53010">EXITPROCESS_EVENT_DEBUG_TERMINATE</a> = 2, <span class="comment">///< Process has been terminated by @ref svcTerminateDebugProcess.</span></div>
|
|
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> } <a class="code" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576f">ExitProcessEventReason</a>;</div>
|
|
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment">/// Event relating to the exiting of a process.</span></div>
|
|
<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="structExitProcessEvent.html"> 307</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="structExitProcessEvent.html#a5185f7932899486f78aafefc6d52744a"> 308</a></span>  <a class="code" href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576f">ExitProcessEventReason</a> <a class="code" href="structExitProcessEvent.html#a5185f7932899486f78aafefc6d52744a">reason</a>; <span class="comment">///< Reason for exiting. See @ref ExitProcessEventReason</span></div>
|
|
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> } <a class="code" href="structExitProcessEvent.html">ExitProcessEvent</a>;</div>
|
|
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">/// Event relating to the attachment of a thread.</span></div>
|
|
<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="structAttachThreadEvent.html"> 312</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="structAttachThreadEvent.html#a681ce5cc8e0b6c923d20f58e3b3766f2"> 313</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structAttachThreadEvent.html#a681ce5cc8e0b6c923d20f58e3b3766f2">creator_thread_id</a>; <span class="comment">///< ID of the creating thread.</span></div>
|
|
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="structAttachThreadEvent.html#a7dc9a7c3269c43c440b0ac7479af51ec"> 314</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structAttachThreadEvent.html#a7dc9a7c3269c43c440b0ac7479af51ec">thread_local_storage</a>; <span class="comment">///< Thread local storage.</span></div>
|
|
<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="structAttachThreadEvent.html#a280e9603c876bf35eefadc65780d6cd2"> 315</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structAttachThreadEvent.html#a280e9603c876bf35eefadc65780d6cd2">entry_point</a>; <span class="comment">///< Entry point of the thread.</span></div>
|
|
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> } <a class="code" href="structAttachThreadEvent.html">AttachThreadEvent</a>;</div>
|
|
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">/// Reasons for an exit thread event.</span></div>
|
|
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9"> 319</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9af6e122c684d430dbf1e0154c9861da4f"> 320</a></span>  <a class="code" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9af6e122c684d430dbf1e0154c9861da4f">EXITTHREAD_EVENT_EXIT</a> = 0, <span class="comment">///< Thread exited.</span></div>
|
|
<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9ad91d858c68b3f94b62fe4d275f9e9bf5"> 321</a></span>  <a class="code" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9ad91d858c68b3f94b62fe4d275f9e9bf5">EXITTHREAD_EVENT_TERMINATE</a> = 1, <span class="comment">///< Thread terminated.</span></div>
|
|
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9a2d99741dd3861d2c2cc0ad3de081151b"> 322</a></span>  <a class="code" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9a2d99741dd3861d2c2cc0ad3de081151b">EXITTHREAD_EVENT_EXIT_PROCESS</a> = 2, <span class="comment">///< Process exited either normally or due to an uncaught exception.</span></div>
|
|
<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9ac862b5b2c7d0efb53e0f3143c7601ea4"> 323</a></span>  <a class="code" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9ac862b5b2c7d0efb53e0f3143c7601ea4">EXITTHREAD_EVENT_TERMINATE_PROCESS</a> = 3, <span class="comment">///< Process has been terminated by @ref svcTerminateProcess.</span></div>
|
|
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> } <a class="code" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9">ExitThreadEventReason</a>;</div>
|
|
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment">/// Event relating to the exiting of a thread.</span></div>
|
|
<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="structExitThreadEvent.html"> 327</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="structExitThreadEvent.html#a8cc8a89ab9d43445b52a9c702baa7d43"> 328</a></span>  <a class="code" href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9">ExitThreadEventReason</a> <a class="code" href="structExitThreadEvent.html#a8cc8a89ab9d43445b52a9c702baa7d43">reason</a>; <span class="comment">///< Reason for exiting. See @ref ExitThreadEventReason</span></div>
|
|
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> } <a class="code" href="structExitThreadEvent.html">ExitThreadEvent</a>;</div>
|
|
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment">/// Reasons for a user break.</span></div>
|
|
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12"> 332</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a75d115aed8adc334b86762004550130e"> 333</a></span>  <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a75d115aed8adc334b86762004550130e">USERBREAK_PANIC</a> = 0, <span class="comment">///< Panic.</span></div>
|
|
<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12ab8652e6cba764ad8b8b205981fa10a2d"> 334</a></span>  <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12ab8652e6cba764ad8b8b205981fa10a2d">USERBREAK_ASSERT</a> = 1, <span class="comment">///< Assertion failed.</span></div>
|
|
<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a7989abf688e2db27610f1cdf30ddf553"> 335</a></span>  <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a7989abf688e2db27610f1cdf30ddf553">USERBREAK_USER</a> = 2, <span class="comment">///< User related.</span></div>
|
|
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a218f8d14ce85ff686531587f41271b91"> 336</a></span>  <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a218f8d14ce85ff686531587f41271b91">USERBREAK_LOAD_RO</a> = 3, <span class="comment">///< Load RO.</span></div>
|
|
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12ab82dbfb966f5522c2e5bfbdf1949d5a9"> 337</a></span>  <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12ab82dbfb966f5522c2e5bfbdf1949d5a9">USERBREAK_UNLOAD_RO</a> = 4, <span class="comment">///< Unload RO.</span></div>
|
|
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> } <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12">UserBreakType</a>;</div>
|
|
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment">/// Reasons for an exception event.</span></div>
|
|
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961"> 341</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a93595971d3fb771d02e6aed6512af6e9"> 342</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a93595971d3fb771d02e6aed6512af6e9">EXCEVENT_UNDEFINED_INSTRUCTION</a> = 0, <span class="comment">///< Undefined instruction.</span></div>
|
|
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a8a8d6492fced221e5c4fafba19af8336"> 343</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a8a8d6492fced221e5c4fafba19af8336">EXCEVENT_PREFETCH_ABORT</a> = 1, <span class="comment">///< Prefetch abort.</span></div>
|
|
<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961ad0388e2bb9502bf104eeae6d61d6178d"> 344</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961ad0388e2bb9502bf104eeae6d61d6178d">EXCEVENT_DATA_ABORT</a> = 2, <span class="comment">///< Data abort (other than the below kind).</span></div>
|
|
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a395e456839766ff94e2ed7e62a4393a6"> 345</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a395e456839766ff94e2ed7e62a4393a6">EXCEVENT_UNALIGNED_DATA_ACCESS</a> = 3, <span class="comment">///< Unaligned data access.</span></div>
|
|
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a84e1ee736127c4a2fed63ba26f7f62de"> 346</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a84e1ee736127c4a2fed63ba26f7f62de">EXCEVENT_ATTACH_BREAK</a> = 4, <span class="comment">///< Attached break.</span></div>
|
|
<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961ade5c633f2939b0c6847bf00eb191e09d"> 347</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961ade5c633f2939b0c6847bf00eb191e09d">EXCEVENT_STOP_POINT</a> = 5, <span class="comment">///< Stop point reached.</span></div>
|
|
<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a2675f2c2f8166cebd857bf45bf200380"> 348</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a2675f2c2f8166cebd857bf45bf200380">EXCEVENT_USER_BREAK</a> = 6, <span class="comment">///< User break occurred.</span></div>
|
|
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a5447fb68701a56078c86d7c11825d4b6"> 349</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a5447fb68701a56078c86d7c11825d4b6">EXCEVENT_DEBUGGER_BREAK</a> = 7, <span class="comment">///< Debugger break occurred.</span></div>
|
|
<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a069cc910b91b81ad647d57eda968d6f0"> 350</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a069cc910b91b81ad647d57eda968d6f0">EXCEVENT_UNDEFINED_SYSCALL</a> = 8, <span class="comment">///< Undefined syscall.</span></div>
|
|
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> } <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961">ExceptionEventType</a>;</div>
|
|
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment">/// Event relating to fault exceptions (CPU exceptions other than stop points and undefined syscalls).</span></div>
|
|
<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="structFaultExceptionEvent.html"> 354</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="structFaultExceptionEvent.html#a98ddfc2eacfa9ae2a0374a80f19f77a3"> 355</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structFaultExceptionEvent.html#a98ddfc2eacfa9ae2a0374a80f19f77a3">fault_information</a>; <span class="comment">///< FAR (for DATA ABORT / UNALIGNED DATA ACCESS), attempted syscall or 0</span></div>
|
|
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> } <a class="code" href="structFaultExceptionEvent.html">FaultExceptionEvent</a>;</div>
|
|
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment">/// Stop point types</span></div>
|
|
<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9"> 359</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9af2bda711cb2e87898ee01c75aa6eb461"> 360</a></span>  <a class="code" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9af2bda711cb2e87898ee01c75aa6eb461">STOPPOINT_SVC_FF</a> = 0, <span class="comment">///< See @ref SVC_STOP_POINT.</span></div>
|
|
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9ab0418158fb52e5f649f8695a747620b9"> 361</a></span>  <a class="code" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9ab0418158fb52e5f649f8695a747620b9">STOPPOINT_BREAKPOINT</a> = 1, <span class="comment">///< Breakpoint.</span></div>
|
|
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9ae012399e05b534e04b300fdc210debdd"> 362</a></span>  <a class="code" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9ae012399e05b534e04b300fdc210debdd">STOPPOINT_WATCHPOINT</a> = 2, <span class="comment">///< Watchpoint.</span></div>
|
|
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> } <a class="code" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9">StopPointType</a>;</div>
|
|
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment">/// Event relating to stop points</span></div>
|
|
<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="structStopPointExceptionEvent.html"> 366</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="structStopPointExceptionEvent.html#a3caffea18e63415cc84d5909bb6fe5c9"> 367</a></span>  <a class="code" href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9">StopPointType</a> <a class="code" href="structStopPointExceptionEvent.html#a3caffea18e63415cc84d5909bb6fe5c9">type</a>; <span class="comment">///< Stop point type, see @ref StopPointType.</span></div>
|
|
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="structStopPointExceptionEvent.html#a6dbbc526a72b163971660b29da44a6ae"> 368</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structStopPointExceptionEvent.html#a6dbbc526a72b163971660b29da44a6ae">fault_information</a>; <span class="comment">///< FAR for Watchpoints, otherwise 0.</span></div>
|
|
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> } <a class="code" href="structStopPointExceptionEvent.html">StopPointExceptionEvent</a>;</div>
|
|
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment">/// Event relating to @ref svcBreak</span></div>
|
|
<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="structUserBreakExceptionEvent.html"> 372</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="structUserBreakExceptionEvent.html#ab017dae7d7ccf3913ab5d6a7acaa7a23"> 373</a></span>  <a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12">UserBreakType</a> <a class="code" href="structUserBreakExceptionEvent.html#ab017dae7d7ccf3913ab5d6a7acaa7a23">type</a>; <span class="comment">///< User break type, see @ref UserBreakType.</span></div>
|
|
<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="structUserBreakExceptionEvent.html#a8e565441fc0eab7bf2cabdd4a61178f1"> 374</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structUserBreakExceptionEvent.html#a8e565441fc0eab7bf2cabdd4a61178f1">croInfo</a>; <span class="comment">///< For LOAD_RO and UNLOAD_RO.</span></div>
|
|
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="structUserBreakExceptionEvent.html#accfb27c5c97c666cc536ab14aec42511"> 375</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structUserBreakExceptionEvent.html#accfb27c5c97c666cc536ab14aec42511">croInfoSize</a>; <span class="comment">///< For LOAD_RO and UNLOAD_RO.</span></div>
|
|
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> } <a class="code" href="structUserBreakExceptionEvent.html">UserBreakExceptionEvent</a>;</div>
|
|
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="comment">/// Event relating to @ref svcBreakDebugProcess</span></div>
|
|
<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="structDebuggerBreakExceptionEvent.html"> 379</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="structDebuggerBreakExceptionEvent.html#af4d138bd134f1599e331704b9375734b"> 380</a></span>  <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> thread_ids[4]; <span class="comment">///< IDs of the attached process's threads that were running on each core at the time of the @ref svcBreakDebugProcess call, or -1 (only the first 2 values are meaningful on O3DS).</span></div>
|
|
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> } <a class="code" href="structDebuggerBreakExceptionEvent.html">DebuggerBreakExceptionEvent</a>;</div>
|
|
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="comment">/// Event relating to exceptions.</span></div>
|
|
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="structExceptionEvent.html"> 384</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="structExceptionEvent.html#a2a16b663ed61d882f78694856ff856e0"> 385</a></span>  <a class="code" href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961">ExceptionEventType</a> <a class="code" href="structExceptionEvent.html#a2a16b663ed61d882f78694856ff856e0">type</a>; <span class="comment">///< Type of event. See @ref ExceptionEventType.</span></div>
|
|
<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="structExceptionEvent.html#a5e351285983b30cc394025b929431cec"> 386</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structExceptionEvent.html#a5e351285983b30cc394025b929431cec">address</a>; <span class="comment">///< Address of the exception.</span></div>
|
|
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">union </span>{</div>
|
|
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="structExceptionEvent.html#a6f67b148ec6fcb5064b09e5e5c70c357"> 388</a></span>  <a class="code" href="structFaultExceptionEvent.html">FaultExceptionEvent</a> <a class="code" href="structExceptionEvent.html#a6f67b148ec6fcb5064b09e5e5c70c357">fault</a>; <span class="comment">///< Fault exception event data.</span></div>
|
|
<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="structExceptionEvent.html#a8f87fbd05a1735dedfaea55c528e2855"> 389</a></span>  <a class="code" href="structStopPointExceptionEvent.html">StopPointExceptionEvent</a> <a class="code" href="structExceptionEvent.html#a8f87fbd05a1735dedfaea55c528e2855">stop_point</a>; <span class="comment">///< Stop point exception event data.</span></div>
|
|
<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="structExceptionEvent.html#a331606aa5792056b999bc99756cbd598"> 390</a></span>  <a class="code" href="structUserBreakExceptionEvent.html">UserBreakExceptionEvent</a> <a class="code" href="structExceptionEvent.html#a331606aa5792056b999bc99756cbd598">user_break</a>; <span class="comment">///< User break exception event data.</span></div>
|
|
<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="structExceptionEvent.html#acb328082531198ee15b3fb1be53c47a8"> 391</a></span>  <a class="code" href="structDebuggerBreakExceptionEvent.html">DebuggerBreakExceptionEvent</a> <a class="code" href="structExceptionEvent.html#acb328082531198ee15b3fb1be53c47a8">debugger_break</a>; <span class="comment">///< Debugger break exception event data</span></div>
|
|
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  };</div>
|
|
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span> } <a class="code" href="structExceptionEvent.html">ExceptionEvent</a>;</div>
|
|
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="comment">/// Event relating to the scheduler.</span></div>
|
|
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="structScheduleInOutEvent.html"> 396</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="structScheduleInOutEvent.html#acfd73003ea1e8cfbd0ef6999807e8cc4"> 397</a></span>  <a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code" href="structScheduleInOutEvent.html#acfd73003ea1e8cfbd0ef6999807e8cc4">clock_tick</a>; <span class="comment">///< Clock tick that the event occurred.</span></div>
|
|
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> } <a class="code" href="structScheduleInOutEvent.html">ScheduleInOutEvent</a>;</div>
|
|
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment">/// Event relating to syscalls.</span></div>
|
|
<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="structSyscallInOutEvent.html"> 401</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structSyscallInOutEvent.html#a71792a3533ce5823e524d710c2404074"> 402</a></span>  <a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code" href="structSyscallInOutEvent.html#a71792a3533ce5823e524d710c2404074">clock_tick</a>; <span class="comment">///< Clock tick that the event occurred.</span></div>
|
|
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="structSyscallInOutEvent.html#a2fe80c83c8faeb0b3cc8eae2d539aa52"> 403</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structSyscallInOutEvent.html#a2fe80c83c8faeb0b3cc8eae2d539aa52">syscall</a>; <span class="comment">///< Syscall sent/received.</span></div>
|
|
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> } <a class="code" href="structSyscallInOutEvent.html">SyscallInOutEvent</a>;</div>
|
|
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="comment">/// Event relating to debug output.</span></div>
|
|
<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="structOutputStringEvent.html"> 407</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="structOutputStringEvent.html#a4d4f08f49e570009b2d6d829fa3eea09"> 408</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structOutputStringEvent.html#a4d4f08f49e570009b2d6d829fa3eea09">string_addr</a>; <span class="comment">///< Address of the outputted string.</span></div>
|
|
<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="structOutputStringEvent.html#a08288e242fa7958862b1ba7dd720a220"> 409</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structOutputStringEvent.html#a08288e242fa7958862b1ba7dd720a220">string_size</a>; <span class="comment">///< Size of the outputted string.</span></div>
|
|
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> } <a class="code" href="structOutputStringEvent.html">OutputStringEvent</a>;</div>
|
|
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment">/// Event relating to the mapping of memory.</span></div>
|
|
<div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="structMapEvent.html"> 413</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="structMapEvent.html#aaecb80deb0ad7177c80263c4b6bd83cd"> 414</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structMapEvent.html#aaecb80deb0ad7177c80263c4b6bd83cd">mapped_addr</a>; <span class="comment">///< Mapped address.</span></div>
|
|
<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="structMapEvent.html#ae034793f645417e52c2892851c54cb80"> 415</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structMapEvent.html#ae034793f645417e52c2892851c54cb80">mapped_size</a>; <span class="comment">///< Mapped size.</span></div>
|
|
<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="structMapEvent.html#acfa673343ba42dc41f5e9b23aa5645f8"> 416</a></span>  <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a> <a class="code" href="structMapEvent.html#acfa673343ba42dc41f5e9b23aa5645f8">memperm</a>; <span class="comment">///< Memory permissions. See @ref MemPerm.</span></div>
|
|
<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="structMapEvent.html#a25ebd56741175c344531039dd8850333"> 417</a></span>  <a class="code" href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7">MemState</a> <a class="code" href="structMapEvent.html#a25ebd56741175c344531039dd8850333">memstate</a>; <span class="comment">///< Memory state. See @ref MemState.</span></div>
|
|
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> } <a class="code" href="structMapEvent.html">MapEvent</a>;</div>
|
|
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="comment">/// Debug event type.</span></div>
|
|
<div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754"> 421</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754ac0a513ef6cb7b18b882ca3b4484be376"> 422</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754ac0a513ef6cb7b18b882ca3b4484be376">DBGEVENT_ATTACH_PROCESS</a> = 0, <span class="comment">///< Process attached event.</span></div>
|
|
<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754ab39b8b0c362f20d8f3b6a789684ad382"> 423</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754ab39b8b0c362f20d8f3b6a789684ad382">DBGEVENT_ATTACH_THREAD</a> = 1, <span class="comment">///< Thread attached event.</span></div>
|
|
<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754acec82ab612fb6a61454e6acf13d9535d"> 424</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754acec82ab612fb6a61454e6acf13d9535d">DBGEVENT_EXIT_THREAD</a> = 2, <span class="comment">///< Thread exit event.</span></div>
|
|
<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a2635a9230834ce193ced7e11ad3d719a"> 425</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a2635a9230834ce193ced7e11ad3d719a">DBGEVENT_EXIT_PROCESS</a> = 3, <span class="comment">///< Process exit event.</span></div>
|
|
<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a208e5e5396544ebdbca5c2683b496a3a"> 426</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a208e5e5396544ebdbca5c2683b496a3a">DBGEVENT_EXCEPTION</a> = 4, <span class="comment">///< Exception event.</span></div>
|
|
<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754afa511c30bbe05ddaad3c96c2fe2237dc"> 427</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754afa511c30bbe05ddaad3c96c2fe2237dc">DBGEVENT_DLL_LOAD</a> = 5, <span class="comment">///< DLL load event.</span></div>
|
|
<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a167c6fa74bcf640f56641a04983627f9"> 428</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a167c6fa74bcf640f56641a04983627f9">DBGEVENT_DLL_UNLOAD</a> = 6, <span class="comment">///< DLL unload event.</span></div>
|
|
<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a07ea6a6fba8ff752c67e2c00425d3ac8"> 429</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a07ea6a6fba8ff752c67e2c00425d3ac8">DBGEVENT_SCHEDULE_IN</a> = 7, <span class="comment">///< Schedule in event.</span></div>
|
|
<div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a62cf6b93175e700b82259c66273eb0b3"> 430</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a62cf6b93175e700b82259c66273eb0b3">DBGEVENT_SCHEDULE_OUT</a> = 8, <span class="comment">///< Schedule out event.</span></div>
|
|
<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a5357e98f2337ea80ce759ca8ad26bc03"> 431</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a5357e98f2337ea80ce759ca8ad26bc03">DBGEVENT_SYSCALL_IN</a> = 9, <span class="comment">///< Syscall in event.</span></div>
|
|
<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a61a1fa34dc49e06bc7e2d5941fdf2614"> 432</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a61a1fa34dc49e06bc7e2d5941fdf2614">DBGEVENT_SYSCALL_OUT</a> = 10, <span class="comment">///< Syscall out event.</span></div>
|
|
<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754abee1dd8bd40f035cdb41dd2f8c4ad11c"> 433</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754abee1dd8bd40f035cdb41dd2f8c4ad11c">DBGEVENT_OUTPUT_STRING</a> = 11, <span class="comment">///< Output string event.</span></div>
|
|
<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a63a5ec76f06ef716a8ba8b1ab9c0e5de"> 434</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a63a5ec76f06ef716a8ba8b1ab9c0e5de">DBGEVENT_MAP</a> = 12, <span class="comment">///< Map event.</span></div>
|
|
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> } <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754">DebugEventType</a>;</div>
|
|
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment">/// Information about a debug event.</span></div>
|
|
<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html"> 438</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#ae0e045fcf742a3daa7fb9f429aebeef9"> 439</a></span>  <a class="code" href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754">DebugEventType</a> <a class="code" href="structDebugEventInfo.html#ae0e045fcf742a3daa7fb9f429aebeef9">type</a>; <span class="comment">///< Type of event. See @ref DebugEventType</span></div>
|
|
<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a2af232f5d56183f1af895962bdd2fe18"> 440</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structDebugEventInfo.html#a2af232f5d56183f1af895962bdd2fe18">thread_id</a>; <span class="comment">///< ID of the thread.</span></div>
|
|
<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a02ae327ec4ab7a5cbdeabc09fb24c606"> 441</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structDebugEventInfo.html#a02ae327ec4ab7a5cbdeabc09fb24c606">flags</a>; <span class="comment">///< Flags. Bit0 means that @ref svcContinueDebugEvent needs to be called for this event (except for EXIT PROCESS events, where this flag is disregarded).</span></div>
|
|
<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a467b23d5c321ce2dcb425c897de9d05d"> 442</a></span>  <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> remnants[4]; <span class="comment">///< Always 0.</span></div>
|
|
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">union </span>{</div>
|
|
<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a3feb57be28c7d218ff58bfad637a36a6"> 444</a></span>  <a class="code" href="structAttachProcessEvent.html">AttachProcessEvent</a> <a class="code" href="structDebugEventInfo.html#a3feb57be28c7d218ff58bfad637a36a6">attach_process</a>; <span class="comment">///< Process attachment event data.</span></div>
|
|
<div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a2df992ef5794d4bce6e1455c9339dd1e"> 445</a></span>  <a class="code" href="structAttachThreadEvent.html">AttachThreadEvent</a> <a class="code" href="structDebugEventInfo.html#a2df992ef5794d4bce6e1455c9339dd1e">attach_thread</a>; <span class="comment">///< Thread attachment event data.</span></div>
|
|
<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a3fd7da7948fd7c8967596b24bdb100cd"> 446</a></span>  <a class="code" href="structExitThreadEvent.html">ExitThreadEvent</a> <a class="code" href="structDebugEventInfo.html#a3fd7da7948fd7c8967596b24bdb100cd">exit_thread</a>; <span class="comment">///< Thread exit event data.</span></div>
|
|
<div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a11b0fce7e428241a2d2dc91ad125840e"> 447</a></span>  <a class="code" href="structExitProcessEvent.html">ExitProcessEvent</a> <a class="code" href="structDebugEventInfo.html#a11b0fce7e428241a2d2dc91ad125840e">exit_process</a>; <span class="comment">///< Process exit event data.</span></div>
|
|
<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#ae0dc7236b183fa057138fcfff1fc0a92"> 448</a></span>  <a class="code" href="structExceptionEvent.html">ExceptionEvent</a> <a class="code" href="structDebugEventInfo.html#ae0dc7236b183fa057138fcfff1fc0a92">exception</a>; <span class="comment">///< Exception event data.</span></div>
|
|
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">/* DLL_LOAD and DLL_UNLOAD do not seem to possess any event data */</span></div>
|
|
<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a2a1c1f9281c782c297054a5adfb6c733"> 450</a></span>  <a class="code" href="structScheduleInOutEvent.html">ScheduleInOutEvent</a> <a class="code" href="structDebugEventInfo.html#a2a1c1f9281c782c297054a5adfb6c733">scheduler</a>; <span class="comment">///< Schedule in/out event data.</span></div>
|
|
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a16c73c12c8a2c200b8c149b7942785c6"> 451</a></span>  <a class="code" href="structSyscallInOutEvent.html">SyscallInOutEvent</a> <a class="code" href="structDebugEventInfo.html#a16c73c12c8a2c200b8c149b7942785c6">syscall</a>; <span class="comment">///< Syscall in/out event data.</span></div>
|
|
<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#a4900654806cebc6006ada39b88a463b0"> 452</a></span>  <a class="code" href="structOutputStringEvent.html">OutputStringEvent</a> <a class="code" href="structDebugEventInfo.html#a4900654806cebc6006ada39b88a463b0">output_string</a>; <span class="comment">///< Output string event data.</span></div>
|
|
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="structDebugEventInfo.html#aecf8557cfd95b333e68028131750e829"> 453</a></span>  <a class="code" href="structMapEvent.html">MapEvent</a> <a class="code" href="structDebugEventInfo.html#aecf8557cfd95b333e68028131750e829">map</a>; <span class="comment">///< Map event data.</span></div>
|
|
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  };</div>
|
|
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> } <a class="code" href="structDebugEventInfo.html">DebugEventInfo</a>;</div>
|
|
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment">/// Debug flags for an attached process, set by @ref svcContinueDebugEvent</span></div>
|
|
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10"> 458</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a829566e4baa8029d6ae3ff75ab847966"> 459</a></span>  <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a829566e4baa8029d6ae3ff75ab847966">DBG_INHIBIT_USER_CPU_EXCEPTION_HANDLERS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0), <span class="comment">///< Inhibit user-defined CPU exception handlers (including watchpoints and breakpoints, regardless of any @ref svcKernelSetState call).</span></div>
|
|
<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a684e18527dea1cd28cc7cd31a1b72c6d"> 460</a></span>  <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a684e18527dea1cd28cc7cd31a1b72c6d">DBG_SIGNAL_FAULT_EXCEPTION_EVENTS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1), <span class="comment">///< Signal fault exception events. See @ref FaultExceptionEvent.</span></div>
|
|
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a0870552809a38121a3f9f8bfac2a7ab5"> 461</a></span>  <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a0870552809a38121a3f9f8bfac2a7ab5">DBG_SIGNAL_SCHEDULE_EVENTS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(2), <span class="comment">///< Signal schedule in/out events. See @ref ScheduleInOutEvent.</span></div>
|
|
<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a54c6d15e4546cac787bfe3fd7511d7c9"> 462</a></span>  <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a54c6d15e4546cac787bfe3fd7511d7c9">DBG_SIGNAL_SYSCALL_EVENTS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(3), <span class="comment">///< Signal syscall in/out events. See @ref SyscallInOutEvent.</span></div>
|
|
<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a4e4de28dc35f3748319a155b3a5e561c"> 463</a></span>  <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a4e4de28dc35f3748319a155b3a5e561c">DBG_SIGNAL_MAP_EVENTS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(4), <span class="comment">///< Signal map events. See @ref MapEvent.</span></div>
|
|
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> } <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10">DebugFlags</a>;</div>
|
|
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  </div>
|
|
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="structThreadContext.html"> 466</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="structThreadContext.html#a3fb7711d1ccc7d132ae23ee3e4e88e43"> 467</a></span>  <a class="code" href="structCpuRegisters.html">CpuRegisters</a> <a class="code" href="structThreadContext.html#a3fb7711d1ccc7d132ae23ee3e4e88e43">cpu_registers</a>; <span class="comment">///< CPU registers.</span></div>
|
|
<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="structThreadContext.html#ac13e8300988c11a1d4811058ea0888b4"> 468</a></span>  <a class="code" href="structFpuRegisters.html">FpuRegisters</a> <a class="code" href="structThreadContext.html#ac13e8300988c11a1d4811058ea0888b4">fpu_registers</a>; <span class="comment">///< FPU registers.</span></div>
|
|
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> } <a class="code" href="structThreadContext.html">ThreadContext</a>;</div>
|
|
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="comment">/// Control flags for @ref svcGetDebugThreadContext and @ref svcSetDebugThreadContext</span></div>
|
|
<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742"> 472</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae09b0f61029f9fdf0b4ea02c41fa13e5"> 473</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae09b0f61029f9fdf0b4ea02c41fa13e5">THREADCONTEXT_CONTROL_CPU_GPRS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0), <span class="comment">///< Control r0-r12.</span></div>
|
|
<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742aa8407752003ccddf5fc32867e67037cf"> 474</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742aa8407752003ccddf5fc32867e67037cf">THREADCONTEXT_CONTROL_CPU_SPRS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1), <span class="comment">///< Control sp, lr, pc, cpsr.</span></div>
|
|
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a2d5de33762b476d2926b7cfb7f3be89b"> 475</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a2d5de33762b476d2926b7cfb7f3be89b">THREADCONTEXT_CONTROL_FPU_GPRS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(2), <span class="comment">///< Control d0-d15 (or s0-s31).</span></div>
|
|
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae68cca5d6bd39c7225566ae87c541f8e"> 476</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae68cca5d6bd39c7225566ae87c541f8e">THREADCONTEXT_CONTROL_FPU_SPRS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(3), <span class="comment">///< Control fpscr, fpexc.</span></div>
|
|
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  </div>
|
|
<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a313d7fc004fc7a953e10b08fccbd21ab"> 478</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a313d7fc004fc7a953e10b08fccbd21ab">THREADCONTEXT_CONTROL_CPU_REGS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0) | <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1), <span class="comment">///< Control r0-r12, sp, lr, pc, cpsr.</span></div>
|
|
<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae77e6ad949115f805c2a35ba85cce3f9"> 479</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae77e6ad949115f805c2a35ba85cce3f9">THREADCONTEXT_CONTROL_FPU_REGS</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(2) | <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(3), <span class="comment">///< Control d0-d15, fpscr, fpexc.</span></div>
|
|
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  </div>
|
|
<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a03849f12becc677a30246a307c3b9670"> 481</a></span>  <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a03849f12becc677a30246a307c3b9670">THREADCONTEXT_CONTROL_ALL</a> = <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(0) | <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(1) | <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(2) | <a class="code" href="types_8h.html#a3a8ea58898cb58fc96013383d39f482c">BIT</a>(3), <span class="comment">///< Control all of the above.</span></div>
|
|
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> } <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742">ThreadContextControlFlags</a>;</div>
|
|
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment">/// Thread parameter field for @ref svcGetDebugThreadParameter</span></div>
|
|
<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2"> 485</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
|
|
<div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a97e8406ac167715321789f422a4d16c2"> 486</a></span>  <a class="code" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a97e8406ac167715321789f422a4d16c2">DBGTHREAD_PARAMETER_PRIORITY</a> = 0, <span class="comment">///< Thread priority.</span></div>
|
|
<div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a2e0c36bd04e34f464fdc099160c2a07d"> 487</a></span>  <a class="code" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a2e0c36bd04e34f464fdc099160c2a07d">DBGTHREAD_PARAMETER_SCHEDULING_MASK_LOW</a> = 1, <span class="comment">///< Low scheduling mask.</span></div>
|
|
<div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a38a33d4f8a4da4fce35bafdeaa43deb7"> 488</a></span>  <a class="code" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a38a33d4f8a4da4fce35bafdeaa43deb7">DBGTHREAD_PARAMETER_CPU_IDEAL</a> = 2, <span class="comment">///< Ideal processor.</span></div>
|
|
<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a4edc8a76257320fcebd0176a9a05bf6d"> 489</a></span>  <a class="code" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a4edc8a76257320fcebd0176a9a05bf6d">DBGTHREAD_PARAMETER_CPU_CREATOR</a> = 3, <span class="comment">///< Processor that created the threod.</span></div>
|
|
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> } <a class="code" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2">DebugThreadParameter</a>;</div>
|
|
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="comment">///@name Processes</span></div>
|
|
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">/// Information on address space for process. All sizes are in pages (0x1000 bytes)</span></div>
|
|
<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html"> 498</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
|
|
<div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a47a95fef04977b164bf47d42e0a50004"> 499</a></span>  <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> name[8]; <span class="comment">///< ASCII name of codeset</span></div>
|
|
<div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a4ab720adde5af3b30d1feea8d11a041f"> 500</a></span>  <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> <a class="code" href="structCodeSetHeader.html#a4ab720adde5af3b30d1feea8d11a041f">version</a>; <span class="comment">///< Version field of codeset (unused)</span></div>
|
|
<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a57649e80fa0a86cb7758d40373e44920"> 501</a></span>  <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> padding[3]; <span class="comment">///< Padding</span></div>
|
|
<div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a1d3dd48ca8a17003409597ca517e4541"> 502</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#a1d3dd48ca8a17003409597ca517e4541">text_addr</a>; <span class="comment">///< .text start address</span></div>
|
|
<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#ae7e0b1cc7be89bfc003ce51555bdd498"> 503</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#ae7e0b1cc7be89bfc003ce51555bdd498">text_size</a>; <span class="comment">///< .text number of pages</span></div>
|
|
<div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#afa8e40f26339b8158938ff8ab8944fe4"> 504</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#afa8e40f26339b8158938ff8ab8944fe4">ro_addr</a>; <span class="comment">///< .rodata start address</span></div>
|
|
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a4039bdfc33e66bd74df3971403f2f639"> 505</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#a4039bdfc33e66bd74df3971403f2f639">ro_size</a>; <span class="comment">///< .rodata number of pages</span></div>
|
|
<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a440bd225305c32773a688b6b3c2e7e02"> 506</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#a440bd225305c32773a688b6b3c2e7e02">rw_addr</a>; <span class="comment">///< .data, .bss start address</span></div>
|
|
<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#adf23f727bd2a321012485ac345be20cb"> 507</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#adf23f727bd2a321012485ac345be20cb">rw_size</a>; <span class="comment">///< .data number of pages</span></div>
|
|
<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a0d9ae8c80b45db7139688a2c89e434dc"> 508</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#a0d9ae8c80b45db7139688a2c89e434dc">text_size_total</a>; <span class="comment">///< total pages for .text (aligned)</span></div>
|
|
<div class="line"><a name="l00509"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#ad11cc3987916c127428009de1af1350b"> 509</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#ad11cc3987916c127428009de1af1350b">ro_size_total</a>; <span class="comment">///< total pages for .rodata (aligned)</span></div>
|
|
<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#ae1b2f240e32e5ebd551352bf9b2258d0"> 510</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#ae1b2f240e32e5ebd551352bf9b2258d0">rw_size_total</a>; <span class="comment">///< total pages for .data, .bss (aligned)</span></div>
|
|
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a900214a08ed948b0f1d2bc5f00367312"> 511</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structCodeSetHeader.html#a900214a08ed948b0f1d2bc5f00367312">padding2</a>; <span class="comment">///< Padding</span></div>
|
|
<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="structCodeSetHeader.html#a84f92f9b496955d6cf92ca14dc9292c9"> 512</a></span>  <a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code" href="structCodeSetHeader.html#a84f92f9b496955d6cf92ca14dc9292c9">program_id</a>; <span class="comment">///< Program ID</span></div>
|
|
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> } <a class="code" href="structCodeSetHeader.html">CodeSetHeader</a>;</div>
|
|
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="comment">/// Information for the main thread of a process.</span></div>
|
|
<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="structStartupInfo.html"> 516</a></span> <span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
|
|
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> {</div>
|
|
<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="structStartupInfo.html#a502094405b3debe7af2ee809f8055ed0"> 518</a></span>  <span class="keywordtype">int</span> <a class="code" href="structStartupInfo.html#a502094405b3debe7af2ee809f8055ed0">priority</a>; <span class="comment">///< Priority of the main thread.</span></div>
|
|
<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="structStartupInfo.html#a094fc5eaf0b55de2d55a66a9db30047f"> 519</a></span>  <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> <a class="code" href="structStartupInfo.html#a094fc5eaf0b55de2d55a66a9db30047f">stack_size</a>; <span class="comment">///< Size of the stack of the main thread.</span></div>
|
|
<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="structStartupInfo.html#a56c8a7d9f72ac6cb8a5d1908ddfc3a7e"> 520</a></span>  <span class="keywordtype">int</span> <a class="code" href="structStartupInfo.html#a56c8a7d9f72ac6cb8a5d1908ddfc3a7e">argc</a>; <span class="comment">///< Unused on retail kernel.</span></div>
|
|
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="structStartupInfo.html#a698216d4a27d8abf674d4368266f8e2a"> 521</a></span>  <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>* <a class="code" href="structStartupInfo.html#a698216d4a27d8abf674d4368266f8e2a">argv</a>; <span class="comment">///< Unused on retail kernel.</span></div>
|
|
<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="structStartupInfo.html#a4624952a107b46e2187d42631c6207f3"> 522</a></span>  <a class="code" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>* <a class="code" href="structStartupInfo.html#a4624952a107b46e2187d42631c6207f3">envp</a>; <span class="comment">///< Unused on retail kernel.</span></div>
|
|
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> } <a class="code" href="structStartupInfo.html">StartupInfo</a>;</div>
|
|
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="comment"> * @brief Gets the thread local storage buffer.</span></div>
|
|
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="comment"> * @return The thread local storage buffer.</span></div>
|
|
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="svc_8h.html#a3f23b2d589b488efb59603000c5f7969"> 531</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span>* <a class="code" href="svc_8h.html#a3f23b2d589b488efb59603000c5f7969">getThreadLocalStorage</a>(<span class="keywordtype">void</span>)</div>
|
|
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> {</div>
|
|
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordtype">void</span>* ret;</div>
|
|
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  __asm__ (<span class="stringliteral">"mrc p15, 0, %[data], c13, c0, 3"</span> : [data] <span class="stringliteral">"=r"</span> (ret));</div>
|
|
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">return</span> ret;</div>
|
|
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> }</div>
|
|
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="comment"> * @brief Gets the thread command buffer.</span></div>
|
|
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> <span class="comment"> * @return The thread command buffer.</span></div>
|
|
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="svc_8h.html#a2e0c230a1bb2d5400edc08bd7c687099"> 542</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* <a class="code" href="svc_8h.html#a2e0c230a1bb2d5400edc08bd7c687099">getThreadCommandBuffer</a>(<span class="keywordtype">void</span>)</div>
|
|
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> {</div>
|
|
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">return</span> (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)((<a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>*)<a class="code" href="svc_8h.html#a3f23b2d589b488efb59603000c5f7969">getThreadLocalStorage</a>() + 0x80);</div>
|
|
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> }</div>
|
|
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> <span class="comment"> * @brief Gets the thread static buffer.</span></div>
|
|
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> <span class="comment"> * @return The thread static buffer.</span></div>
|
|
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="svc_8h.html#a7f804146f815c96c98e7712bce3993bf"> 551</a></span> <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* <a class="code" href="svc_8h.html#a7f804146f815c96c98e7712bce3993bf">getThreadStaticBuffers</a>(<span class="keywordtype">void</span>)</div>
|
|
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> {</div>
|
|
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> (<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>*)((<a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>*)<a class="code" href="svc_8h.html#a3f23b2d589b488efb59603000c5f7969">getThreadLocalStorage</a>() + 0x180);</div>
|
|
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> }</div>
|
|
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> <span class="comment">///@name Device drivers</span></div>
|
|
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> <span class="comment">/// Writes the default DMA device config that the kernel uses when DMACFG_*_IS_DEVICE and DMACFG_*_USE_CFG are not set</span></div>
|
|
<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="svc_8h.html#af845bb532f3d83b20b5029bd4d913801"> 560</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="svc_8h.html#af845bb532f3d83b20b5029bd4d913801">dmaDeviceConfigInitDefault</a>(<a class="code" href="structDmaDeviceConfig.html">DmaDeviceConfig</a> *cfg)</div>
|
|
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> {</div>
|
|
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="comment">// Kernel uses this default instance if _IS_DEVICE and _USE_CFG are not set</span></div>
|
|
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  *cfg = (<a class="code" href="structDmaDeviceConfig.html">DmaDeviceConfig</a>) {</div>
|
|
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  .<a class="code" href="structDmaDeviceConfig.html#a0d63473bec3ec7ebff879ccfc6b26d4d">deviceId</a> = -1,</div>
|
|
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  .allowedAlignments = 8 | 4 | 2 | 1,</div>
|
|
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  .burstSize = 0x80,</div>
|
|
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  .transferSize = 0,</div>
|
|
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  .burstStride = 0x80,</div>
|
|
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  .transferStride = 0,</div>
|
|
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  };</div>
|
|
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }</div>
|
|
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="comment">/// Initializes a \ref DmaConfig instance with sane defaults for RAM<>RAM tranfers</span></div>
|
|
<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="svc_8h.html#acc49794f897fc07eaa97641b725f82a3"> 574</a></span> <span class="comment"></span><span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="svc_8h.html#acc49794f897fc07eaa97641b725f82a3">dmaConfigInitDefault</a>(<a class="code" href="structDmaConfig.html">DmaConfig</a> *cfg)</div>
|
|
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> {</div>
|
|
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  *cfg = (<a class="code" href="structDmaConfig.html">DmaConfig</a>) {</div>
|
|
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  .<a class="code" href="structDmaConfig.html#a11cd1631cce0b01cce18f5c2474018b5">channelId</a> = -1,</div>
|
|
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  .endianSwapSize = 0,</div>
|
|
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  .flags = <a class="code" href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aabca3d1ffd34e4da56caf2b4f605bab4b">DMACFG_WAIT_AVAILABLE</a>,</div>
|
|
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  ._padding = 0,</div>
|
|
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  .srcCfg = {},</div>
|
|
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  .dstCfg = {},</div>
|
|
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  };</div>
|
|
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> }</div>
|
|
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment">///@name Memory management</span></div>
|
|
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="comment"> * @brief Controls memory mapping</span></div>
|
|
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> <span class="comment"> * @param[out] addr_out The virtual address resulting from the operation. Usually the same as addr0.</span></div>
|
|
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="comment"> * @param addr0 The virtual address to be used for the operation.</span></div>
|
|
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="comment"> * @param addr1 The virtual address to be (un)mirrored by @p addr0 when using @ref MEMOP_MAP or @ref MEMOP_UNMAP.</span></div>
|
|
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="comment"> * It has to be pointing to a RW memory.</span></div>
|
|
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="comment"> * Use NULL if the operation is @ref MEMOP_FREE or @ref MEMOP_ALLOC.</span></div>
|
|
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="comment"> * @param size The requested size for @ref MEMOP_ALLOC and @ref MEMOP_ALLOC_LINEAR.</span></div>
|
|
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> <span class="comment"> * @param op Operation flags. See @ref MemOp.</span></div>
|
|
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> <span class="comment"> * @param perm A combination of @ref MEMPERM_READ and @ref MEMPERM_WRITE. Using MEMPERM_EXECUTE will return an error.</span></div>
|
|
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="comment"> * Value 0 is used when unmapping memory.</span></div>
|
|
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="comment"> * If a memory is mapped for two or more addresses, you have to use MEMOP_UNMAP before being able to MEMOP_FREE it.</span></div>
|
|
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="comment"> * MEMOP_MAP will fail if @p addr1 was already mapped to another address.</span></div>
|
|
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> <span class="comment"> * More information is available at http://3dbrew.org/wiki/SVC#Memory_Mapping.</span></div>
|
|
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="comment"> * @sa svcControlProcessMemory</span></div>
|
|
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="svc_8h.html#a8046e9b23b1b209a4e278cb1c19c7a5a"> 609</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a8046e9b23b1b209a4e278cb1c19c7a5a">svcControlMemory</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* addr_out, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr0, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr1, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code" href="svc_8h.html#a754721841a571940880975d2191f3e0f">MemOp</a> op, <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a> perm);</div>
|
|
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="comment"> * @brief Controls the memory mapping of a process</span></div>
|
|
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span> <span class="comment"> * @param addr0 The virtual address to map</span></div>
|
|
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="comment"> * @param addr1 The virtual address to be mapped by @p addr0</span></div>
|
|
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> <span class="comment"> * @param type Only operations @ref MEMOP_MAP, @ref MEMOP_UNMAP and @ref MEMOP_PROT are allowed.</span></div>
|
|
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> <span class="comment"> * This is the only SVC which allows mapping executable memory.</span></div>
|
|
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> <span class="comment"> * Using @ref MEMOP_PROT will change the memory permissions of an already mapped memory.</span></div>
|
|
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="comment"> * @note The pseudo handle for the current process is not supported by this service call.</span></div>
|
|
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="comment"> * @sa svcControlProcess</span></div>
|
|
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="svc_8h.html#af9dcc9ae0b21ce1363522c23203d4d6c"> 623</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#af9dcc9ae0b21ce1363522c23203d4d6c">svcControlProcessMemory</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr0, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr1, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> type, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> perm);</div>
|
|
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment"> * @brief Creates a block of shared memory</span></div>
|
|
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment"> * @param[out] memblock Pointer to store the handle of the block</span></div>
|
|
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="comment"> * @param addr Address of the memory to map, page-aligned. So its alignment must be 0x1000.</span></div>
|
|
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="comment"> * @param size Size of the memory to map, a multiple of 0x1000.</span></div>
|
|
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="comment"> * @param my_perm Memory permissions for the current process</span></div>
|
|
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="comment"> * @param other_perm Memory permissions for the other processes</span></div>
|
|
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> <span class="comment"> * @note The shared memory block, and its rights, are destroyed when the handle is closed.</span></div>
|
|
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="svc_8h.html#a5ce27301f176acfa306a39c9801f7b33"> 635</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a5ce27301f176acfa306a39c9801f7b33">svcCreateMemoryBlock</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* memblock, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a> my_perm, <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a> other_perm);</div>
|
|
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="comment"> * @brief Maps a block of shared memory</span></div>
|
|
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="comment"> * @param memblock Handle of the block</span></div>
|
|
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <span class="comment"> * @param addr Address of the memory to map, page-aligned. So its alignment must be 0x1000.</span></div>
|
|
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> <span class="comment"> * @param my_perm Memory permissions for the current process</span></div>
|
|
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="comment"> * @param other_perm Memory permissions for the other processes</span></div>
|
|
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="comment"> * @note The shared memory block, and its rights, are destroyed when the handle is closed.</span></div>
|
|
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="svc_8h.html#a04bb64a060cd46b28be86fa30e33bb94"> 646</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a04bb64a060cd46b28be86fa30e33bb94">svcMapMemoryBlock</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> memblock, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a> my_perm, <a class="code" href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a> other_perm);</div>
|
|
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="comment"> * @brief Maps a block of process memory, starting from address 0x00100000.</span></div>
|
|
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span> <span class="comment"> * @param destAddress Address of the block of memory to map, in the current (destination) process.</span></div>
|
|
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span> <span class="comment"> * @param size Size of the block of memory to map (truncated to a multiple of 0x1000 bytes).</span></div>
|
|
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="svc_8h.html#a8114b51a10d4515b71ecf5e0b2416a96"> 654</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a8114b51a10d4515b71ecf5e0b2416a96">svcMapProcessMemory</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> destAddress, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> <span class="comment"> * @brief Unmaps a block of process memory, starting from address 0x00100000.</span></div>
|
|
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="comment"> * @param destAddress Address of the block of memory to unmap, in the current (destination) process.</span></div>
|
|
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> <span class="comment"> * @param size Size of the block of memory to unmap (truncated to a multiple of 0x1000 bytes).</span></div>
|
|
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="svc_8h.html#ab1e5db22e50e03cb4f14e46f09f7635a"> 662</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ab1e5db22e50e03cb4f14e46f09f7635a">svcUnmapProcessMemory</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> destAddress, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> <span class="comment"> * @brief Unmaps a block of shared memory</span></div>
|
|
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> <span class="comment"> * @param memblock Handle of the block</span></div>
|
|
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="comment"> * @param addr Address of the memory to unmap, page-aligned. So its alignment must be 0x1000.</span></div>
|
|
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="svc_8h.html#a1e796b6048ab85155160599ce9496142"> 669</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a1e796b6048ab85155160599ce9496142">svcUnmapMemoryBlock</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> memblock, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr);</div>
|
|
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> <span class="comment"> * @brief Queries memory information.</span></div>
|
|
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="comment"> * @param[out] info Pointer to output memory info to.</span></div>
|
|
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="comment"> * @param out Pointer to output page info to.</span></div>
|
|
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="comment"> * @param addr Virtual memory address to query.</span></div>
|
|
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="svc_8h.html#a9809212def892f6baf31c7cd6754ed02"> 677</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a9809212def892f6baf31c7cd6754ed02">svcQueryMemory</a>(<a class="code" href="structMemInfo.html">MemInfo</a>* info, <a class="code" href="structPageInfo.html">PageInfo</a>* out, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr);</div>
|
|
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="comment"> * @brief Queries process memory information.</span></div>
|
|
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="comment"> * @param[out] info Pointer to output memory info to.</span></div>
|
|
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="comment"> * @param[out] out Pointer to output page info to.</span></div>
|
|
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> <span class="comment"> * @param process Process to query memory from.</span></div>
|
|
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="comment"> * @param addr Virtual memory address to query.</span></div>
|
|
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="svc_8h.html#aa9dc250e97f58dca935bcee31549f3e7"> 686</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aa9dc250e97f58dca935bcee31549f3e7">svcQueryProcessMemory</a>(<a class="code" href="structMemInfo.html">MemInfo</a>* info, <a class="code" href="structPageInfo.html">PageInfo</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr);</div>
|
|
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="comment">///@name Process management</span></div>
|
|
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="comment"> * @brief Gets the handle of a process.</span></div>
|
|
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> <span class="comment"> * @param[out] process The handle of the process</span></div>
|
|
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="comment"> * @param processId The ID of the process to open</span></div>
|
|
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="svc_8h.html#a0348d3f35f25e455d7497687224b49a5"> 698</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a0348d3f35f25e455d7497687224b49a5">svcOpenProcess</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> processId);</div>
|
|
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="comment">/// Exits the current process.</span></div>
|
|
<div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="svc_8h.html#a5151be03b9f3bfcf310ee2f659f5cff1"> 701</a></span> <span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="svc_8h.html#a5151be03b9f3bfcf310ee2f659f5cff1">svcExitProcess</a>(<span class="keywordtype">void</span>) <a class="code" href="rbtree_8h.html#a797a3e1c8507a7c7b4e051d3f1349154">__attribute__</a>((noreturn));</div>
|
|
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment"> * @brief Terminates a process.</span></div>
|
|
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="comment"> * @param process Handle of the process to terminate.</span></div>
|
|
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="svc_8h.html#a01228468ee9651a6480002cb381fe55e"> 707</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a01228468ee9651a6480002cb381fe55e">svcTerminateProcess</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process);</div>
|
|
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="comment"> * @brief Gets information about a process.</span></div>
|
|
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="comment"> * @param[out] out Pointer to output process info to.</span></div>
|
|
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="comment"> * @param process Handle of the process to get information about.</span></div>
|
|
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="comment"> * @param type Type of information to retreieve.</span></div>
|
|
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="svc_8h.html#a09d2da81f400266901235bd6cc1c0943"> 715</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a09d2da81f400266901235bd6cc1c0943">svcGetProcessInfo</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> type);</div>
|
|
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="comment"> * @brief Gets the ID of a process.</span></div>
|
|
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> <span class="comment"> * @param[out] out Pointer to output the process ID to.</span></div>
|
|
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="comment"> * @param handle Handle of the process to get the ID of.</span></div>
|
|
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="svc_8h.html#a46395fb5e1c8f9b2311cfa260de0c2e9"> 722</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a46395fb5e1c8f9b2311cfa260de0c2e9">svcGetProcessId</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="comment"> * @brief Gets a list of running processes.</span></div>
|
|
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="comment"> * @param[out] processCount Pointer to output the process count to.</span></div>
|
|
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> <span class="comment"> * @param[out] processIds Pointer to output the process IDs to.</span></div>
|
|
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="comment"> * @param processIdMaxCount Maximum number of process IDs.</span></div>
|
|
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="svc_8h.html#a4895a8c4e616aecd47eb260e262b0d3c"> 730</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a4895a8c4e616aecd47eb260e262b0d3c">svcGetProcessList</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* processCount, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* processIds, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processIdMaxCount);</div>
|
|
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="comment"> * @brief Gets a list of the threads of a process.</span></div>
|
|
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="comment"> * @param[out] threadCount Pointer to output the thread count to.</span></div>
|
|
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="comment"> * @param[out] threadIds Pointer to output the thread IDs to.</span></div>
|
|
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="comment"> * @param threadIdMaxCount Maximum number of thread IDs.</span></div>
|
|
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="comment"> * @param process Process handle to list the threads of.</span></div>
|
|
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00739"></a><span class="lineno"><a class="line" href="svc_8h.html#a3ef70e1f36a42f1d8e351d7bf1c9a2ff"> 739</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a3ef70e1f36a42f1d8e351d7bf1c9a2ff">svcGetThreadList</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* threadCount, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* threadIds, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> threadIdMaxCount, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process);</div>
|
|
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> <span class="comment"> * @brief Creates a port.</span></div>
|
|
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="comment"> * @param[out] portServer Pointer to output the port server handle to.</span></div>
|
|
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> <span class="comment"> * @param[out] portClient Pointer to output the port client handle to.</span></div>
|
|
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> <span class="comment"> * @param name Name of the port.</span></div>
|
|
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> <span class="comment"> * @param maxSessions Maximum number of sessions that can connect to the port.</span></div>
|
|
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="svc_8h.html#a7ecb788e88b2b9990c72c01b73f290b2"> 748</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a7ecb788e88b2b9990c72c01b73f290b2">svcCreatePort</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* portServer, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* portClient, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> maxSessions);</div>
|
|
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="comment"> * @brief Connects to a port.</span></div>
|
|
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> <span class="comment"> * @param[out] out Pointer to output the port handle to.</span></div>
|
|
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> <span class="comment"> * @param portName Name of the port.</span></div>
|
|
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="svc_8h.html#a3063414d90f09e17398bdb7cd6955b71"> 755</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a3063414d90f09e17398bdb7cd6955b71">svcConnectToPort</a>(<span class="keyword">volatile</span> <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* out, <span class="keyword">const</span> <span class="keywordtype">char</span>* portName);</div>
|
|
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> <span class="comment"> * @brief Sets up virtual address space for a new process.</span></div>
|
|
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> <span class="comment"> * @param[out] out Pointer to output the codeset handle to.</span></div>
|
|
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="comment"> * @param info Codeset header, contains process name, titleId and segment info.</span></div>
|
|
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="comment"> * @param textSegmentLma Address of executable segment in caller's address space.</span></div>
|
|
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="comment"> * @param roSegmentLma Address of read-only segment in caller's address space.</span></div>
|
|
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> <span class="comment"> * @param dataSegmentLma Address of read-write segment in caller's address space.</span></div>
|
|
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="comment"> * @note On success, the provided segments are unmapped from the caller's address space.</span></div>
|
|
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="svc_8h.html#a8b9e97a68e06934e341c147c1c489390"> 766</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a8b9e97a68e06934e341c147c1c489390">svcCreateCodeSet</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* out, <span class="keyword">const</span> <a class="code" href="structCodeSetHeader.html">CodeSetHeader</a>* info, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> textSegmentLma, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> roSegmentLma, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> dataSegmentLma);</div>
|
|
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="comment"> * @brief Create a new process.</span></div>
|
|
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="comment"> * @param[out] out Pointer to output the process handle to.</span></div>
|
|
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="comment"> * @param codeset Codeset created for this process.</span></div>
|
|
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="comment"> * @param arm11KernelCaps Arm11 Kernel Capabilities from exheader.</span></div>
|
|
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="comment"> * @param numArm11KernelCaps Number of kernel capabilities.</span></div>
|
|
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="svc_8h.html#a985e047a81393fa6d118ee769311f9c1"> 775</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a985e047a81393fa6d118ee769311f9c1">svcCreateProcess</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> codeset, <span class="keyword">const</span> <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* arm11KernelCaps, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> numArm11KernelCaps);</div>
|
|
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="comment"> * @brief Gets a process's affinity mask.</span></div>
|
|
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="comment"> * @param[out] affinitymask Pointer to store the affinity masks.</span></div>
|
|
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="comment"> * @param processorcount Number of processors.</span></div>
|
|
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="svc_8h.html#ae52c7fb0b8c1046268ad81719500eb8f"> 783</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ae52c7fb0b8c1046268ad81719500eb8f">svcGetProcessAffinityMask</a>(<a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* affinitymask, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processorcount);</div>
|
|
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> <span class="comment"> * @brief Sets a process's affinity mask.</span></div>
|
|
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> <span class="comment"> * @param affinitymask Pointer to retrieve the affinity masks from.</span></div>
|
|
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> <span class="comment"> * @param processorcount Number of processors.</span></div>
|
|
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="svc_8h.html#aee49171a3a435f8879a019620b51dcd0"> 791</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aee49171a3a435f8879a019620b51dcd0">svcSetProcessAffinityMask</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <span class="keyword">const</span> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* affinitymask, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processorcount);</div>
|
|
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="comment"> * Gets a process's ideal processor.</span></div>
|
|
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> <span class="comment"> * @param[out] processorid Pointer to store the ID of the process's ideal processor.</span></div>
|
|
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="svc_8h.html#aaec6682f3ea6b524cc44d24986ccc81a"> 798</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aaec6682f3ea6b524cc44d24986ccc81a">svcGetProcessIdealProcessor</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> *processorid, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process);</div>
|
|
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> <span class="comment"> * Sets a process's ideal processor.</span></div>
|
|
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> <span class="comment"> * @param processorid ID of the process's ideal processor.</span></div>
|
|
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="svc_8h.html#a7e7666520d212d0b7de8c703b4c3b00e"> 805</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a7e7666520d212d0b7de8c703b4c3b00e">svcSetProcessIdealProcessor</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processorid);</div>
|
|
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> <span class="comment"> * Launches the main thread of the process.</span></div>
|
|
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="comment"> * @param info Pointer to a StartupInfo structure describing information for the main thread.</span></div>
|
|
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="svc_8h.html#a20ea2b0b1a60242d167664de882a4562"> 812</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a20ea2b0b1a60242d167664de882a4562">svcRun</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <span class="keyword">const</span> <a class="code" href="structStartupInfo.html">StartupInfo</a>* info);</div>
|
|
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> <span class="comment">///@name Multithreading</span></div>
|
|
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> <span class="comment"> * @brief Creates a new thread.</span></div>
|
|
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="comment"> * @param[out] thread The thread handle</span></div>
|
|
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="comment"> * @param entrypoint The function that will be called first upon thread creation</span></div>
|
|
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> <span class="comment"> * @param arg The argument passed to @p entrypoint</span></div>
|
|
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="comment"> * @param stack_top The top of the thread's stack. Must be 0x8 bytes mem-aligned.</span></div>
|
|
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="comment"> * @param thread_priority Low values gives the thread higher priority.</span></div>
|
|
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> <span class="comment"> * For userland apps, this has to be within the range [0x18;0x3F]</span></div>
|
|
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> <span class="comment"> * @param processor_id The id of the processor the thread should be ran on. Those are labelled starting from 0.</span></div>
|
|
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> <span class="comment"> * For old 3ds it has to be <2, and for new 3DS <4.</span></div>
|
|
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> <span class="comment"> * Value -1 means all CPUs and -2 read from the Exheader.</span></div>
|
|
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="comment"> * The processor with ID 1 is the system processor.</span></div>
|
|
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> <span class="comment"> * To enable multi-threading on this core you need to call APT_SetAppCpuTimeLimit at least once with a non-zero value.</span></div>
|
|
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="comment"> * Since a thread is considered as a waitable object, you can use @ref svcWaitSynchronization</span></div>
|
|
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> <span class="comment"> * and @ref svcWaitSynchronizationN to join with it.</span></div>
|
|
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> <span class="comment"> * @note The kernel will clear the @p stack_top's address low 3 bits to make sure it is 0x8-bytes aligned.</span></div>
|
|
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00838"></a><span class="lineno"><a class="line" href="svc_8h.html#a3f62a8f1822c6a78fab2e2cb03c46893"> 838</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a3f62a8f1822c6a78fab2e2cb03c46893">svcCreateThread</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* thread, <a class="code" href="types_8h.html#a857e4e893f41191500e83c00058df64e">ThreadFunc</a> entrypoint, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> arg, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* stack_top, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> thread_priority, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processor_id);</div>
|
|
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> <span class="comment"> * @brief Gets the handle of a thread.</span></div>
|
|
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> <span class="comment"> * @param[out] thread The handle of the thread</span></div>
|
|
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> <span class="comment"> * @param process The ID of the process linked to the thread</span></div>
|
|
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="svc_8h.html#aead5817ed16bb2e3f9dfe228dea2c81a"> 845</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aead5817ed16bb2e3f9dfe228dea2c81a">svcOpenThread</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* thread,<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> threadId);</div>
|
|
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> <span class="comment"> * @brief Exits the current thread.</span></div>
|
|
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="comment"> * This will trigger a state change and hence release all @ref svcWaitSynchronization operations.</span></div>
|
|
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> <span class="comment"> * It means that you can join a thread by calling @code svcWaitSynchronization(threadHandle,yourtimeout); @endcode</span></div>
|
|
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00853"></a><span class="lineno"><a class="line" href="svc_8h.html#a2ddb0d1da1ee4e65a5d2408da6239921"> 853</a></span> <span class="keywordtype">void</span> <a class="code" href="svc_8h.html#a2ddb0d1da1ee4e65a5d2408da6239921">svcExitThread</a>(<span class="keywordtype">void</span>) <a class="code" href="rbtree_8h.html#a797a3e1c8507a7c7b4e051d3f1349154">__attribute__</a>((noreturn));</div>
|
|
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> <span class="comment"> * @brief Puts the current thread to sleep.</span></div>
|
|
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="comment"> * @param ns The minimum number of nanoseconds to sleep for.</span></div>
|
|
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00859"></a><span class="lineno"><a class="line" href="svc_8h.html#ae1fad9317c81076e1394a376ab27c720"> 859</a></span> <span class="keywordtype">void</span> <a class="code" href="svc_8h.html#ae1fad9317c81076e1394a376ab27c720">svcSleepThread</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> ns);</div>
|
|
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> <span class="comment">/// Retrieves the priority of a thread.</span></div>
|
|
<div class="line"><a name="l00862"></a><span class="lineno"><a class="line" href="svc_8h.html#a609c04e1cde0d5bd6a71acbed3ad7e54"> 862</a></span> <span class="comment"></span><a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a609c04e1cde0d5bd6a71acbed3ad7e54">svcGetThreadPriority</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> *out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> <span class="comment"> * @brief Changes the priority of a thread</span></div>
|
|
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="comment"> * @param prio For userland apps, this has to be within the range [0x18;0x3F]</span></div>
|
|
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> <span class="comment"> *</span></div>
|
|
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> <span class="comment"> * Low values gives the thread higher priority.</span></div>
|
|
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="svc_8h.html#ae50054f7b88b075eca23b05b92fb1582"> 870</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ae50054f7b88b075eca23b05b92fb1582">svcSetThreadPriority</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> thread, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> prio);</div>
|
|
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> <span class="comment"> * @brief Gets a thread's affinity mask.</span></div>
|
|
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> <span class="comment"> * @param[out] affinitymask Pointer to output the affinity masks to.</span></div>
|
|
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> <span class="comment"> * @param thread Handle of the thread.</span></div>
|
|
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="comment"> * @param processorcount Number of processors.</span></div>
|
|
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="svc_8h.html#a4d259199317256bae13fe0600e52a7d3"> 878</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a4d259199317256bae13fe0600e52a7d3">svcGetThreadAffinityMask</a>(<a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* affinitymask, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> thread, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processorcount);</div>
|
|
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> <span class="comment"> * @brief Sets a thread's affinity mask.</span></div>
|
|
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> <span class="comment"> * @param thread Handle of the thread.</span></div>
|
|
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> <span class="comment"> * @param affinitymask Pointer to retrieve the affinity masks from.</span></div>
|
|
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> <span class="comment"> * @param processorcount Number of processors.</span></div>
|
|
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="svc_8h.html#a7c00a1577efa9e79fdfd5d301132467b"> 886</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a7c00a1577efa9e79fdfd5d301132467b">svcSetThreadAffinityMask</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> thread, <span class="keyword">const</span> <a class="code" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>* affinitymask, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processorcount);</div>
|
|
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="comment"> * @brief Gets a thread's ideal processor.</span></div>
|
|
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="comment"> * @param[out] processorid Pointer to output the ID of the thread's ideal processor to.</span></div>
|
|
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> <span class="comment"> * @param thread Handle of the thread.</span></div>
|
|
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00893"></a><span class="lineno"><a class="line" href="svc_8h.html#a94bc1c06056b8c4d4cd7754f7a65fb34"> 893</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a94bc1c06056b8c4d4cd7754f7a65fb34">svcGetThreadIdealProcessor</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* processorid, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> thread);</div>
|
|
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> <span class="comment"> * Sets a thread's ideal processor.</span></div>
|
|
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="comment"> * @param thread Handle of the thread.</span></div>
|
|
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> <span class="comment"> * @param processorid ID of the thread's ideal processor.</span></div>
|
|
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="svc_8h.html#ae4f42994fe420745b8d079d791441d42"> 900</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ae4f42994fe420745b8d079d791441d42">svcSetThreadIdealProcessor</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> thread, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> processorid);</div>
|
|
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> <span class="comment"> * @brief Returns the ID of the processor the current thread is running on.</span></div>
|
|
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> <span class="comment"> * @sa svcCreateThread</span></div>
|
|
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="svc_8h.html#a336600ef3fd751a23440c8f3bd331904"> 906</a></span> <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> <a class="code" href="svc_8h.html#a336600ef3fd751a23440c8f3bd331904">svcGetProcessorID</a>(<span class="keywordtype">void</span>);</div>
|
|
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> <span class="comment"> * @brief Gets the ID of a thread.</span></div>
|
|
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> <span class="comment"> * @param[out] out Pointer to output the thread ID of the thread @p handle to.</span></div>
|
|
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="comment"> * @param handle Handle of the thread.</span></div>
|
|
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="svc_8h.html#aa528da59a295ad8a09f951e1b52c658e"> 913</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aa528da59a295ad8a09f951e1b52c658e">svcGetThreadId</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> <span class="comment"> * @brief Gets the resource limit set of a process.</span></div>
|
|
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> <span class="comment"> * @param[out] resourceLimit Pointer to output the resource limit set handle to.</span></div>
|
|
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> <span class="comment"> * @param process Process to get the resource limits of.</span></div>
|
|
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00920"></a><span class="lineno"><a class="line" href="svc_8h.html#a977a76e261890d9d989451e073c5bb7e"> 920</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a977a76e261890d9d989451e073c5bb7e">svcGetResourceLimit</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* resourceLimit, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process);</div>
|
|
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="comment"> * @brief Gets the value limits of a resource limit set.</span></div>
|
|
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> <span class="comment"> * @param[out] values Pointer to output the value limits to.</span></div>
|
|
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="comment"> * @param resourceLimit Resource limit set to use.</span></div>
|
|
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="comment"> * @param names Resource limit names to get the limits of.</span></div>
|
|
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> <span class="comment"> * @param nameCount Number of resource limit names.</span></div>
|
|
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="svc_8h.html#a182a314d366e0dd25d5f7786fad9a1be"> 929</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a182a314d366e0dd25d5f7786fad9a1be">svcGetResourceLimitLimitValues</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* values, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> resourceLimit, <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780a">ResourceLimitType</a>* names, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> nameCount);</div>
|
|
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="comment"> * @brief Gets the values of a resource limit set.</span></div>
|
|
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="comment"> * @param[out] values Pointer to output the values to.</span></div>
|
|
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="comment"> * @param resourceLimit Resource limit set to use.</span></div>
|
|
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="comment"> * @param names Resource limit names to get the values of.</span></div>
|
|
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> <span class="comment"> * @param nameCount Number of resource limit names.</span></div>
|
|
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00938"></a><span class="lineno"><a class="line" href="svc_8h.html#a198fe17448c4cb82eb5ebe4eb3a893d8"> 938</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a198fe17448c4cb82eb5ebe4eb3a893d8">svcGetResourceLimitCurrentValues</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* values, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> resourceLimit, <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780a">ResourceLimitType</a>* names, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> nameCount);</div>
|
|
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="comment"> * @brief Sets the resource limit set of a process.</span></div>
|
|
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="comment"> * @param process Process to set the resource limit set to.</span></div>
|
|
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="comment"> * @param resourceLimit Resource limit set handle.</span></div>
|
|
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="svc_8h.html#a71a716eb986a0a9ef0e56ab0ffd2122e"> 945</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a71a716eb986a0a9ef0e56ab0ffd2122e">svcSetProcessResourceLimits</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> resourceLimit);</div>
|
|
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> <span class="comment"> * @brief Creates a resource limit set.</span></div>
|
|
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> <span class="comment"> * @param[out] resourceLimit Pointer to output the resource limit set handle to.</span></div>
|
|
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="svc_8h.html#abe17c7bede51c7123fd0e07c3c12788a"> 951</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#abe17c7bede51c7123fd0e07c3c12788a">svcCreateResourceLimit</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* resourceLimit);</div>
|
|
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span> <span class="comment"> * @brief Sets the value limits of a resource limit set.</span></div>
|
|
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> <span class="comment"> * @param resourceLimit Resource limit set to use.</span></div>
|
|
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span> <span class="comment"> * @param names Resource limit names to set the limits of.</span></div>
|
|
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span> <span class="comment"> * @param values Value limits to set. The high 32 bits of RESLIMIT_COMMIT are used to</span></div>
|
|
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span> <span class="comment"> set APPMEMALLOC in configuration memory, otherwise those bits are unused.</span></div>
|
|
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> <span class="comment"> * @param nameCount Number of resource limit names.</span></div>
|
|
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00961"></a><span class="lineno"><a class="line" href="svc_8h.html#a6f7ab132d9cc85cdff043a05fdd1fe34"> 961</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a6f7ab132d9cc85cdff043a05fdd1fe34">svcSetResourceLimitValues</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> resourceLimit, <span class="keyword">const</span> <a class="code" href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780a">ResourceLimitType</a>* names, <span class="keyword">const</span> <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* values, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> nameCount);</div>
|
|
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> <span class="comment"> * @brief Gets the process ID of a thread.</span></div>
|
|
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> <span class="comment"> * @param[out] out Pointer to output the process ID of the thread @p handle to.</span></div>
|
|
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span> <span class="comment"> * @param handle Handle of the thread.</span></div>
|
|
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> <span class="comment"> * @sa svcOpenProcess</span></div>
|
|
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00969"></a><span class="lineno"><a class="line" href="svc_8h.html#acd17333e3949eaef28ccda04dc7db0f7"> 969</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#acd17333e3949eaef28ccda04dc7db0f7">svcGetProcessIdOfThread</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> *out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> <span class="comment"> * @brief Checks if a thread handle is valid.</span></div>
|
|
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> <span class="comment"> * This requests always return an error when called, it only checks if the handle is a thread or not.</span></div>
|
|
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span> <span class="comment"> * @return 0xD8E007ED (BAD_ENUM) if the Handle is a Thread Handle</span></div>
|
|
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> <span class="comment"> * @return 0xD8E007F7 (BAD_HANDLE) if it isn't.</span></div>
|
|
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="svc_8h.html#a5eceb4a371c0293bf2ae5c4576cbe1de"> 977</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a5eceb4a371c0293bf2ae5c4576cbe1de">svcGetThreadInfo</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> thread, <a class="code" href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807">ThreadInfoType</a> type);<span class="comment"></span></div>
|
|
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span> <span class="comment">///@name Synchronization</span></div>
|
|
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> <span class="comment"> * @brief Creates a mutex.</span></div>
|
|
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> <span class="comment"> * @param[out] mutex Pointer to output the handle of the created mutex to.</span></div>
|
|
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> <span class="comment"> * @param initially_locked Whether the mutex should be initially locked.</span></div>
|
|
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="svc_8h.html#af83b6eb4ee03ce1aae2ccb64906e759c"> 988</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#af83b6eb4ee03ce1aae2ccb64906e759c">svcCreateMutex</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* mutex, <span class="keywordtype">bool</span> initially_locked);</div>
|
|
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> <span class="comment"> * @brief Releases a mutex.</span></div>
|
|
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> <span class="comment"> * @param handle Handle of the mutex.</span></div>
|
|
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l00994"></a><span class="lineno"><a class="line" href="svc_8h.html#a29c27d98f1ce96951af4057503b6641e"> 994</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a29c27d98f1ce96951af4057503b6641e">svcReleaseMutex</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> <span class="comment"> * @brief Creates a semaphore.</span></div>
|
|
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> <span class="comment"> * @param[out] semaphore Pointer to output the handle of the created semaphore to.</span></div>
|
|
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> <span class="comment"> * @param initial_count Initial count of the semaphore.</span></div>
|
|
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> <span class="comment"> * @param max_count Maximum count of the semaphore.</span></div>
|
|
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01002"></a><span class="lineno"><a class="line" href="svc_8h.html#a6875852b77e9295f0acefa95a721a102"> 1002</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a6875852b77e9295f0acefa95a721a102">svcCreateSemaphore</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* semaphore, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> initial_count, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> max_count);</div>
|
|
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> <span class="comment"> * @brief Releases a semaphore.</span></div>
|
|
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> <span class="comment"> * @param[out] count Pointer to output the current count of the semaphore to.</span></div>
|
|
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> <span class="comment"> * @param semaphore Handle of the semaphore.</span></div>
|
|
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="comment"> * @param release_count Number to increase the semaphore count by.</span></div>
|
|
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="svc_8h.html#a8c072d1a9707bb0324b4ba2e7c4fc794"> 1010</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a8c072d1a9707bb0324b4ba2e7c4fc794">svcReleaseSemaphore</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* count, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> semaphore, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> release_count);</div>
|
|
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> <span class="comment"> * @brief Creates an event handle.</span></div>
|
|
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> <span class="comment"> * @param[out] event Pointer to output the created event handle to.</span></div>
|
|
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> <span class="comment"> * @param reset_type Type of reset the event uses (RESET_ONESHOT/RESET_STICKY).</span></div>
|
|
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="svc_8h.html#ac4888a213bf9515d2332ce8a686b3087"> 1017</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ac4888a213bf9515d2332ce8a686b3087">svcCreateEvent</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* event, <a class="code" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdf">ResetType</a> reset_type);</div>
|
|
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> <span class="comment"> * @brief Signals an event.</span></div>
|
|
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> <span class="comment"> * @param handle Handle of the event to signal.</span></div>
|
|
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="svc_8h.html#af1c2d3d3b17455505aa7d277ba230a7a"> 1023</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#af1c2d3d3b17455505aa7d277ba230a7a">svcSignalEvent</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> <span class="comment"> * @brief Clears an event.</span></div>
|
|
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span> <span class="comment"> * @param handle Handle of the event to clear.</span></div>
|
|
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01029"></a><span class="lineno"><a class="line" href="svc_8h.html#ac62690a14d27773ca936c1b53549f59d"> 1029</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ac62690a14d27773ca936c1b53549f59d">svcClearEvent</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> <span class="comment"> * @brief Waits for synchronization on a handle.</span></div>
|
|
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> <span class="comment"> * @param handle Handle to wait on.</span></div>
|
|
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="comment"> * @param nanoseconds Maximum nanoseconds to wait for.</span></div>
|
|
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01036"></a><span class="lineno"><a class="line" href="svc_8h.html#a4eabaa7c25d17e79026434564d484c82"> 1036</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a4eabaa7c25d17e79026434564d484c82">svcWaitSynchronization</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle, <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> nanoseconds);</div>
|
|
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> <span class="comment"> * @brief Waits for synchronization on multiple handles.</span></div>
|
|
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> <span class="comment"> * @param[out] out Pointer to output the index of the synchronized handle to.</span></div>
|
|
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="comment"> * @param handles Handles to wait on.</span></div>
|
|
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> <span class="comment"> * @param handles_num Number of handles.</span></div>
|
|
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> <span class="comment"> * @param wait_all Whether to wait for synchronization on all handles.</span></div>
|
|
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> <span class="comment"> * @param nanoseconds Maximum nanoseconds to wait for.</span></div>
|
|
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01046"></a><span class="lineno"><a class="line" href="svc_8h.html#a15341b7a1a479ea489a31a145479f5b8"> 1046</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a15341b7a1a479ea489a31a145479f5b8">svcWaitSynchronizationN</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* out, <span class="keyword">const</span> <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* handles, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> handles_num, <span class="keywordtype">bool</span> wait_all, <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> nanoseconds);</div>
|
|
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> <span class="comment"> * @brief Creates an address arbiter</span></div>
|
|
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="comment"> * @param[out] mutex Pointer to output the handle of the created address arbiter to.</span></div>
|
|
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> <span class="comment"> * @sa svcArbitrateAddress</span></div>
|
|
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="svc_8h.html#aad97fa778ae92cc88586f287b9b88487"> 1053</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aad97fa778ae92cc88586f287b9b88487">svcCreateAddressArbiter</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *arbiter);</div>
|
|
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> <span class="comment"> * @brief Arbitrate an address, can be used for synchronization</span></div>
|
|
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> <span class="comment"> * @param arbiter Handle of the arbiter</span></div>
|
|
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> <span class="comment"> * @param addr A pointer to a s32 value.</span></div>
|
|
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> <span class="comment"> * @param type Type of action to be performed by the arbiter</span></div>
|
|
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> <span class="comment"> * @param value Number of threads to signal if using @ref ARBITRATION_SIGNAL, or the value used for comparison.</span></div>
|
|
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> <span class="comment"> * @param timeout_ns Optional timeout in nanoseconds when using TIMEOUT actions, ignored otherwise. If not needed, use \ref svcArbitrateAddressNoTimeout instead.</span></div>
|
|
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> <span class="comment"> * @note Usage of this syscall entails an implicit Data Memory Barrier (dmb).</span></div>
|
|
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> <span class="comment"> * @warning Please use \ref syncArbitrateAddressWithTimeout instead.</span></div>
|
|
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="svc_8h.html#a4f6ec3a0e2d3bd501c6a95e234aaabdc"> 1065</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a4f6ec3a0e2d3bd501c6a95e234aaabdc">svcArbitrateAddress</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> arbiter, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533ec">ArbitrationType</a> type, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> value, <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> timeout_ns);</div>
|
|
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> <span class="comment"> * @brief Same as \ref svcArbitrateAddress but with the timeout_ns parameter undefined.</span></div>
|
|
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> <span class="comment"> * @param arbiter Handle of the arbiter</span></div>
|
|
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> <span class="comment"> * @param addr A pointer to a s32 value.</span></div>
|
|
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> <span class="comment"> * @param type Type of action to be performed by the arbiter</span></div>
|
|
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> <span class="comment"> * @param value Number of threads to signal if using @ref ARBITRATION_SIGNAL, or the value used for comparison.</span></div>
|
|
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> <span class="comment"> * @note Usage of this syscall entails an implicit Data Memory Barrier (dmb).</span></div>
|
|
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="comment"> * @warning Please use \ref syncArbitrateAddress instead.</span></div>
|
|
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01076"></a><span class="lineno"><a class="line" href="svc_8h.html#a8b4536b50d5d5735805f1f5aa6b2a378"> 1076</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a8b4536b50d5d5735805f1f5aa6b2a378">svcArbitrateAddressNoTimeout</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> arbiter, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="svc_8h.html#a00f5b708129ef172b59197a775b533ec">ArbitrationType</a> type, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> value);</div>
|
|
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> <span class="comment"> * @brief Sends a synchronized request to a session handle.</span></div>
|
|
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> <span class="comment"> * @param session Handle of the session.</span></div>
|
|
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01082"></a><span class="lineno"><a class="line" href="svc_8h.html#a3e2f6333bfcd2a2953b5bde79122e913"> 1082</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a3e2f6333bfcd2a2953b5bde79122e913">svcSendSyncRequest</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> session);</div>
|
|
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> <span class="comment"> * @brief Connects to a port via a handle.</span></div>
|
|
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> <span class="comment"> * @param[out] clientSession Pointer to output the client session handle to.</span></div>
|
|
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span> <span class="comment"> * @param clientPort Port client endpoint to connect to.</span></div>
|
|
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01089"></a><span class="lineno"><a class="line" href="svc_8h.html#a562f0131519b367335c376b046d1c1aa"> 1089</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a562f0131519b367335c376b046d1c1aa">svcCreateSessionToPort</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* clientSession, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> clientPort);</div>
|
|
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> <span class="comment"> * @brief Creates a linked pair of session endpoints.</span></div>
|
|
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> <span class="comment"> * @param[out] serverSession Pointer to output the created server endpoint handle to.</span></div>
|
|
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> <span class="comment"> * @param[out] clientSession Pointer to output the created client endpoint handle to.</span></div>
|
|
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="svc_8h.html#a39e82e4602ee78d3b7bc3ad95c3798cb"> 1096</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a39e82e4602ee78d3b7bc3ad95c3798cb">svcCreateSession</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* serverSession, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* clientSession);</div>
|
|
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span> <span class="comment"> * @brief Accepts a session.</span></div>
|
|
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> <span class="comment"> * @param[out] session Pointer to output the created session handle to.</span></div>
|
|
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span> <span class="comment"> * @param port Handle of the port to accept a session from.</span></div>
|
|
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01103"></a><span class="lineno"><a class="line" href="svc_8h.html#a9b1cbd6cb9eba21e42c9ec8bb7d08e97"> 1103</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a9b1cbd6cb9eba21e42c9ec8bb7d08e97">svcAcceptSession</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* session, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> port);</div>
|
|
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span> <span class="comment"> * @brief Replies to and receives a new request.</span></div>
|
|
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> <span class="comment"> * @param index Pointer to the index of the request.</span></div>
|
|
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span> <span class="comment"> * @param handles Session handles to receive requests from.</span></div>
|
|
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span> <span class="comment"> * @param handleCount Number of handles.</span></div>
|
|
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span> <span class="comment"> * @param replyTarget Handle of the session to reply to.</span></div>
|
|
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01112"></a><span class="lineno"><a class="line" href="svc_8h.html#aaef69fd9d538247e3e48815592de4df1"> 1112</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aaef69fd9d538247e3e48815592de4df1">svcReplyAndReceive</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a>* index, <span class="keyword">const</span> <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* handles, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> handleCount, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> replyTarget);</div>
|
|
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="comment">///@name Time</span></div>
|
|
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span> <span class="comment"> * @brief Creates a timer.</span></div>
|
|
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> <span class="comment"> * @param[out] timer Pointer to output the handle of the created timer to.</span></div>
|
|
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span> <span class="comment"> * @param reset_type Type of reset to perform on the timer.</span></div>
|
|
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01123"></a><span class="lineno"><a class="line" href="svc_8h.html#a021efa7b65d0263f55278c04c4329c5c"> 1123</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a021efa7b65d0263f55278c04c4329c5c">svcCreateTimer</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* timer, <a class="code" href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdf">ResetType</a> reset_type);</div>
|
|
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span> <span class="comment"> * @brief Sets a timer.</span></div>
|
|
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span> <span class="comment"> * @param timer Handle of the timer to set.</span></div>
|
|
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span> <span class="comment"> * @param initial Initial value of the timer.</span></div>
|
|
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span> <span class="comment"> * @param interval Interval of the timer.</span></div>
|
|
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="svc_8h.html#ab3d7b4a986e1f146dfc4d6149d1a5b5b"> 1131</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ab3d7b4a986e1f146dfc4d6149d1a5b5b">svcSetTimer</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> timer, <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> initial, <a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a> interval);</div>
|
|
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="comment"> * @brief Cancels a timer.</span></div>
|
|
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span> <span class="comment"> * @param timer Handle of the timer to cancel.</span></div>
|
|
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01137"></a><span class="lineno"><a class="line" href="svc_8h.html#a88c4f0553f97b85737a730c7e63aff6f"> 1137</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a88c4f0553f97b85737a730c7e63aff6f">svcCancelTimer</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> timer);</div>
|
|
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span> <span class="comment"> * @brief Clears a timer.</span></div>
|
|
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> <span class="comment"> * @param timer Handle of the timer to clear.</span></div>
|
|
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01143"></a><span class="lineno"><a class="line" href="svc_8h.html#a3642f5b3403a0e731358301d622a9a1e"> 1143</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a3642f5b3403a0e731358301d622a9a1e">svcClearTimer</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> timer);</div>
|
|
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span> <span class="comment"> * @brief Gets the current system tick.</span></div>
|
|
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> <span class="comment"> * @return The current system tick.</span></div>
|
|
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01149"></a><span class="lineno"><a class="line" href="svc_8h.html#a3a31bff3a0f1d8ff768911e38f70c5d7"> 1149</a></span> <a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> <a class="code" href="svc_8h.html#a3a31bff3a0f1d8ff768911e38f70c5d7">svcGetSystemTick</a>(<span class="keywordtype">void</span>);<span class="comment"></span></div>
|
|
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span> <span class="comment">///@name System</span></div>
|
|
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span> <span class="comment"> * @brief Closes a handle.</span></div>
|
|
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span> <span class="comment"> * @param handle Handle to close.</span></div>
|
|
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01158"></a><span class="lineno"><a class="line" href="svc_8h.html#a09f47e8301d61442fc76727da0b0554c"> 1158</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a09f47e8301d61442fc76727da0b0554c">svcCloseHandle</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle);</div>
|
|
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span> <span class="comment"> * @brief Duplicates a handle.</span></div>
|
|
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span> <span class="comment"> * @param[out] out Pointer to output the duplicated handle to.</span></div>
|
|
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span> <span class="comment"> * @param original Handle to duplicate.</span></div>
|
|
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01165"></a><span class="lineno"><a class="line" href="svc_8h.html#a2fea2f7321bb5bb8fa64d4064ae07e39"> 1165</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a2fea2f7321bb5bb8fa64d4064ae07e39">svcDuplicateHandle</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> original);</div>
|
|
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span> <span class="comment"> * @brief Gets a handle info.</span></div>
|
|
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span> <span class="comment"> * @param[out] out Pointer to output the handle info to.</span></div>
|
|
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span> <span class="comment"> * @param handle Handle to get the info for.</span></div>
|
|
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span> <span class="comment"> * @param param Parameter clarifying the handle info type.</span></div>
|
|
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01173"></a><span class="lineno"><a class="line" href="svc_8h.html#a48a9bb9e4b5959bebca2f32cdd3e598a"> 1173</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a48a9bb9e4b5959bebca2f32cdd3e598a">svcGetHandleInfo</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> handle, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> param);</div>
|
|
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span> <span class="comment"> * @brief Gets the system info.</span></div>
|
|
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span> <span class="comment"> * @param[out] out Pointer to output the system info to.</span></div>
|
|
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span> <span class="comment"> * @param type Type of system info to retrieve.</span></div>
|
|
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span> <span class="comment"> * @param param Parameter clarifying the system info type.</span></div>
|
|
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01181"></a><span class="lineno"><a class="line" href="svc_8h.html#a581cf88669bf459816e5ce5899f1e378"> 1181</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a581cf88669bf459816e5ce5899f1e378">svcGetSystemInfo</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* out, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> type, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> param);</div>
|
|
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span> <span class="comment"> * @brief Sets the current kernel state.</span></div>
|
|
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span> <span class="comment"> * @param type Type of state to set (the other parameters depend on it).</span></div>
|
|
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01187"></a><span class="lineno"><a class="line" href="svc_8h.html#ada13386ccb8cb809658a9878a9941a8b"> 1187</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ada13386ccb8cb809658a9878a9941a8b">svcKernelSetState</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> type, ...);<span class="comment"></span></div>
|
|
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span> <span class="comment">///@name Device drivers</span></div>
|
|
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span> <span class="comment"> * @brief Binds an event or semaphore handle to an ARM11 interrupt.</span></div>
|
|
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span> <span class="comment"> * @param interruptId Interrupt identfier (see https://www.3dbrew.org/wiki/ARM11_Interrupts).</span></div>
|
|
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span> <span class="comment"> * @param eventOrSemaphore Event or semaphore handle to bind to the given interrupt.</span></div>
|
|
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span> <span class="comment"> * @param priority Priority of the interrupt for the current process.</span></div>
|
|
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> <span class="comment"> * @param isManualClear Indicates whether the interrupt has to be manually cleared or not (= level-high active).</span></div>
|
|
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01200"></a><span class="lineno"><a class="line" href="svc_8h.html#a2f8db0e990f91fa29d392986a3050a17"> 1200</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a2f8db0e990f91fa29d392986a3050a17">svcBindInterrupt</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> interruptId, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> eventOrSemaphore, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> priority, <span class="keywordtype">bool</span> isManualClear);</div>
|
|
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> <span class="comment"> * @brief Unbinds an event or semaphore handle from an ARM11 interrupt.</span></div>
|
|
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> <span class="comment"> * @param interruptId Interrupt identfier, see (see https://www.3dbrew.org/wiki/ARM11_Interrupts).</span></div>
|
|
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span> <span class="comment"> * @param eventOrSemaphore Event or semaphore handle to unbind from the given interrupt.</span></div>
|
|
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01207"></a><span class="lineno"><a class="line" href="svc_8h.html#aecce8ec0ae7a047d6df92e8dafd6e099"> 1207</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aecce8ec0ae7a047d6df92e8dafd6e099">svcUnbindInterrupt</a>(<a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> interruptId, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> eventOrSemaphore);</div>
|
|
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span> <span class="comment"> * @brief Invalidates a process's data cache.</span></div>
|
|
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span> <span class="comment"> * @param addr Address to invalidate.</span></div>
|
|
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span> <span class="comment"> * @param size Size of the memory to invalidate.</span></div>
|
|
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01215"></a><span class="lineno"><a class="line" href="svc_8h.html#ac8c9fee9e79ce2ef81585347f56f208e"> 1215</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ac8c9fee9e79ce2ef81585347f56f208e">svcInvalidateProcessDataCache</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span> <span class="comment"> * @brief Cleans a process's data cache.</span></div>
|
|
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span> <span class="comment"> * @param addr Address to clean.</span></div>
|
|
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span> <span class="comment"> * @param size Size of the memory to clean.</span></div>
|
|
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01223"></a><span class="lineno"><a class="line" href="svc_8h.html#ab540f40958124e21d461ef4a423997f8"> 1223</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ab540f40958124e21d461ef4a423997f8">svcStoreProcessDataCache</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> <span class="comment"> * @brief Flushes (cleans and invalidates) a process's data cache.</span></div>
|
|
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span> <span class="comment"> * @param process Handle of the process.</span></div>
|
|
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span> <span class="comment"> * @param addr Address to flush.</span></div>
|
|
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span> <span class="comment"> * @param size Size of the memory to flush.</span></div>
|
|
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01231"></a><span class="lineno"><a class="line" href="svc_8h.html#af82f17b3c13ab9cd97dff78721d24d0d"> 1231</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#af82f17b3c13ab9cd97dff78721d24d0d">svcFlushProcessDataCache</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> process, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span> <span class="comment"> * @brief Begins an inter-process DMA transfer.</span></div>
|
|
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span> <span class="comment"> * @param[out] dma Pointer to output the handle of the DMA channel object to.</span></div>
|
|
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span> <span class="comment"> * @param dstProcess Destination process handle.</span></div>
|
|
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> <span class="comment"> * @param dstAddr Address in the destination process to write data to.</span></div>
|
|
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span> <span class="comment"> * @param srcProcess Source process handle.</span></div>
|
|
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span> <span class="comment"> * @param srcAddr Address in the source to read data from.</span></div>
|
|
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span> <span class="comment"> * @param size Size of the data to transfer.</span></div>
|
|
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> <span class="comment"> * @param cfg Configuration structure.</span></div>
|
|
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span> <span class="comment"> * @note The handle is signaled when the transfer finishes.</span></div>
|
|
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01244"></a><span class="lineno"><a class="line" href="svc_8h.html#af8008fc36f898e4e2def32627cb96b47"> 1244</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#af8008fc36f898e4e2def32627cb96b47">svcStartInterProcessDma</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> *dma, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> dstProcess, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> dstAddr, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> srcProcess, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> srcAddr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <span class="keyword">const</span> <a class="code" href="structDmaConfig.html">DmaConfig</a> *cfg);</div>
|
|
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span> <span class="comment"> * @brief Stops an inter-process DMA transfer.</span></div>
|
|
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span> <span class="comment"> * @param dma Handle of the DMA channel object.</span></div>
|
|
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01250"></a><span class="lineno"><a class="line" href="svc_8h.html#ac827a6c2a3d84f484463f3206e688e01"> 1250</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ac827a6c2a3d84f484463f3206e688e01">svcStopDma</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> dma);</div>
|
|
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span> <span class="comment"> * @brief Gets the state of an inter-process DMA transfer.</span></div>
|
|
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span> <span class="comment"> * @param[out] state Pointer to output the state of the DMA transfer to.</span></div>
|
|
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span> <span class="comment"> * @param dma Handle of the DMA channel object.</span></div>
|
|
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01257"></a><span class="lineno"><a class="line" href="svc_8h.html#afb244db47f6810fb782b5331c83c52ea"> 1257</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#afb244db47f6810fb782b5331c83c52ea">svcGetDmaState</a>(<a class="code" href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebf">DmaState</a> *state, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> dma);</div>
|
|
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> <span class="comment"> * @brief Restarts a DMA transfer, using the same configuration as before.</span></div>
|
|
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span> <span class="comment"> * @param[out] state Pointer to output the state of the DMA transfer to.</span></div>
|
|
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> <span class="comment"> * @param dma Handle of the DMA channel object.</span></div>
|
|
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span> <span class="comment"> * @param dstAddr Address in the destination process to write data to.</span></div>
|
|
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> <span class="comment"> * @param srcAddr Address in the source to read data from.</span></div>
|
|
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span> <span class="comment"> * @param size Size of the data to transfer.</span></div>
|
|
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span> <span class="comment"> * @param flags Restart flags, \ref DMARST_UNLOCK and/or \ref DMARST_RESUME_DEVICE.</span></div>
|
|
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> <span class="comment"> * @note The first transfer has to be configured with \ref DMACFG_KEEP_LOCKED.</span></div>
|
|
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01269"></a><span class="lineno"><a class="line" href="svc_8h.html#aab7a1755c547a1ff2b9f2a6f45e57073"> 1269</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aab7a1755c547a1ff2b9f2a6f45e57073">svcRestartDma</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> dma, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> dstAddr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> srcAddr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size, <a class="code" href="types_8h.html#a9e382f207c65ca13ab4ae98363aeda80">s8</a> flags);</div>
|
|
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> <span class="comment"> * @brief Sets the GPU protection register to restrict the range of the GPU DMA. 11.3+ only.</span></div>
|
|
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span> <span class="comment"> * @param useApplicationRestriction Whether to use the register value used for APPLICATION titles.</span></div>
|
|
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01275"></a><span class="lineno"><a class="line" href="svc_8h.html#a73d737b48868304a3e144abc6f73ec8f"> 1275</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a73d737b48868304a3e144abc6f73ec8f">svcSetGpuProt</a>(<span class="keywordtype">bool</span> useApplicationRestriction);</div>
|
|
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> <span class="comment"> * @brief Enables or disables Wi-Fi. 11.4+ only.</span></div>
|
|
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> <span class="comment"> * @param enabled Whether to enable or disable Wi-Fi.</span></div>
|
|
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01281"></a><span class="lineno"><a class="line" href="svc_8h.html#a5a7ca823accc7d580ae25fe385322bbb"> 1281</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a5a7ca823accc7d580ae25fe385322bbb">svcSetWifiEnabled</a>(<span class="keywordtype">bool</span> enabled);</div>
|
|
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span> <span class="comment">///@name Debugging</span></div>
|
|
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span> <span class="comment">///@{</span></div>
|
|
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="comment"></span><span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span> <span class="comment"> * @brief Breaks execution.</span></div>
|
|
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> <span class="comment"> * @param breakReason Reason for breaking.</span></div>
|
|
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01291"></a><span class="lineno"><a class="line" href="svc_8h.html#a71559e1c5662a82ac2b83bd6c5c8234c"> 1291</a></span> <span class="keywordtype">void</span> <a class="code" href="svc_8h.html#a71559e1c5662a82ac2b83bd6c5c8234c">svcBreak</a>(<a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12">UserBreakType</a> breakReason);</div>
|
|
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> <span class="comment"> * @brief Breaks execution (LOAD_RO and UNLOAD_RO).</span></div>
|
|
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> <span class="comment"> * @param breakReason Debug reason for breaking.</span></div>
|
|
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> <span class="comment"> * @param croInfo Library information.</span></div>
|
|
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span> <span class="comment"> * @param croInfoSize Size of the above structure.</span></div>
|
|
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01299"></a><span class="lineno"><a class="line" href="svc_8h.html#a68c4f6fd3748a647851724b2c7f6e6f3"> 1299</a></span> <span class="keywordtype">void</span> <a class="code" href="svc_8h.html#a68c4f6fd3748a647851724b2c7f6e6f3">svcBreakRO</a>(<a class="code" href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12">UserBreakType</a> breakReason, <span class="keyword">const</span> <span class="keywordtype">void</span>* croInfo, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> croInfoSize) __asm__(<span class="stringliteral">"svcBreak"</span>);</div>
|
|
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span> <span class="comment"> * @brief Outputs a debug string.</span></div>
|
|
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span> <span class="comment"> * @param str String to output.</span></div>
|
|
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span> <span class="comment"> * @param length Length of the string to output, needs to be positive.</span></div>
|
|
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01306"></a><span class="lineno"><a class="line" href="svc_8h.html#a1deb19f13c53015347aa5c8785fe612e"> 1306</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a1deb19f13c53015347aa5c8785fe612e">svcOutputDebugString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str, <a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> length);</div>
|
|
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  </div>
|
|
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span> <span class="comment"> * @brief Controls performance monitoring on the CP15 interface and the SCU.</span></div>
|
|
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span> <span class="comment"> * The meaning of the parameters depend on the operation.</span></div>
|
|
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span> <span class="comment"> * @param[out] out Output.</span></div>
|
|
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> <span class="comment"> * @param op Operation, see details.</span></div>
|
|
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span> <span class="comment"> * @param param1 First parameter.</span></div>
|
|
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span> <span class="comment"> * @param param2 Second parameter.</span></div>
|
|
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span> <span class="comment"> * @details The operations are the following:</span></div>
|
|
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> <span class="comment"> * - \ref PERFCOUNTEROP_ENABLE (void) -> void, tries to enable and lock perfmon. functionality.</span></div>
|
|
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span> <span class="comment"> * - \ref PERFCOUNTEROP_DISABLE (void) -> void, disable and forcibly unlocks perfmon. functionality.</span></div>
|
|
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> <span class="comment"> * - \ref PERFCOUNTEROP_GET_VALUE (\ref PerfCounterRegister reg) -> u64, gets the value of a particular counter register.</span></div>
|
|
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span> <span class="comment"> * - \ref PERFCOUNTEROP_SET_VALUE (\ref PerfCounterRegister reg, u64 value) -> void, sets the value of a particular counter register.</span></div>
|
|
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> <span class="comment"> * - \ref PERFCOUNTEROP_GET_OVERFLOW_FLAGS (void) -> u32, gets the overflow flags of all CP15 and SCU registers.</span></div>
|
|
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span> <span class="comment"> * - Format is a bitfield of \ref PerfCounterRegister.</span></div>
|
|
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span> <span class="comment"> * - \ref PERFCOUNTEROP_RESET (u32 valueResetMask, u32 overflowFlagResetMask) -> void, resets the value and/or</span></div>
|
|
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span> <span class="comment"> * overflow flags of selected registers.</span></div>
|
|
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span> <span class="comment"> * - Format is two bitfields of \ref PerfCounterRegister.</span></div>
|
|
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span> <span class="comment"> * - \ref PERFCOUNTEROP_GET_EVENT (\ref PerfCounterRegister reg) -> \ref PerfCounterEvent, gets the event associated</span></div>
|
|
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span> <span class="comment"> * to a particular counter register.</span></div>
|
|
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span> <span class="comment"> * - \ref PERFCOUNTEROP_SET_EVENT (\ref PerfCounterRegister reg, \ref PerfCounterEvent) -> void, sets the event associated</span></div>
|
|
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> <span class="comment"> * to a particular counter register.</span></div>
|
|
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span> <span class="comment"> * - \ref PERFCOUNTEROP_SET_VIRTUAL_COUNTER_ENABLED (bool enabled) -> void, (dis)allows the kernel to track counter overflows</span></div>
|
|
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span> <span class="comment"> * and to use 64-bit counter values.</span></div>
|
|
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01333"></a><span class="lineno"><a class="line" href="svc_8h.html#a5b138754e8e2aa48326c4271eae7d6ba"> 1333</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a5b138754e8e2aa48326c4271eae7d6ba">svcControlPerformanceCounter</a>(<a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> *out, <a class="code" href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084">PerfCounterOperation</a> op, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> param1, <a class="code" href="types_8h.html#a3f7e2bcbb0b4c338f3c4f6c937cd4234">u64</a> param2);</div>
|
|
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> <span class="comment"> * @brief Creates a debug handle for an active process.</span></div>
|
|
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span> <span class="comment"> * @param[out] debug Pointer to output the created debug handle to.</span></div>
|
|
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span> <span class="comment"> * @param processId ID of the process to debug.</span></div>
|
|
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="svc_8h.html#a1fb595bace1a8798b73437b7b4ee5212"> 1340</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a1fb595bace1a8798b73437b7b4ee5212">svcDebugActiveProcess</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a>* debug, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> processId);</div>
|
|
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span> <span class="comment"> * @brief Breaks a debugged process.</span></div>
|
|
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="svc_8h.html#a9609f301ffe5836bc68a8f73fece12b4"> 1346</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a9609f301ffe5836bc68a8f73fece12b4">svcBreakDebugProcess</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug);</div>
|
|
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span> <span class="comment"> * @brief Terminates a debugged process.</span></div>
|
|
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01352"></a><span class="lineno"><a class="line" href="svc_8h.html#aea161e7c96b51fd4db42a168f678d413"> 1352</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aea161e7c96b51fd4db42a168f678d413">svcTerminateDebugProcess</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug);</div>
|
|
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span> <span class="comment"> * @brief Gets the current debug event of a debugged process.</span></div>
|
|
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span> <span class="comment"> * @param[out] info Pointer to output the debug event information to.</span></div>
|
|
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01359"></a><span class="lineno"><a class="line" href="svc_8h.html#ae43be244fb71321c8101547a20b65693"> 1359</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ae43be244fb71321c8101547a20b65693">svcGetProcessDebugEvent</a>(<a class="code" href="structDebugEventInfo.html">DebugEventInfo</a>* info, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug);</div>
|
|
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span> <span class="comment"> * @brief Continues the current debug event of a debugged process (not necessarily the same as @ref svcGetProcessDebugEvent).</span></div>
|
|
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span> <span class="comment"> * @param flags Flags to continue with, see @ref DebugFlags.</span></div>
|
|
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01366"></a><span class="lineno"><a class="line" href="svc_8h.html#a6afb068c84788f20213bb66c55d7a343"> 1366</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a6afb068c84788f20213bb66c55d7a343">svcContinueDebugEvent</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <a class="code" href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10">DebugFlags</a> flags);</div>
|
|
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span> <span class="comment"> * @brief Fetches the saved registers of a thread, either inactive or awaiting @ref svcContinueDebugEvent, belonging to a debugged process.</span></div>
|
|
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span> <span class="comment"> * @param[out] context Values of the registers to fetch, see @ref ThreadContext.</span></div>
|
|
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span> <span class="comment"> * @param debug Debug handle of the parent process.</span></div>
|
|
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span> <span class="comment"> * @param threadId ID of the thread to fetch the saved registers of.</span></div>
|
|
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span> <span class="comment"> * @param controlFlags Which registers to fetch, see @ref ThreadContextControlFlags.</span></div>
|
|
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01375"></a><span class="lineno"><a class="line" href="svc_8h.html#a45d96608f9a397c81e8a254d8948f5c5"> 1375</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a45d96608f9a397c81e8a254d8948f5c5">svcGetDebugThreadContext</a>(<a class="code" href="structThreadContext.html">ThreadContext</a>* context, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> threadId, <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742">ThreadContextControlFlags</a> controlFlags);</div>
|
|
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span> <span class="comment"> * @brief Updates the saved registers of a thread, either inactive or awaiting @ref svcContinueDebugEvent, belonging to a debugged process.</span></div>
|
|
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span> <span class="comment"> * @param debug Debug handle of the parent process.</span></div>
|
|
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span> <span class="comment"> * @param threadId ID of the thread to update the saved registers of.</span></div>
|
|
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span> <span class="comment"> * @param context Values of the registers to update, see @ref ThreadContext.</span></div>
|
|
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> <span class="comment"> * @param controlFlags Which registers to update, see @ref ThreadContextControlFlags.</span></div>
|
|
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01384"></a><span class="lineno"><a class="line" href="svc_8h.html#aec567b6e8ea8fe1ac41ac1fe117a6345"> 1384</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#aec567b6e8ea8fe1ac41ac1fe117a6345">svcSetDebugThreadContext</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> threadId, <a class="code" href="structThreadContext.html">ThreadContext</a>* context, <a class="code" href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742">ThreadContextControlFlags</a> controlFlags);</div>
|
|
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span> <span class="comment"> * @brief Queries memory information of a debugged process.</span></div>
|
|
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span> <span class="comment"> * @param[out] info Pointer to output memory info to.</span></div>
|
|
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> <span class="comment"> * @param[out] out Pointer to output page info to.</span></div>
|
|
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> <span class="comment"> * @param debug Debug handle of the process to query memory from.</span></div>
|
|
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> <span class="comment"> * @param addr Virtual memory address to query.</span></div>
|
|
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01393"></a><span class="lineno"><a class="line" href="svc_8h.html#a701306ea4d920baf3243f0fe7139fb9f"> 1393</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a701306ea4d920baf3243f0fe7139fb9f">svcQueryDebugProcessMemory</a>(<a class="code" href="structMemInfo.html">MemInfo</a>* info, <a class="code" href="structPageInfo.html">PageInfo</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr);</div>
|
|
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span> <span class="comment"> * @brief Reads from a debugged process's memory.</span></div>
|
|
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span> <span class="comment"> * @param buffer Buffer to read data to.</span></div>
|
|
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span> <span class="comment"> * @param addr Address to read from.</span></div>
|
|
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span> <span class="comment"> * @param size Size of the memory to read.</span></div>
|
|
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01402"></a><span class="lineno"><a class="line" href="svc_8h.html#a7d5848ed471a047cd3298615c4c49f6c"> 1402</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a7d5848ed471a047cd3298615c4c49f6c">svcReadProcessMemory</a>(<span class="keywordtype">void</span>* buffer, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span> <span class="comment"> * @brief Writes to a debugged process's memory.</span></div>
|
|
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span> <span class="comment"> * @param buffer Buffer to write data from.</span></div>
|
|
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> <span class="comment"> * @param addr Address to write to.</span></div>
|
|
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span> <span class="comment"> * @param size Size of the memory to write.</span></div>
|
|
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01411"></a><span class="lineno"><a class="line" href="svc_8h.html#a141d92c97fb3f2565c657dd721e1e30c"> 1411</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a141d92c97fb3f2565c657dd721e1e30c">svcWriteProcessMemory</a>(<a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <span class="keyword">const</span> <span class="keywordtype">void</span>* buffer, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> addr, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> size);</div>
|
|
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span> <span class="comment"> * @brief Sets an hardware breakpoint or watchpoint. This is an interface to the BRP/WRP registers, see http://infocenter.arm.com/help/topic/com.arm.doc.ddi0360f/CEGEBGFC.html .</span></div>
|
|
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span> <span class="comment"> * @param registerId range 0..5 = breakpoints (BRP0-5), 0x100..0x101 = watchpoints (WRP0-1). The previous stop point for the register is disabled.</span></div>
|
|
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span> <span class="comment"> * @param control Value of the control regiser.</span></div>
|
|
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span> <span class="comment"> * @param value Value of the value register: either and address (if bit21 of control is clear) or the debug handle of a process to fetch the context ID of.</span></div>
|
|
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01419"></a><span class="lineno"><a class="line" href="svc_8h.html#ab31e6106eb7e5f4b7ef62cca1054e83f"> 1419</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ab31e6106eb7e5f4b7ef62cca1054e83f">svcSetHardwareBreakPoint</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> registerId, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> control, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> value);</div>
|
|
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span> <span class="comment"> * @brief Gets a debugged thread's parameter.</span></div>
|
|
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span> <span class="comment"> * @param[out] unused Unused.</span></div>
|
|
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span> <span class="comment"> * @param[out] out Output value.</span></div>
|
|
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span> <span class="comment"> * @param debug Debug handle of the process.</span></div>
|
|
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span> <span class="comment"> * @param threadId ID of the thread</span></div>
|
|
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span> <span class="comment"> * @param parameter Parameter to fetch, see @ref DebugThreadParameter.</span></div>
|
|
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="svc_8h.html#ad9dcfc6cb021384b48ccc7e5275bfc4b"> 1429</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#ad9dcfc6cb021384b48ccc7e5275bfc4b">svcGetDebugThreadParam</a>(<a class="code" href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a>* unused, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>* out, <a class="code" href="types_8h.html#ab6d744c6b5de129f12937e482dc674fb">Handle</a> debug, <a class="code" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> threadId, <a class="code" href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2">DebugThreadParameter</a> parameter);</div>
|
|
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> <span class="comment">///@}</span></div>
|
|
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span> <span class="comment"></span><span class="comment"></span> </div>
|
|
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span> <span class="comment">/**</span></div>
|
|
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span> <span class="comment"> * @brief Executes a function in supervisor mode.</span></div>
|
|
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span> <span class="comment"> * @param callback Function to execute.</span></div>
|
|
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span> <span class="comment"> */</span></div>
|
|
<div class="line"><a name="l01437"></a><span class="lineno"><a class="line" href="svc_8h.html#a1f4318daa12693ba8a3bb8dde536393b"> 1437</a></span> <a class="code" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> <a class="code" href="svc_8h.html#a1f4318daa12693ba8a3bb8dde536393b">svcBackdoor</a>(<a class="code" href="types_8h.html#ae9b1af5c037e57a98884758875d3a7c4">s32</a> (*callback)(<span class="keywordtype">void</span>));</div>
|
|
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span> <span class="comment"></span> </div>
|
|
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span> <span class="comment">/// Stop point, does nothing if the process is not attached (as opposed to 'bkpt' instructions)</span></div>
|
|
<div class="line"><a name="l01440"></a><span class="lineno"><a class="line" href="svc_8h.html#ada2d7dbdeeb091dc83e76117eeb5ae1f"> 1440</a></span> <span class="comment"></span><span class="preprocessor">#define SVC_STOP_POINT __asm__ volatile("svc 0xFF"</span>);</div>
|
|
<div class="ttc" id="arbtree_8h_html_a797a3e1c8507a7c7b4e051d3f1349154"><div class="ttname"><a href="rbtree_8h.html#a797a3e1c8507a7c7b4e051d3f1349154">__attribute__</a></div><div class="ttdeci">__attribute__((warn_unused_result)) rbtree_node_t *rbtree_insert(rbtree_t *tree</div><div class="ttdoc">Inserts a node into an rbtree.</div></div>
|
|
<div class="ttc" id="astructAttachProcessEvent_html"><div class="ttname"><a href="structAttachProcessEvent.html">AttachProcessEvent</a></div><div class="ttdoc">Event relating to the attachment of a process.</div><div class="ttdef"><b>Definition:</b> svc.h:292</div></div>
|
|
<div class="ttc" id="astructAttachProcessEvent_html_a28728766fa49b7fbe9c6f8bf3fb44bd0"><div class="ttname"><a href="structAttachProcessEvent.html#a28728766fa49b7fbe9c6f8bf3fb44bd0">AttachProcessEvent::other_flags</a></div><div class="ttdeci">u32 other_flags</div><div class="ttdoc">Always 0.</div><div class="ttdef"><b>Definition:</b> svc.h:296</div></div>
|
|
<div class="ttc" id="astructAttachProcessEvent_html_a4336428142f8dce15453026419cc0657"><div class="ttname"><a href="structAttachProcessEvent.html#a4336428142f8dce15453026419cc0657">AttachProcessEvent::program_id</a></div><div class="ttdeci">u64 program_id</div><div class="ttdoc">ID of the program.</div><div class="ttdef"><b>Definition:</b> svc.h:293</div></div>
|
|
<div class="ttc" id="astructAttachProcessEvent_html_a4882ac904877a6b49e672376eaa7f79d"><div class="ttname"><a href="structAttachProcessEvent.html#a4882ac904877a6b49e672376eaa7f79d">AttachProcessEvent::process_id</a></div><div class="ttdeci">u32 process_id</div><div class="ttdoc">ID of the process.</div><div class="ttdef"><b>Definition:</b> svc.h:295</div></div>
|
|
<div class="ttc" id="astructAttachThreadEvent_html"><div class="ttname"><a href="structAttachThreadEvent.html">AttachThreadEvent</a></div><div class="ttdoc">Event relating to the attachment of a thread.</div><div class="ttdef"><b>Definition:</b> svc.h:312</div></div>
|
|
<div class="ttc" id="astructAttachThreadEvent_html_a280e9603c876bf35eefadc65780d6cd2"><div class="ttname"><a href="structAttachThreadEvent.html#a280e9603c876bf35eefadc65780d6cd2">AttachThreadEvent::entry_point</a></div><div class="ttdeci">u32 entry_point</div><div class="ttdoc">Entry point of the thread.</div><div class="ttdef"><b>Definition:</b> svc.h:315</div></div>
|
|
<div class="ttc" id="astructAttachThreadEvent_html_a681ce5cc8e0b6c923d20f58e3b3766f2"><div class="ttname"><a href="structAttachThreadEvent.html#a681ce5cc8e0b6c923d20f58e3b3766f2">AttachThreadEvent::creator_thread_id</a></div><div class="ttdeci">u32 creator_thread_id</div><div class="ttdoc">ID of the creating thread.</div><div class="ttdef"><b>Definition:</b> svc.h:313</div></div>
|
|
<div class="ttc" id="astructAttachThreadEvent_html_a7dc9a7c3269c43c440b0ac7479af51ec"><div class="ttname"><a href="structAttachThreadEvent.html#a7dc9a7c3269c43c440b0ac7479af51ec">AttachThreadEvent::thread_local_storage</a></div><div class="ttdeci">u32 thread_local_storage</div><div class="ttdoc">Thread local storage.</div><div class="ttdef"><b>Definition:</b> svc.h:314</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html"><div class="ttname"><a href="structCodeSetHeader.html">CodeSetHeader</a></div><div class="ttdoc">Information on address space for process. All sizes are in pages (0x1000 bytes)</div><div class="ttdef"><b>Definition:</b> svc.h:498</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a0d9ae8c80b45db7139688a2c89e434dc"><div class="ttname"><a href="structCodeSetHeader.html#a0d9ae8c80b45db7139688a2c89e434dc">CodeSetHeader::text_size_total</a></div><div class="ttdeci">u32 text_size_total</div><div class="ttdoc">total pages for .text (aligned)</div><div class="ttdef"><b>Definition:</b> svc.h:508</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a1d3dd48ca8a17003409597ca517e4541"><div class="ttname"><a href="structCodeSetHeader.html#a1d3dd48ca8a17003409597ca517e4541">CodeSetHeader::text_addr</a></div><div class="ttdeci">u32 text_addr</div><div class="ttdoc">.text start address</div><div class="ttdef"><b>Definition:</b> svc.h:502</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a4039bdfc33e66bd74df3971403f2f639"><div class="ttname"><a href="structCodeSetHeader.html#a4039bdfc33e66bd74df3971403f2f639">CodeSetHeader::ro_size</a></div><div class="ttdeci">u32 ro_size</div><div class="ttdoc">.rodata number of pages</div><div class="ttdef"><b>Definition:</b> svc.h:505</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a440bd225305c32773a688b6b3c2e7e02"><div class="ttname"><a href="structCodeSetHeader.html#a440bd225305c32773a688b6b3c2e7e02">CodeSetHeader::rw_addr</a></div><div class="ttdeci">u32 rw_addr</div><div class="ttdoc">.data, .bss start address</div><div class="ttdef"><b>Definition:</b> svc.h:506</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a4ab720adde5af3b30d1feea8d11a041f"><div class="ttname"><a href="structCodeSetHeader.html#a4ab720adde5af3b30d1feea8d11a041f">CodeSetHeader::version</a></div><div class="ttdeci">u16 version</div><div class="ttdoc">Version field of codeset (unused)</div><div class="ttdef"><b>Definition:</b> svc.h:500</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a84f92f9b496955d6cf92ca14dc9292c9"><div class="ttname"><a href="structCodeSetHeader.html#a84f92f9b496955d6cf92ca14dc9292c9">CodeSetHeader::program_id</a></div><div class="ttdeci">u64 program_id</div><div class="ttdoc">Program ID.</div><div class="ttdef"><b>Definition:</b> svc.h:512</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_a900214a08ed948b0f1d2bc5f00367312"><div class="ttname"><a href="structCodeSetHeader.html#a900214a08ed948b0f1d2bc5f00367312">CodeSetHeader::padding2</a></div><div class="ttdeci">u32 padding2</div><div class="ttdoc">Padding.</div><div class="ttdef"><b>Definition:</b> svc.h:511</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_ad11cc3987916c127428009de1af1350b"><div class="ttname"><a href="structCodeSetHeader.html#ad11cc3987916c127428009de1af1350b">CodeSetHeader::ro_size_total</a></div><div class="ttdeci">u32 ro_size_total</div><div class="ttdoc">total pages for .rodata (aligned)</div><div class="ttdef"><b>Definition:</b> svc.h:509</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_adf23f727bd2a321012485ac345be20cb"><div class="ttname"><a href="structCodeSetHeader.html#adf23f727bd2a321012485ac345be20cb">CodeSetHeader::rw_size</a></div><div class="ttdeci">u32 rw_size</div><div class="ttdoc">.data number of pages</div><div class="ttdef"><b>Definition:</b> svc.h:507</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_ae1b2f240e32e5ebd551352bf9b2258d0"><div class="ttname"><a href="structCodeSetHeader.html#ae1b2f240e32e5ebd551352bf9b2258d0">CodeSetHeader::rw_size_total</a></div><div class="ttdeci">u32 rw_size_total</div><div class="ttdoc">total pages for .data, .bss (aligned)</div><div class="ttdef"><b>Definition:</b> svc.h:510</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_ae7e0b1cc7be89bfc003ce51555bdd498"><div class="ttname"><a href="structCodeSetHeader.html#ae7e0b1cc7be89bfc003ce51555bdd498">CodeSetHeader::text_size</a></div><div class="ttdeci">u32 text_size</div><div class="ttdoc">.text number of pages</div><div class="ttdef"><b>Definition:</b> svc.h:503</div></div>
|
|
<div class="ttc" id="astructCodeSetHeader_html_afa8e40f26339b8158938ff8ab8944fe4"><div class="ttname"><a href="structCodeSetHeader.html#afa8e40f26339b8158938ff8ab8944fe4">CodeSetHeader::ro_addr</a></div><div class="ttdeci">u32 ro_addr</div><div class="ttdoc">.rodata start address</div><div class="ttdef"><b>Definition:</b> svc.h:504</div></div>
|
|
<div class="ttc" id="astructCpuRegisters_html"><div class="ttname"><a href="structCpuRegisters.html">CpuRegisters</a></div><div class="ttdoc">Structure representing CPU registers.</div><div class="ttdef"><b>Definition:</b> types.h:63</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html"><div class="ttname"><a href="structDebugEventInfo.html">DebugEventInfo</a></div><div class="ttdoc">Information about a debug event.</div><div class="ttdef"><b>Definition:</b> svc.h:438</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a02ae327ec4ab7a5cbdeabc09fb24c606"><div class="ttname"><a href="structDebugEventInfo.html#a02ae327ec4ab7a5cbdeabc09fb24c606">DebugEventInfo::flags</a></div><div class="ttdeci">u32 flags</div><div class="ttdoc">Flags. Bit0 means that svcContinueDebugEvent needs to be called for this event (except for EXIT PROCE...</div><div class="ttdef"><b>Definition:</b> svc.h:441</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a11b0fce7e428241a2d2dc91ad125840e"><div class="ttname"><a href="structDebugEventInfo.html#a11b0fce7e428241a2d2dc91ad125840e">DebugEventInfo::exit_process</a></div><div class="ttdeci">ExitProcessEvent exit_process</div><div class="ttdoc">Process exit event data.</div><div class="ttdef"><b>Definition:</b> svc.h:447</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a16c73c12c8a2c200b8c149b7942785c6"><div class="ttname"><a href="structDebugEventInfo.html#a16c73c12c8a2c200b8c149b7942785c6">DebugEventInfo::syscall</a></div><div class="ttdeci">SyscallInOutEvent syscall</div><div class="ttdoc">Syscall in/out event data.</div><div class="ttdef"><b>Definition:</b> svc.h:451</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a2a1c1f9281c782c297054a5adfb6c733"><div class="ttname"><a href="structDebugEventInfo.html#a2a1c1f9281c782c297054a5adfb6c733">DebugEventInfo::scheduler</a></div><div class="ttdeci">ScheduleInOutEvent scheduler</div><div class="ttdoc">Schedule in/out event data.</div><div class="ttdef"><b>Definition:</b> svc.h:450</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a2af232f5d56183f1af895962bdd2fe18"><div class="ttname"><a href="structDebugEventInfo.html#a2af232f5d56183f1af895962bdd2fe18">DebugEventInfo::thread_id</a></div><div class="ttdeci">u32 thread_id</div><div class="ttdoc">ID of the thread.</div><div class="ttdef"><b>Definition:</b> svc.h:440</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a2df992ef5794d4bce6e1455c9339dd1e"><div class="ttname"><a href="structDebugEventInfo.html#a2df992ef5794d4bce6e1455c9339dd1e">DebugEventInfo::attach_thread</a></div><div class="ttdeci">AttachThreadEvent attach_thread</div><div class="ttdoc">Thread attachment event data.</div><div class="ttdef"><b>Definition:</b> svc.h:445</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a3fd7da7948fd7c8967596b24bdb100cd"><div class="ttname"><a href="structDebugEventInfo.html#a3fd7da7948fd7c8967596b24bdb100cd">DebugEventInfo::exit_thread</a></div><div class="ttdeci">ExitThreadEvent exit_thread</div><div class="ttdoc">Thread exit event data.</div><div class="ttdef"><b>Definition:</b> svc.h:446</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a3feb57be28c7d218ff58bfad637a36a6"><div class="ttname"><a href="structDebugEventInfo.html#a3feb57be28c7d218ff58bfad637a36a6">DebugEventInfo::attach_process</a></div><div class="ttdeci">AttachProcessEvent attach_process</div><div class="ttdoc">Process attachment event data.</div><div class="ttdef"><b>Definition:</b> svc.h:444</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_a4900654806cebc6006ada39b88a463b0"><div class="ttname"><a href="structDebugEventInfo.html#a4900654806cebc6006ada39b88a463b0">DebugEventInfo::output_string</a></div><div class="ttdeci">OutputStringEvent output_string</div><div class="ttdoc">Output string event data.</div><div class="ttdef"><b>Definition:</b> svc.h:452</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_ae0dc7236b183fa057138fcfff1fc0a92"><div class="ttname"><a href="structDebugEventInfo.html#ae0dc7236b183fa057138fcfff1fc0a92">DebugEventInfo::exception</a></div><div class="ttdeci">ExceptionEvent exception</div><div class="ttdoc">Exception event data.</div><div class="ttdef"><b>Definition:</b> svc.h:448</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_ae0e045fcf742a3daa7fb9f429aebeef9"><div class="ttname"><a href="structDebugEventInfo.html#ae0e045fcf742a3daa7fb9f429aebeef9">DebugEventInfo::type</a></div><div class="ttdeci">DebugEventType type</div><div class="ttdoc">Type of event. See DebugEventType.</div><div class="ttdef"><b>Definition:</b> svc.h:439</div></div>
|
|
<div class="ttc" id="astructDebugEventInfo_html_aecf8557cfd95b333e68028131750e829"><div class="ttname"><a href="structDebugEventInfo.html#aecf8557cfd95b333e68028131750e829">DebugEventInfo::map</a></div><div class="ttdeci">MapEvent map</div><div class="ttdoc">Map event data.</div><div class="ttdef"><b>Definition:</b> svc.h:453</div></div>
|
|
<div class="ttc" id="astructDebuggerBreakExceptionEvent_html"><div class="ttname"><a href="structDebuggerBreakExceptionEvent.html">DebuggerBreakExceptionEvent</a></div><div class="ttdoc">Event relating to svcBreakDebugProcess.</div><div class="ttdef"><b>Definition:</b> svc.h:379</div></div>
|
|
<div class="ttc" id="astructDmaConfig_html"><div class="ttname"><a href="structDmaConfig.html">DmaConfig</a></div><div class="ttdoc">Configuration stucture for svcStartInterProcessDma.</div><div class="ttdef"><b>Definition:</b> svc.h:183</div></div>
|
|
<div class="ttc" id="astructDmaConfig_html_a11cd1631cce0b01cce18f5c2474018b5"><div class="ttname"><a href="structDmaConfig.html#a11cd1631cce0b01cce18f5c2474018b5">DmaConfig::channelId</a></div><div class="ttdeci">s8 channelId</div><div class="ttdoc">Channel ID (Arm11: 0-7, Arm9: 0-1). Use -1 to auto-assign to a free channel (Arm11: 3-7,...</div><div class="ttdef"><b>Definition:</b> svc.h:184</div></div>
|
|
<div class="ttc" id="astructDmaConfig_html_a4edea2c1db04623bf527cfb37e907f8d"><div class="ttname"><a href="structDmaConfig.html#a4edea2c1db04623bf527cfb37e907f8d">DmaConfig::endianSwapSize</a></div><div class="ttdeci">s8 endianSwapSize</div><div class="ttdoc">Endian swap size (can be 0).</div><div class="ttdef"><b>Definition:</b> svc.h:185</div></div>
|
|
<div class="ttc" id="astructDmaConfig_html_a96bff82895b0a4c15a68aa40066e7f5d"><div class="ttname"><a href="structDmaConfig.html#a96bff82895b0a4c15a68aa40066e7f5d">DmaConfig::srcCfg</a></div><div class="ttdeci">DmaDeviceConfig srcCfg</div><div class="ttdoc">Source device configuration, read if DMACFG_SRC_IS_DEVICE and/or DMACFG_USE_SRC_CONFIG are set.</div><div class="ttdef"><b>Definition:</b> svc.h:188</div></div>
|
|
<div class="ttc" id="astructDmaConfig_html_ae754da825365b8c20ca15d5a22f66a40"><div class="ttname"><a href="structDmaConfig.html#ae754da825365b8c20ca15d5a22f66a40">DmaConfig::flags</a></div><div class="ttdeci">u8 flags</div><div class="ttdoc">DMACFG_* flags.</div><div class="ttdef"><b>Definition:</b> svc.h:186</div></div>
|
|
<div class="ttc" id="astructDmaConfig_html_af3ffc0bd8ef24a50cdb68aeb24f88819"><div class="ttname"><a href="structDmaConfig.html#af3ffc0bd8ef24a50cdb68aeb24f88819">DmaConfig::dstCfg</a></div><div class="ttdeci">DmaDeviceConfig dstCfg</div><div class="ttdoc">Destination device configuration, read if DMACFG_SRC_IS_DEVICE and/or DMACFG_USE_SRC_CONFIG are set.</div><div class="ttdef"><b>Definition:</b> svc.h:189</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html"><div class="ttname"><a href="structDmaDeviceConfig.html">DmaDeviceConfig</a></div><div class="ttdoc">Device configuration structure, part of DmaConfig.</div><div class="ttdef"><b>Definition:</b> svc.h:173</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html_a0425b1d1ea007d4a3346894f0f36dc3a"><div class="ttname"><a href="structDmaDeviceConfig.html#a0425b1d1ea007d4a3346894f0f36dc3a">DmaDeviceConfig::burstStride</a></div><div class="ttdeci">s16 burstStride</div><div class="ttdoc">Burst loop stride, can be <= 0.</div><div class="ttdef"><b>Definition:</b> svc.h:178</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html_a0d63473bec3ec7ebff879ccfc6b26d4d"><div class="ttname"><a href="structDmaDeviceConfig.html#a0d63473bec3ec7ebff879ccfc6b26d4d">DmaDeviceConfig::deviceId</a></div><div class="ttdeci">s8 deviceId</div><div class="ttdoc">DMA device ID.</div><div class="ttdef"><b>Definition:</b> svc.h:174</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html_a310cb52828836478313a8c01e7b529ed"><div class="ttname"><a href="structDmaDeviceConfig.html#a310cb52828836478313a8c01e7b529ed">DmaDeviceConfig::transferStride</a></div><div class="ttdeci">s16 transferStride</div><div class="ttdoc">"Transfer" loop stride, can be <= 0.</div><div class="ttdef"><b>Definition:</b> svc.h:179</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html_a4cf37a47e55e2fb89bbf52a86c12df7a"><div class="ttname"><a href="structDmaDeviceConfig.html#a4cf37a47e55e2fb89bbf52a86c12df7a">DmaDeviceConfig::burstSize</a></div><div class="ttdeci">s16 burstSize</div><div class="ttdoc">Number of bytes transferred in a burst loop. Can be 0 (in which case the max allowed alignment is use...</div><div class="ttdef"><b>Definition:</b> svc.h:176</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html_a629d5de5271384b5e0b7947a97be66c4"><div class="ttname"><a href="structDmaDeviceConfig.html#a629d5de5271384b5e0b7947a97be66c4">DmaDeviceConfig::transferSize</a></div><div class="ttdeci">s16 transferSize</div><div class="ttdoc">Number of bytes transferred in a "transfer" loop (made of burst loops).</div><div class="ttdef"><b>Definition:</b> svc.h:177</div></div>
|
|
<div class="ttc" id="astructDmaDeviceConfig_html_ac8b8d2e083b741b2fdf1ea2ce1587cac"><div class="ttname"><a href="structDmaDeviceConfig.html#ac8b8d2e083b741b2fdf1ea2ce1587cac">DmaDeviceConfig::allowedAlignments</a></div><div class="ttdeci">s8 allowedAlignments</div><div class="ttdoc">Mask of allowed access alignments (8, 4, 2, 1).</div><div class="ttdef"><b>Definition:</b> svc.h:175</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html"><div class="ttname"><a href="structExceptionEvent.html">ExceptionEvent</a></div><div class="ttdoc">Event relating to exceptions.</div><div class="ttdef"><b>Definition:</b> svc.h:384</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html_a2a16b663ed61d882f78694856ff856e0"><div class="ttname"><a href="structExceptionEvent.html#a2a16b663ed61d882f78694856ff856e0">ExceptionEvent::type</a></div><div class="ttdeci">ExceptionEventType type</div><div class="ttdoc">Type of event. See ExceptionEventType.</div><div class="ttdef"><b>Definition:</b> svc.h:385</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html_a331606aa5792056b999bc99756cbd598"><div class="ttname"><a href="structExceptionEvent.html#a331606aa5792056b999bc99756cbd598">ExceptionEvent::user_break</a></div><div class="ttdeci">UserBreakExceptionEvent user_break</div><div class="ttdoc">User break exception event data.</div><div class="ttdef"><b>Definition:</b> svc.h:390</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html_a5e351285983b30cc394025b929431cec"><div class="ttname"><a href="structExceptionEvent.html#a5e351285983b30cc394025b929431cec">ExceptionEvent::address</a></div><div class="ttdeci">u32 address</div><div class="ttdoc">Address of the exception.</div><div class="ttdef"><b>Definition:</b> svc.h:386</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html_a6f67b148ec6fcb5064b09e5e5c70c357"><div class="ttname"><a href="structExceptionEvent.html#a6f67b148ec6fcb5064b09e5e5c70c357">ExceptionEvent::fault</a></div><div class="ttdeci">FaultExceptionEvent fault</div><div class="ttdoc">Fault exception event data.</div><div class="ttdef"><b>Definition:</b> svc.h:388</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html_a8f87fbd05a1735dedfaea55c528e2855"><div class="ttname"><a href="structExceptionEvent.html#a8f87fbd05a1735dedfaea55c528e2855">ExceptionEvent::stop_point</a></div><div class="ttdeci">StopPointExceptionEvent stop_point</div><div class="ttdoc">Stop point exception event data.</div><div class="ttdef"><b>Definition:</b> svc.h:389</div></div>
|
|
<div class="ttc" id="astructExceptionEvent_html_acb328082531198ee15b3fb1be53c47a8"><div class="ttname"><a href="structExceptionEvent.html#acb328082531198ee15b3fb1be53c47a8">ExceptionEvent::debugger_break</a></div><div class="ttdeci">DebuggerBreakExceptionEvent debugger_break</div><div class="ttdoc">Debugger break exception event data.</div><div class="ttdef"><b>Definition:</b> svc.h:391</div></div>
|
|
<div class="ttc" id="astructExitProcessEvent_html"><div class="ttname"><a href="structExitProcessEvent.html">ExitProcessEvent</a></div><div class="ttdoc">Event relating to the exiting of a process.</div><div class="ttdef"><b>Definition:</b> svc.h:307</div></div>
|
|
<div class="ttc" id="astructExitProcessEvent_html_a5185f7932899486f78aafefc6d52744a"><div class="ttname"><a href="structExitProcessEvent.html#a5185f7932899486f78aafefc6d52744a">ExitProcessEvent::reason</a></div><div class="ttdeci">ExitProcessEventReason reason</div><div class="ttdoc">Reason for exiting. See ExitProcessEventReason.</div><div class="ttdef"><b>Definition:</b> svc.h:308</div></div>
|
|
<div class="ttc" id="astructExitThreadEvent_html"><div class="ttname"><a href="structExitThreadEvent.html">ExitThreadEvent</a></div><div class="ttdoc">Event relating to the exiting of a thread.</div><div class="ttdef"><b>Definition:</b> svc.h:327</div></div>
|
|
<div class="ttc" id="astructExitThreadEvent_html_a8cc8a89ab9d43445b52a9c702baa7d43"><div class="ttname"><a href="structExitThreadEvent.html#a8cc8a89ab9d43445b52a9c702baa7d43">ExitThreadEvent::reason</a></div><div class="ttdeci">ExitThreadEventReason reason</div><div class="ttdoc">Reason for exiting. See ExitThreadEventReason.</div><div class="ttdef"><b>Definition:</b> svc.h:328</div></div>
|
|
<div class="ttc" id="astructFaultExceptionEvent_html"><div class="ttname"><a href="structFaultExceptionEvent.html">FaultExceptionEvent</a></div><div class="ttdoc">Event relating to fault exceptions (CPU exceptions other than stop points and undefined syscalls).</div><div class="ttdef"><b>Definition:</b> svc.h:354</div></div>
|
|
<div class="ttc" id="astructFaultExceptionEvent_html_a98ddfc2eacfa9ae2a0374a80f19f77a3"><div class="ttname"><a href="structFaultExceptionEvent.html#a98ddfc2eacfa9ae2a0374a80f19f77a3">FaultExceptionEvent::fault_information</a></div><div class="ttdeci">u32 fault_information</div><div class="ttdoc">FAR (for DATA ABORT / UNALIGNED DATA ACCESS), attempted syscall or 0.</div><div class="ttdef"><b>Definition:</b> svc.h:355</div></div>
|
|
<div class="ttc" id="astructFpuRegisters_html"><div class="ttname"><a href="structFpuRegisters.html">FpuRegisters</a></div><div class="ttdoc">Structure representing FPU registers.</div><div class="ttdef"><b>Definition:</b> types.h:72</div></div>
|
|
<div class="ttc" id="astructMapEvent_html"><div class="ttname"><a href="structMapEvent.html">MapEvent</a></div><div class="ttdoc">Event relating to the mapping of memory.</div><div class="ttdef"><b>Definition:</b> svc.h:413</div></div>
|
|
<div class="ttc" id="astructMapEvent_html_a25ebd56741175c344531039dd8850333"><div class="ttname"><a href="structMapEvent.html#a25ebd56741175c344531039dd8850333">MapEvent::memstate</a></div><div class="ttdeci">MemState memstate</div><div class="ttdoc">Memory state. See MemState.</div><div class="ttdef"><b>Definition:</b> svc.h:417</div></div>
|
|
<div class="ttc" id="astructMapEvent_html_aaecb80deb0ad7177c80263c4b6bd83cd"><div class="ttname"><a href="structMapEvent.html#aaecb80deb0ad7177c80263c4b6bd83cd">MapEvent::mapped_addr</a></div><div class="ttdeci">u32 mapped_addr</div><div class="ttdoc">Mapped address.</div><div class="ttdef"><b>Definition:</b> svc.h:414</div></div>
|
|
<div class="ttc" id="astructMapEvent_html_acfa673343ba42dc41f5e9b23aa5645f8"><div class="ttname"><a href="structMapEvent.html#acfa673343ba42dc41f5e9b23aa5645f8">MapEvent::memperm</a></div><div class="ttdeci">MemPerm memperm</div><div class="ttdoc">Memory permissions. See MemPerm.</div><div class="ttdef"><b>Definition:</b> svc.h:416</div></div>
|
|
<div class="ttc" id="astructMapEvent_html_ae034793f645417e52c2892851c54cb80"><div class="ttname"><a href="structMapEvent.html#ae034793f645417e52c2892851c54cb80">MapEvent::mapped_size</a></div><div class="ttdeci">u32 mapped_size</div><div class="ttdoc">Mapped size.</div><div class="ttdef"><b>Definition:</b> svc.h:415</div></div>
|
|
<div class="ttc" id="astructMemInfo_html"><div class="ttname"><a href="structMemInfo.html">MemInfo</a></div><div class="ttdoc">Memory information.</div><div class="ttdef"><b>Definition:</b> svc.h:75</div></div>
|
|
<div class="ttc" id="astructMemInfo_html_a09e7aca5fd9ef2548ac6ada176c05ae4"><div class="ttname"><a href="structMemInfo.html#a09e7aca5fd9ef2548ac6ada176c05ae4">MemInfo::base_addr</a></div><div class="ttdeci">u32 base_addr</div><div class="ttdoc">Base address.</div><div class="ttdef"><b>Definition:</b> svc.h:76</div></div>
|
|
<div class="ttc" id="astructMemInfo_html_a4473b7b20d510475032d0eb242d74165"><div class="ttname"><a href="structMemInfo.html#a4473b7b20d510475032d0eb242d74165">MemInfo::state</a></div><div class="ttdeci">u32 state</div><div class="ttdoc">Memory state. See MemState.</div><div class="ttdef"><b>Definition:</b> svc.h:79</div></div>
|
|
<div class="ttc" id="astructMemInfo_html_a605f0850163837f0aef887a7413c7e0b"><div class="ttname"><a href="structMemInfo.html#a605f0850163837f0aef887a7413c7e0b">MemInfo::perm</a></div><div class="ttdeci">u32 perm</div><div class="ttdoc">Memory permissions. See MemPerm.</div><div class="ttdef"><b>Definition:</b> svc.h:78</div></div>
|
|
<div class="ttc" id="astructMemInfo_html_aafaee8ba3c6411806c7e319bec27b473"><div class="ttname"><a href="structMemInfo.html#aafaee8ba3c6411806c7e319bec27b473">MemInfo::size</a></div><div class="ttdeci">u32 size</div><div class="ttdoc">Size.</div><div class="ttdef"><b>Definition:</b> svc.h:77</div></div>
|
|
<div class="ttc" id="astructOutputStringEvent_html"><div class="ttname"><a href="structOutputStringEvent.html">OutputStringEvent</a></div><div class="ttdoc">Event relating to debug output.</div><div class="ttdef"><b>Definition:</b> svc.h:407</div></div>
|
|
<div class="ttc" id="astructOutputStringEvent_html_a08288e242fa7958862b1ba7dd720a220"><div class="ttname"><a href="structOutputStringEvent.html#a08288e242fa7958862b1ba7dd720a220">OutputStringEvent::string_size</a></div><div class="ttdeci">u32 string_size</div><div class="ttdoc">Size of the outputted string.</div><div class="ttdef"><b>Definition:</b> svc.h:409</div></div>
|
|
<div class="ttc" id="astructOutputStringEvent_html_a4d4f08f49e570009b2d6d829fa3eea09"><div class="ttname"><a href="structOutputStringEvent.html#a4d4f08f49e570009b2d6d829fa3eea09">OutputStringEvent::string_addr</a></div><div class="ttdeci">u32 string_addr</div><div class="ttdoc">Address of the outputted string.</div><div class="ttdef"><b>Definition:</b> svc.h:408</div></div>
|
|
<div class="ttc" id="astructPageInfo_html"><div class="ttname"><a href="structPageInfo.html">PageInfo</a></div><div class="ttdoc">Memory page information.</div><div class="ttdef"><b>Definition:</b> svc.h:83</div></div>
|
|
<div class="ttc" id="astructPageInfo_html_a3dc8d09f59ee6c9562713186b8b037aa"><div class="ttname"><a href="structPageInfo.html#a3dc8d09f59ee6c9562713186b8b037aa">PageInfo::flags</a></div><div class="ttdeci">u32 flags</div><div class="ttdoc">Page flags.</div><div class="ttdef"><b>Definition:</b> svc.h:84</div></div>
|
|
<div class="ttc" id="astructScheduleInOutEvent_html"><div class="ttname"><a href="structScheduleInOutEvent.html">ScheduleInOutEvent</a></div><div class="ttdoc">Event relating to the scheduler.</div><div class="ttdef"><b>Definition:</b> svc.h:396</div></div>
|
|
<div class="ttc" id="astructScheduleInOutEvent_html_acfd73003ea1e8cfbd0ef6999807e8cc4"><div class="ttname"><a href="structScheduleInOutEvent.html#acfd73003ea1e8cfbd0ef6999807e8cc4">ScheduleInOutEvent::clock_tick</a></div><div class="ttdeci">u64 clock_tick</div><div class="ttdoc">Clock tick that the event occurred.</div><div class="ttdef"><b>Definition:</b> svc.h:397</div></div>
|
|
<div class="ttc" id="astructStartupInfo_html"><div class="ttname"><a href="structStartupInfo.html">StartupInfo</a></div><div class="ttdoc">Information for the main thread of a process.</div><div class="ttdef"><b>Definition:</b> svc.h:517</div></div>
|
|
<div class="ttc" id="astructStartupInfo_html_a094fc5eaf0b55de2d55a66a9db30047f"><div class="ttname"><a href="structStartupInfo.html#a094fc5eaf0b55de2d55a66a9db30047f">StartupInfo::stack_size</a></div><div class="ttdeci">u32 stack_size</div><div class="ttdoc">Size of the stack of the main thread.</div><div class="ttdef"><b>Definition:</b> svc.h:519</div></div>
|
|
<div class="ttc" id="astructStartupInfo_html_a4624952a107b46e2187d42631c6207f3"><div class="ttname"><a href="structStartupInfo.html#a4624952a107b46e2187d42631c6207f3">StartupInfo::envp</a></div><div class="ttdeci">u16 * envp</div><div class="ttdoc">Unused on retail kernel.</div><div class="ttdef"><b>Definition:</b> svc.h:522</div></div>
|
|
<div class="ttc" id="astructStartupInfo_html_a502094405b3debe7af2ee809f8055ed0"><div class="ttname"><a href="structStartupInfo.html#a502094405b3debe7af2ee809f8055ed0">StartupInfo::priority</a></div><div class="ttdeci">int priority</div><div class="ttdoc">Priority of the main thread.</div><div class="ttdef"><b>Definition:</b> svc.h:518</div></div>
|
|
<div class="ttc" id="astructStartupInfo_html_a56c8a7d9f72ac6cb8a5d1908ddfc3a7e"><div class="ttname"><a href="structStartupInfo.html#a56c8a7d9f72ac6cb8a5d1908ddfc3a7e">StartupInfo::argc</a></div><div class="ttdeci">int argc</div><div class="ttdoc">Unused on retail kernel.</div><div class="ttdef"><b>Definition:</b> svc.h:520</div></div>
|
|
<div class="ttc" id="astructStartupInfo_html_a698216d4a27d8abf674d4368266f8e2a"><div class="ttname"><a href="structStartupInfo.html#a698216d4a27d8abf674d4368266f8e2a">StartupInfo::argv</a></div><div class="ttdeci">u16 * argv</div><div class="ttdoc">Unused on retail kernel.</div><div class="ttdef"><b>Definition:</b> svc.h:521</div></div>
|
|
<div class="ttc" id="astructStopPointExceptionEvent_html"><div class="ttname"><a href="structStopPointExceptionEvent.html">StopPointExceptionEvent</a></div><div class="ttdoc">Event relating to stop points.</div><div class="ttdef"><b>Definition:</b> svc.h:366</div></div>
|
|
<div class="ttc" id="astructStopPointExceptionEvent_html_a3caffea18e63415cc84d5909bb6fe5c9"><div class="ttname"><a href="structStopPointExceptionEvent.html#a3caffea18e63415cc84d5909bb6fe5c9">StopPointExceptionEvent::type</a></div><div class="ttdeci">StopPointType type</div><div class="ttdoc">Stop point type, see StopPointType.</div><div class="ttdef"><b>Definition:</b> svc.h:367</div></div>
|
|
<div class="ttc" id="astructStopPointExceptionEvent_html_a6dbbc526a72b163971660b29da44a6ae"><div class="ttname"><a href="structStopPointExceptionEvent.html#a6dbbc526a72b163971660b29da44a6ae">StopPointExceptionEvent::fault_information</a></div><div class="ttdeci">u32 fault_information</div><div class="ttdoc">FAR for Watchpoints, otherwise 0.</div><div class="ttdef"><b>Definition:</b> svc.h:368</div></div>
|
|
<div class="ttc" id="astructSyscallInOutEvent_html"><div class="ttname"><a href="structSyscallInOutEvent.html">SyscallInOutEvent</a></div><div class="ttdoc">Event relating to syscalls.</div><div class="ttdef"><b>Definition:</b> svc.h:401</div></div>
|
|
<div class="ttc" id="astructSyscallInOutEvent_html_a2fe80c83c8faeb0b3cc8eae2d539aa52"><div class="ttname"><a href="structSyscallInOutEvent.html#a2fe80c83c8faeb0b3cc8eae2d539aa52">SyscallInOutEvent::syscall</a></div><div class="ttdeci">u32 syscall</div><div class="ttdoc">Syscall sent/received.</div><div class="ttdef"><b>Definition:</b> svc.h:403</div></div>
|
|
<div class="ttc" id="astructSyscallInOutEvent_html_a71792a3533ce5823e524d710c2404074"><div class="ttname"><a href="structSyscallInOutEvent.html#a71792a3533ce5823e524d710c2404074">SyscallInOutEvent::clock_tick</a></div><div class="ttdeci">u64 clock_tick</div><div class="ttdoc">Clock tick that the event occurred.</div><div class="ttdef"><b>Definition:</b> svc.h:402</div></div>
|
|
<div class="ttc" id="astructThreadContext_html"><div class="ttname"><a href="structThreadContext.html">ThreadContext</a></div><div class="ttdef"><b>Definition:</b> svc.h:466</div></div>
|
|
<div class="ttc" id="astructThreadContext_html_a3fb7711d1ccc7d132ae23ee3e4e88e43"><div class="ttname"><a href="structThreadContext.html#a3fb7711d1ccc7d132ae23ee3e4e88e43">ThreadContext::cpu_registers</a></div><div class="ttdeci">CpuRegisters cpu_registers</div><div class="ttdoc">CPU registers.</div><div class="ttdef"><b>Definition:</b> svc.h:467</div></div>
|
|
<div class="ttc" id="astructThreadContext_html_ac13e8300988c11a1d4811058ea0888b4"><div class="ttname"><a href="structThreadContext.html#ac13e8300988c11a1d4811058ea0888b4">ThreadContext::fpu_registers</a></div><div class="ttdeci">FpuRegisters fpu_registers</div><div class="ttdoc">FPU registers.</div><div class="ttdef"><b>Definition:</b> svc.h:468</div></div>
|
|
<div class="ttc" id="astructUserBreakExceptionEvent_html"><div class="ttname"><a href="structUserBreakExceptionEvent.html">UserBreakExceptionEvent</a></div><div class="ttdoc">Event relating to svcBreak.</div><div class="ttdef"><b>Definition:</b> svc.h:372</div></div>
|
|
<div class="ttc" id="astructUserBreakExceptionEvent_html_a8e565441fc0eab7bf2cabdd4a61178f1"><div class="ttname"><a href="structUserBreakExceptionEvent.html#a8e565441fc0eab7bf2cabdd4a61178f1">UserBreakExceptionEvent::croInfo</a></div><div class="ttdeci">u32 croInfo</div><div class="ttdoc">For LOAD_RO and UNLOAD_RO.</div><div class="ttdef"><b>Definition:</b> svc.h:374</div></div>
|
|
<div class="ttc" id="astructUserBreakExceptionEvent_html_ab017dae7d7ccf3913ab5d6a7acaa7a23"><div class="ttname"><a href="structUserBreakExceptionEvent.html#ab017dae7d7ccf3913ab5d6a7acaa7a23">UserBreakExceptionEvent::type</a></div><div class="ttdeci">UserBreakType type</div><div class="ttdoc">User break type, see UserBreakType.</div><div class="ttdef"><b>Definition:</b> svc.h:373</div></div>
|
|
<div class="ttc" id="astructUserBreakExceptionEvent_html_accfb27c5c97c666cc536ab14aec42511"><div class="ttname"><a href="structUserBreakExceptionEvent.html#accfb27c5c97c666cc536ab14aec42511">UserBreakExceptionEvent::croInfoSize</a></div><div class="ttdeci">u32 croInfoSize</div><div class="ttdoc">For LOAD_RO and UNLOAD_RO.</div><div class="ttdef"><b>Definition:</b> svc.h:375</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a00f5b708129ef172b59197a775b533ec"><div class="ttname"><a href="svc_8h.html#a00f5b708129ef172b59197a775b533ec">ArbitrationType</a></div><div class="ttdeci">ArbitrationType</div><div class="ttdoc">Arbitration modes.</div><div class="ttdef"><b>Definition:</b> svc.h:88</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a00f5b708129ef172b59197a775b533eca503fb7656e3429195054786b8779cbd6"><div class="ttname"><a href="svc_8h.html#a00f5b708129ef172b59197a775b533eca503fb7656e3429195054786b8779cbd6">ARBITRATION_SIGNAL</a></div><div class="ttdeci">@ ARBITRATION_SIGNAL</div><div class="ttdoc">Signal #value threads for wake-up.</div><div class="ttdef"><b>Definition:</b> svc.h:89</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a00f5b708129ef172b59197a775b533eca551c32ebca2151dc1fed5450d458433f"><div class="ttname"><a href="svc_8h.html#a00f5b708129ef172b59197a775b533eca551c32ebca2151dc1fed5450d458433f">ARBITRATION_DECREMENT_AND_WAIT_IF_LESS_THAN</a></div><div class="ttdeci">@ ARBITRATION_DECREMENT_AND_WAIT_IF_LESS_THAN</div><div class="ttdoc">If the memory at the address is strictly lower than #value, then decrement it and wait for signal.</div><div class="ttdef"><b>Definition:</b> svc.h:91</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a00f5b708129ef172b59197a775b533eca9416744f50ce5abc375c88692271c751"><div class="ttname"><a href="svc_8h.html#a00f5b708129ef172b59197a775b533eca9416744f50ce5abc375c88692271c751">ARBITRATION_WAIT_IF_LESS_THAN</a></div><div class="ttdeci">@ ARBITRATION_WAIT_IF_LESS_THAN</div><div class="ttdoc">If the memory at the address is strictly lower than #value, then wait for signal.</div><div class="ttdef"><b>Definition:</b> svc.h:90</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a00f5b708129ef172b59197a775b533ecab503e618303a55b029bda8eef14776e9"><div class="ttname"><a href="svc_8h.html#a00f5b708129ef172b59197a775b533ecab503e618303a55b029bda8eef14776e9">ARBITRATION_DECREMENT_AND_WAIT_IF_LESS_THAN_TIMEOUT</a></div><div class="ttdeci">@ ARBITRATION_DECREMENT_AND_WAIT_IF_LESS_THAN_TIMEOUT</div><div class="ttdoc">If the memory at the address is strictly lower than #value, then decrement it and wait for signal or ...</div><div class="ttdef"><b>Definition:</b> svc.h:93</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a00f5b708129ef172b59197a775b533ecafe6754c50fcd095096605d9587188970"><div class="ttname"><a href="svc_8h.html#a00f5b708129ef172b59197a775b533ecafe6754c50fcd095096605d9587188970">ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT</a></div><div class="ttdeci">@ ARBITRATION_WAIT_IF_LESS_THAN_TIMEOUT</div><div class="ttdoc">If the memory at the address is strictly lower than #value, then wait for signal or timeout.</div><div class="ttdef"><b>Definition:</b> svc.h:92</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a01228468ee9651a6480002cb381fe55e"><div class="ttname"><a href="svc_8h.html#a01228468ee9651a6480002cb381fe55e">svcTerminateProcess</a></div><div class="ttdeci">Result svcTerminateProcess(Handle process)</div><div class="ttdoc">Terminates a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a021efa7b65d0263f55278c04c4329c5c"><div class="ttname"><a href="svc_8h.html#a021efa7b65d0263f55278c04c4329c5c">svcCreateTimer</a></div><div class="ttdeci">Result svcCreateTimer(Handle *timer, ResetType reset_type)</div><div class="ttdoc">Creates a timer.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a0348d3f35f25e455d7497687224b49a5"><div class="ttname"><a href="svc_8h.html#a0348d3f35f25e455d7497687224b49a5">svcOpenProcess</a></div><div class="ttdeci">Result svcOpenProcess(Handle *process, u32 processId)</div><div class="ttdoc">Gets the handle of a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a04bb64a060cd46b28be86fa30e33bb94"><div class="ttname"><a href="svc_8h.html#a04bb64a060cd46b28be86fa30e33bb94">svcMapMemoryBlock</a></div><div class="ttdeci">Result svcMapMemoryBlock(Handle memblock, u32 addr, MemPerm my_perm, MemPerm other_perm)</div><div class="ttdoc">Maps a block of shared memory.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a09d2da81f400266901235bd6cc1c0943"><div class="ttname"><a href="svc_8h.html#a09d2da81f400266901235bd6cc1c0943">svcGetProcessInfo</a></div><div class="ttdeci">Result svcGetProcessInfo(s64 *out, Handle process, u32 type)</div><div class="ttdoc">Gets information about a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a09f47e8301d61442fc76727da0b0554c"><div class="ttname"><a href="svc_8h.html#a09f47e8301d61442fc76727da0b0554c">svcCloseHandle</a></div><div class="ttdeci">Result svcCloseHandle(Handle handle)</div><div class="ttdoc">Closes a handle.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a112aee8cca0c18b91f98d39db55c4807"><div class="ttname"><a href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807">ThreadInfoType</a></div><div class="ttdeci">ThreadInfoType</div><div class="ttdoc">Types of thread info.</div><div class="ttdef"><b>Definition:</b> svc.h:112</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a112aee8cca0c18b91f98d39db55c4807a5e0a7120c0d6495acc852bc43a3ea851"><div class="ttname"><a href="svc_8h.html#a112aee8cca0c18b91f98d39db55c4807a5e0a7120c0d6495acc852bc43a3ea851">THREADINFO_TYPE_UNKNOWN</a></div><div class="ttdeci">@ THREADINFO_TYPE_UNKNOWN</div><div class="ttdoc">Unknown.</div><div class="ttdef"><b>Definition:</b> svc.h:113</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a141d92c97fb3f2565c657dd721e1e30c"><div class="ttname"><a href="svc_8h.html#a141d92c97fb3f2565c657dd721e1e30c">svcWriteProcessMemory</a></div><div class="ttdeci">Result svcWriteProcessMemory(Handle debug, const void *buffer, u32 addr, u32 size)</div><div class="ttdoc">Writes to a debugged process's memory.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a15341b7a1a479ea489a31a145479f5b8"><div class="ttname"><a href="svc_8h.html#a15341b7a1a479ea489a31a145479f5b8">svcWaitSynchronizationN</a></div><div class="ttdeci">Result svcWaitSynchronizationN(s32 *out, const Handle *handles, s32 handles_num, bool wait_all, s64 nanoseconds)</div><div class="ttdoc">Waits for synchronization on multiple handles.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a182a314d366e0dd25d5f7786fad9a1be"><div class="ttname"><a href="svc_8h.html#a182a314d366e0dd25d5f7786fad9a1be">svcGetResourceLimitLimitValues</a></div><div class="ttdeci">Result svcGetResourceLimitLimitValues(s64 *values, Handle resourceLimit, ResourceLimitType *names, s32 nameCount)</div><div class="ttdoc">Gets the value limits of a resource limit set.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a198fe17448c4cb82eb5ebe4eb3a893d8"><div class="ttname"><a href="svc_8h.html#a198fe17448c4cb82eb5ebe4eb3a893d8">svcGetResourceLimitCurrentValues</a></div><div class="ttdeci">Result svcGetResourceLimitCurrentValues(s64 *values, Handle resourceLimit, ResourceLimitType *names, s32 nameCount)</div><div class="ttdoc">Gets the values of a resource limit set.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742">ThreadContextControlFlags</a></div><div class="ttdeci">ThreadContextControlFlags</div><div class="ttdoc">Control flags for svcGetDebugThreadContext and svcSetDebugThreadContext.</div><div class="ttdef"><b>Definition:</b> svc.h:472</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742a03849f12becc677a30246a307c3b9670"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a03849f12becc677a30246a307c3b9670">THREADCONTEXT_CONTROL_ALL</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_ALL</div><div class="ttdoc">Control all of the above.</div><div class="ttdef"><b>Definition:</b> svc.h:481</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742a2d5de33762b476d2926b7cfb7f3be89b"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a2d5de33762b476d2926b7cfb7f3be89b">THREADCONTEXT_CONTROL_FPU_GPRS</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_FPU_GPRS</div><div class="ttdoc">Control d0-d15 (or s0-s31).</div><div class="ttdef"><b>Definition:</b> svc.h:475</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742a313d7fc004fc7a953e10b08fccbd21ab"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742a313d7fc004fc7a953e10b08fccbd21ab">THREADCONTEXT_CONTROL_CPU_REGS</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_CPU_REGS</div><div class="ttdoc">Control r0-r12, sp, lr, pc, cpsr.</div><div class="ttdef"><b>Definition:</b> svc.h:478</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742aa8407752003ccddf5fc32867e67037cf"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742aa8407752003ccddf5fc32867e67037cf">THREADCONTEXT_CONTROL_CPU_SPRS</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_CPU_SPRS</div><div class="ttdoc">Control sp, lr, pc, cpsr.</div><div class="ttdef"><b>Definition:</b> svc.h:474</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742ae09b0f61029f9fdf0b4ea02c41fa13e5"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae09b0f61029f9fdf0b4ea02c41fa13e5">THREADCONTEXT_CONTROL_CPU_GPRS</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_CPU_GPRS</div><div class="ttdoc">Control r0-r12.</div><div class="ttdef"><b>Definition:</b> svc.h:473</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742ae68cca5d6bd39c7225566ae87c541f8e"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae68cca5d6bd39c7225566ae87c541f8e">THREADCONTEXT_CONTROL_FPU_SPRS</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_FPU_SPRS</div><div class="ttdoc">Control fpscr, fpexc.</div><div class="ttdef"><b>Definition:</b> svc.h:476</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a19ce0516fc6c9dc090735a831ab7a742ae77e6ad949115f805c2a35ba85cce3f9"><div class="ttname"><a href="svc_8h.html#a19ce0516fc6c9dc090735a831ab7a742ae77e6ad949115f805c2a35ba85cce3f9">THREADCONTEXT_CONTROL_FPU_REGS</a></div><div class="ttdeci">@ THREADCONTEXT_CONTROL_FPU_REGS</div><div class="ttdoc">Control d0-d15, fpscr, fpexc.</div><div class="ttdef"><b>Definition:</b> svc.h:479</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1deb19f13c53015347aa5c8785fe612e"><div class="ttname"><a href="svc_8h.html#a1deb19f13c53015347aa5c8785fe612e">svcOutputDebugString</a></div><div class="ttdeci">Result svcOutputDebugString(const char *str, s32 length)</div><div class="ttdoc">Outputs a debug string.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1e796b6048ab85155160599ce9496142"><div class="ttname"><a href="svc_8h.html#a1e796b6048ab85155160599ce9496142">svcUnmapMemoryBlock</a></div><div class="ttdeci">Result svcUnmapMemoryBlock(Handle memblock, u32 addr)</div><div class="ttdoc">Unmaps a block of shared memory.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1f4318daa12693ba8a3bb8dde536393b"><div class="ttname"><a href="svc_8h.html#a1f4318daa12693ba8a3bb8dde536393b">svcBackdoor</a></div><div class="ttdeci">Result svcBackdoor(s32(*callback)(void))</div><div class="ttdoc">Executes a function in supervisor mode.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fb595bace1a8798b73437b7b4ee5212"><div class="ttname"><a href="svc_8h.html#a1fb595bace1a8798b73437b7b4ee5212">svcDebugActiveProcess</a></div><div class="ttdeci">Result svcDebugActiveProcess(Handle *debug, u32 processId)</div><div class="ttdoc">Creates a debug handle for an active process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fff1d6b844aedbb1babaa23e0292a12"><div class="ttname"><a href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12">UserBreakType</a></div><div class="ttdeci">UserBreakType</div><div class="ttdoc">Reasons for a user break.</div><div class="ttdef"><b>Definition:</b> svc.h:332</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fff1d6b844aedbb1babaa23e0292a12a218f8d14ce85ff686531587f41271b91"><div class="ttname"><a href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a218f8d14ce85ff686531587f41271b91">USERBREAK_LOAD_RO</a></div><div class="ttdeci">@ USERBREAK_LOAD_RO</div><div class="ttdoc">Load RO.</div><div class="ttdef"><b>Definition:</b> svc.h:336</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fff1d6b844aedbb1babaa23e0292a12a75d115aed8adc334b86762004550130e"><div class="ttname"><a href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a75d115aed8adc334b86762004550130e">USERBREAK_PANIC</a></div><div class="ttdeci">@ USERBREAK_PANIC</div><div class="ttdoc">Panic.</div><div class="ttdef"><b>Definition:</b> svc.h:333</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fff1d6b844aedbb1babaa23e0292a12a7989abf688e2db27610f1cdf30ddf553"><div class="ttname"><a href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12a7989abf688e2db27610f1cdf30ddf553">USERBREAK_USER</a></div><div class="ttdeci">@ USERBREAK_USER</div><div class="ttdoc">User related.</div><div class="ttdef"><b>Definition:</b> svc.h:335</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fff1d6b844aedbb1babaa23e0292a12ab82dbfb966f5522c2e5bfbdf1949d5a9"><div class="ttname"><a href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12ab82dbfb966f5522c2e5bfbdf1949d5a9">USERBREAK_UNLOAD_RO</a></div><div class="ttdeci">@ USERBREAK_UNLOAD_RO</div><div class="ttdoc">Unload RO.</div><div class="ttdef"><b>Definition:</b> svc.h:337</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a1fff1d6b844aedbb1babaa23e0292a12ab8652e6cba764ad8b8b205981fa10a2d"><div class="ttname"><a href="svc_8h.html#a1fff1d6b844aedbb1babaa23e0292a12ab8652e6cba764ad8b8b205981fa10a2d">USERBREAK_ASSERT</a></div><div class="ttdeci">@ USERBREAK_ASSERT</div><div class="ttdoc">Assertion failed.</div><div class="ttdef"><b>Definition:</b> svc.h:334</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a20ea2b0b1a60242d167664de882a4562"><div class="ttname"><a href="svc_8h.html#a20ea2b0b1a60242d167664de882a4562">svcRun</a></div><div class="ttdeci">Result svcRun(Handle process, const StartupInfo *info)</div><div class="ttdoc">Launches the main thread of the process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a29c27d98f1ce96951af4057503b6641e"><div class="ttname"><a href="svc_8h.html#a29c27d98f1ce96951af4057503b6641e">svcReleaseMutex</a></div><div class="ttdeci">Result svcReleaseMutex(Handle handle)</div><div class="ttdoc">Releases a mutex.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2ddb0d1da1ee4e65a5d2408da6239921"><div class="ttname"><a href="svc_8h.html#a2ddb0d1da1ee4e65a5d2408da6239921">svcExitThread</a></div><div class="ttdeci">void svcExitThread(void) __attribute__((noreturn))</div><div class="ttdoc">Exits the current thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2e0c230a1bb2d5400edc08bd7c687099"><div class="ttname"><a href="svc_8h.html#a2e0c230a1bb2d5400edc08bd7c687099">getThreadCommandBuffer</a></div><div class="ttdeci">static u32 * getThreadCommandBuffer(void)</div><div class="ttdoc">Gets the thread command buffer.</div><div class="ttdef"><b>Definition:</b> svc.h:542</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2e62624dcd35d5795b6f1c99933c576f"><div class="ttname"><a href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576f">ExitProcessEventReason</a></div><div class="ttdeci">ExitProcessEventReason</div><div class="ttdoc">Reasons for an exit process event.</div><div class="ttdef"><b>Definition:</b> svc.h:300</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2e62624dcd35d5795b6f1c99933c576fa16ce26136f8806a56dc5419954a53010"><div class="ttname"><a href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576fa16ce26136f8806a56dc5419954a53010">EXITPROCESS_EVENT_DEBUG_TERMINATE</a></div><div class="ttdeci">@ EXITPROCESS_EVENT_DEBUG_TERMINATE</div><div class="ttdoc">Process has been terminated by svcTerminateDebugProcess.</div><div class="ttdef"><b>Definition:</b> svc.h:303</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2e62624dcd35d5795b6f1c99933c576faccb26b6a0c89e63f867c8882b65f7d57"><div class="ttname"><a href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576faccb26b6a0c89e63f867c8882b65f7d57">EXITPROCESS_EVENT_EXIT</a></div><div class="ttdeci">@ EXITPROCESS_EVENT_EXIT</div><div class="ttdoc">Process exited either normally or due to an uncaught exception.</div><div class="ttdef"><b>Definition:</b> svc.h:301</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2e62624dcd35d5795b6f1c99933c576faefc8659c329768612032ddd127a1eade"><div class="ttname"><a href="svc_8h.html#a2e62624dcd35d5795b6f1c99933c576faefc8659c329768612032ddd127a1eade">EXITPROCESS_EVENT_TERMINATE</a></div><div class="ttdeci">@ EXITPROCESS_EVENT_TERMINATE</div><div class="ttdoc">Process has been terminated by svcTerminateProcess.</div><div class="ttdef"><b>Definition:</b> svc.h:302</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2f8db0e990f91fa29d392986a3050a17"><div class="ttname"><a href="svc_8h.html#a2f8db0e990f91fa29d392986a3050a17">svcBindInterrupt</a></div><div class="ttdeci">Result svcBindInterrupt(u32 interruptId, Handle eventOrSemaphore, s32 priority, bool isManualClear)</div><div class="ttdoc">Binds an event or semaphore handle to an ARM11 interrupt.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a2fea2f7321bb5bb8fa64d4064ae07e39"><div class="ttname"><a href="svc_8h.html#a2fea2f7321bb5bb8fa64d4064ae07e39">svcDuplicateHandle</a></div><div class="ttdeci">Result svcDuplicateHandle(Handle *out, Handle original)</div><div class="ttdoc">Duplicates a handle.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3063414d90f09e17398bdb7cd6955b71"><div class="ttname"><a href="svc_8h.html#a3063414d90f09e17398bdb7cd6955b71">svcConnectToPort</a></div><div class="ttdeci">Result svcConnectToPort(volatile Handle *out, const char *portName)</div><div class="ttdoc">Connects to a port.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084">PerfCounterOperation</a></div><div class="ttdeci">PerfCounterOperation</div><div class="ttdoc">Operations for svcControlPerformanceCounter.</div><div class="ttdef"><b>Definition:</b> svc.h:198</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084a0f31b33961d1fb6f10b0f26aae56ea51"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a0f31b33961d1fb6f10b0f26aae56ea51">PERFCOUNTEROP_SET_EVENT</a></div><div class="ttdeci">@ PERFCOUNTEROP_SET_EVENT</div><div class="ttdoc">Set the event ID associated to a paritcular counter.</div><div class="ttdef"><b>Definition:</b> svc.h:206</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084a459599575a462e0e95444335d06e15e9"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a459599575a462e0e95444335d06e15e9">PERFCOUNTEROP_ENABLE</a></div><div class="ttdeci">@ PERFCOUNTEROP_ENABLE</div><div class="ttdoc">Enable and lock perfmon. functionality.</div><div class="ttdef"><b>Definition:</b> svc.h:199</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084a5a97513b29876bee7af1770af3066122"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a5a97513b29876bee7af1770af3066122">PERFCOUNTEROP_SET_VIRTUAL_COUNTER_ENABLED</a></div><div class="ttdeci">@ PERFCOUNTEROP_SET_VIRTUAL_COUNTER_ENABLED</div><div class="ttdoc">(Dis)allow the kernel to track counter overflows and to use 64-bit counter values.</div><div class="ttdef"><b>Definition:</b> svc.h:207</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084a8bf947d1af73e26fef6ad2682bc2ba9a"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a8bf947d1af73e26fef6ad2682bc2ba9a">PERFCOUNTEROP_SET_VALUE</a></div><div class="ttdeci">@ PERFCOUNTEROP_SET_VALUE</div><div class="ttdoc">Set the value of a counter register.</div><div class="ttdef"><b>Definition:</b> svc.h:202</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084a8c6f75508fbc8f1b9024a9d456dc191d"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084a8c6f75508fbc8f1b9024a9d456dc191d">PERFCOUNTEROP_GET_EVENT</a></div><div class="ttdeci">@ PERFCOUNTEROP_GET_EVENT</div><div class="ttdoc">Get the event ID associated to a particular counter.</div><div class="ttdef"><b>Definition:</b> svc.h:205</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084aa200abb919c37b196f1f3fd474b52658"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084aa200abb919c37b196f1f3fd474b52658">PERFCOUNTEROP_GET_OVERFLOW_FLAGS</a></div><div class="ttdeci">@ PERFCOUNTEROP_GET_OVERFLOW_FLAGS</div><div class="ttdoc">Get the overflow flags for all CP15 and SCU counters.</div><div class="ttdef"><b>Definition:</b> svc.h:203</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084ac4ed24fde8e2c67d1c6893e78ccbe73e"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084ac4ed24fde8e2c67d1c6893e78ccbe73e">PERFCOUNTEROP_DISABLE</a></div><div class="ttdeci">@ PERFCOUNTEROP_DISABLE</div><div class="ttdoc">Disable and forcibly unlock perfmon. functionality.</div><div class="ttdef"><b>Definition:</b> svc.h:200</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084ad74be58d4d109f73497a2b7187b6de75"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084ad74be58d4d109f73497a2b7187b6de75">PERFCOUNTEROP_GET_VALUE</a></div><div class="ttdeci">@ PERFCOUNTEROP_GET_VALUE</div><div class="ttdoc">Get the value of a counter register.</div><div class="ttdef"><b>Definition:</b> svc.h:201</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a32f1a799d8ed99f3c52be42141396084af56848a9adfc24df081e54d97b313912"><div class="ttname"><a href="svc_8h.html#a32f1a799d8ed99f3c52be42141396084af56848a9adfc24df081e54d97b313912">PERFCOUNTEROP_RESET</a></div><div class="ttdeci">@ PERFCOUNTEROP_RESET</div><div class="ttdoc">Reset the value and/or overflow flags of selected counters.</div><div class="ttdef"><b>Definition:</b> svc.h:204</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a336600ef3fd751a23440c8f3bd331904"><div class="ttname"><a href="svc_8h.html#a336600ef3fd751a23440c8f3bd331904">svcGetProcessorID</a></div><div class="ttdeci">s32 svcGetProcessorID(void)</div><div class="ttdoc">Returns the ID of the processor the current thread is running on.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3642f5b3403a0e731358301d622a9a1e"><div class="ttname"><a href="svc_8h.html#a3642f5b3403a0e731358301d622a9a1e">svcClearTimer</a></div><div class="ttdeci">Result svcClearTimer(Handle timer)</div><div class="ttdoc">Clears a timer.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a39e82e4602ee78d3b7bc3ad95c3798cb"><div class="ttname"><a href="svc_8h.html#a39e82e4602ee78d3b7bc3ad95c3798cb">svcCreateSession</a></div><div class="ttdeci">Result svcCreateSession(Handle *serverSession, Handle *clientSession)</div><div class="ttdoc">Creates a linked pair of session endpoints.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3a31bff3a0f1d8ff768911e38f70c5d7"><div class="ttname"><a href="svc_8h.html#a3a31bff3a0f1d8ff768911e38f70c5d7">svcGetSystemTick</a></div><div class="ttdeci">u64 svcGetSystemTick(void)</div><div class="ttdoc">Gets the current system tick.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3b0c49c519df71cc261f32f8bbede7e2"><div class="ttname"><a href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2">DebugThreadParameter</a></div><div class="ttdeci">DebugThreadParameter</div><div class="ttdoc">Thread parameter field for svcGetDebugThreadParameter.</div><div class="ttdef"><b>Definition:</b> svc.h:485</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3b0c49c519df71cc261f32f8bbede7e2a2e0c36bd04e34f464fdc099160c2a07d"><div class="ttname"><a href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a2e0c36bd04e34f464fdc099160c2a07d">DBGTHREAD_PARAMETER_SCHEDULING_MASK_LOW</a></div><div class="ttdeci">@ DBGTHREAD_PARAMETER_SCHEDULING_MASK_LOW</div><div class="ttdoc">Low scheduling mask.</div><div class="ttdef"><b>Definition:</b> svc.h:487</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3b0c49c519df71cc261f32f8bbede7e2a38a33d4f8a4da4fce35bafdeaa43deb7"><div class="ttname"><a href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a38a33d4f8a4da4fce35bafdeaa43deb7">DBGTHREAD_PARAMETER_CPU_IDEAL</a></div><div class="ttdeci">@ DBGTHREAD_PARAMETER_CPU_IDEAL</div><div class="ttdoc">Ideal processor.</div><div class="ttdef"><b>Definition:</b> svc.h:488</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3b0c49c519df71cc261f32f8bbede7e2a4edc8a76257320fcebd0176a9a05bf6d"><div class="ttname"><a href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a4edc8a76257320fcebd0176a9a05bf6d">DBGTHREAD_PARAMETER_CPU_CREATOR</a></div><div class="ttdeci">@ DBGTHREAD_PARAMETER_CPU_CREATOR</div><div class="ttdoc">Processor that created the threod.</div><div class="ttdef"><b>Definition:</b> svc.h:489</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3b0c49c519df71cc261f32f8bbede7e2a97e8406ac167715321789f422a4d16c2"><div class="ttname"><a href="svc_8h.html#a3b0c49c519df71cc261f32f8bbede7e2a97e8406ac167715321789f422a4d16c2">DBGTHREAD_PARAMETER_PRIORITY</a></div><div class="ttdeci">@ DBGTHREAD_PARAMETER_PRIORITY</div><div class="ttdoc">Thread priority.</div><div class="ttdef"><b>Definition:</b> svc.h:486</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3e2f6333bfcd2a2953b5bde79122e913"><div class="ttname"><a href="svc_8h.html#a3e2f6333bfcd2a2953b5bde79122e913">svcSendSyncRequest</a></div><div class="ttdeci">Result svcSendSyncRequest(Handle session)</div><div class="ttdoc">Sends a synchronized request to a session handle.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3ef70e1f36a42f1d8e351d7bf1c9a2ff"><div class="ttname"><a href="svc_8h.html#a3ef70e1f36a42f1d8e351d7bf1c9a2ff">svcGetThreadList</a></div><div class="ttdeci">Result svcGetThreadList(s32 *threadCount, u32 *threadIds, s32 threadIdMaxCount, Handle process)</div><div class="ttdoc">Gets a list of the threads of a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3f23b2d589b488efb59603000c5f7969"><div class="ttname"><a href="svc_8h.html#a3f23b2d589b488efb59603000c5f7969">getThreadLocalStorage</a></div><div class="ttdeci">static void * getThreadLocalStorage(void)</div><div class="ttdoc">Gets the thread local storage buffer.</div><div class="ttdef"><b>Definition:</b> svc.h:531</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a3f62a8f1822c6a78fab2e2cb03c46893"><div class="ttname"><a href="svc_8h.html#a3f62a8f1822c6a78fab2e2cb03c46893">svcCreateThread</a></div><div class="ttdeci">Result svcCreateThread(Handle *thread, ThreadFunc entrypoint, u32 arg, u32 *stack_top, s32 thread_priority, s32 processor_id)</div><div class="ttdoc">Creates a new thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a41645e97dc3a37acd97b0f0f13be76e9"><div class="ttname"><a href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9">StopPointType</a></div><div class="ttdeci">StopPointType</div><div class="ttdoc">Stop point types.</div><div class="ttdef"><b>Definition:</b> svc.h:359</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a41645e97dc3a37acd97b0f0f13be76e9ab0418158fb52e5f649f8695a747620b9"><div class="ttname"><a href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9ab0418158fb52e5f649f8695a747620b9">STOPPOINT_BREAKPOINT</a></div><div class="ttdeci">@ STOPPOINT_BREAKPOINT</div><div class="ttdoc">Breakpoint.</div><div class="ttdef"><b>Definition:</b> svc.h:361</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a41645e97dc3a37acd97b0f0f13be76e9ae012399e05b534e04b300fdc210debdd"><div class="ttname"><a href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9ae012399e05b534e04b300fdc210debdd">STOPPOINT_WATCHPOINT</a></div><div class="ttdeci">@ STOPPOINT_WATCHPOINT</div><div class="ttdoc">Watchpoint.</div><div class="ttdef"><b>Definition:</b> svc.h:362</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a41645e97dc3a37acd97b0f0f13be76e9af2bda711cb2e87898ee01c75aa6eb461"><div class="ttname"><a href="svc_8h.html#a41645e97dc3a37acd97b0f0f13be76e9af2bda711cb2e87898ee01c75aa6eb461">STOPPOINT_SVC_FF</a></div><div class="ttdeci">@ STOPPOINT_SVC_FF</div><div class="ttdoc">See SVC_STOP_POINT.</div><div class="ttdef"><b>Definition:</b> svc.h:360</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a45d96608f9a397c81e8a254d8948f5c5"><div class="ttname"><a href="svc_8h.html#a45d96608f9a397c81e8a254d8948f5c5">svcGetDebugThreadContext</a></div><div class="ttdeci">Result svcGetDebugThreadContext(ThreadContext *context, Handle debug, u32 threadId, ThreadContextControlFlags controlFlags)</div><div class="ttdoc">Fetches the saved registers of a thread, either inactive or awaiting svcContinueDebugEvent,...</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a46395fb5e1c8f9b2311cfa260de0c2e9"><div class="ttname"><a href="svc_8h.html#a46395fb5e1c8f9b2311cfa260de0c2e9">svcGetProcessId</a></div><div class="ttdeci">Result svcGetProcessId(u32 *out, Handle handle)</div><div class="ttdoc">Gets the ID of a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a4895a8c4e616aecd47eb260e262b0d3c"><div class="ttname"><a href="svc_8h.html#a4895a8c4e616aecd47eb260e262b0d3c">svcGetProcessList</a></div><div class="ttdeci">Result svcGetProcessList(s32 *processCount, u32 *processIds, s32 processIdMaxCount)</div><div class="ttdoc">Gets a list of running processes.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a48a9bb9e4b5959bebca2f32cdd3e598a"><div class="ttname"><a href="svc_8h.html#a48a9bb9e4b5959bebca2f32cdd3e598a">svcGetHandleInfo</a></div><div class="ttdeci">Result svcGetHandleInfo(s64 *out, Handle handle, u32 param)</div><div class="ttdoc">Gets a handle info.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a4d259199317256bae13fe0600e52a7d3"><div class="ttname"><a href="svc_8h.html#a4d259199317256bae13fe0600e52a7d3">svcGetThreadAffinityMask</a></div><div class="ttdeci">Result svcGetThreadAffinityMask(u8 *affinitymask, Handle thread, s32 processorcount)</div><div class="ttdoc">Gets a thread's affinity mask.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a4eabaa7c25d17e79026434564d484c82"><div class="ttname"><a href="svc_8h.html#a4eabaa7c25d17e79026434564d484c82">svcWaitSynchronization</a></div><div class="ttdeci">Result svcWaitSynchronization(Handle handle, s64 nanoseconds)</div><div class="ttdoc">Waits for synchronization on a handle.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a4f6ec3a0e2d3bd501c6a95e234aaabdc"><div class="ttname"><a href="svc_8h.html#a4f6ec3a0e2d3bd501c6a95e234aaabdc">svcArbitrateAddress</a></div><div class="ttdeci">Result svcArbitrateAddress(Handle arbiter, u32 addr, ArbitrationType type, s32 value, s64 timeout_ns)</div><div class="ttdoc">Arbitrate an address, can be used for synchronization.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a5151be03b9f3bfcf310ee2f659f5cff1"><div class="ttname"><a href="svc_8h.html#a5151be03b9f3bfcf310ee2f659f5cff1">svcExitProcess</a></div><div class="ttdeci">void svcExitProcess(void) __attribute__((noreturn))</div><div class="ttdoc">Exits the current process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a562f0131519b367335c376b046d1c1aa"><div class="ttname"><a href="svc_8h.html#a562f0131519b367335c376b046d1c1aa">svcCreateSessionToPort</a></div><div class="ttdeci">Result svcCreateSessionToPort(Handle *clientSession, Handle clientPort)</div><div class="ttdoc">Connects to a port via a handle.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a581cf88669bf459816e5ce5899f1e378"><div class="ttname"><a href="svc_8h.html#a581cf88669bf459816e5ce5899f1e378">svcGetSystemInfo</a></div><div class="ttdeci">Result svcGetSystemInfo(s64 *out, u32 type, s32 param)</div><div class="ttdoc">Gets the system info.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a5a7ca823accc7d580ae25fe385322bbb"><div class="ttname"><a href="svc_8h.html#a5a7ca823accc7d580ae25fe385322bbb">svcSetWifiEnabled</a></div><div class="ttdeci">Result svcSetWifiEnabled(bool enabled)</div><div class="ttdoc">Enables or disables Wi-Fi.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a5b138754e8e2aa48326c4271eae7d6ba"><div class="ttname"><a href="svc_8h.html#a5b138754e8e2aa48326c4271eae7d6ba">svcControlPerformanceCounter</a></div><div class="ttdeci">Result svcControlPerformanceCounter(u64 *out, PerfCounterOperation op, u32 param1, u64 param2)</div><div class="ttdoc">Controls performance monitoring on the CP15 interface and the SCU.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a5ce27301f176acfa306a39c9801f7b33"><div class="ttname"><a href="svc_8h.html#a5ce27301f176acfa306a39c9801f7b33">svcCreateMemoryBlock</a></div><div class="ttdeci">Result svcCreateMemoryBlock(Handle *memblock, u32 addr, u32 size, MemPerm my_perm, MemPerm other_perm)</div><div class="ttdoc">Creates a block of shared memory.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a5eceb4a371c0293bf2ae5c4576cbe1de"><div class="ttname"><a href="svc_8h.html#a5eceb4a371c0293bf2ae5c4576cbe1de">svcGetThreadInfo</a></div><div class="ttdeci">Result svcGetThreadInfo(s64 *out, Handle thread, ThreadInfoType type)</div><div class="ttdoc">Checks if a thread handle is valid.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a609c04e1cde0d5bd6a71acbed3ad7e54"><div class="ttname"><a href="svc_8h.html#a609c04e1cde0d5bd6a71acbed3ad7e54">svcGetThreadPriority</a></div><div class="ttdeci">Result svcGetThreadPriority(s32 *out, Handle handle)</div><div class="ttdoc">Retrieves the priority of a thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a6604864f5e881a7ec7ad67737b936db2"><div class="ttname"><a href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2">PerfCounterEvent</a></div><div class="ttdeci">PerfCounterEvent</div><div class="ttdoc">Performance counter event IDs (CP15 or SCU).</div><div class="ttdef"><b>Definition:</b> svc.h:239</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a6604864f5e881a7ec7ad67737b936db2a413cb88f85b5e31e3cfd63f85317d364"><div class="ttname"><a href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2a413cb88f85b5e31e3cfd63f85317d364">PERFCOUNTEREVT_CORE_CYCLE_COUNT</a></div><div class="ttdeci">@ PERFCOUNTEREVT_CORE_CYCLE_COUNT</div><div class="ttdoc">One cycle elapsed.</div><div class="ttdef"><b>Definition:</b> svc.h:263</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a6604864f5e881a7ec7ad67737b936db2a666c6779ce705be7fe8bbb9996531577"><div class="ttname"><a href="svc_8h.html#a6604864f5e881a7ec7ad67737b936db2a666c6779ce705be7fe8bbb9996531577">PERFCOUNTEREVT_CORE_CYCLE_COUNT_64</a></div><div class="ttdeci">@ PERFCOUNTEREVT_CORE_CYCLE_COUNT_64</div><div class="ttdoc">64 cycles elapsed.</div><div class="ttdef"><b>Definition:</b> svc.h:264</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a6875852b77e9295f0acefa95a721a102"><div class="ttname"><a href="svc_8h.html#a6875852b77e9295f0acefa95a721a102">svcCreateSemaphore</a></div><div class="ttdeci">Result svcCreateSemaphore(Handle *semaphore, s32 initial_count, s32 max_count)</div><div class="ttdoc">Creates a semaphore.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a68c4f6fd3748a647851724b2c7f6e6f3"><div class="ttname"><a href="svc_8h.html#a68c4f6fd3748a647851724b2c7f6e6f3">svcBreakRO</a></div><div class="ttdeci">void svcBreakRO(UserBreakType breakReason, const void *croInfo, u32 croInfoSize) __asm__("svcBreak")</div><div class="ttdoc">Breaks execution (LOAD_RO and UNLOAD_RO).</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a6afb068c84788f20213bb66c55d7a343"><div class="ttname"><a href="svc_8h.html#a6afb068c84788f20213bb66c55d7a343">svcContinueDebugEvent</a></div><div class="ttdeci">Result svcContinueDebugEvent(Handle debug, DebugFlags flags)</div><div class="ttdoc">Continues the current debug event of a debugged process (not necessarily the same as svcGetProcessDeb...</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a6f7ab132d9cc85cdff043a05fdd1fe34"><div class="ttname"><a href="svc_8h.html#a6f7ab132d9cc85cdff043a05fdd1fe34">svcSetResourceLimitValues</a></div><div class="ttdeci">Result svcSetResourceLimitValues(Handle resourceLimit, const ResourceLimitType *names, const s64 *values, s32 nameCount)</div><div class="ttdoc">Sets the value limits of a resource limit set.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a701306ea4d920baf3243f0fe7139fb9f"><div class="ttname"><a href="svc_8h.html#a701306ea4d920baf3243f0fe7139fb9f">svcQueryDebugProcessMemory</a></div><div class="ttdeci">Result svcQueryDebugProcessMemory(MemInfo *info, PageInfo *out, Handle debug, u32 addr)</div><div class="ttdoc">Queries memory information of a debugged process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a71559e1c5662a82ac2b83bd6c5c8234c"><div class="ttname"><a href="svc_8h.html#a71559e1c5662a82ac2b83bd6c5c8234c">svcBreak</a></div><div class="ttdeci">void svcBreak(UserBreakType breakReason)</div><div class="ttdoc">Breaks execution.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a71a716eb986a0a9ef0e56ab0ffd2122e"><div class="ttname"><a href="svc_8h.html#a71a716eb986a0a9ef0e56ab0ffd2122e">svcSetProcessResourceLimits</a></div><div class="ttdeci">Result svcSetProcessResourceLimits(Handle process, Handle resourceLimit)</div><div class="ttdoc">Sets the resource limit set of a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a73d737b48868304a3e144abc6f73ec8f"><div class="ttname"><a href="svc_8h.html#a73d737b48868304a3e144abc6f73ec8f">svcSetGpuProt</a></div><div class="ttdeci">Result svcSetGpuProt(bool useApplicationRestriction)</div><div class="ttdoc">Sets the GPU protection register to restrict the range of the GPU DMA.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0f"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0f">MemOp</a></div><div class="ttdeci">MemOp</div><div class="ttdoc">svcControlMemory operation flags</div><div class="ttdef"><b>Definition:</b> svc.h:20</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa0277897bdb24ec61ebe721b6e2213393"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa0277897bdb24ec61ebe721b6e2213393">MEMOP_FREE</a></div><div class="ttdeci">@ MEMOP_FREE</div><div class="ttdoc">Memory un-mapping.</div><div class="ttdef"><b>Definition:</b> svc.h:21</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa09aacdab03ccb3fe52723ee25e105329"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa09aacdab03ccb3fe52723ee25e105329">MEMOP_OP_MASK</a></div><div class="ttdeci">@ MEMOP_OP_MASK</div><div class="ttdoc">Operation bitmask.</div><div class="ttdef"><b>Definition:</b> svc.h:32</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa19d01531a81ab0476a6977ea5c4f8eb1"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa19d01531a81ab0476a6977ea5c4f8eb1">MEMOP_PROT</a></div><div class="ttdeci">@ MEMOP_PROT</div><div class="ttdoc">Change protection.</div><div class="ttdef"><b>Definition:</b> svc.h:26</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa204affee42a49e0da0c743a910e9ebed"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa204affee42a49e0da0c743a910e9ebed">MEMOP_ALLOC</a></div><div class="ttdeci">@ MEMOP_ALLOC</div><div class="ttdoc">Memory mapping.</div><div class="ttdef"><b>Definition:</b> svc.h:23</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa38d1aa9f77dfede9f2bb50aa7c39ffd7"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa38d1aa9f77dfede9f2bb50aa7c39ffd7">MEMOP_LINEAR_FLAG</a></div><div class="ttdeci">@ MEMOP_LINEAR_FLAG</div><div class="ttdoc">Flag for linear memory operations.</div><div class="ttdef"><b>Definition:</b> svc.h:34</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa3be4e93c776697aeedd82f51b28f21ed"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa3be4e93c776697aeedd82f51b28f21ed">MEMOP_REGION_BASE</a></div><div class="ttdeci">@ MEMOP_REGION_BASE</div><div class="ttdoc">BASE memory region.</div><div class="ttdef"><b>Definition:</b> svc.h:30</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fa58a22e2d8cd7250a43819805757e4413"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fa58a22e2d8cd7250a43819805757e4413">MEMOP_REGION_MASK</a></div><div class="ttdeci">@ MEMOP_REGION_MASK</div><div class="ttdoc">Region bitmask.</div><div class="ttdef"><b>Definition:</b> svc.h:33</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0faa08bd2ac9bdfc6a958ef71a6d4615f88"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0faa08bd2ac9bdfc6a958ef71a6d4615f88">MEMOP_RESERVE</a></div><div class="ttdeci">@ MEMOP_RESERVE</div><div class="ttdoc">Reserve memory.</div><div class="ttdef"><b>Definition:</b> svc.h:22</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fac0a3b46ec2c6ead43fb1de9772729595"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fac0a3b46ec2c6ead43fb1de9772729595">MEMOP_ALLOC_LINEAR</a></div><div class="ttdeci">@ MEMOP_ALLOC_LINEAR</div><div class="ttdoc">Allocates linear memory.</div><div class="ttdef"><b>Definition:</b> svc.h:36</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fad3419008fb719308be57a96f7dbc1a07"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fad3419008fb719308be57a96f7dbc1a07">MEMOP_MAP</a></div><div class="ttdeci">@ MEMOP_MAP</div><div class="ttdoc">Mirror mapping.</div><div class="ttdef"><b>Definition:</b> svc.h:24</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fad4d969ef37e24230f5f66b1700634763"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fad4d969ef37e24230f5f66b1700634763">MEMOP_REGION_APP</a></div><div class="ttdeci">@ MEMOP_REGION_APP</div><div class="ttdoc">APPLICATION memory region.</div><div class="ttdef"><b>Definition:</b> svc.h:28</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0fae9985e0572e18a1f8334ab8887bfa50d"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0fae9985e0572e18a1f8334ab8887bfa50d">MEMOP_REGION_SYSTEM</a></div><div class="ttdeci">@ MEMOP_REGION_SYSTEM</div><div class="ttdoc">SYSTEM memory region.</div><div class="ttdef"><b>Definition:</b> svc.h:29</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a754721841a571940880975d2191f3e0faebba281d2e3a26717e803b22cb4f6951"><div class="ttname"><a href="svc_8h.html#a754721841a571940880975d2191f3e0faebba281d2e3a26717e803b22cb4f6951">MEMOP_UNMAP</a></div><div class="ttdeci">@ MEMOP_UNMAP</div><div class="ttdoc">Mirror unmapping.</div><div class="ttdef"><b>Definition:</b> svc.h:25</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7859c0a3efa8b1c360f5c2376baf051eae57d3f8a94c001e6d7d3bcf05cdd91f0"><div class="ttname"><a href="svc_8h.html#a7859c0a3efa8b1c360f5c2376baf051eae57d3f8a94c001e6d7d3bcf05cdd91f0">DMARST_UNLOCK</a></div><div class="ttdeci">@ DMARST_UNLOCK</div><div class="ttdoc">Unlock the channel after transfer.</div><div class="ttdef"><b>Definition:</b> svc.h:161</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7859c0a3efa8b1c360f5c2376baf051eafba2c004446b8bcc6c178cc2ebcc9320"><div class="ttname"><a href="svc_8h.html#a7859c0a3efa8b1c360f5c2376baf051eafba2c004446b8bcc6c178cc2ebcc9320">DMARST_RESUME_DEVICE</a></div><div class="ttdeci">@ DMARST_RESUME_DEVICE</div><div class="ttdoc">Replace DMAFLUSHP instructions by NOP (they may not be regenerated even if this flag is not set).</div><div class="ttdef"><b>Definition:</b> svc.h:162</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7c00a1577efa9e79fdfd5d301132467b"><div class="ttname"><a href="svc_8h.html#a7c00a1577efa9e79fdfd5d301132467b">svcSetThreadAffinityMask</a></div><div class="ttdeci">Result svcSetThreadAffinityMask(Handle thread, const u8 *affinitymask, s32 processorcount)</div><div class="ttdoc">Sets a thread's affinity mask.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7d5848ed471a047cd3298615c4c49f6c"><div class="ttname"><a href="svc_8h.html#a7d5848ed471a047cd3298615c4c49f6c">svcReadProcessMemory</a></div><div class="ttdeci">Result svcReadProcessMemory(void *buffer, Handle debug, u32 addr, u32 size)</div><div class="ttdoc">Reads from a debugged process's memory.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7e7666520d212d0b7de8c703b4c3b00e"><div class="ttname"><a href="svc_8h.html#a7e7666520d212d0b7de8c703b4c3b00e">svcSetProcessIdealProcessor</a></div><div class="ttdeci">Result svcSetProcessIdealProcessor(Handle process, s32 processorid)</div><div class="ttdoc">Sets a process's ideal processor.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7ecb788e88b2b9990c72c01b73f290b2"><div class="ttname"><a href="svc_8h.html#a7ecb788e88b2b9990c72c01b73f290b2">svcCreatePort</a></div><div class="ttdeci">Result svcCreatePort(Handle *portServer, Handle *portClient, const char *name, s32 maxSessions)</div><div class="ttdoc">Creates a port.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a7f804146f815c96c98e7712bce3993bf"><div class="ttname"><a href="svc_8h.html#a7f804146f815c96c98e7712bce3993bf">getThreadStaticBuffers</a></div><div class="ttdeci">static u32 * getThreadStaticBuffers(void)</div><div class="ttdoc">Gets the thread static buffer.</div><div class="ttdef"><b>Definition:</b> svc.h:551</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8046e9b23b1b209a4e278cb1c19c7a5a"><div class="ttname"><a href="svc_8h.html#a8046e9b23b1b209a4e278cb1c19c7a5a">svcControlMemory</a></div><div class="ttdeci">Result svcControlMemory(u32 *addr_out, u32 addr0, u32 addr1, u32 size, MemOp op, MemPerm perm)</div><div class="ttdoc">Controls memory mapping.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8114b51a10d4515b71ecf5e0b2416a96"><div class="ttname"><a href="svc_8h.html#a8114b51a10d4515b71ecf5e0b2416a96">svcMapProcessMemory</a></div><div class="ttdeci">Result svcMapProcessMemory(Handle process, u32 destAddress, u32 size)</div><div class="ttdoc">Maps a block of process memory, starting from address 0x00100000.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a83538f74b19d2e9f22e2630c77d54a10"><div class="ttname"><a href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10">DebugFlags</a></div><div class="ttdeci">DebugFlags</div><div class="ttdoc">Debug flags for an attached process, set by svcContinueDebugEvent.</div><div class="ttdef"><b>Definition:</b> svc.h:458</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a83538f74b19d2e9f22e2630c77d54a10a0870552809a38121a3f9f8bfac2a7ab5"><div class="ttname"><a href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a0870552809a38121a3f9f8bfac2a7ab5">DBG_SIGNAL_SCHEDULE_EVENTS</a></div><div class="ttdeci">@ DBG_SIGNAL_SCHEDULE_EVENTS</div><div class="ttdoc">Signal schedule in/out events. See ScheduleInOutEvent.</div><div class="ttdef"><b>Definition:</b> svc.h:461</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a83538f74b19d2e9f22e2630c77d54a10a4e4de28dc35f3748319a155b3a5e561c"><div class="ttname"><a href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a4e4de28dc35f3748319a155b3a5e561c">DBG_SIGNAL_MAP_EVENTS</a></div><div class="ttdeci">@ DBG_SIGNAL_MAP_EVENTS</div><div class="ttdoc">Signal map events. See MapEvent.</div><div class="ttdef"><b>Definition:</b> svc.h:463</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a83538f74b19d2e9f22e2630c77d54a10a54c6d15e4546cac787bfe3fd7511d7c9"><div class="ttname"><a href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a54c6d15e4546cac787bfe3fd7511d7c9">DBG_SIGNAL_SYSCALL_EVENTS</a></div><div class="ttdeci">@ DBG_SIGNAL_SYSCALL_EVENTS</div><div class="ttdoc">Signal syscall in/out events. See SyscallInOutEvent.</div><div class="ttdef"><b>Definition:</b> svc.h:462</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a83538f74b19d2e9f22e2630c77d54a10a684e18527dea1cd28cc7cd31a1b72c6d"><div class="ttname"><a href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a684e18527dea1cd28cc7cd31a1b72c6d">DBG_SIGNAL_FAULT_EXCEPTION_EVENTS</a></div><div class="ttdeci">@ DBG_SIGNAL_FAULT_EXCEPTION_EVENTS</div><div class="ttdoc">Signal fault exception events. See FaultExceptionEvent.</div><div class="ttdef"><b>Definition:</b> svc.h:460</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a83538f74b19d2e9f22e2630c77d54a10a829566e4baa8029d6ae3ff75ab847966"><div class="ttname"><a href="svc_8h.html#a83538f74b19d2e9f22e2630c77d54a10a829566e4baa8029d6ae3ff75ab847966">DBG_INHIBIT_USER_CPU_EXCEPTION_HANDLERS</a></div><div class="ttdeci">@ DBG_INHIBIT_USER_CPU_EXCEPTION_HANDLERS</div><div class="ttdoc">Inhibit user-defined CPU exception handlers (including watchpoints and breakpoints,...</div><div class="ttdef"><b>Definition:</b> svc.h:459</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a88c4f0553f97b85737a730c7e63aff6f"><div class="ttname"><a href="svc_8h.html#a88c4f0553f97b85737a730c7e63aff6f">svcCancelTimer</a></div><div class="ttdeci">Result svcCancelTimer(Handle timer)</div><div class="ttdoc">Cancels a timer.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8adb9656d6ea50580adaf9c8e7d9eebf"><div class="ttname"><a href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebf">DmaState</a></div><div class="ttdeci">DmaState</div><div class="ttdoc">DMA transfer state.</div><div class="ttdef"><b>Definition:</b> svc.h:141</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8adb9656d6ea50580adaf9c8e7d9eebfa053576718864451c3aaee2cd88784570"><div class="ttname"><a href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa053576718864451c3aaee2cd88784570">DMASTATE_WFP_SRC</a></div><div class="ttdeci">@ DMASTATE_WFP_SRC</div><div class="ttdoc">DMA channel is in WFP state for the source device (2nd loop iteration onwards).</div><div class="ttdef"><b>Definition:</b> svc.h:144</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8adb9656d6ea50580adaf9c8e7d9eebfa4cfd2baa9583d9e77769f5df64de91cf"><div class="ttname"><a href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa4cfd2baa9583d9e77769f5df64de91cf">DMASTATE_STARTING</a></div><div class="ttdeci">@ DMASTATE_STARTING</div><div class="ttdoc">DMA transfer involving at least one device is starting and has not reached DMAWFP yet.</div><div class="ttdef"><b>Definition:</b> svc.h:142</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8adb9656d6ea50580adaf9c8e7d9eebfa9ba0cef50f71f9aa4206a49ec23909c1"><div class="ttname"><a href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfa9ba0cef50f71f9aa4206a49ec23909c1">DMASTATE_WFP_DST</a></div><div class="ttdeci">@ DMASTATE_WFP_DST</div><div class="ttdoc">DMA channel is in WFP state for the destination device (2nd loop iteration onwards).</div><div class="ttdef"><b>Definition:</b> svc.h:143</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8adb9656d6ea50580adaf9c8e7d9eebfadbb15c5adf95a4a14ac003c55d8c76e9"><div class="ttname"><a href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfadbb15c5adf95a4a14ac003c55d8c76e9">DMASTATE_DONE</a></div><div class="ttdeci">@ DMASTATE_DONE</div><div class="ttdoc">DMA transfer is done.</div><div class="ttdef"><b>Definition:</b> svc.h:146</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8adb9656d6ea50580adaf9c8e7d9eebfae44a8d9ac979aa20cd6851f8b2663291"><div class="ttname"><a href="svc_8h.html#a8adb9656d6ea50580adaf9c8e7d9eebfae44a8d9ac979aa20cd6851f8b2663291">DMASTATE_RUNNING</a></div><div class="ttdeci">@ DMASTATE_RUNNING</div><div class="ttdoc">DMA transfer is running.</div><div class="ttdef"><b>Definition:</b> svc.h:145</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8b4536b50d5d5735805f1f5aa6b2a378"><div class="ttname"><a href="svc_8h.html#a8b4536b50d5d5735805f1f5aa6b2a378">svcArbitrateAddressNoTimeout</a></div><div class="ttdeci">Result svcArbitrateAddressNoTimeout(Handle arbiter, u32 addr, ArbitrationType type, s32 value)</div><div class="ttdoc">Same as svcArbitrateAddress but with the timeout_ns parameter undefined.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8b9e97a68e06934e341c147c1c489390"><div class="ttname"><a href="svc_8h.html#a8b9e97a68e06934e341c147c1c489390">svcCreateCodeSet</a></div><div class="ttdeci">Result svcCreateCodeSet(Handle *out, const CodeSetHeader *info, u32 textSegmentLma, u32 roSegmentLma, u32 dataSegmentLma)</div><div class="ttdoc">Sets up virtual address space for a new process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a8c072d1a9707bb0324b4ba2e7c4fc794"><div class="ttname"><a href="svc_8h.html#a8c072d1a9707bb0324b4ba2e7c4fc794">svcReleaseSemaphore</a></div><div class="ttdeci">Result svcReleaseSemaphore(s32 *count, Handle semaphore, s32 release_count)</div><div class="ttdoc">Releases a semaphore.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8">MemPerm</a></div><div class="ttdeci">MemPerm</div><div class="ttdoc">Memory permission flags.</div><div class="ttdef"><b>Definition:</b> svc.h:56</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8a00b3d9ebe75e827a690b181275e36285"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a00b3d9ebe75e827a690b181275e36285">MEMPERM_DONTCARE</a></div><div class="ttdeci">@ MEMPERM_DONTCARE</div><div class="ttdoc">Don't care.</div><div class="ttdef"><b>Definition:</b> svc.h:62</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8a1cd211ea237b7a2f9d79784ad80381ef"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a1cd211ea237b7a2f9d79784ad80381ef">MEMPERM_WRITE</a></div><div class="ttdeci">@ MEMPERM_WRITE</div><div class="ttdoc">Writable.</div><div class="ttdef"><b>Definition:</b> svc.h:58</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8a6a38ed1f87f49fe7db01ad467e5bdf11"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a6a38ed1f87f49fe7db01ad467e5bdf11">MEMPERM_READWRITE</a></div><div class="ttdeci">@ MEMPERM_READWRITE</div><div class="ttdoc">Readable and writable.</div><div class="ttdef"><b>Definition:</b> svc.h:60</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8a94982bf2da2aa85b256d272073d8a3b2"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a94982bf2da2aa85b256d272073d8a3b2">MEMPERM_READ</a></div><div class="ttdeci">@ MEMPERM_READ</div><div class="ttdoc">Readable.</div><div class="ttdef"><b>Definition:</b> svc.h:57</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8a95166c88c977b8f6621cc3fddfbef097"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8a95166c88c977b8f6621cc3fddfbef097">MEMPERM_EXECUTE</a></div><div class="ttdeci">@ MEMPERM_EXECUTE</div><div class="ttdoc">Executable.</div><div class="ttdef"><b>Definition:</b> svc.h:59</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a933c1284d3be96f93a10a06f9c13aef8aec242833b7930ca0c26c9a82cc0106f0"><div class="ttname"><a href="svc_8h.html#a933c1284d3be96f93a10a06f9c13aef8aec242833b7930ca0c26c9a82cc0106f0">MEMPERM_READEXECUTE</a></div><div class="ttdeci">@ MEMPERM_READEXECUTE</div><div class="ttdoc">Readable and executable.</div><div class="ttdef"><b>Definition:</b> svc.h:61</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7">MemState</a></div><div class="ttdeci">MemState</div><div class="ttdoc">The state of a memory block.</div><div class="ttdef"><b>Definition:</b> svc.h:40</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a26e7ac8c3e0c4a0ed3f77d0bd9788ac5"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a26e7ac8c3e0c4a0ed3f77d0bd9788ac5">MEMSTATE_ALIAS</a></div><div class="ttdeci">@ MEMSTATE_ALIAS</div><div class="ttdoc">Alias memory.</div><div class="ttdef"><b>Definition:</b> svc.h:50</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a271fa8404bb634409a54c9d4f5f35627"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a271fa8404bb634409a54c9d4f5f35627">MEMSTATE_CODE</a></div><div class="ttdeci">@ MEMSTATE_CODE</div><div class="ttdoc">Code memory.</div><div class="ttdef"><b>Definition:</b> svc.h:45</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a28319451e29cd1d428cb794e452c755b"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a28319451e29cd1d428cb794e452c755b">MEMSTATE_FREE</a></div><div class="ttdeci">@ MEMSTATE_FREE</div><div class="ttdoc">Free memory.</div><div class="ttdef"><b>Definition:</b> svc.h:41</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a46982bcef4b1151bc212a8ae7b9605eb"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a46982bcef4b1151bc212a8ae7b9605eb">MEMSTATE_SHARED</a></div><div class="ttdeci">@ MEMSTATE_SHARED</div><div class="ttdoc">Shared memory.</div><div class="ttdef"><b>Definition:</b> svc.h:47</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a4dd019bd15843b85ba5b2e980816df50"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a4dd019bd15843b85ba5b2e980816df50">MEMSTATE_CONTINUOUS</a></div><div class="ttdeci">@ MEMSTATE_CONTINUOUS</div><div class="ttdoc">Continuous memory.</div><div class="ttdef"><b>Definition:</b> svc.h:48</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a59073efd4c26f46fee26de08c255e0b2"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a59073efd4c26f46fee26de08c255e0b2">MEMSTATE_ALIASCODE</a></div><div class="ttdeci">@ MEMSTATE_ALIASCODE</div><div class="ttdoc">Aliased code memory.</div><div class="ttdef"><b>Definition:</b> svc.h:51</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a5e54fc6b8c3f3090eba67147f3000d31"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a5e54fc6b8c3f3090eba67147f3000d31">MEMSTATE_ALIASED</a></div><div class="ttdeci">@ MEMSTATE_ALIASED</div><div class="ttdoc">Aliased memory.</div><div class="ttdef"><b>Definition:</b> svc.h:49</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a728b20cb6be4b28ab6694984b7e79018"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a728b20cb6be4b28ab6694984b7e79018">MEMSTATE_PRIVATE</a></div><div class="ttdeci">@ MEMSTATE_PRIVATE</div><div class="ttdoc">Private memory.</div><div class="ttdef"><b>Definition:</b> svc.h:46</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7a99d241b8c1e39f56cc62c0ae8f0a1a49"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7a99d241b8c1e39f56cc62c0ae8f0a1a49">MEMSTATE_IO</a></div><div class="ttdeci">@ MEMSTATE_IO</div><div class="ttdoc">I/O memory.</div><div class="ttdef"><b>Definition:</b> svc.h:43</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7aaca66457f6d543c2b19b0430590fc143"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7aaca66457f6d543c2b19b0430590fc143">MEMSTATE_STATIC</a></div><div class="ttdeci">@ MEMSTATE_STATIC</div><div class="ttdoc">Static memory.</div><div class="ttdef"><b>Definition:</b> svc.h:44</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7ac0adf485622be6e0fbbdc7cbb8c47117"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7ac0adf485622be6e0fbbdc7cbb8c47117">MEMSTATE_RESERVED</a></div><div class="ttdeci">@ MEMSTATE_RESERVED</div><div class="ttdoc">Reserved memory.</div><div class="ttdef"><b>Definition:</b> svc.h:42</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9475ce2cc58483c4a96c970bc6d87cf7ae339e1d3911aeadbe94cffaa8e27436b"><div class="ttname"><a href="svc_8h.html#a9475ce2cc58483c4a96c970bc6d87cf7ae339e1d3911aeadbe94cffaa8e27436b">MEMSTATE_LOCKED</a></div><div class="ttdeci">@ MEMSTATE_LOCKED</div><div class="ttdoc">Locked memory.</div><div class="ttdef"><b>Definition:</b> svc.h:52</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a94bc1c06056b8c4d4cd7754f7a65fb34"><div class="ttname"><a href="svc_8h.html#a94bc1c06056b8c4d4cd7754f7a65fb34">svcGetThreadIdealProcessor</a></div><div class="ttdeci">Result svcGetThreadIdealProcessor(s32 *processorid, Handle thread)</div><div class="ttdoc">Gets a thread's ideal processor.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9609f301ffe5836bc68a8f73fece12b4"><div class="ttname"><a href="svc_8h.html#a9609f301ffe5836bc68a8f73fece12b4">svcBreakDebugProcess</a></div><div class="ttdeci">Result svcBreakDebugProcess(Handle debug)</div><div class="ttdoc">Breaks a debugged process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a977a76e261890d9d989451e073c5bb7e"><div class="ttname"><a href="svc_8h.html#a977a76e261890d9d989451e073c5bb7e">svcGetResourceLimit</a></div><div class="ttdeci">Result svcGetResourceLimit(Handle *resourceLimit, Handle process)</div><div class="ttdoc">Gets the resource limit set of a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9809212def892f6baf31c7cd6754ed02"><div class="ttname"><a href="svc_8h.html#a9809212def892f6baf31c7cd6754ed02">svcQueryMemory</a></div><div class="ttdeci">Result svcQueryMemory(MemInfo *info, PageInfo *out, u32 addr)</div><div class="ttdoc">Queries memory information.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a985e047a81393fa6d118ee769311f9c1"><div class="ttname"><a href="svc_8h.html#a985e047a81393fa6d118ee769311f9c1">svcCreateProcess</a></div><div class="ttdeci">Result svcCreateProcess(Handle *out, Handle codeset, const u32 *arm11KernelCaps, s32 numArm11KernelCaps)</div><div class="ttdoc">Create a new process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9ab9649e4a4445bcf8cba73119895ab9"><div class="ttname"><a href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9">ExitThreadEventReason</a></div><div class="ttdeci">ExitThreadEventReason</div><div class="ttdoc">Reasons for an exit thread event.</div><div class="ttdef"><b>Definition:</b> svc.h:319</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9ab9649e4a4445bcf8cba73119895ab9a2d99741dd3861d2c2cc0ad3de081151b"><div class="ttname"><a href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9a2d99741dd3861d2c2cc0ad3de081151b">EXITTHREAD_EVENT_EXIT_PROCESS</a></div><div class="ttdeci">@ EXITTHREAD_EVENT_EXIT_PROCESS</div><div class="ttdoc">Process exited either normally or due to an uncaught exception.</div><div class="ttdef"><b>Definition:</b> svc.h:322</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9ab9649e4a4445bcf8cba73119895ab9ac862b5b2c7d0efb53e0f3143c7601ea4"><div class="ttname"><a href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9ac862b5b2c7d0efb53e0f3143c7601ea4">EXITTHREAD_EVENT_TERMINATE_PROCESS</a></div><div class="ttdeci">@ EXITTHREAD_EVENT_TERMINATE_PROCESS</div><div class="ttdoc">Process has been terminated by svcTerminateProcess.</div><div class="ttdef"><b>Definition:</b> svc.h:323</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9ab9649e4a4445bcf8cba73119895ab9ad91d858c68b3f94b62fe4d275f9e9bf5"><div class="ttname"><a href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9ad91d858c68b3f94b62fe4d275f9e9bf5">EXITTHREAD_EVENT_TERMINATE</a></div><div class="ttdeci">@ EXITTHREAD_EVENT_TERMINATE</div><div class="ttdoc">Thread terminated.</div><div class="ttdef"><b>Definition:</b> svc.h:321</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9ab9649e4a4445bcf8cba73119895ab9af6e122c684d430dbf1e0154c9861da4f"><div class="ttname"><a href="svc_8h.html#a9ab9649e4a4445bcf8cba73119895ab9af6e122c684d430dbf1e0154c9861da4f">EXITTHREAD_EVENT_EXIT</a></div><div class="ttdeci">@ EXITTHREAD_EVENT_EXIT</div><div class="ttdoc">Thread exited.</div><div class="ttdef"><b>Definition:</b> svc.h:320</div></div>
|
|
<div class="ttc" id="asvc_8h_html_a9b1cbd6cb9eba21e42c9ec8bb7d08e97"><div class="ttname"><a href="svc_8h.html#a9b1cbd6cb9eba21e42c9ec8bb7d08e97">svcAcceptSession</a></div><div class="ttdeci">Result svcAcceptSession(Handle *session, Handle port)</div><div class="ttdoc">Accepts a session.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aa528da59a295ad8a09f951e1b52c658e"><div class="ttname"><a href="svc_8h.html#aa528da59a295ad8a09f951e1b52c658e">svcGetThreadId</a></div><div class="ttdeci">Result svcGetThreadId(u32 *out, Handle handle)</div><div class="ttdoc">Gets the ID of a thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aa9dc250e97f58dca935bcee31549f3e7"><div class="ttname"><a href="svc_8h.html#aa9dc250e97f58dca935bcee31549f3e7">svcQueryProcessMemory</a></div><div class="ttdeci">Result svcQueryProcessMemory(MemInfo *info, PageInfo *out, Handle process, u32 addr)</div><div class="ttdoc">Queries process memory information.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aab7a1755c547a1ff2b9f2a6f45e57073"><div class="ttname"><a href="svc_8h.html#aab7a1755c547a1ff2b9f2a6f45e57073">svcRestartDma</a></div><div class="ttdeci">Result svcRestartDma(Handle dma, u32 dstAddr, u32 srcAddr, u32 size, s8 flags)</div><div class="ttdoc">Restarts a DMA transfer, using the same configuration as before.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aad97fa778ae92cc88586f287b9b88487"><div class="ttname"><a href="svc_8h.html#aad97fa778ae92cc88586f287b9b88487">svcCreateAddressArbiter</a></div><div class="ttdeci">Result svcCreateAddressArbiter(Handle *arbiter)</div><div class="ttdoc">Creates an address arbiter.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aaec6682f3ea6b524cc44d24986ccc81a"><div class="ttname"><a href="svc_8h.html#aaec6682f3ea6b524cc44d24986ccc81a">svcGetProcessIdealProcessor</a></div><div class="ttdeci">Result svcGetProcessIdealProcessor(s32 *processorid, Handle process)</div><div class="ttdoc">Gets a process's ideal processor.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aaef69fd9d538247e3e48815592de4df1"><div class="ttname"><a href="svc_8h.html#aaef69fd9d538247e3e48815592de4df1">svcReplyAndReceive</a></div><div class="ttdeci">Result svcReplyAndReceive(s32 *index, const Handle *handles, s32 handleCount, Handle replyTarget)</div><div class="ttdoc">Replies to and receives a new request.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1e5db22e50e03cb4f14e46f09f7635a"><div class="ttname"><a href="svc_8h.html#ab1e5db22e50e03cb4f14e46f09f7635a">svcUnmapProcessMemory</a></div><div class="ttdeci">Result svcUnmapProcessMemory(Handle process, u32 destAddress, u32 size)</div><div class="ttdoc">Unmaps a block of process memory, starting from address 0x00100000.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754">DebugEventType</a></div><div class="ttdeci">DebugEventType</div><div class="ttdoc">Debug event type.</div><div class="ttdef"><b>Definition:</b> svc.h:421</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a07ea6a6fba8ff752c67e2c00425d3ac8"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a07ea6a6fba8ff752c67e2c00425d3ac8">DBGEVENT_SCHEDULE_IN</a></div><div class="ttdeci">@ DBGEVENT_SCHEDULE_IN</div><div class="ttdoc">Schedule in event.</div><div class="ttdef"><b>Definition:</b> svc.h:429</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a167c6fa74bcf640f56641a04983627f9"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a167c6fa74bcf640f56641a04983627f9">DBGEVENT_DLL_UNLOAD</a></div><div class="ttdeci">@ DBGEVENT_DLL_UNLOAD</div><div class="ttdoc">DLL unload event.</div><div class="ttdef"><b>Definition:</b> svc.h:428</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a208e5e5396544ebdbca5c2683b496a3a"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a208e5e5396544ebdbca5c2683b496a3a">DBGEVENT_EXCEPTION</a></div><div class="ttdeci">@ DBGEVENT_EXCEPTION</div><div class="ttdoc">Exception event.</div><div class="ttdef"><b>Definition:</b> svc.h:426</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a2635a9230834ce193ced7e11ad3d719a"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a2635a9230834ce193ced7e11ad3d719a">DBGEVENT_EXIT_PROCESS</a></div><div class="ttdeci">@ DBGEVENT_EXIT_PROCESS</div><div class="ttdoc">Process exit event.</div><div class="ttdef"><b>Definition:</b> svc.h:425</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a5357e98f2337ea80ce759ca8ad26bc03"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a5357e98f2337ea80ce759ca8ad26bc03">DBGEVENT_SYSCALL_IN</a></div><div class="ttdeci">@ DBGEVENT_SYSCALL_IN</div><div class="ttdoc">Syscall in event.</div><div class="ttdef"><b>Definition:</b> svc.h:431</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a61a1fa34dc49e06bc7e2d5941fdf2614"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a61a1fa34dc49e06bc7e2d5941fdf2614">DBGEVENT_SYSCALL_OUT</a></div><div class="ttdeci">@ DBGEVENT_SYSCALL_OUT</div><div class="ttdoc">Syscall out event.</div><div class="ttdef"><b>Definition:</b> svc.h:432</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a62cf6b93175e700b82259c66273eb0b3"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a62cf6b93175e700b82259c66273eb0b3">DBGEVENT_SCHEDULE_OUT</a></div><div class="ttdeci">@ DBGEVENT_SCHEDULE_OUT</div><div class="ttdoc">Schedule out event.</div><div class="ttdef"><b>Definition:</b> svc.h:430</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754a63a5ec76f06ef716a8ba8b1ab9c0e5de"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754a63a5ec76f06ef716a8ba8b1ab9c0e5de">DBGEVENT_MAP</a></div><div class="ttdeci">@ DBGEVENT_MAP</div><div class="ttdoc">Map event.</div><div class="ttdef"><b>Definition:</b> svc.h:434</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754ab39b8b0c362f20d8f3b6a789684ad382"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754ab39b8b0c362f20d8f3b6a789684ad382">DBGEVENT_ATTACH_THREAD</a></div><div class="ttdeci">@ DBGEVENT_ATTACH_THREAD</div><div class="ttdoc">Thread attached event.</div><div class="ttdef"><b>Definition:</b> svc.h:423</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754abee1dd8bd40f035cdb41dd2f8c4ad11c"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754abee1dd8bd40f035cdb41dd2f8c4ad11c">DBGEVENT_OUTPUT_STRING</a></div><div class="ttdeci">@ DBGEVENT_OUTPUT_STRING</div><div class="ttdoc">Output string event.</div><div class="ttdef"><b>Definition:</b> svc.h:433</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754ac0a513ef6cb7b18b882ca3b4484be376"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754ac0a513ef6cb7b18b882ca3b4484be376">DBGEVENT_ATTACH_PROCESS</a></div><div class="ttdeci">@ DBGEVENT_ATTACH_PROCESS</div><div class="ttdoc">Process attached event.</div><div class="ttdef"><b>Definition:</b> svc.h:422</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754acec82ab612fb6a61454e6acf13d9535d"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754acec82ab612fb6a61454e6acf13d9535d">DBGEVENT_EXIT_THREAD</a></div><div class="ttdeci">@ DBGEVENT_EXIT_THREAD</div><div class="ttdoc">Thread exit event.</div><div class="ttdef"><b>Definition:</b> svc.h:424</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab1fabb8a9dfe0eca4fdd8502dbfa0754afa511c30bbe05ddaad3c96c2fe2237dc"><div class="ttname"><a href="svc_8h.html#ab1fabb8a9dfe0eca4fdd8502dbfa0754afa511c30bbe05ddaad3c96c2fe2237dc">DBGEVENT_DLL_LOAD</a></div><div class="ttdeci">@ DBGEVENT_DLL_LOAD</div><div class="ttdoc">DLL load event.</div><div class="ttdef"><b>Definition:</b> svc.h:427</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab31e6106eb7e5f4b7ef62cca1054e83f"><div class="ttname"><a href="svc_8h.html#ab31e6106eb7e5f4b7ef62cca1054e83f">svcSetHardwareBreakPoint</a></div><div class="ttdeci">Result svcSetHardwareBreakPoint(s32 registerId, u32 control, u32 value)</div><div class="ttdoc">Sets an hardware breakpoint or watchpoint.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab3d7b4a986e1f146dfc4d6149d1a5b5b"><div class="ttname"><a href="svc_8h.html#ab3d7b4a986e1f146dfc4d6149d1a5b5b">svcSetTimer</a></div><div class="ttdeci">Result svcSetTimer(Handle timer, s64 initial, s64 interval)</div><div class="ttdoc">Sets a timer.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ab540f40958124e21d461ef4a423997f8"><div class="ttname"><a href="svc_8h.html#ab540f40958124e21d461ef4a423997f8">svcStoreProcessDataCache</a></div><div class="ttdeci">Result svcStoreProcessDataCache(Handle process, u32 addr, u32 size)</div><div class="ttdoc">Cleans a process's data cache.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_abe17c7bede51c7123fd0e07c3c12788a"><div class="ttname"><a href="svc_8h.html#abe17c7bede51c7123fd0e07c3c12788a">svcCreateResourceLimit</a></div><div class="ttdeci">Result svcCreateResourceLimit(Handle *resourceLimit)</div><div class="ttdoc">Creates a resource limit set.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780a"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780a">ResourceLimitType</a></div><div class="ttdeci">ResourceLimitType</div><div class="ttdoc">Types of resource limit.</div><div class="ttdef"><b>Definition:</b> svc.h:117</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aa188b2b030f861dde3218e8736d8c7341"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa188b2b030f861dde3218e8736d8c7341">RESLIMIT_TIMER</a></div><div class="ttdeci">@ RESLIMIT_TIMER</div><div class="ttdoc">Number of timers.</div><div class="ttdef"><b>Definition:</b> svc.h:124</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aa33bf64fee360e49f019fc108a12b6869"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa33bf64fee360e49f019fc108a12b6869">RESLIMIT_SEMAPHORE</a></div><div class="ttdeci">@ RESLIMIT_SEMAPHORE</div><div class="ttdoc">Number of semaphores.</div><div class="ttdef"><b>Definition:</b> svc.h:123</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aa3aab1b0ef50ad3e6ea1ab9118f976c2b"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa3aab1b0ef50ad3e6ea1ab9118f976c2b">RESLIMIT_CPUTIME</a></div><div class="ttdeci">@ RESLIMIT_CPUTIME</div><div class="ttdoc">CPU time. Value expressed in percentage regular until it reaches 90.</div><div class="ttdef"><b>Definition:</b> svc.h:127</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aa52c9772c9039e666d86e41b791c8802c"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa52c9772c9039e666d86e41b791c8802c">RESLIMIT_COMMIT</a></div><div class="ttdeci">@ RESLIMIT_COMMIT</div><div class="ttdoc">Quantity of allocatable memory.</div><div class="ttdef"><b>Definition:</b> svc.h:119</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aa80e01172679736fc55506de2383329af"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa80e01172679736fc55506de2383329af">RESLIMIT_EVENT</a></div><div class="ttdeci">@ RESLIMIT_EVENT</div><div class="ttdoc">Number of events.</div><div class="ttdef"><b>Definition:</b> svc.h:121</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aa81bcdab92bd58b56bf3b6096a3aaf1d4"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aa81bcdab92bd58b56bf3b6096a3aaf1d4">RESLIMIT_BIT</a></div><div class="ttdeci">@ RESLIMIT_BIT</div><div class="ttdoc">Forces enum size to be 32 bits.</div><div class="ttdef"><b>Definition:</b> svc.h:129</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aab702ae213a302c7ae032dccd116a5d35"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aab702ae213a302c7ae032dccd116a5d35">RESLIMIT_ADDRESSARBITER</a></div><div class="ttdeci">@ RESLIMIT_ADDRESSARBITER</div><div class="ttdoc">Number of address arbiters.</div><div class="ttdef"><b>Definition:</b> svc.h:126</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aac32acf08c278fbb9c5d37cd5abaa15b8"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aac32acf08c278fbb9c5d37cd5abaa15b8">RESLIMIT_MUTEX</a></div><div class="ttdeci">@ RESLIMIT_MUTEX</div><div class="ttdoc">Number of mutexes.</div><div class="ttdef"><b>Definition:</b> svc.h:122</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aaccd534676d1d91de2401e7810de813fb"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aaccd534676d1d91de2401e7810de813fb">RESLIMIT_THREAD</a></div><div class="ttdeci">@ RESLIMIT_THREAD</div><div class="ttdoc">Number of threads.</div><div class="ttdef"><b>Definition:</b> svc.h:120</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aad5c0584427164249900e2957c020c7b9"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aad5c0584427164249900e2957c020c7b9">RESLIMIT_SHAREDMEMORY</a></div><div class="ttdeci">@ RESLIMIT_SHAREDMEMORY</div><div class="ttdoc">Number of shared memory objects, see svcCreateMemoryBlock.</div><div class="ttdef"><b>Definition:</b> svc.h:125</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac12c38db3ba780feb8540ed3cd0c780aae4775036f8b37b62df9dbb8614653bcd"><div class="ttname"><a href="svc_8h.html#ac12c38db3ba780feb8540ed3cd0c780aae4775036f8b37b62df9dbb8614653bcd">RESLIMIT_PRIORITY</a></div><div class="ttdeci">@ RESLIMIT_PRIORITY</div><div class="ttdoc">Thread priority.</div><div class="ttdef"><b>Definition:</b> svc.h:118</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac4888a213bf9515d2332ce8a686b3087"><div class="ttname"><a href="svc_8h.html#ac4888a213bf9515d2332ce8a686b3087">svcCreateEvent</a></div><div class="ttdeci">Result svcCreateEvent(Handle *event, ResetType reset_type)</div><div class="ttdoc">Creates an event handle.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac4f63d4e584005af063b41bc55bb92eb"><div class="ttname"><a href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eb">MemRegion</a></div><div class="ttdeci">MemRegion</div><div class="ttdoc">Memory regions.</div><div class="ttdef"><b>Definition:</b> svc.h:67</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac4f63d4e584005af063b41bc55bb92eba3593cd195de87cfb8d9ef3a8d4aa4d61"><div class="ttname"><a href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba3593cd195de87cfb8d9ef3a8d4aa4d61">MEMREGION_SYSTEM</a></div><div class="ttdeci">@ MEMREGION_SYSTEM</div><div class="ttdoc">SYSTEM memory.</div><div class="ttdef"><b>Definition:</b> svc.h:70</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac4f63d4e584005af063b41bc55bb92eba71250d7c703bed890cb5c41e6a04b292"><div class="ttname"><a href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba71250d7c703bed890cb5c41e6a04b292">MEMREGION_BASE</a></div><div class="ttdeci">@ MEMREGION_BASE</div><div class="ttdoc">BASE memory.</div><div class="ttdef"><b>Definition:</b> svc.h:71</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac4f63d4e584005af063b41bc55bb92eba87d800dfa880eb2c7606cbc6e88cdfc9"><div class="ttname"><a href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92eba87d800dfa880eb2c7606cbc6e88cdfc9">MEMREGION_ALL</a></div><div class="ttdeci">@ MEMREGION_ALL</div><div class="ttdoc">All regions.</div><div class="ttdef"><b>Definition:</b> svc.h:68</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac4f63d4e584005af063b41bc55bb92ebaa6dca7f0283dc36043000cf009b3037d"><div class="ttname"><a href="svc_8h.html#ac4f63d4e584005af063b41bc55bb92ebaa6dca7f0283dc36043000cf009b3037d">MEMREGION_APPLICATION</a></div><div class="ttdeci">@ MEMREGION_APPLICATION</div><div class="ttdoc">APPLICATION memory.</div><div class="ttdef"><b>Definition:</b> svc.h:69</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac62690a14d27773ca936c1b53549f59d"><div class="ttname"><a href="svc_8h.html#ac62690a14d27773ca936c1b53549f59d">svcClearEvent</a></div><div class="ttdeci">Result svcClearEvent(Handle handle)</div><div class="ttdoc">Clears an event.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac827a6c2a3d84f484463f3206e688e01"><div class="ttname"><a href="svc_8h.html#ac827a6c2a3d84f484463f3206e688e01">svcStopDma</a></div><div class="ttdeci">Result svcStopDma(Handle dma)</div><div class="ttdoc">Stops an inter-process DMA transfer.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ac8c9fee9e79ce2ef81585347f56f208e"><div class="ttname"><a href="svc_8h.html#ac8c9fee9e79ce2ef81585347f56f208e">svcInvalidateProcessDataCache</a></div><div class="ttdeci">Result svcInvalidateProcessDataCache(Handle process, u32 addr, u32 size)</div><div class="ttdoc">Invalidates a process's data cache.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_acc49794f897fc07eaa97641b725f82a3"><div class="ttname"><a href="svc_8h.html#acc49794f897fc07eaa97641b725f82a3">dmaConfigInitDefault</a></div><div class="ttdeci">static void dmaConfigInitDefault(DmaConfig *cfg)</div><div class="ttdoc">Initializes a DmaConfig instance with sane defaults for RAM<>RAM tranfers.</div><div class="ttdef"><b>Definition:</b> svc.h:574</div></div>
|
|
<div class="ttc" id="asvc_8h_html_acd17333e3949eaef28ccda04dc7db0f7"><div class="ttname"><a href="svc_8h.html#acd17333e3949eaef28ccda04dc7db0f7">svcGetProcessIdOfThread</a></div><div class="ttdeci">Result svcGetProcessIdOfThread(u32 *out, Handle handle)</div><div class="ttdoc">Gets the process ID of a thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961">ExceptionEventType</a></div><div class="ttdeci">ExceptionEventType</div><div class="ttdoc">Reasons for an exception event.</div><div class="ttdef"><b>Definition:</b> svc.h:341</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a069cc910b91b81ad647d57eda968d6f0"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a069cc910b91b81ad647d57eda968d6f0">EXCEVENT_UNDEFINED_SYSCALL</a></div><div class="ttdeci">@ EXCEVENT_UNDEFINED_SYSCALL</div><div class="ttdoc">Undefined syscall.</div><div class="ttdef"><b>Definition:</b> svc.h:350</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a2675f2c2f8166cebd857bf45bf200380"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a2675f2c2f8166cebd857bf45bf200380">EXCEVENT_USER_BREAK</a></div><div class="ttdeci">@ EXCEVENT_USER_BREAK</div><div class="ttdoc">User break occurred.</div><div class="ttdef"><b>Definition:</b> svc.h:348</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a395e456839766ff94e2ed7e62a4393a6"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a395e456839766ff94e2ed7e62a4393a6">EXCEVENT_UNALIGNED_DATA_ACCESS</a></div><div class="ttdeci">@ EXCEVENT_UNALIGNED_DATA_ACCESS</div><div class="ttdoc">Unaligned data access.</div><div class="ttdef"><b>Definition:</b> svc.h:345</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a5447fb68701a56078c86d7c11825d4b6"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a5447fb68701a56078c86d7c11825d4b6">EXCEVENT_DEBUGGER_BREAK</a></div><div class="ttdeci">@ EXCEVENT_DEBUGGER_BREAK</div><div class="ttdoc">Debugger break occurred.</div><div class="ttdef"><b>Definition:</b> svc.h:349</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a84e1ee736127c4a2fed63ba26f7f62de"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a84e1ee736127c4a2fed63ba26f7f62de">EXCEVENT_ATTACH_BREAK</a></div><div class="ttdeci">@ EXCEVENT_ATTACH_BREAK</div><div class="ttdoc">Attached break.</div><div class="ttdef"><b>Definition:</b> svc.h:346</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a8a8d6492fced221e5c4fafba19af8336"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a8a8d6492fced221e5c4fafba19af8336">EXCEVENT_PREFETCH_ABORT</a></div><div class="ttdeci">@ EXCEVENT_PREFETCH_ABORT</div><div class="ttdoc">Prefetch abort.</div><div class="ttdef"><b>Definition:</b> svc.h:343</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961a93595971d3fb771d02e6aed6512af6e9"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961a93595971d3fb771d02e6aed6512af6e9">EXCEVENT_UNDEFINED_INSTRUCTION</a></div><div class="ttdeci">@ EXCEVENT_UNDEFINED_INSTRUCTION</div><div class="ttdoc">Undefined instruction.</div><div class="ttdef"><b>Definition:</b> svc.h:342</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961ad0388e2bb9502bf104eeae6d61d6178d"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961ad0388e2bb9502bf104eeae6d61d6178d">EXCEVENT_DATA_ABORT</a></div><div class="ttdeci">@ EXCEVENT_DATA_ABORT</div><div class="ttdoc">Data abort (other than the below kind).</div><div class="ttdef"><b>Definition:</b> svc.h:344</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad31e210a0f421d1ca7f5c55c7110f961ade5c633f2939b0c6847bf00eb191e09d"><div class="ttname"><a href="svc_8h.html#ad31e210a0f421d1ca7f5c55c7110f961ade5c633f2939b0c6847bf00eb191e09d">EXCEVENT_STOP_POINT</a></div><div class="ttdeci">@ EXCEVENT_STOP_POINT</div><div class="ttdoc">Stop point reached.</div><div class="ttdef"><b>Definition:</b> svc.h:347</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad63240694c6dc2a28c24bfc2db90ad7aa367fac3881d4b71507ef5dedc1056daa"><div class="ttname"><a href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa367fac3881d4b71507ef5dedc1056daa">DMACFG_SRC_IS_DEVICE</a></div><div class="ttdeci">@ DMACFG_SRC_IS_DEVICE</div><div class="ttdoc">DMA source is a device/peripheral. Address will not auto-increment.</div><div class="ttdef"><b>Definition:</b> svc.h:151</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad63240694c6dc2a28c24bfc2db90ad7aa7e14b15bddd396c19222999d931c9c31"><div class="ttname"><a href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa7e14b15bddd396c19222999d931c9c31">DMACFG_USE_SRC_CONFIG</a></div><div class="ttdeci">@ DMACFG_USE_SRC_CONFIG</div><div class="ttdoc">Use the provided source device configuration even if the DMA source is not a device.</div><div class="ttdef"><b>Definition:</b> svc.h:155</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad63240694c6dc2a28c24bfc2db90ad7aa8aaca715197bd1cb3677d4a5054475e4"><div class="ttname"><a href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aa8aaca715197bd1cb3677d4a5054475e4">DMACFG_DST_IS_DEVICE</a></div><div class="ttdeci">@ DMACFG_DST_IS_DEVICE</div><div class="ttdoc">DMA destination is a device/peripheral. Address will not auto-increment.</div><div class="ttdef"><b>Definition:</b> svc.h:152</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad63240694c6dc2a28c24bfc2db90ad7aabca3d1ffd34e4da56caf2b4f605bab4b"><div class="ttname"><a href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aabca3d1ffd34e4da56caf2b4f605bab4b">DMACFG_WAIT_AVAILABLE</a></div><div class="ttdeci">@ DMACFG_WAIT_AVAILABLE</div><div class="ttdoc">Make svcStartInterProcessDma wait for the channel to be unlocked.</div><div class="ttdef"><b>Definition:</b> svc.h:153</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad63240694c6dc2a28c24bfc2db90ad7aacec84f8191c71ebe4ee1fea21f6da313"><div class="ttname"><a href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aacec84f8191c71ebe4ee1fea21f6da313">DMACFG_USE_DST_CONFIG</a></div><div class="ttdeci">@ DMACFG_USE_DST_CONFIG</div><div class="ttdoc">Use the provided destination device configuration even if the DMA destination is not a device.</div><div class="ttdef"><b>Definition:</b> svc.h:156</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad63240694c6dc2a28c24bfc2db90ad7aaf5ab7887ce35d2081382ebcca6f244a7"><div class="ttname"><a href="svc_8h.html#ad63240694c6dc2a28c24bfc2db90ad7aaf5ab7887ce35d2081382ebcca6f244a7">DMACFG_KEEP_LOCKED</a></div><div class="ttdeci">@ DMACFG_KEEP_LOCKED</div><div class="ttdoc">Keep the channel locked after the transfer. Required for svcRestartDma.</div><div class="ttdef"><b>Definition:</b> svc.h:154</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ad9dcfc6cb021384b48ccc7e5275bfc4b"><div class="ttname"><a href="svc_8h.html#ad9dcfc6cb021384b48ccc7e5275bfc4b">svcGetDebugThreadParam</a></div><div class="ttdeci">Result svcGetDebugThreadParam(s64 *unused, u32 *out, Handle debug, u32 threadId, DebugThreadParameter parameter)</div><div class="ttdoc">Gets a debugged thread's parameter.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ada13386ccb8cb809658a9878a9941a8b"><div class="ttname"><a href="svc_8h.html#ada13386ccb8cb809658a9878a9941a8b">svcKernelSetState</a></div><div class="ttdeci">Result svcKernelSetState(u32 type,...)</div><div class="ttdoc">Sets the current kernel state.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_adfe6b9db49aa88865e1fff5e559f6fdf"><div class="ttname"><a href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdf">ResetType</a></div><div class="ttdeci">ResetType</div><div class="ttdoc">Reset types (for use with events and timers)</div><div class="ttdef"><b>Definition:</b> svc.h:105</div></div>
|
|
<div class="ttc" id="asvc_8h_html_adfe6b9db49aa88865e1fff5e559f6fdfa09868fdada28ca7c71200f2996ced929"><div class="ttname"><a href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa09868fdada28ca7c71200f2996ced929">RESET_STICKY</a></div><div class="ttdeci">@ RESET_STICKY</div><div class="ttdoc">When the primitive is signaled, it will wake up all threads and it won't clear itself automatically.</div><div class="ttdef"><b>Definition:</b> svc.h:107</div></div>
|
|
<div class="ttc" id="asvc_8h_html_adfe6b9db49aa88865e1fff5e559f6fdfa5e28681d7775d2a1fe89b4644ed8d57e"><div class="ttname"><a href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa5e28681d7775d2a1fe89b4644ed8d57e">RESET_ONESHOT</a></div><div class="ttdeci">@ RESET_ONESHOT</div><div class="ttdoc">When the primitive is signaled, it will wake up exactly one thread and will clear itself automaticall...</div><div class="ttdef"><b>Definition:</b> svc.h:106</div></div>
|
|
<div class="ttc" id="asvc_8h_html_adfe6b9db49aa88865e1fff5e559f6fdfa7b810dd120f32f073cf6f36de294191e"><div class="ttname"><a href="svc_8h.html#adfe6b9db49aa88865e1fff5e559f6fdfa7b810dd120f32f073cf6f36de294191e">RESET_PULSE</a></div><div class="ttdeci">@ RESET_PULSE</div><div class="ttdoc">Only meaningful for timers: same as ONESHOT but it will periodically signal the timer instead of just...</div><div class="ttdef"><b>Definition:</b> svc.h:108</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ae1fad9317c81076e1394a376ab27c720"><div class="ttname"><a href="svc_8h.html#ae1fad9317c81076e1394a376ab27c720">svcSleepThread</a></div><div class="ttdeci">void svcSleepThread(s64 ns)</div><div class="ttdoc">Puts the current thread to sleep.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ae43be244fb71321c8101547a20b65693"><div class="ttname"><a href="svc_8h.html#ae43be244fb71321c8101547a20b65693">svcGetProcessDebugEvent</a></div><div class="ttdeci">Result svcGetProcessDebugEvent(DebugEventInfo *info, Handle debug)</div><div class="ttdoc">Gets the current debug event of a debugged process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ae4f42994fe420745b8d079d791441d42"><div class="ttname"><a href="svc_8h.html#ae4f42994fe420745b8d079d791441d42">svcSetThreadIdealProcessor</a></div><div class="ttdeci">Result svcSetThreadIdealProcessor(Handle thread, s32 processorid)</div><div class="ttdoc">Sets a thread's ideal processor.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ae50054f7b88b075eca23b05b92fb1582"><div class="ttname"><a href="svc_8h.html#ae50054f7b88b075eca23b05b92fb1582">svcSetThreadPriority</a></div><div class="ttdeci">Result svcSetThreadPriority(Handle thread, s32 prio)</div><div class="ttdoc">Changes the priority of a thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_ae52c7fb0b8c1046268ad81719500eb8f"><div class="ttname"><a href="svc_8h.html#ae52c7fb0b8c1046268ad81719500eb8f">svcGetProcessAffinityMask</a></div><div class="ttdeci">Result svcGetProcessAffinityMask(u8 *affinitymask, Handle process, s32 processorcount)</div><div class="ttdoc">Gets a process's affinity mask.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aea161e7c96b51fd4db42a168f678d413"><div class="ttname"><a href="svc_8h.html#aea161e7c96b51fd4db42a168f678d413">svcTerminateDebugProcess</a></div><div class="ttdeci">Result svcTerminateDebugProcess(Handle debug)</div><div class="ttdoc">Terminates a debugged process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aead5817ed16bb2e3f9dfe228dea2c81a"><div class="ttname"><a href="svc_8h.html#aead5817ed16bb2e3f9dfe228dea2c81a">svcOpenThread</a></div><div class="ttdeci">Result svcOpenThread(Handle *thread, Handle process, u32 threadId)</div><div class="ttdoc">Gets the handle of a thread.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aec567b6e8ea8fe1ac41ac1fe117a6345"><div class="ttname"><a href="svc_8h.html#aec567b6e8ea8fe1ac41ac1fe117a6345">svcSetDebugThreadContext</a></div><div class="ttdeci">Result svcSetDebugThreadContext(Handle debug, u32 threadId, ThreadContext *context, ThreadContextControlFlags controlFlags)</div><div class="ttdoc">Updates the saved registers of a thread, either inactive or awaiting svcContinueDebugEvent,...</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aecce8ec0ae7a047d6df92e8dafd6e099"><div class="ttname"><a href="svc_8h.html#aecce8ec0ae7a047d6df92e8dafd6e099">svcUnbindInterrupt</a></div><div class="ttdeci">Result svcUnbindInterrupt(u32 interruptId, Handle eventOrSemaphore)</div><div class="ttdoc">Unbinds an event or semaphore handle from an ARM11 interrupt.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_aee49171a3a435f8879a019620b51dcd0"><div class="ttname"><a href="svc_8h.html#aee49171a3a435f8879a019620b51dcd0">svcSetProcessAffinityMask</a></div><div class="ttdeci">Result svcSetProcessAffinityMask(Handle process, const u8 *affinitymask, s32 processorcount)</div><div class="ttdoc">Sets a process's affinity mask.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25">PerfCounterRegister</a></div><div class="ttdeci">PerfCounterRegister</div><div class="ttdoc">Performance counter register IDs (CP15 and SCU).</div><div class="ttdef"><b>Definition:</b> svc.h:212</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a21629d5ab07c1422ecbb559d4a11f46c"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a21629d5ab07c1422ecbb559d4a11f46c">PERFCOUNTERREG_CORE_CYCLE_COUNTER</a></div><div class="ttdeci">@ PERFCOUNTERREG_CORE_CYCLE_COUNTER</div><div class="ttdoc">CP15 CCNT.</div><div class="ttdef"><b>Definition:</b> svc.h:217</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a2df47c626c6f922950c421b9b9dc25f7"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a2df47c626c6f922950c421b9b9dc25f7">PERFCOUNTERREG_CORE_COUNT_REG_1</a></div><div class="ttdeci">@ PERFCOUNTERREG_CORE_COUNT_REG_1</div><div class="ttdoc">CP15 PMN1.</div><div class="ttdef"><b>Definition:</b> svc.h:216</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a5871f8bc09de26839e6b75b81b677481"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a5871f8bc09de26839e6b75b81b677481">PERFCOUNTERREG_SCU_7</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_7</div><div class="ttdoc">SCU MN7. Prod-N3DS only. IRQ line missing.</div><div class="ttdef"><b>Definition:</b> svc.h:228</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a5dec0a4112ca52e49f81390da99ccf6f"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a5dec0a4112ca52e49f81390da99ccf6f">PERFCOUNTERREG_SCU_6</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_6</div><div class="ttdoc">SCU MN6. Prod-N3DS only. IRQ line missing.</div><div class="ttdef"><b>Definition:</b> svc.h:227</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a7a7051dae3b036b43e26c73166263748"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a7a7051dae3b036b43e26c73166263748">PERFCOUNTERREG_SCU_3</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_3</div><div class="ttdoc">SCU MN3.</div><div class="ttdef"><b>Definition:</b> svc.h:224</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a7f13355747739b775648ee8802facf91"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a7f13355747739b775648ee8802facf91">PERFCOUNTERREG_SCU_5</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_5</div><div class="ttdoc">SCU MN5. Prod-N3DS only. IRQ line missing.</div><div class="ttdef"><b>Definition:</b> svc.h:226</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a8cd0cf2d5df85b29d57a4e59b08b6c54"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a8cd0cf2d5df85b29d57a4e59b08b6c54">PERFCOUNTERREG_SCU_1</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_1</div><div class="ttdoc">SCU MN1.</div><div class="ttdef"><b>Definition:</b> svc.h:222</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a928354e899519d64cc2158bf6fed3fd2"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a928354e899519d64cc2158bf6fed3fd2">PERFCOUNTERREG_SCU_2</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_2</div><div class="ttdoc">SCU MN2.</div><div class="ttdef"><b>Definition:</b> svc.h:223</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25a9efbd9753e6db0e05ed3530cedb02c7e"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25a9efbd9753e6db0e05ed3530cedb02c7e">PERFCOUNTERREG_SCU_0</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_0</div><div class="ttdoc">SCU MN0.</div><div class="ttdef"><b>Definition:</b> svc.h:221</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25ad766b5a7dbfc2146f20e1b05bec28abf"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25ad766b5a7dbfc2146f20e1b05bec28abf">PERFCOUNTERREG_CORE_COUNT_REG_0</a></div><div class="ttdeci">@ PERFCOUNTERREG_CORE_COUNT_REG_0</div><div class="ttdoc">CP15 PMN0.</div><div class="ttdef"><b>Definition:</b> svc.h:215</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af19b39931820deecca7704fe82695c25ae23cdfca904749e817efa2171e7f98a9"><div class="ttname"><a href="svc_8h.html#af19b39931820deecca7704fe82695c25ae23cdfca904749e817efa2171e7f98a9">PERFCOUNTERREG_SCU_4</a></div><div class="ttdeci">@ PERFCOUNTERREG_SCU_4</div><div class="ttdoc">SCU MN4. Prod-N3DS only. IRQ line missing.</div><div class="ttdef"><b>Definition:</b> svc.h:225</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af1c2d3d3b17455505aa7d277ba230a7a"><div class="ttname"><a href="svc_8h.html#af1c2d3d3b17455505aa7d277ba230a7a">svcSignalEvent</a></div><div class="ttdeci">Result svcSignalEvent(Handle handle)</div><div class="ttdoc">Signals an event.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af8008fc36f898e4e2def32627cb96b47"><div class="ttname"><a href="svc_8h.html#af8008fc36f898e4e2def32627cb96b47">svcStartInterProcessDma</a></div><div class="ttdeci">Result svcStartInterProcessDma(Handle *dma, Handle dstProcess, u32 dstAddr, Handle srcProcess, u32 srcAddr, u32 size, const DmaConfig *cfg)</div><div class="ttdoc">Begins an inter-process DMA transfer.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af82f17b3c13ab9cd97dff78721d24d0d"><div class="ttname"><a href="svc_8h.html#af82f17b3c13ab9cd97dff78721d24d0d">svcFlushProcessDataCache</a></div><div class="ttdeci">Result svcFlushProcessDataCache(Handle process, u32 addr, u32 size)</div><div class="ttdoc">Flushes (cleans and invalidates) a process's data cache.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af83b6eb4ee03ce1aae2ccb64906e759c"><div class="ttname"><a href="svc_8h.html#af83b6eb4ee03ce1aae2ccb64906e759c">svcCreateMutex</a></div><div class="ttdeci">Result svcCreateMutex(Handle *mutex, bool initially_locked)</div><div class="ttdoc">Creates a mutex.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af845bb532f3d83b20b5029bd4d913801"><div class="ttname"><a href="svc_8h.html#af845bb532f3d83b20b5029bd4d913801">dmaDeviceConfigInitDefault</a></div><div class="ttdeci">static void dmaDeviceConfigInitDefault(DmaDeviceConfig *cfg)</div><div class="ttdoc">Writes the default DMA device config that the kernel uses when DMACFG_*_IS_DEVICE and DMACFG_*_USE_CF...</div><div class="ttdef"><b>Definition:</b> svc.h:560</div></div>
|
|
<div class="ttc" id="asvc_8h_html_af9dcc9ae0b21ce1363522c23203d4d6c"><div class="ttname"><a href="svc_8h.html#af9dcc9ae0b21ce1363522c23203d4d6c">svcControlProcessMemory</a></div><div class="ttdeci">Result svcControlProcessMemory(Handle process, u32 addr0, u32 addr1, u32 size, u32 type, u32 perm)</div><div class="ttdoc">Controls the memory mapping of a process.</div></div>
|
|
<div class="ttc" id="asvc_8h_html_afb244db47f6810fb782b5331c83c52ea"><div class="ttname"><a href="svc_8h.html#afb244db47f6810fb782b5331c83c52ea">svcGetDmaState</a></div><div class="ttdeci">Result svcGetDmaState(DmaState *state, Handle dma)</div><div class="ttdoc">Gets the state of an inter-process DMA transfer.</div></div>
|
|
<div class="ttc" id="atypes_8h_html"><div class="ttname"><a href="types_8h.html">types.h</a></div><div class="ttdoc">Various system types.</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a350c6fc928e3bdc6c6486268ac8fb269"><div class="ttname"><a href="types_8h.html#a350c6fc928e3bdc6c6486268ac8fb269">s64</a></div><div class="ttdeci">int64_t s64</div><div class="ttdoc">64-bit signed integer</div><div class="ttdef"><b>Definition:</b> types.h:29</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:47</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:24</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a857e4e893f41191500e83c00058df64e"><div class="ttname"><a href="types_8h.html#a857e4e893f41191500e83c00058df64e">ThreadFunc</a></div><div class="ttdeci">void(* ThreadFunc)(void *)</div><div class="ttdoc">Thread entrypoint function.</div><div class="ttdef"><b>Definition:</b> types.h:43</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">would be nice if newlib had this already</div><div class="ttdef"><b>Definition:</b> types.h:21</div></div>
|
|
<div class="ttc" id="atypes_8h_html_a9e382f207c65ca13ab4ae98363aeda80"><div class="ttname"><a href="types_8h.html#a9e382f207c65ca13ab4ae98363aeda80">s8</a></div><div class="ttdeci">int8_t s8</div><div class="ttdoc">8-bit signed integer</div><div class="ttdef"><b>Definition:</b> types.h:26</div></div>
|
|
<div class="ttc" id="atypes_8h_html_aa980e2c02ba2305e0f489d5650655425"><div class="ttname"><a href="types_8h.html#aa980e2c02ba2305e0f489d5650655425">s16</a></div><div class="ttdeci">int16_t s16</div><div class="ttdoc">16-bit signed integer</div><div class="ttdef"><b>Definition:</b> types.h:27</div></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">Resource handle.</div><div class="ttdef"><b>Definition:</b> types.h:41</div></div>
|
|
<div class="ttc" id="atypes_8h_html_ac830bf5a4f2cf8273f61ab99a46cf163"><div class="ttname"><a href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a></div><div class="ttdeci">s32 Result</div><div class="ttdoc">Function result.</div><div class="ttdef"><b>Definition:</b> types.h:42</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:22</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:28</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:23</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.1
|
|
</small></address>
|
|
</body>
|
|
</html>
|