FreeCalypso > hg > fc-magnetite
annotate src/gpf3/ccd/critical_ext.c @ 194:62da0aa197de
sm.lib compiles
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 14 Oct 2016 00:38:14 +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 +------------------------------------------------------------------------------ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | File: critical_ext.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: Encoding and decoding functions for criticalExtensions | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | $Identity:$ | 
| 
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 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 * Standard definitions like UCHAR, ERROR etc. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 #include "typedefs.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 #include "header.h" | 
| 
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 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 * 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 | 31 * look at ccdapi.h | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #undef USE_DRIVER | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "ccdapi.h" | 
| 
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 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 * 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 | 38 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "ccd_globs.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "bitfun.h" | 
| 
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 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 * Prototypes and constants in the common part of ccd | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 #include "ccd.h" | 
| 
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 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 * Declaration of coder/decoder tables | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 #include "ccdtable.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 #include "ccddata.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 #ifndef RUN_INT_RAM | 
| 
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 +------------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | PROJECT : CCD (6144) MODULE : critical_ext | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 | STATE : code ROUTINE : cdc_critical_ext_decode | | 
| 
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 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 PURPOSE : Decode elements of type criticalExtensions | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 An element of this type should never be encoded or decoded. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 If the coder faces an IE of this type, it should report an | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 error report and abort. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 Whenever a criticalExtensions-IE is extended from NULL or | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 SEQUENCE {} to another type, its CCD coding type will change | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 and the functions in this file will not be called for that IE | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 any more. | 
| 
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 According to 3GPP TS25.331 V3.6.0, 10.1.1.2.2: | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 Since messages including critical extensions are rejected by | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 receivers not comprehending them, these messages can be | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 modified completely, e.g. IEs may be inserted at any place | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 and IEs may be removed or redefined. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 See also 3GPP TS25.921 V4.3.0, 10.4. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 SHORT cdc_critical_ext_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 | 78 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 #ifndef CCD_SYMBOLS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 TRACE_CCD (globs, "cdc_critical_ext_decode()"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 #else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 TRACE_CCD (globs, "cdc_critical_ext_decode() %s", mcomp[melem[e_ref].elemRef].name); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 #endif | 
| 
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 globs->pstructOffs = melem[e_ref].structOffs; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 /* For optional elements we have already set the valid flag in the | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 * C-structure. We have done it while processing ASN1_SEQ. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 if ( ! cdc_isPresent(e_ref, globs) ) { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 } | 
| 
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 if (melem[e_ref].elemType EQ 'V' AND mvar[melem[e_ref].elemRef].bSize EQ 0) | 
| 
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 ccd_recordFault (globs, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 ERR_CRITICAL_EXT, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 BREAK, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 (USHORT) e_ref, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 globs->pstruct + melem[e_ref].structOffs | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 ); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 return 0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 } | 
| 
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 * Currently CCD tool chain does not support extensions of this type. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 * This else-implementation is just an outlook. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 * | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 else | 
| 
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 U16 compRef = melem[e_ref].elemRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 U16 elemRef = mcomp[compRef].componentRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 (void) codec[melem[Elem].codingType][DECODE_FUN] | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 (compRef, elemRef, globs); | 
| 
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 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 #endif /* !RUN_INT_RAM */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 #ifndef RUN_INT_RAM | 
| 
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 +------------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 | PROJECT : CCD (6144) MODULE : critical_ext | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 | STATE : code ROUTINE : cdc_critical_ext_encode | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 +------------------------------------------------------------------------+ | 
| 
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 PURPOSE : Encode elements of type criticalExtensions | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 An element of this type should never be encoded or decoded. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 If the coder faces an IE of this type, it should report an | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 error report and abort. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 SHORT cdc_critical_ext_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 | 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 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 #ifndef CCD_SYMBOLS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 TRACE_CCD (globs, "cdc_critical_ext_encode()"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 #else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 TRACE_CCD (globs, "cdc_critical_ext_encode() %s", mcomp[melem[e_ref].elemRef].name); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 globs->pstructOffs = melem[e_ref].structOffs; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 /* For optional elements we have already set the valid flag in the | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 * C-structure. We have done it while processing ASN1_SEQ. | 
| 
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 if ( ! cdc_isPresent(e_ref, globs) ) { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 } | 
| 
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 if (melem[e_ref].elemType EQ 'V' AND mvar[melem[e_ref].elemRef].bSize EQ 0) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 ccd_recordFault (globs, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 ERR_CRITICAL_EXT, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 BREAK, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 (USHORT) e_ref, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 globs->pstruct + melem[e_ref].structOffs | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 ); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 return 0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 * Currently CCD tool chain does not support extensions of this type. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 * This else-implementation is just an outlook. | 
| 
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 else | 
| 
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 U16 compRef = melem[e_ref].elemRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 U16 elemRef = mcomp[compRef].componentRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 (void) codec[melem[Elem].codingType][ENCODE_FUN] | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 (compRef, elemRef, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 }*/ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 #endif /* !RUN_INT_RAM */ | 
