Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1d49b8f9ae104bfd1869bc35e6bbf50d > files > 194

pcsc-lite-doc-1.7.2-1.fc15.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>pcsc-lite: simclist.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">pcsc-lite&#160;<span id="projectnumber">1.7.2</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_7a4553ee0c3b13d0e595a5d1659110a6.html">src</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>simclist.h</h1>  </div>
</div>
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (c) 2007,2008 Mij &lt;mij@bitchx.it&gt;</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Permission to use, copy, modify, and distribute this software for any</span>
<a name="l00005"></a>00005 <span class="comment"> * purpose with or without fee is hereby granted, provided that the above</span>
<a name="l00006"></a>00006 <span class="comment"> * copyright notice and this permission notice appear in all copies.</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot; AND THE AUTHOR DISCLAIMS ALL WARRANTIES</span>
<a name="l00009"></a>00009 <span class="comment"> * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF</span>
<a name="l00010"></a>00010 <span class="comment"> * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR</span>
<a name="l00011"></a>00011 <span class="comment"> * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES</span>
<a name="l00012"></a>00012 <span class="comment"> * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN</span>
<a name="l00013"></a>00013 <span class="comment"> * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF</span>
<a name="l00014"></a>00014 <span class="comment"> * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</span>
<a name="l00015"></a>00015 <span class="comment"> */</span>
<a name="l00016"></a>00016 
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="comment">/*</span>
<a name="l00019"></a>00019 <span class="comment"> * SimCList library. See http://mij.oltrelinux.com/devel/simclist</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 
<a name="l00023"></a>00023 <span class="preprocessor">#ifndef SIMCLIST_H</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#define SIMCLIST_H</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00028"></a>00028 <span class="preprocessor">#endif</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span>
<a name="l00030"></a>00030 <span class="preprocessor">#include &lt;inttypes.h&gt;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &lt;errno.h&gt;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
<a name="l00033"></a>00033 
<a name="l00034"></a>00034 <span class="comment">/* Be friend of both C90 and C99 compilers */</span>
<a name="l00035"></a>00035 <span class="preprocessor">#if defined(__STDC_VERSION__) &amp;&amp; __STDC_VERSION__ &gt;= 199901L</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span>    <span class="comment">/* &quot;inline&quot; and &quot;restrict&quot; are keywords */</span>
<a name="l00037"></a>00037 <span class="preprocessor">#else</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#   define inline           </span><span class="comment">/* inline */</span>
<a name="l00039"></a>00039 <span class="preprocessor">#   define restrict         </span><span class="comment">/* restrict */</span>
<a name="l00040"></a>00040 <span class="preprocessor">#endif</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span>
<a name="l00042"></a>00042 
<a name="l00048"></a>00048 <span class="keyword">typedef</span> int32_t list_hash_t;
<a name="l00049"></a>00049 
<a name="l00050"></a>00050 <span class="preprocessor">#ifndef SIMCLIST_NO_DUMPRESTORE</span>
<a name="l00051"></a><a class="code" href="structlist__dump__info__t.html">00051</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00052"></a>00052     uint16_t version;       <span class="comment">/* dump version */</span>
<a name="l00053"></a>00053     int64_t timestamp;      <span class="comment">/* when the list has been dumped, microseconds from UNIX epoch */</span>
<a name="l00054"></a>00054     uint32_t list_size;
<a name="l00055"></a>00055     uint32_t list_numels;
<a name="l00056"></a>00056     list_hash_t list_hash;       <span class="comment">/* hash of the list when dumped, or 0 if invalid */</span>
<a name="l00057"></a>00057     uint32_t dumpsize;
<a name="l00058"></a>00058     <span class="keywordtype">int</span> consistent;         <span class="comment">/* 1 if the dump is verified complete/consistent; 0 otherwise */</span>
<a name="l00059"></a>00059 } <a class="code" href="structlist__dump__info__t.html">list_dump_info_t</a>;
<a name="l00060"></a>00060 <span class="preprocessor">#endif</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00071"></a>00071 <span class="keyword">typedef</span> int (*element_comparator)(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00072"></a>00072 
<a name="l00084"></a>00084 <span class="keyword">typedef</span> int (*element_seeker)(<span class="keyword">const</span> <span class="keywordtype">void</span> *el, <span class="keyword">const</span> <span class="keywordtype">void</span> *indicator);
<a name="l00085"></a>00085 
<a name="l00095"></a>00095 <span class="keyword">typedef</span> size_t (*element_meter)(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00096"></a>00096 
<a name="l00106"></a>00106 <span class="keyword">typedef</span> list_hash_t (*element_hash_computer)(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00107"></a>00107 
<a name="l00126"></a>00126 <span class="keyword">typedef</span> <span class="keywordtype">void</span> *(*element_serializer)(<span class="keyword">const</span> <span class="keywordtype">void</span> *restrict el, uint32_t *restrict serializ_len);
<a name="l00127"></a>00127 
<a name="l00143"></a>00143 <span class="keyword">typedef</span> <span class="keywordtype">void</span> *(*element_unserializer)(<span class="keyword">const</span> <span class="keywordtype">void</span> *restrict data, uint32_t *restrict data_len);
<a name="l00144"></a>00144 
<a name="l00145"></a>00145 <span class="comment">/* [private-use] list entry -- olds actual user datum */</span>
<a name="l00146"></a><a class="code" href="structlist__entry__s.html">00146</a> <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> {
<a name="l00147"></a>00147     <span class="keywordtype">void</span> *data;
<a name="l00148"></a>00148 
<a name="l00149"></a>00149     <span class="comment">/* doubly-linked list service references */</span>
<a name="l00150"></a>00150     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> *next;
<a name="l00151"></a>00151     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> *prev;
<a name="l00152"></a>00152 };
<a name="l00153"></a>00153 
<a name="l00154"></a>00154 <span class="comment">/* [private-use] list attributes */</span>
<a name="l00155"></a><a class="code" href="structlist__attributes__s.html">00155</a> <span class="keyword">struct </span><a class="code" href="structlist__attributes__s.html">list_attributes_s</a> {
<a name="l00156"></a>00156     <span class="comment">/* user-set routine for comparing list elements */</span>
<a name="l00157"></a>00157     element_comparator comparator;
<a name="l00158"></a>00158     <span class="comment">/* user-set routing for seeking elements */</span>
<a name="l00159"></a>00159     element_seeker seeker;
<a name="l00160"></a>00160     <span class="comment">/* user-set routine for determining the length of an element */</span>
<a name="l00161"></a>00161     element_meter meter;
<a name="l00162"></a>00162     <span class="keywordtype">int</span> copy_data;
<a name="l00163"></a>00163     <span class="comment">/* user-set routine for computing the hash of an element */</span>
<a name="l00164"></a>00164     element_hash_computer hasher;
<a name="l00165"></a>00165     <span class="comment">/* user-set routine for serializing an element */</span>
<a name="l00166"></a>00166     element_serializer serializer;
<a name="l00167"></a>00167     <span class="comment">/* user-set routine for unserializing an element */</span>
<a name="l00168"></a>00168     element_unserializer unserializer;
<a name="l00169"></a>00169 };
<a name="l00170"></a>00170 
<a name="l00172"></a><a class="code" href="structlist__t.html">00172</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00173"></a>00173     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> *head_sentinel;
<a name="l00174"></a>00174     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> *tail_sentinel;
<a name="l00175"></a>00175     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> *mid;
<a name="l00176"></a>00176 
<a name="l00177"></a>00177     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> numels;
<a name="l00178"></a>00178 
<a name="l00179"></a>00179     <span class="comment">/* array of spare elements */</span>
<a name="l00180"></a>00180     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> **spareels;
<a name="l00181"></a>00181     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> spareelsnum;
<a name="l00182"></a>00182 
<a name="l00183"></a>00183 <span class="preprocessor">#ifdef SIMCLIST_WITH_THREADS</span>
<a name="l00184"></a>00184 <span class="preprocessor"></span>    <span class="comment">/* how many threads are currently running */</span>
<a name="l00185"></a>00185     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> threadcount;
<a name="l00186"></a>00186 <span class="preprocessor">#endif</span>
<a name="l00187"></a>00187 <span class="preprocessor"></span>
<a name="l00188"></a>00188     <span class="comment">/* service variables for list iteration */</span>
<a name="l00189"></a>00189     <span class="keywordtype">int</span> iter_active;
<a name="l00190"></a>00190     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iter_pos;
<a name="l00191"></a>00191     <span class="keyword">struct </span><a class="code" href="structlist__entry__s.html">list_entry_s</a> *iter_curentry;
<a name="l00192"></a>00192 
<a name="l00193"></a>00193     <span class="comment">/* list attributes */</span>
<a name="l00194"></a>00194     <span class="keyword">struct </span><a class="code" href="structlist__attributes__s.html">list_attributes_s</a> attrs;
<a name="l00195"></a>00195 } <a class="code" href="structlist__t.html" title="list object">list_t</a>;
<a name="l00196"></a>00196 
<a name="l00203"></a>00203 <span class="keywordtype">int</span> list_init(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00204"></a>00204 
<a name="l00214"></a>00214 <span class="keywordtype">void</span> list_destroy(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00215"></a>00215 
<a name="l00228"></a>00228 <span class="keywordtype">int</span> list_attributes_comparator(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, element_comparator comparator_fun);
<a name="l00229"></a>00229 
<a name="l00242"></a>00242 <span class="keywordtype">int</span> list_attributes_seeker(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, element_seeker seeker_fun);
<a name="l00243"></a>00243 
<a name="l00274"></a>00274 <span class="keywordtype">int</span> list_attributes_copy(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, element_meter metric_fun, <span class="keywordtype">int</span> copy_data);
<a name="l00275"></a>00275 
<a name="l00294"></a>00294 <span class="keywordtype">int</span> list_attributes_hash_computer(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, element_hash_computer hash_computer_fun);
<a name="l00295"></a>00295 
<a name="l00315"></a>00315 <span class="keywordtype">int</span> list_attributes_serializer(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, element_serializer serializer_fun);
<a name="l00316"></a>00316 
<a name="l00337"></a>00337 <span class="keywordtype">int</span> list_attributes_unserializer(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, element_unserializer unserializer_fun);
<a name="l00338"></a>00338 
<a name="l00349"></a>00349 <span class="keywordtype">int</span> list_append(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *data);
<a name="l00350"></a>00350 
<a name="l00361"></a>00361 <span class="keywordtype">int</span> list_prepend(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *restrict data);
<a name="l00362"></a>00362 
<a name="l00371"></a>00371 <span class="keywordtype">void</span> *list_fetch(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00372"></a>00372 
<a name="l00380"></a>00380 <span class="keywordtype">void</span> *list_get_at(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos);
<a name="l00381"></a>00381 
<a name="l00394"></a>00394 <span class="keywordtype">void</span> *list_get_max(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00395"></a>00395 
<a name="l00408"></a>00408 <span class="keywordtype">void</span> *list_get_min(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00409"></a>00409 
<a name="l00417"></a>00417 <span class="keywordtype">void</span> *list_extract_at(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos);
<a name="l00418"></a>00418 
<a name="l00427"></a>00427 <span class="keywordtype">int</span> list_insert_at(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *data, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos);
<a name="l00428"></a>00428 
<a name="l00444"></a>00444 <span class="keywordtype">int</span> list_delete(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *data);
<a name="l00445"></a>00445 
<a name="l00453"></a>00453 <span class="keywordtype">int</span> list_delete_at(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pos);
<a name="l00454"></a>00454 
<a name="l00463"></a>00463 <span class="keywordtype">int</span> list_delete_range(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> posstart, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> posend);
<a name="l00464"></a>00464 
<a name="l00476"></a>00476 <span class="keywordtype">int</span> list_clear(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00477"></a>00477 
<a name="l00484"></a>00484 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> list_size(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00485"></a>00485 
<a name="l00494"></a>00494 <span class="keywordtype">int</span> list_empty(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00495"></a>00495 
<a name="l00513"></a>00513 <span class="keywordtype">int</span> list_locate(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *data);
<a name="l00514"></a>00514 
<a name="l00528"></a>00528 <span class="keywordtype">void</span> *list_seek(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *indicator);
<a name="l00529"></a>00529 
<a name="l00549"></a>00549 <span class="keywordtype">int</span> list_contains(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">void</span> *data);
<a name="l00550"></a>00550 
<a name="l00568"></a>00568 <span class="keywordtype">int</span> list_concat(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *l1, <span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *l2, <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict dest);
<a name="l00569"></a>00569 
<a name="l00585"></a>00585 <span class="keywordtype">int</span> list_sort(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">int</span> versus);
<a name="l00586"></a>00586 
<a name="l00597"></a>00597 <span class="keywordtype">int</span> list_iterator_start(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00598"></a>00598 
<a name="l00605"></a>00605 <span class="keywordtype">void</span> *list_iterator_next(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00606"></a>00606 
<a name="l00613"></a>00613 <span class="keywordtype">int</span> list_iterator_hasnext(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00614"></a>00614 
<a name="l00621"></a>00621 <span class="keywordtype">int</span> list_iterator_stop(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l);
<a name="l00622"></a>00622 
<a name="l00631"></a>00631 <span class="keywordtype">int</span> list_hash(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, list_hash_t *restrict hash);
<a name="l00632"></a>00632 
<a name="l00633"></a>00633 <span class="preprocessor">#ifndef SIMCLIST_NO_DUMPRESTORE</span>
<a name="l00634"></a>00634 <span class="preprocessor"></span>
<a name="l00649"></a>00649 <span class="keywordtype">int</span> list_dump_getinfo_filedescriptor(<span class="keywordtype">int</span> fd, <a class="code" href="structlist__dump__info__t.html">list_dump_info_t</a> *restrict info);
<a name="l00650"></a>00650 
<a name="l00664"></a>00664 <span class="keywordtype">int</span> list_dump_getinfo_file(<span class="keyword">const</span> <span class="keywordtype">char</span> *restrict filename, <a class="code" href="structlist__dump__info__t.html">list_dump_info_t</a> *restrict info);
<a name="l00665"></a>00665 
<a name="l00700"></a>00700 <span class="keywordtype">int</span> list_dump_filedescriptor(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">int</span> fd, <span class="keywordtype">size_t</span> *restrict len);
<a name="l00701"></a>00701 
<a name="l00723"></a>00723 <span class="keywordtype">int</span> list_dump_file(<span class="keyword">const</span> <a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">char</span> *restrict filename, <span class="keywordtype">size_t</span> *restrict len);
<a name="l00724"></a>00724 
<a name="l00743"></a>00743 <span class="keywordtype">int</span> list_restore_filedescriptor(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keywordtype">int</span> fd, <span class="keywordtype">size_t</span> *restrict len);
<a name="l00744"></a>00744 
<a name="l00761"></a>00761 <span class="keywordtype">int</span> list_restore_file(<a class="code" href="structlist__t.html" title="list object">list_t</a> *restrict l, <span class="keyword">const</span> <span class="keywordtype">char</span> *restrict filename, <span class="keywordtype">size_t</span> *len);
<a name="l00762"></a>00762 <span class="preprocessor">#endif</span>
<a name="l00763"></a>00763 <span class="preprocessor"></span>
<a name="l00764"></a>00764 <span class="comment">/* ready-made comparators, meters and hash computers */</span>
<a name="l00765"></a>00765                                 <span class="comment">/* comparator functions */</span>
<a name="l00770"></a>00770 <span class="keywordtype">int</span> list_comparator_int8_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00771"></a>00771 
<a name="l00776"></a>00776 <span class="keywordtype">int</span> list_comparator_int16_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00777"></a>00777 
<a name="l00782"></a>00782 <span class="keywordtype">int</span> list_comparator_int32_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00783"></a>00783 
<a name="l00788"></a>00788 <span class="keywordtype">int</span> list_comparator_int64_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00789"></a>00789 
<a name="l00794"></a>00794 <span class="keywordtype">int</span> list_comparator_uint8_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00795"></a>00795 
<a name="l00800"></a>00800 <span class="keywordtype">int</span> list_comparator_uint16_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00801"></a>00801 
<a name="l00806"></a>00806 <span class="keywordtype">int</span> list_comparator_uint32_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00807"></a>00807 
<a name="l00812"></a>00812 <span class="keywordtype">int</span> list_comparator_uint64_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00813"></a>00813 
<a name="l00818"></a>00818 <span class="keywordtype">int</span> list_comparator_float(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00819"></a>00819 
<a name="l00824"></a>00824 <span class="keywordtype">int</span> list_comparator_double(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00825"></a>00825 
<a name="l00830"></a>00830 <span class="keywordtype">int</span> list_comparator_string(<span class="keyword">const</span> <span class="keywordtype">void</span> *a, <span class="keyword">const</span> <span class="keywordtype">void</span> *b);
<a name="l00831"></a>00831 
<a name="l00832"></a>00832                                 <span class="comment">/*          metric functions        */</span>
<a name="l00837"></a>00837 <span class="keywordtype">size_t</span> list_meter_int8_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00838"></a>00838 
<a name="l00843"></a>00843 <span class="keywordtype">size_t</span> list_meter_int16_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00844"></a>00844 
<a name="l00849"></a>00849 <span class="keywordtype">size_t</span> list_meter_int32_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00850"></a>00850 
<a name="l00855"></a>00855 <span class="keywordtype">size_t</span> list_meter_int64_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00856"></a>00856 
<a name="l00861"></a>00861 <span class="keywordtype">size_t</span> list_meter_uint8_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00862"></a>00862 
<a name="l00867"></a>00867 <span class="keywordtype">size_t</span> list_meter_uint16_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00868"></a>00868 
<a name="l00873"></a>00873 <span class="keywordtype">size_t</span> list_meter_uint32_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00874"></a>00874 
<a name="l00879"></a>00879 <span class="keywordtype">size_t</span> list_meter_uint64_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00880"></a>00880 
<a name="l00885"></a>00885 <span class="keywordtype">size_t</span> list_meter_float(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00886"></a>00886 
<a name="l00891"></a>00891 <span class="keywordtype">size_t</span> list_meter_double(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00892"></a>00892 
<a name="l00897"></a>00897 <span class="keywordtype">size_t</span> list_meter_string(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00898"></a>00898 
<a name="l00899"></a>00899                                 <span class="comment">/*          hash functions          */</span>
<a name="l00904"></a>00904 list_hash_t list_hashcomputer_int8_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00905"></a>00905 
<a name="l00910"></a>00910 list_hash_t list_hashcomputer_int16_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00911"></a>00911 
<a name="l00916"></a>00916 list_hash_t list_hashcomputer_int32_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00917"></a>00917 
<a name="l00922"></a>00922 list_hash_t list_hashcomputer_int64_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00923"></a>00923 
<a name="l00928"></a>00928 list_hash_t list_hashcomputer_uint8_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00929"></a>00929 
<a name="l00934"></a>00934 list_hash_t list_hashcomputer_uint16_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00935"></a>00935 
<a name="l00940"></a>00940 list_hash_t list_hashcomputer_uint32_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00941"></a>00941 
<a name="l00946"></a>00946 list_hash_t list_hashcomputer_uint64_t(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00947"></a>00947 
<a name="l00952"></a>00952 list_hash_t list_hashcomputer_float(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00953"></a>00953 
<a name="l00958"></a>00958 list_hash_t list_hashcomputer_double(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00959"></a>00959 
<a name="l00964"></a>00964 list_hash_t list_hashcomputer_string(<span class="keyword">const</span> <span class="keywordtype">void</span> *el);
<a name="l00965"></a>00965 
<a name="l00966"></a>00966 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00967"></a>00967 <span class="preprocessor"></span>}
<a name="l00968"></a>00968 <span class="preprocessor">#endif</span>
<a name="l00969"></a>00969 <span class="preprocessor"></span>
<a name="l00970"></a>00970 <span class="preprocessor">#endif</span>
<a name="l00971"></a>00971 <span class="preprocessor"></span>
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Thu Mar 31 2011 for pcsc-lite by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>