📄 pdi.h
字号:
#ifndef __PDI_H__
#define __PDI_H__
#define PD_XX 1
#define PD_CC 3
#define PD_MM 5
#define PD_RR 6
#define PD_GMM 8
#define PD_SMS 9
#define PD_SS 11
#define PD_SM 10
#define PD_TST 15
#define PDI_MAXDECODEINFOATTRIB 128
#define PDI_MAXDECODEINFOPRIM 128
#define PDI_DECODETYPE_L3PDU 0
#define PDI_DECODETYPE_L3PDU_N 1
#define PDI_DECODETYPE_RRMSG 2
#define PDI_DECODETYPE_SAPI 3
typedef struct
{
char type;
char attrib[PDI_MAXDECODEINFOATTRIB];
char prim[PDI_MAXDECODEINFOPRIM];
} T_PDI_DECODEINFO;
/*
* internal context data
*/
typedef short T_PDI_PdEntityTable[16];
typedef struct
{
T_PDI_PdEntityTable PdEntityTable;
T_PDI_DECODEINFO*** PrimDecodeInfo;
T_PDI_DECODEINFO *dinfo;
USHORT sap;
USHORT opc;
USHORT dir;
USHORT pmtx;
unsigned char sapi;
} T_PDI_CONTEXT;
/*
* returnd decoding info
*/
typedef struct
{
SHORT entity;
USHORT dir;
unsigned char pd;
unsigned char ti;
T_MSGBUF *mbuf;
} T_PDI_CCDMSG;
typedef struct
{
enum {PDI_NONE, PDI_CCDMSG} decodetype;
union _pdi
{
T_PDI_CCDMSG ccdmsg;
} pdi;
} T_PDI;
/*
* create new context
*/
T_PDI_CONTEXT* pdi_createContext(const T_PDI_DECODEINFO *dinfop, unsigned int dicount);
/*
* destroy context
*/
void pdi_destroyContext(T_PDI_CONTEXT *context);
/*
* mark the begin of a new primitive
*/
void pdi_startPrim(T_PDI_CONTEXT *context, ULONG opc);
/*
* returns extended decode information for a given
* ccdedit element descriptor
*/
void pdi_getDecodeInfo(T_PDI_CONTEXT *context, const char *ename,
char *evalue, int evlen, T_PDI *decinfo);
short pdi_getEntityByPD(T_PDI_CONTEXT *context, unsigned char pd);
const char* pdi_pd2name(unsigned char pd);
#endif // __PDI_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -