Blame src/defs.h

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