FreeCalypso > hg > freecalypso-sw
diff gsm-fw/ccd/csn1_sh_opt.c @ 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gsm-fw/ccd/csn1_sh_opt.c Thu Sep 04 05:48:57 2014 +0000 @@ -0,0 +1,122 @@ +/* ++----------------------------------------------------------------------------- +| Project : +| Modul : csn1_sh_opt.c ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Definition of encoding and decoding functions for CSN1_SH_OPT +| elements ++----------------------------------------------------------------------------- +*/ + + +/* + * standard definitions like GLOBAL, UCHAR, ERROR etc. + */ +#include "typedefs.h" +#include "header.h" + +/* + * Prototypes of ccd (USE_DRIVER EQ undef) for prototypes only + * look at ccdapi.h + */ +#undef USE_DRIVER +#include "ccdapi.h" + +/* + * Types and functions for bit access and manipulation + */ +#include "ccd_globs.h" +#include "bitfun.h" + +/* + * Prototypes of ccd internal functions + */ +#include "ccd.h" + +/* + * Declaration of coder/decoder tables + */ +#include "ccdtable.h" +#include "ccddata.h" + + +extern SHORT cdc_csn1_sx_decode (int flag, const ULONG e_ref, T_CCD_Globs *globs); +extern SHORT cdc_csn1_sx_encode (int flag, const ULONG e_ref, T_CCD_Globs *globs); + +#ifndef RUN_FLASH +/* ++------------------------------------------------------------------------+ +| PROJECT : CCD (6144) MODULE : CDC_GSM | +| STATE : code ROUTINE : cdc_csn1_shl_opt_decode | ++------------------------------------------------------------------------+ + + PURPOSE : Decoding of the GSM Type CSN1 SHL OPT element. + This coding type enhances the GSM Type CSN1 SHL. It supports + previous behaviour of CSN1_SHL and the lack of the whole + element. + The coding type CSN1_SHL_OPT is suitable for elements which + structures match to the following common definition: + { null | L | H { 0 | 1 < value part > } + + The element value can be present, then it is preceded by the + flag value H. If the element is represented by the flag L only + the value is absent! Besides the absence of the whole element + is allowed. +*/ + +SHORT cdc_csn1_shl_opt_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) +{ + +#ifdef DEBUG_CCD + #ifndef CCD_SYMBOLS + TRACE_CCD (globs, "cdc_csn1_shl_opt_decode()"); + #else + TRACE_CCD (globs, "cdc_csn1_shl_opt_decode() %s", ccddata_get_alias((USHORT) e_ref, 1)); + #endif +#endif + + return cdc_csn1_sx_decode (0xFF, e_ref, globs); +} +#endif /* !RUN_FLASH */ + +#ifndef RUN_FLASH +/* ++------------------------------------------------------------------------+ +| PROJECT : CCD (6144) MODULE : CDC_GSM | +| STATE : code ROUTINE : cdc_csn1_shl_opt_encode | ++------------------------------------------------------------------------+ + + PURPOSE : Encoding of the GSM Type CSN1 SHL OPT element doesn't differ + from encoding of the GSM Type CSN1 SHL. + This element consists of a 1 bit valid flag and a value part. + If the element is valid (the v_xxx components is TRUE in the + decoded message) a H bit will be coded followed by the + coding of the value part. Otherwise a L bit will be + coded. + +*/ + +SHORT cdc_csn1_shl_opt_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) +{ +#ifdef DEBUG_CCD + #ifndef CCD_SYMBOLS + TRACE_CCD (globs, "cdc_csn1_shl_opt_encode()"); + #else + TRACE_CCD (globs, "cdc_csn1_shl_opt_encode() %s", ccddata_get_alias((USHORT) e_ref, 1)); + #endif +#endif + + return cdc_csn1_sx_encode (0xFF, e_ref, globs); +} +#endif /* !RUN_FLASH */