docs/api-2.1/stack_8h.html

Sat, 06 Feb 2021 19:11:44 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 06 Feb 2021 19:11:44 +0100
changeset 390
d345541018fa
permissions
-rw-r--r--

starts ucx 3.0 development

universe@390 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
universe@390 2 <html xmlns="http://www.w3.org/1999/xhtml">
universe@390 3 <head>
universe@390 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
universe@390 5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
universe@390 6 <meta name="generator" content="Doxygen 1.8.13"/>
universe@390 7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
universe@390 8 <title>ucx: /home/mike/workspace/c/ucx/src/ucx/stack.h File Reference</title>
universe@390 9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
universe@390 10 <script type="text/javascript" src="jquery.js"></script>
universe@390 11 <script type="text/javascript" src="dynsections.js"></script>
universe@390 12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
universe@390 13 <script type="text/javascript" src="search/searchdata.js"></script>
universe@390 14 <script type="text/javascript" src="search/search.js"></script>
universe@390 15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
universe@390 16 </head>
universe@390 17 <body>
universe@390 18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
universe@390 19 <div id="titlearea">
universe@390 20 <table cellspacing="0" cellpadding="0">
universe@390 21 <tbody>
universe@390 22 <tr style="height: 56px;">
universe@390 23 <td id="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
universe@390 24 <td id="projectalign" style="padding-left: 0.5em;">
universe@390 25 <div id="projectname">ucx
universe@390 26 </div>
universe@390 27 <div id="projectbrief">UAP Common Extensions</div>
universe@390 28 </td>
universe@390 29 </tr>
universe@390 30 </tbody>
universe@390 31 </table>
universe@390 32 </div>
universe@390 33 <!-- end header part -->
universe@390 34 <!-- Generated by Doxygen 1.8.13 -->
universe@390 35 <script type="text/javascript">
universe@390 36 var searchBox = new SearchBox("searchBox", "search",false,'Search');
universe@390 37 </script>
universe@390 38 <script type="text/javascript" src="menudata.js"></script>
universe@390 39 <script type="text/javascript" src="menu.js"></script>
universe@390 40 <script type="text/javascript">
universe@390 41 $(function() {
universe@390 42 initMenu('',true,false,'search.php','Search');
universe@390 43 $(document).ready(function() { init_search(); });
universe@390 44 });
universe@390 45 </script>
universe@390 46 <div id="main-nav"></div>
universe@390 47 <!-- window showing the filter options -->
universe@390 48 <div id="MSearchSelectWindow"
universe@390 49 onmouseover="return searchBox.OnSearchSelectShow()"
universe@390 50 onmouseout="return searchBox.OnSearchSelectHide()"
universe@390 51 onkeydown="return searchBox.OnSearchSelectKey(event)">
universe@390 52 </div>
universe@390 53
universe@390 54 <!-- iframe showing the search results (closed by default) -->
universe@390 55 <div id="MSearchResultsWindow">
universe@390 56 <iframe src="javascript:void(0)" frameborder="0"
universe@390 57 name="MSearchResults" id="MSearchResults">
universe@390 58 </iframe>
universe@390 59 </div>
universe@390 60
universe@390 61 <div id="nav-path" class="navpath">
universe@390 62 <ul>
universe@390 63 <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_69f4ea29401808fe6229564976cde3ce.html">ucx</a></li> </ul>
universe@390 64 </div>
universe@390 65 </div><!-- top -->
universe@390 66 <div class="header">
universe@390 67 <div class="summary">
universe@390 68 <a href="#nested-classes">Data Structures</a> &#124;
universe@390 69 <a href="#define-members">Macros</a> &#124;
universe@390 70 <a href="#func-members">Functions</a> </div>
universe@390 71 <div class="headertitle">
universe@390 72 <div class="title">stack.h File Reference</div> </div>
universe@390 73 </div><!--header-->
universe@390 74 <div class="contents">
universe@390 75
universe@390 76 <p>Default stack memory allocation implementation.
universe@390 77 <a href="#details">More...</a></p>
universe@390 78 <div class="textblock"><code>#include &quot;<a class="el" href="ucx_8h_source.html">ucx.h</a>&quot;</code><br />
universe@390 79 <code>#include &quot;<a class="el" href="allocator_8h_source.html">allocator.h</a>&quot;</code><br />
universe@390 80 </div>
universe@390 81 <p><a href="stack_8h_source.html">Go to the source code of this file.</a></p>
universe@390 82 <table class="memberdecls">
universe@390 83 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
universe@390 84 Data Structures</h2></td></tr>
universe@390 85 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structUcxStack.html">UcxStack</a></td></tr>
universe@390 86 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">UCX stack structure. <a href="structUcxStack.html#details">More...</a><br /></td></tr>
universe@390 87 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 88 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structucx__stack__metadata.html">ucx_stack_metadata</a></td></tr>
universe@390 89 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Metadata for each UCX stack element. <a href="structucx__stack__metadata.html#details">More...</a><br /></td></tr>
universe@390 90 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 91 </table><table class="memberdecls">
universe@390 92 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
universe@390 93 Macros</h2></td></tr>
universe@390 94 <tr class="memitem:a030197051a803e87d5eeac5adb80b15a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a030197051a803e87d5eeac5adb80b15a">ucx_stack_topsize</a>(stack)</td></tr>
universe@390 95 <tr class="memdesc:a030197051a803e87d5eeac5adb80b15a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the top most element. <a href="#a030197051a803e87d5eeac5adb80b15a">More...</a><br /></td></tr>
universe@390 96 <tr class="separator:a030197051a803e87d5eeac5adb80b15a"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 97 <tr class="memitem:a506b82374734ec476d086ddfb561174d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a506b82374734ec476d086ddfb561174d">ucx_stack_pop</a>(stack, dest)&#160;&#160;&#160;<a class="el" href="stack_8h.html#a07ea48f28eab474dcfefbb86fa66ef81">ucx_stack_popn</a>(stack, dest, (size_t)-1)</td></tr>
universe@390 98 <tr class="memdesc:a506b82374734ec476d086ddfb561174d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the top most element from the stack and copies the content to <code> dest</code>, if specified. <a href="#a506b82374734ec476d086ddfb561174d">More...</a><br /></td></tr>
universe@390 99 <tr class="separator:a506b82374734ec476d086ddfb561174d"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 100 <tr class="memitem:a4f7239dbd6c032c56812e370b71c1985"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a4f7239dbd6c032c56812e370b71c1985">ucx_stack_empty</a>(stack)&#160;&#160;&#160;(!(stack)-&gt;top)</td></tr>
universe@390 101 <tr class="memdesc:a4f7239dbd6c032c56812e370b71c1985"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if the stack is empty. <a href="#a4f7239dbd6c032c56812e370b71c1985">More...</a><br /></td></tr>
universe@390 102 <tr class="separator:a4f7239dbd6c032c56812e370b71c1985"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 103 <tr class="memitem:a3b761343c6491222604341ebfa443226"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a3b761343c6491222604341ebfa443226">ucx_stack_dim</a>(size, elems)</td></tr>
universe@390 104 <tr class="memdesc:a3b761343c6491222604341ebfa443226"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes a recommended size for the stack memory area. <a href="#a3b761343c6491222604341ebfa443226">More...</a><br /></td></tr>
universe@390 105 <tr class="separator:a3b761343c6491222604341ebfa443226"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 106 </table><table class="memberdecls">
universe@390 107 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
universe@390 108 Functions</h2></td></tr>
universe@390 109 <tr class="memitem:abaef685df4e7ef95cd7218984a0618fe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#abaef685df4e7ef95cd7218984a0618fe">ucx_stack_init</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, char *space, size_t size)</td></tr>
universe@390 110 <tr class="memdesc:abaef685df4e7ef95cd7218984a0618fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes <a class="el" href="structUcxStack.html" title="UCX stack structure. ">UcxStack</a> structure with memory. <a href="#abaef685df4e7ef95cd7218984a0618fe">More...</a><br /></td></tr>
universe@390 111 <tr class="separator:abaef685df4e7ef95cd7218984a0618fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 112 <tr class="memitem:af865b416802140f6b6e8ab3626d7d1ac"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#af865b416802140f6b6e8ab3626d7d1ac">ucx_stack_malloc</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, size_t n)</td></tr>
universe@390 113 <tr class="memdesc:af865b416802140f6b6e8ab3626d7d1ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates stack memory. <a href="#af865b416802140f6b6e8ab3626d7d1ac">More...</a><br /></td></tr>
universe@390 114 <tr class="separator:af865b416802140f6b6e8ab3626d7d1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 115 <tr class="memitem:af85e6f77a8341beb6188f9ae1a8e9f92"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#af85e6f77a8341beb6188f9ae1a8e9f92">ucx_stack_push</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, size_t n, const void *data)</td></tr>
universe@390 116 <tr class="memdesc:af85e6f77a8341beb6188f9ae1a8e9f92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates memory with <a class="el" href="stack_8h.html#af865b416802140f6b6e8ab3626d7d1ac" title="Allocates stack memory. ">ucx_stack_malloc()</a> and copies the specified data if the allocation was successful. <a href="#af85e6f77a8341beb6188f9ae1a8e9f92">More...</a><br /></td></tr>
universe@390 117 <tr class="separator:af85e6f77a8341beb6188f9ae1a8e9f92"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 118 <tr class="memitem:afdc467524b5e19a9a777c6bc03e17174"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#afdc467524b5e19a9a777c6bc03e17174">ucx_stack_calloc</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, size_t nelem, size_t elsize)</td></tr>
universe@390 119 <tr class="memdesc:afdc467524b5e19a9a777c6bc03e17174"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates an array of stack memory. <a href="#afdc467524b5e19a9a777c6bc03e17174">More...</a><br /></td></tr>
universe@390 120 <tr class="separator:afdc467524b5e19a9a777c6bc03e17174"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 121 <tr class="memitem:a7bb138979191bba138e76ea37488fae2"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a7bb138979191bba138e76ea37488fae2">ucx_stack_pusharr</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, size_t nelem, size_t elsize, const void *data)</td></tr>
universe@390 122 <tr class="memdesc:a7bb138979191bba138e76ea37488fae2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates memory with <a class="el" href="stack_8h.html#afdc467524b5e19a9a777c6bc03e17174" title="Allocates an array of stack memory. ">ucx_stack_calloc()</a> and copies the specified data if the allocation was successful. <a href="#a7bb138979191bba138e76ea37488fae2">More...</a><br /></td></tr>
universe@390 123 <tr class="separator:a7bb138979191bba138e76ea37488fae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 124 <tr class="memitem:a0c678f96f6fabab49b2b034a1fe91c3a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a0c678f96f6fabab49b2b034a1fe91c3a">ucx_stack_realloc</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, void *ptr, size_t n)</td></tr>
universe@390 125 <tr class="memdesc:a0c678f96f6fabab49b2b034a1fe91c3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reallocates memory on the stack. <a href="#a0c678f96f6fabab49b2b034a1fe91c3a">More...</a><br /></td></tr>
universe@390 126 <tr class="separator:a0c678f96f6fabab49b2b034a1fe91c3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 127 <tr class="memitem:aabd55c14a3866b3782ba324f4d8b4c41"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#aabd55c14a3866b3782ba324f4d8b4c41">ucx_stack_free</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, void *ptr)</td></tr>
universe@390 128 <tr class="memdesc:aabd55c14a3866b3782ba324f4d8b4c41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees memory on the stack. <a href="#aabd55c14a3866b3782ba324f4d8b4c41">More...</a><br /></td></tr>
universe@390 129 <tr class="separator:aabd55c14a3866b3782ba324f4d8b4c41"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 130 <tr class="memitem:a07ea48f28eab474dcfefbb86fa66ef81"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a07ea48f28eab474dcfefbb86fa66ef81">ucx_stack_popn</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack, void *dest, size_t n)</td></tr>
universe@390 131 <tr class="memdesc:a07ea48f28eab474dcfefbb86fa66ef81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the top most element from the stack and copies the content to <code> dest</code>. <a href="#a07ea48f28eab474dcfefbb86fa66ef81">More...</a><br /></td></tr>
universe@390 132 <tr class="separator:a07ea48f28eab474dcfefbb86fa66ef81"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 133 <tr class="memitem:a53cd2c7743dc8ad9cbd35ade0b4873e7"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stack_8h.html#a53cd2c7743dc8ad9cbd35ade0b4873e7">ucx_stack_avail</a> (<a class="el" href="structUcxStack.html">UcxStack</a> *stack)</td></tr>
universe@390 134 <tr class="memdesc:a53cd2c7743dc8ad9cbd35ade0b4873e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the remaining available memory on the specified stack. <a href="#a53cd2c7743dc8ad9cbd35ade0b4873e7">More...</a><br /></td></tr>
universe@390 135 <tr class="separator:a53cd2c7743dc8ad9cbd35ade0b4873e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 136 </table>
universe@390 137 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
universe@390 138 <div class="textblock"><p>Default stack memory allocation implementation. </p>
universe@390 139 <dl class="section author"><dt>Author</dt><dd>Mike Becker </dd>
universe@390 140 <dd>
universe@390 141 Olaf Wintermann </dd></dl>
universe@390 142 </div><h2 class="groupheader">Macro Definition Documentation</h2>
universe@390 143 <a id="a3b761343c6491222604341ebfa443226"></a>
universe@390 144 <h2 class="memtitle"><span class="permalink"><a href="#a3b761343c6491222604341ebfa443226">&#9670;&nbsp;</a></span>ucx_stack_dim</h2>
universe@390 145
universe@390 146 <div class="memitem">
universe@390 147 <div class="memproto">
universe@390 148 <table class="memname">
universe@390 149 <tr>
universe@390 150 <td class="memname">#define ucx_stack_dim</td>
universe@390 151 <td>(</td>
universe@390 152 <td class="paramtype">&#160;</td>
universe@390 153 <td class="paramname">size, </td>
universe@390 154 </tr>
universe@390 155 <tr>
universe@390 156 <td class="paramkey"></td>
universe@390 157 <td></td>
universe@390 158 <td class="paramtype">&#160;</td>
universe@390 159 <td class="paramname">elems&#160;</td>
universe@390 160 </tr>
universe@390 161 <tr>
universe@390 162 <td></td>
universe@390 163 <td>)</td>
universe@390 164 <td></td><td></td>
universe@390 165 </tr>
universe@390 166 </table>
universe@390 167 </div><div class="memdoc">
universe@390 168 <b>Value:</b><div class="fragment"><div class="line">(size+<span class="keyword">sizeof</span>(<span class="keyword">struct </span><a class="code" href="structucx__stack__metadata.html">ucx_stack_metadata</a>) * \</div><div class="line"> (elems + 1))</div><div class="ttc" id="structucx__stack__metadata_html"><div class="ttname"><a href="structucx__stack__metadata.html">ucx_stack_metadata</a></div><div class="ttdoc">Metadata for each UCX stack element. </div><div class="ttdef"><b>Definition:</b> stack.h:69</div></div>
universe@390 169 </div><!-- fragment -->
universe@390 170 <p>Computes a recommended size for the stack memory area. </p>
universe@390 171 <p>Note, that reallocations have not been taken into account, so you might need to reserve twice as much memory to allow many reallocations.</p>
universe@390 172 <dl class="params"><dt>Parameters</dt><dd>
universe@390 173 <table class="params">
universe@390 174 <tr><td class="paramname">size</td><td>the approximate payload </td></tr>
universe@390 175 <tr><td class="paramname">elems</td><td>the approximate count of element allocations </td></tr>
universe@390 176 </table>
universe@390 177 </dd>
universe@390 178 </dl>
universe@390 179 <dl class="section return"><dt>Returns</dt><dd>a recommended size for the stack space based on the information provided </dd></dl>
universe@390 180
universe@390 181 </div>
universe@390 182 </div>
universe@390 183 <a id="a4f7239dbd6c032c56812e370b71c1985"></a>
universe@390 184 <h2 class="memtitle"><span class="permalink"><a href="#a4f7239dbd6c032c56812e370b71c1985">&#9670;&nbsp;</a></span>ucx_stack_empty</h2>
universe@390 185
universe@390 186 <div class="memitem">
universe@390 187 <div class="memproto">
universe@390 188 <table class="memname">
universe@390 189 <tr>
universe@390 190 <td class="memname">#define ucx_stack_empty</td>
universe@390 191 <td>(</td>
universe@390 192 <td class="paramtype">&#160;</td>
universe@390 193 <td class="paramname">stack</td><td>)</td>
universe@390 194 <td>&#160;&#160;&#160;(!(stack)-&gt;top)</td>
universe@390 195 </tr>
universe@390 196 </table>
universe@390 197 </div><div class="memdoc">
universe@390 198
universe@390 199 <p>Checks, if the stack is empty. </p>
universe@390 200 <dl class="params"><dt>Parameters</dt><dd>
universe@390 201 <table class="params">
universe@390 202 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 203 </table>
universe@390 204 </dd>
universe@390 205 </dl>
universe@390 206 <dl class="section return"><dt>Returns</dt><dd>nonzero, if the stack is empty, zero otherwise </dd></dl>
universe@390 207
universe@390 208 </div>
universe@390 209 </div>
universe@390 210 <a id="a506b82374734ec476d086ddfb561174d"></a>
universe@390 211 <h2 class="memtitle"><span class="permalink"><a href="#a506b82374734ec476d086ddfb561174d">&#9670;&nbsp;</a></span>ucx_stack_pop</h2>
universe@390 212
universe@390 213 <div class="memitem">
universe@390 214 <div class="memproto">
universe@390 215 <table class="memname">
universe@390 216 <tr>
universe@390 217 <td class="memname">#define ucx_stack_pop</td>
universe@390 218 <td>(</td>
universe@390 219 <td class="paramtype">&#160;</td>
universe@390 220 <td class="paramname">stack, </td>
universe@390 221 </tr>
universe@390 222 <tr>
universe@390 223 <td class="paramkey"></td>
universe@390 224 <td></td>
universe@390 225 <td class="paramtype">&#160;</td>
universe@390 226 <td class="paramname">dest&#160;</td>
universe@390 227 </tr>
universe@390 228 <tr>
universe@390 229 <td></td>
universe@390 230 <td>)</td>
universe@390 231 <td></td><td>&#160;&#160;&#160;<a class="el" href="stack_8h.html#a07ea48f28eab474dcfefbb86fa66ef81">ucx_stack_popn</a>(stack, dest, (size_t)-1)</td>
universe@390 232 </tr>
universe@390 233 </table>
universe@390 234 </div><div class="memdoc">
universe@390 235
universe@390 236 <p>Removes the top most element from the stack and copies the content to <code> dest</code>, if specified. </p>
universe@390 237 <p>Use <a class="el" href="stack_8h.html#a030197051a803e87d5eeac5adb80b15a" title="Returns the size of the top most element. ">ucx_stack_topsize()</a># to get the amount of memory that must be available at the location of <code>dest</code>.</p>
universe@390 238 <dl class="params"><dt>Parameters</dt><dd>
universe@390 239 <table class="params">
universe@390 240 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 241 <tr><td class="paramname">dest</td><td>the location where the contents shall be written to, or <code> NULL</code>, if the element shall only be removed. </td></tr>
universe@390 242 </table>
universe@390 243 </dd>
universe@390 244 </dl>
universe@390 245 <dl class="section see"><dt>See also</dt><dd><a class="el" href="stack_8h.html#aabd55c14a3866b3782ba324f4d8b4c41" title="Frees memory on the stack. ">ucx_stack_free</a> </dd>
universe@390 246 <dd>
universe@390 247 <a class="el" href="stack_8h.html#a07ea48f28eab474dcfefbb86fa66ef81" title="Removes the top most element from the stack and copies the content to dest. ">ucx_stack_popn</a> </dd></dl>
universe@390 248
universe@390 249 </div>
universe@390 250 </div>
universe@390 251 <a id="a030197051a803e87d5eeac5adb80b15a"></a>
universe@390 252 <h2 class="memtitle"><span class="permalink"><a href="#a030197051a803e87d5eeac5adb80b15a">&#9670;&nbsp;</a></span>ucx_stack_topsize</h2>
universe@390 253
universe@390 254 <div class="memitem">
universe@390 255 <div class="memproto">
universe@390 256 <table class="memname">
universe@390 257 <tr>
universe@390 258 <td class="memname">#define ucx_stack_topsize</td>
universe@390 259 <td>(</td>
universe@390 260 <td class="paramtype">&#160;</td>
universe@390 261 <td class="paramname">stack</td><td>)</td>
universe@390 262 <td></td>
universe@390 263 </tr>
universe@390 264 </table>
universe@390 265 </div><div class="memdoc">
universe@390 266 <b>Value:</b><div class="fragment"><div class="line">((stack)-&gt;top ? ((<span class="keyword">struct</span> <a class="code" href="structucx__stack__metadata.html">ucx_stack_metadata</a>*)\</div><div class="line"> (stack)-&gt;top - 1)-&gt;size : 0)</div><div class="ttc" id="structucx__stack__metadata_html"><div class="ttname"><a href="structucx__stack__metadata.html">ucx_stack_metadata</a></div><div class="ttdoc">Metadata for each UCX stack element. </div><div class="ttdef"><b>Definition:</b> stack.h:69</div></div>
universe@390 267 </div><!-- fragment -->
universe@390 268 <p>Returns the size of the top most element. </p>
universe@390 269 <dl class="params"><dt>Parameters</dt><dd>
universe@390 270 <table class="params">
universe@390 271 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 272 </table>
universe@390 273 </dd>
universe@390 274 </dl>
universe@390 275 <dl class="section return"><dt>Returns</dt><dd>the size of the top most element </dd></dl>
universe@390 276
universe@390 277 </div>
universe@390 278 </div>
universe@390 279 <h2 class="groupheader">Function Documentation</h2>
universe@390 280 <a id="a53cd2c7743dc8ad9cbd35ade0b4873e7"></a>
universe@390 281 <h2 class="memtitle"><span class="permalink"><a href="#a53cd2c7743dc8ad9cbd35ade0b4873e7">&#9670;&nbsp;</a></span>ucx_stack_avail()</h2>
universe@390 282
universe@390 283 <div class="memitem">
universe@390 284 <div class="memproto">
universe@390 285 <table class="memname">
universe@390 286 <tr>
universe@390 287 <td class="memname">size_t ucx_stack_avail </td>
universe@390 288 <td>(</td>
universe@390 289 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 290 <td class="paramname"><em>stack</em></td><td>)</td>
universe@390 291 <td></td>
universe@390 292 </tr>
universe@390 293 </table>
universe@390 294 </div><div class="memdoc">
universe@390 295
universe@390 296 <p>Returns the remaining available memory on the specified stack. </p>
universe@390 297 <dl class="params"><dt>Parameters</dt><dd>
universe@390 298 <table class="params">
universe@390 299 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 300 </table>
universe@390 301 </dd>
universe@390 302 </dl>
universe@390 303 <dl class="section return"><dt>Returns</dt><dd>the remaining available memory </dd></dl>
universe@390 304
universe@390 305 </div>
universe@390 306 </div>
universe@390 307 <a id="afdc467524b5e19a9a777c6bc03e17174"></a>
universe@390 308 <h2 class="memtitle"><span class="permalink"><a href="#afdc467524b5e19a9a777c6bc03e17174">&#9670;&nbsp;</a></span>ucx_stack_calloc()</h2>
universe@390 309
universe@390 310 <div class="memitem">
universe@390 311 <div class="memproto">
universe@390 312 <table class="memname">
universe@390 313 <tr>
universe@390 314 <td class="memname">void* ucx_stack_calloc </td>
universe@390 315 <td>(</td>
universe@390 316 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 317 <td class="paramname"><em>stack</em>, </td>
universe@390 318 </tr>
universe@390 319 <tr>
universe@390 320 <td class="paramkey"></td>
universe@390 321 <td></td>
universe@390 322 <td class="paramtype">size_t&#160;</td>
universe@390 323 <td class="paramname"><em>nelem</em>, </td>
universe@390 324 </tr>
universe@390 325 <tr>
universe@390 326 <td class="paramkey"></td>
universe@390 327 <td></td>
universe@390 328 <td class="paramtype">size_t&#160;</td>
universe@390 329 <td class="paramname"><em>elsize</em>&#160;</td>
universe@390 330 </tr>
universe@390 331 <tr>
universe@390 332 <td></td>
universe@390 333 <td>)</td>
universe@390 334 <td></td><td></td>
universe@390 335 </tr>
universe@390 336 </table>
universe@390 337 </div><div class="memdoc">
universe@390 338
universe@390 339 <p>Allocates an array of stack memory. </p>
universe@390 340 <p>The content of the allocated memory is set to zero.</p>
universe@390 341 <dl class="params"><dt>Parameters</dt><dd>
universe@390 342 <table class="params">
universe@390 343 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 344 <tr><td class="paramname">nelem</td><td>amount of elements to allocate </td></tr>
universe@390 345 <tr><td class="paramname">elsize</td><td>amount of memory per element </td></tr>
universe@390 346 </table>
universe@390 347 </dd>
universe@390 348 </dl>
universe@390 349 <dl class="section return"><dt>Returns</dt><dd>a pointer to the allocated memory </dd></dl>
universe@390 350 <dl class="section see"><dt>See also</dt><dd><a class="el" href="allocator_8h.html#a2c0aba4221c1ac6801f03ed799f15b12" title="A function pointer to the allocators calloc() function. ">ucx_allocator_calloc()</a> </dd></dl>
universe@390 351
universe@390 352 </div>
universe@390 353 </div>
universe@390 354 <a id="aabd55c14a3866b3782ba324f4d8b4c41"></a>
universe@390 355 <h2 class="memtitle"><span class="permalink"><a href="#aabd55c14a3866b3782ba324f4d8b4c41">&#9670;&nbsp;</a></span>ucx_stack_free()</h2>
universe@390 356
universe@390 357 <div class="memitem">
universe@390 358 <div class="memproto">
universe@390 359 <table class="memname">
universe@390 360 <tr>
universe@390 361 <td class="memname">void ucx_stack_free </td>
universe@390 362 <td>(</td>
universe@390 363 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 364 <td class="paramname"><em>stack</em>, </td>
universe@390 365 </tr>
universe@390 366 <tr>
universe@390 367 <td class="paramkey"></td>
universe@390 368 <td></td>
universe@390 369 <td class="paramtype">void *&#160;</td>
universe@390 370 <td class="paramname"><em>ptr</em>&#160;</td>
universe@390 371 </tr>
universe@390 372 <tr>
universe@390 373 <td></td>
universe@390 374 <td>)</td>
universe@390 375 <td></td><td></td>
universe@390 376 </tr>
universe@390 377 </table>
universe@390 378 </div><div class="memdoc">
universe@390 379
universe@390 380 <p>Frees memory on the stack. </p>
universe@390 381 <p>Freeing stack memory behaves in a special way.</p>
universe@390 382 <p>If the element, that should be freed, is the top most element of the stack, it is removed from the stack. Otherwise it is marked as freed. Marked elements are removed, when they become the top most elements of the stack.</p>
universe@390 383 <dl class="params"><dt>Parameters</dt><dd>
universe@390 384 <table class="params">
universe@390 385 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 386 <tr><td class="paramname">ptr</td><td>a pointer to the memory that shall be freed </td></tr>
universe@390 387 </table>
universe@390 388 </dd>
universe@390 389 </dl>
universe@390 390
universe@390 391 </div>
universe@390 392 </div>
universe@390 393 <a id="abaef685df4e7ef95cd7218984a0618fe"></a>
universe@390 394 <h2 class="memtitle"><span class="permalink"><a href="#abaef685df4e7ef95cd7218984a0618fe">&#9670;&nbsp;</a></span>ucx_stack_init()</h2>
universe@390 395
universe@390 396 <div class="memitem">
universe@390 397 <div class="memproto">
universe@390 398 <table class="memname">
universe@390 399 <tr>
universe@390 400 <td class="memname">void ucx_stack_init </td>
universe@390 401 <td>(</td>
universe@390 402 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 403 <td class="paramname"><em>stack</em>, </td>
universe@390 404 </tr>
universe@390 405 <tr>
universe@390 406 <td class="paramkey"></td>
universe@390 407 <td></td>
universe@390 408 <td class="paramtype">char *&#160;</td>
universe@390 409 <td class="paramname"><em>space</em>, </td>
universe@390 410 </tr>
universe@390 411 <tr>
universe@390 412 <td class="paramkey"></td>
universe@390 413 <td></td>
universe@390 414 <td class="paramtype">size_t&#160;</td>
universe@390 415 <td class="paramname"><em>size</em>&#160;</td>
universe@390 416 </tr>
universe@390 417 <tr>
universe@390 418 <td></td>
universe@390 419 <td>)</td>
universe@390 420 <td></td><td></td>
universe@390 421 </tr>
universe@390 422 </table>
universe@390 423 </div><div class="memdoc">
universe@390 424
universe@390 425 <p>Initializes <a class="el" href="structUcxStack.html" title="UCX stack structure. ">UcxStack</a> structure with memory. </p>
universe@390 426 <dl class="params"><dt>Parameters</dt><dd>
universe@390 427 <table class="params">
universe@390 428 <tr><td class="paramname">stack</td><td>a pointer to an uninitialized stack structure </td></tr>
universe@390 429 <tr><td class="paramname">space</td><td>the memory area that shall be managed </td></tr>
universe@390 430 <tr><td class="paramname">size</td><td>size of the memory area </td></tr>
universe@390 431 </table>
universe@390 432 </dd>
universe@390 433 </dl>
universe@390 434 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structUcxStack.html" title="UCX stack structure. ">UcxStack</a> structure </dd></dl>
universe@390 435
universe@390 436 </div>
universe@390 437 </div>
universe@390 438 <a id="af865b416802140f6b6e8ab3626d7d1ac"></a>
universe@390 439 <h2 class="memtitle"><span class="permalink"><a href="#af865b416802140f6b6e8ab3626d7d1ac">&#9670;&nbsp;</a></span>ucx_stack_malloc()</h2>
universe@390 440
universe@390 441 <div class="memitem">
universe@390 442 <div class="memproto">
universe@390 443 <table class="memname">
universe@390 444 <tr>
universe@390 445 <td class="memname">void* ucx_stack_malloc </td>
universe@390 446 <td>(</td>
universe@390 447 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 448 <td class="paramname"><em>stack</em>, </td>
universe@390 449 </tr>
universe@390 450 <tr>
universe@390 451 <td class="paramkey"></td>
universe@390 452 <td></td>
universe@390 453 <td class="paramtype">size_t&#160;</td>
universe@390 454 <td class="paramname"><em>n</em>&#160;</td>
universe@390 455 </tr>
universe@390 456 <tr>
universe@390 457 <td></td>
universe@390 458 <td>)</td>
universe@390 459 <td></td><td></td>
universe@390 460 </tr>
universe@390 461 </table>
universe@390 462 </div><div class="memdoc">
universe@390 463
universe@390 464 <p>Allocates stack memory. </p>
universe@390 465 <dl class="params"><dt>Parameters</dt><dd>
universe@390 466 <table class="params">
universe@390 467 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 468 <tr><td class="paramname">n</td><td>amount of memory to allocate </td></tr>
universe@390 469 </table>
universe@390 470 </dd>
universe@390 471 </dl>
universe@390 472 <dl class="section return"><dt>Returns</dt><dd>a pointer to the allocated memory or <code>NULL</code> on stack overflow </dd></dl>
universe@390 473 <dl class="section see"><dt>See also</dt><dd><a class="el" href="allocator_8h.html#a29f0f6a23a70db3b60635cd6dc384473" title="A function pointer to the allocators malloc() function. ">ucx_allocator_malloc()</a> </dd></dl>
universe@390 474
universe@390 475 </div>
universe@390 476 </div>
universe@390 477 <a id="a07ea48f28eab474dcfefbb86fa66ef81"></a>
universe@390 478 <h2 class="memtitle"><span class="permalink"><a href="#a07ea48f28eab474dcfefbb86fa66ef81">&#9670;&nbsp;</a></span>ucx_stack_popn()</h2>
universe@390 479
universe@390 480 <div class="memitem">
universe@390 481 <div class="memproto">
universe@390 482 <table class="memname">
universe@390 483 <tr>
universe@390 484 <td class="memname">void ucx_stack_popn </td>
universe@390 485 <td>(</td>
universe@390 486 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 487 <td class="paramname"><em>stack</em>, </td>
universe@390 488 </tr>
universe@390 489 <tr>
universe@390 490 <td class="paramkey"></td>
universe@390 491 <td></td>
universe@390 492 <td class="paramtype">void *&#160;</td>
universe@390 493 <td class="paramname"><em>dest</em>, </td>
universe@390 494 </tr>
universe@390 495 <tr>
universe@390 496 <td class="paramkey"></td>
universe@390 497 <td></td>
universe@390 498 <td class="paramtype">size_t&#160;</td>
universe@390 499 <td class="paramname"><em>n</em>&#160;</td>
universe@390 500 </tr>
universe@390 501 <tr>
universe@390 502 <td></td>
universe@390 503 <td>)</td>
universe@390 504 <td></td><td></td>
universe@390 505 </tr>
universe@390 506 </table>
universe@390 507 </div><div class="memdoc">
universe@390 508
universe@390 509 <p>Removes the top most element from the stack and copies the content to <code> dest</code>. </p>
universe@390 510 <p>This function copies at most <code>n</code> bytes to the destination, but the element is always freed as a whole. If the element was larger than <code>n</code>, the remaining data is lost.</p>
universe@390 511 <dl class="params"><dt>Parameters</dt><dd>
universe@390 512 <table class="params">
universe@390 513 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 514 <tr><td class="paramname">dest</td><td>the location where the contents shall be written to </td></tr>
universe@390 515 <tr><td class="paramname">n</td><td>copies at most n bytes to <code>dest</code> </td></tr>
universe@390 516 </table>
universe@390 517 </dd>
universe@390 518 </dl>
universe@390 519 <dl class="section see"><dt>See also</dt><dd><a class="el" href="stack_8h.html#a506b82374734ec476d086ddfb561174d" title="Removes the top most element from the stack and copies the content to dest, if specified. ">ucx_stack_pop</a> </dd></dl>
universe@390 520
universe@390 521 </div>
universe@390 522 </div>
universe@390 523 <a id="af85e6f77a8341beb6188f9ae1a8e9f92"></a>
universe@390 524 <h2 class="memtitle"><span class="permalink"><a href="#af85e6f77a8341beb6188f9ae1a8e9f92">&#9670;&nbsp;</a></span>ucx_stack_push()</h2>
universe@390 525
universe@390 526 <div class="memitem">
universe@390 527 <div class="memproto">
universe@390 528 <table class="memname">
universe@390 529 <tr>
universe@390 530 <td class="memname">void* ucx_stack_push </td>
universe@390 531 <td>(</td>
universe@390 532 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 533 <td class="paramname"><em>stack</em>, </td>
universe@390 534 </tr>
universe@390 535 <tr>
universe@390 536 <td class="paramkey"></td>
universe@390 537 <td></td>
universe@390 538 <td class="paramtype">size_t&#160;</td>
universe@390 539 <td class="paramname"><em>n</em>, </td>
universe@390 540 </tr>
universe@390 541 <tr>
universe@390 542 <td class="paramkey"></td>
universe@390 543 <td></td>
universe@390 544 <td class="paramtype">const void *&#160;</td>
universe@390 545 <td class="paramname"><em>data</em>&#160;</td>
universe@390 546 </tr>
universe@390 547 <tr>
universe@390 548 <td></td>
universe@390 549 <td>)</td>
universe@390 550 <td></td><td></td>
universe@390 551 </tr>
universe@390 552 </table>
universe@390 553 </div><div class="memdoc">
universe@390 554
universe@390 555 <p>Allocates memory with <a class="el" href="stack_8h.html#af865b416802140f6b6e8ab3626d7d1ac" title="Allocates stack memory. ">ucx_stack_malloc()</a> and copies the specified data if the allocation was successful. </p>
universe@390 556 <dl class="params"><dt>Parameters</dt><dd>
universe@390 557 <table class="params">
universe@390 558 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 559 <tr><td class="paramname">n</td><td>amount of memory to allocate </td></tr>
universe@390 560 <tr><td class="paramname">data</td><td>a pointer to the data to copy </td></tr>
universe@390 561 </table>
universe@390 562 </dd>
universe@390 563 </dl>
universe@390 564 <dl class="section return"><dt>Returns</dt><dd>a pointer to the allocated memory </dd></dl>
universe@390 565 <dl class="section see"><dt>See also</dt><dd><a class="el" href="stack_8h.html#af865b416802140f6b6e8ab3626d7d1ac" title="Allocates stack memory. ">ucx_stack_malloc</a> </dd></dl>
universe@390 566
universe@390 567 </div>
universe@390 568 </div>
universe@390 569 <a id="a7bb138979191bba138e76ea37488fae2"></a>
universe@390 570 <h2 class="memtitle"><span class="permalink"><a href="#a7bb138979191bba138e76ea37488fae2">&#9670;&nbsp;</a></span>ucx_stack_pusharr()</h2>
universe@390 571
universe@390 572 <div class="memitem">
universe@390 573 <div class="memproto">
universe@390 574 <table class="memname">
universe@390 575 <tr>
universe@390 576 <td class="memname">void* ucx_stack_pusharr </td>
universe@390 577 <td>(</td>
universe@390 578 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 579 <td class="paramname"><em>stack</em>, </td>
universe@390 580 </tr>
universe@390 581 <tr>
universe@390 582 <td class="paramkey"></td>
universe@390 583 <td></td>
universe@390 584 <td class="paramtype">size_t&#160;</td>
universe@390 585 <td class="paramname"><em>nelem</em>, </td>
universe@390 586 </tr>
universe@390 587 <tr>
universe@390 588 <td class="paramkey"></td>
universe@390 589 <td></td>
universe@390 590 <td class="paramtype">size_t&#160;</td>
universe@390 591 <td class="paramname"><em>elsize</em>, </td>
universe@390 592 </tr>
universe@390 593 <tr>
universe@390 594 <td class="paramkey"></td>
universe@390 595 <td></td>
universe@390 596 <td class="paramtype">const void *&#160;</td>
universe@390 597 <td class="paramname"><em>data</em>&#160;</td>
universe@390 598 </tr>
universe@390 599 <tr>
universe@390 600 <td></td>
universe@390 601 <td>)</td>
universe@390 602 <td></td><td></td>
universe@390 603 </tr>
universe@390 604 </table>
universe@390 605 </div><div class="memdoc">
universe@390 606
universe@390 607 <p>Allocates memory with <a class="el" href="stack_8h.html#afdc467524b5e19a9a777c6bc03e17174" title="Allocates an array of stack memory. ">ucx_stack_calloc()</a> and copies the specified data if the allocation was successful. </p>
universe@390 608 <dl class="params"><dt>Parameters</dt><dd>
universe@390 609 <table class="params">
universe@390 610 <tr><td class="paramname">stack</td><td>a pointer to the stack </td></tr>
universe@390 611 <tr><td class="paramname">nelem</td><td>amount of elements to allocate </td></tr>
universe@390 612 <tr><td class="paramname">elsize</td><td>amount of memory per element </td></tr>
universe@390 613 <tr><td class="paramname">data</td><td>a pointer to the data </td></tr>
universe@390 614 </table>
universe@390 615 </dd>
universe@390 616 </dl>
universe@390 617 <dl class="section return"><dt>Returns</dt><dd>a pointer to the allocated memory </dd></dl>
universe@390 618 <dl class="section see"><dt>See also</dt><dd><a class="el" href="stack_8h.html#afdc467524b5e19a9a777c6bc03e17174" title="Allocates an array of stack memory. ">ucx_stack_calloc</a> </dd></dl>
universe@390 619
universe@390 620 </div>
universe@390 621 </div>
universe@390 622 <a id="a0c678f96f6fabab49b2b034a1fe91c3a"></a>
universe@390 623 <h2 class="memtitle"><span class="permalink"><a href="#a0c678f96f6fabab49b2b034a1fe91c3a">&#9670;&nbsp;</a></span>ucx_stack_realloc()</h2>
universe@390 624
universe@390 625 <div class="memitem">
universe@390 626 <div class="memproto">
universe@390 627 <table class="memname">
universe@390 628 <tr>
universe@390 629 <td class="memname">void* ucx_stack_realloc </td>
universe@390 630 <td>(</td>
universe@390 631 <td class="paramtype"><a class="el" href="structUcxStack.html">UcxStack</a> *&#160;</td>
universe@390 632 <td class="paramname"><em>stack</em>, </td>
universe@390 633 </tr>
universe@390 634 <tr>
universe@390 635 <td class="paramkey"></td>
universe@390 636 <td></td>
universe@390 637 <td class="paramtype">void *&#160;</td>
universe@390 638 <td class="paramname"><em>ptr</em>, </td>
universe@390 639 </tr>
universe@390 640 <tr>
universe@390 641 <td class="paramkey"></td>
universe@390 642 <td></td>
universe@390 643 <td class="paramtype">size_t&#160;</td>
universe@390 644 <td class="paramname"><em>n</em>&#160;</td>
universe@390 645 </tr>
universe@390 646 <tr>
universe@390 647 <td></td>
universe@390 648 <td>)</td>
universe@390 649 <td></td><td></td>
universe@390 650 </tr>
universe@390 651 </table>
universe@390 652 </div><div class="memdoc">
universe@390 653
universe@390 654 <p>Reallocates memory on the stack. </p>
universe@390 655 <p>Shrinking memory is always safe. Extending memory can be very expensive.</p>
universe@390 656 <dl class="params"><dt>Parameters</dt><dd>
universe@390 657 <table class="params">
universe@390 658 <tr><td class="paramname">stack</td><td>the stack </td></tr>
universe@390 659 <tr><td class="paramname">ptr</td><td>a pointer to the memory that shall be reallocated </td></tr>
universe@390 660 <tr><td class="paramname">n</td><td>the new size of the memory </td></tr>
universe@390 661 </table>
universe@390 662 </dd>
universe@390 663 </dl>
universe@390 664 <dl class="section return"><dt>Returns</dt><dd>a pointer to the new location of the memory </dd></dl>
universe@390 665 <dl class="section see"><dt>See also</dt><dd><a class="el" href="allocator_8h.html#a6d7cf038a806e327c5da37321d04e426" title="A function pointer to the allocators realloc() function. ">ucx_allocator_realloc()</a> </dd></dl>
universe@390 666
universe@390 667 </div>
universe@390 668 </div>
universe@390 669 </div><!-- contents -->
universe@390 670 <!-- start footer part -->
universe@390 671 <hr class="footer"/><address class="footer"><small>
universe@390 672 Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
universe@390 673 <img class="footer" src="doxygen.png" alt="doxygen"/>
universe@390 674 </a> 1.8.13
universe@390 675 </small></address>
universe@390 676 </body>
universe@390 677 </html>

mercurial