38#ifndef __readerfactory_h__
39#define __readerfactory_h__
59 RESPONSECODE (*pvfCreateChannel)(DWORD, DWORD);
60 RESPONSECODE (*pvfCloseChannel)(DWORD);
61 RESPONSECODE (*pvfGetCapabilities)(DWORD, DWORD, PDWORD, PUCHAR);
62 RESPONSECODE (*pvfSetCapabilities)(DWORD, DWORD, DWORD, PUCHAR);
63 RESPONSECODE (*pvfSetProtocolParameters)(DWORD, DWORD, UCHAR, UCHAR,
65 RESPONSECODE (*pvfPowerICC)(DWORD, DWORD, PUCHAR, PDWORD);
68 RESPONSECODE (*pvfICCPresence)(DWORD);
71 RESPONSECODE (*pvfControl)(DWORD, PUCHAR, DWORD, PUCHAR, PDWORD);
79 RESPONSECODE (*pvfCreateChannel)(DWORD, DWORD);
80 RESPONSECODE (*pvfCloseChannel)(DWORD);
81 RESPONSECODE (*pvfGetCapabilities)(DWORD, DWORD, PDWORD, PUCHAR);
82 RESPONSECODE (*pvfSetCapabilities)(DWORD, DWORD, DWORD, PUCHAR);
83 RESPONSECODE (*pvfSetProtocolParameters)(DWORD, DWORD, UCHAR, UCHAR,
85 RESPONSECODE (*pvfPowerICC)(DWORD, DWORD, PUCHAR, PDWORD);
88 RESPONSECODE (*pvfICCPresence)(DWORD);
91 RESPONSECODE (*pvfControl)(DWORD, DWORD, LPCVOID, DWORD, LPVOID,
93 RESPONSECODE (*pvfCreateChannelByName)(DWORD, LPSTR);
145#define REF_READER(reader) { LONG rv; Log2(PCSC_LOG_DEBUG, "RefReader() count was: %d", reader->reference); rv = _RefReader(reader); if (rv != SCARD_S_SUCCESS) return rv; }
146#define UNREF_READER(reader) {Log2(PCSC_LOG_DEBUG, "UnrefReader() count was: %d", reader->reference); _UnrefReader(reader);}
148 LONG RFAllocateReaderSpace(
unsigned int);
149 LONG RFAddReader(
const char *,
int,
const char *,
const char *);
150 LONG RFRemoveReader(
const char *,
int,
int);
151 LONG RFSetReaderName(
READER_CONTEXT *,
const char *,
const char *,
int);
171 void RFCleanupReaders(
void);
172 void RFWaitForReaderInit(
void);
173 int RFStartSerialReaders(
const char *readerconf);
174 void RFReCheckReaderConf(
void);
178#define REMOVE_READER_NO_FLAG 0
179#define REMOVE_READER_FLAG_REMOVED 1
struct _SCARD_IO_HEADER SCARD_IO_HEADER
Use by SCardTransmit()
This keeps a list of defines for pcsc-lite.
LONG SCARDHANDLE
hCard returned by SCardConnect()
int RFGetPowerState(READER_CONTEXT *)
Wait until all connected readers have a chance to power up a possibly inserted card.
SCARDHANDLE hCard
hCard for this connection
_Atomic DWORD dwEventStatus
Recent event that must be sent.
RESPONSECODE(* pthCardEvent)(DWORD, int)
Card Event sync.
pthread_mutex_t * mMutex
Mutex for this connection.
FCT_MAP_V3 psFunctions_v3
API V3.0.
pthread_mutex_t powerState_lock
powerState mutex
pthread_t pthThread
Event polling thread.
_Atomic int32_t contexts
Number of open contexts.
union ReaderContext::@3 psFunctions
driver functions
int slot
Current Reader Slot.
int * pFeeds
Number of shared client to lib.
_Atomic SCARDHANDLE hLockId
Lock Id.
int * pMutex
Number of client to mutex.
int version
IFD Handler version number.
FCT_MAP_V2 psFunctions_v2
API V2.0.
pthread_mutex_t handlesList_lock
lock for the above list
_Atomic int LockCount
number of recursive locks
char * library
Library Path.
struct pubReaderStatesList * readerState
link to the reader state
_Atomic int reference
number of users of the structure
int powerState
auto power off state
char * device
Device Name.
_Atomic LPVOID vHandle
Dlopen handle.
char * pcFriendlyname
FRIENDLYNAME.
char * pcDevicename
DEVICENAME.
Define an exported public reader state structure so each application gets instant notification of cha...