FreeCalypso > hg > freecalypso-sw
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 |