/[pcsclite]/trunk/Drivers/ccid/src/ccid.h
ViewVC logotype

Contents of /trunk/Drivers/ccid/src/ccid.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1399 - (hide annotations) (download)
Mon Mar 14 18:56:53 2005 UTC (8 years, 2 months ago) by rousseau
File MIME type: text/plain
File size: 3195 byte(s)
change licence from GNU GPL to GNU LGPL
1 rousseau 413 /*
2     ccid.h: CCID structures
3     Copyright (C) 2003 Ludovic Rousseau
4    
5 rousseau 1399 This library is free software; you can redistribute it and/or
6     modify it under the terms of the GNU Lesser General Public
7     License as published by the Free Software Foundation; either
8     version 2.1 of the License, or (at your option) any later version.
9 rousseau 413
10 rousseau 1399 This library is distributed in the hope that it will be useful,
11 rousseau 413 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 rousseau 1399 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13     Lesser General Public License for more details.
14 rousseau 413
15 rousseau 1399 You should have received a copy of the GNU Lesser General Public
16     License along with this library; if not, write to the Free Software
17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 rousseau 413 */
19    
20     /*
21     * $Id$
22     */
23    
24     typedef struct
25     {
26     /*
27     * CCID Sequence number
28     */
29 rousseau 1148 unsigned char *pbSeq;
30     unsigned char real_bSeq;
31 rousseau 413
32     /*
33     * VendorID << 16 + ProductID
34     */
35     int readerID;
36    
37     /*
38     * Maximum message length
39     */
40     int dwMaxCCIDMessageLength;
41    
42     /*
43 rousseau 672 * Maximum IFSD
44     */
45     int dwMaxIFSD;
46    
47     /*
48 rousseau 900 * Features supported by the reader (directly from Class Descriptor)
49 rousseau 413 */
50     int dwFeatures;
51    
52 rousseau 693 /*
53 rousseau 900 * PIN support of the reader (directly from Class Descriptor)
54     */
55     char bPINSupport;
56    
57     /*
58 rousseau 693 * Default Clock
59     */
60     int dwDefaultClock;
61    
62     /*
63     * Max Data Rate
64     */
65     int dwMaxDataRate;
66    
67 rousseau 1088 /*
68     * Number of available slots
69     */
70     char bMaxSlotIndex;
71    
72     /*
73     * Slot in use
74     */
75     char bCurrentSlotIndex;
76    
77 rousseau 413 } _ccid_descriptor;
78    
79 rousseau 900 /* Features from dwFeatures */
80 rousseau 685 #define CCID_CLASS_AUTO_CONF_ATR 0x00000002
81 rousseau 413 #define CCID_CLASS_AUTO_VOLTAGE 0x00000008
82 rousseau 691 #define CCID_CLASS_AUTO_BAUD 0x00000020
83 rousseau 1353 #define CCID_CLASS_AUTO_PPS_PROP 0x00000040
84 rousseau 672 #define CCID_CLASS_AUTO_PPS_CUR 0x00000080
85 rousseau 691 #define CCID_CLASS_AUTO_IFSD 0x00000400
86 rousseau 1260 #define CCID_CLASS_CHARACTER 0x00000000
87 rousseau 413 #define CCID_CLASS_TPDU 0x00010000
88     #define CCID_CLASS_SHORT_APDU 0x00020000
89     #define CCID_CLASS_EXTENDED_APDU 0x00040000
90 rousseau 672 #define CCID_CLASS_EXCHANGE_MASK 0x00070000
91 rousseau 413
92 rousseau 900 /* Features from bPINSupport */
93     #define CCID_CLASS_PIN_VERIFY 0x01
94     #define CCID_CLASS_PIN_MODIFY 0x02
95    
96 rousseau 413 /* See CCID specs ch. 4.2.1 */
97 rousseau 1258 #define CCID_ICC_PRESENT_ACTIVE 0x00 /* 00 0000 00 */
98     #define CCID_ICC_PRESENT_INACTIVE 0x01 /* 00 0000 01 */
99     #define CCID_ICC_ABSENT 0x02 /* 00 0000 20 */
100     #define CCID_ICC_STATUS_MASK 0x03 /* 00 0000 11 */
101    
102 rousseau 413 #define CCID_COMMAND_FAILED 0x40 /* 01 0000 00 */
103     #define CCID_TIME_EXTENSION 0x80 /* 10 0000 00 */
104    
105     /* Product identification for special treatments */
106     #define GEMPC433 0x08E64433
107     #define GEMPCKEY 0x08E63438
108     #define GEMPCTWIN 0x08E63437
109     #define CARDMAN3121 0x076B3021
110 rousseau 693 #define LTC31 0x07830003
111 rousseau 1089 #define SCR331DI 0x04E65111
112 rousseau 1225 #define CHERRYXX33 0x046A0005
113 rousseau 1259 #define OZ776 0x0B977762
114 rousseau 1309 #define SPR532 0x04E6E003
115 rousseau 413
116     /* Escape sequence codes */
117     #define ESC_GEMPC_SET_ISO_MODE 1
118     #define ESC_GEMPC_SET_APDU_MODE 2
119    
120    
121 rousseau 1106 int ccid_open_hack(unsigned int reader_index);
122 rousseau 989 void ccid_error(int error, char *file, int line, char *function);
123 rousseau 1106 _ccid_descriptor *get_ccid_descriptor(unsigned int reader_index);
124 rousseau 413
125     /* convert a 4 byte integer in USB format into an int */
126     #define dw2i(a, x) ((((((a[x+3] << 8) + a[x+2]) << 8) + a[x+1]) << 8) + a[x])
127    

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.5