Sophie

Sophie

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

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: eventhandler.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.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="summary">
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<h1>eventhandler.c File Reference</h1>  </div>
</div>
<div class="contents">

<p>This keeps track of card insertion/removal events and updates ATR, protocol, and status information.  
<a href="#_details">More...</a></p>
<div class="textblock"><code>#include &quot;config.h&quot;</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;string.h&gt;</code><br/>
<code>#include &lt;stdlib.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;debuglog.h&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="eventhandler_8h_source.html">eventhandler.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="ifdwrapper_8h_source.html">ifdwrapper.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="prothandler_8h_source.html">prothandler.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;utils.h&quot;</code><br/>
<code>#include &quot;<a class="el" href="winscard__svc_8h_source.html">winscard_svc.h</a>&quot;</code><br/>
<code>#include &quot;simclist.h&quot;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for eventhandler.c:</div>
<div class="dyncontent">
<div class="center"><img src="eventhandler_8c__incl.png" border="0" usemap="#eventhandler_8c" alt=""/></div>
<map name="eventhandler_8c" id="eventhandler_8c">
<area shape="rect" id="node19" href="misc_8h_source.html" title="misc.h" alt="" coords="1077,83,1139,112"/><area shape="rect" id="node21" href="pcscd_8h.html" title="This keeps a list of defines for pcsc&#45;lite." alt="" coords="611,237,677,267"/><area shape="rect" id="node25" href="readerfactory_8h.html" title="This keeps track of a list of currently available reader structures." alt="" coords="408,160,517,189"/><area shape="rect" id="node33" href="simclist_8h_source.html" title="simclist.h" alt="" coords="248,237,325,267"/><area shape="rect" id="node38" href="eventhandler_8h.html" title="This handles card insertion/removal events, updates ATR, protocol, and status information." alt="" coords="1272,83,1379,112"/><area shape="rect" id="node42" href="dyn__generic_8h.html" title="This abstracts dynamic library loading functions." alt="" coords="1403,83,1504,112"/><area shape="rect" id="node44" href="sys__generic_8h.html" title="This handles abstract system level calls." alt="" coords="693,83,795,112"/><area shape="rect" id="node49" href="ifdwrapper_8h.html" title="This wraps the dynamic ifdhandler functions." alt="" coords="1528,83,1621,112"/><area shape="rect" id="node51" href="prothandler_8h.html" title="This handles protocol defaults, PTS, etc." alt="" coords="1645,83,1741,112"/><area shape="rect" id="node53" href="strlcpycat_8h.html" title="prototypes of strlcpy()/strlcat() imported from OpenBSD" alt="" coords="1765,83,1856,112"/><area shape="rect" id="node55" href="utils_8h_source.html" title="utils.h" alt="" coords="269,83,325,112"/><area shape="rect" id="node61" href="winscard__svc_8h.html" title="This demarshalls functions over the message queue and keeps track of clients and their handles..." alt="" coords="1880,83,1992,112"/></map>
</div>
</div>
<p><a href="eventhandler_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9678e82f081429fffb1a5359b747c8cf"></a><!-- doxytag: member="eventhandler.c::EHStatusHandlerThread" ref="a9678e82f081429fffb1a5359b747c8cf" args="(READER_CONTEXT *)" -->
static void&#160;</td><td class="memItemRight" valign="bottom"><b>EHStatusHandlerThread</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb9062cbc4606269cc4ee80a190e6a7c"></a><!-- doxytag: member="eventhandler.c::EHRegisterClientForEvent" ref="adb9062cbc4606269cc4ee80a190e6a7c" args="(int32_t filedes)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>EHRegisterClientForEvent</b> (int32_t filedes)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a37ebfbc3287ee2ea69a60e87fead19e4"></a><!-- doxytag: member="eventhandler.c::EHTryToUnregisterClientForEvent" ref="a37ebfbc3287ee2ea69a60e87fead19e4" args="(int32_t filedes)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8c.html#a37ebfbc3287ee2ea69a60e87fead19e4">EHTryToUnregisterClientForEvent</a> (int32_t filedes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to unregisted a client If no client is found then do not log an error. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1391089c844599baf0cb4c95f8b0f75"></a><!-- doxytag: member="eventhandler.c::EHUnregisterClientForEvent" ref="aa1391089c844599baf0cb4c95f8b0f75" args="(int32_t filedes)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8c.html#aa1391089c844599baf0cb4c95f8b0f75">EHUnregisterClientForEvent</a> (int32_t filedes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Unregister a client and log an error if the client is not found. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af758bdf0f8f42781f0b24a042fda65c9"></a><!-- doxytag: member="eventhandler.c::EHSignalEventToClients" ref="af758bdf0f8f42781f0b24a042fda65c9" args="(void)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8c.html#af758bdf0f8f42781f0b24a042fda65c9">EHSignalEventToClients</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an asynchronous event to any waiting client. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa7099b1830dee344217729a286968252"></a><!-- doxytag: member="eventhandler.c::EHInitializeEventStructures" ref="aa7099b1830dee344217729a286968252" args="(void)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>EHInitializeEventStructures</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d466066c2b259cb542f2a0bed95216a"></a><!-- doxytag: member="eventhandler.c::EHDestroyEventHandler" ref="a9d466066c2b259cb542f2a0bed95216a" args="(READER_CONTEXT *rContext)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>EHDestroyEventHandler</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ff3f91edfe6032ad48c462c96a117d7"></a><!-- doxytag: member="eventhandler.c::EHSpawnEventHandler" ref="a7ff3f91edfe6032ad48c462c96a117d7" args="(READER_CONTEXT *rContext)" -->
LONG&#160;</td><td class="memItemRight" valign="bottom"><b>EHSpawnEventHandler</b> (<a class="el" href="structReaderContext.html">READER_CONTEXT</a> *rContext)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a337175c6345dfa8f40f0d459c50664b8"></a><!-- doxytag: member="eventhandler.c::ClientsWaitingForEvent" ref="a337175c6345dfa8f40f0d459c50664b8" args="" -->
static <a class="el" href="structlist__t.html">list_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8c.html#a337175c6345dfa8f40f0d459c50664b8">ClientsWaitingForEvent</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">list of client file descriptors <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70bd81b80fa11826029c70144319f869"></a><!-- doxytag: member="eventhandler.c::ClientsWaitingForEvent_lock" ref="a70bd81b80fa11826029c70144319f869" args="" -->
pthread_mutex_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="eventhandler_8c.html#a70bd81b80fa11826029c70144319f869">ClientsWaitingForEvent_lock</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">lock for the above list <br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This keeps track of card insertion/removal events and updates ATR, protocol, and status information. </p>

<p>Definition in file <a class="el" href="eventhandler_8c_source.html">eventhandler.c</a>.</p>
</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>