Sophie

Sophie

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

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: reader.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.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>&nbsp;&raquo;&nbsp;<a class="el" href="dir_f67468d866d6eb9fc9120b0a9ddded4e.html">PCSC</a>
  </div>
</div>
<div class="contents">
<h1>reader.h</h1><a href="reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * MUSCLE SmartCard Development ( http://www.linuxnet.com )</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 1999-2005</span>
<a name="l00005"></a>00005 <span class="comment"> *  David Corcoran &lt;corcoran@linuxnet.com&gt;</span>
<a name="l00006"></a>00006 <span class="comment"> * Copyright (C) 1999-2009</span>
<a name="l00007"></a>00007 <span class="comment"> *  Ludovic Rousseau &lt;ludovic.rousseau@free.fr&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * $Id: reader.h.in 4210 2009-05-14 13:14:59Z rousseau $</span>
<a name="l00010"></a>00010 <span class="comment"> */</span>
<a name="l00011"></a>00011 
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef __reader_h__</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define __reader_h__</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="comment">/*</span>
<a name="l00021"></a>00021 <span class="comment"> * Tags for requesting card and reader attributes</span>
<a name="l00022"></a>00022 <span class="comment"> */</span>
<a name="l00023"></a>00023 
<a name="l00024"></a>00024 <span class="preprocessor">#define SCARD_ATTR_VALUE(Class, Tag) ((((ULONG)(Class)) &lt;&lt; 16) | ((ULONG)(Tag)))</span>
<a name="l00025"></a>00025 <span class="preprocessor"></span>
<a name="l00026"></a><a class="code" href="reader_8h.html#ac409d77029bd4c5d53a3653a3c9bced1">00026</a> <span class="preprocessor">#define SCARD_CLASS_VENDOR_INFO     1   </span>
<a name="l00027"></a><a class="code" href="reader_8h.html#afa4010182e2b73a4ef25351eb7d8730a">00027</a> <span class="preprocessor">#define SCARD_CLASS_COMMUNICATIONS  2   </span>
<a name="l00028"></a><a class="code" href="reader_8h.html#a064f818b19ec974371097ab385623b71">00028</a> <span class="preprocessor">#define SCARD_CLASS_PROTOCOL        3   </span>
<a name="l00029"></a><a class="code" href="reader_8h.html#a461e952ec774e5d72d1a3eb871bbb847">00029</a> <span class="preprocessor">#define SCARD_CLASS_POWER_MGMT      4   </span>
<a name="l00030"></a><a class="code" href="reader_8h.html#a4165b491cc3d530c3e59933d0ebd4943">00030</a> <span class="preprocessor">#define SCARD_CLASS_SECURITY        5   </span>
<a name="l00031"></a><a class="code" href="reader_8h.html#a51e081f8f62026f12e3df5ccc720efcb">00031</a> <span class="preprocessor">#define SCARD_CLASS_MECHANICAL      6   </span>
<a name="l00032"></a><a class="code" href="reader_8h.html#aab5654dd9c299bf141b7e97d8d2593c7">00032</a> <span class="preprocessor">#define SCARD_CLASS_VENDOR_DEFINED  7   </span>
<a name="l00033"></a><a class="code" href="reader_8h.html#abf10cf4bc4b1e9a02dae61b10df2c353">00033</a> <span class="preprocessor">#define SCARD_CLASS_IFD_PROTOCOL    8   </span>
<a name="l00034"></a><a class="code" href="reader_8h.html#a9b9fc02612f084a904eb1236c1f1583a">00034</a> <span class="preprocessor">#define SCARD_CLASS_ICC_STATE       9   </span>
<a name="l00035"></a><a class="code" href="reader_8h.html#a4212b8e77d8e35f0cef53b034afbd5ad">00035</a> <span class="preprocessor">#define SCARD_CLASS_SYSTEM     0x7fff   </span>
<a name="l00037"></a><a class="code" href="reader_8h.html#a8c0b0539cf006d7bfef49db7136cda95">00037</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_NAME SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100) </span>
<a name="l00038"></a><a class="code" href="reader_8h.html#a5667d6bcd2fb4b0aa5ea43f85a579518">00038</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_IFD_TYPE SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101) </span>
<a name="l00039"></a><a class="code" href="reader_8h.html#a21105eef90f69895754548688e4b0721">00039</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_IFD_VERSION SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102) </span>
<a name="l00040"></a><a class="code" href="reader_8h.html#ae1143cec3f4ee0f37dee6cdaf8942e8b">00040</a> <span class="preprocessor">#define SCARD_ATTR_VENDOR_IFD_SERIAL_NO SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103) </span>
<a name="l00041"></a><a class="code" href="reader_8h.html#a8c38e24b650a967fbd052bb2a376c492">00041</a> <span class="preprocessor">#define SCARD_ATTR_CHANNEL_ID SCARD_ATTR_VALUE(SCARD_CLASS_COMMUNICATIONS, 0x0110) </span>
<a name="l00042"></a><a class="code" href="reader_8h.html#a2e87e6925548b9fcca3fa0026b82500d">00042</a> <span class="preprocessor">#define SCARD_ATTR_ASYNC_PROTOCOL_TYPES SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0120) </span>
<a name="l00043"></a><a class="code" href="reader_8h.html#afb122c686777ecf51f106bcc88836270">00043</a> <span class="preprocessor">#define SCARD_ATTR_DEFAULT_CLK SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121) </span>
<a name="l00044"></a><a class="code" href="reader_8h.html#a0a30cd55c56ceeb3f97d8c0c91e68d77">00044</a> <span class="preprocessor">#define SCARD_ATTR_MAX_CLK SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122) </span>
<a name="l00045"></a><a class="code" href="reader_8h.html#aa4e83e4f0024961638da8c8608c1c50e">00045</a> <span class="preprocessor">#define SCARD_ATTR_DEFAULT_DATA_RATE SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123) </span>
<a name="l00046"></a><a class="code" href="reader_8h.html#a67cd46e2a022ae72ce6dde4b04c950ff">00046</a> <span class="preprocessor">#define SCARD_ATTR_MAX_DATA_RATE SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124) </span>
<a name="l00047"></a><a class="code" href="reader_8h.html#a338aa843f02a567ea406b0c5bd488620">00047</a> <span class="preprocessor">#define SCARD_ATTR_MAX_IFSD SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125) </span>
<a name="l00048"></a><a class="code" href="reader_8h.html#a2be4573e3c86834b1b35abf66d0053ad">00048</a> <span class="preprocessor">#define SCARD_ATTR_SYNC_PROTOCOL_TYPES SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0126) </span>
<a name="l00049"></a><a class="code" href="reader_8h.html#a33c927bbe78a8eab44869c04783ea0d2">00049</a> <span class="preprocessor">#define SCARD_ATTR_POWER_MGMT_SUPPORT SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131) </span>
<a name="l00050"></a><a class="code" href="reader_8h.html#a60bf2dbb950d448099314aa86c14b2aa">00050</a> <span class="preprocessor">#define SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0140) </span>
<a name="l00051"></a><a class="code" href="reader_8h.html#a86eb3bba6a8a463aa0eac4ada7704785">00051</a> <span class="preprocessor">#define SCARD_ATTR_USER_AUTH_INPUT_DEVICE SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0142) </span>
<a name="l00052"></a><a class="code" href="reader_8h.html#a1ae75dff994bb9cede8b48f3c122b048">00052</a> <span class="preprocessor">#define SCARD_ATTR_CHARACTERISTICS SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150) </span>
<a name="l00054"></a><a class="code" href="reader_8h.html#a76c1d362b156a01b284e8169eaabd4fd">00054</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_PROTOCOL_TYPE SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0201) </span>
<a name="l00055"></a><a class="code" href="reader_8h.html#a447488ba15bce3e75f62f2c65b052030">00055</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_CLK SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202) </span>
<a name="l00056"></a><a class="code" href="reader_8h.html#aab6a1f84654ddb09d47feab98d2be554">00056</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_F SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203) </span>
<a name="l00057"></a><a class="code" href="reader_8h.html#a7940c3ad5296495fad9aa5e04f58c83b">00057</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_D SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204) </span>
<a name="l00058"></a><a class="code" href="reader_8h.html#aedeec28fe350408eccf5b8c98328aaf8">00058</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_N SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205) </span>
<a name="l00059"></a><a class="code" href="reader_8h.html#ad50deb32988b5a8168d7a63ebcf463a6">00059</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_W SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206) </span>
<a name="l00060"></a><a class="code" href="reader_8h.html#afc64b5592340e1cce3479b54dd7560e9">00060</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_IFSC SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207) </span>
<a name="l00061"></a><a class="code" href="reader_8h.html#a1ec6dd8c482a91b0d0bd9e52e5a383f8">00061</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_IFSD SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208) </span>
<a name="l00062"></a><a class="code" href="reader_8h.html#a0684ca7b1180d2f3ed44297005c7f9d4">00062</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_BWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209) </span>
<a name="l00063"></a><a class="code" href="reader_8h.html#af83058f4dcd2051b74c2e3fc6e02781c">00063</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_CWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a) </span>
<a name="l00064"></a><a class="code" href="reader_8h.html#ae6d0cc32ff645d19e9180244c4ef3c81">00064</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_EBC_ENCODING SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b) </span>
<a name="l00065"></a><a class="code" href="reader_8h.html#a5fcd5c979018130c164a64c728f0716d">00065</a> <span class="preprocessor">#define SCARD_ATTR_EXTENDED_BWT SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020c) </span>
<a name="l00067"></a><a class="code" href="reader_8h.html#ae9f8bb5f689263c35c0888bb37f2ca69">00067</a> <span class="preprocessor">#define SCARD_ATTR_ICC_PRESENCE SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0300) </span>
<a name="l00068"></a><a class="code" href="reader_8h.html#a222400e1955f63c956437e786197dd27">00068</a> <span class="preprocessor">#define SCARD_ATTR_ICC_INTERFACE_STATUS SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301) </span>
<a name="l00069"></a><a class="code" href="reader_8h.html#a9c6ee3dccc23e924907e3dc2e29a50f6">00069</a> <span class="preprocessor">#define SCARD_ATTR_CURRENT_IO_STATE SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0302) </span>
<a name="l00070"></a><a class="code" href="reader_8h.html#ae450bada1fa917057610dd0446983784">00070</a> <span class="preprocessor">#define SCARD_ATTR_ATR_STRING SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303) </span>
<a name="l00071"></a><a class="code" href="reader_8h.html#a2563696a9f7abd40684b46db714bfc8b">00071</a> <span class="preprocessor">#define SCARD_ATTR_ICC_TYPE_PER_ATR SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0304) </span>
<a name="l00073"></a><a class="code" href="reader_8h.html#a55df7896fb65a2a942780d383d815071">00073</a> <span class="preprocessor">#define SCARD_ATTR_ESC_RESET SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA000) </span>
<a name="l00074"></a><a class="code" href="reader_8h.html#a69d8dd84f5f433efbfa6e0fce2a95528">00074</a> <span class="preprocessor">#define SCARD_ATTR_ESC_CANCEL SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA003) </span>
<a name="l00075"></a><a class="code" href="reader_8h.html#a1a1d31628ec9f49f79d2dda6651658d6">00075</a> <span class="preprocessor">#define SCARD_ATTR_ESC_AUTHREQUEST SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA005) </span>
<a name="l00076"></a><a class="code" href="reader_8h.html#a42ea634deb1ec51e10722b661aa73d01">00076</a> <span class="preprocessor">#define SCARD_ATTR_MAXINPUT SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA007) </span>
<a name="l00078"></a><a class="code" href="reader_8h.html#a529910b9e28448ee881a55125fc9916f">00078</a> <span class="preprocessor">#define SCARD_ATTR_DEVICE_UNIT SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001) </span>
<a name="l00079"></a><a class="code" href="reader_8h.html#a9ab15f1b788a302737415a13e1546eae">00079</a> <span class="preprocessor">#define SCARD_ATTR_DEVICE_IN_USE SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002) </span>
<a name="l00080"></a>00080 <span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_A SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0003)</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME_A SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0004)</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_W SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0005)</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME_W SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0006)</span>
<a name="l00084"></a><a class="code" href="reader_8h.html#a62d09db2a45663ea726239aeafaac747">00084</a> <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_SUPRESS_T1_IFS_REQUEST SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0007) </span>
<a name="l00086"></a>00086 <span class="preprocessor">#ifdef UNICODE</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME SCARD_ATTR_DEVICE_FRIENDLY_NAME_W </span>
<a name="l00088"></a>00088 <span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME SCARD_ATTR_DEVICE_SYSTEM_NAME_W </span>
<a name="l00089"></a>00089 <span class="preprocessor">#else</span>
<a name="l00090"></a><a class="code" href="reader_8h.html#a362e5f163fda06e0aa6d2964d2a4bbae">00090</a> <span class="preprocessor"></span><span class="preprocessor">#define SCARD_ATTR_DEVICE_FRIENDLY_NAME SCARD_ATTR_DEVICE_FRIENDLY_NAME_A </span>
<a name="l00091"></a><a class="code" href="reader_8h.html#abd1302e7451b1f101898b9bf7d079a6c">00091</a> <span class="preprocessor">#define SCARD_ATTR_DEVICE_SYSTEM_NAME SCARD_ATTR_DEVICE_SYSTEM_NAME_A </span>
<a name="l00092"></a>00092 <span class="preprocessor">#endif</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span>
<a name="l00097"></a><a class="code" href="reader_8h.html#a77839183c3ae7b0cea39fbaff9f9aabb">00097</a> <span class="preprocessor">#define SCARD_CTL_CODE(code) (0x42000000 + (code))</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span>
<a name="l00102"></a><a class="code" href="reader_8h.html#aee38049affbddd17985ccb9c7fddbd59">00102</a> <span class="preprocessor">#define CM_IOCTL_GET_FEATURE_REQUEST SCARD_CTL_CODE(3400)</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span>
<a name="l00104"></a>00104 <span class="preprocessor">#define FEATURE_VERIFY_PIN_START         0x01</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_VERIFY_PIN_FINISH        0x02</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MODIFY_PIN_START         0x03</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MODIFY_PIN_FINISH        0x04</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_GET_KEY_PRESSED          0x05</span>
<a name="l00109"></a><a class="code" href="reader_8h.html#a22729dc39cb7e44fb9f9bc6312cdd470">00109</a> <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_VERIFY_PIN_DIRECT        0x06 </span>
<a name="l00110"></a><a class="code" href="reader_8h.html#aad76cf0fd82ebd046f7d17c1f7cccb98">00110</a> <span class="preprocessor">#define FEATURE_MODIFY_PIN_DIRECT        0x07 </span>
<a name="l00111"></a>00111 <span class="preprocessor">#define FEATURE_MCT_READERDIRECT         0x08</span>
<a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MCT_UNIVERSAL            0x09</span>
<a name="l00113"></a><a class="code" href="reader_8h.html#a63ca99c5a5d14f07451463b5551918b5">00113</a> <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_IFD_PIN_PROPERTIES       0x0A </span>
<a name="l00114"></a>00114 <span class="preprocessor">#define FEATURE_ABORT                    0x0B</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_SET_SPE_MESSAGE          0x0C</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_VERIFY_PIN_DIRECT_APP_ID 0x0D</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_MODIFY_PIN_DIRECT_APP_ID 0x0E</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_WRITE_DISPLAY            0x0F</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_GET_KEY                  0x10</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">#define FEATURE_IFD_DISPLAY_PROPERTIES   0x11</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span>
<a name="l00122"></a>00122 <span class="comment">/* structures used (but not defined) in PC/SC Part 10 revision 2.02.05:</span>
<a name="l00123"></a>00123 <span class="comment"> * &quot;IFDs with Secure Pin Entry Capabilities&quot; */</span>
<a name="l00124"></a>00124 
<a name="l00125"></a>00125 <span class="preprocessor">#include &lt;inttypes.h&gt;</span>
<a name="l00126"></a>00126 
<a name="l00127"></a>00127 <span class="comment">/* Set structure elements aligment on bytes</span>
<a name="l00128"></a>00128 <span class="comment"> * http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html */</span>
<a name="l00129"></a>00129 <span class="preprocessor">#if defined(__APPLE__) | defined(sun)</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(1)</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(push, 1)</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span>
<a name="l00136"></a><a class="code" href="structPCSC__TLV__STRUCTURE.html">00136</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00137"></a>00137 {
<a name="l00138"></a>00138     uint8_t tag;
<a name="l00139"></a>00139     uint8_t length;
<a name="l00140"></a><a class="code" href="structPCSC__TLV__STRUCTURE.html#ae7f66047e6e39ba2bb6af8b95f00d1dd">00140</a>     uint32_t value; 
<a name="l00141"></a>00141 } <a class="code" href="structPCSC__TLV__STRUCTURE.html" title="the structure must be 6-bytes long">PCSC_TLV_STRUCTURE</a>;
<a name="l00142"></a>00142 
<a name="l00145"></a><a class="code" href="reader_8h.html#a3312dc4b9734876727050a2c5585b677">00145</a> <span class="preprocessor">#define HOST_TO_CCID_16(x) (x)</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span><span class="preprocessor">#define HOST_TO_CCID_32(x) (x)</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span>
<a name="l00149"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html">00149</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00150"></a>00150 {
<a name="l00151"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a4a2874da29f1957ebd6f0b190b38b438">00151</a>     uint8_t bTimerOut;  
<a name="l00152"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#abad00652e068ef7bf2c18f96f6d1fbbb">00152</a>     uint8_t bTimerOut2; 
<a name="l00153"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a44dbe2a2044c8f9eef0d7a80259f57d5">00153</a>     uint8_t bmFormatString; 
<a name="l00154"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a661f21061bb895e1c536ac9ae22746cd">00154</a>     uint8_t bmPINBlockString; 
<a name="l00157"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a08e572ab7bc0aa5445e5108015c79cec">00157</a>     uint8_t bmPINLengthFormat; 
<a name="l00161"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a583441d53abd0f8a9cae6c17375da757">00161</a>     uint16_t wPINMaxExtraDigit; 
<a name="l00163"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#af7fc7fede7513fa232908bc29515dd8f">00163</a>     uint8_t bEntryValidationCondition; 
<a name="l00165"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#aa982eed64ef3c29ce03a681ac6598458">00165</a>     uint8_t bNumberMessage; 
<a name="l00166"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a6f97f8ee904173f07127bf7fbc67b465">00166</a>     uint16_t wLangId; 
<a name="l00167"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a2f6bf34a9c77f54d54b6ea12418b471c">00167</a>     uint8_t bMsgIndex; 
<a name="l00168"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#ab375ffb2d2c59ec629532ab19b365473">00168</a>     uint8_t bTeoPrologue[3]; 
<a name="l00169"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#ab72df82de81107fe9ca3ce798ec88c22">00169</a>     uint32_t ulDataLength; 
<a name="l00170"></a><a class="code" href="structPIN__VERIFY__STRUCTURE.html#a23fcd24347c2e71f162fdae11117aebf">00170</a>     uint8_t abData[1]; 
<a name="l00171"></a>00171 } <a class="code" href="structPIN__VERIFY__STRUCTURE.html" title="structure used with FEATURE_VERIFY_PIN_DIRECT">PIN_VERIFY_STRUCTURE</a>;
<a name="l00172"></a>00172 
<a name="l00174"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html">00174</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00175"></a>00175 {
<a name="l00176"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a4a2874da29f1957ebd6f0b190b38b438">00176</a>     uint8_t bTimerOut;  
<a name="l00177"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#abad00652e068ef7bf2c18f96f6d1fbbb">00177</a>     uint8_t bTimerOut2; 
<a name="l00178"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a44dbe2a2044c8f9eef0d7a80259f57d5">00178</a>     uint8_t bmFormatString; 
<a name="l00179"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a661f21061bb895e1c536ac9ae22746cd">00179</a>     uint8_t bmPINBlockString; 
<a name="l00182"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a08e572ab7bc0aa5445e5108015c79cec">00182</a>     uint8_t bmPINLengthFormat; 
<a name="l00186"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a1e2badffbcf88cc679da33fdd5aceef8">00186</a>     uint8_t bInsertionOffsetOld; 
<a name="l00188"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#ad52dcba72627432663692ca596f7171d">00188</a>     uint8_t bInsertionOffsetNew; 
<a name="l00190"></a>00190     uint16_t wPINMaxExtraDigit;
<a name="l00193"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a33dea283bb8816efbc9e41c8c99f71ce">00193</a>     uint8_t bConfirmPIN; 
<a name="l00194"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#af7fc7fede7513fa232908bc29515dd8f">00194</a>     uint8_t bEntryValidationCondition; 
<a name="l00196"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#aa982eed64ef3c29ce03a681ac6598458">00196</a>     uint8_t bNumberMessage; 
<a name="l00197"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a6f97f8ee904173f07127bf7fbc67b465">00197</a>     uint16_t wLangId; 
<a name="l00198"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#affb0107742a198a8931d7a51628fb54d">00198</a>     uint8_t bMsgIndex1; 
<a name="l00199"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#af9ff7efc29c8d96ddd7a3d0fbb1c89c6">00199</a>     uint8_t bMsgIndex2; 
<a name="l00200"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#aabd8b2169723bd6464ae2d45a1e555db">00200</a>     uint8_t bMsgIndex3; 
<a name="l00201"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#ab375ffb2d2c59ec629532ab19b365473">00201</a>     uint8_t bTeoPrologue[3]; 
<a name="l00202"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#ab72df82de81107fe9ca3ce798ec88c22">00202</a>     uint32_t ulDataLength; 
<a name="l00203"></a><a class="code" href="structPIN__MODIFY__STRUCTURE.html#a23fcd24347c2e71f162fdae11117aebf">00203</a>     uint8_t abData[1]; 
<a name="l00204"></a>00204 } <a class="code" href="structPIN__MODIFY__STRUCTURE.html" title="structure used with FEATURE_MODIFY_PIN_DIRECT">PIN_MODIFY_STRUCTURE</a>;
<a name="l00205"></a>00205 
<a name="l00207"></a><a class="code" href="structPIN__PROPERTIES__STRUCTURE.html">00207</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
<a name="l00208"></a><a class="code" href="structPIN__PROPERTIES__STRUCTURE.html#a0c3aaa9ed319fe09c21d707aff134854">00208</a>     uint16_t wLcdLayout; 
<a name="l00209"></a>00209     uint16_t wLcdMaxCharacters;
<a name="l00210"></a>00210     uint16_t wLcdMaxLines;
<a name="l00211"></a>00211     uint8_t bEntryValidationCondition;
<a name="l00212"></a>00212     uint8_t bTimeOut2;
<a name="l00213"></a>00213 } <a class="code" href="structPIN__PROPERTIES__STRUCTURE.html" title="structure used with FEATURE_IFD_PIN_PROPERTIES">PIN_PROPERTIES_STRUCTURE</a>;
<a name="l00214"></a>00214 
<a name="l00215"></a>00215 <span class="comment">/* restore default structure elements alignment */</span>
<a name="l00216"></a>00216 <span class="preprocessor">#if defined(__APPLE__) | defined(sun)</span>
<a name="l00217"></a>00217 <span class="preprocessor"></span><span class="preprocessor">#pragma pack()</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00219"></a>00219 <span class="preprocessor"></span><span class="preprocessor">#pragma pack(pop)</span>
<a name="l00220"></a>00220 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00221"></a>00221 <span class="preprocessor"></span>
<a name="l00222"></a>00222 <span class="preprocessor">#endif</span>
<a name="l00223"></a>00223 <span class="preprocessor"></span>
</pre></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>