globalplatform
Data Structures | Macros | Typedefs | Functions | Variables
pcsclite.h File Reference

This keeps a list of defines for pcsc-lite. More...

#include <wintypes.h>
Include dependency graph for pcsclite.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SCARD_READERSTATE_A
 
struct  _SCARD_IO_REQUEST
 

Macros

#define MAX_ATR_SIZE   33
 
#define SCARD_PCI_T0   (&g_rgSCardT0Pci)
 
#define SCARD_PCI_T1   (&g_rgSCardT1Pci)
 
#define SCARD_PCI_RAW   (&g_rgSCardRawPci)
 
#define SCARD_S_SUCCESS   0x00000000
 
#define SCARD_E_CANCELLED   0x80100002
 
#define SCARD_E_CANT_DISPOSE   0x8010000E
 
#define SCARD_E_INSUFFICIENT_BUFFER   0x80100008
 
#define SCARD_E_INVALID_ATR   0x80100015
 
#define SCARD_E_INVALID_HANDLE   0x80100003
 
#define SCARD_E_INVALID_PARAMETER   0x80100004
 
#define SCARD_E_INVALID_TARGET   0x80100005
 
#define SCARD_E_INVALID_VALUE   0x80100011
 
#define SCARD_E_NO_MEMORY   0x80100006
 
#define SCARD_F_COMM_ERROR   0x80100013
 
#define SCARD_F_INTERNAL_ERROR   0x80100001
 
#define SCARD_F_UNKNOWN_ERROR   0x80100014
 
#define SCARD_F_WAITED_TOO_LONG   0x80100007
 
#define SCARD_E_UNKNOWN_READER   0x80100009
 
#define SCARD_E_TIMEOUT   0x8010000A
 
#define SCARD_E_SHARING_VIOLATION   0x8010000B
 
#define SCARD_E_NO_SMARTCARD   0x8010000C
 
#define SCARD_E_UNKNOWN_CARD   0x8010000D
 
#define SCARD_E_PROTO_MISMATCH   0x8010000F
 
#define SCARD_E_NOT_READY   0x80100010
 
#define SCARD_E_SYSTEM_CANCELLED   0x80100012
 
#define SCARD_E_NOT_TRANSACTED   0x80100016
 
#define SCARD_E_READER_UNAVAILABLE   0x80100017
 
#define SCARD_W_UNSUPPORTED_CARD   0x80100065
 
#define SCARD_W_UNRESPONSIVE_CARD   0x80100066
 
#define SCARD_W_UNPOWERED_CARD   0x80100067
 
#define SCARD_W_RESET_CARD   0x80100068
 
#define SCARD_W_REMOVED_CARD   0x80100069
 
#define SCARD_E_PCI_TOO_SMALL   0x80100019
 
#define SCARD_E_READER_UNSUPPORTED   0x8010001A
 
#define SCARD_E_DUPLICATE_READER   0x8010001B
 
#define SCARD_E_CARD_UNSUPPORTED   0x8010001C
 
#define SCARD_E_NO_SERVICE   0x8010001D
 
#define SCARD_E_SERVICE_STOPPED   0x8010001E
 
#define SCARD_SCOPE_USER   0x0000
 
#define SCARD_SCOPE_TERMINAL   0x0001
 
#define SCARD_SCOPE_SYSTEM   0x0002
 
#define SCARD_PROTOCOL_UNSET   0x0000
 
#define SCARD_PROTOCOL_T0   0x0001
 
#define SCARD_PROTOCOL_T1   0x0002
 
#define SCARD_PROTOCOL_RAW   0x0004
 
#define SCARD_PROTOCOL_T15   0x0008
 
#define SCARD_PROTOCOL_ANY   (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1)
 
#define SCARD_SHARE_EXCLUSIVE   0x0001
 
#define SCARD_SHARE_SHARED   0x0002
 
#define SCARD_SHARE_DIRECT   0x0003
 
#define SCARD_LEAVE_CARD   0x0000
 
#define SCARD_RESET_CARD   0x0001
 
#define SCARD_UNPOWER_CARD   0x0002
 
#define SCARD_EJECT_CARD   0x0003
 
#define SCARD_UNKNOWN   0x0001
 
#define SCARD_ABSENT   0x0002
 
#define SCARD_PRESENT   0x0004
 
#define SCARD_SWALLOWED   0x0008
 
#define SCARD_POWERED   0x0010
 
#define SCARD_NEGOTIABLE   0x0020
 
#define SCARD_SPECIFIC   0x0040
 
#define SCARD_STATE_UNAWARE   0x0000
 
#define SCARD_STATE_IGNORE   0x0001
 
#define SCARD_STATE_CHANGED   0x0002
 
#define SCARD_STATE_UNKNOWN   0x0004
 
#define SCARD_STATE_UNAVAILABLE   0x0008
 
#define SCARD_STATE_EMPTY   0x0010
 
#define SCARD_STATE_PRESENT   0x0020
 
#define SCARD_STATE_ATRMATCH   0x0040
 
#define SCARD_STATE_EXCLUSIVE   0x0080
 
#define SCARD_STATE_INUSE   0x0100
 
#define SCARD_STATE_MUTE   0x0200
 
#define SCARD_STATE_UNPOWERED   0x0400
 
#define SCARD_W_INSERTED_CARD   0x8010006A
 
#define SCARD_E_UNSUPPORTED_FEATURE   0x8010001F
 
#define SCARD_SCOPE_GLOBAL   0x0003
 
#define SCARD_RESET   0x0001
 
#define SCARD_INSERTED   0x0002
 
#define SCARD_REMOVED   0x0004
 
#define BLOCK_STATUS_RESUME   0x00FF
 
#define BLOCK_STATUS_BLOCKING   0x00FA
 
#define PCSCLITE_CONFIG_DIR   "@confdir_exp@"
 
#define PCSCLITE_IPC_DIR   "/var/run"
 
#define PCSCLITE_READER_CONFIG   PCSCLITE_CONFIG_DIR "/reader.conf"
 
#define PCSCLITE_PUBSHM_FILE   PCSCLITE_IPC_DIR "/pcscd.pub"
 
#define PCSCLITE_CSOCK_NAME   PCSCLITE_IPC_DIR "/pcscd.comm"
 
#define PCSCLITE_SVC_IDENTITY   0x01030000
 
#define INFINITE   0xFFFFFFFF
 
#define PCSCLITE_INFINITE_TIMEOUT   4320000
 
#define PCSCLITE_VERSION_NUMBER   "@VERSION@"
 
#define PCSCLITE_CLIENT_ATTEMPTS   120
 
#define PCSCLITE_MCLIENT_ATTEMPTS   20
 
#define PCSCLITE_STATUS_POLL_RATE   400000
 
#define PCSCLITE_MSG_KEY_LEN   16
 
#define PCSCLITE_RW_ATTEMPTS   100
 
#define PCSCLITE_MAX_APPLICATIONS   16
 
#define PCSCLITE_MAX_APPLICATION_CONTEXTS   16
 
#define PCSCLITE_MAX_APPLICATIONS_CONTEXTS   PCSCLITE_MAX_APPLICATIONS * PCSCLITE_MAX_APPLICATION_CONTEXTS
 
#define PCSCLITE_MAX_READER_CONTEXT_CHANNELS   16
 
#define PCSCLITE_MAX_APPLICATION_CONTEXT_CHANNELS   16
 
#define PCSCLITE_MAX_READERS_CONTEXTS   16
 
#define PCSCLITE_MAX_THREADS   16
 
#define PCSCLITE_STATUS_WAIT   200000
 
#define PCSCLITE_TRANSACTION_TIMEOUT   40
 
#define MAX_READERNAME   52
 
#define MAX_LIBNAME   100
 
#define MAX_DEVICENAME   255
 
#define SCARD_ATR_LENGTH   MAX_ATR_SIZE
 
#define PCSCLITE_MAX_MESSAGE_SIZE   2048
 
#define MAX_BUFFER_SIZE   264
 
#define MAX_BUFFER_SIZE_EXTENDED   (4 + 3 + (1<<16) + 3)
 
#define PCSCLITE_SERVER_ATTEMPTS   5
 

Typedefs

typedef long SCARDCONTEXT
 
typedef SCARDCONTEXT * PSCARDCONTEXT
 
typedef SCARDCONTEXT * LPSCARDCONTEXT
 
typedef long SCARDHANDLE
 
typedef SCARDHANDLE * PSCARDHANDLE
 
typedef SCARDHANDLE * LPSCARDHANDLE
 
typedef SCARD_READERSTATE_A SCARD_READERSTATE
 
typedef SCARD_READERSTATE_APSCARD_READERSTATE_A
 
typedef SCARD_READERSTATE_ALPSCARD_READERSTATE_A
 
typedef struct _SCARD_IO_REQUEST SCARD_IO_REQUEST
 
typedef struct _SCARD_IO_REQUESTPSCARD_IO_REQUEST
 
typedef struct _SCARD_IO_REQUESTLPSCARD_IO_REQUEST
 

Functions

char * pcsc_stringify_error (long)
 

Variables

const typedef SCARD_IO_REQUESTLPCSCARD_IO_REQUEST
 
SCARD_IO_REQUEST g_rgSCardT0Pci
 
SCARD_IO_REQUEST g_rgSCardT1Pci
 
SCARD_IO_REQUEST g_rgSCardRawPci
 

Detailed Description

This keeps a list of defines for pcsc-lite.

Macro Definition Documentation

◆ BLOCK_STATUS_BLOCKING

#define BLOCK_STATUS_BLOCKING   0x00FA

Function is blocking

◆ BLOCK_STATUS_RESUME

#define BLOCK_STATUS_RESUME   0x00FF

Normal resume

◆ INFINITE

#define INFINITE   0xFFFFFFFF

Infinite timeout

◆ MAX_ATR_SIZE

#define MAX_ATR_SIZE   33

Maximum ATR size

◆ MAX_BUFFER_SIZE

#define MAX_BUFFER_SIZE   264

Maximum Tx/Rx Buffer for short APDU

◆ MAX_BUFFER_SIZE_EXTENDED

#define MAX_BUFFER_SIZE_EXTENDED   (4 + 3 + (1<<16) + 3)

enhanced (64K + APDU + Lc + Le) Tx/Rx Buffer

◆ PCSCLITE_CLIENT_ATTEMPTS

#define PCSCLITE_CLIENT_ATTEMPTS   120

Attempts to reach sv

◆ PCSCLITE_INFINITE_TIMEOUT

#define PCSCLITE_INFINITE_TIMEOUT   4320000

50 day infinite t/o

◆ PCSCLITE_MAX_APPLICATION_CONTEXT_CHANNELS

#define PCSCLITE_MAX_APPLICATION_CONTEXT_CHANNELS   16

Maximum channels on an application context

◆ PCSCLITE_MAX_APPLICATION_CONTEXTS

#define PCSCLITE_MAX_APPLICATION_CONTEXTS   16

Maximum contexts by application

◆ PCSCLITE_MAX_APPLICATIONS

#define PCSCLITE_MAX_APPLICATIONS   16

Maximum applications

◆ PCSCLITE_MAX_APPLICATIONS_CONTEXTS

#define PCSCLITE_MAX_APPLICATIONS_CONTEXTS   PCSCLITE_MAX_APPLICATIONS * PCSCLITE_MAX_APPLICATION_CONTEXTS

Maximum of applications contexts that pcscd can accept

◆ PCSCLITE_MAX_MESSAGE_SIZE

#define PCSCLITE_MAX_MESSAGE_SIZE   2048

Transport msg len

◆ PCSCLITE_MAX_READER_CONTEXT_CHANNELS

#define PCSCLITE_MAX_READER_CONTEXT_CHANNELS   16

Maximum channels on a reader context

◆ PCSCLITE_MAX_READERS_CONTEXTS

#define PCSCLITE_MAX_READERS_CONTEXTS   16

Maximum readers context (a slot is count as a reader)

◆ PCSCLITE_MAX_THREADS

#define PCSCLITE_MAX_THREADS   16

Stat change threads

◆ PCSCLITE_MCLIENT_ATTEMPTS

#define PCSCLITE_MCLIENT_ATTEMPTS   20

Attempts to reach sv

◆ PCSCLITE_MSG_KEY_LEN

#define PCSCLITE_MSG_KEY_LEN   16

App ID key length

◆ PCSCLITE_RW_ATTEMPTS

#define PCSCLITE_RW_ATTEMPTS   100

Attempts to rd/wrt

◆ PCSCLITE_SERVER_ATTEMPTS

#define PCSCLITE_SERVER_ATTEMPTS   5

Attempts to reach cl

◆ PCSCLITE_STATUS_POLL_RATE

#define PCSCLITE_STATUS_POLL_RATE   400000

Status polling rate

◆ PCSCLITE_STATUS_WAIT

#define PCSCLITE_STATUS_WAIT   200000

Status Change Sleep

◆ PCSCLITE_SVC_IDENTITY

#define PCSCLITE_SVC_IDENTITY   0x01030000

Service ID

◆ PCSCLITE_TRANSACTION_TIMEOUT

#define PCSCLITE_TRANSACTION_TIMEOUT   40

Transaction timeout

◆ PCSCLITE_VERSION_NUMBER

#define PCSCLITE_VERSION_NUMBER   "@VERSION@"

Current version

◆ SCARD_ABSENT

#define SCARD_ABSENT   0x0002

Card is absent

◆ SCARD_ATR_LENGTH

#define SCARD_ATR_LENGTH   MAX_ATR_SIZE

Maximum ATR size

◆ SCARD_EJECT_CARD

#define SCARD_EJECT_CARD   0x0003

Eject on close

◆ SCARD_INSERTED

#define SCARD_INSERTED   0x0002

Card was inserted

◆ SCARD_LEAVE_CARD

#define SCARD_LEAVE_CARD   0x0000

Do nothing on close

◆ SCARD_NEGOTIABLE

#define SCARD_NEGOTIABLE   0x0020

Ready for PTS

◆ SCARD_POWERED

#define SCARD_POWERED   0x0010

Card is powered

◆ SCARD_PRESENT

#define SCARD_PRESENT   0x0004

Card is present

◆ SCARD_PROTOCOL_ANY

#define SCARD_PROTOCOL_ANY   (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1)

IFD determines prot.

◆ SCARD_PROTOCOL_RAW

#define SCARD_PROTOCOL_RAW   0x0004

Raw active protocol.

◆ SCARD_PROTOCOL_T0

#define SCARD_PROTOCOL_T0   0x0001

T=0 active protocol.

◆ SCARD_PROTOCOL_T1

#define SCARD_PROTOCOL_T1   0x0002

T=1 active protocol.

◆ SCARD_PROTOCOL_T15

#define SCARD_PROTOCOL_T15   0x0008

T=15 protocol.

◆ SCARD_PROTOCOL_UNSET

#define SCARD_PROTOCOL_UNSET   0x0000

protocol not set

◆ SCARD_REMOVED

#define SCARD_REMOVED   0x0004

Card was removed

◆ SCARD_RESET

#define SCARD_RESET   0x0001

Card was reset

◆ SCARD_RESET_CARD

#define SCARD_RESET_CARD   0x0001

Reset on close

◆ SCARD_SCOPE_GLOBAL

#define SCARD_SCOPE_GLOBAL   0x0003

Scope is global

◆ SCARD_SCOPE_SYSTEM

#define SCARD_SCOPE_SYSTEM   0x0002

Scope in system

◆ SCARD_SCOPE_TERMINAL

#define SCARD_SCOPE_TERMINAL   0x0001

Scope in terminal

◆ SCARD_SCOPE_USER

#define SCARD_SCOPE_USER   0x0000

Scope in user space

◆ SCARD_SHARE_DIRECT

#define SCARD_SHARE_DIRECT   0x0003

Raw mode only

◆ SCARD_SHARE_EXCLUSIVE

#define SCARD_SHARE_EXCLUSIVE   0x0001

Exclusive mode only

◆ SCARD_SHARE_SHARED

#define SCARD_SHARE_SHARED   0x0002

Shared mode only

◆ SCARD_SPECIFIC

#define SCARD_SPECIFIC   0x0040

PTS has been set

◆ SCARD_STATE_ATRMATCH

#define SCARD_STATE_ATRMATCH   0x0040

ATR matches card

◆ SCARD_STATE_CHANGED

#define SCARD_STATE_CHANGED   0x0002

State has changed

◆ SCARD_STATE_EMPTY

#define SCARD_STATE_EMPTY   0x0010

Card removed

◆ SCARD_STATE_EXCLUSIVE

#define SCARD_STATE_EXCLUSIVE   0x0080

Exclusive Mode

◆ SCARD_STATE_IGNORE

#define SCARD_STATE_IGNORE   0x0001

Ignore this reader

◆ SCARD_STATE_INUSE

#define SCARD_STATE_INUSE   0x0100

Shared Mode

◆ SCARD_STATE_MUTE

#define SCARD_STATE_MUTE   0x0200

Unresponsive card

◆ SCARD_STATE_PRESENT

#define SCARD_STATE_PRESENT   0x0020

Card inserted

◆ SCARD_STATE_UNAVAILABLE

#define SCARD_STATE_UNAVAILABLE   0x0008

Status unavailable

◆ SCARD_STATE_UNAWARE

#define SCARD_STATE_UNAWARE   0x0000

App wants status

◆ SCARD_STATE_UNKNOWN

#define SCARD_STATE_UNKNOWN   0x0004

Reader unknown

◆ SCARD_STATE_UNPOWERED

#define SCARD_STATE_UNPOWERED   0x0400

Unpowered card

◆ SCARD_SWALLOWED

#define SCARD_SWALLOWED   0x0008

Card not powered

◆ SCARD_UNKNOWN

#define SCARD_UNKNOWN   0x0001

Unknown state

◆ SCARD_UNPOWER_CARD

#define SCARD_UNPOWER_CARD   0x0002

Power down on close

◆ SCARD_W_INSERTED_CARD

#define SCARD_W_INSERTED_CARD   0x8010006A

PC/SC Lite specific extensions