comparison gsm-fw/ccd/ccd.h @ 648:970d6199f2c5

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