FreeCalypso > hg > fc-magnetite
annotate src/gpf3/ccd/asn1_bitstr.c @ 671:5f00e9afd5d9
removing clutter: INIT_blob provision
The lost init.c source was reconstructed from init.obj in 2017; prior
to that reconstruction we were compiling main.lib from partial source:
using the init module in blob form with various binary patches, but
recompiling create_RVtasks.c from source so we could change RiViera SWE
configuration.
We've been using the fully reconstructed version of init.c since 2017,
and now the old INIT_blob provision (which is not used by any config)
is just extra noise in our targets/*.conf files.  This commit removes
all bits related to this provision, reducing clutter and making it
easier to add new targets.
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 29 May 2020 02:36:39 +0000 | 
| parents | c41a534f33c6 | 
| children | 
| rev | line source | 
|---|---|
| 2 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : asn1_bitstr.c | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : Definition of encoding and decoding functions for ASN1_BITSTRING | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | elements | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 * Standard definitions like UCHAR, ERROR etc. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #include "typedefs.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 #include "header.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 * Prototypes of ccd (USE_DRIVER EQ undef) for prototypes only | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 * look at ccdapi.h | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #undef USE_DRIVER | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "ccdapi.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 * Types and functions for bit access and manipulation | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "ccd_globs.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "bitfun.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 * Prototypes of ccd internal functions | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #include "ccd.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 * Declaration of coder/decoder tables | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #include "ccdtable.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 #include "ccddata.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 #ifndef RUN_INT_RAM | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 | PROJECT : CCD (6144) MODULE : CDC_GSM | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | STATE : code ROUTINE : cdc_bitstring_decode | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 PURPOSE : UNALIGNED PER decoding of the bit string type (UMTS) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 The coded bits are preceded by a length indicator, if | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 they are not of fixed length. The length indicator is | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 decoded as an ASN1_INTEGER type. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 SHORT cdc_bitstring_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 ULONG repeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 U8 *old_pstruct = NULL; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 #ifndef CCD_SYMBOLS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 TRACE_CCD (globs, "cdc_asn1_bitstring_decode()"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 #else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 TRACE_CCD (globs, "cdc_asn1_bitstring_decode() '%s'", ccddata_get_alias((USHORT) e_ref, 1)); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 * Set pstrcutOffs and maxRep. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 * Check the valid flag in case of optional elements. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 if (PER_CommonBegin (e_ref, &repeat, globs) NEQ ccdOK) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 #ifdef DYNAMIC_ARRAYS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 * Check for pointer types, and allocate memory if necessary. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 * May overwrite globs->pstruct (and initialize globs->pstructOffs to 0). | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 if ( is_pointer_type(e_ref) ) { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 old_pstruct = globs->pstruct; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 if ( PER_allocmem_and_update(e_ref, (USHORT) ((repeat >> 3) +1), globs) NEQ ccdOK) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 /* No memory - Return. Error already set in function call above. */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 bf_readBitStr_PER ((USHORT) repeat, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 #ifdef DYNAMIC_ARRAYS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 if (old_pstruct NEQ NULL) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 globs->pstruct = old_pstruct; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 #endif /* !RUN_INT_RAM */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 #ifndef RUN_INT_RAM | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 | PROJECT : CCD (6144) MODULE : CDC_GSM | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 | STATE : code ROUTINE : cdc_bitstring_encode | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 PURPOSE : UNALIGNED PER encoding of the bit string type (UMTS) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 The coded bits are preceded by a length indicator, if | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 they are not of fixed length. The length indicator is | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 decoded as an ASN1_INTEGER type. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 SHORT cdc_bitstring_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 ULONG repeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 U8 *old_pstruct = NULL; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 #ifndef CCD_SYMBOLS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 TRACE_CCD (globs, "cdc_asn1_bitstring_encode()"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 #else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 TRACE_CCD (globs, "cdc_asn1_bitstring_encode() '%s'", ccddata_get_alias((USHORT) e_ref, 1)); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 * Set pstructOffs and maxRep. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 * Check the valid flag in case of optional elements. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 if (PER_CommonBegin (e_ref, &repeat, globs) NEQ ccdOK) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 #ifdef DYNAMIC_ARRAYS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 if ( is_pointer_type(e_ref) ) { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 old_pstruct = globs->pstruct; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 globs->pstruct = *(U8 **)(globs->pstruct + globs->pstructOffs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 if (ccd_check_pointer(globs->pstruct) == ccdOK) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 globs->pstructOffs = 0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 ccd_recordFault (globs, ERR_INVALID_PTR, BREAK, (USHORT) e_ref, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 &globs->pstruct[globs->pstructOffs]); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 bf_writeBitStr_PER ((USHORT) repeat, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 #ifdef DYNAMIC_ARRAYS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 if ( old_pstruct NEQ NULL ) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 globs->pstruct = old_pstruct; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 #endif /* !RUN_INT_RAM */ | 
