Main Page   Data Structures   File List   Data Fields   Globals   Related Pages  

winscard_scf.c File Reference

This provides PC/SC to SCF shimming. More...

#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/un.h>
#include <smartcard/scf.h>
#include <time.h>
#include "pcsclite.h"
#include "winscard.h"
#include "debug.h"
#include "thread_generic.h"
#include "readerfactory.h"
#include "eventhandler.h"
#include "sys_generic.h"

Go to the source code of this file.

Data Structures

struct  _psChannelMap
 Represents an Application Context Channel. More...

struct  _psContextMap
 Represents the an Application Context on the Client side. More...

struct  _psReaderMap
struct  _psTransmitMap

Defines

#define TRUE   1
#define FALSE   0
#define PCSCLITE_MAX_READERS_CONTEXTS   2

Functions

LONG isOCFServerRunning (void)
LONG SCardLockThread (void)
LONG SCardUnlockThread (void)
LONG SCardEventLock (void)
LONG SCardEventUnlock (void)
LONG PCSC_SCF_Initialize (void)
void EventCallback (SCF_Event_t eventType, SCF_Terminal_t hTerm, void *cbdata)
LONG PCSC_SCF_getATR (SCF_Card_t hCard, LPBYTE pcbAtr, LPDWORD pcbAtrLen)
LONG ConvertStatus (SCF_Status_t status)
LONG SCardGetReaderIndice (LPCSTR ReaderName)
LONG getNewContext (SCARDCONTEXT *phContext)
LONG SCardAddContext (SCARDCONTEXT hContext, SCF_Session_t hSession)
SCF_Session_t getSessionForContext (SCARDCONTEXT hContext)
LONG SCardRemoveContext (SCARDCONTEXT hContext)
LONG SCardGetContextIndice (SCARDCONTEXT hContext)
LONG getNewHandle (SCARDCONTEXT hContext, LPCSTR szReader, SCARDHANDLE *phCard, DWORD)
LONG getCardForHandle (SCARDHANDLE PSCS_hCard, SCF_Card_t *SCF_hCard)
LONG SCardRemoveHandle (SCARDHANDLE hCard)
LONG SCardAddHandle (SCARDHANDLE PCSC_hCard, SCARDCONTEXT hContext, SCF_Session_t hSession, SCF_Terminal_t hTerminal, SCF_Card_t SCF_hCard, int, DWORD)
LONG SCardGetHandleIndice (SCARDHANDLE hCard)
LONG isActiveContextPresent (void)
LONG SCardEstablishContextTH (DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
LONG SCardEstablishContext (DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
LONG SCardReleaseContextTH (SCARDCONTEXT hContext)
LONG SCardReleaseContext (SCARDCONTEXT hContext)
LONG SCardListReadersTH (SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders, LPDWORD pcchReaders)
LONG SCardListReaders (SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders, LPDWORD pcchReaders)
LONG SCardConnectTH (SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol)
LONG SCardConnect (SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol)
LONG SCardDisconnectTH (SCARDHANDLE hCard, DWORD dwDisposition)
LONG SCardReconnectTH (SCARDHANDLE hCard, DWORD dwShareMode, DWORD dwPreferredProtocols, DWORD dwInitialization, LPDWORD pdwActiveProtocol)
LONG SCardReconnect (SCARDHANDLE hCard, DWORD dwShareMode, DWORD dwPreferredProtocols, DWORD dwInitialization, LPDWORD pdwActiveProtocol)
LONG SCardDisconnect (SCARDHANDLE hCard, DWORD dwDisposition)
LONG SCardBeginTransaction (SCARDHANDLE hCard)
LONG SCardEndTransactionTH (SCARDHANDLE hCard, DWORD dwDisposition)
LONG SCardEndTransaction (SCARDHANDLE hCard, DWORD dwDisposition)
LONG SCardCancelTransactionTH (SCARDHANDLE hCard)
LONG SCardCancelTransaction (SCARDHANDLE hCard)
LONG SCardStatusTH (SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
LONG SCardStatus (SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen)
LONG SCardGetStatusChange (SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders)
LONG SCardControl (SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned)
LONG SCardTransmitTH (SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, LPCBYTE pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength)
LONG SCardTransmit (SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, LPCBYTE pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength)
LONG SCardListReaderGroupsTH (SCARDCONTEXT hContext, LPSTR mszGroups, LPDWORD pcchGroups)
LONG SCardListReaderGroups (SCARDCONTEXT hContext, LPSTR mszGroups, LPDWORD pcchGroups)
LONG SCardCancelTH (SCARDCONTEXT hContext)
LONG SCardCancel (SCARDCONTEXT hContext)
LONG SCardGetAttrib (SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr, LPDWORD pcbAttrLen)
LONG SCardSetAttrib (SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr, DWORD cbAttrLen)
LONG SCardCheckReaderAvailability (LPSTR readerName, LONG errorCode)
void SCardUnload (void)
LONG SCardCheckDaemonAvailability (void)

Variables

SCF_Session_t g_hSession = NULL
SCARD_IO_REQUEST g_rgSCardT0Pci
SCARD_IO_REQUEST g_rgSCardT1Pci
SCARD_IO_REQUEST g_rgSCardRawPci
_psTransmitMap psTransmitMap [PCSCLITE_MAX_APPLICATION_CONTEXTS]
_psChannelMap psChannelMap [PCSCLITE_MAX_APPLICATION_CONTEXTS]
_psContextMap psContextMap [PCSCLITE_MAX_APPLICATION_CONTEXTS]
_psReaderMap psReaderMap [PCSCLITE_MAX_READERS_CONTEXTS]
PCSCLITE_MUTEX clientMutex = PTHREAD_MUTEX_INITIALIZER
PCSCLITE_MUTEX EventMutex = PTHREAD_MUTEX_INITIALIZER
PCSCLITE_MUTEX SCFInitMutex = PTHREAD_MUTEX_INITIALIZER
pthread_cond_t EventCondition = PTHREAD_COND_INITIALIZER
char PCSC_Initialized = 0


Detailed Description

This provides PC/SC to SCF shimming.

Definition in file winscard_scf.c.


Generated on Wed Apr 2 02:15:04 2008 for pcsc-lite by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002