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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.5