Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 8db5617ff88aacc3075d0be1db459900 > files > 143

pcsc-lite-doc-1.8.11-4.mga5.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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>pcsc-lite: readerfactory.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">pcsc-lite
   &#160;<span id="projectnumber">1.8.11</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
  <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>
    </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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">readerfactory.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This keeps track of a list of currently available reader structures.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;config.h&quot;</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;unistd.h&gt;</code><br />
<code>#include &lt;sys/types.h&gt;</code><br />
<code>#include &lt;sys/stat.h&gt;</code><br />
<code>#include &lt;errno.h&gt;</code><br />
<code>#include &lt;fcntl.h&gt;</code><br />
<code>#include &lt;pthread.h&gt;</code><br />
<code>#include &quot;misc.h&quot;</code><br />
<code>#include &quot;<a class="el" href="pcscd_8h_source.html">pcscd.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="debuglog_8h_source.html">debuglog.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="readerfactory_8h_source.html">readerfactory.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dyn__generic_8h_source.html">dyn_generic.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="sys__generic_8h_source.html">sys_generic.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="eventhandler_8h_source.html">eventhandler.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="ifdwrapper_8h_source.html">ifdwrapper.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="hotplug_8h_source.html">hotplug.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="strlcpycat_8h_source.html">strlcpycat.h</a>&quot;</code><br />
<code>#include &quot;configfile.h&quot;</code><br />
<code>#include &quot;utils.h&quot;</code><br />
</div>
<p><a href="readerfactory_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8cecfc5c5c054d2875c03e77b7be15d"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TRUE</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:aa8cecfc5c5c054d2875c03e77b7be15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa93f0eb578d23995850d61f7d61c55c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa93f0eb578d23995850d61f7d61c55c1"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>FALSE</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:aa93f0eb578d23995850d61f7d61c55c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137cdb9c3d0df9656c1ee9a77023de27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a137cdb9c3d0df9656c1ee9a77023de27"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>IDENTITY_SHIFT</b>&#160;&#160;&#160;16</td></tr>
<tr class="separator:a137cdb9c3d0df9656c1ee9a77023de27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d6eb3d175a2147e3112e19433aaa918"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESS_OPTIONALv2</b>(s, code)</td></tr>
<tr class="separator:a0d6eb3d175a2147e3112e19433aaa918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a290956b7c41ae583d36b48772a959381"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESSv2</b>(s)</td></tr>
<tr class="separator:a290956b7c41ae583d36b48772a959381"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a898b8972d7ce943f56d5b0ff12eae869"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESS_OPTIONALv3</b>(s, code)</td></tr>
<tr class="separator:a898b8972d7ce943f56d5b0ff12eae869"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d647157ee6bd2695a72843b69c87e87"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESSv3</b>(s)</td></tr>
<tr class="separator:a6d647157ee6bd2695a72843b69c87e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af474609f07d0679ab73994b3750fe091"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af474609f07d0679ab73994b3750fe091"></a>
static LONG&#160;</td><td class="memItemRight" valign="bottom"><b>removeReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *sReader)</td></tr>
<tr class="separator:af474609f07d0679ab73994b3750fe091"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eb79359fe9185c9516b8a19d4df25ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8eb79359fe9185c9516b8a19d4df25ff"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>RDR_CLIHANDLES_seeker</b> (const void *el, const void *key)</td></tr>
<tr class="separator:a8eb79359fe9185c9516b8a19d4df25ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa60a771a124c755673b2113ef78ebe30"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa60a771a124c755673b2113ef78ebe30"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>_RefReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *sReader)</td></tr>
<tr class="separator:aa60a771a124c755673b2113ef78ebe30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a65d284ed2b0d2a4462690f267ccd37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a65d284ed2b0d2a4462690f267ccd37"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>_UnrefReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *sReader)</td></tr>
<tr class="separator:a6a65d284ed2b0d2a4462690f267ccd37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1642ec51326be86454522188a5ba5001"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1642ec51326be86454522188a5ba5001"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFAllocateReaderSpace</b> (unsigned int customMaxReaderHandles)</td></tr>
<tr class="separator:a1642ec51326be86454522188a5ba5001"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea710703b7f4be6185697d1fa2bb94ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea710703b7f4be6185697d1fa2bb94ab"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFAddReader</b> (const char *readerNameLong, int port, const char *library, const char *device)</td></tr>
<tr class="separator:aea710703b7f4be6185697d1fa2bb94ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada4fcaa0bddeba72fb492fb6e7b78f62"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada4fcaa0bddeba72fb492fb6e7b78f62"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFRemoveReader</b> (const char *readerName, int port)</td></tr>
<tr class="separator:ada4fcaa0bddeba72fb492fb6e7b78f62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac89e5a9290a416e38b6b057eb85bfcf6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac89e5a9290a416e38b6b057eb85bfcf6"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFSetReaderName</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext, const char *readerName, const char *libraryName, int port)</td></tr>
<tr class="separator:ac89e5a9290a416e38b6b057eb85bfcf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a054b17c9141237be7302bcc92d9a5160"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a054b17c9141237be7302bcc92d9a5160"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFReaderInfo</b> (const char *readerName, <a class="el" href="structReaderContext.html">READER_CONTEXT</a> **sReader)</td></tr>
<tr class="separator:a054b17c9141237be7302bcc92d9a5160"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f19a5794a94f48c08e350c111109508"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f19a5794a94f48c08e350c111109508"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFReaderInfoById</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, <a class="el" href="structReaderContext.html">READER_CONTEXT</a> **sReader)</td></tr>
<tr class="separator:a3f19a5794a94f48c08e350c111109508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affe8783b1e1ea9bad543ae30685f443b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affe8783b1e1ea9bad543ae30685f443b"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFLoadReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:affe8783b1e1ea9bad543ae30685f443b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7209713f9920f6caba53c3f422baf17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7209713f9920f6caba53c3f422baf17"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFBindFunctions</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:ae7209713f9920f6caba53c3f422baf17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22c08bd65090bf0cb7bbcb4c6f0d5b7b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22c08bd65090bf0cb7bbcb4c6f0d5b7b"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFUnBindFunctions</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a22c08bd65090bf0cb7bbcb4c6f0d5b7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66052c24553336c002225c078e53da26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66052c24553336c002225c078e53da26"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFUnloadReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a66052c24553336c002225c078e53da26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad24b1fd707edee5f26d480534dc02661"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad24b1fd707edee5f26d480534dc02661"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFCheckSharing</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, <a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:ad24b1fd707edee5f26d480534dc02661"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5133799a221bd06ea648891c717c0b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5133799a221bd06ea648891c717c0b3"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFLockSharing</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, <a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:aa5133799a221bd06ea648891c717c0b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a364d471255f2e523c223cd92ad0f6b10"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a364d471255f2e523c223cd92ad0f6b10"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFUnlockSharing</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, <a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a364d471255f2e523c223cd92ad0f6b10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c87ece049dd76062c43a2ac0c5ab40a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c87ece049dd76062c43a2ac0c5ab40a"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFUnlockAllSharing</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard, <a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a2c87ece049dd76062c43a2ac0c5ab40a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d72fc93ee0ddbfb4248b1eea9dd279"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22d72fc93ee0ddbfb4248b1eea9dd279"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFInitializeReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a22d72fc93ee0ddbfb4248b1eea9dd279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ddf9b9f18be02a3f1a96ff3f4a67ab0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ddf9b9f18be02a3f1a96ff3f4a67ab0"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFUnInitializeReader</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a4ddf9b9f18be02a3f1a96ff3f4a67ab0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98a7a92fe38859941b02a85a2994a7c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98a7a92fe38859941b02a85a2994a7c3"></a>
<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a>&#160;</td><td class="memItemRight" valign="bottom"><b>RFCreateReaderHandle</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:a98a7a92fe38859941b02a85a2994a7c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42c38f85d751e52b5c967571c7e61c34"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42c38f85d751e52b5c967571c7e61c34"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFDestroyReaderHandle</b> (<a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard)</td></tr>
<tr class="separator:a42c38f85d751e52b5c967571c7e61c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8d48540a22186d330869059ff0700b8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac8d48540a22186d330869059ff0700b8"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFAddReaderHandle</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext, <a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard)</td></tr>
<tr class="separator:ac8d48540a22186d330869059ff0700b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacd0c536f8eec5ac1f1458fcaa6caaaf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacd0c536f8eec5ac1f1458fcaa6caaaf"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFRemoveReaderHandle</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext, <a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard)</td></tr>
<tr class="separator:aacd0c536f8eec5ac1f1458fcaa6caaaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94b888c6f03f2f0f5445d661e20633c3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a94b888c6f03f2f0f5445d661e20633c3"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFSetReaderEventState</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext, DWORD dwEvent)</td></tr>
<tr class="separator:a94b888c6f03f2f0f5445d661e20633c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af62002905615b2d429d8ff1d018bef14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af62002905615b2d429d8ff1d018bef14"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFCheckReaderEventState</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext, <a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard)</td></tr>
<tr class="separator:af62002905615b2d429d8ff1d018bef14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e143c6a6c895e1ec3c551bc5d3002ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4e143c6a6c895e1ec3c551bc5d3002ed"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFClearReaderEventState</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext, <a class="el" href="pcsclite_8h.html#af328aca3e11de737ecd771bcf1f75fb5">SCARDHANDLE</a> hCard)</td></tr>
<tr class="separator:a4e143c6a6c895e1ec3c551bc5d3002ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac96dc477fc017296934cbbcfdd200a3f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac96dc477fc017296934cbbcfdd200a3f"></a>
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>RFCheckReaderStatus</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr class="separator:ac96dc477fc017296934cbbcfdd200a3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acccd0e6a79ea2505f8d930c5c8324e0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acccd0e6a79ea2505f8d930c5c8324e0c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>RFCleanupReaders</b> (void)</td></tr>
<tr class="separator:acccd0e6a79ea2505f8d930c5c8324e0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a1adfcc73f45f3fb0846c6f2bfe635dbd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1adfcc73f45f3fb0846c6f2bfe635dbd"></a>
static <a class="el" href="structReaderContext.html">READER_CONTEXT</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>sReadersContexts</b> [<a class="el" href="pcsclite_8h.html#af750e6e22c809de2b523c17e4a092036">PCSCLITE_MAX_READERS_CONTEXTS</a>]</td></tr>
<tr class="separator:a1adfcc73f45f3fb0846c6f2bfe635dbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad70f4ad5a6e9b001970ee9afc2130875"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad70f4ad5a6e9b001970ee9afc2130875"></a>
<a class="el" href="eventhandler_8h.html#a14acdf20e86897434649f849c17f9ea6">READER_STATE</a>&#160;</td><td class="memItemRight" valign="bottom"><b>readerStates</b> [<a class="el" href="pcsclite_8h.html#af750e6e22c809de2b523c17e4a092036">PCSCLITE_MAX_READERS_CONTEXTS</a>]</td></tr>
<tr class="separator:ad70f4ad5a6e9b001970ee9afc2130875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65432ea475ee4a005bd4c9ac4bc1fa3b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a65432ea475ee4a005bd4c9ac4bc1fa3b"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>maxReaderHandles</b> = PCSC_MAX_READER_HANDLES</td></tr>
<tr class="separator:a65432ea475ee4a005bd4c9ac4bc1fa3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5afe29bc3ccda13a034ebd2ab10a55dd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5afe29bc3ccda13a034ebd2ab10a55dd"></a>
static DWORD&#160;</td><td class="memItemRight" valign="bottom"><b>dwNumReadersContexts</b> = 0</td></tr>
<tr class="separator:a5afe29bc3ccda13a034ebd2ab10a55dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21709a45e82b32704abdc66474dded3c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21709a45e82b32704abdc66474dded3c"></a>
static pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><b>LockMutex</b> = PTHREAD_MUTEX_INITIALIZER</td></tr>
<tr class="separator:a21709a45e82b32704abdc66474dded3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This keeps track of a list of currently available reader structures. </p>

<p>Definition in file <a class="el" href="readerfactory_8c_source.html">readerfactory.c</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a0d6eb3d175a2147e3112e19433aaa918"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESS_OPTIONALv2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">code&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line">    void *f1 = NULL; \</div>
<div class="line">    int rvl = DYN_GetAddress(rContext-&gt;vHandle, &amp;f1, <span class="stringliteral">&quot;IFDH&quot;</span> #s, FALSE); \</div>
<div class="line">    if (<a class="code" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a> != rvl) \</div>
<div class="line">    { \</div>
<div class="line">        code \</div>
<div class="line">    } \</div>
<div class="line">    rContext-&gt;psFunctions.psFunctions_v2.pvf ## s = f1; \</div>
<div class="line">}</div>
<div class="ttc" id="pcsclite_8h_html_a4a3c56f69570971d366642a563b34a75"><div class="ttname"><a href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a></div><div class="ttdeci">#define SCARD_S_SUCCESS</div><div class="ttdoc">error codes from http://msdn.microsoft.com/en-us/library/aa924526.aspx </div><div class="ttdef"><b>Definition:</b> <a href="pcsclite_8h_source.html#l00106">pcsclite.h:106</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a898b8972d7ce943f56d5b0ff12eae869"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESS_OPTIONALv3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">code&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line">    void *f1 = NULL; \</div>
<div class="line">    int rvl = DYN_GetAddress(rContext-&gt;vHandle, &amp;f1, <span class="stringliteral">&quot;IFDH&quot;</span> #s, FALSE); \</div>
<div class="line">    if (<a class="code" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a> != rvl) \</div>
<div class="line">    { \</div>
<div class="line">        code \</div>
<div class="line">    } \</div>
<div class="line">    rContext-&gt;psFunctions.psFunctions_v3.pvf ## s = f1; \</div>
<div class="line">}</div>
<div class="ttc" id="pcsclite_8h_html_a4a3c56f69570971d366642a563b34a75"><div class="ttname"><a href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75">SCARD_S_SUCCESS</a></div><div class="ttdeci">#define SCARD_S_SUCCESS</div><div class="ttdoc">error codes from http://msdn.microsoft.com/en-us/library/aa924526.aspx </div><div class="ttdef"><b>Definition:</b> <a href="pcsclite_8h_source.html#l00106">pcsclite.h:106</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a290956b7c41ae583d36b48772a959381"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESSv2</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">GET_ADDRESS_OPTIONALv2(s, \</div>
<div class="line">        Log1(PCSC_LOG_CRITICAL, <span class="stringliteral">&quot;IFDHandler functions missing: &quot;</span> #s ); \</div>
<div class="line">        return(rv); )</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a6d647157ee6bd2695a72843b69c87e87"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESSv3</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">GET_ADDRESS_OPTIONALv3(s, \</div>
<div class="line">        Log1(PCSC_LOG_CRITICAL, <span class="stringliteral">&quot;IFDHandler functions missing: &quot;</span> #s ); \</div>
<div class="line">        return(rv); )</div>
</div><!-- fragment -->
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 15 2014 11:57:56 for pcsc-lite by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>