File: driver_8h-source.html

package info (click to toggle)
openct 0.6.14-3
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 3,796 kB
  • ctags: 3,437
  • sloc: ansic: 19,575; sh: 9,107; makefile: 168
file content (99 lines) | stat: -rw-r--r-- 13,834 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>OpenCT: driver.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_48ff4d8e84c7d8bdad9110a7da283b5f.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_877fe36415f52529fd2e180217ad90f9.html">include</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_be5e542b2ca1305501268904b0410904.html">openct</a></div>
<h1>driver.h</h1><a href="driver_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00008"></a>00008 <span class="preprocessor">#ifndef OPENCT_DRIVER_H</span>
<a name="l00009"></a>00009 <span class="preprocessor"></span><span class="preprocessor">#define OPENCT_DRIVER_H</span>
<a name="l00010"></a>00010 <span class="preprocessor"></span>
<a name="l00011"></a>00011 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00013"></a>00013 <span class="preprocessor">#endif</span>
<a name="l00014"></a>00014 <span class="preprocessor"></span>
<a name="l00015"></a>00015 <span class="preprocessor">#include &lt;openct/device.h&gt;</span>
<a name="l00016"></a>00016 
<a name="l00020"></a><a class="code" href="structifd__driver__ops.html">00020</a> <span class="keyword">struct </span><a class="code" href="structifd__driver__ops.html">ifd_driver_ops</a> {
<a name="l00021"></a><a class="code" href="structifd__driver__ops.html#7fe78704cccb77cfb74b777ca715728d">00021</a>         <span class="keywordtype">int</span>             <a class="code" href="structifd__driver__ops.html#7fe78704cccb77cfb74b777ca715728d">default_protocol</a>;
<a name="l00022"></a>00022 
<a name="l00034"></a>00034         int             (*<a class="code" href="structifd__driver__ops.html#e7c3cc074db9e78318de2b3724e615b0">open</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
<a name="l00049"></a>00049         int             (*<a class="code" href="structifd__driver__ops.html#0878891a6e17298e3e7e1410ee9745c9">close</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> * reader);
<a name="l00076"></a>00076         int             (*<a class="code" href="structifd__driver__ops.html#f2de522962059a3a56ab968027e91c24">change_parity</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> parity);
<a name="l00087"></a>00087         int             (*<a class="code" href="structifd__driver__ops.html#ef6ea1368322c8cfd288117d473d8c3a">change_speed</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> speed);
<a name="l00102"></a>00102         int             (*<a class="code" href="structifd__driver__ops.html#fd159b180342da11b01872f7cb0020bf">activate</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader);
<a name="l00113"></a>00113         int             (*<a class="code" href="structifd__driver__ops.html#4fdec0e01964a5d4e1c46037088cf535">deactivate</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader);
<a name="l00138"></a>00138         int             (*<a class="code" href="structifd__driver__ops.html#afa7094557da072235700f64923c72e1">card_status</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot, <span class="keywordtype">int</span> *status);
<a name="l00154"></a>00154         int             (*<a class="code" href="structifd__driver__ops.html#712ea960720966070212c0721e0c48fc">card_reset</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot, <span class="keywordtype">void</span> *atr, size_t atr_len);
<a name="l00169"></a>00169         int             (*<a class="code" href="structifd__driver__ops.html#0f225a09bb2372e3d6ce3a1d426fb43a">card_request</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot,
<a name="l00170"></a>00170                                 time_t timeout, <span class="keyword">const</span> <span class="keywordtype">char</span> *message,
<a name="l00171"></a>00171                                 <span class="keywordtype">void</span> *atr, size_t atr_len);
<a name="l00185"></a>00185         int             (*<a class="code" href="structifd__driver__ops.html#aa13167aeabc61ed8af1d6ea58787dcd">card_eject</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot,
<a name="l00186"></a>00186                                 time_t timeout, <span class="keyword">const</span> <span class="keywordtype">char</span> *message);
<a name="l00193"></a>00193         int             (*<a class="code" href="structifd__driver__ops.html#38edbb0abab013180c965157d86e178f">output</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keyword">const</span> <span class="keywordtype">char</span> *message);
<a name="l00209"></a>00209         int             (*<a class="code" href="structifd__driver__ops.html#2a89a4cd60cf1250550972b68997a097">perform_verify</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader,
<a name="l00210"></a>00210                                 <span class="keywordtype">int</span> slot, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> timeout, <span class="keyword">const</span> <span class="keywordtype">char</span> *prompt,
<a name="l00211"></a>00211                                 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, size_t data_len,
<a name="l00212"></a>00212                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *resp, size_t resp_len);
<a name="l00230"></a>00230         int             (*<a class="code" href="structifd__driver__ops.html#eff6dffc6f9ea7fe59a412b4a192f09d">send</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader,
<a name="l00231"></a>00231                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dad,
<a name="l00232"></a>00232                                 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer,
<a name="l00233"></a>00233                                 size_t len);
<a name="l00247"></a>00247         int             (*<a class="code" href="structifd__driver__ops.html#7b255459833f5882809694993f86a6c3">recv</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader,
<a name="l00248"></a>00248                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dad,
<a name="l00249"></a>00249                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer,
<a name="l00250"></a>00250                                 size_t len,
<a name="l00251"></a>00251                                 <span class="keywordtype">long</span> timeout);
<a name="l00274"></a>00274         int             (*<a class="code" href="structifd__driver__ops.html#027a7ead30c7dfb7355119bf011b77cd">set_protocol</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot, <span class="keywordtype">int</span> protocol);
<a name="l00290"></a>00290         int             (*<a class="code" href="structifd__driver__ops.html#5fa95fb08ef2d77bfacf0815a3e0e55d">transparent</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot,
<a name="l00291"></a>00291                                 <span class="keyword">const</span> <span class="keywordtype">void</span> *sbuf, size_t slen,
<a name="l00292"></a>00292                                 <span class="keywordtype">void</span> *rbuf, size_t rlen);
<a name="l00304"></a>00304         int             (*<a class="code" href="structifd__driver__ops.html#19af854b15071a7b68fc1552d63c35f5">sync_read</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot, <span class="keywordtype">int</span> proto,
<a name="l00305"></a>00305                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> addr,
<a name="l00306"></a>00306                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *rbuf, size_t rlen);
<a name="l00318"></a>00318         int             (*<a class="code" href="structifd__driver__ops.html#718169f8db482fbaa7e993053ab1e370">sync_write</a>)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot, <span class="keywordtype">int</span> proto,
<a name="l00319"></a>00319                                 <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> addr,
<a name="l00320"></a>00320                                 <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *sbuf, size_t slen);
<a name="l00321"></a>00321 
<a name="l00322"></a>00322         <span class="comment">/*Support for transparent access to "escape" */</span>
<a name="l00323"></a>00323         int             (*escape)(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *reader, <span class="keywordtype">int</span> slot,
<a name="l00324"></a>00324                                 <span class="keyword">const</span> <span class="keywordtype">void</span> *sbuf, <span class="keyword">const</span> size_t slen,
<a name="l00325"></a>00325                                 <span class="keywordtype">void</span> *rbuf, size_t rlen);
<a name="l00326"></a>00326 };
<a name="l00327"></a>00327 
<a name="l00328"></a>00328 <span class="keyword">extern</span> <span class="keywordtype">void</span>             ifd_driver_register(<span class="keyword">const</span> <span class="keywordtype">char</span> *,
<a name="l00329"></a>00329                                 <span class="keyword">struct</span> <a class="code" href="structifd__driver__ops.html">ifd_driver_ops</a> *);
<a name="l00330"></a>00330 <span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structifd__driver.html">ifd_driver_t</a> *ifd_driver_get(<span class="keyword">const</span> <span class="keywordtype">char</span> *);
<a name="l00331"></a>00331 <span class="keyword">extern</span> <span class="keywordtype">int</span>              ifd_driver_add_id(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keyword">const</span> <span class="keywordtype">char</span> *);
<a name="l00332"></a>00332 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *     ifd_driver_for_id(<a class="code" href="structifd__devid.html">ifd_devid_t</a> *);
<a name="l00333"></a>00333 
<a name="l00334"></a>00334 <span class="comment">/*</span>
<a name="l00335"></a>00335 <span class="comment"> * Protocol handling for card terminal drivers</span>
<a name="l00336"></a>00336 <span class="comment"> */</span>
<a name="l00337"></a>00337 <span class="keyword">extern</span> ifd_protocol_t * ifd_protocol_select(<a class="code" href="structifd__reader.html">ifd_reader_t</a> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
<a name="l00338"></a>00338 <span class="keyword">extern</span> <span class="keywordtype">int</span>              ifd_protocol_transceive(ifd_protocol_t *proto,
<a name="l00339"></a>00339                                 <span class="keywordtype">int</span> dad,
<a name="l00340"></a>00340                                 <span class="keyword">const</span> <span class="keywordtype">void</span> *, size_t,
<a name="l00341"></a>00341                                 <span class="keywordtype">void</span> *, size_t);
<a name="l00342"></a>00342 <span class="keyword">extern</span> <span class="keywordtype">int</span>              ifd_protocol_resynchronize(ifd_protocol_t *, <span class="keywordtype">int</span>);
<a name="l00343"></a>00343 
<a name="l00344"></a>00344 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00345"></a>00345 <span class="preprocessor"></span>}
<a name="l00346"></a>00346 <span class="preprocessor">#endif</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>
<a name="l00348"></a>00348 <span class="preprocessor">#endif </span><span class="comment">/* OPENCT_DRIVER_H */</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Aug 30 20:21:19 2007 for OpenCT by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>