docs/api-2.1/utils_8h.html

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

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

starts ucx 3.0 development

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
     5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
     6 <meta name="generator" content="Doxygen 1.8.13"/>
     7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
     8 <title>ucx: /home/mike/workspace/c/ucx/src/ucx/utils.h File Reference</title>
     9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
    10 <script type="text/javascript" src="jquery.js"></script>
    11 <script type="text/javascript" src="dynsections.js"></script>
    12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
    13 <script type="text/javascript" src="search/searchdata.js"></script>
    14 <script type="text/javascript" src="search/search.js"></script>
    15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
    16 </head>
    17 <body>
    18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
    19 <div id="titlearea">
    20 <table cellspacing="0" cellpadding="0">
    21  <tbody>
    22  <tr style="height: 56px;">
    23   <td id="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
    24   <td id="projectalign" style="padding-left: 0.5em;">
    25    <div id="projectname">ucx
    26    </div>
    27    <div id="projectbrief">UAP Common Extensions</div>
    28   </td>
    29  </tr>
    30  </tbody>
    31 </table>
    32 </div>
    33 <!-- end header part -->
    34 <!-- Generated by Doxygen 1.8.13 -->
    35 <script type="text/javascript">
    36 var searchBox = new SearchBox("searchBox", "search",false,'Search');
    37 </script>
    38 <script type="text/javascript" src="menudata.js"></script>
    39 <script type="text/javascript" src="menu.js"></script>
    40 <script type="text/javascript">
    41 $(function() {
    42   initMenu('',true,false,'search.php','Search');
    43   $(document).ready(function() { init_search(); });
    44 });
    45 </script>
    46 <div id="main-nav"></div>
    47 <!-- window showing the filter options -->
    48 <div id="MSearchSelectWindow"
    49      onmouseover="return searchBox.OnSearchSelectShow()"
    50      onmouseout="return searchBox.OnSearchSelectHide()"
    51      onkeydown="return searchBox.OnSearchSelectKey(event)">
    52 </div>
    54 <!-- iframe showing the search results (closed by default) -->
    55 <div id="MSearchResultsWindow">
    56 <iframe src="javascript:void(0)" frameborder="0" 
    57         name="MSearchResults" id="MSearchResults">
    58 </iframe>
    59 </div>
    61 <div id="nav-path" class="navpath">
    62   <ul>
    63 <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_69f4ea29401808fe6229564976cde3ce.html">ucx</a></li>  </ul>
    64 </div>
    65 </div><!-- top -->
    66 <div class="header">
    67   <div class="summary">
    68 <a href="#define-members">Macros</a> &#124;
    69 <a href="#func-members">Functions</a>  </div>
    70   <div class="headertitle">
    71 <div class="title">utils.h File Reference</div>  </div>
    72 </div><!--header-->
    73 <div class="contents">
    75 <p>Compare, copy and printf functions.  
    76 <a href="#details">More...</a></p>
    77 <div class="textblock"><code>#include &quot;<a class="el" href="ucx_8h_source.html">ucx.h</a>&quot;</code><br />
    78 <code>#include &quot;<a class="el" href="string_8h_source.html">string.h</a>&quot;</code><br />
    79 <code>#include &quot;<a class="el" href="allocator_8h_source.html">allocator.h</a>&quot;</code><br />
    80 <code>#include &lt;inttypes.h&gt;</code><br />
    81 <code>#include &lt;stdarg.h&gt;</code><br />
    82 </div>
    83 <p><a href="utils_8h_source.html">Go to the source code of this file.</a></p>
    84 <table class="memberdecls">
    85 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
    86 Macros</h2></td></tr>
    87 <tr class="memitem:a23efd74fa5f701d4cf26ccbfd138a439"><td class="memItemLeft" align="right" valign="top"><a id="a23efd74fa5f701d4cf26ccbfd138a439"></a>
    88 #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>
    89 <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>
    90 <tr class="separator:a23efd74fa5f701d4cf26ccbfd138a439"><td class="memSeparator" colspan="2">&#160;</td></tr>
    91 <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>
    92 <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>
    93 <tr class="separator:a41ca1344f781c0d3bf7a414a6e811392"><td class="memSeparator" colspan="2">&#160;</td></tr>
    94 <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>
    95 <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>
    96 <tr class="separator:add13f39a8af440b4f7e6f74339eaada2"><td class="memSeparator" colspan="2">&#160;</td></tr>
    97 <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>
    98 <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>
    99 <tr class="separator:a6003a1750a66234169bd1f8cc84b297b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   100 <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>
   101 <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>
   102 <tr class="separator:af9f333b66ecd639c347c7235f4992e2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   103 <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>
   104 <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>
   105 <tr class="separator:a9d7d65a420f026fcb6982803d5120519"><td class="memSeparator" colspan="2">&#160;</td></tr>
   106 </table><table class="memberdecls">
   107 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
   108 Functions</h2></td></tr>
   109 <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>
   110 <tr class="memdesc:adeb6e8d0a53a829207cfa0a979d01fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a string.  <a href="#adeb6e8d0a53a829207cfa0a979d01fff">More...</a><br /></td></tr>
   111 <tr class="separator:adeb6e8d0a53a829207cfa0a979d01fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
   112 <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>
   113 <tr class="memdesc:ab2e184e6a744941aab6b8058116baf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a memory area.  <a href="#ab2e184e6a744941aab6b8058116baf30">More...</a><br /></td></tr>
   114 <tr class="separator:ab2e184e6a744941aab6b8058116baf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
   115 <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>
   116 <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>
   117 <tr class="separator:a114ee7f7da62656ffd35e2dc23394201"><td class="memSeparator" colspan="2">&#160;</td></tr>
   118 <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>
   119 <tr class="memdesc:aa6a37b9d172b6a5b2803d152f9e1b258"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps the strcmp function.  <a href="#aa6a37b9d172b6a5b2803d152f9e1b258">More...</a><br /></td></tr>
   120 <tr class="separator:aa6a37b9d172b6a5b2803d152f9e1b258"><td class="memSeparator" colspan="2">&#160;</td></tr>
   121 <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>
   122 <tr class="memdesc:ac6b354a878f551a3a5b20a167db3f308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps the strncmp function.  <a href="#ac6b354a878f551a3a5b20a167db3f308">More...</a><br /></td></tr>
   123 <tr class="separator:ac6b354a878f551a3a5b20a167db3f308"><td class="memSeparator" colspan="2">&#160;</td></tr>
   124 <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>
   125 <tr class="memdesc:adee0739589166d272f8cb7c23aabf8ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wraps the sstrcmp function.  <a href="#adee0739589166d272f8cb7c23aabf8ba">More...</a><br /></td></tr>
   126 <tr class="separator:adee0739589166d272f8cb7c23aabf8ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
   127 <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>
   128 <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>
   129 <tr class="separator:a8ce7e11e6b3deafe89a32a091fde7f16"><td class="memSeparator" colspan="2">&#160;</td></tr>
   130 <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>
   131 <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>
   132 <tr class="separator:aeb57a2b9a6aaa0460c7a6bec29accf2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
   133 <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>
   134 <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>
   135 <tr class="separator:a366b57def20f86a41eaedf575eea5375"><td class="memSeparator" colspan="2">&#160;</td></tr>
   136 <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>
   137 <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>
   138 <tr class="separator:aa29e6e559946375e34113e34e0b0bd0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   139 <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>
   140 <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>
   141 <tr class="separator:a858b2ac443fb202643b71f6a7e9218dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
   142 <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>
   143 <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>
   144 <tr class="separator:a54701aea6a89fed1402dfb0bf56bc7f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   145 <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>
   146 <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>
   147 <tr class="separator:abd83a5da91c3dd026a6931bd80c12f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   148 <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>
   149 <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>
   150 <tr class="separator:a3f3cbae2594d6f722bae29acb0408a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
   151 <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>
   152 <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>
   153 <tr class="separator:a6acfc359421f21f9a042a654ff7faac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   154 <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>
   155 <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>
   156 <tr class="separator:acde5366437e886a459b7468f7a9e11f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
   157 <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>
   158 <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>
   159 <tr class="separator:a5879d1722330355914d8c9146fa549d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
   160 <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>
   161 <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>
   162 <tr class="separator:a1572a78b5b42f7151a5b2a5a7283d62d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   163 <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>
   164 <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>
   165 <tr class="separator:a4ab6753739d56c09cdf6079fdcabf7c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   166 <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>
   167 <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>
   168 <tr class="separator:a43e73d288b1553a0078bf4c98dd341f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   169 <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>
   170 <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>
   171 <tr class="separator:a306778414a2427951ea263be92368627"><td class="memSeparator" colspan="2">&#160;</td></tr>
   172 <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>
   173 <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>
   174 <tr class="separator:a81fb8434b70ca11bf2c14abfa21d16a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
   175 <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>
   176 <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>
   177 <tr class="separator:ab4a659cc46096f0490c1dafa57726476"><td class="memSeparator" colspan="2">&#160;</td></tr>
   178 <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>
   179 <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>
   180 <tr class="separator:a54e7d06585bad3a899befc4e9c13853f"><td class="memSeparator" colspan="2">&#160;</td></tr>
   181 <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>
   182 <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>
   183 <tr class="separator:a37b7d471ca1679992afc11a0deda45f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
   184 <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>
   185 <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>
   186 <tr class="separator:abb13476228d0c16bfaba08469adbae2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
   187 <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>
   188 <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>
   189 <tr class="separator:a59a5859272cb4b43cbdd58208c41e32b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   190 <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>
   191 <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>
   192 <tr class="separator:a66e00a0703cbcde050ec922578e2f080"><td class="memSeparator" colspan="2">&#160;</td></tr>
   193 <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>
   194 <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>
   195 <tr class="separator:add2b5c5507caba59d894b84e056b079b"><td class="memSeparator" colspan="2">&#160;</td></tr>
   196 <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>
   197 <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>
   198 <tr class="separator:a3ba75e2e0b2479eef2b22fb219b42da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
   199 <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>
   200 <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>
   201 <tr class="separator:ad1196b561bcdad76c393885819769a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
   202 <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>
   203 <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>
   204 <tr class="separator:ab804b7c27d0bfcd7bf3a3583140825b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
   205 <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>
   206 <tr class="memdesc:aa174d539de3ea59be4f9640f17ce53d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two pointers.  <a href="#aa174d539de3ea59be4f9640f17ce53d8">More...</a><br /></td></tr>
   207 <tr class="separator:aa174d539de3ea59be4f9640f17ce53d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
   208 <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>
   209 <tr class="memdesc:aff7d2bcded71196831a8c0664333f8e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two memory areas.  <a href="#aff7d2bcded71196831a8c0664333f8e7">More...</a><br /></td></tr>
   210 <tr class="separator:aff7d2bcded71196831a8c0664333f8e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
   211 <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>
   212 <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>
   213 <tr class="separator:aa0bec80e1c67f769ff5e112a7d4ce72a"><td class="memSeparator" colspan="2">&#160;</td></tr>
   214 <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>
   215 <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>
   216 <tr class="separator:a4907967beb92c3ae351dd239abbb6927"><td class="memSeparator" colspan="2">&#160;</td></tr>
   217 <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>
   218 <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>
   219 <tr class="separator:a9f9cf0e89ffdc256ecb35429907f51f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
   220 <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>
   221 <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>
   222 <tr class="separator:a3ea1dfb856c741f3e8ec6bfdc9ad427e"><td class="memSeparator" colspan="2">&#160;</td></tr>
   223 </table>
   224 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
   225 <div class="textblock"><p>Compare, copy and printf functions. </p>
   226 <dl class="section author"><dt>Author</dt><dd>Mike Becker </dd>
   227 <dd>
   228 Olaf Wintermann </dd></dl>
   229 </div><h2 class="groupheader">Macro Definition Documentation</h2>
   230 <a id="a9d7d65a420f026fcb6982803d5120519"></a>
   231 <h2 class="memtitle"><span class="permalink"><a href="#a9d7d65a420f026fcb6982803d5120519">&#9670;&nbsp;</a></span>ucx_bprintf</h2>
   233 <div class="memitem">
   234 <div class="memproto">
   235       <table class="memname">
   236         <tr>
   237           <td class="memname">#define ucx_bprintf</td>
   238           <td>(</td>
   239           <td class="paramtype">&#160;</td>
   240           <td class="paramname">buffer, </td>
   241         </tr>
   242         <tr>
   243           <td class="paramkey"></td>
   244           <td></td>
   245           <td class="paramtype">&#160;</td>
   246           <td class="paramname"><em>...</em>&#160;</td>
   247         </tr>
   248         <tr>
   249           <td></td>
   250           <td>)</td>
   251           <td></td><td></td>
   252         </tr>
   253       </table>
   254 </div><div class="memdoc">
   255 <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>
   256 <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>
   257 <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>
   258 <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>
   259 </div><!-- fragment -->
   260 <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>
   261 <dl class="params"><dt>Parameters</dt><dd>
   262   <table class="params">
   263     <tr><td class="paramname">buffer</td><td>the buffer the data is written to </td></tr>
   264     <tr><td class="paramname">...</td><td>format string and additional arguments </td></tr>
   265   </table>
   266   </dd>
   267 </dl>
   268 <dl class="section return"><dt>Returns</dt><dd>the total number of bytes written </dd></dl>
   269 <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>
   271 </div>
   272 </div>
   273 <a id="af9f333b66ecd639c347c7235f4992e2e"></a>
   274 <h2 class="memtitle"><span class="permalink"><a href="#af9f333b66ecd639c347c7235f4992e2e">&#9670;&nbsp;</a></span>ucx_sprintf</h2>
   276 <div class="memitem">
   277 <div class="memproto">
   278       <table class="memname">
   279         <tr>
   280           <td class="memname">#define ucx_sprintf</td>
   281           <td>(</td>
   282           <td class="paramtype">&#160;</td>
   283           <td class="paramname"><em>...</em></td><td>)</td>
   284           <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>
   285         </tr>
   286       </table>
   287 </div><div class="memdoc">
   289 <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>
   291 </div>
   292 </div>
   293 <a id="a6003a1750a66234169bd1f8cc84b297b"></a>
   294 <h2 class="memtitle"><span class="permalink"><a href="#a6003a1750a66234169bd1f8cc84b297b">&#9670;&nbsp;</a></span>ucx_stream_bcopy</h2>
   296 <div class="memitem">
   297 <div class="memproto">
   298       <table class="memname">
   299         <tr>
   300           <td class="memname">#define ucx_stream_bcopy</td>
   301           <td>(</td>
   302           <td class="paramtype">&#160;</td>
   303           <td class="paramname">src, </td>
   304         </tr>
   305         <tr>
   306           <td class="paramkey"></td>
   307           <td></td>
   308           <td class="paramtype">&#160;</td>
   309           <td class="paramname">dest, </td>
   310         </tr>
   311         <tr>
   312           <td class="paramkey"></td>
   313           <td></td>
   314           <td class="paramtype">&#160;</td>
   315           <td class="paramname">rfnc, </td>
   316         </tr>
   317         <tr>
   318           <td class="paramkey"></td>
   319           <td></td>
   320           <td class="paramtype">&#160;</td>
   321           <td class="paramname">wfnc, </td>
   322         </tr>
   323         <tr>
   324           <td class="paramkey"></td>
   325           <td></td>
   326           <td class="paramtype">&#160;</td>
   327           <td class="paramname">buf, </td>
   328         </tr>
   329         <tr>
   330           <td class="paramkey"></td>
   331           <td></td>
   332           <td class="paramtype">&#160;</td>
   333           <td class="paramname">bufsize&#160;</td>
   334         </tr>
   335         <tr>
   336           <td></td>
   337           <td>)</td>
   338           <td></td><td></td>
   339         </tr>
   340       </table>
   341 </div><div class="memdoc">
   342 <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>
   343 <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>
   344 <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>
   345 </div><!-- fragment -->
   346 <p>Shorthand for an unbounded ucx_stream_bncopy call using the specified buffer. </p>
   347 <dl class="params"><dt>Parameters</dt><dd>
   348   <table class="params">
   349     <tr><td class="paramname">src</td><td>the source stream </td></tr>
   350     <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
   351     <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
   352     <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
   353     <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>
   354     <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>
   355   </table>
   356   </dd>
   357 </dl>
   358 <dl class="section return"><dt>Returns</dt><dd>total number of bytes copied </dd></dl>
   360 </div>
   361 </div>
   362 <a id="a41ca1344f781c0d3bf7a414a6e811392"></a>
   363 <h2 class="memtitle"><span class="permalink"><a href="#a41ca1344f781c0d3bf7a414a6e811392">&#9670;&nbsp;</a></span>ucx_stream_copy</h2>
   365 <div class="memitem">
   366 <div class="memproto">
   367       <table class="memname">
   368         <tr>
   369           <td class="memname">#define ucx_stream_copy</td>
   370           <td>(</td>
   371           <td class="paramtype">&#160;</td>
   372           <td class="paramname">src, </td>
   373         </tr>
   374         <tr>
   375           <td class="paramkey"></td>
   376           <td></td>
   377           <td class="paramtype">&#160;</td>
   378           <td class="paramname">dest, </td>
   379         </tr>
   380         <tr>
   381           <td class="paramkey"></td>
   382           <td></td>
   383           <td class="paramtype">&#160;</td>
   384           <td class="paramname">rfnc, </td>
   385         </tr>
   386         <tr>
   387           <td class="paramkey"></td>
   388           <td></td>
   389           <td class="paramtype">&#160;</td>
   390           <td class="paramname">wfnc&#160;</td>
   391         </tr>
   392         <tr>
   393           <td></td>
   394           <td>)</td>
   395           <td></td><td></td>
   396         </tr>
   397       </table>
   398 </div><div class="memdoc">
   399 <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>
   400 <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>
   401 <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>
   402 <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>
   403 </div><!-- fragment -->
   404 <p>Shorthand for an unbounded ucx_stream_bncopy call using a default buffer. </p>
   405 <dl class="params"><dt>Parameters</dt><dd>
   406   <table class="params">
   407     <tr><td class="paramname">src</td><td>the source stream </td></tr>
   408     <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
   409     <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
   410     <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
   411   </table>
   412   </dd>
   413 </dl>
   414 <dl class="section return"><dt>Returns</dt><dd>total number of bytes copied</dd></dl>
   415 <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>
   417 </div>
   418 </div>
   419 <a id="add13f39a8af440b4f7e6f74339eaada2"></a>
   420 <h2 class="memtitle"><span class="permalink"><a href="#add13f39a8af440b4f7e6f74339eaada2">&#9670;&nbsp;</a></span>ucx_stream_ncopy</h2>
   422 <div class="memitem">
   423 <div class="memproto">
   424       <table class="memname">
   425         <tr>
   426           <td class="memname">#define ucx_stream_ncopy</td>
   427           <td>(</td>
   428           <td class="paramtype">&#160;</td>
   429           <td class="paramname">src, </td>
   430         </tr>
   431         <tr>
   432           <td class="paramkey"></td>
   433           <td></td>
   434           <td class="paramtype">&#160;</td>
   435           <td class="paramname">dest, </td>
   436         </tr>
   437         <tr>
   438           <td class="paramkey"></td>
   439           <td></td>
   440           <td class="paramtype">&#160;</td>
   441           <td class="paramname">rfnc, </td>
   442         </tr>
   443         <tr>
   444           <td class="paramkey"></td>
   445           <td></td>
   446           <td class="paramtype">&#160;</td>
   447           <td class="paramname">wfnc, </td>
   448         </tr>
   449         <tr>
   450           <td class="paramkey"></td>
   451           <td></td>
   452           <td class="paramtype">&#160;</td>
   453           <td class="paramname">n&#160;</td>
   454         </tr>
   455         <tr>
   456           <td></td>
   457           <td>)</td>
   458           <td></td><td></td>
   459         </tr>
   460       </table>
   461 </div><div class="memdoc">
   462 <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>
   463 <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>
   464 <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>
   465 <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>
   466 </div><!-- fragment -->
   467 <p>Shorthand for ucx_stream_bncopy using a default copy buffer. </p>
   468 <dl class="params"><dt>Parameters</dt><dd>
   469   <table class="params">
   470     <tr><td class="paramname">src</td><td>the source stream </td></tr>
   471     <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
   472     <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
   473     <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
   474     <tr><td class="paramname">n</td><td>maximum number of bytes that shall be copied </td></tr>
   475   </table>
   476   </dd>
   477 </dl>
   478 <dl class="section return"><dt>Returns</dt><dd>total number of bytes copied </dd></dl>
   480 </div>
   481 </div>
   482 <h2 class="groupheader">Function Documentation</h2>
   483 <a id="a9f9cf0e89ffdc256ecb35429907f51f5"></a>
   484 <h2 class="memtitle"><span class="permalink"><a href="#a9f9cf0e89ffdc256ecb35429907f51f5">&#9670;&nbsp;</a></span>ucx_asprintf()</h2>
   486 <div class="memitem">
   487 <div class="memproto">
   488       <table class="memname">
   489         <tr>
   490           <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> ucx_asprintf </td>
   491           <td>(</td>
   492           <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
   493           <td class="paramname"><em>allocator</em>, </td>
   494         </tr>
   495         <tr>
   496           <td class="paramkey"></td>
   497           <td></td>
   498           <td class="paramtype">const char *&#160;</td>
   499           <td class="paramname"><em>fmt</em>, </td>
   500         </tr>
   501         <tr>
   502           <td class="paramkey"></td>
   503           <td></td>
   504           <td class="paramtype">&#160;</td>
   505           <td class="paramname"><em>...</em>&#160;</td>
   506         </tr>
   507         <tr>
   508           <td></td>
   509           <td>)</td>
   510           <td></td><td></td>
   511         </tr>
   512       </table>
   513 </div><div class="memdoc">
   515 <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>
   516 <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>
   517 <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>
   518 <dl class="params"><dt>Parameters</dt><dd>
   519   <table class="params">
   520     <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>
   521     <tr><td class="paramname">fmt</td><td>format string </td></tr>
   522     <tr><td class="paramname">...</td><td>additional arguments </td></tr>
   523   </table>
   524   </dd>
   525 </dl>
   526 <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>
   528 </div>
   529 </div>
   530 <a id="ab804b7c27d0bfcd7bf3a3583140825b6"></a>
   531 <h2 class="memtitle"><span class="permalink"><a href="#ab804b7c27d0bfcd7bf3a3583140825b6">&#9670;&nbsp;</a></span>ucx_cmp_double()</h2>
   533 <div class="memitem">
   534 <div class="memproto">
   535       <table class="memname">
   536         <tr>
   537           <td class="memname">int ucx_cmp_double </td>
   538           <td>(</td>
   539           <td class="paramtype">const void *&#160;</td>
   540           <td class="paramname"><em>d1</em>, </td>
   541         </tr>
   542         <tr>
   543           <td class="paramkey"></td>
   544           <td></td>
   545           <td class="paramtype">const void *&#160;</td>
   546           <td class="paramname"><em>d2</em>, </td>
   547         </tr>
   548         <tr>
   549           <td class="paramkey"></td>
   550           <td></td>
   551           <td class="paramtype">void *&#160;</td>
   552           <td class="paramname"><em>data</em>&#160;</td>
   553         </tr>
   554         <tr>
   555           <td></td>
   556           <td>)</td>
   557           <td></td><td></td>
   558         </tr>
   559       </table>
   560 </div><div class="memdoc">
   562 <p>Compares two real numbers of type double. </p>
   563 <dl class="params"><dt>Parameters</dt><dd>
   564   <table class="params">
   565     <tr><td class="paramname">d1</td><td>pointer to double one </td></tr>
   566     <tr><td class="paramname">d2</td><td>pointer to double two </td></tr>
   567     <tr><td class="paramname">data</td><td>if provided: a pointer to precision (default: 1e-14) </td></tr>
   568   </table>
   569   </dd>
   570 </dl>
   571 <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>
   573 </div>
   574 </div>
   575 <a id="ad1196b561bcdad76c393885819769a97"></a>
   576 <h2 class="memtitle"><span class="permalink"><a href="#ad1196b561bcdad76c393885819769a97">&#9670;&nbsp;</a></span>ucx_cmp_float()</h2>
   578 <div class="memitem">
   579 <div class="memproto">
   580       <table class="memname">
   581         <tr>
   582           <td class="memname">int ucx_cmp_float </td>
   583           <td>(</td>
   584           <td class="paramtype">const void *&#160;</td>
   585           <td class="paramname"><em>f1</em>, </td>
   586         </tr>
   587         <tr>
   588           <td class="paramkey"></td>
   589           <td></td>
   590           <td class="paramtype">const void *&#160;</td>
   591           <td class="paramname"><em>f2</em>, </td>
   592         </tr>
   593         <tr>
   594           <td class="paramkey"></td>
   595           <td></td>
   596           <td class="paramtype">void *&#160;</td>
   597           <td class="paramname"><em>data</em>&#160;</td>
   598         </tr>
   599         <tr>
   600           <td></td>
   601           <td>)</td>
   602           <td></td><td></td>
   603         </tr>
   604       </table>
   605 </div><div class="memdoc">
   607 <p>Compares two real numbers of type float. </p>
   608 <dl class="params"><dt>Parameters</dt><dd>
   609   <table class="params">
   610     <tr><td class="paramname">f1</td><td>pointer to float one </td></tr>
   611     <tr><td class="paramname">f2</td><td>pointer to float two </td></tr>
   612     <tr><td class="paramname">data</td><td>if provided: a pointer to precision (default: 1e-6f) </td></tr>
   613   </table>
   614   </dd>
   615 </dl>
   616 <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>
   618 </div>
   619 </div>
   620 <a id="a8ce7e11e6b3deafe89a32a091fde7f16"></a>
   621 <h2 class="memtitle"><span class="permalink"><a href="#a8ce7e11e6b3deafe89a32a091fde7f16">&#9670;&nbsp;</a></span>ucx_cmp_int()</h2>
   623 <div class="memitem">
   624 <div class="memproto">
   625       <table class="memname">
   626         <tr>
   627           <td class="memname">int ucx_cmp_int </td>
   628           <td>(</td>
   629           <td class="paramtype">const void *&#160;</td>
   630           <td class="paramname"><em>i1</em>, </td>
   631         </tr>
   632         <tr>
   633           <td class="paramkey"></td>
   634           <td></td>
   635           <td class="paramtype">const void *&#160;</td>
   636           <td class="paramname"><em>i2</em>, </td>
   637         </tr>
   638         <tr>
   639           <td class="paramkey"></td>
   640           <td></td>
   641           <td class="paramtype">void *&#160;</td>
   642           <td class="paramname"><em>data</em>&#160;</td>
   643         </tr>
   644         <tr>
   645           <td></td>
   646           <td>)</td>
   647           <td></td><td></td>
   648         </tr>
   649       </table>
   650 </div><div class="memdoc">
   652 <p>Compares two integers of type int. </p>
   653 <dl class="params"><dt>Parameters</dt><dd>
   654   <table class="params">
   655     <tr><td class="paramname">i1</td><td>pointer to integer one </td></tr>
   656     <tr><td class="paramname">i2</td><td>pointer to integer two </td></tr>
   657     <tr><td class="paramname">data</td><td>omitted </td></tr>
   658   </table>
   659   </dd>
   660 </dl>
   661 <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>
   663 </div>
   664 </div>
   665 <a id="aa29e6e559946375e34113e34e0b0bd0d"></a>
   666 <h2 class="memtitle"><span class="permalink"><a href="#aa29e6e559946375e34113e34e0b0bd0d">&#9670;&nbsp;</a></span>ucx_cmp_int16()</h2>
   668 <div class="memitem">
   669 <div class="memproto">
   670       <table class="memname">
   671         <tr>
   672           <td class="memname">int ucx_cmp_int16 </td>
   673           <td>(</td>
   674           <td class="paramtype">const void *&#160;</td>
   675           <td class="paramname"><em>i1</em>, </td>
   676         </tr>
   677         <tr>
   678           <td class="paramkey"></td>
   679           <td></td>
   680           <td class="paramtype">const void *&#160;</td>
   681           <td class="paramname"><em>i2</em>, </td>
   682         </tr>
   683         <tr>
   684           <td class="paramkey"></td>
   685           <td></td>
   686           <td class="paramtype">void *&#160;</td>
   687           <td class="paramname"><em>data</em>&#160;</td>
   688         </tr>
   689         <tr>
   690           <td></td>
   691           <td>)</td>
   692           <td></td><td></td>
   693         </tr>
   694       </table>
   695 </div><div class="memdoc">
   697 <p>Compares two integers of type int16_t. </p>
   698 <dl class="params"><dt>Parameters</dt><dd>
   699   <table class="params">
   700     <tr><td class="paramname">i1</td><td>pointer to int16_t one </td></tr>
   701     <tr><td class="paramname">i2</td><td>pointer to int16_t two </td></tr>
   702     <tr><td class="paramname">data</td><td>omitted </td></tr>
   703   </table>
   704   </dd>
   705 </dl>
   706 <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>
   708 </div>
   709 </div>
   710 <a id="a858b2ac443fb202643b71f6a7e9218dd"></a>
   711 <h2 class="memtitle"><span class="permalink"><a href="#a858b2ac443fb202643b71f6a7e9218dd">&#9670;&nbsp;</a></span>ucx_cmp_int32()</h2>
   713 <div class="memitem">
   714 <div class="memproto">
   715       <table class="memname">
   716         <tr>
   717           <td class="memname">int ucx_cmp_int32 </td>
   718           <td>(</td>
   719           <td class="paramtype">const void *&#160;</td>
   720           <td class="paramname"><em>i1</em>, </td>
   721         </tr>
   722         <tr>
   723           <td class="paramkey"></td>
   724           <td></td>
   725           <td class="paramtype">const void *&#160;</td>
   726           <td class="paramname"><em>i2</em>, </td>
   727         </tr>
   728         <tr>
   729           <td class="paramkey"></td>
   730           <td></td>
   731           <td class="paramtype">void *&#160;</td>
   732           <td class="paramname"><em>data</em>&#160;</td>
   733         </tr>
   734         <tr>
   735           <td></td>
   736           <td>)</td>
   737           <td></td><td></td>
   738         </tr>
   739       </table>
   740 </div><div class="memdoc">
   742 <p>Compares two integers of type int32_t. </p>
   743 <dl class="params"><dt>Parameters</dt><dd>
   744   <table class="params">
   745     <tr><td class="paramname">i1</td><td>pointer to int32_t one </td></tr>
   746     <tr><td class="paramname">i2</td><td>pointer to int32_t two </td></tr>
   747     <tr><td class="paramname">data</td><td>omitted </td></tr>
   748   </table>
   749   </dd>
   750 </dl>
   751 <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>
   753 </div>
   754 </div>
   755 <a id="a54701aea6a89fed1402dfb0bf56bc7f6"></a>
   756 <h2 class="memtitle"><span class="permalink"><a href="#a54701aea6a89fed1402dfb0bf56bc7f6">&#9670;&nbsp;</a></span>ucx_cmp_int64()</h2>
   758 <div class="memitem">
   759 <div class="memproto">
   760       <table class="memname">
   761         <tr>
   762           <td class="memname">int ucx_cmp_int64 </td>
   763           <td>(</td>
   764           <td class="paramtype">const void *&#160;</td>
   765           <td class="paramname"><em>i1</em>, </td>
   766         </tr>
   767         <tr>
   768           <td class="paramkey"></td>
   769           <td></td>
   770           <td class="paramtype">const void *&#160;</td>
   771           <td class="paramname"><em>i2</em>, </td>
   772         </tr>
   773         <tr>
   774           <td class="paramkey"></td>
   775           <td></td>
   776           <td class="paramtype">void *&#160;</td>
   777           <td class="paramname"><em>data</em>&#160;</td>
   778         </tr>
   779         <tr>
   780           <td></td>
   781           <td>)</td>
   782           <td></td><td></td>
   783         </tr>
   784       </table>
   785 </div><div class="memdoc">
   787 <p>Compares two integers of type int64_t. </p>
   788 <dl class="params"><dt>Parameters</dt><dd>
   789   <table class="params">
   790     <tr><td class="paramname">i1</td><td>pointer to int64_t one </td></tr>
   791     <tr><td class="paramname">i2</td><td>pointer to int64_t two </td></tr>
   792     <tr><td class="paramname">data</td><td>omitted </td></tr>
   793   </table>
   794   </dd>
   795 </dl>
   796 <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>
   798 </div>
   799 </div>
   800 <a id="aeb57a2b9a6aaa0460c7a6bec29accf2c"></a>
   801 <h2 class="memtitle"><span class="permalink"><a href="#aeb57a2b9a6aaa0460c7a6bec29accf2c">&#9670;&nbsp;</a></span>ucx_cmp_longint()</h2>
   803 <div class="memitem">
   804 <div class="memproto">
   805       <table class="memname">
   806         <tr>
   807           <td class="memname">int ucx_cmp_longint </td>
   808           <td>(</td>
   809           <td class="paramtype">const void *&#160;</td>
   810           <td class="paramname"><em>i1</em>, </td>
   811         </tr>
   812         <tr>
   813           <td class="paramkey"></td>
   814           <td></td>
   815           <td class="paramtype">const void *&#160;</td>
   816           <td class="paramname"><em>i2</em>, </td>
   817         </tr>
   818         <tr>
   819           <td class="paramkey"></td>
   820           <td></td>
   821           <td class="paramtype">void *&#160;</td>
   822           <td class="paramname"><em>data</em>&#160;</td>
   823         </tr>
   824         <tr>
   825           <td></td>
   826           <td>)</td>
   827           <td></td><td></td>
   828         </tr>
   829       </table>
   830 </div><div class="memdoc">
   832 <p>Compares two integers of type long int. </p>
   833 <dl class="params"><dt>Parameters</dt><dd>
   834   <table class="params">
   835     <tr><td class="paramname">i1</td><td>pointer to long integer one </td></tr>
   836     <tr><td class="paramname">i2</td><td>pointer to long integer two </td></tr>
   837     <tr><td class="paramname">data</td><td>omitted </td></tr>
   838   </table>
   839   </dd>
   840 </dl>
   841 <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>
   843 </div>
   844 </div>
   845 <a id="a366b57def20f86a41eaedf575eea5375"></a>
   846 <h2 class="memtitle"><span class="permalink"><a href="#a366b57def20f86a41eaedf575eea5375">&#9670;&nbsp;</a></span>ucx_cmp_longlong()</h2>
   848 <div class="memitem">
   849 <div class="memproto">
   850       <table class="memname">
   851         <tr>
   852           <td class="memname">int ucx_cmp_longlong </td>
   853           <td>(</td>
   854           <td class="paramtype">const void *&#160;</td>
   855           <td class="paramname"><em>i1</em>, </td>
   856         </tr>
   857         <tr>
   858           <td class="paramkey"></td>
   859           <td></td>
   860           <td class="paramtype">const void *&#160;</td>
   861           <td class="paramname"><em>i2</em>, </td>
   862         </tr>
   863         <tr>
   864           <td class="paramkey"></td>
   865           <td></td>
   866           <td class="paramtype">void *&#160;</td>
   867           <td class="paramname"><em>data</em>&#160;</td>
   868         </tr>
   869         <tr>
   870           <td></td>
   871           <td>)</td>
   872           <td></td><td></td>
   873         </tr>
   874       </table>
   875 </div><div class="memdoc">
   877 <p>Compares two integers of type long long. </p>
   878 <dl class="params"><dt>Parameters</dt><dd>
   879   <table class="params">
   880     <tr><td class="paramname">i1</td><td>pointer to long long one </td></tr>
   881     <tr><td class="paramname">i2</td><td>pointer to long long two </td></tr>
   882     <tr><td class="paramname">data</td><td>omitted </td></tr>
   883   </table>
   884   </dd>
   885 </dl>
   886 <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>
   888 </div>
   889 </div>
   890 <a id="aff7d2bcded71196831a8c0664333f8e7"></a>
   891 <h2 class="memtitle"><span class="permalink"><a href="#aff7d2bcded71196831a8c0664333f8e7">&#9670;&nbsp;</a></span>ucx_cmp_mem()</h2>
   893 <div class="memitem">
   894 <div class="memproto">
   895       <table class="memname">
   896         <tr>
   897           <td class="memname">int ucx_cmp_mem </td>
   898           <td>(</td>
   899           <td class="paramtype">const void *&#160;</td>
   900           <td class="paramname"><em>ptr1</em>, </td>
   901         </tr>
   902         <tr>
   903           <td class="paramkey"></td>
   904           <td></td>
   905           <td class="paramtype">const void *&#160;</td>
   906           <td class="paramname"><em>ptr2</em>, </td>
   907         </tr>
   908         <tr>
   909           <td class="paramkey"></td>
   910           <td></td>
   911           <td class="paramtype">void *&#160;</td>
   912           <td class="paramname"><em>n</em>&#160;</td>
   913         </tr>
   914         <tr>
   915           <td></td>
   916           <td>)</td>
   917           <td></td><td></td>
   918         </tr>
   919       </table>
   920 </div><div class="memdoc">
   922 <p>Compares two memory areas. </p>
   923 <dl class="params"><dt>Parameters</dt><dd>
   924   <table class="params">
   925     <tr><td class="paramname">ptr1</td><td>pointer one </td></tr>
   926     <tr><td class="paramname">ptr2</td><td>pointer two </td></tr>
   927     <tr><td class="paramname">n</td><td>a pointer to the size_t containing the third parameter for memcmp </td></tr>
   928   </table>
   929   </dd>
   930 </dl>
   931 <dl class="section return"><dt>Returns</dt><dd>the result of memcmp(ptr1, ptr2, *n) </dd></dl>
   933 </div>
   934 </div>
   935 <a id="aa174d539de3ea59be4f9640f17ce53d8"></a>
   936 <h2 class="memtitle"><span class="permalink"><a href="#aa174d539de3ea59be4f9640f17ce53d8">&#9670;&nbsp;</a></span>ucx_cmp_ptr()</h2>
   938 <div class="memitem">
   939 <div class="memproto">
   940       <table class="memname">
   941         <tr>
   942           <td class="memname">int ucx_cmp_ptr </td>
   943           <td>(</td>
   944           <td class="paramtype">const void *&#160;</td>
   945           <td class="paramname"><em>ptr1</em>, </td>
   946         </tr>
   947         <tr>
   948           <td class="paramkey"></td>
   949           <td></td>
   950           <td class="paramtype">const void *&#160;</td>
   951           <td class="paramname"><em>ptr2</em>, </td>
   952         </tr>
   953         <tr>
   954           <td class="paramkey"></td>
   955           <td></td>
   956           <td class="paramtype">void *&#160;</td>
   957           <td class="paramname"><em>data</em>&#160;</td>
   958         </tr>
   959         <tr>
   960           <td></td>
   961           <td>)</td>
   962           <td></td><td></td>
   963         </tr>
   964       </table>
   965 </div><div class="memdoc">
   967 <p>Compares two pointers. </p>
   968 <dl class="params"><dt>Parameters</dt><dd>
   969   <table class="params">
   970     <tr><td class="paramname">ptr1</td><td>pointer one </td></tr>
   971     <tr><td class="paramname">ptr2</td><td>pointer two </td></tr>
   972     <tr><td class="paramname">data</td><td>omitted </td></tr>
   973   </table>
   974   </dd>
   975 </dl>
   976 <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>
   978 </div>
   979 </div>
   980 <a id="adee0739589166d272f8cb7c23aabf8ba"></a>
   981 <h2 class="memtitle"><span class="permalink"><a href="#adee0739589166d272f8cb7c23aabf8ba">&#9670;&nbsp;</a></span>ucx_cmp_sstr()</h2>
   983 <div class="memitem">
   984 <div class="memproto">
   985       <table class="memname">
   986         <tr>
   987           <td class="memname">int ucx_cmp_sstr </td>
   988           <td>(</td>
   989           <td class="paramtype">const void *&#160;</td>
   990           <td class="paramname"><em>s1</em>, </td>
   991         </tr>
   992         <tr>
   993           <td class="paramkey"></td>
   994           <td></td>
   995           <td class="paramtype">const void *&#160;</td>
   996           <td class="paramname"><em>s2</em>, </td>
   997         </tr>
   998         <tr>
   999           <td class="paramkey"></td>
  1000           <td></td>
  1001           <td class="paramtype">void *&#160;</td>
  1002           <td class="paramname"><em>data</em>&#160;</td>
  1003         </tr>
  1004         <tr>
  1005           <td></td>
  1006           <td>)</td>
  1007           <td></td><td></td>
  1008         </tr>
  1009       </table>
  1010 </div><div class="memdoc">
  1012 <p>Wraps the sstrcmp function. </p>
  1013 <dl class="params"><dt>Parameters</dt><dd>
  1014   <table class="params">
  1015     <tr><td class="paramname">s1</td><td>sstr one </td></tr>
  1016     <tr><td class="paramname">s2</td><td>sstr two </td></tr>
  1017     <tr><td class="paramname">data</td><td>ignored </td></tr>
  1018   </table>
  1019   </dd>
  1020 </dl>
  1021 <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>
  1023 </div>
  1024 </div>
  1025 <a id="aa6a37b9d172b6a5b2803d152f9e1b258"></a>
  1026 <h2 class="memtitle"><span class="permalink"><a href="#aa6a37b9d172b6a5b2803d152f9e1b258">&#9670;&nbsp;</a></span>ucx_cmp_str()</h2>
  1028 <div class="memitem">
  1029 <div class="memproto">
  1030       <table class="memname">
  1031         <tr>
  1032           <td class="memname">int ucx_cmp_str </td>
  1033           <td>(</td>
  1034           <td class="paramtype">const void *&#160;</td>
  1035           <td class="paramname"><em>s1</em>, </td>
  1036         </tr>
  1037         <tr>
  1038           <td class="paramkey"></td>
  1039           <td></td>
  1040           <td class="paramtype">const void *&#160;</td>
  1041           <td class="paramname"><em>s2</em>, </td>
  1042         </tr>
  1043         <tr>
  1044           <td class="paramkey"></td>
  1045           <td></td>
  1046           <td class="paramtype">void *&#160;</td>
  1047           <td class="paramname"><em>data</em>&#160;</td>
  1048         </tr>
  1049         <tr>
  1050           <td></td>
  1051           <td>)</td>
  1052           <td></td><td></td>
  1053         </tr>
  1054       </table>
  1055 </div><div class="memdoc">
  1057 <p>Wraps the strcmp function. </p>
  1058 <dl class="params"><dt>Parameters</dt><dd>
  1059   <table class="params">
  1060     <tr><td class="paramname">s1</td><td>string one </td></tr>
  1061     <tr><td class="paramname">s2</td><td>string two </td></tr>
  1062     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1063   </table>
  1064   </dd>
  1065 </dl>
  1066 <dl class="section return"><dt>Returns</dt><dd>the result of strcmp(s1, s2) </dd></dl>
  1068 </div>
  1069 </div>
  1070 <a id="ac6b354a878f551a3a5b20a167db3f308"></a>
  1071 <h2 class="memtitle"><span class="permalink"><a href="#ac6b354a878f551a3a5b20a167db3f308">&#9670;&nbsp;</a></span>ucx_cmp_strn()</h2>
  1073 <div class="memitem">
  1074 <div class="memproto">
  1075       <table class="memname">
  1076         <tr>
  1077           <td class="memname">int ucx_cmp_strn </td>
  1078           <td>(</td>
  1079           <td class="paramtype">const void *&#160;</td>
  1080           <td class="paramname"><em>s1</em>, </td>
  1081         </tr>
  1082         <tr>
  1083           <td class="paramkey"></td>
  1084           <td></td>
  1085           <td class="paramtype">const void *&#160;</td>
  1086           <td class="paramname"><em>s2</em>, </td>
  1087         </tr>
  1088         <tr>
  1089           <td class="paramkey"></td>
  1090           <td></td>
  1091           <td class="paramtype">void *&#160;</td>
  1092           <td class="paramname"><em>n</em>&#160;</td>
  1093         </tr>
  1094         <tr>
  1095           <td></td>
  1096           <td>)</td>
  1097           <td></td><td></td>
  1098         </tr>
  1099       </table>
  1100 </div><div class="memdoc">
  1102 <p>Wraps the strncmp function. </p>
  1103 <dl class="params"><dt>Parameters</dt><dd>
  1104   <table class="params">
  1105     <tr><td class="paramname">s1</td><td>string one </td></tr>
  1106     <tr><td class="paramname">s2</td><td>string two </td></tr>
  1107     <tr><td class="paramname">n</td><td>a pointer to the size_t containing the third strncmp parameter </td></tr>
  1108   </table>
  1109   </dd>
  1110 </dl>
  1111 <dl class="section return"><dt>Returns</dt><dd>the result of strncmp(s1, s2, *n) </dd></dl>
  1113 </div>
  1114 </div>
  1115 <a id="abd83a5da91c3dd026a6931bd80c12f1e"></a>
  1116 <h2 class="memtitle"><span class="permalink"><a href="#abd83a5da91c3dd026a6931bd80c12f1e">&#9670;&nbsp;</a></span>ucx_cmp_uint()</h2>
  1118 <div class="memitem">
  1119 <div class="memproto">
  1120       <table class="memname">
  1121         <tr>
  1122           <td class="memname">int ucx_cmp_uint </td>
  1123           <td>(</td>
  1124           <td class="paramtype">const void *&#160;</td>
  1125           <td class="paramname"><em>i1</em>, </td>
  1126         </tr>
  1127         <tr>
  1128           <td class="paramkey"></td>
  1129           <td></td>
  1130           <td class="paramtype">const void *&#160;</td>
  1131           <td class="paramname"><em>i2</em>, </td>
  1132         </tr>
  1133         <tr>
  1134           <td class="paramkey"></td>
  1135           <td></td>
  1136           <td class="paramtype">void *&#160;</td>
  1137           <td class="paramname"><em>data</em>&#160;</td>
  1138         </tr>
  1139         <tr>
  1140           <td></td>
  1141           <td>)</td>
  1142           <td></td><td></td>
  1143         </tr>
  1144       </table>
  1145 </div><div class="memdoc">
  1147 <p>Compares two integers of type unsigned int. </p>
  1148 <dl class="params"><dt>Parameters</dt><dd>
  1149   <table class="params">
  1150     <tr><td class="paramname">i1</td><td>pointer to unsigned integer one </td></tr>
  1151     <tr><td class="paramname">i2</td><td>pointer to unsigned integer two </td></tr>
  1152     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1153   </table>
  1154   </dd>
  1155 </dl>
  1156 <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>
  1158 </div>
  1159 </div>
  1160 <a id="acde5366437e886a459b7468f7a9e11f0"></a>
  1161 <h2 class="memtitle"><span class="permalink"><a href="#acde5366437e886a459b7468f7a9e11f0">&#9670;&nbsp;</a></span>ucx_cmp_uint16()</h2>
  1163 <div class="memitem">
  1164 <div class="memproto">
  1165       <table class="memname">
  1166         <tr>
  1167           <td class="memname">int ucx_cmp_uint16 </td>
  1168           <td>(</td>
  1169           <td class="paramtype">const void *&#160;</td>
  1170           <td class="paramname"><em>i1</em>, </td>
  1171         </tr>
  1172         <tr>
  1173           <td class="paramkey"></td>
  1174           <td></td>
  1175           <td class="paramtype">const void *&#160;</td>
  1176           <td class="paramname"><em>i2</em>, </td>
  1177         </tr>
  1178         <tr>
  1179           <td class="paramkey"></td>
  1180           <td></td>
  1181           <td class="paramtype">void *&#160;</td>
  1182           <td class="paramname"><em>data</em>&#160;</td>
  1183         </tr>
  1184         <tr>
  1185           <td></td>
  1186           <td>)</td>
  1187           <td></td><td></td>
  1188         </tr>
  1189       </table>
  1190 </div><div class="memdoc">
  1192 <p>Compares two integers of type uint16_t. </p>
  1193 <dl class="params"><dt>Parameters</dt><dd>
  1194   <table class="params">
  1195     <tr><td class="paramname">i1</td><td>pointer to uint16_t one </td></tr>
  1196     <tr><td class="paramname">i2</td><td>pointer to uint16_t two </td></tr>
  1197     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1198   </table>
  1199   </dd>
  1200 </dl>
  1201 <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>
  1203 </div>
  1204 </div>
  1205 <a id="a5879d1722330355914d8c9146fa549d3"></a>
  1206 <h2 class="memtitle"><span class="permalink"><a href="#a5879d1722330355914d8c9146fa549d3">&#9670;&nbsp;</a></span>ucx_cmp_uint32()</h2>
  1208 <div class="memitem">
  1209 <div class="memproto">
  1210       <table class="memname">
  1211         <tr>
  1212           <td class="memname">int ucx_cmp_uint32 </td>
  1213           <td>(</td>
  1214           <td class="paramtype">const void *&#160;</td>
  1215           <td class="paramname"><em>i1</em>, </td>
  1216         </tr>
  1217         <tr>
  1218           <td class="paramkey"></td>
  1219           <td></td>
  1220           <td class="paramtype">const void *&#160;</td>
  1221           <td class="paramname"><em>i2</em>, </td>
  1222         </tr>
  1223         <tr>
  1224           <td class="paramkey"></td>
  1225           <td></td>
  1226           <td class="paramtype">void *&#160;</td>
  1227           <td class="paramname"><em>data</em>&#160;</td>
  1228         </tr>
  1229         <tr>
  1230           <td></td>
  1231           <td>)</td>
  1232           <td></td><td></td>
  1233         </tr>
  1234       </table>
  1235 </div><div class="memdoc">
  1237 <p>Compares two integers of type uint32_t. </p>
  1238 <dl class="params"><dt>Parameters</dt><dd>
  1239   <table class="params">
  1240     <tr><td class="paramname">i1</td><td>pointer to uint32_t one </td></tr>
  1241     <tr><td class="paramname">i2</td><td>pointer to uint32_t two </td></tr>
  1242     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1243   </table>
  1244   </dd>
  1245 </dl>
  1246 <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>
  1248 </div>
  1249 </div>
  1250 <a id="a1572a78b5b42f7151a5b2a5a7283d62d"></a>
  1251 <h2 class="memtitle"><span class="permalink"><a href="#a1572a78b5b42f7151a5b2a5a7283d62d">&#9670;&nbsp;</a></span>ucx_cmp_uint64()</h2>
  1253 <div class="memitem">
  1254 <div class="memproto">
  1255       <table class="memname">
  1256         <tr>
  1257           <td class="memname">int ucx_cmp_uint64 </td>
  1258           <td>(</td>
  1259           <td class="paramtype">const void *&#160;</td>
  1260           <td class="paramname"><em>i1</em>, </td>
  1261         </tr>
  1262         <tr>
  1263           <td class="paramkey"></td>
  1264           <td></td>
  1265           <td class="paramtype">const void *&#160;</td>
  1266           <td class="paramname"><em>i2</em>, </td>
  1267         </tr>
  1268         <tr>
  1269           <td class="paramkey"></td>
  1270           <td></td>
  1271           <td class="paramtype">void *&#160;</td>
  1272           <td class="paramname"><em>data</em>&#160;</td>
  1273         </tr>
  1274         <tr>
  1275           <td></td>
  1276           <td>)</td>
  1277           <td></td><td></td>
  1278         </tr>
  1279       </table>
  1280 </div><div class="memdoc">
  1282 <p>Compares two integers of type uint64_t. </p>
  1283 <dl class="params"><dt>Parameters</dt><dd>
  1284   <table class="params">
  1285     <tr><td class="paramname">i1</td><td>pointer to uint64_t one </td></tr>
  1286     <tr><td class="paramname">i2</td><td>pointer to uint64_t two </td></tr>
  1287     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1288   </table>
  1289   </dd>
  1290 </dl>
  1291 <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>
  1293 </div>
  1294 </div>
  1295 <a id="a3f3cbae2594d6f722bae29acb0408a24"></a>
  1296 <h2 class="memtitle"><span class="permalink"><a href="#a3f3cbae2594d6f722bae29acb0408a24">&#9670;&nbsp;</a></span>ucx_cmp_ulongint()</h2>
  1298 <div class="memitem">
  1299 <div class="memproto">
  1300       <table class="memname">
  1301         <tr>
  1302           <td class="memname">int ucx_cmp_ulongint </td>
  1303           <td>(</td>
  1304           <td class="paramtype">const void *&#160;</td>
  1305           <td class="paramname"><em>i1</em>, </td>
  1306         </tr>
  1307         <tr>
  1308           <td class="paramkey"></td>
  1309           <td></td>
  1310           <td class="paramtype">const void *&#160;</td>
  1311           <td class="paramname"><em>i2</em>, </td>
  1312         </tr>
  1313         <tr>
  1314           <td class="paramkey"></td>
  1315           <td></td>
  1316           <td class="paramtype">void *&#160;</td>
  1317           <td class="paramname"><em>data</em>&#160;</td>
  1318         </tr>
  1319         <tr>
  1320           <td></td>
  1321           <td>)</td>
  1322           <td></td><td></td>
  1323         </tr>
  1324       </table>
  1325 </div><div class="memdoc">
  1327 <p>Compares two integers of type unsigned long int. </p>
  1328 <dl class="params"><dt>Parameters</dt><dd>
  1329   <table class="params">
  1330     <tr><td class="paramname">i1</td><td>pointer to unsigned long integer one </td></tr>
  1331     <tr><td class="paramname">i2</td><td>pointer to unsigned long integer two </td></tr>
  1332     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1333   </table>
  1334   </dd>
  1335 </dl>
  1336 <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>
  1338 </div>
  1339 </div>
  1340 <a id="a6acfc359421f21f9a042a654ff7faac5"></a>
  1341 <h2 class="memtitle"><span class="permalink"><a href="#a6acfc359421f21f9a042a654ff7faac5">&#9670;&nbsp;</a></span>ucx_cmp_ulonglong()</h2>
  1343 <div class="memitem">
  1344 <div class="memproto">
  1345       <table class="memname">
  1346         <tr>
  1347           <td class="memname">int ucx_cmp_ulonglong </td>
  1348           <td>(</td>
  1349           <td class="paramtype">const void *&#160;</td>
  1350           <td class="paramname"><em>i1</em>, </td>
  1351         </tr>
  1352         <tr>
  1353           <td class="paramkey"></td>
  1354           <td></td>
  1355           <td class="paramtype">const void *&#160;</td>
  1356           <td class="paramname"><em>i2</em>, </td>
  1357         </tr>
  1358         <tr>
  1359           <td class="paramkey"></td>
  1360           <td></td>
  1361           <td class="paramtype">void *&#160;</td>
  1362           <td class="paramname"><em>data</em>&#160;</td>
  1363         </tr>
  1364         <tr>
  1365           <td></td>
  1366           <td>)</td>
  1367           <td></td><td></td>
  1368         </tr>
  1369       </table>
  1370 </div><div class="memdoc">
  1372 <p>Compares two integers of type unsigned long long. </p>
  1373 <dl class="params"><dt>Parameters</dt><dd>
  1374   <table class="params">
  1375     <tr><td class="paramname">i1</td><td>pointer to unsigned long long one </td></tr>
  1376     <tr><td class="paramname">i2</td><td>pointer to unsigned long long two </td></tr>
  1377     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1378   </table>
  1379   </dd>
  1380 </dl>
  1381 <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>
  1383 </div>
  1384 </div>
  1385 <a id="a4ab6753739d56c09cdf6079fdcabf7c6"></a>
  1386 <h2 class="memtitle"><span class="permalink"><a href="#a4ab6753739d56c09cdf6079fdcabf7c6">&#9670;&nbsp;</a></span>ucx_dist_int()</h2>
  1388 <div class="memitem">
  1389 <div class="memproto">
  1390       <table class="memname">
  1391         <tr>
  1392           <td class="memname">intmax_t ucx_dist_int </td>
  1393           <td>(</td>
  1394           <td class="paramtype">const void *&#160;</td>
  1395           <td class="paramname"><em>i1</em>, </td>
  1396         </tr>
  1397         <tr>
  1398           <td class="paramkey"></td>
  1399           <td></td>
  1400           <td class="paramtype">const void *&#160;</td>
  1401           <td class="paramname"><em>i2</em>, </td>
  1402         </tr>
  1403         <tr>
  1404           <td class="paramkey"></td>
  1405           <td></td>
  1406           <td class="paramtype">void *&#160;</td>
  1407           <td class="paramname"><em>data</em>&#160;</td>
  1408         </tr>
  1409         <tr>
  1410           <td></td>
  1411           <td>)</td>
  1412           <td></td><td></td>
  1413         </tr>
  1414       </table>
  1415 </div><div class="memdoc">
  1417 <p>Distance function for integers of type int. </p>
  1418 <dl class="params"><dt>Parameters</dt><dd>
  1419   <table class="params">
  1420     <tr><td class="paramname">i1</td><td>pointer to integer one </td></tr>
  1421     <tr><td class="paramname">i2</td><td>pointer to integer two </td></tr>
  1422     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1423   </table>
  1424   </dd>
  1425 </dl>
  1426 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1428 </div>
  1429 </div>
  1430 <a id="a81fb8434b70ca11bf2c14abfa21d16a9"></a>
  1431 <h2 class="memtitle"><span class="permalink"><a href="#a81fb8434b70ca11bf2c14abfa21d16a9">&#9670;&nbsp;</a></span>ucx_dist_int16()</h2>
  1433 <div class="memitem">
  1434 <div class="memproto">
  1435       <table class="memname">
  1436         <tr>
  1437           <td class="memname">intmax_t ucx_dist_int16 </td>
  1438           <td>(</td>
  1439           <td class="paramtype">const void *&#160;</td>
  1440           <td class="paramname"><em>i1</em>, </td>
  1441         </tr>
  1442         <tr>
  1443           <td class="paramkey"></td>
  1444           <td></td>
  1445           <td class="paramtype">const void *&#160;</td>
  1446           <td class="paramname"><em>i2</em>, </td>
  1447         </tr>
  1448         <tr>
  1449           <td class="paramkey"></td>
  1450           <td></td>
  1451           <td class="paramtype">void *&#160;</td>
  1452           <td class="paramname"><em>data</em>&#160;</td>
  1453         </tr>
  1454         <tr>
  1455           <td></td>
  1456           <td>)</td>
  1457           <td></td><td></td>
  1458         </tr>
  1459       </table>
  1460 </div><div class="memdoc">
  1462 <p>Distance function for integers of type int16_t. </p>
  1463 <dl class="params"><dt>Parameters</dt><dd>
  1464   <table class="params">
  1465     <tr><td class="paramname">i1</td><td>pointer to int16_t one </td></tr>
  1466     <tr><td class="paramname">i2</td><td>pointer to int16_t two </td></tr>
  1467     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1468   </table>
  1469   </dd>
  1470 </dl>
  1471 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1473 </div>
  1474 </div>
  1475 <a id="ab4a659cc46096f0490c1dafa57726476"></a>
  1476 <h2 class="memtitle"><span class="permalink"><a href="#ab4a659cc46096f0490c1dafa57726476">&#9670;&nbsp;</a></span>ucx_dist_int32()</h2>
  1478 <div class="memitem">
  1479 <div class="memproto">
  1480       <table class="memname">
  1481         <tr>
  1482           <td class="memname">intmax_t ucx_dist_int32 </td>
  1483           <td>(</td>
  1484           <td class="paramtype">const void *&#160;</td>
  1485           <td class="paramname"><em>i1</em>, </td>
  1486         </tr>
  1487         <tr>
  1488           <td class="paramkey"></td>
  1489           <td></td>
  1490           <td class="paramtype">const void *&#160;</td>
  1491           <td class="paramname"><em>i2</em>, </td>
  1492         </tr>
  1493         <tr>
  1494           <td class="paramkey"></td>
  1495           <td></td>
  1496           <td class="paramtype">void *&#160;</td>
  1497           <td class="paramname"><em>data</em>&#160;</td>
  1498         </tr>
  1499         <tr>
  1500           <td></td>
  1501           <td>)</td>
  1502           <td></td><td></td>
  1503         </tr>
  1504       </table>
  1505 </div><div class="memdoc">
  1507 <p>Distance function for integers of type int32_t. </p>
  1508 <dl class="params"><dt>Parameters</dt><dd>
  1509   <table class="params">
  1510     <tr><td class="paramname">i1</td><td>pointer to int32_t one </td></tr>
  1511     <tr><td class="paramname">i2</td><td>pointer to int32_t two </td></tr>
  1512     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1513   </table>
  1514   </dd>
  1515 </dl>
  1516 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1518 </div>
  1519 </div>
  1520 <a id="a54e7d06585bad3a899befc4e9c13853f"></a>
  1521 <h2 class="memtitle"><span class="permalink"><a href="#a54e7d06585bad3a899befc4e9c13853f">&#9670;&nbsp;</a></span>ucx_dist_int64()</h2>
  1523 <div class="memitem">
  1524 <div class="memproto">
  1525       <table class="memname">
  1526         <tr>
  1527           <td class="memname">intmax_t ucx_dist_int64 </td>
  1528           <td>(</td>
  1529           <td class="paramtype">const void *&#160;</td>
  1530           <td class="paramname"><em>i1</em>, </td>
  1531         </tr>
  1532         <tr>
  1533           <td class="paramkey"></td>
  1534           <td></td>
  1535           <td class="paramtype">const void *&#160;</td>
  1536           <td class="paramname"><em>i2</em>, </td>
  1537         </tr>
  1538         <tr>
  1539           <td class="paramkey"></td>
  1540           <td></td>
  1541           <td class="paramtype">void *&#160;</td>
  1542           <td class="paramname"><em>data</em>&#160;</td>
  1543         </tr>
  1544         <tr>
  1545           <td></td>
  1546           <td>)</td>
  1547           <td></td><td></td>
  1548         </tr>
  1549       </table>
  1550 </div><div class="memdoc">
  1552 <p>Distance function for integers of type int64_t. </p>
  1553 <dl class="params"><dt>Parameters</dt><dd>
  1554   <table class="params">
  1555     <tr><td class="paramname">i1</td><td>pointer to int64_t one </td></tr>
  1556     <tr><td class="paramname">i2</td><td>pointer to int64_t two </td></tr>
  1557     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1558   </table>
  1559   </dd>
  1560 </dl>
  1561 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1563 </div>
  1564 </div>
  1565 <a id="a43e73d288b1553a0078bf4c98dd341f5"></a>
  1566 <h2 class="memtitle"><span class="permalink"><a href="#a43e73d288b1553a0078bf4c98dd341f5">&#9670;&nbsp;</a></span>ucx_dist_longint()</h2>
  1568 <div class="memitem">
  1569 <div class="memproto">
  1570       <table class="memname">
  1571         <tr>
  1572           <td class="memname">intmax_t ucx_dist_longint </td>
  1573           <td>(</td>
  1574           <td class="paramtype">const void *&#160;</td>
  1575           <td class="paramname"><em>i1</em>, </td>
  1576         </tr>
  1577         <tr>
  1578           <td class="paramkey"></td>
  1579           <td></td>
  1580           <td class="paramtype">const void *&#160;</td>
  1581           <td class="paramname"><em>i2</em>, </td>
  1582         </tr>
  1583         <tr>
  1584           <td class="paramkey"></td>
  1585           <td></td>
  1586           <td class="paramtype">void *&#160;</td>
  1587           <td class="paramname"><em>data</em>&#160;</td>
  1588         </tr>
  1589         <tr>
  1590           <td></td>
  1591           <td>)</td>
  1592           <td></td><td></td>
  1593         </tr>
  1594       </table>
  1595 </div><div class="memdoc">
  1597 <p>Distance function for integers of type long int. </p>
  1598 <dl class="params"><dt>Parameters</dt><dd>
  1599   <table class="params">
  1600     <tr><td class="paramname">i1</td><td>pointer to long integer one </td></tr>
  1601     <tr><td class="paramname">i2</td><td>pointer to long integer two </td></tr>
  1602     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1603   </table>
  1604   </dd>
  1605 </dl>
  1606 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1608 </div>
  1609 </div>
  1610 <a id="a306778414a2427951ea263be92368627"></a>
  1611 <h2 class="memtitle"><span class="permalink"><a href="#a306778414a2427951ea263be92368627">&#9670;&nbsp;</a></span>ucx_dist_longlong()</h2>
  1613 <div class="memitem">
  1614 <div class="memproto">
  1615       <table class="memname">
  1616         <tr>
  1617           <td class="memname">intmax_t ucx_dist_longlong </td>
  1618           <td>(</td>
  1619           <td class="paramtype">const void *&#160;</td>
  1620           <td class="paramname"><em>i1</em>, </td>
  1621         </tr>
  1622         <tr>
  1623           <td class="paramkey"></td>
  1624           <td></td>
  1625           <td class="paramtype">const void *&#160;</td>
  1626           <td class="paramname"><em>i2</em>, </td>
  1627         </tr>
  1628         <tr>
  1629           <td class="paramkey"></td>
  1630           <td></td>
  1631           <td class="paramtype">void *&#160;</td>
  1632           <td class="paramname"><em>data</em>&#160;</td>
  1633         </tr>
  1634         <tr>
  1635           <td></td>
  1636           <td>)</td>
  1637           <td></td><td></td>
  1638         </tr>
  1639       </table>
  1640 </div><div class="memdoc">
  1642 <p>Distance function for integers of type long long. </p>
  1643 <dl class="params"><dt>Parameters</dt><dd>
  1644   <table class="params">
  1645     <tr><td class="paramname">i1</td><td>pointer to long long one </td></tr>
  1646     <tr><td class="paramname">i2</td><td>pointer to long long two </td></tr>
  1647     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1648   </table>
  1649   </dd>
  1650 </dl>
  1651 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1653 </div>
  1654 </div>
  1655 <a id="a37b7d471ca1679992afc11a0deda45f4"></a>
  1656 <h2 class="memtitle"><span class="permalink"><a href="#a37b7d471ca1679992afc11a0deda45f4">&#9670;&nbsp;</a></span>ucx_dist_uint()</h2>
  1658 <div class="memitem">
  1659 <div class="memproto">
  1660       <table class="memname">
  1661         <tr>
  1662           <td class="memname">intmax_t ucx_dist_uint </td>
  1663           <td>(</td>
  1664           <td class="paramtype">const void *&#160;</td>
  1665           <td class="paramname"><em>i1</em>, </td>
  1666         </tr>
  1667         <tr>
  1668           <td class="paramkey"></td>
  1669           <td></td>
  1670           <td class="paramtype">const void *&#160;</td>
  1671           <td class="paramname"><em>i2</em>, </td>
  1672         </tr>
  1673         <tr>
  1674           <td class="paramkey"></td>
  1675           <td></td>
  1676           <td class="paramtype">void *&#160;</td>
  1677           <td class="paramname"><em>data</em>&#160;</td>
  1678         </tr>
  1679         <tr>
  1680           <td></td>
  1681           <td>)</td>
  1682           <td></td><td></td>
  1683         </tr>
  1684       </table>
  1685 </div><div class="memdoc">
  1687 <p>Distance function for integers of type unsigned int. </p>
  1688 <dl class="params"><dt>Parameters</dt><dd>
  1689   <table class="params">
  1690     <tr><td class="paramname">i1</td><td>pointer to unsigned integer one </td></tr>
  1691     <tr><td class="paramname">i2</td><td>pointer to unsigned integer two </td></tr>
  1692     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1693   </table>
  1694   </dd>
  1695 </dl>
  1696 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1698 </div>
  1699 </div>
  1700 <a id="a66e00a0703cbcde050ec922578e2f080"></a>
  1701 <h2 class="memtitle"><span class="permalink"><a href="#a66e00a0703cbcde050ec922578e2f080">&#9670;&nbsp;</a></span>ucx_dist_uint16()</h2>
  1703 <div class="memitem">
  1704 <div class="memproto">
  1705       <table class="memname">
  1706         <tr>
  1707           <td class="memname">intmax_t ucx_dist_uint16 </td>
  1708           <td>(</td>
  1709           <td class="paramtype">const void *&#160;</td>
  1710           <td class="paramname"><em>i1</em>, </td>
  1711         </tr>
  1712         <tr>
  1713           <td class="paramkey"></td>
  1714           <td></td>
  1715           <td class="paramtype">const void *&#160;</td>
  1716           <td class="paramname"><em>i2</em>, </td>
  1717         </tr>
  1718         <tr>
  1719           <td class="paramkey"></td>
  1720           <td></td>
  1721           <td class="paramtype">void *&#160;</td>
  1722           <td class="paramname"><em>data</em>&#160;</td>
  1723         </tr>
  1724         <tr>
  1725           <td></td>
  1726           <td>)</td>
  1727           <td></td><td></td>
  1728         </tr>
  1729       </table>
  1730 </div><div class="memdoc">
  1732 <p>Distance function for integers of type uint16_t. </p>
  1733 <dl class="params"><dt>Parameters</dt><dd>
  1734   <table class="params">
  1735     <tr><td class="paramname">i1</td><td>pointer to uint16_t one </td></tr>
  1736     <tr><td class="paramname">i2</td><td>pointer to uint16_t two </td></tr>
  1737     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1738   </table>
  1739   </dd>
  1740 </dl>
  1741 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1743 </div>
  1744 </div>
  1745 <a id="add2b5c5507caba59d894b84e056b079b"></a>
  1746 <h2 class="memtitle"><span class="permalink"><a href="#add2b5c5507caba59d894b84e056b079b">&#9670;&nbsp;</a></span>ucx_dist_uint32()</h2>
  1748 <div class="memitem">
  1749 <div class="memproto">
  1750       <table class="memname">
  1751         <tr>
  1752           <td class="memname">intmax_t ucx_dist_uint32 </td>
  1753           <td>(</td>
  1754           <td class="paramtype">const void *&#160;</td>
  1755           <td class="paramname"><em>i1</em>, </td>
  1756         </tr>
  1757         <tr>
  1758           <td class="paramkey"></td>
  1759           <td></td>
  1760           <td class="paramtype">const void *&#160;</td>
  1761           <td class="paramname"><em>i2</em>, </td>
  1762         </tr>
  1763         <tr>
  1764           <td class="paramkey"></td>
  1765           <td></td>
  1766           <td class="paramtype">void *&#160;</td>
  1767           <td class="paramname"><em>data</em>&#160;</td>
  1768         </tr>
  1769         <tr>
  1770           <td></td>
  1771           <td>)</td>
  1772           <td></td><td></td>
  1773         </tr>
  1774       </table>
  1775 </div><div class="memdoc">
  1777 <p>Distance function for integers of type uint32_t. </p>
  1778 <dl class="params"><dt>Parameters</dt><dd>
  1779   <table class="params">
  1780     <tr><td class="paramname">i1</td><td>pointer to uint32_t one </td></tr>
  1781     <tr><td class="paramname">i2</td><td>pointer to uint32_t two </td></tr>
  1782     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1783   </table>
  1784   </dd>
  1785 </dl>
  1786 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1788 </div>
  1789 </div>
  1790 <a id="a3ba75e2e0b2479eef2b22fb219b42da7"></a>
  1791 <h2 class="memtitle"><span class="permalink"><a href="#a3ba75e2e0b2479eef2b22fb219b42da7">&#9670;&nbsp;</a></span>ucx_dist_uint64()</h2>
  1793 <div class="memitem">
  1794 <div class="memproto">
  1795       <table class="memname">
  1796         <tr>
  1797           <td class="memname">intmax_t ucx_dist_uint64 </td>
  1798           <td>(</td>
  1799           <td class="paramtype">const void *&#160;</td>
  1800           <td class="paramname"><em>i1</em>, </td>
  1801         </tr>
  1802         <tr>
  1803           <td class="paramkey"></td>
  1804           <td></td>
  1805           <td class="paramtype">const void *&#160;</td>
  1806           <td class="paramname"><em>i2</em>, </td>
  1807         </tr>
  1808         <tr>
  1809           <td class="paramkey"></td>
  1810           <td></td>
  1811           <td class="paramtype">void *&#160;</td>
  1812           <td class="paramname"><em>data</em>&#160;</td>
  1813         </tr>
  1814         <tr>
  1815           <td></td>
  1816           <td>)</td>
  1817           <td></td><td></td>
  1818         </tr>
  1819       </table>
  1820 </div><div class="memdoc">
  1822 <p>Distance function for integers of type uint64_t. </p>
  1823 <dl class="params"><dt>Parameters</dt><dd>
  1824   <table class="params">
  1825     <tr><td class="paramname">i1</td><td>pointer to uint64_t one </td></tr>
  1826     <tr><td class="paramname">i2</td><td>pointer to uint64_t two </td></tr>
  1827     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1828   </table>
  1829   </dd>
  1830 </dl>
  1831 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1833 </div>
  1834 </div>
  1835 <a id="abb13476228d0c16bfaba08469adbae2d"></a>
  1836 <h2 class="memtitle"><span class="permalink"><a href="#abb13476228d0c16bfaba08469adbae2d">&#9670;&nbsp;</a></span>ucx_dist_ulongint()</h2>
  1838 <div class="memitem">
  1839 <div class="memproto">
  1840       <table class="memname">
  1841         <tr>
  1842           <td class="memname">intmax_t ucx_dist_ulongint </td>
  1843           <td>(</td>
  1844           <td class="paramtype">const void *&#160;</td>
  1845           <td class="paramname"><em>i1</em>, </td>
  1846         </tr>
  1847         <tr>
  1848           <td class="paramkey"></td>
  1849           <td></td>
  1850           <td class="paramtype">const void *&#160;</td>
  1851           <td class="paramname"><em>i2</em>, </td>
  1852         </tr>
  1853         <tr>
  1854           <td class="paramkey"></td>
  1855           <td></td>
  1856           <td class="paramtype">void *&#160;</td>
  1857           <td class="paramname"><em>data</em>&#160;</td>
  1858         </tr>
  1859         <tr>
  1860           <td></td>
  1861           <td>)</td>
  1862           <td></td><td></td>
  1863         </tr>
  1864       </table>
  1865 </div><div class="memdoc">
  1867 <p>Distance function for integers of type unsigned long int. </p>
  1868 <dl class="params"><dt>Parameters</dt><dd>
  1869   <table class="params">
  1870     <tr><td class="paramname">i1</td><td>pointer to unsigned long integer one </td></tr>
  1871     <tr><td class="paramname">i2</td><td>pointer to unsigned long integer two </td></tr>
  1872     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1873   </table>
  1874   </dd>
  1875 </dl>
  1876 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1878 </div>
  1879 </div>
  1880 <a id="a59a5859272cb4b43cbdd58208c41e32b"></a>
  1881 <h2 class="memtitle"><span class="permalink"><a href="#a59a5859272cb4b43cbdd58208c41e32b">&#9670;&nbsp;</a></span>ucx_dist_ulonglong()</h2>
  1883 <div class="memitem">
  1884 <div class="memproto">
  1885       <table class="memname">
  1886         <tr>
  1887           <td class="memname">intmax_t ucx_dist_ulonglong </td>
  1888           <td>(</td>
  1889           <td class="paramtype">const void *&#160;</td>
  1890           <td class="paramname"><em>i1</em>, </td>
  1891         </tr>
  1892         <tr>
  1893           <td class="paramkey"></td>
  1894           <td></td>
  1895           <td class="paramtype">const void *&#160;</td>
  1896           <td class="paramname"><em>i2</em>, </td>
  1897         </tr>
  1898         <tr>
  1899           <td class="paramkey"></td>
  1900           <td></td>
  1901           <td class="paramtype">void *&#160;</td>
  1902           <td class="paramname"><em>data</em>&#160;</td>
  1903         </tr>
  1904         <tr>
  1905           <td></td>
  1906           <td>)</td>
  1907           <td></td><td></td>
  1908         </tr>
  1909       </table>
  1910 </div><div class="memdoc">
  1912 <p>Distance function for integers of type unsigned long long. </p>
  1913 <dl class="params"><dt>Parameters</dt><dd>
  1914   <table class="params">
  1915     <tr><td class="paramname">i1</td><td>pointer to unsigned long long one </td></tr>
  1916     <tr><td class="paramname">i2</td><td>pointer to unsigned long long two </td></tr>
  1917     <tr><td class="paramname">data</td><td>omitted </td></tr>
  1918   </table>
  1919   </dd>
  1920 </dl>
  1921 <dl class="section return"><dt>Returns</dt><dd>i1 minus i2 </dd></dl>
  1923 </div>
  1924 </div>
  1925 <a id="aa0bec80e1c67f769ff5e112a7d4ce72a"></a>
  1926 <h2 class="memtitle"><span class="permalink"><a href="#aa0bec80e1c67f769ff5e112a7d4ce72a">&#9670;&nbsp;</a></span>ucx_fprintf()</h2>
  1928 <div class="memitem">
  1929 <div class="memproto">
  1930       <table class="memname">
  1931         <tr>
  1932           <td class="memname">int ucx_fprintf </td>
  1933           <td>(</td>
  1934           <td class="paramtype">void *&#160;</td>
  1935           <td class="paramname"><em>stream</em>, </td>
  1936         </tr>
  1937         <tr>
  1938           <td class="paramkey"></td>
  1939           <td></td>
  1940           <td class="paramtype"><a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>&#160;</td>
  1941           <td class="paramname"><em>wfc</em>, </td>
  1942         </tr>
  1943         <tr>
  1944           <td class="paramkey"></td>
  1945           <td></td>
  1946           <td class="paramtype">const char *&#160;</td>
  1947           <td class="paramname"><em>fmt</em>, </td>
  1948         </tr>
  1949         <tr>
  1950           <td class="paramkey"></td>
  1951           <td></td>
  1952           <td class="paramtype">&#160;</td>
  1953           <td class="paramname"><em>...</em>&#160;</td>
  1954         </tr>
  1955         <tr>
  1956           <td></td>
  1957           <td>)</td>
  1958           <td></td><td></td>
  1959         </tr>
  1960       </table>
  1961 </div><div class="memdoc">
  1963 <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>
  1964 <dl class="params"><dt>Parameters</dt><dd>
  1965   <table class="params">
  1966     <tr><td class="paramname">stream</td><td>the stream the data is written to </td></tr>
  1967     <tr><td class="paramname">wfc</td><td>the write function </td></tr>
  1968     <tr><td class="paramname">fmt</td><td>format string </td></tr>
  1969     <tr><td class="paramname">...</td><td>additional arguments </td></tr>
  1970   </table>
  1971   </dd>
  1972 </dl>
  1973 <dl class="section return"><dt>Returns</dt><dd>the total number of bytes written </dd></dl>
  1975 </div>
  1976 </div>
  1977 <a id="ab2e184e6a744941aab6b8058116baf30"></a>
  1978 <h2 class="memtitle"><span class="permalink"><a href="#ab2e184e6a744941aab6b8058116baf30">&#9670;&nbsp;</a></span>ucx_memcpy()</h2>
  1980 <div class="memitem">
  1981 <div class="memproto">
  1982       <table class="memname">
  1983         <tr>
  1984           <td class="memname">void* ucx_memcpy </td>
  1985           <td>(</td>
  1986           <td class="paramtype">const void *&#160;</td>
  1987           <td class="paramname"><em>m</em>, </td>
  1988         </tr>
  1989         <tr>
  1990           <td class="paramkey"></td>
  1991           <td></td>
  1992           <td class="paramtype">void *&#160;</td>
  1993           <td class="paramname"><em>n</em>&#160;</td>
  1994         </tr>
  1995         <tr>
  1996           <td></td>
  1997           <td>)</td>
  1998           <td></td><td></td>
  1999         </tr>
  2000       </table>
  2001 </div><div class="memdoc">
  2003 <p>Copies a memory area. </p>
  2004 <dl class="params"><dt>Parameters</dt><dd>
  2005   <table class="params">
  2006     <tr><td class="paramname">m</td><td>a pointer to the memory area </td></tr>
  2007     <tr><td class="paramname">n</td><td>a pointer to the size_t containing the size of the memory area </td></tr>
  2008   </table>
  2009   </dd>
  2010 </dl>
  2011 <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>
  2013 </div>
  2014 </div>
  2015 <a id="adeb6e8d0a53a829207cfa0a979d01fff"></a>
  2016 <h2 class="memtitle"><span class="permalink"><a href="#adeb6e8d0a53a829207cfa0a979d01fff">&#9670;&nbsp;</a></span>ucx_strcpy()</h2>
  2018 <div class="memitem">
  2019 <div class="memproto">
  2020       <table class="memname">
  2021         <tr>
  2022           <td class="memname">void* ucx_strcpy </td>
  2023           <td>(</td>
  2024           <td class="paramtype">const void *&#160;</td>
  2025           <td class="paramname"><em>s</em>, </td>
  2026         </tr>
  2027         <tr>
  2028           <td class="paramkey"></td>
  2029           <td></td>
  2030           <td class="paramtype">void *&#160;</td>
  2031           <td class="paramname"><em>data</em>&#160;</td>
  2032         </tr>
  2033         <tr>
  2034           <td></td>
  2035           <td>)</td>
  2036           <td></td><td></td>
  2037         </tr>
  2038       </table>
  2039 </div><div class="memdoc">
  2041 <p>Copies a string. </p>
  2042 <dl class="params"><dt>Parameters</dt><dd>
  2043   <table class="params">
  2044     <tr><td class="paramname">s</td><td>the string to copy </td></tr>
  2045     <tr><td class="paramname">data</td><td>omitted </td></tr>
  2046   </table>
  2047   </dd>
  2048 </dl>
  2049 <dl class="section return"><dt>Returns</dt><dd>a pointer to a copy of s1 that can be passed to free(void*) </dd></dl>
  2051 </div>
  2052 </div>
  2053 <a id="a114ee7f7da62656ffd35e2dc23394201"></a>
  2054 <h2 class="memtitle"><span class="permalink"><a href="#a114ee7f7da62656ffd35e2dc23394201">&#9670;&nbsp;</a></span>ucx_stream_bncopy()</h2>
  2056 <div class="memitem">
  2057 <div class="memproto">
  2058       <table class="memname">
  2059         <tr>
  2060           <td class="memname">size_t ucx_stream_bncopy </td>
  2061           <td>(</td>
  2062           <td class="paramtype">void *&#160;</td>
  2063           <td class="paramname"><em>src</em>, </td>
  2064         </tr>
  2065         <tr>
  2066           <td class="paramkey"></td>
  2067           <td></td>
  2068           <td class="paramtype">void *&#160;</td>
  2069           <td class="paramname"><em>dest</em>, </td>
  2070         </tr>
  2071         <tr>
  2072           <td class="paramkey"></td>
  2073           <td></td>
  2074           <td class="paramtype"><a class="el" href="ucx_8h.html#a6a67e255e460acb58f802067b3ff5fd5">read_func</a>&#160;</td>
  2075           <td class="paramname"><em>rfnc</em>, </td>
  2076         </tr>
  2077         <tr>
  2078           <td class="paramkey"></td>
  2079           <td></td>
  2080           <td class="paramtype"><a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>&#160;</td>
  2081           <td class="paramname"><em>wfnc</em>, </td>
  2082         </tr>
  2083         <tr>
  2084           <td class="paramkey"></td>
  2085           <td></td>
  2086           <td class="paramtype">char *&#160;</td>
  2087           <td class="paramname"><em>buf</em>, </td>
  2088         </tr>
  2089         <tr>
  2090           <td class="paramkey"></td>
  2091           <td></td>
  2092           <td class="paramtype">size_t&#160;</td>
  2093           <td class="paramname"><em>bufsize</em>, </td>
  2094         </tr>
  2095         <tr>
  2096           <td class="paramkey"></td>
  2097           <td></td>
  2098           <td class="paramtype">size_t&#160;</td>
  2099           <td class="paramname"><em>n</em>&#160;</td>
  2100         </tr>
  2101         <tr>
  2102           <td></td>
  2103           <td>)</td>
  2104           <td></td><td></td>
  2105         </tr>
  2106       </table>
  2107 </div><div class="memdoc">
  2109 <p>Reads data from a stream and writes it to another stream. </p>
  2110 <dl class="params"><dt>Parameters</dt><dd>
  2111   <table class="params">
  2112     <tr><td class="paramname">src</td><td>the source stream </td></tr>
  2113     <tr><td class="paramname">dest</td><td>the destination stream </td></tr>
  2114     <tr><td class="paramname">rfnc</td><td>the read function </td></tr>
  2115     <tr><td class="paramname">wfnc</td><td>the write function </td></tr>
  2116     <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>
  2117     <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>
  2118     <tr><td class="paramname">n</td><td>the maximum number of bytes that shall be copied </td></tr>
  2119   </table>
  2120   </dd>
  2121 </dl>
  2122 <dl class="section return"><dt>Returns</dt><dd>the total number of bytes copied </dd></dl>
  2124 </div>
  2125 </div>
  2126 <a id="a3ea1dfb856c741f3e8ec6bfdc9ad427e"></a>
  2127 <h2 class="memtitle"><span class="permalink"><a href="#a3ea1dfb856c741f3e8ec6bfdc9ad427e">&#9670;&nbsp;</a></span>ucx_vasprintf()</h2>
  2129 <div class="memitem">
  2130 <div class="memproto">
  2131       <table class="memname">
  2132         <tr>
  2133           <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> ucx_vasprintf </td>
  2134           <td>(</td>
  2135           <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
  2136           <td class="paramname"><em>allocator</em>, </td>
  2137         </tr>
  2138         <tr>
  2139           <td class="paramkey"></td>
  2140           <td></td>
  2141           <td class="paramtype">const char *&#160;</td>
  2142           <td class="paramname"><em>fmt</em>, </td>
  2143         </tr>
  2144         <tr>
  2145           <td class="paramkey"></td>
  2146           <td></td>
  2147           <td class="paramtype">va_list&#160;</td>
  2148           <td class="paramname"><em>ap</em>&#160;</td>
  2149         </tr>
  2150         <tr>
  2151           <td></td>
  2152           <td>)</td>
  2153           <td></td><td></td>
  2154         </tr>
  2155       </table>
  2156 </div><div class="memdoc">
  2158 <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>
  2159 <dl class="params"><dt>Parameters</dt><dd>
  2160   <table class="params">
  2161     <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>
  2162     <tr><td class="paramname">fmt</td><td>format string </td></tr>
  2163     <tr><td class="paramname">ap</td><td>argument list </td></tr>
  2164   </table>
  2165   </dd>
  2166 </dl>
  2167 <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>
  2168 <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>
  2170 </div>
  2171 </div>
  2172 <a id="a4907967beb92c3ae351dd239abbb6927"></a>
  2173 <h2 class="memtitle"><span class="permalink"><a href="#a4907967beb92c3ae351dd239abbb6927">&#9670;&nbsp;</a></span>ucx_vfprintf()</h2>
  2175 <div class="memitem">
  2176 <div class="memproto">
  2177       <table class="memname">
  2178         <tr>
  2179           <td class="memname">int ucx_vfprintf </td>
  2180           <td>(</td>
  2181           <td class="paramtype">void *&#160;</td>
  2182           <td class="paramname"><em>stream</em>, </td>
  2183         </tr>
  2184         <tr>
  2185           <td class="paramkey"></td>
  2186           <td></td>
  2187           <td class="paramtype"><a class="el" href="ucx_8h.html#a989b3f0fa4d307d278378fde435641ed">write_func</a>&#160;</td>
  2188           <td class="paramname"><em>wfc</em>, </td>
  2189         </tr>
  2190         <tr>
  2191           <td class="paramkey"></td>
  2192           <td></td>
  2193           <td class="paramtype">const char *&#160;</td>
  2194           <td class="paramname"><em>fmt</em>, </td>
  2195         </tr>
  2196         <tr>
  2197           <td class="paramkey"></td>
  2198           <td></td>
  2199           <td class="paramtype">va_list&#160;</td>
  2200           <td class="paramname"><em>ap</em>&#160;</td>
  2201         </tr>
  2202         <tr>
  2203           <td></td>
  2204           <td>)</td>
  2205           <td></td><td></td>
  2206         </tr>
  2207       </table>
  2208 </div><div class="memdoc">
  2210 <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>
  2211 <dl class="params"><dt>Parameters</dt><dd>
  2212   <table class="params">
  2213     <tr><td class="paramname">stream</td><td>the stream the data is written to </td></tr>
  2214     <tr><td class="paramname">wfc</td><td>the write function </td></tr>
  2215     <tr><td class="paramname">fmt</td><td>format string </td></tr>
  2216     <tr><td class="paramname">ap</td><td>argument list </td></tr>
  2217   </table>
  2218   </dd>
  2219 </dl>
  2220 <dl class="section return"><dt>Returns</dt><dd>the total number of bytes written </dd></dl>
  2221 <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>
  2223 </div>
  2224 </div>
  2225 </div><!-- contents -->
  2226 <!-- start footer part -->
  2227 <hr class="footer"/><address class="footer"><small>
  2228 Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
  2229 <img class="footer" src="doxygen.png" alt="doxygen"/>
  2230 </a> 1.8.13
  2231 </small></address>
  2232 </body>
  2233 </html>

mercurial