2
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : pdi.h
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef __PDI_H__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define __PDI_H__
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 /*==== INCLUDES =============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #include "typedefs.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "ccdapi.h"
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /*==== CONSTANTS =============================================================*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #define PD_XX 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #define PD_CC 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #define PD_MM 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #define PD_RR 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #define PD_GMM 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #define PD_SMS 9
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #define PD_SS 11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #define PD_SM 10
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #define PD_TST 15
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #define PDI_MAXDECODEINFOATTRIB 128
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #define PDI_MAXDECODEINFOPRIM 128
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #define PDI_MAXDECODEINFOENTITY 128
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #define PDI_MAXPMEMFORMTYPE 23
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #define PDI_DECODETYPE_L3PDU 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #define PDI_DECODETYPE_L3PDU_N 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #define PDI_DECODETYPE_SAPI 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #define PDI_DECODETYPE_NOPD 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #define PDI_DECODETYPE_NOPD_NOTYPE 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #define PDI_DECODETYPE_NOPD_N 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #define PDI_DECODETYPE_NOPD_NOTYPE_N 6
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #define PDI_DECODETYPE_RR_SHORT 7
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #define PDI_DECODETYPE_MAC_H 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #define PDI_DECODETYPE_MAC_H_N 9
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #define PDI_DECODETYPE_MAC_H_CHECK 10
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #define PDI_DECODETYPE_MAC_H_N_CHECK 11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #define PDI_DECODETYPE_AIM 12
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #define PDI_DECODETYPE_AIM_N 13
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #define PDI_DECODETYPE_AIM_CHECK 14
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #define PDI_DECODETYPE_AIM_N_CHECK 15
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #define PDI_DLL_ERROR -2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 /* returned decoding info */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 UBYTE entity;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 UBYTE dir;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 unsigned char pd;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 unsigned char ti;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 T_MSGBUF *mbuf;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 UBYTE msg_type;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 } T_PDI_CCDMSG;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 typedef int (*T_pdi_prepare_ccdmsg)(T_PDI_CCDMSG* ccdmsg, ULONG values[], int len);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 char type;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 char attrib[PDI_MAXDECODEINFOATTRIB];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 char prim[PDI_MAXDECODEINFOPRIM];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 char entity[PDI_MAXDECODEINFOENTITY];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 UBYTE msg_type;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 T_pdi_prepare_ccdmsg pdi_prepare_ccdmsg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 char** primmbr;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 } T_PDI_DECODEINFO;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 * internal context data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 typedef short T_PDI_PdEntityTable[16];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 T_PDI_PdEntityTable PdEntityTable;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 T_PDI_DECODEINFO*** PrimDecodeInfo;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 T_PDI_DECODEINFO *dinfo;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 USHORT sap;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 USHORT opc;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 UBYTE dir;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 USHORT pmtx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 unsigned char sapi;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 ULONG mtypeval[PDI_MAXPMEMFORMTYPE];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 int mtypenum;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 UBYTE* mi_length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 } T_PDI_CONTEXT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 enum {PDI_NONE, PDI_CCDMSG} decodetype;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 union _pdi
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 T_PDI_CCDMSG ccdmsg;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 } pdi;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 } T_PDI;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 #if !defined (CCDDATA_PREF)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 #if defined (_WIN32_) && defined (CCDDATA_LOAD)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 #define CCDDATA_PREF(pdi_fun) cddl_##pdi_fun
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 #else
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 #define CCDDATA_PREF(pdi_fun) pdi_fun
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 #endif /* _WIN32_ && CCDDATA_LOAD */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 #endif /* !CCDDATA_PREF */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 * create new default context
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 T_PDI_CONTEXT* CCDDATA_PREF(pdi_createDefContext)();
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 * create new context
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 T_PDI_CONTEXT* CCDDATA_PREF(pdi_createContext)(const T_PDI_DECODEINFO *dinfop, unsigned int dicount);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 * destroy context
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 void CCDDATA_PREF(pdi_destroyContext)(T_PDI_CONTEXT *context);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 * mark the begin of a new primitive
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 void CCDDATA_PREF(pdi_startPrim)(T_PDI_CONTEXT *context, ULONG opc);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 * returns extended decode information for a given
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 * ccdedit element descriptor
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 void CCDDATA_PREF(pdi_getDecodeInfo)(T_PDI_CONTEXT *context, const char *ename,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 char *evalue, int evlen, T_PDI *decinfo);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 short CCDDATA_PREF(pdi_getEntityByPD)(const T_PDI_CONTEXT *context, unsigned char pd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 const char* CCDDATA_PREF(pdi_pd2name)(unsigned char pd);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 #endif // __PDI_H__
|