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 : ccd.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 : Condat Coder Decoder
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 | Global function prototypes
|
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
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #ifndef CCD_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #define CCD_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /* Start addresses of ccddata tables */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #ifndef CCD_C
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 extern const T_CCD_VarTabEntry* mvar;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 extern const T_CCD_SpareTabEntry* spare;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 extern const T_CCD_CalcTabEntry* calc;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 extern const T_CCD_CompTabEntry* mcomp;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 extern const T_CCD_ElemTabEntry* melem;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 extern const T_CCD_CalcIndex* calcidx;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 extern const T_CCD_ValTabEntry* mval;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #endif /* !CCD_C */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 * Chain of error information.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 typedef struct ccd_error_list
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 T_CCD_ERR_ENTRY entry;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 struct ccd_error_list *next;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 } T_CCD_ERR_LIST;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 * Head of the error information chain.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 typedef struct ccd_err_list_head
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 T_CCD_ERR_LIST *first_error;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 T_CCD_ERR_LIST **act_error;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 int num_errors;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 } T_CCD_ERR_LIST_HEAD;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 typedef struct ccd_store_list
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 ULONG store[3];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 /* for future use to extend register capacity */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 /* T_CCD_STORE_LIST *next; */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 } T_CCD_STORE_LIST;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 * CCD list of all tasks
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 typedef struct ccd_task_table
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 T_CCD_Globs* ccd_globs;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 U8* decmsgbuf;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 T_CCD_ERR_LIST_HEAD* ccd_err_list;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 T_CCD_STORE_LIST* ccd_store;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 } T_CCD_TASK_TABLE;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 * Macros for forcing n-byte aligned addresses to byte arrays
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #ifndef BUFFER_ALIGNMENT
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 #define BUFFER_ALIGNMENT 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 #define ALIGN_BUF(uabuf) (UBYTE*) ((((U32)uabuf) + BUFFER_ALIGNMENT) & \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 (~BUFFER_ALIGNMENT))
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 * Error behaviour to use with ccd_setError()
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 #ifdef BREAK
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 #undef BREAK
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 #define BREAK 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 #define CONTINUE 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 #define END_OF_COMPOSITION 0x7e
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 * Functions defined in ccd.c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 EXTERN BOOL ccd_conditionOK (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 EXTERN BOOL ccd_calculateRep (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 ULONG *repeat,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 ULONG *max_repeat,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 EXTERN void ccd_performOperations (ULONG num_of_ops,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 ULONG op_def_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 EXTERN void ccd_encodeComposition (const ULONG c_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 EXTERN void ccd_decodeComposition (const ULONG c_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 extern int ccd_check_pointer (U8* ptr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 /* from ccd_err.c */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 extern void ccd_setError (T_CCD_Globs *globs,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 UBYTE ErrCode,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 UBYTE Action,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 USHORT first_par, ...);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 extern void ccd_recordFault (T_CCD_Globs *globs,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 UBYTE ErrCode,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 UBYTE Action,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 T_ERR_INFO error_info,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 U8 *err_IEaddr);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 extern void ccd_err_reset (T_CCD_ERR_LIST_HEAD* eentry);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 extern void ccd_err_free (T_CCD_ERR_LIST_HEAD* eentry);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 extern int ccd_err_init (T_CCD_ERR_LIST_HEAD** eentry);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 extern void ccd_err_exit (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 extern T_CCD_Globs* ccd_GetGlobVars (T_CCD_ERR_LIST_HEAD** eentry,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 T_CCD_STORE_LIST** stoentry);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 extern void ccd_FreeGlobVars (T_CCD_Globs* globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 extern void ccd_common_decode_init (U16 l_buf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 U16 o_buf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 U8 *buf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 extern void ccd_dump_msg (U16 l_buf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 U16 o_buf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 U8 *buf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 /* from ccd_store.c */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 extern void ccd_store_exit (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 extern UBYTE ccd_writeStore (T_CCD_Globs *globs, ULONG regNo, ULONG value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 extern UBYTE ccd_getStore (T_CCD_Globs *globs, ULONG regNo, ULONG *value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 extern int ccd_store_init (T_CCD_STORE_LIST** stoentry);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 /* from ccd_patch.c */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 extern int ccd_patch (T_CCD_Globs* globs, int validflag);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 *
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 * Functions defined in cdc_std.c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 * STANDARD codecs
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 EXTERN SHORT cdc_std_decode (const ULONG c_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 EXTERN SHORT cdc_std_encode (const ULONG c_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 EXTERN void cdc_decodeElemvalue (ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 ULONG *repeat,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 EXTERN void cdc_encodeElemvalue (ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 ULONG repeat,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 #ifdef DEBUG_CCD
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 EXTERN void TRACE_CCD (T_CCD_Globs *globs,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 char *format, ...);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 BOOL gotTag;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 BOOL gotLen;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 } T_TLV_SORT;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 * Functions defined in cdc_com.c
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 EXTERN void cdc_BCD_decode (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 UBYTE startDigit,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 EXTERN void cdc_BCD_encode (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 UBYTE startDigit,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 EXTERN SHORT cdc_tlv_decode (const ULONG c_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 const T_TLV_SORT *tlv_inf,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 EXTERN void cdc_tlv_encode (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 UBYTE lenT,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 UBYTE lenL,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 EXTERN void cdc_GSM_start (T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 EXTERN U16 cdc_isPresent (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 EXTERN BOOL is_pointer_type (const ULONG e_ref);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 EXTERN BOOL is_variable_type (const ULONG e_ref);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 EXTERN SHORT PER_CommonBegin (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 ULONG *maxRep,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 EXTERN U8 *PER_allocmem (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 ULONG repeat,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 EXTERN USHORT PER_allocmem_and_update (const ULONG e_ref,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 ULONG repeat,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 * Rest of the CCD coding functions e.g. GSM4_TLV, CSN1_S1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 * Functions used for standard IEs of GSM
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 EXTERN SHORT cdc_gsm1v_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 EXTERN SHORT cdc_gsm1v_encode (const ULONG c_Ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 EXTERN SHORT cdc_gsm1tv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 EXTERN SHORT cdc_gsm1tv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 EXTERN SHORT cdc_gsm2t_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 EXTERN SHORT cdc_gsm2t_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 EXTERN SHORT cdc_gsm3v_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 EXTERN SHORT cdc_gsm3v_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 EXTERN SHORT cdc_gsm3tv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 EXTERN SHORT cdc_gsm3tv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 EXTERN SHORT cdc_gsm4lv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 EXTERN SHORT cdc_gsm4lv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 EXTERN SHORT cdc_gsm4tlv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 EXTERN SHORT cdc_gsm4tlv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 EXTERN SHORT cdc_gsm5v_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 EXTERN SHORT cdc_gsm5v_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 EXTERN SHORT cdc_gsm5tv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 EXTERN SHORT cdc_gsm5tv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 EXTERN SHORT cdc_gsm5tlv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 EXTERN SHORT cdc_gsm5tlv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 EXTERN SHORT cdc_gsm6tlv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 EXTERN SHORT cdc_gsm6tlv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 EXTERN SHORT cdc_gsm7lv_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 EXTERN SHORT cdc_gsm7lv_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 * Functions used for BCD digits
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 EXTERN SHORT cdc_bcdodd_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 EXTERN SHORT cdc_bcdodd_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 EXTERN SHORT cdc_bcdeven_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 EXTERN SHORT cdc_bcdeven_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 EXTERN SHORT cdc_bcd_nofill_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 EXTERN SHORT cdc_bcd_nofill_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 EXTERN SHORT cdc_bcd_mnc_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 EXTERN SHORT cdc_bcd_mnc_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 * Functions used for ASN1 BER
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 EXTERN SHORT cdc_gsm1asn_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 EXTERN SHORT cdc_gsm1asn_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 * Functions used for rest octets
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 EXTERN const UBYTE padding_bits[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 EXTERN const UBYTE padding_bits_prev[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 #define GET_HL(bit) (padding_bits[globs->bitpos%8] ^ bit)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 #define GET_HL_PREV(bit) (padding_bits_prev[globs->bitpos%8] ^ bit)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 EXTERN SHORT cdc_csn1_s1_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 EXTERN SHORT cdc_csn1_s1_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 EXTERN SHORT cdc_csn1_s0_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 EXTERN SHORT cdc_csn1_s0_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 EXTERN SHORT cdc_csn1_shl_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 EXTERN SHORT cdc_csn1_shl_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 EXTERN SHORT cdc_padd_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 EXTERN SHORT cdc_padd_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 EXTERN SHORT cdc_padd_0_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 EXTERN SHORT cdc_padd_0_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 EXTERN SHORT cdc_hl_flag_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 EXTERN SHORT cdc_hl_flag_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 EXTERN SHORT cdc_csn1_concat_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 EXTERN SHORT cdc_csn1_concat_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 EXTERN SHORT cdc_break_cond_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 EXTERN SHORT cdc_break_cond_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 EXTERN SHORT cdc_csn1_choice1_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 EXTERN SHORT cdc_csn1_choice1_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 EXTERN SHORT cdc_csn1_choice2_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 EXTERN SHORT cdc_csn1_choice2_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 EXTERN SHORT cdc_csn1_shl_opt_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 EXTERN SHORT cdc_csn1_shl_opt_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 EXTERN SHORT cdc_csn1_s1_opt_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 EXTERN SHORT cdc_csn1_s1_opt_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 EXTERN SHORT cdc_csn1_s0_opt_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 EXTERN SHORT cdc_csn1_s0_opt_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 * Functions used for fax and data
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 EXTERN SHORT cdc_t30_ident_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 EXTERN SHORT cdc_t30_ident_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 * Functions and types used for decoding frequency lists, fdd_cell_information
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 * and tdd_cell_information
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 #if defined CCD_TEST
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 #include <stdlib.h>
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 #define MALLOC(P,S) P = (void*)malloc(S)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 #define MFREE(P) free(P)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 #endif
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 U8 length;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 U8 count;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 } T_W_PARAM;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 EXTERN const T_W_PARAM param_1024[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 EXTERN const T_W_PARAM param_512[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 #define BITOFFSET_LIST 1024
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 #define T_LIST_MAX_SIZE 128 /* 1024/8 = 128 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 typedef struct
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 {
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 U8 channels [T_LIST_MAX_SIZE];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 } T_LIST;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 #define FDD_CI_LIST 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 #define TDD_CI_LIST 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 #define FREQUENCY_LIST 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 EXTERN U8 ByteBitMask[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 EXTERN long for_modulo (long a, long b);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 EXTERN void cdc_decode_param (const T_W_PARAM *param,short *w, U16 ListLength, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 EXTERN void cdc_decode_frequencies (short original_range, short *w, short offset, U8 callerID, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 EXTERN SHORT cdc_freq_list_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 EXTERN SHORT cdc_freq_list_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 EXTERN SHORT cdc_fdd_ci_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 EXTERN SHORT cdc_fdd_ci_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 EXTERN SHORT cdc_tdd_ci_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 EXTERN SHORT cdc_tdd_ci_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 * Functions used for ASN1 PER
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 EXTERN void PER_Decode_ASN1_CHOICE_alterative (const ULONG e_ref, T_ENUM UnionTag, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 EXTERN void PER_Encode_ASN1_CHOICE_alterative (const ULONG e_ref, T_ENUM UnionTag, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 EXTERN SHORT cdc_asn1_choice_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 EXTERN SHORT cdc_asn1_choice_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 EXTERN SHORT cdc_asn1_integ_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 EXTERN SHORT cdc_asn1_integ_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 EXTERN SHORT cdc_asn1_octet_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 EXTERN SHORT cdc_asn1_octet_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 EXTERN SHORT cdc_asn1_seq_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 EXTERN SHORT cdc_asn1_seq_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 EXTERN SHORT cdc_bitstring_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 EXTERN SHORT cdc_bitstring_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 * Functions used for ASN1 PER extensible
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 EXTERN const UBYTE bitSize[];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 EXTERN U32 Read_NormallySmallNonNegativeWholeNr (T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 EXTERN void Write_NormallySmallNonNegativeWholeNr (U32 Value, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 EXTERN U32 Read_OpenTpye_Length (T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381 EXTERN void Write_OpenTpye_Length (U32 Value, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 EXTERN SHORT cdc_asn1_choice_ext_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 EXTERN SHORT cdc_asn1_choice_ext_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 EXTERN void Read_unique_Integer (const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 EXTERN SHORT cdc_asn1_integ_ext_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 EXTERN SHORT cdc_asn1_integ_ext_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 EXTERN void Read_SEQ_BitMap (const ULONG first_elem, const ULONG last_elem, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 EXTERN void Write_SEQ_BitMap (const ULONG first_elem, const ULONG last_elem, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 EXTERN SHORT cdc_asn1_seq_ext_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 EXTERN SHORT cdc_asn1_seq_ext_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 EXTERN SHORT cdc_asn1_obj_id_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 EXTERN SHORT cdc_asn1_obj_id_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 EXTERN SHORT cdc_asn1_open_type_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 EXTERN SHORT cdc_asn1_open_type_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 * Extra functions
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 EXTERN SHORT cdc_no_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 EXTERN SHORT cdc_no_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407 * Functions used for umts message extensions
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 EXTERN SHORT cdc_noncritical_ext_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410 EXTERN SHORT cdc_noncritical_ext_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 EXTERN SHORT cdc_critical_ext_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 EXTERN SHORT cdc_critical_ext_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 #endif
|