#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 "pcsclite.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.
Definition in file readerfactory.c.
#define GET_ADDRESS_OPTIONALv1 | ( | field, | |||
function, | |||||
code | ) |
Value:
{ \ void *f = NULL; \ if (SCARD_S_SUCCESS != DYN_GetAddress(rContext->vHandle, &f, "IFD_" #function)) \ { \ code \ } \ rContext->psFunctions.psFunctions_v1.pvf ## field = f; \ }
#define GET_ADDRESS_OPTIONALv2 | ( | s, | |||
code | ) |
Value:
{ \ void *f = NULL; \ if (SCARD_S_SUCCESS != DYN_GetAddress(rContext->vHandle, &f, "IFDH" #s)) \ { \ code \ } \ rContext->psFunctions.psFunctions_v2.pvf ## s = f; \ }
#define GET_ADDRESS_OPTIONALv3 | ( | s, | |||
code | ) |
Value:
{ \ void *f = NULL; \ if (SCARD_S_SUCCESS != DYN_GetAddress(rContext->vHandle, &f, "IFDH" #s)) \ { \ code \ } \ rContext->psFunctions.psFunctions_v3.pvf ## s = f; \ }
#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); )