📄 prsmc.h
字号:
/*
PrSmc.h
Copyright (C) 2004-2005 DVBStudio. All rights reserved.
*/
#ifndef _PrSMC_H_
#define _PrSMC_H_
#include "PrTypes.h"
PR_BEGIN_EXTERN_C
typedef enum
{
PrSMC_PROTO_T0 = 0x01, //T0协议
PrSMC_PROTO_T1 = 0x02, //T1协议
PrSMC_PROTO_T14 = 0x04 //T14协议
} PRSmcProtocol;
typedef struct
{
PRSmcProtocol supportedProts; //智能卡支持的协议簇
UINT32 smcsNum; //智能卡数量
} PRSmcCapability;
typedef struct
{
UINT8 *header; //拷贝T0协议头的缓冲区
UINT8 *data; //拷贝T0协议数据的缓冲区
UINT8 *sw1; //拷贝T0协议状态字节1的缓冲区
UINT8 *sw2; //拷贝T0协议状态字节2的缓冲区
} PRSmcReadParamsT0;
typedef struct
{
UINT32 reserved; //保留
} PRSmcReadParamsT1;
typedef struct
{
UINT32 *length; //拷贝T14协议数据长度的缓冲区
UINT8 *data; //拷贝T14协议数据的缓冲区
} PRSmcReadParamsT14;
typedef union
{
PRSmcReadParamsT0 t0; //T0协议参数
PRSmcReadParamsT1 t1; //T1协议参数
PRSmcReadParamsT14 t14; //T14协议参数
} PRSmcReadParamsUnion;
typedef struct
{
UINT8 *header; //T0协议头
UINT8 *data; //T0协议数据
UINT8 *sw1; //T0协议状态字节1
UINT8 *sw2; //T0协议状态字节2
} PRSmcWriteParamsT0;
typedef struct
{
UINT32 reserved; //保留
} PRSmcWriteParamsT1;
typedef struct
{
UINT32 *length; //T14协议数据长度
UINT8 *data; //T14协议数据
} PRSmcWriteParamsT14;
typedef union
{
PRSmcWriteParamsT0 t0; //T0协议参数
PRSmcWriteParamsT1 t1; //T1协议参数
PRSmcWriteParamsT14 t14; //T14协议参数
} PRSmcWriteParamsUnion;
typedef enum
{
PrSMC_EVENT_NONE = 0x0, //空事件
PrSMC_EVENT_INSERTED = 0x1, //智能卡插入事件
PrSMC_EVENT_REMOVED = 0x2, //智能卡拔出事件
PrSMC_EVENT_ERROR = 0x4 //智能卡错误事件
} PRSmcEventType;
typedef PRStatus (*PRSmcEventNotify)(UINT32 smc, PRSmcEventType eventType);
PRStatus PrSmcInit(void);
PRStatus PrSmcTerm(void);
PRStatus PrSmcGetCapability(INT32 smc, PRSmcCapability *capability);
PRStatus PrSmcOpen(INT32 smc, PRSmcProtocol prot);
PRStatus PrSmcClose(INT32 smc);
PRStatus PrSmcRegisterEventNotify(INT32 smc, PRSmcEventNotify eventNotify);
PRStatus PrSmcReset(INT32 smc, UINT8 *atr);
PRStatus PrSmcRead(INT32 smc, PRSmcReadParamsUnion *params);
PRStatus PrSmcWrite(INT32 smc, PRSmcWriteParamsUnion *params);
PR_END_EXTERN_C
#endif /* _PrSMC_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -