FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/ccd/asn1_octet.c @ 695:698a036a023d
cc_pei.c compiles
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Tue, 30 Sep 2014 02:14:08 +0000 | 
| parents | 970d6199f2c5 | 
| children | 
| rev | line source | 
|---|---|
| 
648
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 | Project : | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 | Modul : asn1_octet.c | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 | Purpose : Definition of encoding and decoding functions for ASN1_OCTET | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
18 | elements | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 +----------------------------------------------------------------------------- | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 * standard definitions like GLOBAL, UCHAR, ERROR etc. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
25 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 #include "typedefs.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 #include "header.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 * Prototypes of ccd (USE_DRIVER EQ undef) for prototypes only | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 * look at ccdapi.h | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 #undef USE_DRIVER | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 #include "ccdapi.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
37 * Types and functions for bit access and manipulation | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
38 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 #include "ccd_globs.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 #include "bitfun.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
42 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
43 * Prototypes of ccd internal functions | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
44 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
45 #include "ccd.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
46 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
47 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
48 * Declaration of coder/decoder tables | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
49 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
50 #include "ccdtable.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
51 #include "ccddata.h" | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
52 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
53 #ifndef RUN_INT_RAM | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
54 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
55 +--------------------------------------------------------------------+ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
56 | PROJECT : CCD (6144) MODULE : CDC_GSM | | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
57 | STATE : code ROUTINE : cdc_asn1_octet_decode | | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
58 +--------------------------------------------------------------------+ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
59 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
60 PURPOSE : UNALIGNED PER decoding for the octet string type (UMTS) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
61 The coded octets are preceded by a length indicator, if | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
62 they are not of fixed length. The length indicator is | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
63 decoded as an ASN1_INTEGER type. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
64 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
65 SHORT cdc_asn1_octet_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
66 { | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
67 ULONG repeat; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
68 U8 *old_pstruct = NULL; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
69 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
70 #ifdef DEBUG_CCD | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
71 #ifndef CCD_SYMBOLS | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
72 TRACE_CCD (globs, "cdc_asn1_octet_decode()"); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
73 #else | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
74 TRACE_CCD (globs, "cdc_asn1_octet_decode() %s", ccddata_get_alias((USHORT) e_ref, 1)); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
75 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
76 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
77 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
78 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
79 * Set pstrcutOffs and maxRep. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
80 * Check the valid flag in case of optional elements. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
81 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
82 if (PER_CommonBegin (e_ref, &repeat, globs) NEQ ccdOK) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
83 return 1; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
84 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
85 #ifdef DYNAMIC_ARRAYS | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
86 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
87 * Check for pointer types, and allocate memory if necessary. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
88 * May overwrite globs->pstruct (and initialize globs->pstructOffs to 0). | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
89 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
90 if ( is_pointer_type(e_ref) ) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
91 { | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
92 old_pstruct = globs->pstruct; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
93 if ( PER_allocmem_and_update(e_ref, repeat, globs) NEQ ccdOK) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
94 /* No memory - Return. Error already set in function call above. */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
95 return 1; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
96 } | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
97 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
98 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
99 bf_readBitStr_PER ((USHORT)(repeat << 3), globs); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
100 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
101 #ifdef DYNAMIC_ARRAYS | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
102 if (old_pstruct NEQ NULL) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
103 globs->pstruct = old_pstruct; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
104 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
105 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
106 return 1; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
107 } | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
108 #endif /* !RUN_INT_RAM */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
109 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
110 #ifndef RUN_INT_RAM | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
111 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
112 +--------------------------------------------------------------------+ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
113 | PROJECT : CCD (6144) MODULE : CDC_GSM | | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
114 | STATE : code ROUTINE : cdc_asn1_octet_encode | | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
115 +--------------------------------------------------------------------+ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
116 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
117 PURPOSE : UNALIGNED PER encoding for the octet string type (UMTS) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
118 The coded octets are preceded by a length indicator, if | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
119 they are not of fixed length. The length indicator is | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
120 encoded as an ASN1_INTEGER type. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
121 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
122 SHORT cdc_asn1_octet_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
123 { | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
124 ULONG repeat; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
125 U8 *old_pstruct = NULL; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
126 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
127 #ifdef DEBUG_CCD | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
128 #ifndef CCD_SYMBOLS | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
129 TRACE_CCD (globs, "cdc_asn1_octet_encode()"); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
130 #else | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
131 TRACE_CCD (globs, "cdc_asn1_octet_encode() %s", ccddata_get_alias((USHORT) e_ref, 1)); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
132 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
133 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
134 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
135 /* | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
136 * Set pstrcutOffs and maxRep. Check the valid flag in case of optional elements. | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
137 */ | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
138 if (PER_CommonBegin (e_ref, &repeat, globs) NEQ ccdOK) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
139 return 1; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
140 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
141 #ifdef DYNAMIC_ARRAYS | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
142 if ( is_pointer_type(e_ref) ) { | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
143 old_pstruct = globs->pstruct; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
144 globs->pstruct = *(U8 **)(globs->pstruct + globs->pstructOffs); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
145 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
146 if (ccd_check_pointer(globs->pstruct) == ccdOK) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
147 { | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
148 globs->pstructOffs = 0; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
149 } | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
150 else | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
151 { | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
152 ccd_recordFault (globs, ERR_INVALID_PTR, BREAK, (USHORT) e_ref, | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
153 &globs->pstruct[globs->pstructOffs]); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
154 return 1; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
155 } | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
156 } | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
157 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
158 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
159 bf_writeBitStr_PER ((USHORT)(repeat << 3), globs); | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
160 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
161 #ifdef DYNAMIC_ARRAYS | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
162 if ( old_pstruct NEQ NULL ) | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
163 globs->pstruct = old_pstruct; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
164 #endif | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
165 | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
166 return 1; | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
167 } | 
| 
 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
168 #endif /* !RUN_INT_RAM */ | 
