225 lines
37 KiB
HTML
225 lines
37 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.8.20"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>MyOS Kernel: kernel/tasking.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="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.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">MyOS Kernel
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.20 -->
|
|
<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');
|
|
/* @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>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(document).ready(function(){initNavTree('tasking_8h_source.html',''); initResizable(); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- 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 class="header">
|
|
<div class="headertitle">
|
|
<div class="title">tasking.h</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a href="tasking_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>  </div>
|
|
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#ifndef KERN_TASKING_H</span></div>
|
|
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#define KERN_TASKING_H</span></div>
|
|
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>  </div>
|
|
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include <stdint.h></span></div>
|
|
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include <sys/types.h></span></div>
|
|
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="rpc_8h.html">rpc.h</a>"</span></div>
|
|
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
|
|
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#ifndef TASKING_H</span></div>
|
|
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
|
|
<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207"> 17</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207">thread_state</a> {</div>
|
|
<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207aa5639ff4eff3f959406116db9e020c44"> 18</a></span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207aa5639ff4eff3f959406116db9e020c44">THREAD_RUNNING</a>, </div>
|
|
<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207adc6a307a71277ce8d642b5b916e05042"> 19</a></span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207adc6a307a71277ce8d642b5b916e05042">THREAD_READY</a>, </div>
|
|
<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207ac9087b7375864c084808109e1e1af5bb"> 20</a></span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207ac9087b7375864c084808109e1e1af5bb">THREAD_EXITED</a>, </div>
|
|
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207a4aeda0a1e7e9882ce8b0310833fee46e"> 21</a></span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207a4aeda0a1e7e9882ce8b0310833fee46e">THREAD_BLOCKED</a>, </div>
|
|
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207acd01ee7d9777106ac78018c1a4c9d0c5"> 22</a></span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207acd01ee7d9777106ac78018c1a4c9d0c5">THREAD_WAITING_FOR_RPC</a>, </div>
|
|
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207aacdc779922a036c6e1bf65ddeea471b8">THREAD_WAITING_FOR_RPC_INIT</a> </div>
|
|
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207aacdc779922a036c6e1bf65ddeea471b8"> 24</a></span> } <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207">thread_state</a>;</div>
|
|
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
|
|
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</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"> 28</span> <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a>;</div>
|
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
|
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structProcess.html"> 33</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structProcess.html">Process</a> {</div>
|
|
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structProcess.html#af6d80a830e83c92cf1524041130ecda8"> 34</a></span>  <span class="keywordtype">char</span> <a class="code" href="structProcess.html#af6d80a830e83c92cf1524041130ecda8">priv</a>; </div>
|
|
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structProcess.html#a2097d5c8b6b2049b837d9e8f37b7176f"> 35</a></span>  pid_t <a class="code" href="structProcess.html#a2097d5c8b6b2049b837d9e8f37b7176f">pid</a>; </div>
|
|
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structProcess.html#ade42afe3b9fb94ce3c4baff8aa0e740f"> 36</a></span>  pid_t <a class="code" href="structProcess.html#ade42afe3b9fb94ce3c4baff8aa0e740f">next_tid</a>; </div>
|
|
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structProcess.html#ab6a9356bdc1ccce9be96c863ed81a160"> 37</a></span>  <span class="keywordtype">int</span> <a class="code" href="structProcess.html#ab6a9356bdc1ccce9be96c863ed81a160">num_threads</a>; </div>
|
|
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structProcess.html#a48d146893ce0e6d35cb3b950e9f9b3bd"> 38</a></span>  <span class="keywordtype">int</span> <a class="code" href="structProcess.html#a48d146893ce0e6d35cb3b950e9f9b3bd">num_threads_blocked</a>; </div>
|
|
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structProcess.html#af6aa293cc982154a6b4880067258d66b"> 39</a></span>  <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a>* <a class="code" href="structProcess.html#af6aa293cc982154a6b4880067258d66b">first_thread</a>; </div>
|
|
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> } <a class="code" href="structProcess.html">Process</a>;</div>
|
|
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  </div>
|
|
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structThread.html"> 45</a></span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a> {</div>
|
|
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structThread.html#a5c7be841d425e4383daccdce34d7aa29"> 46</a></span>  <span class="keywordtype">void</span>* <a class="code" href="structThread.html#a5c7be841d425e4383daccdce34d7aa29">kernel_esp</a>; </div>
|
|
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="structThread.html#ad587532fcef04437ad95e1cfea76ba2f"> 47</a></span>  <span class="keywordtype">void</span>* <a class="code" href="structThread.html#ad587532fcef04437ad95e1cfea76ba2f">kernel_esp_top</a>; </div>
|
|
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structThread.html#a41198f851a921c04cce111e5d5f4cb0c"> 48</a></span>  <span class="keywordtype">void</span>* <a class="code" href="structThread.html#a41198f851a921c04cce111e5d5f4cb0c">address_space</a>; </div>
|
|
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structThread.html#a85915c03a5847d0f7c08660c8181a74e"> 49</a></span>  pid_t <a class="code" href="structThread.html#a85915c03a5847d0f7c08660c8181a74e">tid</a>; </div>
|
|
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structThread.html#a05ff1695379212103807ae341e995344"> 50</a></span>  <a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207">thread_state</a> <a class="code" href="structThread.html#a05ff1695379212103807ae341e995344">state</a>; </div>
|
|
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structThread.html#acb2fe83a77f2e2eea943869b40e472b0"> 51</a></span>  <span class="keywordtype">int</span> <a class="code" href="structThread.html#acb2fe83a77f2e2eea943869b40e472b0">errno</a>; </div>
|
|
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structThread.html#a2e36472c509fe52f73133906c1f26aac"> 52</a></span>  <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a>* <a class="code" href="structThread.html#a2e36472c509fe52f73133906c1f26aac">next_thread_in_process</a>; </div>
|
|
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structThread.html#adfbbeb19a2571fa9c650ea9755aa2da7"> 53</a></span>  <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a>* <a class="code" href="structThread.html#adfbbeb19a2571fa9c650ea9755aa2da7">prev_thread_in_process</a>; </div>
|
|
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structThread.html#a7bd6ad78697d0bd0e20334a6aca7babb"> 54</a></span>  <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a>* <a class="code" href="structThread.html#a7bd6ad78697d0bd0e20334a6aca7babb">next_ready_to_run</a>; </div>
|
|
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structThread.html#a446b54c14f79942f79e2e78cf10b2f22"> 55</a></span>  <span class="keyword">struct </span><a class="code" href="structThread.html">Thread</a>* <a class="code" href="structThread.html#a446b54c14f79942f79e2e78cf10b2f22">prev_ready_to_run</a>; </div>
|
|
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structThread.html#a13b09b855703f94e0431cb650ce50161"> 56</a></span>  <a class="code" href="structProcess.html">Process</a>* <a class="code" href="structThread.html#a13b09b855703f94e0431cb650ce50161">process</a>; </div>
|
|
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structThread.html#aab394669e40cdcfb7eb8ca80a2bf76c2"> 57</a></span>  pid_t <a class="code" href="structThread.html#aab394669e40cdcfb7eb8ca80a2bf76c2">rpc_calling_pid</a>; </div>
|
|
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structThread.html#a89fab8cc0a3761eb4166c46fd49fa7af"> 58</a></span>  pid_t <a class="code" href="structThread.html#a89fab8cc0a3761eb4166c46fd49fa7af">rpc_calling_tid</a>; </div>
|
|
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structThread.html#a2bfbd768e1c964e4a5479deab077bf43"> 59</a></span>  <span class="keywordtype">void</span>* <a class="code" href="structThread.html#a2bfbd768e1c964e4a5479deab077bf43">rpc_ret_buf</a>; </div>
|
|
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> } <a class="code" href="structThread.html">Thread</a>;</div>
|
|
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  </div>
|
|
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">extern</span> <a class="code" href="structThread.html">Thread</a>* <a class="code" href="tasking_8h.html#aac59f73081d1aff0293b54c543b552ca">current_thread</a>;</div>
|
|
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
|
|
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#ac90817d992a64d95d80e4505343ed13c">tasking_create_task</a>(<span class="keywordtype">void</span>* eip,<span class="keywordtype">void</span>* <a class="code" href="structThread.html#a41198f851a921c04cce111e5d5f4cb0c">address_space</a>,<span class="keywordtype">char</span> kmode,<span class="keywordtype">void</span>* param1,<span class="keywordtype">void</span>* param2,<span class="keywordtype">char</span> isThread);</div>
|
|
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#a45f6d4112f15e33ba7a0e356f821d056">tasking_init</a>();</div>
|
|
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">char</span> <a class="code" href="tasking_8h.html#a47f424f3474f4298f1d6b65eeee5d0f6">tasking_is_privleged</a>();</div>
|
|
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> pid_t <a class="code" href="tasking_8h.html#a9555a59dc2340ce36ae1a84c984b3af0">tasking_get_PID</a>();</div>
|
|
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> pid_t <a class="code" href="tasking_8h.html#a579bdf6585f7b466257320a1ad51429a">tasking_get_TID</a>();</div>
|
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">int</span>* <a class="code" href="tasking_8h.html#a347fac6db01ff796e5dc6d1fc44c2eef">tasking_get_errno_address</a>();</div>
|
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> pid_t <a class="code" href="tasking_8h.html#a8a911d2c94f4a15da6dbbf9fdccdda7e">tasking_new_thread</a>(<span class="keywordtype">void</span>* start,pid_t pid,<span class="keywordtype">void</span>* param);</div>
|
|
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#acf62dd83316df4b63f4a93587c9b791e">tasking_exit</a>(<span class="keywordtype">int</span> code);</div>
|
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#a021c821360fc28b1a509b585f8d21769">tasking_block</a>(<a class="code" href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207">thread_state</a> newstate);</div>
|
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#a8daf634972bbe78df522aade52c180bf">tasking_unblock</a>(pid_t pid,pid_t <a class="code" href="structThread.html#a85915c03a5847d0f7c08660c8181a74e">tid</a>);</div>
|
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#a78aa02f7e342d1a6f76fb2c692086f50">tasking_yield</a>();</div>
|
|
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">void</span>* <a class="code" href="tasking_8h.html#a85f3e86dc7ddee108196d0557e307f9a">tasking_get_address_space</a>(pid_t pid);</div>
|
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#ad04e43c483d045987f614582a4203082">tasking_set_rpc_calling_thread</a>(pid_t pid,pid_t <a class="code" href="structThread.html#a85915c03a5847d0f7c08660c8181a74e">tid</a>);</div>
|
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
|
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> pid_t <a class="code" href="tasking_8h.html#a25a4a19651c904d1611592f57d255c13">tasking_get_rpc_calling_thread</a>(pid_t* <a class="code" href="structThread.html#a85915c03a5847d0f7c08660c8181a74e">tid</a>);</div>
|
|
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#adb458c9afaae981717f509dd3fe27123">tasking_set_rpc_ret_buf</a>(<span class="keywordtype">void</span>* buf);</div>
|
|
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
|
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keywordtype">void</span>* <a class="code" href="tasking_8h.html#a475df75594db94effc24fcbe1e726f3e">tasking_get_rpc_ret_buf</a>();</div>
|
|
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
|
|
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keywordtype">void</span> <a class="code" href="tasking_8h.html#ad6ae5d8a6f880c32173f67ce8164f8f5">tasking_thread_exit</a>();</div>
|
|
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
|
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keywordtype">char</span> <a class="code" href="tasking_8h.html#afc5aaab63d5bde8a7e35e57605ab4e1d">tasking_check_proc_exists</a>(pid_t pid);</div>
|
|
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
|
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor">#endif</span></div>
|
|
</div><!-- fragment --></div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<div class="ttc" id="atasking_8h_html_aac59f73081d1aff0293b54c543b552ca"><div class="ttname"><a href="tasking_8h.html#aac59f73081d1aff0293b54c543b552ca">current_thread</a></div><div class="ttdeci">Thread * current_thread</div><div class="ttdoc">Currently running thread.</div><div class="ttdef"><b>Definition:</b> tasking.c:22</div></div>
|
|
<div class="ttc" id="astructProcess_html_ab6a9356bdc1ccce9be96c863ed81a160"><div class="ttname"><a href="structProcess.html#ab6a9356bdc1ccce9be96c863ed81a160">Process::num_threads</a></div><div class="ttdeci">int num_threads</div><div class="ttdoc">The number of threads in this process.</div><div class="ttdef"><b>Definition:</b> tasking.h:37</div></div>
|
|
<div class="ttc" id="astructThread_html_adfbbeb19a2571fa9c650ea9755aa2da7"><div class="ttname"><a href="structThread.html#adfbbeb19a2571fa9c650ea9755aa2da7">Thread::prev_thread_in_process</a></div><div class="ttdeci">struct Thread * prev_thread_in_process</div><div class="ttdoc">The previous thread in the process.</div><div class="ttdef"><b>Definition:</b> tasking.h:53</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207aacdc779922a036c6e1bf65ddeea471b8"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207aacdc779922a036c6e1bf65ddeea471b8">THREAD_WAITING_FOR_RPC_INIT</a></div><div class="ttdeci">@ THREAD_WAITING_FOR_RPC_INIT</div><div class="ttdoc">The state of a thread waiting for a process to fully initilaize it's RPC functions.</div><div class="ttdef"><b>Definition:</b> tasking.h:23</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a25a4a19651c904d1611592f57d255c13"><div class="ttname"><a href="tasking_8h.html#a25a4a19651c904d1611592f57d255c13">tasking_get_rpc_calling_thread</a></div><div class="ttdeci">pid_t tasking_get_rpc_calling_thread(pid_t *tid)</div><div class="ttdef"><b>Definition:</b> tasking.c:374</div></div>
|
|
<div class="ttc" id="astructThread_html_a2bfbd768e1c964e4a5479deab077bf43"><div class="ttname"><a href="structThread.html#a2bfbd768e1c964e4a5479deab077bf43">Thread::rpc_ret_buf</a></div><div class="ttdeci">void * rpc_ret_buf</div><div class="ttdoc">The return buffer of the RPC call that the thread made.</div><div class="ttdef"><b>Definition:</b> tasking.h:59</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a85f3e86dc7ddee108196d0557e307f9a"><div class="ttname"><a href="tasking_8h.html#a85f3e86dc7ddee108196d0557e307f9a">tasking_get_address_space</a></div><div class="ttdeci">void * tasking_get_address_space(pid_t pid)</div><div class="ttdef"><b>Definition:</b> tasking.c:364</div></div>
|
|
<div class="ttc" id="atasking_8h_html_afc5aaab63d5bde8a7e35e57605ab4e1d"><div class="ttname"><a href="tasking_8h.html#afc5aaab63d5bde8a7e35e57605ab4e1d">tasking_check_proc_exists</a></div><div class="ttdeci">char tasking_check_proc_exists(pid_t pid)</div><div class="ttdef"><b>Definition:</b> tasking.c:395</div></div>
|
|
<div class="ttc" id="astructThread_html_aab394669e40cdcfb7eb8ca80a2bf76c2"><div class="ttname"><a href="structThread.html#aab394669e40cdcfb7eb8ca80a2bf76c2">Thread::rpc_calling_pid</a></div><div class="ttdeci">pid_t rpc_calling_pid</div><div class="ttdoc">The PID of the thread that called this RPC (only used for RPC handler threads)</div><div class="ttdef"><b>Definition:</b> tasking.h:57</div></div>
|
|
<div class="ttc" id="astructThread_html_a05ff1695379212103807ae341e995344"><div class="ttname"><a href="structThread.html#a05ff1695379212103807ae341e995344">Thread::state</a></div><div class="ttdeci">thread_state state</div><div class="ttdoc">The state of this thread. (running,ready to run,blocked,etc.)</div><div class="ttdef"><b>Definition:</b> tasking.h:50</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a347fac6db01ff796e5dc6d1fc44c2eef"><div class="ttname"><a href="tasking_8h.html#a347fac6db01ff796e5dc6d1fc44c2eef">tasking_get_errno_address</a></div><div class="ttdeci">int * tasking_get_errno_address()</div><div class="ttdef"><b>Definition:</b> tasking.c:146</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a78aa02f7e342d1a6f76fb2c692086f50"><div class="ttname"><a href="tasking_8h.html#a78aa02f7e342d1a6f76fb2c692086f50">tasking_yield</a></div><div class="ttdeci">void tasking_yield()</div><div class="ttdef"><b>Definition:</b> tasking.c:217</div></div>
|
|
<div class="ttc" id="astructProcess_html_a48d146893ce0e6d35cb3b950e9f9b3bd"><div class="ttname"><a href="structProcess.html#a48d146893ce0e6d35cb3b950e9f9b3bd">Process::num_threads_blocked</a></div><div class="ttdeci">int num_threads_blocked</div><div class="ttdoc">The number of blocked threads in this process.</div><div class="ttdef"><b>Definition:</b> tasking.h:38</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207">thread_state</a></div><div class="ttdeci">thread_state</div><div class="ttdef"><b>Definition:</b> tasking.h:17</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a8a911d2c94f4a15da6dbbf9fdccdda7e"><div class="ttname"><a href="tasking_8h.html#a8a911d2c94f4a15da6dbbf9fdccdda7e">tasking_new_thread</a></div><div class="ttdeci">pid_t tasking_new_thread(void *start, pid_t pid, void *param)</div><div class="ttdef"><b>Definition:</b> tasking.c:150</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207acd01ee7d9777106ac78018c1a4c9d0c5"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207acd01ee7d9777106ac78018c1a4c9d0c5">THREAD_WAITING_FOR_RPC</a></div><div class="ttdeci">@ THREAD_WAITING_FOR_RPC</div><div class="ttdoc">The state of a thread waiting for an RPC call to return.</div><div class="ttdef"><b>Definition:</b> tasking.h:22</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207a4aeda0a1e7e9882ce8b0310833fee46e"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207a4aeda0a1e7e9882ce8b0310833fee46e">THREAD_BLOCKED</a></div><div class="ttdeci">@ THREAD_BLOCKED</div><div class="ttdoc">The state of a generically blocked thread.</div><div class="ttdef"><b>Definition:</b> tasking.h:21</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207aa5639ff4eff3f959406116db9e020c44"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207aa5639ff4eff3f959406116db9e020c44">THREAD_RUNNING</a></div><div class="ttdeci">@ THREAD_RUNNING</div><div class="ttdoc">The state of a running thread.</div><div class="ttdef"><b>Definition:</b> tasking.h:18</div></div>
|
|
<div class="ttc" id="astructThread_html_a2e36472c509fe52f73133906c1f26aac"><div class="ttname"><a href="structThread.html#a2e36472c509fe52f73133906c1f26aac">Thread::next_thread_in_process</a></div><div class="ttdeci">struct Thread * next_thread_in_process</div><div class="ttdoc">The next thread in the process.</div><div class="ttdef"><b>Definition:</b> tasking.h:52</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a579bdf6585f7b466257320a1ad51429a"><div class="ttname"><a href="tasking_8h.html#a579bdf6585f7b466257320a1ad51429a">tasking_get_TID</a></div><div class="ttdeci">pid_t tasking_get_TID()</div><div class="ttdef"><b>Definition:</b> tasking.c:142</div></div>
|
|
<div class="ttc" id="arpc_8h_html"><div class="ttname"><a href="rpc_8h.html">rpc.h</a></div></div>
|
|
<div class="ttc" id="astructThread_html_a13b09b855703f94e0431cb650ce50161"><div class="ttname"><a href="structThread.html#a13b09b855703f94e0431cb650ce50161">Thread::process</a></div><div class="ttdeci">Process * process</div><div class="ttdoc">The thread's process.</div><div class="ttdef"><b>Definition:</b> tasking.h:56</div></div>
|
|
<div class="ttc" id="astructProcess_html_ade42afe3b9fb94ce3c4baff8aa0e740f"><div class="ttname"><a href="structProcess.html#ade42afe3b9fb94ce3c4baff8aa0e740f">Process::next_tid</a></div><div class="ttdeci">pid_t next_tid</div><div class="ttdoc">The TID that the next created thread will use.</div><div class="ttdef"><b>Definition:</b> tasking.h:36</div></div>
|
|
<div class="ttc" id="atasking_8h_html_ad6ae5d8a6f880c32173f67ce8164f8f5"><div class="ttname"><a href="tasking_8h.html#ad6ae5d8a6f880c32173f67ce8164f8f5">tasking_thread_exit</a></div><div class="ttdeci">void tasking_thread_exit()</div><div class="ttdef"><b>Definition:</b> tasking.c:390</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a47f424f3474f4298f1d6b65eeee5d0f6"><div class="ttname"><a href="tasking_8h.html#a47f424f3474f4298f1d6b65eeee5d0f6">tasking_is_privleged</a></div><div class="ttdeci">char tasking_is_privleged()</div><div class="ttdef"><b>Definition:</b> tasking.c:134</div></div>
|
|
<div class="ttc" id="astructThread_html_a85915c03a5847d0f7c08660c8181a74e"><div class="ttname"><a href="structThread.html#a85915c03a5847d0f7c08660c8181a74e">Thread::tid</a></div><div class="ttdeci">pid_t tid</div><div class="ttdoc">The TID of this thread.</div><div class="ttdef"><b>Definition:</b> tasking.h:49</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a8daf634972bbe78df522aade52c180bf"><div class="ttname"><a href="tasking_8h.html#a8daf634972bbe78df522aade52c180bf">tasking_unblock</a></div><div class="ttdeci">void tasking_unblock(pid_t pid, pid_t tid)</div><div class="ttdef"><b>Definition:</b> tasking.c:311</div></div>
|
|
<div class="ttc" id="atasking_8h_html_ad04e43c483d045987f614582a4203082"><div class="ttname"><a href="tasking_8h.html#ad04e43c483d045987f614582a4203082">tasking_set_rpc_calling_thread</a></div><div class="ttdeci">void tasking_set_rpc_calling_thread(pid_t pid, pid_t tid)</div><div class="ttdef"><b>Definition:</b> tasking.c:368</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a9555a59dc2340ce36ae1a84c984b3af0"><div class="ttname"><a href="tasking_8h.html#a9555a59dc2340ce36ae1a84c984b3af0">tasking_get_PID</a></div><div class="ttdeci">pid_t tasking_get_PID()</div><div class="ttdef"><b>Definition:</b> tasking.c:138</div></div>
|
|
<div class="ttc" id="atasking_8h_html_acf62dd83316df4b63f4a93587c9b791e"><div class="ttname"><a href="tasking_8h.html#acf62dd83316df4b63f4a93587c9b791e">tasking_exit</a></div><div class="ttdeci">void tasking_exit(int code)</div><div class="ttdef"><b>Definition:</b> tasking.c:326</div></div>
|
|
<div class="ttc" id="astructThread_html"><div class="ttname"><a href="structThread.html">Thread</a></div><div class="ttdef"><b>Definition:</b> tasking.h:45</div></div>
|
|
<div class="ttc" id="astructThread_html_a89fab8cc0a3761eb4166c46fd49fa7af"><div class="ttname"><a href="structThread.html#a89fab8cc0a3761eb4166c46fd49fa7af">Thread::rpc_calling_tid</a></div><div class="ttdeci">pid_t rpc_calling_tid</div><div class="ttdoc">The TID of the thread that called this RPC (only used for RPC handler threads)</div><div class="ttdef"><b>Definition:</b> tasking.h:58</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207ac9087b7375864c084808109e1e1af5bb"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207ac9087b7375864c084808109e1e1af5bb">THREAD_EXITED</a></div><div class="ttdeci">@ THREAD_EXITED</div><div class="ttdoc">The state of an exited thread.</div><div class="ttdef"><b>Definition:</b> tasking.h:20</div></div>
|
|
<div class="ttc" id="astructProcess_html_af6d80a830e83c92cf1524041130ecda8"><div class="ttname"><a href="structProcess.html#af6d80a830e83c92cf1524041130ecda8">Process::priv</a></div><div class="ttdeci">char priv</div><div class="ttdoc">Whether the process is privileged (can execute syscalls to acesss all of memory/has acess to IO ports...</div><div class="ttdef"><b>Definition:</b> tasking.h:34</div></div>
|
|
<div class="ttc" id="astructThread_html_a5c7be841d425e4383daccdce34d7aa29"><div class="ttname"><a href="structThread.html#a5c7be841d425e4383daccdce34d7aa29">Thread::kernel_esp</a></div><div class="ttdeci">void * kernel_esp</div><div class="ttdoc">The thread's kernel stack.</div><div class="ttdef"><b>Definition:</b> tasking.h:46</div></div>
|
|
<div class="ttc" id="astructProcess_html_af6aa293cc982154a6b4880067258d66b"><div class="ttname"><a href="structProcess.html#af6aa293cc982154a6b4880067258d66b">Process::first_thread</a></div><div class="ttdeci">struct Thread * first_thread</div><div class="ttdoc">A pointer to the head of the linked list of threads for this process.</div><div class="ttdef"><b>Definition:</b> tasking.h:39</div></div>
|
|
<div class="ttc" id="atasking_8h_html_ac90817d992a64d95d80e4505343ed13c"><div class="ttname"><a href="tasking_8h.html#ac90817d992a64d95d80e4505343ed13c">tasking_create_task</a></div><div class="ttdeci">void tasking_create_task(void *eip, void *address_space, char kmode, void *param1, void *param2, char isThread)</div><div class="ttdef"><b>Definition:</b> tasking.c:93</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a021c821360fc28b1a509b585f8d21769"><div class="ttname"><a href="tasking_8h.html#a021c821360fc28b1a509b585f8d21769">tasking_block</a></div><div class="ttdeci">void tasking_block(thread_state newstate)</div><div class="ttdef"><b>Definition:</b> tasking.c:247</div></div>
|
|
<div class="ttc" id="astructProcess_html_a2097d5c8b6b2049b837d9e8f37b7176f"><div class="ttname"><a href="structProcess.html#a2097d5c8b6b2049b837d9e8f37b7176f">Process::pid</a></div><div class="ttdeci">pid_t pid</div><div class="ttdoc">The PID of this process.</div><div class="ttdef"><b>Definition:</b> tasking.h:35</div></div>
|
|
<div class="ttc" id="astructProcess_html"><div class="ttname"><a href="structProcess.html">Process</a></div><div class="ttdef"><b>Definition:</b> tasking.h:33</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a475df75594db94effc24fcbe1e726f3e"><div class="ttname"><a href="tasking_8h.html#a475df75594db94effc24fcbe1e726f3e">tasking_get_rpc_ret_buf</a></div><div class="ttdeci">void * tasking_get_rpc_ret_buf()</div><div class="ttdef"><b>Definition:</b> tasking.c:386</div></div>
|
|
<div class="ttc" id="atasking_8h_html_adb458c9afaae981717f509dd3fe27123"><div class="ttname"><a href="tasking_8h.html#adb458c9afaae981717f509dd3fe27123">tasking_set_rpc_ret_buf</a></div><div class="ttdeci">void tasking_set_rpc_ret_buf(void *buf)</div><div class="ttdef"><b>Definition:</b> tasking.c:379</div></div>
|
|
<div class="ttc" id="astructThread_html_a7bd6ad78697d0bd0e20334a6aca7babb"><div class="ttname"><a href="structThread.html#a7bd6ad78697d0bd0e20334a6aca7babb">Thread::next_ready_to_run</a></div><div class="ttdeci">struct Thread * next_ready_to_run</div><div class="ttdoc">If the thread is in the ready to run list, this is the next ready to run thread. (potentially in a di...</div><div class="ttdef"><b>Definition:</b> tasking.h:54</div></div>
|
|
<div class="ttc" id="astructThread_html_acb2fe83a77f2e2eea943869b40e472b0"><div class="ttname"><a href="structThread.html#acb2fe83a77f2e2eea943869b40e472b0">Thread::errno</a></div><div class="ttdeci">int errno</div><div class="ttdoc">The errno value for this thread.</div><div class="ttdef"><b>Definition:</b> tasking.h:51</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a45f6d4112f15e33ba7a0e356f821d056"><div class="ttname"><a href="tasking_8h.html#a45f6d4112f15e33ba7a0e356f821d056">tasking_init</a></div><div class="ttdeci">void tasking_init()</div><div class="ttdef"><b>Definition:</b> tasking.c:126</div></div>
|
|
<div class="ttc" id="astructThread_html_ad587532fcef04437ad95e1cfea76ba2f"><div class="ttname"><a href="structThread.html#ad587532fcef04437ad95e1cfea76ba2f">Thread::kernel_esp_top</a></div><div class="ttdeci">void * kernel_esp_top</div><div class="ttdoc">The top of the thread's kernel stack.</div><div class="ttdef"><b>Definition:</b> tasking.h:47</div></div>
|
|
<div class="ttc" id="astructThread_html_a446b54c14f79942f79e2e78cf10b2f22"><div class="ttname"><a href="structThread.html#a446b54c14f79942f79e2e78cf10b2f22">Thread::prev_ready_to_run</a></div><div class="ttdeci">struct Thread * prev_ready_to_run</div><div class="ttdoc">If the thread is in the ready to run list, this is the previous ready to run thread....</div><div class="ttdef"><b>Definition:</b> tasking.h:55</div></div>
|
|
<div class="ttc" id="astructThread_html_a41198f851a921c04cce111e5d5f4cb0c"><div class="ttname"><a href="structThread.html#a41198f851a921c04cce111e5d5f4cb0c">Thread::address_space</a></div><div class="ttdeci">void * address_space</div><div class="ttdoc">The address space of this thread. (it is in here and not in the process to simplify the task switch a...</div><div class="ttdef"><b>Definition:</b> tasking.h:48</div></div>
|
|
<div class="ttc" id="atasking_8h_html_a4b1b32c1fc744438f665f0f1932dd207adc6a307a71277ce8d642b5b916e05042"><div class="ttname"><a href="tasking_8h.html#a4b1b32c1fc744438f665f0f1932dd207adc6a307a71277ce8d642b5b916e05042">THREAD_READY</a></div><div class="ttdeci">@ THREAD_READY</div><div class="ttdoc">The state of a ready to run thread.</div><div class="ttdef"><b>Definition:</b> tasking.h:19</div></div>
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_dc43877d82dd332f9fb2071fcca799d6.html">kernel</a></li><li class="navelem"><a class="el" href="tasking_8h.html">tasking.h</a></li>
|
|
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|