Files
light-libs/ISO7816/dsmart_card_interface.h
2022-09-13 11:10:52 +08:00

80 lines
2.2 KiB
C

#ifndef _DSMART_CARD_INTERFACE_H
#define _DSMART_CARD_INTERFACE_H
#define DSMART_CARD_OK 0
#define DSMART_CARD_E_ACCESS 1
#define DSMART_CARD_E_DATA_TIMEOUT 2
#define DSMART_CARD_E_NOCARD 3
#define DSMART_CARD_E_NOACT 4
#define DSMART_CARD_E_REMOVED 5
#define DSMART_CARD_E_NO_RX_EV 6
#define DSMART_CARD_E_NO_TX_EV 7
#define DSMART_CARD_E_NO_CRD_EV 8
#define DSMART_CARD_E_ACT_TIMEOUT 9
#define DSMART_CARD_E_DATA_RCV_FAILED 10
#define DSMART_CARD_E_ACTIVATE_FAILED 11
#define DSMART_CARD_E_TX_FULL 12
#define DSMART_CARD_E_PAR_ERR 13
#define DSMART_CARD_E_CRC_ERR 14
#define DSMART_CARD_E_REP_ERR 15
#define DSMART_CARD_E_CWT_TIM 16
#define DSMART_CARD_E_RX_OVER 17
#define DSMART_CARD_STATE_ERR_EVENT 18
#define CARD_PROTOCOL_T0 1
#define CARD_PROTOCOL_T1 2
struct dsmart_card_atr {
unsigned char atr_buffer[64];
unsigned int len; /* length of ATR received */
int errval;
};
struct dsmart_card_rcv {
unsigned char rcv_buffer[256];
int rcv_length;
int time_out;
int errval;
};
struct dsmart_card_xmt {
unsigned char xmt_buffer[256];
int xmt_length;
int time_out;
int errval;
};
struct dsmart_card_timing {
unsigned int wwt;
unsigned int cwt;
unsigned int bwt;
unsigned int bgt;
unsigned int egt;
};
struct dsmart_card_baud {
unsigned char di;
unsigned char fi;
};
enum dsmart_protocol_type {
DSMART_CARD_PROTOCOL_T0 = 0,
DSMART_CARD_PROTOCOL_T1 = 1,
};
/* ioctl encodings */
#define DSMART_CARD_BASE 0xc0
#define DSMART_CARD_IOCTL_SET_PROTOCOL _IOR(DSMART_CARD_BASE, 1, int)
#define DSMART_CARD_IOCTL_DEACTIVATE _IOR(DSMART_CARD_BASE, 2, int)
#define DSMART_CARD_IOCTL_COLD_RESET _IOR(DSMART_CARD_BASE, 3, int)
#define DSMART_CARD_IOCTL_WARM_RESET _IOR(DSMART_CARD_BASE, 4, int)
#define DSMART_CARD_IOCTL_SET_TIMING _IOR(DSMART_CARD_BASE, 5, int)
#define DSMART_CARD_IOCTL_SET_BAUD _IOR(DSMART_CARD_BASE, 6, int)
#define DSMART_CARD_IOCTL_SET_RX_THRESHOLD _IOR(DSMART_CARD_BASE, 7, int)
#define DSMART_CARD_IOCTL_SET_TX_THRESHOLD _IOR(DSMART_CARD_BASE, 8, int)
#define DSMART_CARD_IOCTL_XMT _IOR(DSMART_CARD_BASE, 9, int)
#define DSMART_CARD_IOCTL_RCV _IOR(DSMART_CARD_BASE, 10, int)
#define DSMART_CARD_IOCTL_ATR_RCV _IOR(DSMART_CARD_BASE, 11, int)
#endif