Sophie

Sophie

distrib > Fedora > 13 > i386 > media > os > by-pkgid > 3ef085c66d4a743f8dec260630a0b19c > files > 186

pcsc-lite-doc-1.5.5-4.fc13.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: readerfactory.c File Reference</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.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;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 class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_c68a5dfdca54003c765e303a18006edb.html">src</a>
  </div>
</div>
<div class="contents">
<h1>readerfactory.c File Reference</h1>
<p>This keeps track of a list of currently available reader structures.  
<a href="#_details">More...</a></p>
<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 &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="ifdhandler_8h_source.html">ifdhandler.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="thread__generic_8h_source.html">thread_generic.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 class="dynheader">
Include dependency graph for readerfactory.c:</div>
<div class="dynsection">
</div>

<p><a href="readerfactory_8c_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a137cdb9c3d0df9656c1ee9a77023de27"></a><!-- doxytag: member="readerfactory.c::IDENTITY_SHIFT" ref="a137cdb9c3d0df9656c1ee9a77023de27" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>IDENTITY_SHIFT</b>&nbsp;&nbsp;&nbsp;16</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESS_OPTIONALv1</b>(field, function, code)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESSv1</b>(field, function)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESS_OPTIONALv2</b>(s, code)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESSv2</b>(s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESS_OPTIONALv3</b>(s, code)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>GET_ADDRESSv3</b>(s)</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8239600ddcef21cd27f1d19ba215ebac"></a><!-- doxytag: member="readerfactory.c::RFAllocateReaderSpace" ref="a8239600ddcef21cd27f1d19ba215ebac" args="(void)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFAllocateReaderSpace</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad5ef5304759ba17d15865959d2f4e918"></a><!-- doxytag: member="readerfactory.c::RFAddReader" ref="ad5ef5304759ba17d15865959d2f4e918" args="(LPSTR lpcReader, DWORD dwPort, LPSTR lpcLibrary, LPSTR lpcDevice)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFAddReader</b> (LPSTR lpcReader, DWORD dwPort, LPSTR lpcLibrary, LPSTR lpcDevice)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9dcce2ee730614c2310a5e796a1dc73"></a><!-- doxytag: member="readerfactory.c::RFRemoveReader" ref="af9dcce2ee730614c2310a5e796a1dc73" args="(LPSTR lpcReader, DWORD dwPort)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFRemoveReader</b> (LPSTR lpcReader, DWORD dwPort)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c7ea5b3269714c197530fb02beb7a24"></a><!-- doxytag: member="readerfactory.c::RFSetReaderName" ref="a7c7ea5b3269714c197530fb02beb7a24" args="(PREADER_CONTEXT rContext, LPSTR readerName, LPSTR libraryName, DWORD dwPort, DWORD dwSlot)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFSetReaderName</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext, LPSTR readerName, LPSTR libraryName, DWORD dwPort, DWORD dwSlot)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf275d0a451132f4313407f8e9cdb4d1"></a><!-- doxytag: member="readerfactory.c::RFReaderInfo" ref="abf275d0a451132f4313407f8e9cdb4d1" args="(LPSTR lpcReader, PREADER_CONTEXT *sReader)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFReaderInfo</b> (LPSTR lpcReader, <a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> *sReader)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15114544e6307c698cb10d5b1f11dbcd"></a><!-- doxytag: member="readerfactory.c::RFReaderInfoNamePort" ref="a15114544e6307c698cb10d5b1f11dbcd" args="(DWORD dwPort, LPSTR lpcReader, PREADER_CONTEXT *sReader)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFReaderInfoNamePort</b> (DWORD dwPort, LPSTR lpcReader, <a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> *sReader)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae8d5b48a93c82a1db00e91f706097ee"></a><!-- doxytag: member="readerfactory.c::RFReaderInfoById" ref="aae8d5b48a93c82a1db00e91f706097ee" args="(DWORD dwIdentity, PREADER_CONTEXT *sReader)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFReaderInfoById</b> (DWORD dwIdentity, <a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> *sReader)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c3fc9acb888087fdff0ed743f7a9b3b"></a><!-- doxytag: member="readerfactory.c::RFLoadReader" ref="a8c3fc9acb888087fdff0ed743f7a9b3b" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFLoadReader</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef47c78b8ac05be5bcd635ddb02870fa"></a><!-- doxytag: member="readerfactory.c::RFBindFunctions" ref="aef47c78b8ac05be5bcd635ddb02870fa" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFBindFunctions</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d7f15dc49df91a035a83f4aa25d17a0"></a><!-- doxytag: member="readerfactory.c::RFUnBindFunctions" ref="a4d7f15dc49df91a035a83f4aa25d17a0" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnBindFunctions</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af86202b0e9ef4d9b9d32b5cc1863c729"></a><!-- doxytag: member="readerfactory.c::RFUnloadReader" ref="af86202b0e9ef4d9b9d32b5cc1863c729" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnloadReader</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae65a357fd8e15e67ab7a4dbe9f4dd5fa"></a><!-- doxytag: member="readerfactory.c::RFCheckSharing" ref="ae65a357fd8e15e67ab7a4dbe9f4dd5fa" args="(DWORD hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFCheckSharing</b> (DWORD hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab05cf600b49d72f8b9809e689586b1dc"></a><!-- doxytag: member="readerfactory.c::RFLockSharing" ref="ab05cf600b49d72f8b9809e689586b1dc" args="(DWORD hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFLockSharing</b> (DWORD hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac45df146515dea039ed842ecaa6b3478"></a><!-- doxytag: member="readerfactory.c::RFUnlockSharing" ref="ac45df146515dea039ed842ecaa6b3478" args="(DWORD hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnlockSharing</b> (DWORD hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8393dc0f91c9fae299719a16ceb08968"></a><!-- doxytag: member="readerfactory.c::RFUnlockAllSharing" ref="a8393dc0f91c9fae299719a16ceb08968" args="(DWORD hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnlockAllSharing</b> (DWORD hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa89c02df46be7dcec74f19d24d9565fa"></a><!-- doxytag: member="readerfactory.c::RFUnblockContext" ref="aa89c02df46be7dcec74f19d24d9565fa" args="(SCARDCONTEXT hContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnblockContext</b> (<a class="el" href="pcsclite_8h.html#a3524142a16d7185916422baf6bb7883f">SCARDCONTEXT</a> hContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8f70e4fa23d7207e1dab9a5954ed5163"></a><!-- doxytag: member="readerfactory.c::RFUnblockReader" ref="a8f70e4fa23d7207e1dab9a5954ed5163" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnblockReader</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab02d0f094646b74171c3d571cbde0cb6"></a><!-- doxytag: member="readerfactory.c::RFInitializeReader" ref="ab02d0f094646b74171c3d571cbde0cb6" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFInitializeReader</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a6ee733379ed77800b01189221d0f73"></a><!-- doxytag: member="readerfactory.c::RFUnInitializeReader" ref="a4a6ee733379ed77800b01189221d0f73" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFUnInitializeReader</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe10105d4097812cf40a9d7989438992"></a><!-- doxytag: member="readerfactory.c::RFCreateReaderHandle" ref="abe10105d4097812cf40a9d7989438992" args="(PREADER_CONTEXT rContext)" -->
<a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFCreateReaderHandle</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2fb3cf4b9648c3a78f6f5a2bf4b3edb0"></a><!-- doxytag: member="readerfactory.c::RFFindReaderHandle" ref="a2fb3cf4b9648c3a78f6f5a2bf4b3edb0" args="(SCARDHANDLE hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFFindReaderHandle</b> (<a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a> hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a42c38f85d751e52b5c967571c7e61c34"></a><!-- doxytag: member="readerfactory.c::RFDestroyReaderHandle" ref="a42c38f85d751e52b5c967571c7e61c34" args="(SCARDHANDLE hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFDestroyReaderHandle</b> (<a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a> hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0b3dc0be7443e9ce567c5f558b42c503"></a><!-- doxytag: member="readerfactory.c::RFAddReaderHandle" ref="a0b3dc0be7443e9ce567c5f558b42c503" args="(PREADER_CONTEXT rContext, SCARDHANDLE hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFAddReaderHandle</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext, <a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a> hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad25eb77f17d1f3161f10f0ffcb2b515c"></a><!-- doxytag: member="readerfactory.c::RFRemoveReaderHandle" ref="ad25eb77f17d1f3161f10f0ffcb2b515c" args="(PREADER_CONTEXT rContext, SCARDHANDLE hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFRemoveReaderHandle</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext, <a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a> hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a28e2a666537bf7be4416662cbaf994b4"></a><!-- doxytag: member="readerfactory.c::RFSetReaderEventState" ref="a28e2a666537bf7be4416662cbaf994b4" args="(PREADER_CONTEXT rContext, DWORD dwEvent)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFSetReaderEventState</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext, DWORD dwEvent)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aada03af7a2a3e951b473c7f2fb23dcef"></a><!-- doxytag: member="readerfactory.c::RFCheckReaderEventState" ref="aada03af7a2a3e951b473c7f2fb23dcef" args="(PREADER_CONTEXT rContext, SCARDHANDLE hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFCheckReaderEventState</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext, <a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a> hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1a98f692e832becbc3828c6051df7435"></a><!-- doxytag: member="readerfactory.c::RFClearReaderEventState" ref="a1a98f692e832becbc3828c6051df7435" args="(PREADER_CONTEXT rContext, SCARDHANDLE hCard)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFClearReaderEventState</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext, <a class="el" href="pcsclite_8h.html#a0ef8f5baf9ee6c07dbdc7644c641d0a9">SCARDHANDLE</a> hCard)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a05dd5bf93b9eca3b97b842ec112c6a2a"></a><!-- doxytag: member="readerfactory.c::RFCheckReaderStatus" ref="a05dd5bf93b9eca3b97b842ec112c6a2a" args="(PREADER_CONTEXT rContext)" -->
LONG&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFCheckReaderStatus</b> (<a class="el" href="structReaderContext.html">PREADER_CONTEXT</a> rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a876adaf96c93fd94c21238dc2fc47efe"></a><!-- doxytag: member="readerfactory.c::RFCleanupReaders" ref="a876adaf96c93fd94c21238dc2fc47efe" args="(int shouldExit)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFCleanupReaders</b> (int shouldExit)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab0564fde3fdd7213a370987426ff9eff"></a><!-- doxytag: member="readerfactory.c::RFStartSerialReaders" ref="ab0564fde3fdd7213a370987426ff9eff" args="(const char *readerconf)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFStartSerialReaders</b> (const char *readerconf)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5a2bc67ad73da7007d4f50ab42c2bd7c"></a><!-- doxytag: member="readerfactory.c::RFReCheckReaderConf" ref="a5a2bc67ad73da7007d4f50ab42c2bd7c" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFReCheckReaderConf</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5109da9a113fc314ba949fcf393badf9"></a><!-- doxytag: member="readerfactory.c::RFSuspendAllReaders" ref="a5109da9a113fc314ba949fcf393badf9" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFSuspendAllReaders</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed9b1bd17aef474bfbd797c4f4b3b0da"></a><!-- doxytag: member="readerfactory.c::RFAwakeAllReaders" ref="aed9b1bd17aef474bfbd797c4f4b3b0da" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>RFAwakeAllReaders</b> (void)</td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d3e16a4b6d6eefd59d32c964289fd61"></a><!-- doxytag: member="readerfactory.c::sReadersContexts" ref="a3d3e16a4b6d6eefd59d32c964289fd61" args="[PCSCLITE_MAX_READERS_CONTEXTS]" -->
static <a class="el" href="structReaderContext.html">PREADER_CONTEXT</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>sReadersContexts</b> [PCSCLITE_MAX_READERS_CONTEXTS]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5afe29bc3ccda13a034ebd2ab10a55dd"></a><!-- doxytag: member="readerfactory.c::dwNumReadersContexts" ref="a5afe29bc3ccda13a034ebd2ab10a55dd" args="" -->
static DWORD&nbsp;</td><td class="memItemRight" valign="bottom"><b>dwNumReadersContexts</b> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a03135df28942a113d83a06cdabf96682"></a><!-- doxytag: member="readerfactory.c::ConfigFile" ref="a03135df28942a113d83a06cdabf96682" args="" -->
static char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>ConfigFile</b> = NULL</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aea46b4423a11ee4e883701d34fc5c13a"></a><!-- doxytag: member="readerfactory.c::ConfigFileCRC" ref="aea46b4423a11ee4e883701d34fc5c13a" args="" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>ConfigFileCRC</b> = 0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3021ec4d1e3f9a3a463999ac75d240ce"></a><!-- doxytag: member="readerfactory.c::LockMutex" ref="a3021ec4d1e3f9a3a463999ac75d240ce" args="" -->
static PCSCLITE_MUTEX&nbsp;</td><td class="memItemRight" valign="bottom"><b>LockMutex</b> = PTHREAD_MUTEX_INITIALIZER</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<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>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="adca7a4aeaa0925e96e47fdda7eca36ee"></a><!-- doxytag: member="readerfactory.c::GET_ADDRESS_OPTIONALv1" ref="adca7a4aeaa0925e96e47fdda7eca36ee" args="(field, function, code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESS_OPTIONALv1</td>
          <td>(</td>
          <td class="paramtype">field, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">function, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">code&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
    <span class="keywordtype">void</span> *f1 = NULL; \
    <span class="keywordflow">if</span> (<a class="code" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75" title="error codes from http://msdn.microsoft.com/en-us/library/aa924526.aspx">SCARD_S_SUCCESS</a> != DYN_GetAddress(rContext-&gt;vHandle, &amp;f1, <span class="stringliteral">&quot;IFD_&quot;</span> #function)) \
    { \
        code \
    } \
    rContext-&gt;psFunctions.psFunctions_v1.pvf ## field = f1; \
}
</pre></div>
</div>
</div>
<a class="anchor" id="a0d6eb3d175a2147e3112e19433aaa918"></a><!-- doxytag: member="readerfactory.c::GET_ADDRESS_OPTIONALv2" ref="a0d6eb3d175a2147e3112e19433aaa918" args="(s, code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESS_OPTIONALv2</td>
          <td>(</td>
          <td class="paramtype">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">code&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
    <span class="keywordtype">void</span> *f1 = NULL; \
    <span class="keywordflow">if</span> (<a class="code" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75" title="error codes from http://msdn.microsoft.com/en-us/library/aa924526.aspx">SCARD_S_SUCCESS</a> != DYN_GetAddress(rContext-&gt;vHandle, &amp;f1, <span class="stringliteral">&quot;IFDH&quot;</span> #s)) \
    { \
        code \
    } \
    rContext-&gt;psFunctions.psFunctions_v2.pvf ## s = f1; \
}
</pre></div>
</div>
</div>
<a class="anchor" id="a898b8972d7ce943f56d5b0ff12eae869"></a><!-- doxytag: member="readerfactory.c::GET_ADDRESS_OPTIONALv3" ref="a898b8972d7ce943f56d5b0ff12eae869" args="(s, code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESS_OPTIONALv3</td>
          <td>(</td>
          <td class="paramtype">s, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">code&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">{ \
    <span class="keywordtype">void</span> *f1 = NULL; \
    <span class="keywordflow">if</span> (<a class="code" href="pcsclite_8h.html#a4a3c56f69570971d366642a563b34a75" title="error codes from http://msdn.microsoft.com/en-us/library/aa924526.aspx">SCARD_S_SUCCESS</a> != DYN_GetAddress(rContext-&gt;vHandle, &amp;f1, <span class="stringliteral">&quot;IFDH&quot;</span> #s)) \
    { \
        code \
    } \
    rContext-&gt;psFunctions.psFunctions_v3.pvf ## s = f1; \
}
</pre></div>
</div>
</div>
<a class="anchor" id="a57e78c67363c59f085f57acc73e637a2"></a><!-- doxytag: member="readerfactory.c::GET_ADDRESSv1" ref="a57e78c67363c59f085f57acc73e637a2" args="(field, function)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESSv1</td>
          <td>(</td>
          <td class="paramtype">field, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">function&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">GET_ADDRESS_OPTIONALv1(field, function, \
        Log1(PCSC_LOG_CRITICAL, <span class="stringliteral">&quot;IFDHandler functions missing: &quot;</span> #function ); \
        exit(1); )
</pre></div>
</div>
</div>
<a class="anchor" id="a290956b7c41ae583d36b48772a959381"></a><!-- doxytag: member="readerfactory.c::GET_ADDRESSv2" ref="a290956b7c41ae583d36b48772a959381" args="(s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESSv2</td>
          <td>(</td>
          <td class="paramtype">s&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">GET_ADDRESS_OPTIONALv2(s, \
        Log1(PCSC_LOG_CRITICAL, <span class="stringliteral">&quot;IFDHandler functions missing: &quot;</span> #s ); \
        exit(1); )
</pre></div>
</div>
</div>
<a class="anchor" id="a6d647157ee6bd2695a72843b69c87e87"></a><!-- doxytag: member="readerfactory.c::GET_ADDRESSv3" ref="a6d647157ee6bd2695a72843b69c87e87" args="(s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GET_ADDRESSv3</td>
          <td>(</td>
          <td class="paramtype">s&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">GET_ADDRESS_OPTIONALv3(s, \
        Log1(PCSC_LOG_CRITICAL, <span class="stringliteral">&quot;IFDHandler functions missing: &quot;</span> #s ); \
        exit(1); )
</pre></div>
</div>
</div>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>