#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include "misc.h"
#include "pcscd.h"
#include "ifdhandler.h"
#include "debuglog.h"
#include "thread_generic.h"
#include "readerfactory.h"
#include "dyn_generic.h"
#include "sys_generic.h"
#include "eventhandler.h"
#include "ifdwrapper.h"
#include "hotplug.h"
#include "strlcpycat.h"
#include "configfile.h"
Go to the source code of this file.
Defines | |
| #define | TRUE 1 |
| #define | FALSE 0 |
| #define | IDENTITY_SHIFT 16 |
| #define | GET_ADDRESS_OPTIONALv1(field, function, code) |
| #define | GET_ADDRESSv1(field, function) |
| #define | GET_ADDRESS_OPTIONALv2(s, code) |
| #define | GET_ADDRESSv2(s) |
| #define | GET_ADDRESS_OPTIONALv3(s, code) |
| #define | GET_ADDRESSv3(s) |
Functions | |
| LONG | RFAllocateReaderSpace (void) |
| LONG | RFAddReader (LPSTR lpcReader, DWORD dwPort, LPSTR lpcLibrary, LPSTR lpcDevice) |
| LONG | RFRemoveReader (LPSTR lpcReader, DWORD dwPort) |
| LONG | RFSetReaderName (PREADER_CONTEXT rContext, LPSTR readerName, LPSTR libraryName, DWORD dwPort, DWORD dwSlot) |
| LONG | RFReaderInfo (LPSTR lpcReader, PREADER_CONTEXT *sReader) |
| LONG | RFReaderInfoNamePort (DWORD dwPort, LPSTR lpcReader, PREADER_CONTEXT *sReader) |
| LONG | RFReaderInfoById (DWORD dwIdentity, PREADER_CONTEXT *sReader) |
| LONG | RFLoadReader (PREADER_CONTEXT rContext) |
| LONG | RFBindFunctions (PREADER_CONTEXT rContext) |
| LONG | RFUnBindFunctions (PREADER_CONTEXT rContext) |
| LONG | RFUnloadReader (PREADER_CONTEXT rContext) |
| LONG | RFCheckSharing (DWORD hCard) |
| LONG | RFLockSharing (DWORD hCard) |
| LONG | RFUnlockSharing (DWORD hCard) |
| LONG | RFUnblockContext (SCARDCONTEXT hContext) |
| LONG | RFUnblockReader (PREADER_CONTEXT rContext) |
| LONG | RFInitializeReader (PREADER_CONTEXT rContext) |
| LONG | RFUnInitializeReader (PREADER_CONTEXT rContext) |
| SCARDHANDLE | RFCreateReaderHandle (PREADER_CONTEXT rContext) |
| LONG | RFFindReaderHandle (SCARDHANDLE hCard) |
| LONG | RFDestroyReaderHandle (SCARDHANDLE hCard) |
| LONG | RFAddReaderHandle (PREADER_CONTEXT rContext, SCARDHANDLE hCard) |
| LONG | RFRemoveReaderHandle (PREADER_CONTEXT rContext, SCARDHANDLE hCard) |
| LONG | RFSetReaderEventState (PREADER_CONTEXT rContext, DWORD dwEvent) |
| LONG | RFCheckReaderEventState (PREADER_CONTEXT rContext, SCARDHANDLE hCard) |
| LONG | RFClearReaderEventState (PREADER_CONTEXT rContext, SCARDHANDLE hCard) |
| LONG | RFCheckReaderStatus (PREADER_CONTEXT rContext) |
| void | RFCleanupReaders (int shouldExit) |
| int | RFStartSerialReaders (const char *readerconf) |
| void | RFReCheckReaderConf (void) |
| void | RFSuspendAllReaders (void) |
| void | RFAwakeAllReaders (void) |
Variables | |
| static PREADER_CONTEXT | sReadersContexts [PCSCLITE_MAX_READERS_CONTEXTS] |
| static DWORD | dwNumReadersContexts = 0 |
| static char * | ConfigFile = NULL |
| static int | ConfigFileCRC = 0 |
| static PCSCLITE_MUTEX | LockMutex = PTHREAD_MUTEX_INITIALIZER |
Definition in file readerfactory.c.
| #define GET_ADDRESS_OPTIONALv1 | ( | field, | |||
| function, | |||||
| code | ) |
Value:
{ \
void *f1 = NULL; \
if (SCARD_S_SUCCESS != DYN_GetAddress(rContext->vHandle, &f1, "IFD_" #function)) \
{ \
code \
} \
rContext->psFunctions.psFunctions_v1.pvf ## field = f1; \
}
| #define GET_ADDRESS_OPTIONALv2 | ( | s, | |||
| code | ) |
Value:
{ \
void *f1 = NULL; \
if (SCARD_S_SUCCESS != DYN_GetAddress(rContext->vHandle, &f1, "IFDH" #s)) \
{ \
code \
} \
rContext->psFunctions.psFunctions_v2.pvf ## s = f1; \
}
| #define GET_ADDRESS_OPTIONALv3 | ( | s, | |||
| code | ) |
Value:
{ \
void *f1 = NULL; \
if (SCARD_S_SUCCESS != DYN_GetAddress(rContext->vHandle, &f1, "IFDH" #s)) \
{ \
code \
} \
rContext->psFunctions.psFunctions_v3.pvf ## s = f1; \
}
| #define GET_ADDRESSv1 | ( | field, | |||
| function | ) |
Value:
GET_ADDRESS_OPTIONALv1(field, function, \
Log1(PCSC_LOG_CRITICAL, "IFDHandler functions missing: " #function ); \
exit(1); )
| #define GET_ADDRESSv2 | ( | s | ) |
Value:
GET_ADDRESS_OPTIONALv2(s, \
Log1(PCSC_LOG_CRITICAL, "IFDHandler functions missing: " #s ); \
exit(1); )
| #define GET_ADDRESSv3 | ( | s | ) |
Value:
GET_ADDRESS_OPTIONALv3(s, \
Log1(PCSC_LOG_CRITICAL, "IFDHandler functions missing: " #s ); \
exit(1); )
1.5.9