Thu, 26 Dec 2024 20:33:06 +0100
add tests for JSON create functions and fix a bug in cxJsonCreateCxString()
resolves issue #527
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>ucx: /home/mike/workspace/c/ucx/src/ucx/utils.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="projectlogo"><img alt="Logo" src="uaplogo.png"/></td> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">ucx </div> <div id="projectbrief">UAP Common Extensions</div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_69f4ea29401808fe6229564976cde3ce.html">ucx</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">utils.h</div> </div> </div><!--header--> <div class="contents"> <a href="utils_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"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Copyright 2017 Mike Becker, Olaf Wintermann All rights reserved.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * modification, are permitted provided that the following conditions are met:</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"> * 1. Redistributions of source code must retain the above copyright</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * notice, this list of conditions and the following disclaimer.</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"> * 2. Redistributions in binary form must reproduce the above copyright</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * documentation and/or other materials provided with the distribution.</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"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"> * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * POSSIBILITY OF SUCH DAMAGE.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#ifndef UCX_UTILS_H</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#define UCX_UTILS_H</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="ucx_8h.html">ucx.h</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="string_8h.html">string.h</a>"</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="allocator_8h.html">allocator.h</a>"</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <inttypes.h></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <<a class="code" href="string_8h.html">string.h</a>></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <stdarg.h></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439"> 55</a></span> <span class="preprocessor">#define UCX_STREAM_COPY_BUFSIZE 4096</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keywordtype">void</span> *<a class="code" href="utils_8h.html#adeb6e8d0a53a829207cfa0a979d01fff">ucx_strcpy</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *s, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">void</span> *<a class="code" href="utils_8h.html#ab2e184e6a744941aab6b8058116baf30">ucx_memcpy</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *m, <span class="keywordtype">void</span> *n);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">size_t</span> <a class="code" href="utils_8h.html#a114ee7f7da62656ffd35e2dc23394201">ucx_stream_bncopy</a>(<span class="keywordtype">void</span> *src, <span class="keywordtype">void</span> *dest, <a class="code" href="ucx_8h.html#a6a67e255e460acb58f802067b3ff5fd5">read_func</a> rfnc, <a class="code" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> wfnc,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">char</span>* buf, <span class="keywordtype">size_t</span> bufsize, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="utils_8h.html#a41ca1344f781c0d3bf7a414a6e811392"> 104</a></span> <span class="preprocessor">#define ucx_stream_copy(src,dest,rfnc,wfnc) ucx_stream_bncopy(\</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"> src, dest, (read_func)rfnc, (write_func)wfnc, \</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"> NULL, UCX_STREAM_COPY_BUFSIZE, (size_t)-1)</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="utils_8h.html#add13f39a8af440b4f7e6f74339eaada2"> 118</a></span> <span class="preprocessor">#define ucx_stream_ncopy(src,dest,rfnc,wfnc, n) ucx_stream_bncopy(\</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"> src, dest, (read_func)rfnc, (write_func)wfnc, \</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"> NULL, UCX_STREAM_COPY_BUFSIZE, n)</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="utils_8h.html#a6003a1750a66234169bd1f8cc84b297b"> 136</a></span> <span class="preprocessor">#define ucx_stream_bcopy(src,dest,rfnc,wfnc, buf, bufsize) ucx_stream_bncopy(\</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="preprocessor"> src, dest, (read_func)rfnc, (write_func)wfnc, \</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="preprocessor"> buf, bufsize, (size_t)-1)</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#aa6a37b9d172b6a5b2803d152f9e1b258">ucx_cmp_str</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *s1, <span class="keyword">const</span> <span class="keywordtype">void</span> *s2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#ac6b354a878f551a3a5b20a167db3f308">ucx_cmp_strn</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *s1, <span class="keyword">const</span> <span class="keywordtype">void</span> *s2, <span class="keywordtype">void</span> *n);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#adee0739589166d272f8cb7c23aabf8ba">ucx_cmp_sstr</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *s1, <span class="keyword">const</span> <span class="keywordtype">void</span> *s2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a8ce7e11e6b3deafe89a32a091fde7f16">ucx_cmp_int</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#aeb57a2b9a6aaa0460c7a6bec29accf2c">ucx_cmp_longint</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a366b57def20f86a41eaedf575eea5375">ucx_cmp_longlong</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#aa29e6e559946375e34113e34e0b0bd0d">ucx_cmp_int16</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a858b2ac443fb202643b71f6a7e9218dd">ucx_cmp_int32</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a54701aea6a89fed1402dfb0bf56bc7f6">ucx_cmp_int64</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#abd83a5da91c3dd026a6931bd80c12f1e">ucx_cmp_uint</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a3f3cbae2594d6f722bae29acb0408a24">ucx_cmp_ulongint</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a6acfc359421f21f9a042a654ff7faac5">ucx_cmp_ulonglong</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#acde5366437e886a459b7468f7a9e11f0">ucx_cmp_uint16</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a5879d1722330355914d8c9146fa549d3">ucx_cmp_uint32</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a1572a78b5b42f7151a5b2a5a7283d62d">ucx_cmp_uint64</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> intmax_t <a class="code" href="utils_8h.html#a4ab6753739d56c09cdf6079fdcabf7c6">ucx_dist_int</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> intmax_t <a class="code" href="utils_8h.html#a43e73d288b1553a0078bf4c98dd341f5">ucx_dist_longint</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> intmax_t <a class="code" href="utils_8h.html#a306778414a2427951ea263be92368627">ucx_dist_longlong</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> intmax_t <a class="code" href="utils_8h.html#a81fb8434b70ca11bf2c14abfa21d16a9">ucx_dist_int16</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> intmax_t <a class="code" href="utils_8h.html#ab4a659cc46096f0490c1dafa57726476">ucx_dist_int32</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> intmax_t <a class="code" href="utils_8h.html#a54e7d06585bad3a899befc4e9c13853f">ucx_dist_int64</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> intmax_t <a class="code" href="utils_8h.html#a37b7d471ca1679992afc11a0deda45f4">ucx_dist_uint</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> intmax_t <a class="code" href="utils_8h.html#abb13476228d0c16bfaba08469adbae2d">ucx_dist_ulongint</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> intmax_t <a class="code" href="utils_8h.html#a59a5859272cb4b43cbdd58208c41e32b">ucx_dist_ulonglong</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> intmax_t <a class="code" href="utils_8h.html#a66e00a0703cbcde050ec922578e2f080">ucx_dist_uint16</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> intmax_t <a class="code" href="utils_8h.html#add2b5c5507caba59d894b84e056b079b">ucx_dist_uint32</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> intmax_t <a class="code" href="utils_8h.html#a3ba75e2e0b2479eef2b22fb219b42da7">ucx_dist_uint64</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *i1, <span class="keyword">const</span> <span class="keywordtype">void</span> *i2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#ad1196b561bcdad76c393885819769a97">ucx_cmp_float</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *f1, <span class="keyword">const</span> <span class="keywordtype">void</span> *f2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#ab804b7c27d0bfcd7bf3a3583140825b6">ucx_cmp_double</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *d1, <span class="keyword">const</span> <span class="keywordtype">void</span> *d2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#aa174d539de3ea59be4f9640f17ce53d8">ucx_cmp_ptr</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *ptr1, <span class="keyword">const</span> <span class="keywordtype">void</span> *ptr2, <span class="keywordtype">void</span> *data);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#aff7d2bcded71196831a8c0664333f8e7">ucx_cmp_mem</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *ptr1, <span class="keyword">const</span> <span class="keywordtype">void</span> *ptr2, <span class="keywordtype">void</span> *n);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a">ucx_fprintf</a>(<span class="keywordtype">void</span> *stream, <a class="code" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> wfc, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a4907967beb92c3ae351dd239abbb6927">ucx_vfprintf</a>(<span class="keywordtype">void</span> *stream, <a class="code" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> wfc, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <a class="code" href="structsstr__t.html">sstr_t</a> <a class="code" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5">ucx_asprintf</a>(<a class="code" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <a class="code" href="structsstr__t.html">sstr_t</a> <a class="code" href="utils_8h.html#a3ea1dfb856c741f3e8ec6bfdc9ad427e">ucx_vasprintf</a>(<a class="code" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="utils_8h.html#af9f333b66ecd639c347c7235f4992e2e"> 488</a></span> <span class="preprocessor">#define ucx_sprintf(...) \</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="preprocessor"> ucx_asprintf(ucx_default_allocator(), __VA_ARGS__)</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="utils_8h.html#a9d7d65a420f026fcb6982803d5120519"> 500</a></span> <span class="preprocessor">#define ucx_bprintf(buffer, ...) ucx_fprintf((UcxBuffer*)buffer, \</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"> (write_func)ucx_buffer_write, __VA_ARGS__)</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor">#endif </span><span class="comment">/* UCX_UTILS_H */</span><span class="preprocessor"></span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div><div class="ttc" id="utils_8h_html_a5879d1722330355914d8c9146fa549d3"><div class="ttname"><a href="utils_8h.html#a5879d1722330355914d8c9146fa549d3">ucx_cmp_uint32</a></div><div class="ttdeci">int ucx_cmp_uint32(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type uint32_t. </div><div class="ttdef"><b>Definition:</b> utils.c:205</div></div> <div class="ttc" id="structsstr__t_html"><div class="ttname"><a href="structsstr__t.html">sstr_t</a></div><div class="ttdoc">The UCX string structure. </div><div class="ttdef"><b>Definition:</b> string.h:90</div></div> <div class="ttc" id="utils_8h_html_aeb57a2b9a6aaa0460c7a6bec29accf2c"><div class="ttname"><a href="utils_8h.html#aeb57a2b9a6aaa0460c7a6bec29accf2c">ucx_cmp_longint</a></div><div class="ttdeci">int ucx_cmp_longint(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type long int. </div><div class="ttdef"><b>Definition:</b> utils.c:115</div></div> <div class="ttc" id="utils_8h_html_a4ab6753739d56c09cdf6079fdcabf7c6"><div class="ttname"><a href="utils_8h.html#a4ab6753739d56c09cdf6079fdcabf7c6">ucx_dist_int</a></div><div class="ttdeci">intmax_t ucx_dist_int(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type int. </div><div class="ttdef"><b>Definition:</b> utils.c:225</div></div> <div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Bounded string implementation. </div></div> <div class="ttc" id="utils_8h_html_a6acfc359421f21f9a042a654ff7faac5"><div class="ttname"><a href="utils_8h.html#a6acfc359421f21f9a042a654ff7faac5">ucx_cmp_ulonglong</a></div><div class="ttdeci">int ucx_cmp_ulonglong(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type unsigned long long. </div><div class="ttdef"><b>Definition:</b> utils.c:185</div></div> <div class="ttc" id="utils_8h_html_a114ee7f7da62656ffd35e2dc23394201"><div class="ttname"><a href="utils_8h.html#a114ee7f7da62656ffd35e2dc23394201">ucx_stream_bncopy</a></div><div class="ttdeci">size_t ucx_stream_bncopy(void *src, void *dest, read_func rfnc, write_func wfnc, char *buf, size_t bufsize, size_t n)</div><div class="ttdoc">Reads data from a stream and writes it to another stream. </div><div class="ttdef"><b>Definition:</b> utils.c:52</div></div> <div class="ttc" id="utils_8h_html_adee0739589166d272f8cb7c23aabf8ba"><div class="ttname"><a href="utils_8h.html#adee0739589166d272f8cb7c23aabf8ba">ucx_cmp_sstr</a></div><div class="ttdeci">int ucx_cmp_sstr(const void *s1, const void *s2, void *data)</div><div class="ttdoc">Wraps the sstrcmp function. </div><div class="ttdef"><b>Definition:</b> utils.c:99</div></div> <div class="ttc" id="ucx_8h_html"><div class="ttname"><a href="ucx_8h.html">ucx.h</a></div><div class="ttdoc">Main UCX Header providing most common definitions. </div></div> <div class="ttc" id="utils_8h_html_ad1196b561bcdad76c393885819769a97"><div class="ttname"><a href="utils_8h.html#ad1196b561bcdad76c393885819769a97">ucx_cmp_float</a></div><div class="ttdeci">int ucx_cmp_float(const void *f1, const void *f2, void *data)</div><div class="ttdoc">Compares two real numbers of type float. </div><div class="ttdef"><b>Definition:</b> utils.c:297</div></div> <div class="ttc" id="utils_8h_html_a366b57def20f86a41eaedf575eea5375"><div class="ttname"><a href="utils_8h.html#a366b57def20f86a41eaedf575eea5375">ucx_cmp_longlong</a></div><div class="ttdeci">int ucx_cmp_longlong(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type long long. </div><div class="ttdef"><b>Definition:</b> utils.c:125</div></div> <div class="ttc" id="utils_8h_html_a858b2ac443fb202643b71f6a7e9218dd"><div class="ttname"><a href="utils_8h.html#a858b2ac443fb202643b71f6a7e9218dd">ucx_cmp_int32</a></div><div class="ttdeci">int ucx_cmp_int32(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type int32_t. </div><div class="ttdef"><b>Definition:</b> utils.c:145</div></div> <div class="ttc" id="utils_8h_html_a3f3cbae2594d6f722bae29acb0408a24"><div class="ttname"><a href="utils_8h.html#a3f3cbae2594d6f722bae29acb0408a24">ucx_cmp_ulongint</a></div><div class="ttdeci">int ucx_cmp_ulongint(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type unsigned long int. </div><div class="ttdef"><b>Definition:</b> utils.c:175</div></div> <div class="ttc" id="utils_8h_html_a1572a78b5b42f7151a5b2a5a7283d62d"><div class="ttname"><a href="utils_8h.html#a1572a78b5b42f7151a5b2a5a7283d62d">ucx_cmp_uint64</a></div><div class="ttdeci">int ucx_cmp_uint64(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type uint64_t. </div><div class="ttdef"><b>Definition:</b> utils.c:215</div></div> <div class="ttc" id="utils_8h_html_a306778414a2427951ea263be92368627"><div class="ttname"><a href="utils_8h.html#a306778414a2427951ea263be92368627">ucx_dist_longlong</a></div><div class="ttdeci">intmax_t ucx_dist_longlong(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type long long. </div><div class="ttdef"><b>Definition:</b> utils.c:237</div></div> <div class="ttc" id="utils_8h_html_ac6b354a878f551a3a5b20a167db3f308"><div class="ttname"><a href="utils_8h.html#ac6b354a878f551a3a5b20a167db3f308">ucx_cmp_strn</a></div><div class="ttdeci">int ucx_cmp_strn(const void *s1, const void *s2, void *n)</div><div class="ttdoc">Wraps the strncmp function. </div><div class="ttdef"><b>Definition:</b> utils.c:95</div></div> <div class="ttc" id="utils_8h_html_aa6a37b9d172b6a5b2803d152f9e1b258"><div class="ttname"><a href="utils_8h.html#aa6a37b9d172b6a5b2803d152f9e1b258">ucx_cmp_str</a></div><div class="ttdeci">int ucx_cmp_str(const void *s1, const void *s2, void *data)</div><div class="ttdoc">Wraps the strcmp function. </div><div class="ttdef"><b>Definition:</b> utils.c:91</div></div> <div class="ttc" id="utils_8h_html_ab804b7c27d0bfcd7bf3a3583140825b6"><div class="ttname"><a href="utils_8h.html#ab804b7c27d0bfcd7bf3a3583140825b6">ucx_cmp_double</a></div><div class="ttdeci">int ucx_cmp_double(const void *d1, const void *d2, void *data)</div><div class="ttdoc">Compares two real numbers of type double. </div><div class="ttdef"><b>Definition:</b> utils.c:308</div></div> <div class="ttc" id="utils_8h_html_a3ba75e2e0b2479eef2b22fb219b42da7"><div class="ttname"><a href="utils_8h.html#a3ba75e2e0b2479eef2b22fb219b42da7">ucx_dist_uint64</a></div><div class="ttdeci">intmax_t ucx_dist_uint64(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type uint64_t. </div><div class="ttdef"><b>Definition:</b> utils.c:291</div></div> <div class="ttc" id="utils_8h_html_add2b5c5507caba59d894b84e056b079b"><div class="ttname"><a href="utils_8h.html#add2b5c5507caba59d894b84e056b079b">ucx_dist_uint32</a></div><div class="ttdeci">intmax_t ucx_dist_uint32(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type uint32_t. </div><div class="ttdef"><b>Definition:</b> utils.c:285</div></div> <div class="ttc" id="structUcxAllocator_html"><div class="ttname"><a href="structUcxAllocator.html">UcxAllocator</a></div><div class="ttdoc">UCX allocator data structure containing memory management functions. </div><div class="ttdef"><b>Definition:</b> allocator.h:88</div></div> <div class="ttc" id="utils_8h_html_aa174d539de3ea59be4f9640f17ce53d8"><div class="ttname"><a href="utils_8h.html#aa174d539de3ea59be4f9640f17ce53d8">ucx_cmp_ptr</a></div><div class="ttdeci">int ucx_cmp_ptr(const void *ptr1, const void *ptr2, void *data)</div><div class="ttdoc">Compares two pointers. </div><div class="ttdef"><b>Definition:</b> utils.c:319</div></div> <div class="ttc" id="utils_8h_html_aff7d2bcded71196831a8c0664333f8e7"><div class="ttname"><a href="utils_8h.html#aff7d2bcded71196831a8c0664333f8e7">ucx_cmp_mem</a></div><div class="ttdeci">int ucx_cmp_mem(const void *ptr1, const void *ptr2, void *n)</div><div class="ttdoc">Compares two memory areas. </div><div class="ttdef"><b>Definition:</b> utils.c:329</div></div> <div class="ttc" id="utils_8h_html_a59a5859272cb4b43cbdd58208c41e32b"><div class="ttname"><a href="utils_8h.html#a59a5859272cb4b43cbdd58208c41e32b">ucx_dist_ulonglong</a></div><div class="ttdeci">intmax_t ucx_dist_ulonglong(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type unsigned long long. </div><div class="ttdef"><b>Definition:</b> utils.c:273</div></div> <div class="ttc" id="utils_8h_html_aa0bec80e1c67f769ff5e112a7d4ce72a"><div class="ttname"><a href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a">ucx_fprintf</a></div><div class="ttdeci">int ucx_fprintf(void *stream, write_func wfc, const char *fmt,...)</div><div class="ttdoc">A printf() like function which writes the output to a stream by using a write_func(). </div><div class="ttdef"><b>Definition:</b> utils.c:343</div></div> <div class="ttc" id="utils_8h_html_acde5366437e886a459b7468f7a9e11f0"><div class="ttname"><a href="utils_8h.html#acde5366437e886a459b7468f7a9e11f0">ucx_cmp_uint16</a></div><div class="ttdeci">int ucx_cmp_uint16(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type uint16_t. </div><div class="ttdef"><b>Definition:</b> utils.c:195</div></div> <div class="ttc" id="utils_8h_html_a8ce7e11e6b3deafe89a32a091fde7f16"><div class="ttname"><a href="utils_8h.html#a8ce7e11e6b3deafe89a32a091fde7f16">ucx_cmp_int</a></div><div class="ttdeci">int ucx_cmp_int(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type int. </div><div class="ttdef"><b>Definition:</b> utils.c:105</div></div> <div class="ttc" id="utils_8h_html_a54e7d06585bad3a899befc4e9c13853f"><div class="ttname"><a href="utils_8h.html#a54e7d06585bad3a899befc4e9c13853f">ucx_dist_int64</a></div><div class="ttdeci">intmax_t ucx_dist_int64(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type int64_t. </div><div class="ttdef"><b>Definition:</b> utils.c:255</div></div> <div class="ttc" id="ucx_8h_html_a6a67e255e460acb58f802067b3ff5fd5"><div class="ttname"><a href="ucx_8h.html#a6a67e255e460acb58f802067b3ff5fd5">read_func</a></div><div class="ttdeci">size_t(* read_func)(void *, size_t, size_t, void *)</div><div class="ttdoc">Function pointer to a read function. </div><div class="ttdef"><b>Definition:</b> ucx.h:132</div></div> <div class="ttc" id="utils_8h_html_abd83a5da91c3dd026a6931bd80c12f1e"><div class="ttname"><a href="utils_8h.html#abd83a5da91c3dd026a6931bd80c12f1e">ucx_cmp_uint</a></div><div class="ttdeci">int ucx_cmp_uint(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type unsigned int. </div><div class="ttdef"><b>Definition:</b> utils.c:165</div></div> <div class="ttc" id="utils_8h_html_a9f9cf0e89ffdc256ecb35429907f51f5"><div class="ttname"><a href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5">ucx_asprintf</a></div><div class="ttdeci">sstr_t ucx_asprintf(UcxAllocator *allocator, const char *fmt,...)</div><div class="ttdoc">A printf() like function which allocates space for a sstr_t the result is written to...</div><div class="ttdef"><b>Definition:</b> utils.c:394</div></div> <div class="ttc" id="utils_8h_html_a37b7d471ca1679992afc11a0deda45f4"><div class="ttname"><a href="utils_8h.html#a37b7d471ca1679992afc11a0deda45f4">ucx_dist_uint</a></div><div class="ttdeci">intmax_t ucx_dist_uint(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type unsigned int. </div><div class="ttdef"><b>Definition:</b> utils.c:261</div></div> <div class="ttc" id="utils_8h_html_a81fb8434b70ca11bf2c14abfa21d16a9"><div class="ttname"><a href="utils_8h.html#a81fb8434b70ca11bf2c14abfa21d16a9">ucx_dist_int16</a></div><div class="ttdeci">intmax_t ucx_dist_int16(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type int16_t. </div><div class="ttdef"><b>Definition:</b> utils.c:243</div></div> <div class="ttc" id="utils_8h_html_adeb6e8d0a53a829207cfa0a979d01fff"><div class="ttname"><a href="utils_8h.html#adeb6e8d0a53a829207cfa0a979d01fff">ucx_strcpy</a></div><div class="ttdeci">void * ucx_strcpy(const void *s, void *data)</div><div class="ttdoc">Copies a string. </div><div class="ttdef"><b>Definition:</b> utils.c:37</div></div> <div class="ttc" id="utils_8h_html_a43e73d288b1553a0078bf4c98dd341f5"><div class="ttname"><a href="utils_8h.html#a43e73d288b1553a0078bf4c98dd341f5">ucx_dist_longint</a></div><div class="ttdeci">intmax_t ucx_dist_longint(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type long int. </div><div class="ttdef"><b>Definition:</b> utils.c:231</div></div> <div class="ttc" id="utils_8h_html_a66e00a0703cbcde050ec922578e2f080"><div class="ttname"><a href="utils_8h.html#a66e00a0703cbcde050ec922578e2f080">ucx_dist_uint16</a></div><div class="ttdeci">intmax_t ucx_dist_uint16(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type uint16_t. </div><div class="ttdef"><b>Definition:</b> utils.c:279</div></div> <div class="ttc" id="utils_8h_html_ab4a659cc46096f0490c1dafa57726476"><div class="ttname"><a href="utils_8h.html#ab4a659cc46096f0490c1dafa57726476">ucx_dist_int32</a></div><div class="ttdeci">intmax_t ucx_dist_int32(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type int32_t. </div><div class="ttdef"><b>Definition:</b> utils.c:249</div></div> <div class="ttc" id="allocator_8h_html"><div class="ttname"><a href="allocator_8h.html">allocator.h</a></div><div class="ttdoc">Allocator for custom memory management. </div></div> <div class="ttc" id="utils_8h_html_abb13476228d0c16bfaba08469adbae2d"><div class="ttname"><a href="utils_8h.html#abb13476228d0c16bfaba08469adbae2d">ucx_dist_ulongint</a></div><div class="ttdeci">intmax_t ucx_dist_ulongint(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Distance function for integers of type unsigned long int. </div><div class="ttdef"><b>Definition:</b> utils.c:267</div></div> <div class="ttc" id="ucx_8h_html_a989b3f0fa4d307d278378fde435641ed"><div class="ttname"><a href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a></div><div class="ttdeci">size_t(* write_func)(const void *, size_t, size_t, void *)</div><div class="ttdoc">Function pointer to a write function. </div><div class="ttdef"><b>Definition:</b> ucx.h:119</div></div> <div class="ttc" id="utils_8h_html_aa29e6e559946375e34113e34e0b0bd0d"><div class="ttname"><a href="utils_8h.html#aa29e6e559946375e34113e34e0b0bd0d">ucx_cmp_int16</a></div><div class="ttdeci">int ucx_cmp_int16(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type int16_t. </div><div class="ttdef"><b>Definition:</b> utils.c:135</div></div> <div class="ttc" id="utils_8h_html_ab2e184e6a744941aab6b8058116baf30"><div class="ttname"><a href="utils_8h.html#ab2e184e6a744941aab6b8058116baf30">ucx_memcpy</a></div><div class="ttdeci">void * ucx_memcpy(const void *m, void *n)</div><div class="ttdoc">Copies a memory area. </div><div class="ttdef"><b>Definition:</b> utils.c:45</div></div> <div class="ttc" id="utils_8h_html_a54701aea6a89fed1402dfb0bf56bc7f6"><div class="ttname"><a href="utils_8h.html#a54701aea6a89fed1402dfb0bf56bc7f6">ucx_cmp_int64</a></div><div class="ttdeci">int ucx_cmp_int64(const void *i1, const void *i2, void *data)</div><div class="ttdoc">Compares two integers of type int64_t. </div><div class="ttdef"><b>Definition:</b> utils.c:155</div></div> <div class="ttc" id="utils_8h_html_a4907967beb92c3ae351dd239abbb6927"><div class="ttname"><a href="utils_8h.html#a4907967beb92c3ae351dd239abbb6927">ucx_vfprintf</a></div><div class="ttdeci">int ucx_vfprintf(void *stream, write_func wfc, const char *fmt, va_list ap)</div><div class="ttdoc">va_list version of ucx_fprintf(). </div><div class="ttdef"><b>Definition:</b> utils.c:352</div></div> <div class="ttc" id="utils_8h_html_a3ea1dfb856c741f3e8ec6bfdc9ad427e"><div class="ttname"><a href="utils_8h.html#a3ea1dfb856c741f3e8ec6bfdc9ad427e">ucx_vasprintf</a></div><div class="ttdeci">sstr_t ucx_vasprintf(UcxAllocator *allocator, const char *fmt, va_list ap)</div><div class="ttdoc">va_list version of ucx_asprintf(). </div><div class="ttdef"><b>Definition:</b> utils.c:403</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Thu Dec 19 2019 19:58:24 for ucx by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>