| /* | 
 |  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. | 
 |  * See the COPYING.LIB file in the top-level directory. | 
 |  */ | 
 | #ifndef VCARDT_H | 
 | #define VCARDT_H 1 | 
 |  | 
 | /* | 
 |  * these should come from some common spice header file | 
 |  */ | 
 | #include <assert.h> | 
 | #ifndef MIN | 
 | #define MIN(x, y) ((x) > (y) ? (y) : (x)) | 
 | #define MAX(x, y) ((x) > (y) ? (x) : (y)) | 
 | #endif | 
 |  | 
 | typedef struct VCardStruct VCard; | 
 | typedef struct VCardAPDUStruct VCardAPDU; | 
 | typedef struct VCardResponseStruct VCardResponse; | 
 | typedef struct VCardBufferResponseStruct VCardBufferResponse; | 
 | typedef struct VCardAppletStruct VCardApplet; | 
 | typedef struct VCardAppletPrivateStruct VCardAppletPrivate; | 
 | typedef struct VCardKeyStruct VCardKey;  /* opaque */ | 
 | typedef struct VCardEmulStruct VCardEmul; | 
 |  | 
 | #define MAX_CHANNEL 4 | 
 |  | 
 | /* create an ATR with appropriate historical bytes */ | 
 | #define VCARD_ATR_PREFIX(size) 0x3b, 0x66+(size), 0x00, 0xff, \ | 
 |                                'V', 'C', 'A', 'R', 'D', '_' | 
 |  | 
 |  | 
 | typedef enum { | 
 |     VCARD_DONE, | 
 |     VCARD_NEXT, | 
 |     VCARD_FAIL | 
 | } VCardStatus; | 
 |  | 
 | typedef enum { | 
 |     VCARD_FILE_SYSTEM, | 
 |     VCARD_VM, | 
 |     VCARD_DIRECT | 
 | } VCardType; | 
 |  | 
 | typedef enum { | 
 |     VCARD_POWER_ON, | 
 |     VCARD_POWER_OFF | 
 | } VCardPower; | 
 |  | 
 | typedef VCardStatus (*VCardProcessAPDU)(VCard *card, VCardAPDU *apdu, | 
 |                                         VCardResponse **response); | 
 | typedef VCardStatus (*VCardResetApplet)(VCard *card, int channel); | 
 | typedef void (*VCardAppletPrivateFree) (VCardAppletPrivate *); | 
 | typedef void (*VCardEmulFree) (VCardEmul *); | 
 | typedef void (*VCardGetAtr) (VCard *, unsigned char *atr, int *atr_len); | 
 |  | 
 | struct VCardBufferResponseStruct { | 
 |     unsigned char *buffer; | 
 |     int buffer_len; | 
 |     unsigned char *current; | 
 |     int len; | 
 | }; | 
 |  | 
 | #endif |