~ubuntu-branches/ubuntu/karmic/pcsc-lite/karmic-updates

« back to all changes in this revision

Viewing changes to src/PCSC/pcsclite.h.in

  • Committer: Bazaar Package Importer
  • Author(s): Ludovic Rousseau
  • Date: 2006-10-14 00:35:01 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20061014003501-thwa8ydzqnapajn1
Tags: 1.3.2-3
* urgency high to correct a RC bug
* debian/pcscd.init: really commit a local patch that should already be in
  1.3.2-2.  Closes: #392357 "fails to stop; postinst goes into infinite
  loop"

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
 *  David Corcoran <corcoran@linuxnet.com>
6
6
 *  Ludovic Rousseau <ludovic.rousseau@free.fr>
7
7
 *
8
 
 * $Id: pcsclite.h.in,v 1.4 2006-02-03 13:48:25 rousseau Exp $
 
8
 * $Id: pcsclite.h.in,v 1.5 2006-08-11 18:53:09 rousseau Exp $
9
9
 */
10
10
 
11
11
/**
33
33
typedef SCARDHANDLE *PSCARDHANDLE;
34
34
typedef SCARDHANDLE *LPSCARDHANDLE;
35
35
 
36
 
#define MAX_ATR_SIZE                    33      /* Maximum ATR size */
 
36
#define MAX_ATR_SIZE                    33      /**< Maximum ATR size */
37
37
 
38
38
typedef struct
39
39
{
103
103
#define SCARD_E_NO_SERVICE              0x8010001D
104
104
#define SCARD_E_SERVICE_STOPPED         0x8010001E
105
105
 
106
 
#define SCARD_SCOPE_USER                0x0000  /* Scope in user space */
107
 
#define SCARD_SCOPE_TERMINAL            0x0001  /* Scope in terminal */
108
 
#define SCARD_SCOPE_SYSTEM              0x0002  /* Scope in system */
109
 
 
110
 
#define SCARD_PROTOCOL_UNSET            0x0000  /* protocol not set */
111
 
#define SCARD_PROTOCOL_T0               0x0001  /* T=0 active protocol. */
112
 
#define SCARD_PROTOCOL_T1               0x0002  /* T=1 active protocol. */
113
 
#define SCARD_PROTOCOL_RAW              0x0004  /* Raw active protocol. */
114
 
#define SCARD_PROTOCOL_T15              0x0008  /* T=15 protocol. */
115
 
 
116
 
#define SCARD_PROTOCOL_ANY              (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1)   /* IFD determines prot. */
117
 
 
118
 
#define SCARD_SHARE_EXCLUSIVE           0x0001  /* Exclusive mode only */
119
 
#define SCARD_SHARE_SHARED              0x0002  /* Shared mode only */
120
 
#define SCARD_SHARE_DIRECT              0x0003  /* Raw mode only */
121
 
 
122
 
#define SCARD_LEAVE_CARD                0x0000  /* Do nothing on close */
123
 
#define SCARD_RESET_CARD                0x0001  /* Reset on close */
124
 
#define SCARD_UNPOWER_CARD              0x0002  /* Power down on close */
125
 
#define SCARD_EJECT_CARD                0x0003  /* Eject on close */
126
 
 
127
 
#define SCARD_UNKNOWN                   0x0001  /* Unknown state */
128
 
#define SCARD_ABSENT                    0x0002  /* Card is absent */
129
 
#define SCARD_PRESENT                   0x0004  /* Card is present */
130
 
#define SCARD_SWALLOWED                 0x0008  /* Card not powered */
131
 
#define SCARD_POWERED                   0x0010  /* Card is powered */
132
 
#define SCARD_NEGOTIABLE                0x0020  /* Ready for PTS */
133
 
#define SCARD_SPECIFIC                  0x0040  /* PTS has been set */
134
 
 
135
 
#define SCARD_STATE_UNAWARE             0x0000  /* App wants status */
136
 
#define SCARD_STATE_IGNORE              0x0001  /* Ignore this reader */
137
 
#define SCARD_STATE_CHANGED             0x0002  /* State has changed */
138
 
#define SCARD_STATE_UNKNOWN             0x0004  /* Reader unknown */
139
 
#define SCARD_STATE_UNAVAILABLE         0x0008  /* Status unavailable */
140
 
#define SCARD_STATE_EMPTY               0x0010  /* Card removed */
141
 
#define SCARD_STATE_PRESENT             0x0020  /* Card inserted */
142
 
#define SCARD_STATE_ATRMATCH            0x0040  /* ATR matches card */
143
 
#define SCARD_STATE_EXCLUSIVE           0x0080  /* Exclusive Mode */
144
 
#define SCARD_STATE_INUSE               0x0100  /* Shared Mode */
145
 
#define SCARD_STATE_MUTE                0x0200  /* Unresponsive card */
146
 
#define SCARD_STATE_UNPOWERED           0x0400  /* Unpowered card */
 
106
#define SCARD_SCOPE_USER                0x0000  /**< Scope in user space */
 
107
#define SCARD_SCOPE_TERMINAL            0x0001  /**< Scope in terminal */
 
108
#define SCARD_SCOPE_SYSTEM              0x0002  /**< Scope in system */
 
109
 
 
110
#define SCARD_PROTOCOL_UNSET            0x0000  /**< protocol not set */
 
111
#define SCARD_PROTOCOL_T0               0x0001  /**< T=0 active protocol. */
 
112
#define SCARD_PROTOCOL_T1               0x0002  /**< T=1 active protocol. */
 
113
#define SCARD_PROTOCOL_RAW              0x0004  /**< Raw active protocol. */
 
114
#define SCARD_PROTOCOL_T15              0x0008  /**< T=15 protocol. */
 
115
 
 
116
#define SCARD_PROTOCOL_ANY              (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1)   /**< IFD determines prot. */
 
117
 
 
118
#define SCARD_SHARE_EXCLUSIVE           0x0001  /**< Exclusive mode only */
 
119
#define SCARD_SHARE_SHARED              0x0002  /**< Shared mode only */
 
120
#define SCARD_SHARE_DIRECT              0x0003  /**< Raw mode only */
 
121
 
 
122
#define SCARD_LEAVE_CARD                0x0000  /**< Do nothing on close */
 
123
#define SCARD_RESET_CARD                0x0001  /**< Reset on close */
 
124
#define SCARD_UNPOWER_CARD              0x0002  /**< Power down on close */
 
125
#define SCARD_EJECT_CARD                0x0003  /**< Eject on close */
 
126
 
 
127
#define SCARD_UNKNOWN                   0x0001  /**< Unknown state */
 
128
#define SCARD_ABSENT                    0x0002  /**< Card is absent */
 
129
#define SCARD_PRESENT                   0x0004  /**< Card is present */
 
130
#define SCARD_SWALLOWED                 0x0008  /**< Card not powered */
 
131
#define SCARD_POWERED                   0x0010  /**< Card is powered */
 
132
#define SCARD_NEGOTIABLE                0x0020  /**< Ready for PTS */
 
133
#define SCARD_SPECIFIC                  0x0040  /**< PTS has been set */
 
134
 
 
135
#define SCARD_STATE_UNAWARE             0x0000  /**< App wants status */
 
136
#define SCARD_STATE_IGNORE              0x0001  /**< Ignore this reader */
 
137
#define SCARD_STATE_CHANGED             0x0002  /**< State has changed */
 
138
#define SCARD_STATE_UNKNOWN             0x0004  /**< Reader unknown */
 
139
#define SCARD_STATE_UNAVAILABLE         0x0008  /**< Status unavailable */
 
140
#define SCARD_STATE_EMPTY               0x0010  /**< Card removed */
 
141
#define SCARD_STATE_PRESENT             0x0020  /**< Card inserted */
 
142
#define SCARD_STATE_ATRMATCH            0x0040  /**< ATR matches card */
 
143
#define SCARD_STATE_EXCLUSIVE           0x0080  /**< Exclusive Mode */
 
144
#define SCARD_STATE_INUSE               0x0100  /**< Shared Mode */
 
145
#define SCARD_STATE_MUTE                0x0200  /**< Unresponsive card */
 
146
#define SCARD_STATE_UNPOWERED           0x0400  /**< Unpowered card */
147
147
 
148
148
#endif
149
149
 
150
 
/* PC/SC Lite specific extensions */
 
150
/** PC/SC Lite specific extensions */
151
151
#define SCARD_W_INSERTED_CARD           0x8010006A
152
152
#define SCARD_E_UNSUPPORTED_FEATURE     0x8010001F
153
153
 
154
 
#define SCARD_SCOPE_GLOBAL              0x0003  /* Scope is global */
155
 
 
156
 
#define SCARD_RESET                     0x0001  /* Card was reset */
157
 
#define SCARD_INSERTED                  0x0002  /* Card was inserted */
158
 
#define SCARD_REMOVED                   0x0004  /* Card was removed */
159
 
 
160
 
#define BLOCK_STATUS_RESUME             0x00FF  /* Normal resume */
161
 
#define BLOCK_STATUS_BLOCKING           0x00FA  /* Function is blocking */
 
154
#define SCARD_SCOPE_GLOBAL              0x0003  /**< Scope is global */
 
155
 
 
156
#define SCARD_RESET                     0x0001  /**< Card was reset */
 
157
#define SCARD_INSERTED                  0x0002  /**< Card was inserted */
 
158
#define SCARD_REMOVED                   0x0004  /**< Card was removed */
 
159
 
 
160
#define BLOCK_STATUS_RESUME             0x00FF  /**< Normal resume */
 
161
#define BLOCK_STATUS_BLOCKING           0x00FA  /**< Function is blocking */
162
162
 
163
163
#define PCSCLITE_CONFIG_DIR             "@confdir_exp@"
164
164
 
172
172
#define PCSCLITE_PUBSHM_FILE            PCSCLITE_IPC_DIR "/pcscd.pub"
173
173
#define PCSCLITE_CSOCK_NAME             PCSCLITE_IPC_DIR "/pcscd.comm"
174
174
 
175
 
#define PCSCLITE_SVC_IDENTITY           0x01030000      /* Service ID */
 
175
#define PCSCLITE_SVC_IDENTITY           0x01030000      /**< Service ID */
176
176
 
177
177
#ifndef INFINITE
178
 
#define INFINITE                        0xFFFFFFFF      /* Infinite timeout */
 
178
#define INFINITE                        0xFFFFFFFF      /**< Infinite timeout */
179
179
#endif
180
 
#define PCSCLITE_INFINITE_TIMEOUT       4320000         /* 50 day infinite t/o */
181
 
 
182
 
#define PCSCLITE_VERSION_NUMBER         "@VERSION@"     /* Current version */
183
 
#define PCSCLITE_CLIENT_ATTEMPTS        120             /* Attempts to reach sv */
184
 
#define PCSCLITE_MCLIENT_ATTEMPTS       20              /* Attempts to reach sv */
185
 
#define PCSCLITE_STATUS_POLL_RATE       400000          /* Status polling rate */
186
 
#define PCSCLITE_MSG_KEY_LEN            16              /* App ID key length */
187
 
#define PCSCLITE_RW_ATTEMPTS            100             /* Attempts to rd/wrt */
188
 
 
189
 
/* Maximum applications */
 
180
#define PCSCLITE_INFINITE_TIMEOUT       4320000         /**< 50 day infinite t/o */
 
181
 
 
182
#define PCSCLITE_VERSION_NUMBER         "@VERSION@"     /**< Current version */
 
183
#define PCSCLITE_CLIENT_ATTEMPTS        120             /**< Attempts to reach sv */
 
184
#define PCSCLITE_MCLIENT_ATTEMPTS       20              /**< Attempts to reach sv */
 
185
#define PCSCLITE_STATUS_POLL_RATE       400000          /**< Status polling rate */
 
186
#define PCSCLITE_MSG_KEY_LEN            16              /**< App ID key length */
 
187
#define PCSCLITE_RW_ATTEMPTS            100             /**< Attempts to rd/wrt */
 
188
 
 
189
/** Maximum applications */
190
190
#define PCSCLITE_MAX_APPLICATIONS                       16
191
 
/* Maximum contexts by application */
 
191
/** Maximum contexts by application */
192
192
#define PCSCLITE_MAX_APPLICATION_CONTEXTS               16
193
 
/* Maximum of applications contexts that pcscd can accept */
 
193
/** Maximum of applications contexts that pcscd can accept */
194
194
#define PCSCLITE_MAX_APPLICATIONS_CONTEXTS \
195
195
        PCSCLITE_MAX_APPLICATIONS * PCSCLITE_MAX_APPLICATION_CONTEXTS
196
 
/* Maximum channels on a reader context */
 
196
/** Maximum channels on a reader context */
197
197
#define PCSCLITE_MAX_READER_CONTEXT_CHANNELS            16
198
 
/* Maximum channels on an application context */
 
198
/** Maximum channels on an application context */
199
199
#define PCSCLITE_MAX_APPLICATION_CONTEXT_CHANNELS       16
200
 
/* Maximum readers context (a slot is count as a reader) */
 
200
/** Maximum readers context (a slot is count as a reader) */
201
201
#define PCSCLITE_MAX_READERS_CONTEXTS                   16
202
202
 
203
203
/* PCSCLITE_MAX_READERS is deprecated
204
204
 * use PCSCLITE_MAX_READERS_CONTEXTS instead */
205
205
/* extern int PCSCLITE_MAX_READERS __attribute__ ((deprecated)); */
206
206
 
207
 
#define PCSCLITE_MAX_THREADS            16      /* Stat change threads */
208
 
#define PCSCLITE_STATUS_WAIT            200000  /* Status Change Sleep */
209
 
#define PCSCLITE_TRANSACTION_TIMEOUT    40      /* Transaction timeout */
 
207
#define PCSCLITE_MAX_THREADS            16      /**< Stat change threads */
 
208
#define PCSCLITE_STATUS_WAIT            200000  /**< Status Change Sleep */
 
209
#define PCSCLITE_TRANSACTION_TIMEOUT    40      /**< Transaction timeout */
210
210
#define MAX_READERNAME                  52
211
211
#define MAX_LIBNAME                     100
212
212
#define MAX_DEVICENAME          255
213
213
 
214
214
#ifndef SCARD_ATR_LENGTH
215
 
#define SCARD_ATR_LENGTH                MAX_ATR_SIZE    /* Maximum ATR size */
 
215
#define SCARD_ATR_LENGTH                MAX_ATR_SIZE    /**< Maximum ATR size */
216
216
#endif
217
217
 
218
218
/*
219
 
 * Enhanced messaging has been added to accomodate newer devices which have
220
 
 * more advanced capabilites, such as dedicated secure co-processors which
221
 
 * can stream and encrypt data over USB. In order to used enhanced messaging
222
 
 * you must define PCSCLITE_ENHANCED_MESSAGING in the framework(library),
223
 
 * the daemon, and your application
224
 
 */
225
 
@extended_apdu@
226
 
#ifndef PCSCLITE_ENHANCED_MESSAGING
227
 
#define PCSCLITE_MAX_MESSAGE_SIZE       2048    /* Transport msg len */
228
 
#define MAX_BUFFER_SIZE                 264     /* Maximum Tx/Rx Buffer */
229
 
#define PCSCLITE_SERVER_ATTEMPTS        5       /* Attempts to reach cl */
230
 
#else
231
 
/*
232
219
 * The message and buffer sizes must be multiples of 16.
233
220
 * The max message size must be at least large enough
234
221
 * to accomodate the transmit_struct
235
222
 */
236
 
#define PCSCLITE_MAX_MESSAGE_SIZE       (1<<17) /* enhanced (128K) msg len */
237
 
#define MAX_BUFFER_SIZE                 (1<<15) /* enhanced (32K) Tx/Rx Buffer */
238
 
#define PCSCLITE_SERVER_ATTEMPTS        200     /* To allow larger data reads/writes */
239
 
#endif
 
223
#define PCSCLITE_MAX_MESSAGE_SIZE       2048    /**< Transport msg len */
 
224
#define MAX_BUFFER_SIZE                 264     /**< Maximum Tx/Rx Buffer for short APDU */
 
225
#define MAX_BUFFER_SIZE_EXTENDED        (4 + 3 + (1<<16) + 3)   /**< enhanced (64K + APDU + Lc + Le) Tx/Rx Buffer */
 
226
#define PCSCLITE_SERVER_ATTEMPTS        5       /**< Attempts to reach cl */
240
227
 
241
228
/*
242
229
 * Gets a stringified error response