oscam-2.26.01-11942-802-wit.../csctapi/ifd_sci_global.h
2026-02-17 09:41:05 +00:00

104 lines
2.4 KiB
C
Executable File

#ifndef _sci_global_h_
#define _sci_global_h_
#define SCI_CLASS_A 1 /* only 5V Vcc to Smart Card */
#define SCI_CLASS_B 2 /* only 3V Vcc to Smart Card */
#define SCI_CLASS_AB 3 /* 5V or 3V Vcc to Smart Card */
#define SCI_NUMBER_OF_CONTROLLERS 2 /* number of SCI controllers */
#define SCI_BUFFER_SIZE 512
#define SCI_CLOCK_STOP_DISABLED 0
#define SCI_CLOCK_STOP_LOW 1
#define SCI_CLOCK_STOP_HIGH 2
#define SCI_MAX_ATR_SIZE 33
#define SCI_MAX_F 80000000
#define SCI_MAX_ETU 0xFFF
#define SCI_MAX_WWT 0xFFFFFFFF
#define SCI_MAX_CWT 0xFFFF
#define SCI_MAX_BWT 0xFFFFFFFF
#define SCI_MAX_EGT 0xFF
#define SCI_MIN_F 1000000
#define SCI_MIN_ETU 8
#define SCI_MIN_WWT 12
#define SCI_MIN_CWT 12
#define SCI_MIN_BWT 971
#define SCI_MIN_EGT 0
#define SCI_SYNC 0x00000001
#define SCI_DATA_ANY 0x00000002
/* Reserved for Future Use defined as 0 */
#define RFU 0
/* error codes */
typedef enum
{
SCI_ERROR_OK = 0,
SCI_ERROR_DRIVER_NOT_INITIALIZED = -1691,
SCI_ERROR_FAIL,
SCI_ERROR_KERNEL_FAIL,
SCI_ERROR_NO_ATR,
SCI_ERROR_TS_CHARACTER_INVALID,
SCI_ERROR_LRC_FAIL,
SCI_ERROR_CRC_FAIL,
SCI_ERROR_LENGTH_FAIL,
SCI_ERROR_PARITY_FAIL,
SCI_ERROR_RX_OVERFLOW_FAIL,
SCI_ERROR_TX_OVERFLOW_FAIL,
SCI_ERROR_TX_UNDERRUN_FAIL,
SCI_ERROR_CARD_NOT_PRESENT,
SCI_ERROR_CARD_NOT_ACTIVATED,
SCI_ERROR_AWT_TIMEOUT,
SCI_ERROR_WWT_TIMEOUT,
SCI_ERROR_CWT_TIMEOUT,
SCI_ERROR_BWT_TIMEOUT,
SCI_ERROR_PARAMETER_OUT_OF_RANGE,
SCI_ERROR_TRANSACTION_ABORTED,
SCI_ERROR_CLOCK_STOP_DISABLED,
SCI_ERROR_TX_PENDING,
SCI_ERROR_ATR_PENDING
}
SCI_ERROR;
/* SCI driver modes */
typedef struct sci_modes
{
int32_t emv2000;
int32_t dma;
int32_t man_act;
int32_t rw_mode;
}
SCI_MODES;
/* SCI communication parameters */
typedef struct sci_parameters
{
unsigned char T;
uint32_t fs;
uint32_t ETU;
uint32_t WWT;
uint32_t CWT;
uint32_t BWT;
uint32_t EGT;
uint32_t clock_stop_polarity;
unsigned char check;
unsigned char P;
unsigned char I;
unsigned char U;
}
SCI_PARAMETERS;
/* SCI ATR status */
typedef enum
{
SCI_WITHOUT_ATR = 0,
SCI_ATR_READY
}
SCI_ATR_STATUS;
#endif /* _sci_global_h_ */