Blame src/defs.h

Packit Service aee942
/*
Packit Service aee942
    defs.h:
Packit Service aee942
    Copyright (C) 2003-2010   Ludovic Rousseau
Packit Service aee942
Packit Service aee942
    This library is free software; you can redistribute it and/or
Packit Service aee942
    modify it under the terms of the GNU Lesser General Public
Packit Service aee942
    License as published by the Free Software Foundation; either
Packit Service aee942
    version 2.1 of the License, or (at your option) any later version.
Packit Service aee942
Packit Service aee942
    This library is distributed in the hope that it will be useful,
Packit Service aee942
    but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service aee942
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service aee942
    Lesser General Public License for more details.
Packit Service aee942
Packit Service aee942
	You should have received a copy of the GNU Lesser General Public License
Packit Service aee942
	along with this library; if not, write to the Free Software Foundation,
Packit Service aee942
	Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Packit Service aee942
*/
Packit Service aee942
Packit Service aee942
#define max( a, b )   ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
Packit Service aee942
Packit Service aee942
#include <pcsclite.h>
Packit Service aee942
Packit Service aee942
#include "openct/proto-t1.h"
Packit Service aee942
Packit Service aee942
typedef struct CCID_DESC
Packit Service aee942
{
Packit Service aee942
	/*
Packit Service aee942
	 * ATR
Packit Service aee942
	 */
Packit Service aee942
	int nATRLength;
Packit Service aee942
	unsigned char pcATRBuffer[MAX_ATR_SIZE];
Packit Service aee942
Packit Service aee942
	/*
Packit Service aee942
	 * Card state
Packit Service aee942
	 */
Packit Service aee942
	unsigned char bPowerFlags;
Packit Service aee942
Packit Service aee942
	/*
Packit Service aee942
	 * T=1 Protocol context
Packit Service aee942
	 */
Packit Service aee942
	t1_state_t t1;
Packit Service aee942
Packit Service aee942
	/* reader name passed to IFDHCreateChannelByName() */
Packit Service aee942
	char *readerName;
Packit Service aee942
} CcidDesc;
Packit Service aee942
Packit Service aee942
typedef enum {
Packit Service aee942
	STATUS_NO_SUCH_DEVICE        = 0xF9,
Packit Service aee942
	STATUS_SUCCESS               = 0xFA,
Packit Service aee942
	STATUS_UNSUCCESSFUL          = 0xFB,
Packit Service aee942
	STATUS_COMM_ERROR            = 0xFC,
Packit Service aee942
	STATUS_DEVICE_PROTOCOL_ERROR = 0xFD,
Packit Service aee942
	STATUS_COMM_NAK              = 0xFE,
Packit Service aee942
	STATUS_SECONDARY_SLOT        = 0xFF
Packit Service aee942
} status_t;
Packit Service aee942
Packit Service aee942
/* Powerflag (used to detect quick insertion removals unnoticed by the
Packit Service aee942
 * resource manager) */
Packit Service aee942
/* Initial value */
Packit Service aee942
#define POWERFLAGS_RAZ 0x00
Packit Service aee942
/* Flag set when a power up has been requested */
Packit Service aee942
#define MASK_POWERFLAGS_PUP 0x01
Packit Service aee942
/* Flag set when a power down is requested */
Packit Service aee942
#define MASK_POWERFLAGS_PDWN 0x02
Packit Service aee942
Packit Service aee942
/* Communication buffer size (max=adpu+Lc+data+Le)
Packit Service aee942
 * we use a 64kB for extended APDU on APDU mode readers */
Packit Service aee942
#define CMD_BUF_SIZE (4 +3 +64*1024 +3)
Packit Service aee942
Packit Service aee942
/* Protocols */
Packit Service aee942
#define T_0 0
Packit Service aee942
#define T_1 1
Packit Service aee942
Packit Service aee942
/* Default communication read timeout in milliseconds */
Packit Service aee942
#define DEFAULT_COM_READ_TIMEOUT (3*1000)
Packit Service aee942
Packit Service aee942
/* DWORD type formating */
Packit Service aee942
#ifdef __APPLE__
Packit Service aee942
/* Apple defines DWORD as uint32_t */
Packit Service aee942
#define DWORD_X "%X"
Packit Service aee942
#define DWORD_D "%d"
Packit Service aee942
#else
Packit Service aee942
/* pcsc-lite defines DWORD as unsigned long */
Packit Service aee942
#define DWORD_X "%lX"
Packit Service aee942
#define DWORD_D "%ld"
Packit Service aee942
#endif
Packit Service aee942
Packit Service aee942
/*
Packit Service aee942
 * communication ports abstraction
Packit Service aee942
 */
Packit Service aee942
#ifdef TWIN_SERIAL
Packit Service aee942
Packit Service aee942
#define OpenPortByName OpenSerialByName
Packit Service aee942
#define OpenPort OpenSerial
Packit Service aee942
#define ClosePort CloseSerial
Packit Service aee942
#define ReadPort ReadSerial
Packit Service aee942
#define WritePort WriteSerial
Packit Service aee942
#include "ccid_serial.h"
Packit Service aee942
Packit Service aee942
#else
Packit Service aee942
Packit Service aee942
#define OpenPortByName OpenUSBByName
Packit Service aee942
#define OpenPort OpenUSB
Packit Service aee942
#define ClosePort CloseUSB
Packit Service aee942
#define ReadPort ReadUSB
Packit Service aee942
#define WritePort WriteUSB
Packit Service aee942
#include "ccid_usb.h"
Packit Service aee942
Packit Service aee942
#endif
Packit Service aee942