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>
53
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>
60
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> |
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">
74
75 <p>Compare, copy and printf functions.
76 <a href="#details">More...</a></p>
77 <div class="textblock"><code>#include "<a class="el" href="ucx_8h_source.html">ucx.h</a>"</code><br />
78 <code>#include "<a class="el" href="string_8h_source.html">string.h</a>"</code><br />
79 <code>#include "<a class="el" href="allocator_8h_source.html">allocator.h</a>"</code><br />
80 <code>#include <inttypes.h></code><br />
81 <code>#include <stdarg.h></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 </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#a23efd74fa5f701d4cf26ccbfd138a439">UCX_STREAM_COPY_BUFSIZE</a>   4096</td></tr>
89 <tr class="memdesc:a23efd74fa5f701d4cf26ccbfd138a439"><td class="mdescLeft"> </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"> </td></tr>
91 <tr class="memitem:a41ca1344f781c0d3bf7a414a6e811392"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr>
94 <tr class="memitem:add13f39a8af440b4f7e6f74339eaada2"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr>
97 <tr class="memitem:a6003a1750a66234169bd1f8cc84b297b"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </td></tr>
100 <tr class="memitem:af9f333b66ecd639c347c7235f4992e2e"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="utils_8h.html#af9f333b66ecd639c347c7235f4992e2e">ucx_sprintf</a>(...)   <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"> </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"> </td></tr>
103 <tr class="memitem:a9d7d65a420f026fcb6982803d5120519"><td class="memItemLeft" align="right" valign="top">#define </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"> </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"> </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 * </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"> </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"> </td></tr>
112 <tr class="memitem:ab2e184e6a744941aab6b8058116baf30"><td class="memItemLeft" align="right" valign="top">void * </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"> </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"> </td></tr>
115 <tr class="memitem:a114ee7f7da62656ffd35e2dc23394201"><td class="memItemLeft" align="right" valign="top">size_t </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"> </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"> </td></tr>
118 <tr class="memitem:aa6a37b9d172b6a5b2803d152f9e1b258"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
121 <tr class="memitem:ac6b354a878f551a3a5b20a167db3f308"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
124 <tr class="memitem:adee0739589166d272f8cb7c23aabf8ba"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
127 <tr class="memitem:a8ce7e11e6b3deafe89a32a091fde7f16"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
130 <tr class="memitem:aeb57a2b9a6aaa0460c7a6bec29accf2c"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
133 <tr class="memitem:a366b57def20f86a41eaedf575eea5375"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
136 <tr class="memitem:aa29e6e559946375e34113e34e0b0bd0d"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
139 <tr class="memitem:a858b2ac443fb202643b71f6a7e9218dd"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
142 <tr class="memitem:a54701aea6a89fed1402dfb0bf56bc7f6"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
145 <tr class="memitem:abd83a5da91c3dd026a6931bd80c12f1e"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
148 <tr class="memitem:a3f3cbae2594d6f722bae29acb0408a24"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
151 <tr class="memitem:a6acfc359421f21f9a042a654ff7faac5"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
154 <tr class="memitem:acde5366437e886a459b7468f7a9e11f0"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
157 <tr class="memitem:a5879d1722330355914d8c9146fa549d3"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
160 <tr class="memitem:a1572a78b5b42f7151a5b2a5a7283d62d"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
163 <tr class="memitem:a4ab6753739d56c09cdf6079fdcabf7c6"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
166 <tr class="memitem:a43e73d288b1553a0078bf4c98dd341f5"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
169 <tr class="memitem:a306778414a2427951ea263be92368627"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
172 <tr class="memitem:a81fb8434b70ca11bf2c14abfa21d16a9"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
175 <tr class="memitem:ab4a659cc46096f0490c1dafa57726476"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
178 <tr class="memitem:a54e7d06585bad3a899befc4e9c13853f"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
181 <tr class="memitem:a37b7d471ca1679992afc11a0deda45f4"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
184 <tr class="memitem:abb13476228d0c16bfaba08469adbae2d"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
187 <tr class="memitem:a59a5859272cb4b43cbdd58208c41e32b"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
190 <tr class="memitem:a66e00a0703cbcde050ec922578e2f080"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
193 <tr class="memitem:add2b5c5507caba59d894b84e056b079b"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
196 <tr class="memitem:a3ba75e2e0b2479eef2b22fb219b42da7"><td class="memItemLeft" align="right" valign="top">intmax_t </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"> </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"> </td></tr>
199 <tr class="memitem:ad1196b561bcdad76c393885819769a97"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
202 <tr class="memitem:ab804b7c27d0bfcd7bf3a3583140825b6"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
205 <tr class="memitem:aa174d539de3ea59be4f9640f17ce53d8"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
208 <tr class="memitem:aff7d2bcded71196831a8c0664333f8e7"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
211 <tr class="memitem:aa0bec80e1c67f769ff5e112a7d4ce72a"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
214 <tr class="memitem:a4907967beb92c3ae351dd239abbb6927"><td class="memItemLeft" align="right" valign="top">int </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"> </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"> </td></tr>
217 <tr class="memitem:a9f9cf0e89ffdc256ecb35429907f51f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a> </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"> </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"> </td></tr>
220 <tr class="memitem:a3ea1dfb856c741f3e8ec6bfdc9ad427e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a> </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"> </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"> </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">◆ </a></span>ucx_bprintf</h2>
232
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"> </td>
240 <td class="paramname">buffer, </td>
241 </tr>
242 <tr>
243 <td class="paramkey"></td>
244 <td></td>
245 <td class="paramtype"> </td>
246 <td class="paramname"><em>...</em> </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>
270
271 </div>
272 </div>
273 <a id="af9f333b66ecd639c347c7235f4992e2e"></a>
274 <h2 class="memtitle"><span class="permalink"><a href="#af9f333b66ecd639c347c7235f4992e2e">◆ </a></span>ucx_sprintf</h2>
275
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"> </td>
283 <td class="paramname"><em>...</em></td><td>)</td>
284 <td>   <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">
288
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>
290
291 </div>
292 </div>
293 <a id="a6003a1750a66234169bd1f8cc84b297b"></a>
294 <h2 class="memtitle"><span class="permalink"><a href="#a6003a1750a66234169bd1f8cc84b297b">◆ </a></span>ucx_stream_bcopy</h2>
295
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"> </td>
303 <td class="paramname">src, </td>
304 </tr>
305 <tr>
306 <td class="paramkey"></td>
307 <td></td>
308 <td class="paramtype"> </td>
309 <td class="paramname">dest, </td>
310 </tr>
311 <tr>
312 <td class="paramkey"></td>
313 <td></td>
314 <td class="paramtype"> </td>
315 <td class="paramname">rfnc, </td>
316 </tr>
317 <tr>
318 <td class="paramkey"></td>
319 <td></td>
320 <td class="paramtype"> </td>
321 <td class="paramname">wfnc, </td>
322 </tr>
323 <tr>
324 <td class="paramkey"></td>
325 <td></td>
326 <td class="paramtype"> </td>
327 <td class="paramname">buf, </td>
328 </tr>
329 <tr>
330 <td class="paramkey"></td>
331 <td></td>
332 <td class="paramtype"> </td>
333 <td class="paramname">bufsize </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>
359
360 </div>
361 </div>
362 <a id="a41ca1344f781c0d3bf7a414a6e811392"></a>
363 <h2 class="memtitle"><span class="permalink"><a href="#a41ca1344f781c0d3bf7a414a6e811392">◆ </a></span>ucx_stream_copy</h2>
364
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"> </td>
372 <td class="paramname">src, </td>
373 </tr>
374 <tr>
375 <td class="paramkey"></td>
376 <td></td>
377 <td class="paramtype"> </td>
378 <td class="paramname">dest, </td>
379 </tr>
380 <tr>
381 <td class="paramkey"></td>
382 <td></td>
383 <td class="paramtype"> </td>
384 <td class="paramname">rfnc, </td>
385 </tr>
386 <tr>
387 <td class="paramkey"></td>
388 <td></td>
389 <td class="paramtype"> </td>
390 <td class="paramname">wfnc </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>
416
417 </div>
418 </div>
419 <a id="add13f39a8af440b4f7e6f74339eaada2"></a>
420 <h2 class="memtitle"><span class="permalink"><a href="#add13f39a8af440b4f7e6f74339eaada2">◆ </a></span>ucx_stream_ncopy</h2>
421
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"> </td>
429 <td class="paramname">src, </td>
430 </tr>
431 <tr>
432 <td class="paramkey"></td>
433 <td></td>
434 <td class="paramtype"> </td>
435 <td class="paramname">dest, </td>
436 </tr>
437 <tr>
438 <td class="paramkey"></td>
439 <td></td>
440 <td class="paramtype"> </td>
441 <td class="paramname">rfnc, </td>
442 </tr>
443 <tr>
444 <td class="paramkey"></td>
445 <td></td>
446 <td class="paramtype"> </td>
447 <td class="paramname">wfnc, </td>
448 </tr>
449 <tr>
450 <td class="paramkey"></td>
451 <td></td>
452 <td class="paramtype"> </td>
453 <td class="paramname">n </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>
479
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">◆ </a></span>ucx_asprintf()</h2>
485
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> * </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 * </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"> </td>
505 <td class="paramname"><em>...</em> </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">
514
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>
527
528 </div>
529 </div>
530 <a id="ab804b7c27d0bfcd7bf3a3583140825b6"></a>
531 <h2 class="memtitle"><span class="permalink"><a href="#ab804b7c27d0bfcd7bf3a3583140825b6">◆ </a></span>ucx_cmp_double()</h2>
532
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 * </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 * </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 * </td>
552 <td class="paramname"><em>data</em> </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">
561
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>
572
573 </div>
574 </div>
575 <a id="ad1196b561bcdad76c393885819769a97"></a>
576 <h2 class="memtitle"><span class="permalink"><a href="#ad1196b561bcdad76c393885819769a97">◆ </a></span>ucx_cmp_float()</h2>
577
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 * </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 * </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 * </td>
597 <td class="paramname"><em>data</em> </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">
606
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>
617
618 </div>
619 </div>
620 <a id="a8ce7e11e6b3deafe89a32a091fde7f16"></a>
621 <h2 class="memtitle"><span class="permalink"><a href="#a8ce7e11e6b3deafe89a32a091fde7f16">◆ </a></span>ucx_cmp_int()</h2>
622
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 * </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 * </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 * </td>
642 <td class="paramname"><em>data</em> </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">
651
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>
662
663 </div>
664 </div>
665 <a id="aa29e6e559946375e34113e34e0b0bd0d"></a>
666 <h2 class="memtitle"><span class="permalink"><a href="#aa29e6e559946375e34113e34e0b0bd0d">◆ </a></span>ucx_cmp_int16()</h2>
667
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 * </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 * </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 * </td>
687 <td class="paramname"><em>data</em> </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">
696
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>
707
708 </div>
709 </div>
710 <a id="a858b2ac443fb202643b71f6a7e9218dd"></a>
711 <h2 class="memtitle"><span class="permalink"><a href="#a858b2ac443fb202643b71f6a7e9218dd">◆ </a></span>ucx_cmp_int32()</h2>
712
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 * </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 * </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 * </td>
732 <td class="paramname"><em>data</em> </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">
741
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>
752
753 </div>
754 </div>
755 <a id="a54701aea6a89fed1402dfb0bf56bc7f6"></a>
756 <h2 class="memtitle"><span class="permalink"><a href="#a54701aea6a89fed1402dfb0bf56bc7f6">◆ </a></span>ucx_cmp_int64()</h2>
757
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 * </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 * </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 * </td>
777 <td class="paramname"><em>data</em> </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">
786
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>
797
798 </div>
799 </div>
800 <a id="aeb57a2b9a6aaa0460c7a6bec29accf2c"></a>
801 <h2 class="memtitle"><span class="permalink"><a href="#aeb57a2b9a6aaa0460c7a6bec29accf2c">◆ </a></span>ucx_cmp_longint()</h2>
802
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 * </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 * </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 * </td>
822 <td class="paramname"><em>data</em> </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">
831
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>
842
843 </div>
844 </div>
845 <a id="a366b57def20f86a41eaedf575eea5375"></a>
846 <h2 class="memtitle"><span class="permalink"><a href="#a366b57def20f86a41eaedf575eea5375">◆ </a></span>ucx_cmp_longlong()</h2>
847
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 * </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 * </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 * </td>
867 <td class="paramname"><em>data</em> </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">
876
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>
887
888 </div>
889 </div>
890 <a id="aff7d2bcded71196831a8c0664333f8e7"></a>
891 <h2 class="memtitle"><span class="permalink"><a href="#aff7d2bcded71196831a8c0664333f8e7">◆ </a></span>ucx_cmp_mem()</h2>
892
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 * </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 * </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 * </td>
912 <td class="paramname"><em>n</em> </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">
921
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>
932
933 </div>
934 </div>
935 <a id="aa174d539de3ea59be4f9640f17ce53d8"></a>
936 <h2 class="memtitle"><span class="permalink"><a href="#aa174d539de3ea59be4f9640f17ce53d8">◆ </a></span>ucx_cmp_ptr()</h2>
937
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 * </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 * </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 * </td>
957 <td class="paramname"><em>data</em> </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">
966
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>
977
978 </div>
979 </div>
980 <a id="adee0739589166d272f8cb7c23aabf8ba"></a>
981 <h2 class="memtitle"><span class="permalink"><a href="#adee0739589166d272f8cb7c23aabf8ba">◆ </a></span>ucx_cmp_sstr()</h2>
982
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 * </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 * </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 * </td>
1002 <td class="paramname"><em>data</em> </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">
1011
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>
1022
1023 </div>
1024 </div>
1025 <a id="aa6a37b9d172b6a5b2803d152f9e1b258"></a>
1026 <h2 class="memtitle"><span class="permalink"><a href="#aa6a37b9d172b6a5b2803d152f9e1b258">◆ </a></span>ucx_cmp_str()</h2>
1027
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 * </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 * </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 * </td>
1047 <td class="paramname"><em>data</em> </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">
1056
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>
1067
1068 </div>
1069 </div>
1070 <a id="ac6b354a878f551a3a5b20a167db3f308"></a>
1071 <h2 class="memtitle"><span class="permalink"><a href="#ac6b354a878f551a3a5b20a167db3f308">◆ </a></span>ucx_cmp_strn()</h2>
1072
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 * </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 * </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 * </td>
1092 <td class="paramname"><em>n</em> </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">
1101
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>
1112
1113 </div>
1114 </div>
1115 <a id="abd83a5da91c3dd026a6931bd80c12f1e"></a>
1116 <h2 class="memtitle"><span class="permalink"><a href="#abd83a5da91c3dd026a6931bd80c12f1e">◆ </a></span>ucx_cmp_uint()</h2>
1117
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 * </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 * </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 * </td>
1137 <td class="paramname"><em>data</em> </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">
1146
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>
1157
1158 </div>
1159 </div>
1160 <a id="acde5366437e886a459b7468f7a9e11f0"></a>
1161 <h2 class="memtitle"><span class="permalink"><a href="#acde5366437e886a459b7468f7a9e11f0">◆ </a></span>ucx_cmp_uint16()</h2>
1162
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 * </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 * </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 * </td>
1182 <td class="paramname"><em>data</em> </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">
1191
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>
1202
1203 </div>
1204 </div>
1205 <a id="a5879d1722330355914d8c9146fa549d3"></a>
1206 <h2 class="memtitle"><span class="permalink"><a href="#a5879d1722330355914d8c9146fa549d3">◆ </a></span>ucx_cmp_uint32()</h2>
1207
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 * </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 * </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 * </td>
1227 <td class="paramname"><em>data</em> </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">
1236
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>
1247
1248 </div>
1249 </div>
1250 <a id="a1572a78b5b42f7151a5b2a5a7283d62d"></a>
1251 <h2 class="memtitle"><span class="permalink"><a href="#a1572a78b5b42f7151a5b2a5a7283d62d">◆ </a></span>ucx_cmp_uint64()</h2>
1252
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 * </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 * </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 * </td>
1272 <td class="paramname"><em>data</em> </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">
1281
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>
1292
1293 </div>
1294 </div>
1295 <a id="a3f3cbae2594d6f722bae29acb0408a24"></a>
1296 <h2 class="memtitle"><span class="permalink"><a href="#a3f3cbae2594d6f722bae29acb0408a24">◆ </a></span>ucx_cmp_ulongint()</h2>
1297
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 * </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 * </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 * </td>
1317 <td class="paramname"><em>data</em> </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">
1326
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>
1337
1338 </div>
1339 </div>
1340 <a id="a6acfc359421f21f9a042a654ff7faac5"></a>
1341 <h2 class="memtitle"><span class="permalink"><a href="#a6acfc359421f21f9a042a654ff7faac5">◆ </a></span>ucx_cmp_ulonglong()</h2>
1342
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 * </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 * </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 * </td>
1362 <td class="paramname"><em>data</em> </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">
1371
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>
1382
1383 </div>
1384 </div>
1385 <a id="a4ab6753739d56c09cdf6079fdcabf7c6"></a>
1386 <h2 class="memtitle"><span class="permalink"><a href="#a4ab6753739d56c09cdf6079fdcabf7c6">◆ </a></span>ucx_dist_int()</h2>
1387
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 * </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 * </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 * </td>
1407 <td class="paramname"><em>data</em> </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">
1416
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>
1427
1428 </div>
1429 </div>
1430 <a id="a81fb8434b70ca11bf2c14abfa21d16a9"></a>
1431 <h2 class="memtitle"><span class="permalink"><a href="#a81fb8434b70ca11bf2c14abfa21d16a9">◆ </a></span>ucx_dist_int16()</h2>
1432
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 * </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 * </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 * </td>
1452 <td class="paramname"><em>data</em> </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">
1461
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>
1472
1473 </div>
1474 </div>
1475 <a id="ab4a659cc46096f0490c1dafa57726476"></a>
1476 <h2 class="memtitle"><span class="permalink"><a href="#ab4a659cc46096f0490c1dafa57726476">◆ </a></span>ucx_dist_int32()</h2>
1477
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 * </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 * </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 * </td>
1497 <td class="paramname"><em>data</em> </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">
1506
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>
1517
1518 </div>
1519 </div>
1520 <a id="a54e7d06585bad3a899befc4e9c13853f"></a>
1521 <h2 class="memtitle"><span class="permalink"><a href="#a54e7d06585bad3a899befc4e9c13853f">◆ </a></span>ucx_dist_int64()</h2>
1522
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 * </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 * </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 * </td>
1542 <td class="paramname"><em>data</em> </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">
1551
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>
1562
1563 </div>
1564 </div>
1565 <a id="a43e73d288b1553a0078bf4c98dd341f5"></a>
1566 <h2 class="memtitle"><span class="permalink"><a href="#a43e73d288b1553a0078bf4c98dd341f5">◆ </a></span>ucx_dist_longint()</h2>
1567
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 * </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 * </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 * </td>
1587 <td class="paramname"><em>data</em> </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">
1596
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>
1607
1608 </div>
1609 </div>
1610 <a id="a306778414a2427951ea263be92368627"></a>
1611 <h2 class="memtitle"><span class="permalink"><a href="#a306778414a2427951ea263be92368627">◆ </a></span>ucx_dist_longlong()</h2>
1612
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 * </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 * </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 * </td>
1632 <td class="paramname"><em>data</em> </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">
1641
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>
1652
1653 </div>
1654 </div>
1655 <a id="a37b7d471ca1679992afc11a0deda45f4"></a>
1656 <h2 class="memtitle"><span class="permalink"><a href="#a37b7d471ca1679992afc11a0deda45f4">◆ </a></span>ucx_dist_uint()</h2>
1657
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 * </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 * </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 * </td>
1677 <td class="paramname"><em>data</em> </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">
1686
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>
1697
1698 </div>
1699 </div>
1700 <a id="a66e00a0703cbcde050ec922578e2f080"></a>
1701 <h2 class="memtitle"><span class="permalink"><a href="#a66e00a0703cbcde050ec922578e2f080">◆ </a></span>ucx_dist_uint16()</h2>
1702
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 * </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 * </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 * </td>
1722 <td class="paramname"><em>data</em> </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">
1731
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>
1742
1743 </div>
1744 </div>
1745 <a id="add2b5c5507caba59d894b84e056b079b"></a>
1746 <h2 class="memtitle"><span class="permalink"><a href="#add2b5c5507caba59d894b84e056b079b">◆ </a></span>ucx_dist_uint32()</h2>
1747
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 * </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 * </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 * </td>
1767 <td class="paramname"><em>data</em> </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">
1776
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>
1787
1788 </div>
1789 </div>
1790 <a id="a3ba75e2e0b2479eef2b22fb219b42da7"></a>
1791 <h2 class="memtitle"><span class="permalink"><a href="#a3ba75e2e0b2479eef2b22fb219b42da7">◆ </a></span>ucx_dist_uint64()</h2>
1792
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 * </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 * </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 * </td>
1812 <td class="paramname"><em>data</em> </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">
1821
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>
1832
1833 </div>
1834 </div>
1835 <a id="abb13476228d0c16bfaba08469adbae2d"></a>
1836 <h2 class="memtitle"><span class="permalink"><a href="#abb13476228d0c16bfaba08469adbae2d">◆ </a></span>ucx_dist_ulongint()</h2>
1837
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 * </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 * </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 * </td>
1857 <td class="paramname"><em>data</em> </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">
1866
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>
1877
1878 </div>
1879 </div>
1880 <a id="a59a5859272cb4b43cbdd58208c41e32b"></a>
1881 <h2 class="memtitle"><span class="permalink"><a href="#a59a5859272cb4b43cbdd58208c41e32b">◆ </a></span>ucx_dist_ulonglong()</h2>
1882
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 * </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 * </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 * </td>
1902 <td class="paramname"><em>data</em> </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">
1911
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>
1922
1923 </div>
1924 </div>
1925 <a id="aa0bec80e1c67f769ff5e112a7d4ce72a"></a>
1926 <h2 class="memtitle"><span class="permalink"><a href="#aa0bec80e1c67f769ff5e112a7d4ce72a">◆ </a></span>ucx_fprintf()</h2>
1927
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 * </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> </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 * </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"> </td>
1953 <td class="paramname"><em>...</em> </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">
1962
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>
1974
1975 </div>
1976 </div>
1977 <a id="ab2e184e6a744941aab6b8058116baf30"></a>
1978 <h2 class="memtitle"><span class="permalink"><a href="#ab2e184e6a744941aab6b8058116baf30">◆ </a></span>ucx_memcpy()</h2>
1979
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 * </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 * </td>
1993 <td class="paramname"><em>n</em> </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">
2002
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>
2012
2013 </div>
2014 </div>
2015 <a id="adeb6e8d0a53a829207cfa0a979d01fff"></a>
2016 <h2 class="memtitle"><span class="permalink"><a href="#adeb6e8d0a53a829207cfa0a979d01fff">◆ </a></span>ucx_strcpy()</h2>
2017
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 * </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 * </td>
2031 <td class="paramname"><em>data</em> </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">
2040
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>
2050
2051 </div>
2052 </div>
2053 <a id="a114ee7f7da62656ffd35e2dc23394201"></a>
2054 <h2 class="memtitle"><span class="permalink"><a href="#a114ee7f7da62656ffd35e2dc23394201">◆ </a></span>ucx_stream_bncopy()</h2>
2055
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 * </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 * </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> </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> </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 * </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 </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 </td>
2099 <td class="paramname"><em>n</em> </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">
2108
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>
2123
2124 </div>
2125 </div>
2126 <a id="a3ea1dfb856c741f3e8ec6bfdc9ad427e"></a>
2127 <h2 class="memtitle"><span class="permalink"><a href="#a3ea1dfb856c741f3e8ec6bfdc9ad427e">◆ </a></span>ucx_vasprintf()</h2>
2128
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> * </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 * </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 </td>
2148 <td class="paramname"><em>ap</em> </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">
2157
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>
2169
2170 </div>
2171 </div>
2172 <a id="a4907967beb92c3ae351dd239abbb6927"></a>
2173 <h2 class="memtitle"><span class="permalink"><a href="#a4907967beb92c3ae351dd239abbb6927">◆ </a></span>ucx_vfprintf()</h2>
2174
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 * </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> </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 * </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 </td>
2200 <td class="paramname"><em>ap</em> </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">
2209
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>
2222
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  <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>
2234