98 lines
3.7 KiB
C
98 lines
3.7 KiB
C
/* $NetBSD: scrio.h,v 1.3 1999/01/01 12:41:13 mark Exp $ */
|
|
|
|
/*
|
|
* Copyright 1997
|
|
* Digital Equipment Corporation. All rights reserved.
|
|
*
|
|
* This software is furnished under license and may be used and
|
|
* copied only in accordance with the following terms and conditions.
|
|
* Subject to these conditions, you may download, copy, install,
|
|
* use, modify and distribute this software in source and/or binary
|
|
* form. No title or ownership is transferred hereby.
|
|
*
|
|
* 1) Any source code used, modified or distributed must reproduce
|
|
* and retain this copyright notice and list of conditions as
|
|
* they appear in the source file.
|
|
*
|
|
* 2) No right is granted to use any trade name, trademark, or logo of
|
|
* Digital Equipment Corporation. Neither the "Digital Equipment
|
|
* Corporation" name nor any trademark or logo of Digital Equipment
|
|
* Corporation may be used to endorse or promote products derived
|
|
* from this software without the prior written permission of
|
|
* Digital Equipment Corporation.
|
|
*
|
|
* 3) This software is provided "AS-IS" and any express or implied
|
|
* warranties, including but not limited to, any implied warranties
|
|
* of merchantability, fitness for a particular purpose, or
|
|
* non-infringement are disclaimed. In no event shall DIGITAL be
|
|
* liable for any damages whatsoever, and in particular, DIGITAL
|
|
* shall not be liable for special, indirect, consequential, or
|
|
* incidental damages or damages for lost profits, loss of
|
|
* revenue or loss of use, whether such damages arise in contract,
|
|
* negligence, tort, under statute, in equity, at law or otherwise,
|
|
* even if advised of the possibility of such damage.
|
|
*/
|
|
|
|
/*
|
|
* Definitions for SCR smart card driver
|
|
*/
|
|
|
|
#ifndef _ARM32_SCRIO_H_
|
|
#define _ARM32_SCRIO_H_
|
|
|
|
#define ATR_BUF_MAX 1 + 1 + 4 * 10 + 15 + 1 /* TS + T0 + 4 * TABCD + 15 * TK + TCK */
|
|
#define CMD_BUF_LEN 5
|
|
#define DATA_BUF_MAX 256
|
|
|
|
/* status information for Status */
|
|
#define CARD_REMOVED 0x0000
|
|
#define CARD_INSERTED 0x0001
|
|
#define CARD_ON 0x0002
|
|
|
|
typedef struct {
|
|
int status;
|
|
} ScrStatus;
|
|
|
|
typedef struct {
|
|
unsigned char atrBuf[ATR_BUF_MAX];
|
|
unsigned int atrLen;
|
|
unsigned int status;
|
|
} ScrOn;
|
|
|
|
typedef struct {
|
|
unsigned char command[CMD_BUF_LEN]; /* command */
|
|
int writeBuffer; /* true write, false read */
|
|
unsigned char data[DATA_BUF_MAX]; /* data, write to card, read from card */
|
|
unsigned int dataLen; /* data length, used on write, set of read */
|
|
unsigned char sw1; /* sw1 status */
|
|
unsigned char sw2; /* sw2 status */
|
|
unsigned int status; /* driver status */
|
|
} ScrT0;
|
|
|
|
typedef struct {
|
|
unsigned int status;
|
|
} ScrOff;
|
|
|
|
#define SCRIOSTATUS _IOR ('S', 1, ScrStatus) /* return card in/out, card on/off */
|
|
#define SCRIOON _IOR ('S', 2, ScrOn) /* turns card on, returns ATR */
|
|
#define SCRIOOFF _IOR ('S', 3, ScrOff) /* turns card off */
|
|
#define SCRIOT0 _IOWR('S', 4, ScrT0) /* read/write card data in T0 protocol */
|
|
|
|
|
|
#define ERROR_OK 0 /* no error */
|
|
#define ERROR_PARITY 1 /* too many parity errors */
|
|
#define ERROR_ATR_TCK 2 /* ATR checksum error */
|
|
#define ERROR_ATR_BUF_OVERRUN 3 /* ATR was to big for buf */
|
|
#define ERROR_ATR_FI_INVALID 4 /* FI was invalid */
|
|
#define ERROR_ATR_DI_INVALID 5 /* DI was invalid */
|
|
#define ERROR_ATR_T3 6 /* timer T3 expired */
|
|
#define ERROR_WORK_WAITING 7 /* work waiting expired */
|
|
#define ERROR_BAD_PROCEDURE_BYTE 8 /* bad procedure byte */
|
|
#define ERROR_CARD_REMOVED 9 /* tried to do ioctal that needs card inserted */
|
|
#define ERROR_CARD_ON 10 /* tried to do ioctal that needs card off */
|
|
#define ERROR_CARD_OFF 11 /* tried to do ioctal that needs card on */
|
|
#define ERROR_INVALID_DATALEN 12 /* invalid data length on t0 write */
|
|
#define ERROR_TO_OVERRUN 13 /* invalid data length read from card */
|
|
|
|
#endif /* _ARM32_SCRIO_H_ */
|