docs/api-2.1/utils_8h.html

changeset 390
d345541018fa
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/docs/api-2.1/utils_8h.html	Sat Feb 06 19:11:44 2021 +0100
     1.3 @@ -0,0 +1,2233 @@
     1.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     1.5 +<html xmlns="http://www.w3.org/1999/xhtml">
     1.6 +<head>
     1.7 +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
     1.8 +<meta http-equiv="X-UA-Compatible" content="IE=9"/>
     1.9 +<meta name="generator" content="Doxygen 1.8.13"/>
    1.10 +<meta name="viewport" content="width=device-width, initial-scale=1"/>
    1.11 +<title>ucx: /home/mike/workspace/c/ucx/src/ucx/utils.h File Reference</title>
    1.12 +<link href="tabs.css" rel="stylesheet" type="text/css"/>
    1.13 +<script type="text/javascript" src="jquery.js"></script>
    1.14 +<script type="text/javascript" src="dynsections.js"></script>
    1.15 +<link href="search/search.css" rel="stylesheet" type="text/css"/>
    1.16 +<script type="text/javascript" src="search/searchdata.js"></script>
    1.17 +<script type="text/javascript" src="search/search.js"></script>
    1.18 +<link href="doxygen.css" rel="stylesheet" type="text/css" />
    1.19 +</head>
    1.20 +<body>
    1.21 +<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
    1.22 +<div id="titlearea">
    1.23 +<table cellspacing="0" cellpadding="0">
    1.24 + <tbody>
    1.25 + <tr style="height: 56px;">
    1.26 +  <td id="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
    1.27 +  <td id="projectalign" style="padding-left: 0.5em;">
    1.28 +   <div id="projectname">ucx
    1.29 +   </div>
    1.30 +   <div id="projectbrief">UAP Common Extensions</div>
    1.31 +  </td>
    1.32 + </tr>
    1.33 + </tbody>
    1.34 +</table>
    1.35 +</div>
    1.36 +<!-- end header part -->
    1.37 +<!-- Generated by Doxygen 1.8.13 -->
    1.38 +<script type="text/javascript">
    1.39 +var searchBox = new SearchBox("searchBox", "search",false,'Search');
    1.40 +</script>
    1.41 +<script type="text/javascript" src="menudata.js"></script>
    1.42 +<script type="text/javascript" src="menu.js"></script>
    1.43 +<script type="text/javascript">
    1.44 +$(function() {
    1.45 +  initMenu('',true,false,'search.php','Search');
    1.46 +  $(document).ready(function() { init_search(); });
    1.47 +});
    1.48 +</script>
    1.49 +<div id="main-nav"></div>
    1.50 +<!-- window showing the filter options -->
    1.51 +<div id="MSearchSelectWindow"
    1.52 +     onmouseover="return searchBox.OnSearchSelectShow()"
    1.53 +     onmouseout="return searchBox.OnSearchSelectHide()"
    1.54 +     onkeydown="return searchBox.OnSearchSelectKey(event)">
    1.55 +</div>
    1.56 +
    1.57 +<!-- iframe showing the search results (closed by default) -->
    1.58 +<div id="MSearchResultsWindow">
    1.59 +<iframe src="javascript:void(0)" frameborder="0" 
    1.60 +        name="MSearchResults" id="MSearchResults">
    1.61 +</iframe>
    1.62 +</div>
    1.63 +
    1.64 +<div id="nav-path" class="navpath">
    1.65 +  <ul>
    1.66 +<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>
    1.67 +</div>
    1.68 +</div><!-- top -->
    1.69 +<div class="header">
    1.70 +  <div class="summary">
    1.71 +<a href="#define-members">Macros</a> &#124;
    1.72 +<a href="#func-members">Functions</a>  </div>
    1.73 +  <div class="headertitle">
    1.74 +<div class="title">utils.h File Reference</div>  </div>
    1.75 +</div><!--header-->
    1.76 +<div class="contents">
    1.77 +
    1.78 +<p>Compare, copy and printf functions.  
    1.79 +<a href="#details">More...</a></p>
    1.80 +<div class="textblock"><code>#include &quot;<a class="el" href="ucx_8h_source.html">ucx.h</a>&quot;</code><br />
    1.81 +<code>#include &quot;<a class="el" href="string_8h_source.html">string.h</a>&quot;</code><br />
    1.82 +<code>#include &quot;<a class="el" href="allocator_8h_source.html">allocator.h</a>&quot;</code><br />
    1.83 +<code>#include &lt;inttypes.h&gt;</code><br />
    1.84 +<code>#include &lt;stdarg.h&gt;</code><br />
    1.85 +</div>
    1.86 +<p><a href="utils_8h_source.html">Go to the source code of this file.</a></p>
    1.87 +<table class="memberdecls">
    1.88 +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
    1.89 +Macros</h2></td></tr>
    1.90 +<tr class="memitem:a23efd74fa5f701d4cf26ccbfd138a439"><td class="memItemLeft" align="right" valign="top"><a id="a23efd74fa5f701d4cf26ccbfd138a439"></a>
    1.91 +#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439">UCX_STREAM_COPY_BUFSIZE</a>&#160;&#160;&#160;4096</td></tr>
    1.92 +<tr class="memdesc:a23efd74fa5f701d4cf26ccbfd138a439"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default buffer size for <a class="el" href="utils_8h.html#a41ca1344f781c0d3bf7a414a6e811392" title="Shorthand for an unbounded ucx_stream_bncopy call using a default buffer. ">ucx_stream_copy()</a> and <a class="el" href="utils_8h.html#add13f39a8af440b4f7e6f74339eaada2" title="Shorthand for ucx_stream_bncopy using a default copy buffer. ">ucx_stream_ncopy()</a>. <br /></td></tr>
    1.93 +<tr class="separator:a23efd74fa5f701d4cf26ccbfd138a439"><td class="memSeparator" colspan="2">&#160;</td></tr>
    1.94 +<tr class="memitem:a41ca1344f781c0d3bf7a414a6e811392"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a41ca1344f781c0d3bf7a414a6e811392">ucx_stream_copy</a>(src,  dest,  rfnc,  wfnc)</td></tr>
    1.95 +<tr class="memdesc:a41ca1344f781c0d3bf7a414a6e811392"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for an unbounded ucx_stream_bncopy call using a default buffer.  <a href="#a41ca1344f781c0d3bf7a414a6e811392">More...</a><br /></td></tr>
    1.96 +<tr class="separator:a41ca1344f781c0d3bf7a414a6e811392"><td class="memSeparator" colspan="2">&#160;</td></tr>
    1.97 +<tr class="memitem:add13f39a8af440b4f7e6f74339eaada2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#add13f39a8af440b4f7e6f74339eaada2">ucx_stream_ncopy</a>(src,  dest,  rfnc,  wfnc,  n)</td></tr>
    1.98 +<tr class="memdesc:add13f39a8af440b4f7e6f74339eaada2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for ucx_stream_bncopy using a default copy buffer.  <a href="#add13f39a8af440b4f7e6f74339eaada2">More...</a><br /></td></tr>
    1.99 +<tr class="separator:add13f39a8af440b4f7e6f74339eaada2"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.100 +<tr class="memitem:a6003a1750a66234169bd1f8cc84b297b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a6003a1750a66234169bd1f8cc84b297b">ucx_stream_bcopy</a>(src,  dest,  rfnc,  wfnc,  buf,  bufsize)</td></tr>
   1.101 +<tr class="memdesc:a6003a1750a66234169bd1f8cc84b297b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shorthand for an unbounded ucx_stream_bncopy call using the specified buffer.  <a href="#a6003a1750a66234169bd1f8cc84b297b">More...</a><br /></td></tr>
   1.102 +<tr class="separator:a6003a1750a66234169bd1f8cc84b297b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.103 +<tr class="memitem:af9f333b66ecd639c347c7235f4992e2e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#af9f333b66ecd639c347c7235f4992e2e">ucx_sprintf</a>(...)&#160;&#160;&#160;<a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5">ucx_asprintf</a>(<a class="el" href="allocator_8h.html#a98d2f1b341118b7a0e341fda5d8b2ebf">ucx_default_allocator</a>(), __VA_ARGS__)</td></tr>
   1.104 +<tr class="memdesc:af9f333b66ecd639c347c7235f4992e2e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortcut for <a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5" title="A printf() like function which allocates space for a sstr_t the result is written to...">ucx_asprintf()</a> with default allocator.  <a href="#af9f333b66ecd639c347c7235f4992e2e">More...</a><br /></td></tr>
   1.105 +<tr class="separator:af9f333b66ecd639c347c7235f4992e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.106 +<tr class="memitem:a9d7d65a420f026fcb6982803d5120519"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a9d7d65a420f026fcb6982803d5120519">ucx_bprintf</a>(buffer, ...)</td></tr>
   1.107 +<tr class="memdesc:a9d7d65a420f026fcb6982803d5120519"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <code>printf()</code> like function which writes the output to a <a class="el" href="structUcxBuffer.html" title="UCX Buffer. ">UcxBuffer</a>.  <a href="#a9d7d65a420f026fcb6982803d5120519">More...</a><br /></td></tr>
   1.108 +<tr class="separator:a9d7d65a420f026fcb6982803d5120519"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.109 +</table><table class="memberdecls">
   1.110 +<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
   1.111 +Functions</h2></td></tr>
   1.112 +<tr class="memitem:adeb6e8d0a53a829207cfa0a979d01fff"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#adeb6e8d0a53a829207cfa0a979d01fff">ucx_strcpy</a> (const void *s, void *data)</td></tr>
   1.113 +<tr class="memdesc:adeb6e8d0a53a829207cfa0a979d01fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a string.  <a href="#adeb6e8d0a53a829207cfa0a979d01fff">More...</a><br /></td></tr>
   1.114 +<tr class="separator:adeb6e8d0a53a829207cfa0a979d01fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.115 +<tr class="memitem:ab2e184e6a744941aab6b8058116baf30"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ab2e184e6a744941aab6b8058116baf30">ucx_memcpy</a> (const void *m, void *n)</td></tr>
   1.116 +<tr class="memdesc:ab2e184e6a744941aab6b8058116baf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a memory area.  <a href="#ab2e184e6a744941aab6b8058116baf30">More...</a><br /></td></tr>
   1.117 +<tr class="separator:ab2e184e6a744941aab6b8058116baf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.118 +<tr class="memitem:a114ee7f7da62656ffd35e2dc23394201"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a114ee7f7da62656ffd35e2dc23394201">ucx_stream_bncopy</a> (void *src, void *dest, <a class="el" href="ucx_8h.html#a6a67e255e460acb58f802067b3ff5fd5">read_func</a> rfnc, <a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> wfnc, char *buf, size_t bufsize, size_t n)</td></tr>
   1.119 +<tr class="memdesc:a114ee7f7da62656ffd35e2dc23394201"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads data from a stream and writes it to another stream.  <a href="#a114ee7f7da62656ffd35e2dc23394201">More...</a><br /></td></tr>
   1.120 +<tr class="separator:a114ee7f7da62656ffd35e2dc23394201"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.121 +<tr class="memitem:aa6a37b9d172b6a5b2803d152f9e1b258"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aa6a37b9d172b6a5b2803d152f9e1b258">ucx_cmp_str</a> (const void *s1, const void *s2, void *data)</td></tr>
   1.122 +<tr class="memdesc:aa6a37b9d172b6a5b2803d152f9e1b258"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps the strcmp function.  <a href="#aa6a37b9d172b6a5b2803d152f9e1b258">More...</a><br /></td></tr>
   1.123 +<tr class="separator:aa6a37b9d172b6a5b2803d152f9e1b258"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.124 +<tr class="memitem:ac6b354a878f551a3a5b20a167db3f308"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ac6b354a878f551a3a5b20a167db3f308">ucx_cmp_strn</a> (const void *s1, const void *s2, void *n)</td></tr>
   1.125 +<tr class="memdesc:ac6b354a878f551a3a5b20a167db3f308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps the strncmp function.  <a href="#ac6b354a878f551a3a5b20a167db3f308">More...</a><br /></td></tr>
   1.126 +<tr class="separator:ac6b354a878f551a3a5b20a167db3f308"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.127 +<tr class="memitem:adee0739589166d272f8cb7c23aabf8ba"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#adee0739589166d272f8cb7c23aabf8ba">ucx_cmp_sstr</a> (const void *s1, const void *s2, void *data)</td></tr>
   1.128 +<tr class="memdesc:adee0739589166d272f8cb7c23aabf8ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps the sstrcmp function.  <a href="#adee0739589166d272f8cb7c23aabf8ba">More...</a><br /></td></tr>
   1.129 +<tr class="separator:adee0739589166d272f8cb7c23aabf8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.130 +<tr class="memitem:a8ce7e11e6b3deafe89a32a091fde7f16"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a8ce7e11e6b3deafe89a32a091fde7f16">ucx_cmp_int</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.131 +<tr class="memdesc:a8ce7e11e6b3deafe89a32a091fde7f16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type int.  <a href="#a8ce7e11e6b3deafe89a32a091fde7f16">More...</a><br /></td></tr>
   1.132 +<tr class="separator:a8ce7e11e6b3deafe89a32a091fde7f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.133 +<tr class="memitem:aeb57a2b9a6aaa0460c7a6bec29accf2c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aeb57a2b9a6aaa0460c7a6bec29accf2c">ucx_cmp_longint</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.134 +<tr class="memdesc:aeb57a2b9a6aaa0460c7a6bec29accf2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type long int.  <a href="#aeb57a2b9a6aaa0460c7a6bec29accf2c">More...</a><br /></td></tr>
   1.135 +<tr class="separator:aeb57a2b9a6aaa0460c7a6bec29accf2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.136 +<tr class="memitem:a366b57def20f86a41eaedf575eea5375"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a366b57def20f86a41eaedf575eea5375">ucx_cmp_longlong</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.137 +<tr class="memdesc:a366b57def20f86a41eaedf575eea5375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type long long.  <a href="#a366b57def20f86a41eaedf575eea5375">More...</a><br /></td></tr>
   1.138 +<tr class="separator:a366b57def20f86a41eaedf575eea5375"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.139 +<tr class="memitem:aa29e6e559946375e34113e34e0b0bd0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aa29e6e559946375e34113e34e0b0bd0d">ucx_cmp_int16</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.140 +<tr class="memdesc:aa29e6e559946375e34113e34e0b0bd0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type int16_t.  <a href="#aa29e6e559946375e34113e34e0b0bd0d">More...</a><br /></td></tr>
   1.141 +<tr class="separator:aa29e6e559946375e34113e34e0b0bd0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.142 +<tr class="memitem:a858b2ac443fb202643b71f6a7e9218dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a858b2ac443fb202643b71f6a7e9218dd">ucx_cmp_int32</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.143 +<tr class="memdesc:a858b2ac443fb202643b71f6a7e9218dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type int32_t.  <a href="#a858b2ac443fb202643b71f6a7e9218dd">More...</a><br /></td></tr>
   1.144 +<tr class="separator:a858b2ac443fb202643b71f6a7e9218dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.145 +<tr class="memitem:a54701aea6a89fed1402dfb0bf56bc7f6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a54701aea6a89fed1402dfb0bf56bc7f6">ucx_cmp_int64</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.146 +<tr class="memdesc:a54701aea6a89fed1402dfb0bf56bc7f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type int64_t.  <a href="#a54701aea6a89fed1402dfb0bf56bc7f6">More...</a><br /></td></tr>
   1.147 +<tr class="separator:a54701aea6a89fed1402dfb0bf56bc7f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.148 +<tr class="memitem:abd83a5da91c3dd026a6931bd80c12f1e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#abd83a5da91c3dd026a6931bd80c12f1e">ucx_cmp_uint</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.149 +<tr class="memdesc:abd83a5da91c3dd026a6931bd80c12f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type unsigned int.  <a href="#abd83a5da91c3dd026a6931bd80c12f1e">More...</a><br /></td></tr>
   1.150 +<tr class="separator:abd83a5da91c3dd026a6931bd80c12f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.151 +<tr class="memitem:a3f3cbae2594d6f722bae29acb0408a24"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a3f3cbae2594d6f722bae29acb0408a24">ucx_cmp_ulongint</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.152 +<tr class="memdesc:a3f3cbae2594d6f722bae29acb0408a24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type unsigned long int.  <a href="#a3f3cbae2594d6f722bae29acb0408a24">More...</a><br /></td></tr>
   1.153 +<tr class="separator:a3f3cbae2594d6f722bae29acb0408a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.154 +<tr class="memitem:a6acfc359421f21f9a042a654ff7faac5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a6acfc359421f21f9a042a654ff7faac5">ucx_cmp_ulonglong</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.155 +<tr class="memdesc:a6acfc359421f21f9a042a654ff7faac5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type unsigned long long.  <a href="#a6acfc359421f21f9a042a654ff7faac5">More...</a><br /></td></tr>
   1.156 +<tr class="separator:a6acfc359421f21f9a042a654ff7faac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.157 +<tr class="memitem:acde5366437e886a459b7468f7a9e11f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#acde5366437e886a459b7468f7a9e11f0">ucx_cmp_uint16</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.158 +<tr class="memdesc:acde5366437e886a459b7468f7a9e11f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type uint16_t.  <a href="#acde5366437e886a459b7468f7a9e11f0">More...</a><br /></td></tr>
   1.159 +<tr class="separator:acde5366437e886a459b7468f7a9e11f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.160 +<tr class="memitem:a5879d1722330355914d8c9146fa549d3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a5879d1722330355914d8c9146fa549d3">ucx_cmp_uint32</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.161 +<tr class="memdesc:a5879d1722330355914d8c9146fa549d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type uint32_t.  <a href="#a5879d1722330355914d8c9146fa549d3">More...</a><br /></td></tr>
   1.162 +<tr class="separator:a5879d1722330355914d8c9146fa549d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.163 +<tr class="memitem:a1572a78b5b42f7151a5b2a5a7283d62d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a1572a78b5b42f7151a5b2a5a7283d62d">ucx_cmp_uint64</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.164 +<tr class="memdesc:a1572a78b5b42f7151a5b2a5a7283d62d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two integers of type uint64_t.  <a href="#a1572a78b5b42f7151a5b2a5a7283d62d">More...</a><br /></td></tr>
   1.165 +<tr class="separator:a1572a78b5b42f7151a5b2a5a7283d62d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.166 +<tr class="memitem:a4ab6753739d56c09cdf6079fdcabf7c6"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a4ab6753739d56c09cdf6079fdcabf7c6">ucx_dist_int</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.167 +<tr class="memdesc:a4ab6753739d56c09cdf6079fdcabf7c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type int.  <a href="#a4ab6753739d56c09cdf6079fdcabf7c6">More...</a><br /></td></tr>
   1.168 +<tr class="separator:a4ab6753739d56c09cdf6079fdcabf7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.169 +<tr class="memitem:a43e73d288b1553a0078bf4c98dd341f5"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a43e73d288b1553a0078bf4c98dd341f5">ucx_dist_longint</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.170 +<tr class="memdesc:a43e73d288b1553a0078bf4c98dd341f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type long int.  <a href="#a43e73d288b1553a0078bf4c98dd341f5">More...</a><br /></td></tr>
   1.171 +<tr class="separator:a43e73d288b1553a0078bf4c98dd341f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.172 +<tr class="memitem:a306778414a2427951ea263be92368627"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a306778414a2427951ea263be92368627">ucx_dist_longlong</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.173 +<tr class="memdesc:a306778414a2427951ea263be92368627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type long long.  <a href="#a306778414a2427951ea263be92368627">More...</a><br /></td></tr>
   1.174 +<tr class="separator:a306778414a2427951ea263be92368627"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.175 +<tr class="memitem:a81fb8434b70ca11bf2c14abfa21d16a9"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a81fb8434b70ca11bf2c14abfa21d16a9">ucx_dist_int16</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.176 +<tr class="memdesc:a81fb8434b70ca11bf2c14abfa21d16a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type int16_t.  <a href="#a81fb8434b70ca11bf2c14abfa21d16a9">More...</a><br /></td></tr>
   1.177 +<tr class="separator:a81fb8434b70ca11bf2c14abfa21d16a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.178 +<tr class="memitem:ab4a659cc46096f0490c1dafa57726476"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ab4a659cc46096f0490c1dafa57726476">ucx_dist_int32</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.179 +<tr class="memdesc:ab4a659cc46096f0490c1dafa57726476"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type int32_t.  <a href="#ab4a659cc46096f0490c1dafa57726476">More...</a><br /></td></tr>
   1.180 +<tr class="separator:ab4a659cc46096f0490c1dafa57726476"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.181 +<tr class="memitem:a54e7d06585bad3a899befc4e9c13853f"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a54e7d06585bad3a899befc4e9c13853f">ucx_dist_int64</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.182 +<tr class="memdesc:a54e7d06585bad3a899befc4e9c13853f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type int64_t.  <a href="#a54e7d06585bad3a899befc4e9c13853f">More...</a><br /></td></tr>
   1.183 +<tr class="separator:a54e7d06585bad3a899befc4e9c13853f"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.184 +<tr class="memitem:a37b7d471ca1679992afc11a0deda45f4"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a37b7d471ca1679992afc11a0deda45f4">ucx_dist_uint</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.185 +<tr class="memdesc:a37b7d471ca1679992afc11a0deda45f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type unsigned int.  <a href="#a37b7d471ca1679992afc11a0deda45f4">More...</a><br /></td></tr>
   1.186 +<tr class="separator:a37b7d471ca1679992afc11a0deda45f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.187 +<tr class="memitem:abb13476228d0c16bfaba08469adbae2d"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#abb13476228d0c16bfaba08469adbae2d">ucx_dist_ulongint</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.188 +<tr class="memdesc:abb13476228d0c16bfaba08469adbae2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type unsigned long int.  <a href="#abb13476228d0c16bfaba08469adbae2d">More...</a><br /></td></tr>
   1.189 +<tr class="separator:abb13476228d0c16bfaba08469adbae2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.190 +<tr class="memitem:a59a5859272cb4b43cbdd58208c41e32b"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a59a5859272cb4b43cbdd58208c41e32b">ucx_dist_ulonglong</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.191 +<tr class="memdesc:a59a5859272cb4b43cbdd58208c41e32b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type unsigned long long.  <a href="#a59a5859272cb4b43cbdd58208c41e32b">More...</a><br /></td></tr>
   1.192 +<tr class="separator:a59a5859272cb4b43cbdd58208c41e32b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.193 +<tr class="memitem:a66e00a0703cbcde050ec922578e2f080"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a66e00a0703cbcde050ec922578e2f080">ucx_dist_uint16</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.194 +<tr class="memdesc:a66e00a0703cbcde050ec922578e2f080"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type uint16_t.  <a href="#a66e00a0703cbcde050ec922578e2f080">More...</a><br /></td></tr>
   1.195 +<tr class="separator:a66e00a0703cbcde050ec922578e2f080"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.196 +<tr class="memitem:add2b5c5507caba59d894b84e056b079b"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#add2b5c5507caba59d894b84e056b079b">ucx_dist_uint32</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.197 +<tr class="memdesc:add2b5c5507caba59d894b84e056b079b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type uint32_t.  <a href="#add2b5c5507caba59d894b84e056b079b">More...</a><br /></td></tr>
   1.198 +<tr class="separator:add2b5c5507caba59d894b84e056b079b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.199 +<tr class="memitem:a3ba75e2e0b2479eef2b22fb219b42da7"><td class="memItemLeft" align="right" valign="top">intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a3ba75e2e0b2479eef2b22fb219b42da7">ucx_dist_uint64</a> (const void *i1, const void *i2, void *data)</td></tr>
   1.200 +<tr class="memdesc:a3ba75e2e0b2479eef2b22fb219b42da7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Distance function for integers of type uint64_t.  <a href="#a3ba75e2e0b2479eef2b22fb219b42da7">More...</a><br /></td></tr>
   1.201 +<tr class="separator:a3ba75e2e0b2479eef2b22fb219b42da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.202 +<tr class="memitem:ad1196b561bcdad76c393885819769a97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ad1196b561bcdad76c393885819769a97">ucx_cmp_float</a> (const void *f1, const void *f2, void *data)</td></tr>
   1.203 +<tr class="memdesc:ad1196b561bcdad76c393885819769a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two real numbers of type float.  <a href="#ad1196b561bcdad76c393885819769a97">More...</a><br /></td></tr>
   1.204 +<tr class="separator:ad1196b561bcdad76c393885819769a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.205 +<tr class="memitem:ab804b7c27d0bfcd7bf3a3583140825b6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#ab804b7c27d0bfcd7bf3a3583140825b6">ucx_cmp_double</a> (const void *d1, const void *d2, void *data)</td></tr>
   1.206 +<tr class="memdesc:ab804b7c27d0bfcd7bf3a3583140825b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two real numbers of type double.  <a href="#ab804b7c27d0bfcd7bf3a3583140825b6">More...</a><br /></td></tr>
   1.207 +<tr class="separator:ab804b7c27d0bfcd7bf3a3583140825b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.208 +<tr class="memitem:aa174d539de3ea59be4f9640f17ce53d8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aa174d539de3ea59be4f9640f17ce53d8">ucx_cmp_ptr</a> (const void *ptr1, const void *ptr2, void *data)</td></tr>
   1.209 +<tr class="memdesc:aa174d539de3ea59be4f9640f17ce53d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two pointers.  <a href="#aa174d539de3ea59be4f9640f17ce53d8">More...</a><br /></td></tr>
   1.210 +<tr class="separator:aa174d539de3ea59be4f9640f17ce53d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.211 +<tr class="memitem:aff7d2bcded71196831a8c0664333f8e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aff7d2bcded71196831a8c0664333f8e7">ucx_cmp_mem</a> (const void *ptr1, const void *ptr2, void *n)</td></tr>
   1.212 +<tr class="memdesc:aff7d2bcded71196831a8c0664333f8e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two memory areas.  <a href="#aff7d2bcded71196831a8c0664333f8e7">More...</a><br /></td></tr>
   1.213 +<tr class="separator:aff7d2bcded71196831a8c0664333f8e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.214 +<tr class="memitem:aa0bec80e1c67f769ff5e112a7d4ce72a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a">ucx_fprintf</a> (void *stream, <a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> wfc, const char *fmt,...)</td></tr>
   1.215 +<tr class="memdesc:aa0bec80e1c67f769ff5e112a7d4ce72a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <code>printf()</code> like function which writes the output to a stream by using a <a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed" title="Function pointer to a write function. ">write_func()</a>.  <a href="#aa0bec80e1c67f769ff5e112a7d4ce72a">More...</a><br /></td></tr>
   1.216 +<tr class="separator:aa0bec80e1c67f769ff5e112a7d4ce72a"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.217 +<tr class="memitem:a4907967beb92c3ae351dd239abbb6927"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a4907967beb92c3ae351dd239abbb6927">ucx_vfprintf</a> (void *stream, <a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a> wfc, const char *fmt, va_list ap)</td></tr>
   1.218 +<tr class="memdesc:a4907967beb92c3ae351dd239abbb6927"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>va_list</code> version of <a class="el" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a" title="A printf() like function which writes the output to a stream by using a write_func(). ">ucx_fprintf()</a>.  <a href="#a4907967beb92c3ae351dd239abbb6927">More...</a><br /></td></tr>
   1.219 +<tr class="separator:a4907967beb92c3ae351dd239abbb6927"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.220 +<tr class="memitem:a9f9cf0e89ffdc256ecb35429907f51f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5">ucx_asprintf</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, const char *fmt,...)</td></tr>
   1.221 +<tr class="memdesc:a9f9cf0e89ffdc256ecb35429907f51f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <code>printf()</code> like function which allocates space for a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> the result is written to.  <a href="#a9f9cf0e89ffdc256ecb35429907f51f5">More...</a><br /></td></tr>
   1.222 +<tr class="separator:a9f9cf0e89ffdc256ecb35429907f51f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.223 +<tr class="memitem:a3ea1dfb856c741f3e8ec6bfdc9ad427e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a3ea1dfb856c741f3e8ec6bfdc9ad427e">ucx_vasprintf</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, const char *fmt, va_list ap)</td></tr>
   1.224 +<tr class="memdesc:a3ea1dfb856c741f3e8ec6bfdc9ad427e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>va_list</code> version of <a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5" title="A printf() like function which allocates space for a sstr_t the result is written to...">ucx_asprintf()</a>.  <a href="#a3ea1dfb856c741f3e8ec6bfdc9ad427e">More...</a><br /></td></tr>
   1.225 +<tr class="separator:a3ea1dfb856c741f3e8ec6bfdc9ad427e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   1.226 +</table>
   1.227 +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
   1.228 +<div class="textblock"><p>Compare, copy and printf functions. </p>
   1.229 +<dl class="section author"><dt>Author</dt><dd>Mike Becker </dd>
   1.230 +<dd>
   1.231 +Olaf Wintermann </dd></dl>
   1.232 +</div><h2 class="groupheader">Macro Definition Documentation</h2>
   1.233 +<a id="a9d7d65a420f026fcb6982803d5120519"></a>
   1.234 +<h2 class="memtitle"><span class="permalink"><a href="#a9d7d65a420f026fcb6982803d5120519">&#9670;&nbsp;</a></span>ucx_bprintf</h2>
   1.235 +
   1.236 +<div class="memitem">
   1.237 +<div class="memproto">
   1.238 +      <table class="memname">
   1.239 +        <tr>
   1.240 +          <td class="memname">#define ucx_bprintf</td>
   1.241 +          <td>(</td>
   1.242 +          <td class="paramtype">&#160;</td>
   1.243 +          <td class="paramname">buffer, </td>
   1.244 +        </tr>
   1.245 +        <tr>
   1.246 +          <td class="paramkey"></td>
   1.247 +          <td></td>
   1.248 +          <td class="paramtype">&#160;</td>
   1.249 +          <td class="paramname"><em>...</em>&#160;</td>
   1.250 +        </tr>
   1.251 +        <tr>
   1.252 +          <td></td>
   1.253 +          <td>)</td>
   1.254 +          <td></td><td></td>
   1.255 +        </tr>
   1.256 +      </table>
   1.257 +</div><div class="memdoc">
   1.258 +<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a">ucx_fprintf</a>((<a class="code" href="structUcxBuffer.html">UcxBuffer</a>*)buffer, \</div><div class="line">        (<a class="code" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>)<a class="code" href="buffer_8h.html#af8aacc7401814392b58c1b7b81bffc05">ucx_buffer_write</a>, __VA_ARGS__)</div><div class="ttc" id="buffer_8h_html_af8aacc7401814392b58c1b7b81bffc05"><div class="ttname"><a href="buffer_8h.html#af8aacc7401814392b58c1b7b81bffc05">ucx_buffer_write</a></div><div class="ttdeci">size_t ucx_buffer_write(const void *ptr, size_t size, size_t nitems, UcxBuffer *buffer)</div><div class="ttdoc">Writes data to a UcxBuffer. </div><div class="ttdef"><b>Definition:</b> buffer.c:152</div></div>
   1.259 +<div class="ttc" id="structUcxBuffer_html"><div class="ttname"><a href="structUcxBuffer.html">UcxBuffer</a></div><div class="ttdoc">UCX Buffer. </div><div class="ttdef"><b>Definition:</b> buffer.h:73</div></div>
   1.260 +<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>
   1.261 +<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>
   1.262 +</div><!-- fragment -->
   1.263 +<p>A <code>printf()</code> like function which writes the output to a <a class="el" href="structUcxBuffer.html" title="UCX Buffer. ">UcxBuffer</a>. </p>
   1.264 +<dl class="params"><dt>Parameters</dt><dd>
   1.265 +  <table class="params">
   1.266 +    <tr><td class="paramname">buffer</td><td>the buffer the data is written to </td></tr>
   1.267 +    <tr><td class="paramname">...</td><td>format string and additional arguments </td></tr>
   1.268 +  </table>
   1.269 +  </dd>
   1.270 +</dl>
   1.271 +<dl class="section return"><dt>Returns</dt><dd>the total number of bytes written </dd></dl>
   1.272 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a" title="A printf() like function which writes the output to a stream by using a write_func(). ">ucx_fprintf()</a> </dd></dl>
   1.273 +
   1.274 +</div>
   1.275 +</div>
   1.276 +<a id="af9f333b66ecd639c347c7235f4992e2e"></a>
   1.277 +<h2 class="memtitle"><span class="permalink"><a href="#af9f333b66ecd639c347c7235f4992e2e">&#9670;&nbsp;</a></span>ucx_sprintf</h2>
   1.278 +
   1.279 +<div class="memitem">
   1.280 +<div class="memproto">
   1.281 +      <table class="memname">
   1.282 +        <tr>
   1.283 +          <td class="memname">#define ucx_sprintf</td>
   1.284 +          <td>(</td>
   1.285 +          <td class="paramtype">&#160;</td>
   1.286 +          <td class="paramname"><em>...</em></td><td>)</td>
   1.287 +          <td>&#160;&#160;&#160;<a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5">ucx_asprintf</a>(<a class="el" href="allocator_8h.html#a98d2f1b341118b7a0e341fda5d8b2ebf">ucx_default_allocator</a>(), __VA_ARGS__)</td>
   1.288 +        </tr>
   1.289 +      </table>
   1.290 +</div><div class="memdoc">
   1.291 +
   1.292 +<p>Shortcut for <a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5" title="A printf() like function which allocates space for a sstr_t the result is written to...">ucx_asprintf()</a> with default allocator. </p>
   1.293 +
   1.294 +</div>
   1.295 +</div>
   1.296 +<a id="a6003a1750a66234169bd1f8cc84b297b"></a>
   1.297 +<h2 class="memtitle"><span class="permalink"><a href="#a6003a1750a66234169bd1f8cc84b297b">&#9670;&nbsp;</a></span>ucx_stream_bcopy</h2>
   1.298 +
   1.299 +<div class="memitem">
   1.300 +<div class="memproto">
   1.301 +      <table class="memname">
   1.302 +        <tr>
   1.303 +          <td class="memname">#define ucx_stream_bcopy</td>
   1.304 +          <td>(</td>
   1.305 +          <td class="paramtype">&#160;</td>
   1.306 +          <td class="paramname">src, </td>
   1.307 +        </tr>
   1.308 +        <tr>
   1.309 +          <td class="paramkey"></td>
   1.310 +          <td></td>
   1.311 +          <td class="paramtype">&#160;</td>
   1.312 +          <td class="paramname">dest, </td>
   1.313 +        </tr>
   1.314 +        <tr>
   1.315 +          <td class="paramkey"></td>
   1.316 +          <td></td>
   1.317 +          <td class="paramtype">&#160;</td>
   1.318 +          <td class="paramname">rfnc, </td>
   1.319 +        </tr>
   1.320 +        <tr>
   1.321 +          <td class="paramkey"></td>
   1.322 +          <td></td>
   1.323 +          <td class="paramtype">&#160;</td>
   1.324 +          <td class="paramname">wfnc, </td>
   1.325 +        </tr>
   1.326 +        <tr>
   1.327 +          <td class="paramkey"></td>
   1.328 +          <td></td>
   1.329 +          <td class="paramtype">&#160;</td>
   1.330 +          <td class="paramname">buf, </td>
   1.331 +        </tr>
   1.332 +        <tr>
   1.333 +          <td class="paramkey"></td>
   1.334 +          <td></td>
   1.335 +          <td class="paramtype">&#160;</td>
   1.336 +          <td class="paramname">bufsize&#160;</td>
   1.337 +        </tr>
   1.338 +        <tr>
   1.339 +          <td></td>
   1.340 +          <td>)</td>
   1.341 +          <td></td><td></td>
   1.342 +        </tr>
   1.343 +      </table>
   1.344 +</div><div class="memdoc">
   1.345 +<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="utils_8h.html#a114ee7f7da62656ffd35e2dc23394201">ucx_stream_bncopy</a>(\</div><div class="line">        src, 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">        buf, bufsize, (<span class="keywordtype">size_t</span>)-1)</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>
   1.346 +<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>
   1.347 +<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>
   1.348 +</div><!-- fragment -->
   1.349 +<p>Shorthand for an unbounded ucx_stream_bncopy call using the specified buffer. </p>
   1.350 +<dl class="params"><dt>Parameters</dt><dd>
   1.351 +  <table class="params">
   1.352 +    <tr><td class="paramname">src</td><td>the source stream </td></tr>
   1.353 +    <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
   1.354 +    <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
   1.355 +    <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
   1.356 +    <tr><td class="paramname">buf</td><td>a pointer to the copy buffer or <code>NULL</code> if a buffer shall be implicitly created on the heap </td></tr>
   1.357 +    <tr><td class="paramname">bufsize</td><td>the size of the copy buffer - if <code>NULL</code> was provided for <code>buf</code>, this is the size of the buffer that shall be implicitly created </td></tr>
   1.358 +  </table>
   1.359 +  </dd>
   1.360 +</dl>
   1.361 +<dl class="section return"><dt>Returns</dt><dd>total number of bytes copied </dd></dl>
   1.362 +
   1.363 +</div>
   1.364 +</div>
   1.365 +<a id="a41ca1344f781c0d3bf7a414a6e811392"></a>
   1.366 +<h2 class="memtitle"><span class="permalink"><a href="#a41ca1344f781c0d3bf7a414a6e811392">&#9670;&nbsp;</a></span>ucx_stream_copy</h2>
   1.367 +
   1.368 +<div class="memitem">
   1.369 +<div class="memproto">
   1.370 +      <table class="memname">
   1.371 +        <tr>
   1.372 +          <td class="memname">#define ucx_stream_copy</td>
   1.373 +          <td>(</td>
   1.374 +          <td class="paramtype">&#160;</td>
   1.375 +          <td class="paramname">src, </td>
   1.376 +        </tr>
   1.377 +        <tr>
   1.378 +          <td class="paramkey"></td>
   1.379 +          <td></td>
   1.380 +          <td class="paramtype">&#160;</td>
   1.381 +          <td class="paramname">dest, </td>
   1.382 +        </tr>
   1.383 +        <tr>
   1.384 +          <td class="paramkey"></td>
   1.385 +          <td></td>
   1.386 +          <td class="paramtype">&#160;</td>
   1.387 +          <td class="paramname">rfnc, </td>
   1.388 +        </tr>
   1.389 +        <tr>
   1.390 +          <td class="paramkey"></td>
   1.391 +          <td></td>
   1.392 +          <td class="paramtype">&#160;</td>
   1.393 +          <td class="paramname">wfnc&#160;</td>
   1.394 +        </tr>
   1.395 +        <tr>
   1.396 +          <td></td>
   1.397 +          <td>)</td>
   1.398 +          <td></td><td></td>
   1.399 +        </tr>
   1.400 +      </table>
   1.401 +</div><div class="memdoc">
   1.402 +<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="utils_8h.html#a114ee7f7da62656ffd35e2dc23394201">ucx_stream_bncopy</a>(\</div><div class="line">        src, 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">        NULL, <a class="code" href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439">UCX_STREAM_COPY_BUFSIZE</a>, (<span class="keywordtype">size_t</span>)-1)</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>
   1.403 +<div class="ttc" id="utils_8h_html_a23efd74fa5f701d4cf26ccbfd138a439"><div class="ttname"><a href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439">UCX_STREAM_COPY_BUFSIZE</a></div><div class="ttdeci">#define UCX_STREAM_COPY_BUFSIZE</div><div class="ttdoc">Default buffer size for ucx_stream_copy() and ucx_stream_ncopy(). </div><div class="ttdef"><b>Definition:</b> utils.h:55</div></div>
   1.404 +<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>
   1.405 +<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>
   1.406 +</div><!-- fragment -->
   1.407 +<p>Shorthand for an unbounded ucx_stream_bncopy call using a default buffer. </p>
   1.408 +<dl class="params"><dt>Parameters</dt><dd>
   1.409 +  <table class="params">
   1.410 +    <tr><td class="paramname">src</td><td>the source stream </td></tr>
   1.411 +    <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
   1.412 +    <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
   1.413 +    <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
   1.414 +  </table>
   1.415 +  </dd>
   1.416 +</dl>
   1.417 +<dl class="section return"><dt>Returns</dt><dd>total number of bytes copied</dd></dl>
   1.418 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439" title="Default buffer size for ucx_stream_copy() and ucx_stream_ncopy(). ">UCX_STREAM_COPY_BUFSIZE</a> </dd></dl>
   1.419 +
   1.420 +</div>
   1.421 +</div>
   1.422 +<a id="add13f39a8af440b4f7e6f74339eaada2"></a>
   1.423 +<h2 class="memtitle"><span class="permalink"><a href="#add13f39a8af440b4f7e6f74339eaada2">&#9670;&nbsp;</a></span>ucx_stream_ncopy</h2>
   1.424 +
   1.425 +<div class="memitem">
   1.426 +<div class="memproto">
   1.427 +      <table class="memname">
   1.428 +        <tr>
   1.429 +          <td class="memname">#define ucx_stream_ncopy</td>
   1.430 +          <td>(</td>
   1.431 +          <td class="paramtype">&#160;</td>
   1.432 +          <td class="paramname">src, </td>
   1.433 +        </tr>
   1.434 +        <tr>
   1.435 +          <td class="paramkey"></td>
   1.436 +          <td></td>
   1.437 +          <td class="paramtype">&#160;</td>
   1.438 +          <td class="paramname">dest, </td>
   1.439 +        </tr>
   1.440 +        <tr>
   1.441 +          <td class="paramkey"></td>
   1.442 +          <td></td>
   1.443 +          <td class="paramtype">&#160;</td>
   1.444 +          <td class="paramname">rfnc, </td>
   1.445 +        </tr>
   1.446 +        <tr>
   1.447 +          <td class="paramkey"></td>
   1.448 +          <td></td>
   1.449 +          <td class="paramtype">&#160;</td>
   1.450 +          <td class="paramname">wfnc, </td>
   1.451 +        </tr>
   1.452 +        <tr>
   1.453 +          <td class="paramkey"></td>
   1.454 +          <td></td>
   1.455 +          <td class="paramtype">&#160;</td>
   1.456 +          <td class="paramname">n&#160;</td>
   1.457 +        </tr>
   1.458 +        <tr>
   1.459 +          <td></td>
   1.460 +          <td>)</td>
   1.461 +          <td></td><td></td>
   1.462 +        </tr>
   1.463 +      </table>
   1.464 +</div><div class="memdoc">
   1.465 +<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="utils_8h.html#a114ee7f7da62656ffd35e2dc23394201">ucx_stream_bncopy</a>(\</div><div class="line">        src, 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">        NULL, <a class="code" href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439">UCX_STREAM_COPY_BUFSIZE</a>, n)</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>
   1.466 +<div class="ttc" id="utils_8h_html_a23efd74fa5f701d4cf26ccbfd138a439"><div class="ttname"><a href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439">UCX_STREAM_COPY_BUFSIZE</a></div><div class="ttdeci">#define UCX_STREAM_COPY_BUFSIZE</div><div class="ttdoc">Default buffer size for ucx_stream_copy() and ucx_stream_ncopy(). </div><div class="ttdef"><b>Definition:</b> utils.h:55</div></div>
   1.467 +<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>
   1.468 +<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>
   1.469 +</div><!-- fragment -->
   1.470 +<p>Shorthand for ucx_stream_bncopy using a default copy buffer. </p>
   1.471 +<dl class="params"><dt>Parameters</dt><dd>
   1.472 +  <table class="params">
   1.473 +    <tr><td class="paramname">src</td><td>the source stream </td></tr>
   1.474 +    <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
   1.475 +    <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
   1.476 +    <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
   1.477 +    <tr><td class="paramname">n</td><td>maximum number of bytes that shall be copied </td></tr>
   1.478 +  </table>
   1.479 +  </dd>
   1.480 +</dl>
   1.481 +<dl class="section return"><dt>Returns</dt><dd>total number of bytes copied </dd></dl>
   1.482 +
   1.483 +</div>
   1.484 +</div>
   1.485 +<h2 class="groupheader">Function Documentation</h2>
   1.486 +<a id="a9f9cf0e89ffdc256ecb35429907f51f5"></a>
   1.487 +<h2 class="memtitle"><span class="permalink"><a href="#a9f9cf0e89ffdc256ecb35429907f51f5">&#9670;&nbsp;</a></span>ucx_asprintf()</h2>
   1.488 +
   1.489 +<div class="memitem">
   1.490 +<div class="memproto">
   1.491 +      <table class="memname">
   1.492 +        <tr>
   1.493 +          <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> ucx_asprintf </td>
   1.494 +          <td>(</td>
   1.495 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
   1.496 +          <td class="paramname"><em>allocator</em>, </td>
   1.497 +        </tr>
   1.498 +        <tr>
   1.499 +          <td class="paramkey"></td>
   1.500 +          <td></td>
   1.501 +          <td class="paramtype">const char *&#160;</td>
   1.502 +          <td class="paramname"><em>fmt</em>, </td>
   1.503 +        </tr>
   1.504 +        <tr>
   1.505 +          <td class="paramkey"></td>
   1.506 +          <td></td>
   1.507 +          <td class="paramtype">&#160;</td>
   1.508 +          <td class="paramname"><em>...</em>&#160;</td>
   1.509 +        </tr>
   1.510 +        <tr>
   1.511 +          <td></td>
   1.512 +          <td>)</td>
   1.513 +          <td></td><td></td>
   1.514 +        </tr>
   1.515 +      </table>
   1.516 +</div><div class="memdoc">
   1.517 +
   1.518 +<p>A <code>printf()</code> like function which allocates space for a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> the result is written to. </p>
   1.519 +<p><b>Attention</b>: The <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> data is allocated with the allocators <a class="el" href="allocator_8h.html#a29f0f6a23a70db3b60635cd6dc384473" title="A function pointer to the allocators malloc() function. ">ucx_allocator_malloc()</a> function. So it is implementation dependent, if the returned <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> pointer must be passed to the allocators <a class="el" href="allocator_8h.html#aaf2387ddaddd8ab4b267e6b00e5d6f7e" title="A function pointer to the allocators free() function. ">ucx_allocator_free()</a> function manually.</p>
   1.520 +<p><b>Note</b>: The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>-terminated.</p>
   1.521 +<dl class="params"><dt>Parameters</dt><dd>
   1.522 +  <table class="params">
   1.523 +    <tr><td class="paramname">allocator</td><td>the <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a> used for allocating the result <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> </td></tr>
   1.524 +    <tr><td class="paramname">fmt</td><td>format string </td></tr>
   1.525 +    <tr><td class="paramname">...</td><td>additional arguments </td></tr>
   1.526 +  </table>
   1.527 +  </dd>
   1.528 +</dl>
   1.529 +<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> containing the formatted string </dd></dl>
   1.530 +
   1.531 +</div>
   1.532 +</div>
   1.533 +<a id="ab804b7c27d0bfcd7bf3a3583140825b6"></a>
   1.534 +<h2 class="memtitle"><span class="permalink"><a href="#ab804b7c27d0bfcd7bf3a3583140825b6">&#9670;&nbsp;</a></span>ucx_cmp_double()</h2>
   1.535 +
   1.536 +<div class="memitem">
   1.537 +<div class="memproto">
   1.538 +      <table class="memname">
   1.539 +        <tr>
   1.540 +          <td class="memname">int ucx_cmp_double </td>
   1.541 +          <td>(</td>
   1.542 +          <td class="paramtype">const void *&#160;</td>
   1.543 +          <td class="paramname"><em>d1</em>, </td>
   1.544 +        </tr>
   1.545 +        <tr>
   1.546 +          <td class="paramkey"></td>
   1.547 +          <td></td>
   1.548 +          <td class="paramtype">const void *&#160;</td>
   1.549 +          <td class="paramname"><em>d2</em>, </td>
   1.550 +        </tr>
   1.551 +        <tr>
   1.552 +          <td class="paramkey"></td>
   1.553 +          <td></td>
   1.554 +          <td class="paramtype">void *&#160;</td>
   1.555 +          <td class="paramname"><em>data</em>&#160;</td>
   1.556 +        </tr>
   1.557 +        <tr>
   1.558 +          <td></td>
   1.559 +          <td>)</td>
   1.560 +          <td></td><td></td>
   1.561 +        </tr>
   1.562 +      </table>
   1.563 +</div><div class="memdoc">
   1.564 +
   1.565 +<p>Compares two real numbers of type double. </p>
   1.566 +<dl class="params"><dt>Parameters</dt><dd>
   1.567 +  <table class="params">
   1.568 +    <tr><td class="paramname">d1</td><td>pointer to double one </td></tr>
   1.569 +    <tr><td class="paramname">d2</td><td>pointer to double two </td></tr>
   1.570 +    <tr><td class="paramname">data</td><td>if provided: a pointer to precision (default: 1e-14) </td></tr>
   1.571 +  </table>
   1.572 +  </dd>
   1.573 +</dl>
   1.574 +<dl class="section return"><dt>Returns</dt><dd>-1, if *d1 is less than *d2, 0 if both are equal, 1 if *d1 is greater than *d2 </dd></dl>
   1.575 +
   1.576 +</div>
   1.577 +</div>
   1.578 +<a id="ad1196b561bcdad76c393885819769a97"></a>
   1.579 +<h2 class="memtitle"><span class="permalink"><a href="#ad1196b561bcdad76c393885819769a97">&#9670;&nbsp;</a></span>ucx_cmp_float()</h2>
   1.580 +
   1.581 +<div class="memitem">
   1.582 +<div class="memproto">
   1.583 +      <table class="memname">
   1.584 +        <tr>
   1.585 +          <td class="memname">int ucx_cmp_float </td>
   1.586 +          <td>(</td>
   1.587 +          <td class="paramtype">const void *&#160;</td>
   1.588 +          <td class="paramname"><em>f1</em>, </td>
   1.589 +        </tr>
   1.590 +        <tr>
   1.591 +          <td class="paramkey"></td>
   1.592 +          <td></td>
   1.593 +          <td class="paramtype">const void *&#160;</td>
   1.594 +          <td class="paramname"><em>f2</em>, </td>
   1.595 +        </tr>
   1.596 +        <tr>
   1.597 +          <td class="paramkey"></td>
   1.598 +          <td></td>
   1.599 +          <td class="paramtype">void *&#160;</td>
   1.600 +          <td class="paramname"><em>data</em>&#160;</td>
   1.601 +        </tr>
   1.602 +        <tr>
   1.603 +          <td></td>
   1.604 +          <td>)</td>
   1.605 +          <td></td><td></td>
   1.606 +        </tr>
   1.607 +      </table>
   1.608 +</div><div class="memdoc">
   1.609 +
   1.610 +<p>Compares two real numbers of type float. </p>
   1.611 +<dl class="params"><dt>Parameters</dt><dd>
   1.612 +  <table class="params">
   1.613 +    <tr><td class="paramname">f1</td><td>pointer to float one </td></tr>
   1.614 +    <tr><td class="paramname">f2</td><td>pointer to float two </td></tr>
   1.615 +    <tr><td class="paramname">data</td><td>if provided: a pointer to precision (default: 1e-6f) </td></tr>
   1.616 +  </table>
   1.617 +  </dd>
   1.618 +</dl>
   1.619 +<dl class="section return"><dt>Returns</dt><dd>-1, if *f1 is less than *f2, 0 if both are equal, 1 if *f1 is greater than *f2 </dd></dl>
   1.620 +
   1.621 +</div>
   1.622 +</div>
   1.623 +<a id="a8ce7e11e6b3deafe89a32a091fde7f16"></a>
   1.624 +<h2 class="memtitle"><span class="permalink"><a href="#a8ce7e11e6b3deafe89a32a091fde7f16">&#9670;&nbsp;</a></span>ucx_cmp_int()</h2>
   1.625 +
   1.626 +<div class="memitem">
   1.627 +<div class="memproto">
   1.628 +      <table class="memname">
   1.629 +        <tr>
   1.630 +          <td class="memname">int ucx_cmp_int </td>
   1.631 +          <td>(</td>
   1.632 +          <td class="paramtype">const void *&#160;</td>
   1.633 +          <td class="paramname"><em>i1</em>, </td>
   1.634 +        </tr>
   1.635 +        <tr>
   1.636 +          <td class="paramkey"></td>
   1.637 +          <td></td>
   1.638 +          <td class="paramtype">const void *&#160;</td>
   1.639 +          <td class="paramname"><em>i2</em>, </td>
   1.640 +        </tr>
   1.641 +        <tr>
   1.642 +          <td class="paramkey"></td>
   1.643 +          <td></td>
   1.644 +          <td class="paramtype">void *&#160;</td>
   1.645 +          <td class="paramname"><em>data</em>&#160;</td>
   1.646 +        </tr>
   1.647 +        <tr>
   1.648 +          <td></td>
   1.649 +          <td>)</td>
   1.650 +          <td></td><td></td>
   1.651 +        </tr>
   1.652 +      </table>
   1.653 +</div><div class="memdoc">
   1.654 +
   1.655 +<p>Compares two integers of type int. </p>
   1.656 +<dl class="params"><dt>Parameters</dt><dd>
   1.657 +  <table class="params">
   1.658 +    <tr><td class="paramname">i1</td><td>pointer to integer one </td></tr>
   1.659 +    <tr><td class="paramname">i2</td><td>pointer to integer two </td></tr>
   1.660 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.661 +  </table>
   1.662 +  </dd>
   1.663 +</dl>
   1.664 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
   1.665 +
   1.666 +</div>
   1.667 +</div>
   1.668 +<a id="aa29e6e559946375e34113e34e0b0bd0d"></a>
   1.669 +<h2 class="memtitle"><span class="permalink"><a href="#aa29e6e559946375e34113e34e0b0bd0d">&#9670;&nbsp;</a></span>ucx_cmp_int16()</h2>
   1.670 +
   1.671 +<div class="memitem">
   1.672 +<div class="memproto">
   1.673 +      <table class="memname">
   1.674 +        <tr>
   1.675 +          <td class="memname">int ucx_cmp_int16 </td>
   1.676 +          <td>(</td>
   1.677 +          <td class="paramtype">const void *&#160;</td>
   1.678 +          <td class="paramname"><em>i1</em>, </td>
   1.679 +        </tr>
   1.680 +        <tr>
   1.681 +          <td class="paramkey"></td>
   1.682 +          <td></td>
   1.683 +          <td class="paramtype">const void *&#160;</td>
   1.684 +          <td class="paramname"><em>i2</em>, </td>
   1.685 +        </tr>
   1.686 +        <tr>
   1.687 +          <td class="paramkey"></td>
   1.688 +          <td></td>
   1.689 +          <td class="paramtype">void *&#160;</td>
   1.690 +          <td class="paramname"><em>data</em>&#160;</td>
   1.691 +        </tr>
   1.692 +        <tr>
   1.693 +          <td></td>
   1.694 +          <td>)</td>
   1.695 +          <td></td><td></td>
   1.696 +        </tr>
   1.697 +      </table>
   1.698 +</div><div class="memdoc">
   1.699 +
   1.700 +<p>Compares two integers of type int16_t. </p>
   1.701 +<dl class="params"><dt>Parameters</dt><dd>
   1.702 +  <table class="params">
   1.703 +    <tr><td class="paramname">i1</td><td>pointer to int16_t one </td></tr>
   1.704 +    <tr><td class="paramname">i2</td><td>pointer to int16_t two </td></tr>
   1.705 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.706 +  </table>
   1.707 +  </dd>
   1.708 +</dl>
   1.709 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
   1.710 +
   1.711 +</div>
   1.712 +</div>
   1.713 +<a id="a858b2ac443fb202643b71f6a7e9218dd"></a>
   1.714 +<h2 class="memtitle"><span class="permalink"><a href="#a858b2ac443fb202643b71f6a7e9218dd">&#9670;&nbsp;</a></span>ucx_cmp_int32()</h2>
   1.715 +
   1.716 +<div class="memitem">
   1.717 +<div class="memproto">
   1.718 +      <table class="memname">
   1.719 +        <tr>
   1.720 +          <td class="memname">int ucx_cmp_int32 </td>
   1.721 +          <td>(</td>
   1.722 +          <td class="paramtype">const void *&#160;</td>
   1.723 +          <td class="paramname"><em>i1</em>, </td>
   1.724 +        </tr>
   1.725 +        <tr>
   1.726 +          <td class="paramkey"></td>
   1.727 +          <td></td>
   1.728 +          <td class="paramtype">const void *&#160;</td>
   1.729 +          <td class="paramname"><em>i2</em>, </td>
   1.730 +        </tr>
   1.731 +        <tr>
   1.732 +          <td class="paramkey"></td>
   1.733 +          <td></td>
   1.734 +          <td class="paramtype">void *&#160;</td>
   1.735 +          <td class="paramname"><em>data</em>&#160;</td>
   1.736 +        </tr>
   1.737 +        <tr>
   1.738 +          <td></td>
   1.739 +          <td>)</td>
   1.740 +          <td></td><td></td>
   1.741 +        </tr>
   1.742 +      </table>
   1.743 +</div><div class="memdoc">
   1.744 +
   1.745 +<p>Compares two integers of type int32_t. </p>
   1.746 +<dl class="params"><dt>Parameters</dt><dd>
   1.747 +  <table class="params">
   1.748 +    <tr><td class="paramname">i1</td><td>pointer to int32_t one </td></tr>
   1.749 +    <tr><td class="paramname">i2</td><td>pointer to int32_t two </td></tr>
   1.750 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.751 +  </table>
   1.752 +  </dd>
   1.753 +</dl>
   1.754 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
   1.755 +
   1.756 +</div>
   1.757 +</div>
   1.758 +<a id="a54701aea6a89fed1402dfb0bf56bc7f6"></a>
   1.759 +<h2 class="memtitle"><span class="permalink"><a href="#a54701aea6a89fed1402dfb0bf56bc7f6">&#9670;&nbsp;</a></span>ucx_cmp_int64()</h2>
   1.760 +
   1.761 +<div class="memitem">
   1.762 +<div class="memproto">
   1.763 +      <table class="memname">
   1.764 +        <tr>
   1.765 +          <td class="memname">int ucx_cmp_int64 </td>
   1.766 +          <td>(</td>
   1.767 +          <td class="paramtype">const void *&#160;</td>
   1.768 +          <td class="paramname"><em>i1</em>, </td>
   1.769 +        </tr>
   1.770 +        <tr>
   1.771 +          <td class="paramkey"></td>
   1.772 +          <td></td>
   1.773 +          <td class="paramtype">const void *&#160;</td>
   1.774 +          <td class="paramname"><em>i2</em>, </td>
   1.775 +        </tr>
   1.776 +        <tr>
   1.777 +          <td class="paramkey"></td>
   1.778 +          <td></td>
   1.779 +          <td class="paramtype">void *&#160;</td>
   1.780 +          <td class="paramname"><em>data</em>&#160;</td>
   1.781 +        </tr>
   1.782 +        <tr>
   1.783 +          <td></td>
   1.784 +          <td>)</td>
   1.785 +          <td></td><td></td>
   1.786 +        </tr>
   1.787 +      </table>
   1.788 +</div><div class="memdoc">
   1.789 +
   1.790 +<p>Compares two integers of type int64_t. </p>
   1.791 +<dl class="params"><dt>Parameters</dt><dd>
   1.792 +  <table class="params">
   1.793 +    <tr><td class="paramname">i1</td><td>pointer to int64_t one </td></tr>
   1.794 +    <tr><td class="paramname">i2</td><td>pointer to int64_t two </td></tr>
   1.795 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.796 +  </table>
   1.797 +  </dd>
   1.798 +</dl>
   1.799 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
   1.800 +
   1.801 +</div>
   1.802 +</div>
   1.803 +<a id="aeb57a2b9a6aaa0460c7a6bec29accf2c"></a>
   1.804 +<h2 class="memtitle"><span class="permalink"><a href="#aeb57a2b9a6aaa0460c7a6bec29accf2c">&#9670;&nbsp;</a></span>ucx_cmp_longint()</h2>
   1.805 +
   1.806 +<div class="memitem">
   1.807 +<div class="memproto">
   1.808 +      <table class="memname">
   1.809 +        <tr>
   1.810 +          <td class="memname">int ucx_cmp_longint </td>
   1.811 +          <td>(</td>
   1.812 +          <td class="paramtype">const void *&#160;</td>
   1.813 +          <td class="paramname"><em>i1</em>, </td>
   1.814 +        </tr>
   1.815 +        <tr>
   1.816 +          <td class="paramkey"></td>
   1.817 +          <td></td>
   1.818 +          <td class="paramtype">const void *&#160;</td>
   1.819 +          <td class="paramname"><em>i2</em>, </td>
   1.820 +        </tr>
   1.821 +        <tr>
   1.822 +          <td class="paramkey"></td>
   1.823 +          <td></td>
   1.824 +          <td class="paramtype">void *&#160;</td>
   1.825 +          <td class="paramname"><em>data</em>&#160;</td>
   1.826 +        </tr>
   1.827 +        <tr>
   1.828 +          <td></td>
   1.829 +          <td>)</td>
   1.830 +          <td></td><td></td>
   1.831 +        </tr>
   1.832 +      </table>
   1.833 +</div><div class="memdoc">
   1.834 +
   1.835 +<p>Compares two integers of type long int. </p>
   1.836 +<dl class="params"><dt>Parameters</dt><dd>
   1.837 +  <table class="params">
   1.838 +    <tr><td class="paramname">i1</td><td>pointer to long integer one </td></tr>
   1.839 +    <tr><td class="paramname">i2</td><td>pointer to long integer two </td></tr>
   1.840 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.841 +  </table>
   1.842 +  </dd>
   1.843 +</dl>
   1.844 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
   1.845 +
   1.846 +</div>
   1.847 +</div>
   1.848 +<a id="a366b57def20f86a41eaedf575eea5375"></a>
   1.849 +<h2 class="memtitle"><span class="permalink"><a href="#a366b57def20f86a41eaedf575eea5375">&#9670;&nbsp;</a></span>ucx_cmp_longlong()</h2>
   1.850 +
   1.851 +<div class="memitem">
   1.852 +<div class="memproto">
   1.853 +      <table class="memname">
   1.854 +        <tr>
   1.855 +          <td class="memname">int ucx_cmp_longlong </td>
   1.856 +          <td>(</td>
   1.857 +          <td class="paramtype">const void *&#160;</td>
   1.858 +          <td class="paramname"><em>i1</em>, </td>
   1.859 +        </tr>
   1.860 +        <tr>
   1.861 +          <td class="paramkey"></td>
   1.862 +          <td></td>
   1.863 +          <td class="paramtype">const void *&#160;</td>
   1.864 +          <td class="paramname"><em>i2</em>, </td>
   1.865 +        </tr>
   1.866 +        <tr>
   1.867 +          <td class="paramkey"></td>
   1.868 +          <td></td>
   1.869 +          <td class="paramtype">void *&#160;</td>
   1.870 +          <td class="paramname"><em>data</em>&#160;</td>
   1.871 +        </tr>
   1.872 +        <tr>
   1.873 +          <td></td>
   1.874 +          <td>)</td>
   1.875 +          <td></td><td></td>
   1.876 +        </tr>
   1.877 +      </table>
   1.878 +</div><div class="memdoc">
   1.879 +
   1.880 +<p>Compares two integers of type long long. </p>
   1.881 +<dl class="params"><dt>Parameters</dt><dd>
   1.882 +  <table class="params">
   1.883 +    <tr><td class="paramname">i1</td><td>pointer to long long one </td></tr>
   1.884 +    <tr><td class="paramname">i2</td><td>pointer to long long two </td></tr>
   1.885 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.886 +  </table>
   1.887 +  </dd>
   1.888 +</dl>
   1.889 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
   1.890 +
   1.891 +</div>
   1.892 +</div>
   1.893 +<a id="aff7d2bcded71196831a8c0664333f8e7"></a>
   1.894 +<h2 class="memtitle"><span class="permalink"><a href="#aff7d2bcded71196831a8c0664333f8e7">&#9670;&nbsp;</a></span>ucx_cmp_mem()</h2>
   1.895 +
   1.896 +<div class="memitem">
   1.897 +<div class="memproto">
   1.898 +      <table class="memname">
   1.899 +        <tr>
   1.900 +          <td class="memname">int ucx_cmp_mem </td>
   1.901 +          <td>(</td>
   1.902 +          <td class="paramtype">const void *&#160;</td>
   1.903 +          <td class="paramname"><em>ptr1</em>, </td>
   1.904 +        </tr>
   1.905 +        <tr>
   1.906 +          <td class="paramkey"></td>
   1.907 +          <td></td>
   1.908 +          <td class="paramtype">const void *&#160;</td>
   1.909 +          <td class="paramname"><em>ptr2</em>, </td>
   1.910 +        </tr>
   1.911 +        <tr>
   1.912 +          <td class="paramkey"></td>
   1.913 +          <td></td>
   1.914 +          <td class="paramtype">void *&#160;</td>
   1.915 +          <td class="paramname"><em>n</em>&#160;</td>
   1.916 +        </tr>
   1.917 +        <tr>
   1.918 +          <td></td>
   1.919 +          <td>)</td>
   1.920 +          <td></td><td></td>
   1.921 +        </tr>
   1.922 +      </table>
   1.923 +</div><div class="memdoc">
   1.924 +
   1.925 +<p>Compares two memory areas. </p>
   1.926 +<dl class="params"><dt>Parameters</dt><dd>
   1.927 +  <table class="params">
   1.928 +    <tr><td class="paramname">ptr1</td><td>pointer one </td></tr>
   1.929 +    <tr><td class="paramname">ptr2</td><td>pointer two </td></tr>
   1.930 +    <tr><td class="paramname">n</td><td>a pointer to the size_t containing the third parameter for memcmp </td></tr>
   1.931 +  </table>
   1.932 +  </dd>
   1.933 +</dl>
   1.934 +<dl class="section return"><dt>Returns</dt><dd>the result of memcmp(ptr1, ptr2, *n) </dd></dl>
   1.935 +
   1.936 +</div>
   1.937 +</div>
   1.938 +<a id="aa174d539de3ea59be4f9640f17ce53d8"></a>
   1.939 +<h2 class="memtitle"><span class="permalink"><a href="#aa174d539de3ea59be4f9640f17ce53d8">&#9670;&nbsp;</a></span>ucx_cmp_ptr()</h2>
   1.940 +
   1.941 +<div class="memitem">
   1.942 +<div class="memproto">
   1.943 +      <table class="memname">
   1.944 +        <tr>
   1.945 +          <td class="memname">int ucx_cmp_ptr </td>
   1.946 +          <td>(</td>
   1.947 +          <td class="paramtype">const void *&#160;</td>
   1.948 +          <td class="paramname"><em>ptr1</em>, </td>
   1.949 +        </tr>
   1.950 +        <tr>
   1.951 +          <td class="paramkey"></td>
   1.952 +          <td></td>
   1.953 +          <td class="paramtype">const void *&#160;</td>
   1.954 +          <td class="paramname"><em>ptr2</em>, </td>
   1.955 +        </tr>
   1.956 +        <tr>
   1.957 +          <td class="paramkey"></td>
   1.958 +          <td></td>
   1.959 +          <td class="paramtype">void *&#160;</td>
   1.960 +          <td class="paramname"><em>data</em>&#160;</td>
   1.961 +        </tr>
   1.962 +        <tr>
   1.963 +          <td></td>
   1.964 +          <td>)</td>
   1.965 +          <td></td><td></td>
   1.966 +        </tr>
   1.967 +      </table>
   1.968 +</div><div class="memdoc">
   1.969 +
   1.970 +<p>Compares two pointers. </p>
   1.971 +<dl class="params"><dt>Parameters</dt><dd>
   1.972 +  <table class="params">
   1.973 +    <tr><td class="paramname">ptr1</td><td>pointer one </td></tr>
   1.974 +    <tr><td class="paramname">ptr2</td><td>pointer two </td></tr>
   1.975 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
   1.976 +  </table>
   1.977 +  </dd>
   1.978 +</dl>
   1.979 +<dl class="section return"><dt>Returns</dt><dd>-1 if ptr1 is less than ptr2, 0 if both are equal, 1 if ptr1 is greater than ptr2 </dd></dl>
   1.980 +
   1.981 +</div>
   1.982 +</div>
   1.983 +<a id="adee0739589166d272f8cb7c23aabf8ba"></a>
   1.984 +<h2 class="memtitle"><span class="permalink"><a href="#adee0739589166d272f8cb7c23aabf8ba">&#9670;&nbsp;</a></span>ucx_cmp_sstr()</h2>
   1.985 +
   1.986 +<div class="memitem">
   1.987 +<div class="memproto">
   1.988 +      <table class="memname">
   1.989 +        <tr>
   1.990 +          <td class="memname">int ucx_cmp_sstr </td>
   1.991 +          <td>(</td>
   1.992 +          <td class="paramtype">const void *&#160;</td>
   1.993 +          <td class="paramname"><em>s1</em>, </td>
   1.994 +        </tr>
   1.995 +        <tr>
   1.996 +          <td class="paramkey"></td>
   1.997 +          <td></td>
   1.998 +          <td class="paramtype">const void *&#160;</td>
   1.999 +          <td class="paramname"><em>s2</em>, </td>
  1.1000 +        </tr>
  1.1001 +        <tr>
  1.1002 +          <td class="paramkey"></td>
  1.1003 +          <td></td>
  1.1004 +          <td class="paramtype">void *&#160;</td>
  1.1005 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1006 +        </tr>
  1.1007 +        <tr>
  1.1008 +          <td></td>
  1.1009 +          <td>)</td>
  1.1010 +          <td></td><td></td>
  1.1011 +        </tr>
  1.1012 +      </table>
  1.1013 +</div><div class="memdoc">
  1.1014 +
  1.1015 +<p>Wraps the sstrcmp function. </p>
  1.1016 +<dl class="params"><dt>Parameters</dt><dd>
  1.1017 +  <table class="params">
  1.1018 +    <tr><td class="paramname">s1</td><td>sstr one </td></tr>
  1.1019 +    <tr><td class="paramname">s2</td><td>sstr two </td></tr>
  1.1020 +    <tr><td class="paramname">data</td><td>ignored </td></tr>
  1.1021 +  </table>
  1.1022 +  </dd>
  1.1023 +</dl>
  1.1024 +<dl class="section return"><dt>Returns</dt><dd>the result of <a class="el" href="string_8h.html#a7ae7156c8de57454ca38d306100b8160" title="Compares two UCX strings with standard memcmp(). ">sstrcmp(s1, s2)</a> </dd></dl>
  1.1025 +
  1.1026 +</div>
  1.1027 +</div>
  1.1028 +<a id="aa6a37b9d172b6a5b2803d152f9e1b258"></a>
  1.1029 +<h2 class="memtitle"><span class="permalink"><a href="#aa6a37b9d172b6a5b2803d152f9e1b258">&#9670;&nbsp;</a></span>ucx_cmp_str()</h2>
  1.1030 +
  1.1031 +<div class="memitem">
  1.1032 +<div class="memproto">
  1.1033 +      <table class="memname">
  1.1034 +        <tr>
  1.1035 +          <td class="memname">int ucx_cmp_str </td>
  1.1036 +          <td>(</td>
  1.1037 +          <td class="paramtype">const void *&#160;</td>
  1.1038 +          <td class="paramname"><em>s1</em>, </td>
  1.1039 +        </tr>
  1.1040 +        <tr>
  1.1041 +          <td class="paramkey"></td>
  1.1042 +          <td></td>
  1.1043 +          <td class="paramtype">const void *&#160;</td>
  1.1044 +          <td class="paramname"><em>s2</em>, </td>
  1.1045 +        </tr>
  1.1046 +        <tr>
  1.1047 +          <td class="paramkey"></td>
  1.1048 +          <td></td>
  1.1049 +          <td class="paramtype">void *&#160;</td>
  1.1050 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1051 +        </tr>
  1.1052 +        <tr>
  1.1053 +          <td></td>
  1.1054 +          <td>)</td>
  1.1055 +          <td></td><td></td>
  1.1056 +        </tr>
  1.1057 +      </table>
  1.1058 +</div><div class="memdoc">
  1.1059 +
  1.1060 +<p>Wraps the strcmp function. </p>
  1.1061 +<dl class="params"><dt>Parameters</dt><dd>
  1.1062 +  <table class="params">
  1.1063 +    <tr><td class="paramname">s1</td><td>string one </td></tr>
  1.1064 +    <tr><td class="paramname">s2</td><td>string two </td></tr>
  1.1065 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1066 +  </table>
  1.1067 +  </dd>
  1.1068 +</dl>
  1.1069 +<dl class="section return"><dt>Returns</dt><dd>the result of strcmp(s1, s2) </dd></dl>
  1.1070 +
  1.1071 +</div>
  1.1072 +</div>
  1.1073 +<a id="ac6b354a878f551a3a5b20a167db3f308"></a>
  1.1074 +<h2 class="memtitle"><span class="permalink"><a href="#ac6b354a878f551a3a5b20a167db3f308">&#9670;&nbsp;</a></span>ucx_cmp_strn()</h2>
  1.1075 +
  1.1076 +<div class="memitem">
  1.1077 +<div class="memproto">
  1.1078 +      <table class="memname">
  1.1079 +        <tr>
  1.1080 +          <td class="memname">int ucx_cmp_strn </td>
  1.1081 +          <td>(</td>
  1.1082 +          <td class="paramtype">const void *&#160;</td>
  1.1083 +          <td class="paramname"><em>s1</em>, </td>
  1.1084 +        </tr>
  1.1085 +        <tr>
  1.1086 +          <td class="paramkey"></td>
  1.1087 +          <td></td>
  1.1088 +          <td class="paramtype">const void *&#160;</td>
  1.1089 +          <td class="paramname"><em>s2</em>, </td>
  1.1090 +        </tr>
  1.1091 +        <tr>
  1.1092 +          <td class="paramkey"></td>
  1.1093 +          <td></td>
  1.1094 +          <td class="paramtype">void *&#160;</td>
  1.1095 +          <td class="paramname"><em>n</em>&#160;</td>
  1.1096 +        </tr>
  1.1097 +        <tr>
  1.1098 +          <td></td>
  1.1099 +          <td>)</td>
  1.1100 +          <td></td><td></td>
  1.1101 +        </tr>
  1.1102 +      </table>
  1.1103 +</div><div class="memdoc">
  1.1104 +
  1.1105 +<p>Wraps the strncmp function. </p>
  1.1106 +<dl class="params"><dt>Parameters</dt><dd>
  1.1107 +  <table class="params">
  1.1108 +    <tr><td class="paramname">s1</td><td>string one </td></tr>
  1.1109 +    <tr><td class="paramname">s2</td><td>string two </td></tr>
  1.1110 +    <tr><td class="paramname">n</td><td>a pointer to the size_t containing the third strncmp parameter </td></tr>
  1.1111 +  </table>
  1.1112 +  </dd>
  1.1113 +</dl>
  1.1114 +<dl class="section return"><dt>Returns</dt><dd>the result of strncmp(s1, s2, *n) </dd></dl>
  1.1115 +
  1.1116 +</div>
  1.1117 +</div>
  1.1118 +<a id="abd83a5da91c3dd026a6931bd80c12f1e"></a>
  1.1119 +<h2 class="memtitle"><span class="permalink"><a href="#abd83a5da91c3dd026a6931bd80c12f1e">&#9670;&nbsp;</a></span>ucx_cmp_uint()</h2>
  1.1120 +
  1.1121 +<div class="memitem">
  1.1122 +<div class="memproto">
  1.1123 +      <table class="memname">
  1.1124 +        <tr>
  1.1125 +          <td class="memname">int ucx_cmp_uint </td>
  1.1126 +          <td>(</td>
  1.1127 +          <td class="paramtype">const void *&#160;</td>
  1.1128 +          <td class="paramname"><em>i1</em>, </td>
  1.1129 +        </tr>
  1.1130 +        <tr>
  1.1131 +          <td class="paramkey"></td>
  1.1132 +          <td></td>
  1.1133 +          <td class="paramtype">const void *&#160;</td>
  1.1134 +          <td class="paramname"><em>i2</em>, </td>
  1.1135 +        </tr>
  1.1136 +        <tr>
  1.1137 +          <td class="paramkey"></td>
  1.1138 +          <td></td>
  1.1139 +          <td class="paramtype">void *&#160;</td>
  1.1140 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1141 +        </tr>
  1.1142 +        <tr>
  1.1143 +          <td></td>
  1.1144 +          <td>)</td>
  1.1145 +          <td></td><td></td>
  1.1146 +        </tr>
  1.1147 +      </table>
  1.1148 +</div><div class="memdoc">
  1.1149 +
  1.1150 +<p>Compares two integers of type unsigned int. </p>
  1.1151 +<dl class="params"><dt>Parameters</dt><dd>
  1.1152 +  <table class="params">
  1.1153 +    <tr><td class="paramname">i1</td><td>pointer to unsigned integer one </td></tr>
  1.1154 +    <tr><td class="paramname">i2</td><td>pointer to unsigned integer two </td></tr>
  1.1155 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1156 +  </table>
  1.1157 +  </dd>
  1.1158 +</dl>
  1.1159 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
  1.1160 +
  1.1161 +</div>
  1.1162 +</div>
  1.1163 +<a id="acde5366437e886a459b7468f7a9e11f0"></a>
  1.1164 +<h2 class="memtitle"><span class="permalink"><a href="#acde5366437e886a459b7468f7a9e11f0">&#9670;&nbsp;</a></span>ucx_cmp_uint16()</h2>
  1.1165 +
  1.1166 +<div class="memitem">
  1.1167 +<div class="memproto">
  1.1168 +      <table class="memname">
  1.1169 +        <tr>
  1.1170 +          <td class="memname">int ucx_cmp_uint16 </td>
  1.1171 +          <td>(</td>
  1.1172 +          <td class="paramtype">const void *&#160;</td>
  1.1173 +          <td class="paramname"><em>i1</em>, </td>
  1.1174 +        </tr>
  1.1175 +        <tr>
  1.1176 +          <td class="paramkey"></td>
  1.1177 +          <td></td>
  1.1178 +          <td class="paramtype">const void *&#160;</td>
  1.1179 +          <td class="paramname"><em>i2</em>, </td>
  1.1180 +        </tr>
  1.1181 +        <tr>
  1.1182 +          <td class="paramkey"></td>
  1.1183 +          <td></td>
  1.1184 +          <td class="paramtype">void *&#160;</td>
  1.1185 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1186 +        </tr>
  1.1187 +        <tr>
  1.1188 +          <td></td>
  1.1189 +          <td>)</td>
  1.1190 +          <td></td><td></td>
  1.1191 +        </tr>
  1.1192 +      </table>
  1.1193 +</div><div class="memdoc">
  1.1194 +
  1.1195 +<p>Compares two integers of type uint16_t. </p>
  1.1196 +<dl class="params"><dt>Parameters</dt><dd>
  1.1197 +  <table class="params">
  1.1198 +    <tr><td class="paramname">i1</td><td>pointer to uint16_t one </td></tr>
  1.1199 +    <tr><td class="paramname">i2</td><td>pointer to uint16_t two </td></tr>
  1.1200 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1201 +  </table>
  1.1202 +  </dd>
  1.1203 +</dl>
  1.1204 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
  1.1205 +
  1.1206 +</div>
  1.1207 +</div>
  1.1208 +<a id="a5879d1722330355914d8c9146fa549d3"></a>
  1.1209 +<h2 class="memtitle"><span class="permalink"><a href="#a5879d1722330355914d8c9146fa549d3">&#9670;&nbsp;</a></span>ucx_cmp_uint32()</h2>
  1.1210 +
  1.1211 +<div class="memitem">
  1.1212 +<div class="memproto">
  1.1213 +      <table class="memname">
  1.1214 +        <tr>
  1.1215 +          <td class="memname">int ucx_cmp_uint32 </td>
  1.1216 +          <td>(</td>
  1.1217 +          <td class="paramtype">const void *&#160;</td>
  1.1218 +          <td class="paramname"><em>i1</em>, </td>
  1.1219 +        </tr>
  1.1220 +        <tr>
  1.1221 +          <td class="paramkey"></td>
  1.1222 +          <td></td>
  1.1223 +          <td class="paramtype">const void *&#160;</td>
  1.1224 +          <td class="paramname"><em>i2</em>, </td>
  1.1225 +        </tr>
  1.1226 +        <tr>
  1.1227 +          <td class="paramkey"></td>
  1.1228 +          <td></td>
  1.1229 +          <td class="paramtype">void *&#160;</td>
  1.1230 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1231 +        </tr>
  1.1232 +        <tr>
  1.1233 +          <td></td>
  1.1234 +          <td>)</td>
  1.1235 +          <td></td><td></td>
  1.1236 +        </tr>
  1.1237 +      </table>
  1.1238 +</div><div class="memdoc">
  1.1239 +
  1.1240 +<p>Compares two integers of type uint32_t. </p>
  1.1241 +<dl class="params"><dt>Parameters</dt><dd>
  1.1242 +  <table class="params">
  1.1243 +    <tr><td class="paramname">i1</td><td>pointer to uint32_t one </td></tr>
  1.1244 +    <tr><td class="paramname">i2</td><td>pointer to uint32_t two </td></tr>
  1.1245 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1246 +  </table>
  1.1247 +  </dd>
  1.1248 +</dl>
  1.1249 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
  1.1250 +
  1.1251 +</div>
  1.1252 +</div>
  1.1253 +<a id="a1572a78b5b42f7151a5b2a5a7283d62d"></a>
  1.1254 +<h2 class="memtitle"><span class="permalink"><a href="#a1572a78b5b42f7151a5b2a5a7283d62d">&#9670;&nbsp;</a></span>ucx_cmp_uint64()</h2>
  1.1255 +
  1.1256 +<div class="memitem">
  1.1257 +<div class="memproto">
  1.1258 +      <table class="memname">
  1.1259 +        <tr>
  1.1260 +          <td class="memname">int ucx_cmp_uint64 </td>
  1.1261 +          <td>(</td>
  1.1262 +          <td class="paramtype">const void *&#160;</td>
  1.1263 +          <td class="paramname"><em>i1</em>, </td>
  1.1264 +        </tr>
  1.1265 +        <tr>
  1.1266 +          <td class="paramkey"></td>
  1.1267 +          <td></td>
  1.1268 +          <td class="paramtype">const void *&#160;</td>
  1.1269 +          <td class="paramname"><em>i2</em>, </td>
  1.1270 +        </tr>
  1.1271 +        <tr>
  1.1272 +          <td class="paramkey"></td>
  1.1273 +          <td></td>
  1.1274 +          <td class="paramtype">void *&#160;</td>
  1.1275 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1276 +        </tr>
  1.1277 +        <tr>
  1.1278 +          <td></td>
  1.1279 +          <td>)</td>
  1.1280 +          <td></td><td></td>
  1.1281 +        </tr>
  1.1282 +      </table>
  1.1283 +</div><div class="memdoc">
  1.1284 +
  1.1285 +<p>Compares two integers of type uint64_t. </p>
  1.1286 +<dl class="params"><dt>Parameters</dt><dd>
  1.1287 +  <table class="params">
  1.1288 +    <tr><td class="paramname">i1</td><td>pointer to uint64_t one </td></tr>
  1.1289 +    <tr><td class="paramname">i2</td><td>pointer to uint64_t two </td></tr>
  1.1290 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1291 +  </table>
  1.1292 +  </dd>
  1.1293 +</dl>
  1.1294 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
  1.1295 +
  1.1296 +</div>
  1.1297 +</div>
  1.1298 +<a id="a3f3cbae2594d6f722bae29acb0408a24"></a>
  1.1299 +<h2 class="memtitle"><span class="permalink"><a href="#a3f3cbae2594d6f722bae29acb0408a24">&#9670;&nbsp;</a></span>ucx_cmp_ulongint()</h2>
  1.1300 +
  1.1301 +<div class="memitem">
  1.1302 +<div class="memproto">
  1.1303 +      <table class="memname">
  1.1304 +        <tr>
  1.1305 +          <td class="memname">int ucx_cmp_ulongint </td>
  1.1306 +          <td>(</td>
  1.1307 +          <td class="paramtype">const void *&#160;</td>
  1.1308 +          <td class="paramname"><em>i1</em>, </td>
  1.1309 +        </tr>
  1.1310 +        <tr>
  1.1311 +          <td class="paramkey"></td>
  1.1312 +          <td></td>
  1.1313 +          <td class="paramtype">const void *&#160;</td>
  1.1314 +          <td class="paramname"><em>i2</em>, </td>
  1.1315 +        </tr>
  1.1316 +        <tr>
  1.1317 +          <td class="paramkey"></td>
  1.1318 +          <td></td>
  1.1319 +          <td class="paramtype">void *&#160;</td>
  1.1320 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1321 +        </tr>
  1.1322 +        <tr>
  1.1323 +          <td></td>
  1.1324 +          <td>)</td>
  1.1325 +          <td></td><td></td>
  1.1326 +        </tr>
  1.1327 +      </table>
  1.1328 +</div><div class="memdoc">
  1.1329 +
  1.1330 +<p>Compares two integers of type unsigned long int. </p>
  1.1331 +<dl class="params"><dt>Parameters</dt><dd>
  1.1332 +  <table class="params">
  1.1333 +    <tr><td class="paramname">i1</td><td>pointer to unsigned long integer one </td></tr>
  1.1334 +    <tr><td class="paramname">i2</td><td>pointer to unsigned long integer two </td></tr>
  1.1335 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1336 +  </table>
  1.1337 +  </dd>
  1.1338 +</dl>
  1.1339 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
  1.1340 +
  1.1341 +</div>
  1.1342 +</div>
  1.1343 +<a id="a6acfc359421f21f9a042a654ff7faac5"></a>
  1.1344 +<h2 class="memtitle"><span class="permalink"><a href="#a6acfc359421f21f9a042a654ff7faac5">&#9670;&nbsp;</a></span>ucx_cmp_ulonglong()</h2>
  1.1345 +
  1.1346 +<div class="memitem">
  1.1347 +<div class="memproto">
  1.1348 +      <table class="memname">
  1.1349 +        <tr>
  1.1350 +          <td class="memname">int ucx_cmp_ulonglong </td>
  1.1351 +          <td>(</td>
  1.1352 +          <td class="paramtype">const void *&#160;</td>
  1.1353 +          <td class="paramname"><em>i1</em>, </td>
  1.1354 +        </tr>
  1.1355 +        <tr>
  1.1356 +          <td class="paramkey"></td>
  1.1357 +          <td></td>
  1.1358 +          <td class="paramtype">const void *&#160;</td>
  1.1359 +          <td class="paramname"><em>i2</em>, </td>
  1.1360 +        </tr>
  1.1361 +        <tr>
  1.1362 +          <td class="paramkey"></td>
  1.1363 +          <td></td>
  1.1364 +          <td class="paramtype">void *&#160;</td>
  1.1365 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1366 +        </tr>
  1.1367 +        <tr>
  1.1368 +          <td></td>
  1.1369 +          <td>)</td>
  1.1370 +          <td></td><td></td>
  1.1371 +        </tr>
  1.1372 +      </table>
  1.1373 +</div><div class="memdoc">
  1.1374 +
  1.1375 +<p>Compares two integers of type unsigned long long. </p>
  1.1376 +<dl class="params"><dt>Parameters</dt><dd>
  1.1377 +  <table class="params">
  1.1378 +    <tr><td class="paramname">i1</td><td>pointer to unsigned long long one </td></tr>
  1.1379 +    <tr><td class="paramname">i2</td><td>pointer to unsigned long long two </td></tr>
  1.1380 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1381 +  </table>
  1.1382 +  </dd>
  1.1383 +</dl>
  1.1384 +<dl class="section return"><dt>Returns</dt><dd>-1, if *i1 is less than *i2, 0 if both are equal, 1 if *i1 is greater than *i2 </dd></dl>
  1.1385 +
  1.1386 +</div>
  1.1387 +</div>
  1.1388 +<a id="a4ab6753739d56c09cdf6079fdcabf7c6"></a>
  1.1389 +<h2 class="memtitle"><span class="permalink"><a href="#a4ab6753739d56c09cdf6079fdcabf7c6">&#9670;&nbsp;</a></span>ucx_dist_int()</h2>
  1.1390 +
  1.1391 +<div class="memitem">
  1.1392 +<div class="memproto">
  1.1393 +      <table class="memname">
  1.1394 +        <tr>
  1.1395 +          <td class="memname">intmax_t ucx_dist_int </td>
  1.1396 +          <td>(</td>
  1.1397 +          <td class="paramtype">const void *&#160;</td>
  1.1398 +          <td class="paramname"><em>i1</em>, </td>
  1.1399 +        </tr>
  1.1400 +        <tr>
  1.1401 +          <td class="paramkey"></td>
  1.1402 +          <td></td>
  1.1403 +          <td class="paramtype">const void *&#160;</td>
  1.1404 +          <td class="paramname"><em>i2</em>, </td>
  1.1405 +        </tr>
  1.1406 +        <tr>
  1.1407 +          <td class="paramkey"></td>
  1.1408 +          <td></td>
  1.1409 +          <td class="paramtype">void *&#160;</td>
  1.1410 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1411 +        </tr>
  1.1412 +        <tr>
  1.1413 +          <td></td>
  1.1414 +          <td>)</td>
  1.1415 +          <td></td><td></td>
  1.1416 +        </tr>
  1.1417 +      </table>
  1.1418 +</div><div class="memdoc">
  1.1419 +
  1.1420 +<p>Distance function for integers of type int. </p>
  1.1421 +<dl class="params"><dt>Parameters</dt><dd>
  1.1422 +  <table class="params">
  1.1423 +    <tr><td class="paramname">i1</td><td>pointer to integer one </td></tr>
  1.1424 +    <tr><td class="paramname">i2</td><td>pointer to integer two </td></tr>
  1.1425 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1426 +  </table>
  1.1427 +  </dd>
  1.1428 +</dl>
  1.1429 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1430 +
  1.1431 +</div>
  1.1432 +</div>
  1.1433 +<a id="a81fb8434b70ca11bf2c14abfa21d16a9"></a>
  1.1434 +<h2 class="memtitle"><span class="permalink"><a href="#a81fb8434b70ca11bf2c14abfa21d16a9">&#9670;&nbsp;</a></span>ucx_dist_int16()</h2>
  1.1435 +
  1.1436 +<div class="memitem">
  1.1437 +<div class="memproto">
  1.1438 +      <table class="memname">
  1.1439 +        <tr>
  1.1440 +          <td class="memname">intmax_t ucx_dist_int16 </td>
  1.1441 +          <td>(</td>
  1.1442 +          <td class="paramtype">const void *&#160;</td>
  1.1443 +          <td class="paramname"><em>i1</em>, </td>
  1.1444 +        </tr>
  1.1445 +        <tr>
  1.1446 +          <td class="paramkey"></td>
  1.1447 +          <td></td>
  1.1448 +          <td class="paramtype">const void *&#160;</td>
  1.1449 +          <td class="paramname"><em>i2</em>, </td>
  1.1450 +        </tr>
  1.1451 +        <tr>
  1.1452 +          <td class="paramkey"></td>
  1.1453 +          <td></td>
  1.1454 +          <td class="paramtype">void *&#160;</td>
  1.1455 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1456 +        </tr>
  1.1457 +        <tr>
  1.1458 +          <td></td>
  1.1459 +          <td>)</td>
  1.1460 +          <td></td><td></td>
  1.1461 +        </tr>
  1.1462 +      </table>
  1.1463 +</div><div class="memdoc">
  1.1464 +
  1.1465 +<p>Distance function for integers of type int16_t. </p>
  1.1466 +<dl class="params"><dt>Parameters</dt><dd>
  1.1467 +  <table class="params">
  1.1468 +    <tr><td class="paramname">i1</td><td>pointer to int16_t one </td></tr>
  1.1469 +    <tr><td class="paramname">i2</td><td>pointer to int16_t two </td></tr>
  1.1470 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1471 +  </table>
  1.1472 +  </dd>
  1.1473 +</dl>
  1.1474 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1475 +
  1.1476 +</div>
  1.1477 +</div>
  1.1478 +<a id="ab4a659cc46096f0490c1dafa57726476"></a>
  1.1479 +<h2 class="memtitle"><span class="permalink"><a href="#ab4a659cc46096f0490c1dafa57726476">&#9670;&nbsp;</a></span>ucx_dist_int32()</h2>
  1.1480 +
  1.1481 +<div class="memitem">
  1.1482 +<div class="memproto">
  1.1483 +      <table class="memname">
  1.1484 +        <tr>
  1.1485 +          <td class="memname">intmax_t ucx_dist_int32 </td>
  1.1486 +          <td>(</td>
  1.1487 +          <td class="paramtype">const void *&#160;</td>
  1.1488 +          <td class="paramname"><em>i1</em>, </td>
  1.1489 +        </tr>
  1.1490 +        <tr>
  1.1491 +          <td class="paramkey"></td>
  1.1492 +          <td></td>
  1.1493 +          <td class="paramtype">const void *&#160;</td>
  1.1494 +          <td class="paramname"><em>i2</em>, </td>
  1.1495 +        </tr>
  1.1496 +        <tr>
  1.1497 +          <td class="paramkey"></td>
  1.1498 +          <td></td>
  1.1499 +          <td class="paramtype">void *&#160;</td>
  1.1500 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1501 +        </tr>
  1.1502 +        <tr>
  1.1503 +          <td></td>
  1.1504 +          <td>)</td>
  1.1505 +          <td></td><td></td>
  1.1506 +        </tr>
  1.1507 +      </table>
  1.1508 +</div><div class="memdoc">
  1.1509 +
  1.1510 +<p>Distance function for integers of type int32_t. </p>
  1.1511 +<dl class="params"><dt>Parameters</dt><dd>
  1.1512 +  <table class="params">
  1.1513 +    <tr><td class="paramname">i1</td><td>pointer to int32_t one </td></tr>
  1.1514 +    <tr><td class="paramname">i2</td><td>pointer to int32_t two </td></tr>
  1.1515 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1516 +  </table>
  1.1517 +  </dd>
  1.1518 +</dl>
  1.1519 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1520 +
  1.1521 +</div>
  1.1522 +</div>
  1.1523 +<a id="a54e7d06585bad3a899befc4e9c13853f"></a>
  1.1524 +<h2 class="memtitle"><span class="permalink"><a href="#a54e7d06585bad3a899befc4e9c13853f">&#9670;&nbsp;</a></span>ucx_dist_int64()</h2>
  1.1525 +
  1.1526 +<div class="memitem">
  1.1527 +<div class="memproto">
  1.1528 +      <table class="memname">
  1.1529 +        <tr>
  1.1530 +          <td class="memname">intmax_t ucx_dist_int64 </td>
  1.1531 +          <td>(</td>
  1.1532 +          <td class="paramtype">const void *&#160;</td>
  1.1533 +          <td class="paramname"><em>i1</em>, </td>
  1.1534 +        </tr>
  1.1535 +        <tr>
  1.1536 +          <td class="paramkey"></td>
  1.1537 +          <td></td>
  1.1538 +          <td class="paramtype">const void *&#160;</td>
  1.1539 +          <td class="paramname"><em>i2</em>, </td>
  1.1540 +        </tr>
  1.1541 +        <tr>
  1.1542 +          <td class="paramkey"></td>
  1.1543 +          <td></td>
  1.1544 +          <td class="paramtype">void *&#160;</td>
  1.1545 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1546 +        </tr>
  1.1547 +        <tr>
  1.1548 +          <td></td>
  1.1549 +          <td>)</td>
  1.1550 +          <td></td><td></td>
  1.1551 +        </tr>
  1.1552 +      </table>
  1.1553 +</div><div class="memdoc">
  1.1554 +
  1.1555 +<p>Distance function for integers of type int64_t. </p>
  1.1556 +<dl class="params"><dt>Parameters</dt><dd>
  1.1557 +  <table class="params">
  1.1558 +    <tr><td class="paramname">i1</td><td>pointer to int64_t one </td></tr>
  1.1559 +    <tr><td class="paramname">i2</td><td>pointer to int64_t two </td></tr>
  1.1560 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1561 +  </table>
  1.1562 +  </dd>
  1.1563 +</dl>
  1.1564 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1565 +
  1.1566 +</div>
  1.1567 +</div>
  1.1568 +<a id="a43e73d288b1553a0078bf4c98dd341f5"></a>
  1.1569 +<h2 class="memtitle"><span class="permalink"><a href="#a43e73d288b1553a0078bf4c98dd341f5">&#9670;&nbsp;</a></span>ucx_dist_longint()</h2>
  1.1570 +
  1.1571 +<div class="memitem">
  1.1572 +<div class="memproto">
  1.1573 +      <table class="memname">
  1.1574 +        <tr>
  1.1575 +          <td class="memname">intmax_t ucx_dist_longint </td>
  1.1576 +          <td>(</td>
  1.1577 +          <td class="paramtype">const void *&#160;</td>
  1.1578 +          <td class="paramname"><em>i1</em>, </td>
  1.1579 +        </tr>
  1.1580 +        <tr>
  1.1581 +          <td class="paramkey"></td>
  1.1582 +          <td></td>
  1.1583 +          <td class="paramtype">const void *&#160;</td>
  1.1584 +          <td class="paramname"><em>i2</em>, </td>
  1.1585 +        </tr>
  1.1586 +        <tr>
  1.1587 +          <td class="paramkey"></td>
  1.1588 +          <td></td>
  1.1589 +          <td class="paramtype">void *&#160;</td>
  1.1590 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1591 +        </tr>
  1.1592 +        <tr>
  1.1593 +          <td></td>
  1.1594 +          <td>)</td>
  1.1595 +          <td></td><td></td>
  1.1596 +        </tr>
  1.1597 +      </table>
  1.1598 +</div><div class="memdoc">
  1.1599 +
  1.1600 +<p>Distance function for integers of type long int. </p>
  1.1601 +<dl class="params"><dt>Parameters</dt><dd>
  1.1602 +  <table class="params">
  1.1603 +    <tr><td class="paramname">i1</td><td>pointer to long integer one </td></tr>
  1.1604 +    <tr><td class="paramname">i2</td><td>pointer to long integer two </td></tr>
  1.1605 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1606 +  </table>
  1.1607 +  </dd>
  1.1608 +</dl>
  1.1609 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1610 +
  1.1611 +</div>
  1.1612 +</div>
  1.1613 +<a id="a306778414a2427951ea263be92368627"></a>
  1.1614 +<h2 class="memtitle"><span class="permalink"><a href="#a306778414a2427951ea263be92368627">&#9670;&nbsp;</a></span>ucx_dist_longlong()</h2>
  1.1615 +
  1.1616 +<div class="memitem">
  1.1617 +<div class="memproto">
  1.1618 +      <table class="memname">
  1.1619 +        <tr>
  1.1620 +          <td class="memname">intmax_t ucx_dist_longlong </td>
  1.1621 +          <td>(</td>
  1.1622 +          <td class="paramtype">const void *&#160;</td>
  1.1623 +          <td class="paramname"><em>i1</em>, </td>
  1.1624 +        </tr>
  1.1625 +        <tr>
  1.1626 +          <td class="paramkey"></td>
  1.1627 +          <td></td>
  1.1628 +          <td class="paramtype">const void *&#160;</td>
  1.1629 +          <td class="paramname"><em>i2</em>, </td>
  1.1630 +        </tr>
  1.1631 +        <tr>
  1.1632 +          <td class="paramkey"></td>
  1.1633 +          <td></td>
  1.1634 +          <td class="paramtype">void *&#160;</td>
  1.1635 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1636 +        </tr>
  1.1637 +        <tr>
  1.1638 +          <td></td>
  1.1639 +          <td>)</td>
  1.1640 +          <td></td><td></td>
  1.1641 +        </tr>
  1.1642 +      </table>
  1.1643 +</div><div class="memdoc">
  1.1644 +
  1.1645 +<p>Distance function for integers of type long long. </p>
  1.1646 +<dl class="params"><dt>Parameters</dt><dd>
  1.1647 +  <table class="params">
  1.1648 +    <tr><td class="paramname">i1</td><td>pointer to long long one </td></tr>
  1.1649 +    <tr><td class="paramname">i2</td><td>pointer to long long two </td></tr>
  1.1650 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1651 +  </table>
  1.1652 +  </dd>
  1.1653 +</dl>
  1.1654 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1655 +
  1.1656 +</div>
  1.1657 +</div>
  1.1658 +<a id="a37b7d471ca1679992afc11a0deda45f4"></a>
  1.1659 +<h2 class="memtitle"><span class="permalink"><a href="#a37b7d471ca1679992afc11a0deda45f4">&#9670;&nbsp;</a></span>ucx_dist_uint()</h2>
  1.1660 +
  1.1661 +<div class="memitem">
  1.1662 +<div class="memproto">
  1.1663 +      <table class="memname">
  1.1664 +        <tr>
  1.1665 +          <td class="memname">intmax_t ucx_dist_uint </td>
  1.1666 +          <td>(</td>
  1.1667 +          <td class="paramtype">const void *&#160;</td>
  1.1668 +          <td class="paramname"><em>i1</em>, </td>
  1.1669 +        </tr>
  1.1670 +        <tr>
  1.1671 +          <td class="paramkey"></td>
  1.1672 +          <td></td>
  1.1673 +          <td class="paramtype">const void *&#160;</td>
  1.1674 +          <td class="paramname"><em>i2</em>, </td>
  1.1675 +        </tr>
  1.1676 +        <tr>
  1.1677 +          <td class="paramkey"></td>
  1.1678 +          <td></td>
  1.1679 +          <td class="paramtype">void *&#160;</td>
  1.1680 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1681 +        </tr>
  1.1682 +        <tr>
  1.1683 +          <td></td>
  1.1684 +          <td>)</td>
  1.1685 +          <td></td><td></td>
  1.1686 +        </tr>
  1.1687 +      </table>
  1.1688 +</div><div class="memdoc">
  1.1689 +
  1.1690 +<p>Distance function for integers of type unsigned int. </p>
  1.1691 +<dl class="params"><dt>Parameters</dt><dd>
  1.1692 +  <table class="params">
  1.1693 +    <tr><td class="paramname">i1</td><td>pointer to unsigned integer one </td></tr>
  1.1694 +    <tr><td class="paramname">i2</td><td>pointer to unsigned integer two </td></tr>
  1.1695 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1696 +  </table>
  1.1697 +  </dd>
  1.1698 +</dl>
  1.1699 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1700 +
  1.1701 +</div>
  1.1702 +</div>
  1.1703 +<a id="a66e00a0703cbcde050ec922578e2f080"></a>
  1.1704 +<h2 class="memtitle"><span class="permalink"><a href="#a66e00a0703cbcde050ec922578e2f080">&#9670;&nbsp;</a></span>ucx_dist_uint16()</h2>
  1.1705 +
  1.1706 +<div class="memitem">
  1.1707 +<div class="memproto">
  1.1708 +      <table class="memname">
  1.1709 +        <tr>
  1.1710 +          <td class="memname">intmax_t ucx_dist_uint16 </td>
  1.1711 +          <td>(</td>
  1.1712 +          <td class="paramtype">const void *&#160;</td>
  1.1713 +          <td class="paramname"><em>i1</em>, </td>
  1.1714 +        </tr>
  1.1715 +        <tr>
  1.1716 +          <td class="paramkey"></td>
  1.1717 +          <td></td>
  1.1718 +          <td class="paramtype">const void *&#160;</td>
  1.1719 +          <td class="paramname"><em>i2</em>, </td>
  1.1720 +        </tr>
  1.1721 +        <tr>
  1.1722 +          <td class="paramkey"></td>
  1.1723 +          <td></td>
  1.1724 +          <td class="paramtype">void *&#160;</td>
  1.1725 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1726 +        </tr>
  1.1727 +        <tr>
  1.1728 +          <td></td>
  1.1729 +          <td>)</td>
  1.1730 +          <td></td><td></td>
  1.1731 +        </tr>
  1.1732 +      </table>
  1.1733 +</div><div class="memdoc">
  1.1734 +
  1.1735 +<p>Distance function for integers of type uint16_t. </p>
  1.1736 +<dl class="params"><dt>Parameters</dt><dd>
  1.1737 +  <table class="params">
  1.1738 +    <tr><td class="paramname">i1</td><td>pointer to uint16_t one </td></tr>
  1.1739 +    <tr><td class="paramname">i2</td><td>pointer to uint16_t two </td></tr>
  1.1740 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1741 +  </table>
  1.1742 +  </dd>
  1.1743 +</dl>
  1.1744 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1745 +
  1.1746 +</div>
  1.1747 +</div>
  1.1748 +<a id="add2b5c5507caba59d894b84e056b079b"></a>
  1.1749 +<h2 class="memtitle"><span class="permalink"><a href="#add2b5c5507caba59d894b84e056b079b">&#9670;&nbsp;</a></span>ucx_dist_uint32()</h2>
  1.1750 +
  1.1751 +<div class="memitem">
  1.1752 +<div class="memproto">
  1.1753 +      <table class="memname">
  1.1754 +        <tr>
  1.1755 +          <td class="memname">intmax_t ucx_dist_uint32 </td>
  1.1756 +          <td>(</td>
  1.1757 +          <td class="paramtype">const void *&#160;</td>
  1.1758 +          <td class="paramname"><em>i1</em>, </td>
  1.1759 +        </tr>
  1.1760 +        <tr>
  1.1761 +          <td class="paramkey"></td>
  1.1762 +          <td></td>
  1.1763 +          <td class="paramtype">const void *&#160;</td>
  1.1764 +          <td class="paramname"><em>i2</em>, </td>
  1.1765 +        </tr>
  1.1766 +        <tr>
  1.1767 +          <td class="paramkey"></td>
  1.1768 +          <td></td>
  1.1769 +          <td class="paramtype">void *&#160;</td>
  1.1770 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1771 +        </tr>
  1.1772 +        <tr>
  1.1773 +          <td></td>
  1.1774 +          <td>)</td>
  1.1775 +          <td></td><td></td>
  1.1776 +        </tr>
  1.1777 +      </table>
  1.1778 +</div><div class="memdoc">
  1.1779 +
  1.1780 +<p>Distance function for integers of type uint32_t. </p>
  1.1781 +<dl class="params"><dt>Parameters</dt><dd>
  1.1782 +  <table class="params">
  1.1783 +    <tr><td class="paramname">i1</td><td>pointer to uint32_t one </td></tr>
  1.1784 +    <tr><td class="paramname">i2</td><td>pointer to uint32_t two </td></tr>
  1.1785 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1786 +  </table>
  1.1787 +  </dd>
  1.1788 +</dl>
  1.1789 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1790 +
  1.1791 +</div>
  1.1792 +</div>
  1.1793 +<a id="a3ba75e2e0b2479eef2b22fb219b42da7"></a>
  1.1794 +<h2 class="memtitle"><span class="permalink"><a href="#a3ba75e2e0b2479eef2b22fb219b42da7">&#9670;&nbsp;</a></span>ucx_dist_uint64()</h2>
  1.1795 +
  1.1796 +<div class="memitem">
  1.1797 +<div class="memproto">
  1.1798 +      <table class="memname">
  1.1799 +        <tr>
  1.1800 +          <td class="memname">intmax_t ucx_dist_uint64 </td>
  1.1801 +          <td>(</td>
  1.1802 +          <td class="paramtype">const void *&#160;</td>
  1.1803 +          <td class="paramname"><em>i1</em>, </td>
  1.1804 +        </tr>
  1.1805 +        <tr>
  1.1806 +          <td class="paramkey"></td>
  1.1807 +          <td></td>
  1.1808 +          <td class="paramtype">const void *&#160;</td>
  1.1809 +          <td class="paramname"><em>i2</em>, </td>
  1.1810 +        </tr>
  1.1811 +        <tr>
  1.1812 +          <td class="paramkey"></td>
  1.1813 +          <td></td>
  1.1814 +          <td class="paramtype">void *&#160;</td>
  1.1815 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1816 +        </tr>
  1.1817 +        <tr>
  1.1818 +          <td></td>
  1.1819 +          <td>)</td>
  1.1820 +          <td></td><td></td>
  1.1821 +        </tr>
  1.1822 +      </table>
  1.1823 +</div><div class="memdoc">
  1.1824 +
  1.1825 +<p>Distance function for integers of type uint64_t. </p>
  1.1826 +<dl class="params"><dt>Parameters</dt><dd>
  1.1827 +  <table class="params">
  1.1828 +    <tr><td class="paramname">i1</td><td>pointer to uint64_t one </td></tr>
  1.1829 +    <tr><td class="paramname">i2</td><td>pointer to uint64_t two </td></tr>
  1.1830 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1831 +  </table>
  1.1832 +  </dd>
  1.1833 +</dl>
  1.1834 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1835 +
  1.1836 +</div>
  1.1837 +</div>
  1.1838 +<a id="abb13476228d0c16bfaba08469adbae2d"></a>
  1.1839 +<h2 class="memtitle"><span class="permalink"><a href="#abb13476228d0c16bfaba08469adbae2d">&#9670;&nbsp;</a></span>ucx_dist_ulongint()</h2>
  1.1840 +
  1.1841 +<div class="memitem">
  1.1842 +<div class="memproto">
  1.1843 +      <table class="memname">
  1.1844 +        <tr>
  1.1845 +          <td class="memname">intmax_t ucx_dist_ulongint </td>
  1.1846 +          <td>(</td>
  1.1847 +          <td class="paramtype">const void *&#160;</td>
  1.1848 +          <td class="paramname"><em>i1</em>, </td>
  1.1849 +        </tr>
  1.1850 +        <tr>
  1.1851 +          <td class="paramkey"></td>
  1.1852 +          <td></td>
  1.1853 +          <td class="paramtype">const void *&#160;</td>
  1.1854 +          <td class="paramname"><em>i2</em>, </td>
  1.1855 +        </tr>
  1.1856 +        <tr>
  1.1857 +          <td class="paramkey"></td>
  1.1858 +          <td></td>
  1.1859 +          <td class="paramtype">void *&#160;</td>
  1.1860 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1861 +        </tr>
  1.1862 +        <tr>
  1.1863 +          <td></td>
  1.1864 +          <td>)</td>
  1.1865 +          <td></td><td></td>
  1.1866 +        </tr>
  1.1867 +      </table>
  1.1868 +</div><div class="memdoc">
  1.1869 +
  1.1870 +<p>Distance function for integers of type unsigned long int. </p>
  1.1871 +<dl class="params"><dt>Parameters</dt><dd>
  1.1872 +  <table class="params">
  1.1873 +    <tr><td class="paramname">i1</td><td>pointer to unsigned long integer one </td></tr>
  1.1874 +    <tr><td class="paramname">i2</td><td>pointer to unsigned long integer two </td></tr>
  1.1875 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1876 +  </table>
  1.1877 +  </dd>
  1.1878 +</dl>
  1.1879 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1880 +
  1.1881 +</div>
  1.1882 +</div>
  1.1883 +<a id="a59a5859272cb4b43cbdd58208c41e32b"></a>
  1.1884 +<h2 class="memtitle"><span class="permalink"><a href="#a59a5859272cb4b43cbdd58208c41e32b">&#9670;&nbsp;</a></span>ucx_dist_ulonglong()</h2>
  1.1885 +
  1.1886 +<div class="memitem">
  1.1887 +<div class="memproto">
  1.1888 +      <table class="memname">
  1.1889 +        <tr>
  1.1890 +          <td class="memname">intmax_t ucx_dist_ulonglong </td>
  1.1891 +          <td>(</td>
  1.1892 +          <td class="paramtype">const void *&#160;</td>
  1.1893 +          <td class="paramname"><em>i1</em>, </td>
  1.1894 +        </tr>
  1.1895 +        <tr>
  1.1896 +          <td class="paramkey"></td>
  1.1897 +          <td></td>
  1.1898 +          <td class="paramtype">const void *&#160;</td>
  1.1899 +          <td class="paramname"><em>i2</em>, </td>
  1.1900 +        </tr>
  1.1901 +        <tr>
  1.1902 +          <td class="paramkey"></td>
  1.1903 +          <td></td>
  1.1904 +          <td class="paramtype">void *&#160;</td>
  1.1905 +          <td class="paramname"><em>data</em>&#160;</td>
  1.1906 +        </tr>
  1.1907 +        <tr>
  1.1908 +          <td></td>
  1.1909 +          <td>)</td>
  1.1910 +          <td></td><td></td>
  1.1911 +        </tr>
  1.1912 +      </table>
  1.1913 +</div><div class="memdoc">
  1.1914 +
  1.1915 +<p>Distance function for integers of type unsigned long long. </p>
  1.1916 +<dl class="params"><dt>Parameters</dt><dd>
  1.1917 +  <table class="params">
  1.1918 +    <tr><td class="paramname">i1</td><td>pointer to unsigned long long one </td></tr>
  1.1919 +    <tr><td class="paramname">i2</td><td>pointer to unsigned long long two </td></tr>
  1.1920 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.1921 +  </table>
  1.1922 +  </dd>
  1.1923 +</dl>
  1.1924 +<dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1.1925 +
  1.1926 +</div>
  1.1927 +</div>
  1.1928 +<a id="aa0bec80e1c67f769ff5e112a7d4ce72a"></a>
  1.1929 +<h2 class="memtitle"><span class="permalink"><a href="#aa0bec80e1c67f769ff5e112a7d4ce72a">&#9670;&nbsp;</a></span>ucx_fprintf()</h2>
  1.1930 +
  1.1931 +<div class="memitem">
  1.1932 +<div class="memproto">
  1.1933 +      <table class="memname">
  1.1934 +        <tr>
  1.1935 +          <td class="memname">int ucx_fprintf </td>
  1.1936 +          <td>(</td>
  1.1937 +          <td class="paramtype">void *&#160;</td>
  1.1938 +          <td class="paramname"><em>stream</em>, </td>
  1.1939 +        </tr>
  1.1940 +        <tr>
  1.1941 +          <td class="paramkey"></td>
  1.1942 +          <td></td>
  1.1943 +          <td class="paramtype"><a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>&#160;</td>
  1.1944 +          <td class="paramname"><em>wfc</em>, </td>
  1.1945 +        </tr>
  1.1946 +        <tr>
  1.1947 +          <td class="paramkey"></td>
  1.1948 +          <td></td>
  1.1949 +          <td class="paramtype">const char *&#160;</td>
  1.1950 +          <td class="paramname"><em>fmt</em>, </td>
  1.1951 +        </tr>
  1.1952 +        <tr>
  1.1953 +          <td class="paramkey"></td>
  1.1954 +          <td></td>
  1.1955 +          <td class="paramtype">&#160;</td>
  1.1956 +          <td class="paramname"><em>...</em>&#160;</td>
  1.1957 +        </tr>
  1.1958 +        <tr>
  1.1959 +          <td></td>
  1.1960 +          <td>)</td>
  1.1961 +          <td></td><td></td>
  1.1962 +        </tr>
  1.1963 +      </table>
  1.1964 +</div><div class="memdoc">
  1.1965 +
  1.1966 +<p>A <code>printf()</code> like function which writes the output to a stream by using a <a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed" title="Function pointer to a write function. ">write_func()</a>. </p>
  1.1967 +<dl class="params"><dt>Parameters</dt><dd>
  1.1968 +  <table class="params">
  1.1969 +    <tr><td class="paramname">stream</td><td>the stream the data is written to </td></tr>
  1.1970 +    <tr><td class="paramname">wfc</td><td>the write function </td></tr>
  1.1971 +    <tr><td class="paramname">fmt</td><td>format string </td></tr>
  1.1972 +    <tr><td class="paramname">...</td><td>additional arguments </td></tr>
  1.1973 +  </table>
  1.1974 +  </dd>
  1.1975 +</dl>
  1.1976 +<dl class="section return"><dt>Returns</dt><dd>the total number of bytes written </dd></dl>
  1.1977 +
  1.1978 +</div>
  1.1979 +</div>
  1.1980 +<a id="ab2e184e6a744941aab6b8058116baf30"></a>
  1.1981 +<h2 class="memtitle"><span class="permalink"><a href="#ab2e184e6a744941aab6b8058116baf30">&#9670;&nbsp;</a></span>ucx_memcpy()</h2>
  1.1982 +
  1.1983 +<div class="memitem">
  1.1984 +<div class="memproto">
  1.1985 +      <table class="memname">
  1.1986 +        <tr>
  1.1987 +          <td class="memname">void* ucx_memcpy </td>
  1.1988 +          <td>(</td>
  1.1989 +          <td class="paramtype">const void *&#160;</td>
  1.1990 +          <td class="paramname"><em>m</em>, </td>
  1.1991 +        </tr>
  1.1992 +        <tr>
  1.1993 +          <td class="paramkey"></td>
  1.1994 +          <td></td>
  1.1995 +          <td class="paramtype">void *&#160;</td>
  1.1996 +          <td class="paramname"><em>n</em>&#160;</td>
  1.1997 +        </tr>
  1.1998 +        <tr>
  1.1999 +          <td></td>
  1.2000 +          <td>)</td>
  1.2001 +          <td></td><td></td>
  1.2002 +        </tr>
  1.2003 +      </table>
  1.2004 +</div><div class="memdoc">
  1.2005 +
  1.2006 +<p>Copies a memory area. </p>
  1.2007 +<dl class="params"><dt>Parameters</dt><dd>
  1.2008 +  <table class="params">
  1.2009 +    <tr><td class="paramname">m</td><td>a pointer to the memory area </td></tr>
  1.2010 +    <tr><td class="paramname">n</td><td>a pointer to the size_t containing the size of the memory area </td></tr>
  1.2011 +  </table>
  1.2012 +  </dd>
  1.2013 +</dl>
  1.2014 +<dl class="section return"><dt>Returns</dt><dd>a pointer to a copy of the specified memory area that can be passed to free(void*) </dd></dl>
  1.2015 +
  1.2016 +</div>
  1.2017 +</div>
  1.2018 +<a id="adeb6e8d0a53a829207cfa0a979d01fff"></a>
  1.2019 +<h2 class="memtitle"><span class="permalink"><a href="#adeb6e8d0a53a829207cfa0a979d01fff">&#9670;&nbsp;</a></span>ucx_strcpy()</h2>
  1.2020 +
  1.2021 +<div class="memitem">
  1.2022 +<div class="memproto">
  1.2023 +      <table class="memname">
  1.2024 +        <tr>
  1.2025 +          <td class="memname">void* ucx_strcpy </td>
  1.2026 +          <td>(</td>
  1.2027 +          <td class="paramtype">const void *&#160;</td>
  1.2028 +          <td class="paramname"><em>s</em>, </td>
  1.2029 +        </tr>
  1.2030 +        <tr>
  1.2031 +          <td class="paramkey"></td>
  1.2032 +          <td></td>
  1.2033 +          <td class="paramtype">void *&#160;</td>
  1.2034 +          <td class="paramname"><em>data</em>&#160;</td>
  1.2035 +        </tr>
  1.2036 +        <tr>
  1.2037 +          <td></td>
  1.2038 +          <td>)</td>
  1.2039 +          <td></td><td></td>
  1.2040 +        </tr>
  1.2041 +      </table>
  1.2042 +</div><div class="memdoc">
  1.2043 +
  1.2044 +<p>Copies a string. </p>
  1.2045 +<dl class="params"><dt>Parameters</dt><dd>
  1.2046 +  <table class="params">
  1.2047 +    <tr><td class="paramname">s</td><td>the string to copy </td></tr>
  1.2048 +    <tr><td class="paramname">data</td><td>omitted </td></tr>
  1.2049 +  </table>
  1.2050 +  </dd>
  1.2051 +</dl>
  1.2052 +<dl class="section return"><dt>Returns</dt><dd>a pointer to a copy of s1 that can be passed to free(void*) </dd></dl>
  1.2053 +
  1.2054 +</div>
  1.2055 +</div>
  1.2056 +<a id="a114ee7f7da62656ffd35e2dc23394201"></a>
  1.2057 +<h2 class="memtitle"><span class="permalink"><a href="#a114ee7f7da62656ffd35e2dc23394201">&#9670;&nbsp;</a></span>ucx_stream_bncopy()</h2>
  1.2058 +
  1.2059 +<div class="memitem">
  1.2060 +<div class="memproto">
  1.2061 +      <table class="memname">
  1.2062 +        <tr>
  1.2063 +          <td class="memname">size_t ucx_stream_bncopy </td>
  1.2064 +          <td>(</td>
  1.2065 +          <td class="paramtype">void *&#160;</td>
  1.2066 +          <td class="paramname"><em>src</em>, </td>
  1.2067 +        </tr>
  1.2068 +        <tr>
  1.2069 +          <td class="paramkey"></td>
  1.2070 +          <td></td>
  1.2071 +          <td class="paramtype">void *&#160;</td>
  1.2072 +          <td class="paramname"><em>dest</em>, </td>
  1.2073 +        </tr>
  1.2074 +        <tr>
  1.2075 +          <td class="paramkey"></td>
  1.2076 +          <td></td>
  1.2077 +          <td class="paramtype"><a class="el" href="ucx_8h.html#a6a67e255e460acb58f802067b3ff5fd5">read_func</a>&#160;</td>
  1.2078 +          <td class="paramname"><em>rfnc</em>, </td>
  1.2079 +        </tr>
  1.2080 +        <tr>
  1.2081 +          <td class="paramkey"></td>
  1.2082 +          <td></td>
  1.2083 +          <td class="paramtype"><a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>&#160;</td>
  1.2084 +          <td class="paramname"><em>wfnc</em>, </td>
  1.2085 +        </tr>
  1.2086 +        <tr>
  1.2087 +          <td class="paramkey"></td>
  1.2088 +          <td></td>
  1.2089 +          <td class="paramtype">char *&#160;</td>
  1.2090 +          <td class="paramname"><em>buf</em>, </td>
  1.2091 +        </tr>
  1.2092 +        <tr>
  1.2093 +          <td class="paramkey"></td>
  1.2094 +          <td></td>
  1.2095 +          <td class="paramtype">size_t&#160;</td>
  1.2096 +          <td class="paramname"><em>bufsize</em>, </td>
  1.2097 +        </tr>
  1.2098 +        <tr>
  1.2099 +          <td class="paramkey"></td>
  1.2100 +          <td></td>
  1.2101 +          <td class="paramtype">size_t&#160;</td>
  1.2102 +          <td class="paramname"><em>n</em>&#160;</td>
  1.2103 +        </tr>
  1.2104 +        <tr>
  1.2105 +          <td></td>
  1.2106 +          <td>)</td>
  1.2107 +          <td></td><td></td>
  1.2108 +        </tr>
  1.2109 +      </table>
  1.2110 +</div><div class="memdoc">
  1.2111 +
  1.2112 +<p>Reads data from a stream and writes it to another stream. </p>
  1.2113 +<dl class="params"><dt>Parameters</dt><dd>
  1.2114 +  <table class="params">
  1.2115 +    <tr><td class="paramname">src</td><td>the source stream </td></tr>
  1.2116 +    <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
  1.2117 +    <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
  1.2118 +    <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
  1.2119 +    <tr><td class="paramname">buf</td><td>a pointer to the copy buffer or <code>NULL</code> if a buffer shall be implicitly created on the heap </td></tr>
  1.2120 +    <tr><td class="paramname">bufsize</td><td>the size of the copy buffer - if <code>NULL</code> was provided for <code>buf</code>, this is the size of the buffer that shall be implicitly created </td></tr>
  1.2121 +    <tr><td class="paramname">n</td><td>the maximum number of bytes that shall be copied </td></tr>
  1.2122 +  </table>
  1.2123 +  </dd>
  1.2124 +</dl>
  1.2125 +<dl class="section return"><dt>Returns</dt><dd>the total number of bytes copied </dd></dl>
  1.2126 +
  1.2127 +</div>
  1.2128 +</div>
  1.2129 +<a id="a3ea1dfb856c741f3e8ec6bfdc9ad427e"></a>
  1.2130 +<h2 class="memtitle"><span class="permalink"><a href="#a3ea1dfb856c741f3e8ec6bfdc9ad427e">&#9670;&nbsp;</a></span>ucx_vasprintf()</h2>
  1.2131 +
  1.2132 +<div class="memitem">
  1.2133 +<div class="memproto">
  1.2134 +      <table class="memname">
  1.2135 +        <tr>
  1.2136 +          <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> ucx_vasprintf </td>
  1.2137 +          <td>(</td>
  1.2138 +          <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
  1.2139 +          <td class="paramname"><em>allocator</em>, </td>
  1.2140 +        </tr>
  1.2141 +        <tr>
  1.2142 +          <td class="paramkey"></td>
  1.2143 +          <td></td>
  1.2144 +          <td class="paramtype">const char *&#160;</td>
  1.2145 +          <td class="paramname"><em>fmt</em>, </td>
  1.2146 +        </tr>
  1.2147 +        <tr>
  1.2148 +          <td class="paramkey"></td>
  1.2149 +          <td></td>
  1.2150 +          <td class="paramtype">va_list&#160;</td>
  1.2151 +          <td class="paramname"><em>ap</em>&#160;</td>
  1.2152 +        </tr>
  1.2153 +        <tr>
  1.2154 +          <td></td>
  1.2155 +          <td>)</td>
  1.2156 +          <td></td><td></td>
  1.2157 +        </tr>
  1.2158 +      </table>
  1.2159 +</div><div class="memdoc">
  1.2160 +
  1.2161 +<p><code>va_list</code> version of <a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5" title="A printf() like function which allocates space for a sstr_t the result is written to...">ucx_asprintf()</a>. </p>
  1.2162 +<dl class="params"><dt>Parameters</dt><dd>
  1.2163 +  <table class="params">
  1.2164 +    <tr><td class="paramname">allocator</td><td>the <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a> used for allocating the result <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> </td></tr>
  1.2165 +    <tr><td class="paramname">fmt</td><td>format string </td></tr>
  1.2166 +    <tr><td class="paramname">ap</td><td>argument list </td></tr>
  1.2167 +  </table>
  1.2168 +  </dd>
  1.2169 +</dl>
  1.2170 +<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> containing the formatted string </dd></dl>
  1.2171 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="utils_8h.html#a9f9cf0e89ffdc256ecb35429907f51f5" title="A printf() like function which allocates space for a sstr_t the result is written to...">ucx_asprintf()</a> </dd></dl>
  1.2172 +
  1.2173 +</div>
  1.2174 +</div>
  1.2175 +<a id="a4907967beb92c3ae351dd239abbb6927"></a>
  1.2176 +<h2 class="memtitle"><span class="permalink"><a href="#a4907967beb92c3ae351dd239abbb6927">&#9670;&nbsp;</a></span>ucx_vfprintf()</h2>
  1.2177 +
  1.2178 +<div class="memitem">
  1.2179 +<div class="memproto">
  1.2180 +      <table class="memname">
  1.2181 +        <tr>
  1.2182 +          <td class="memname">int ucx_vfprintf </td>
  1.2183 +          <td>(</td>
  1.2184 +          <td class="paramtype">void *&#160;</td>
  1.2185 +          <td class="paramname"><em>stream</em>, </td>
  1.2186 +        </tr>
  1.2187 +        <tr>
  1.2188 +          <td class="paramkey"></td>
  1.2189 +          <td></td>
  1.2190 +          <td class="paramtype"><a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>&#160;</td>
  1.2191 +          <td class="paramname"><em>wfc</em>, </td>
  1.2192 +        </tr>
  1.2193 +        <tr>
  1.2194 +          <td class="paramkey"></td>
  1.2195 +          <td></td>
  1.2196 +          <td class="paramtype">const char *&#160;</td>
  1.2197 +          <td class="paramname"><em>fmt</em>, </td>
  1.2198 +        </tr>
  1.2199 +        <tr>
  1.2200 +          <td class="paramkey"></td>
  1.2201 +          <td></td>
  1.2202 +          <td class="paramtype">va_list&#160;</td>
  1.2203 +          <td class="paramname"><em>ap</em>&#160;</td>
  1.2204 +        </tr>
  1.2205 +        <tr>
  1.2206 +          <td></td>
  1.2207 +          <td>)</td>
  1.2208 +          <td></td><td></td>
  1.2209 +        </tr>
  1.2210 +      </table>
  1.2211 +</div><div class="memdoc">
  1.2212 +
  1.2213 +<p><code>va_list</code> version of <a class="el" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a" title="A printf() like function which writes the output to a stream by using a write_func(). ">ucx_fprintf()</a>. </p>
  1.2214 +<dl class="params"><dt>Parameters</dt><dd>
  1.2215 +  <table class="params">
  1.2216 +    <tr><td class="paramname">stream</td><td>the stream the data is written to </td></tr>
  1.2217 +    <tr><td class="paramname">wfc</td><td>the write function </td></tr>
  1.2218 +    <tr><td class="paramname">fmt</td><td>format string </td></tr>
  1.2219 +    <tr><td class="paramname">ap</td><td>argument list </td></tr>
  1.2220 +  </table>
  1.2221 +  </dd>
  1.2222 +</dl>
  1.2223 +<dl class="section return"><dt>Returns</dt><dd>the total number of bytes written </dd></dl>
  1.2224 +<dl class="section see"><dt>See also</dt><dd><a class="el" href="utils_8h.html#aa0bec80e1c67f769ff5e112a7d4ce72a" title="A printf() like function which writes the output to a stream by using a write_func(). ">ucx_fprintf()</a> </dd></dl>
  1.2225 +
  1.2226 +</div>
  1.2227 +</div>
  1.2228 +</div><!-- contents -->
  1.2229 +<!-- start footer part -->
  1.2230 +<hr class="footer"/><address class="footer"><small>
  1.2231 +Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
  1.2232 +<img class="footer" src="doxygen.png" alt="doxygen"/>
  1.2233 +</a> 1.8.13
  1.2234 +</small></address>
  1.2235 +</body>
  1.2236 +</html>

mercurial