File:  [Qemu by Fabrice Bellard] / qemu / libcacard / vcardt.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 19:52:24 2018 UTC (3 years, 7 months ago) by root
Branches: qemu, MAIN
CVS tags: qemu1101, HEAD
qemu 1.1.1

    1: /*
    2:  * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
    3:  * See the COPYING.LIB file in the top-level directory.
    4:  */
    5: #ifndef VCARDT_H
    6: #define VCARDT_H 1
    7: 
    8: /*
    9:  * these should come from some common spice header file
   10:  */
   11: #include <assert.h>
   12: #ifndef MIN
   13: #define MIN(x, y) ((x) > (y) ? (y) : (x))
   14: #define MAX(x, y) ((x) > (y) ? (x) : (y))
   15: #endif
   16: 
   17: typedef struct VCardStruct VCard;
   18: typedef struct VCardAPDUStruct VCardAPDU;
   19: typedef struct VCardResponseStruct VCardResponse;
   20: typedef struct VCardBufferResponseStruct VCardBufferResponse;
   21: typedef struct VCardAppletStruct VCardApplet;
   22: typedef struct VCardAppletPrivateStruct VCardAppletPrivate;
   23: typedef struct VCardKeyStruct VCardKey;  /* opaque */
   24: typedef struct VCardEmulStruct VCardEmul;
   25: 
   26: #define MAX_CHANNEL 4
   27: 
   28: /* create an ATR with appropriate historical bytes */
   29: #define VCARD_ATR_PREFIX(size) 0x3b, 0x68+(size), 0x00, 0xff, \
   30:                                'V', 'C', 'A', 'R', 'D', '_'
   31: 
   32: 
   33: typedef enum {
   34:     VCARD_DONE,
   35:     VCARD_NEXT,
   36:     VCARD_FAIL
   37: } VCardStatus;
   38: 
   39: typedef enum {
   40:     VCARD_FILE_SYSTEM,
   41:     VCARD_VM,
   42:     VCARD_DIRECT
   43: } VCardType;
   44: 
   45: typedef enum {
   46:     VCARD_POWER_ON,
   47:     VCARD_POWER_OFF
   48: } VCardPower;
   49: 
   50: typedef VCardStatus (*VCardProcessAPDU)(VCard *card, VCardAPDU *apdu,
   51:                                         VCardResponse **response);
   52: typedef VCardStatus (*VCardResetApplet)(VCard *card, int channel);
   53: typedef void (*VCardAppletPrivateFree) (VCardAppletPrivate *);
   54: typedef void (*VCardEmulFree) (VCardEmul *);
   55: typedef void (*VCardGetAtr) (VCard *, unsigned char *atr, int *atr_len);
   56: 
   57: struct VCardBufferResponseStruct {
   58:     unsigned char *buffer;
   59:     int buffer_len;
   60:     unsigned char *current;
   61:     int len;
   62: };
   63: 
   64: #endif

unix.superglobalmegacorp.com