diff gsm-fw/ccd/ccd_config.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/ccd_config.c	Thu Sep 04 05:48:57 2014 +0000
@@ -0,0 +1,362 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  
+|  Modul   :  ccd_config.c
++----------------------------------------------------------------------------- 
+|  Copyright 2002 Texas Instruments Deutschland GmbH
+|                 All rights reserved. 
+| 
+|                 This file is confidential and a trade secret of Texas 
+|                 Instruments Deutschland GmbH 
+|                 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  Deutschland GmbH. 
++----------------------------------------------------------------------------- 
+|  Purpose :  Definition of codec for CCD based on Ccddata
++----------------------------------------------------------------------------- 
+*/ 
+
+#define CCD_CONFIG_C
+
+/*
+ * standard definitions like UCHAR, ERROR etc.
+ */
+#include "typedefs.h"
+
+/* MAX_ERRORS and T_CCD_ERR_ENTRY are defined in ccd_globs.h */ 
+#include "ccd_globs.h"
+#include "ccdtable.h"
+#include "ccddata.h"
+/* prototypes of the exported functions are given in ccd.h */
+#include "ccd.h"
+
+/*
+ * all coding types with their constant enumeration are given in ccd_codingtypes.h
+ */
+#include "ccd_codingtypes.h"
+
+#ifndef CCD_MK
+#include "mconst.cdg"
+#endif
+
+/*
+ * ccdError and ccdWarning are defined in ccdapi.h 
+ */
+#include "ccdapi.h"
+
+#if defined CCD_MK || !defined _TOOLS_
+UBYTE cdc_init (T_FUNC_POINTER codec[MAX_CODEC_ID+1][2])
+{
+  int i, j;
+
+  for (i = 0; i <= MAX_CODEC_ID; i++)
+  {
+    codec[i][0] = cdc_std_encode;
+    codec[i][1] = cdc_std_decode;
+  }
+
+  i = 0; 
+  j = 1;       
+#if defined GSM1_V || defined _TOOLS_
+  codec[CCDTYPE_GSM1_V][0] = cdc_gsm1v_encode;
+  codec[CCDTYPE_GSM1_V][1] = cdc_gsm1v_decode;
+#endif
+
+  j++;
+#if defined GSM1_TV || defined _TOOLS_
+  codec[CCDTYPE_GSM1_TV][0] = cdc_gsm1tv_encode;
+  codec[CCDTYPE_GSM1_TV][1] = cdc_gsm1tv_decode;
+#endif
+
+  j++;
+#if defined GSM2_T || defined _TOOLS_
+  codec[CCDTYPE_GSM2_T][0] = cdc_gsm2t_encode;
+  codec[CCDTYPE_GSM2_T][1] = cdc_gsm2t_decode;
+#endif
+
+  j++;
+#if defined GSM3_V || defined _TOOLS_
+  codec[CCDTYPE_GSM3_V][0] = cdc_gsm3v_encode;
+  codec[CCDTYPE_GSM3_V][1] = cdc_gsm3v_decode;
+#endif
+
+  j++;
+#if defined GSM3_TV || defined _TOOLS_
+  codec[CCDTYPE_GSM3_TV][0] = cdc_gsm3tv_encode;
+  codec[CCDTYPE_GSM3_TV][1] = cdc_gsm3tv_decode;
+#endif
+      
+  j++;   
+#if defined GSM4_LV || defined _TOOLS_
+  codec[CCDTYPE_GSM4_LV][0] = cdc_gsm4lv_encode;
+  codec[CCDTYPE_GSM4_LV][1] = cdc_gsm4lv_decode;
+#endif
+
+  j++;
+#if defined GSM4_TLV || defined _TOOLS_
+  codec[CCDTYPE_GSM4_TLV][0] = cdc_gsm4tlv_encode;
+  codec[CCDTYPE_GSM4_TLV][1] = cdc_gsm4tlv_decode;
+#endif
+
+  j++;
+#if defined GSM5_V || defined _TOOLS_
+  codec[CCDTYPE_GSM5_V][0] = cdc_gsm5v_encode;
+  codec[CCDTYPE_GSM5_V][1] = cdc_gsm5v_decode;
+#endif
+
+  j++;
+#if defined GSM5_TLV || defined _TOOLS_
+  codec[CCDTYPE_GSM5_TLV][0] = cdc_gsm5tlv_encode;
+  codec[CCDTYPE_GSM5_TLV][1] = cdc_gsm5tlv_decode;
+#endif
+
+  j++;
+#if defined GSM6_TLV || defined _TOOLS_
+  codec[CCDTYPE_GSM6_TLV][0] = cdc_gsm6tlv_encode;
+  codec[CCDTYPE_GSM6_TLV][1] = cdc_gsm6tlv_decode;
+#endif
+
+  j++;
+#if defined GSM7_LV || defined _TOOLS_
+  codec[CCDTYPE_GSM7_LV][0] = cdc_gsm7lv_encode;
+  codec[CCDTYPE_GSM7_LV][1] = cdc_gsm7lv_decode;
+#endif
+
+  j++;
+#if defined GSM1_ASN || defined _TOOLS_
+  codec[CCDTYPE_GSM1_ASN][0] = cdc_gsm1asn_encode;
+  codec[CCDTYPE_GSM1_ASN][1] = cdc_gsm1asn_decode;
+#endif         
+
+  j++;
+#if defined BCDODD || defined _TOOLS_
+  codec[CCDTYPE_BCDODD][0] = cdc_bcdodd_encode;
+  codec[CCDTYPE_BCDODD][1] = cdc_bcdodd_decode;
+#endif
+
+  j++;
+#if defined BCDEVEN || defined _TOOLS_
+  codec[CCDTYPE_BCDEVEN][0] = cdc_bcdeven_encode;
+  codec[CCDTYPE_BCDEVEN][1] = cdc_bcdeven_decode;
+#endif
+
+  j++;
+#if defined BCD_NOFILL || defined _TOOLS_
+  codec[CCDTYPE_BCD_NOFILL][0] = cdc_bcd_nofill_encode;
+  codec[CCDTYPE_BCD_NOFILL][1] = cdc_bcd_nofill_decode;
+#endif
+
+  j++;
+#if defined BCD_MNC || defined _TOOLS_
+  codec[CCDTYPE_BCD_MNC][0] = cdc_bcd_mnc_encode;
+  codec[CCDTYPE_BCD_MNC][1] = cdc_bcd_mnc_decode;
+#endif
+
+  j++;
+#if defined CSN1_S1 || defined _TOOLS_
+  codec[CCDTYPE_CSN1_S1][0] = cdc_csn1_s1_encode;
+  codec[CCDTYPE_CSN1_S1][1] = cdc_csn1_s1_decode;
+#endif        
+      
+  j++;   
+#if defined CSN1_SHL || defined _TOOLS_
+  codec[CCDTYPE_CSN1_SHL][0] = cdc_csn1_shl_encode;
+  codec[CCDTYPE_CSN1_SHL][1] = cdc_csn1_shl_decode;
+#endif        
+
+  j++;  
+#if defined S_PADDING || defined _TOOLS_
+  codec[CCDTYPE_S_PADDING][0] = cdc_padd_encode;
+  codec[CCDTYPE_S_PADDING][1] = cdc_padd_decode;
+#endif
+
+  j++;
+#if defined T30_IDENT || defined _TOOLS_
+  codec[CCDTYPE_T30_IDENT][0] = cdc_t30_ident_encode;
+  codec[CCDTYPE_T30_IDENT][1] = cdc_t30_ident_decode;
+#endif
+
+  j++;
+#if defined BITSTRING || defined _TOOLS_
+  codec[CCDTYPE_BITSTRING][0] = cdc_bitstring_encode;
+  codec[CCDTYPE_BITSTRING][1] = cdc_bitstring_decode;
+#endif
+
+  j++;
+#if defined ASN1_INTEGER || defined _TOOLS_
+  codec[CCDTYPE_ASN1_INTEGER][0] = cdc_asn1_integ_encode;
+  codec[CCDTYPE_ASN1_INTEGER][1] = cdc_asn1_integ_decode;
+#endif
+
+  j++;
+#if defined ASN1_SEQUENCE || defined _TOOLS_
+  codec[CCDTYPE_ASN1_SEQUENCE][0] = cdc_asn1_seq_encode;
+  codec[CCDTYPE_ASN1_SEQUENCE][1] = cdc_asn1_seq_decode;
+#endif
+
+  j++;
+#if defined ASN1_CHOICE || defined _TOOLS_
+  codec[CCDTYPE_ASN1_CHOICE][0] = cdc_asn1_choice_encode;
+  codec[CCDTYPE_ASN1_CHOICE][1] = cdc_asn1_choice_decode;
+#endif
+
+  j++;
+#if defined ASN1_OCTET || defined _TOOLS_
+  codec[CCDTYPE_ASN1_OCTET][0] = cdc_asn1_octet_encode;
+  codec[CCDTYPE_ASN1_OCTET][1] = cdc_asn1_octet_decode;
+#endif
+
+  j++;
+#if defined NO_CODE || defined _TOOLS_
+  codec[CCDTYPE_NO_CODE][0] = cdc_no_encode;
+  codec[CCDTYPE_NO_CODE][1] = cdc_no_decode;
+#endif
+
+  j++;
+#if defined ASN1_INTEGER_EXTENSIBLE || defined _TOOLS_
+  codec[CCDTYPE_ASN1_INTEGER_EXTENSIBLE][0] = cdc_asn1_integ_ext_encode;
+  codec[CCDTYPE_ASN1_INTEGER_EXTENSIBLE][1] = cdc_asn1_integ_ext_decode;
+#endif
+
+  j++;
+#if defined ASN1_SEQUENCE_EXTENSIBLE || defined _TOOLS_
+  codec[CCDTYPE_ASN1_SEQUENCE_EXTENSIBLE][0] = cdc_asn1_seq_ext_encode;
+  codec[CCDTYPE_ASN1_SEQUENCE_EXTENSIBLE][1] = cdc_asn1_seq_ext_decode;
+#endif
+
+  j++;
+#if defined ASN1_CHOICE_EXTENSIBLE || defined _TOOLS_
+  codec[CCDTYPE_ASN1_CHOICE_EXTENSIBLE][0] = cdc_asn1_choice_ext_encode;
+  codec[CCDTYPE_ASN1_CHOICE_EXTENSIBLE][1] = cdc_asn1_choice_ext_decode;
+#endif
+
+  j++;
+#if defined ASN1_OBJ_ID || defined _TOOLS_
+  codec[CCDTYPE_ASN1_OBJ_ID][0] = cdc_asn1_obj_id_encode;
+  codec[CCDTYPE_ASN1_OBJ_ID][1] = cdc_asn1_obj_id_decode;
+#endif
+
+  j++;
+#if defined ASN1_OPEN_TYPE || defined _TOOLS_
+  codec[CCDTYPE_ASN1_OPEN_TYPE][0] = cdc_asn1_open_type_encode;
+  codec[CCDTYPE_ASN1_OPEN_TYPE][1] = cdc_asn1_open_type_decode;
+#endif
+
+  j++;
+#if defined NONCRITICAL_EXT || defined _TOOLS_
+  codec[CCDTYPE_NONCRITICAL_EXT][0] = cdc_noncritical_ext_encode;
+  codec[CCDTYPE_NONCRITICAL_EXT][1] = cdc_noncritical_ext_decode;
+#endif
+
+  j++;
+#if defined CRITICAL_EXT || defined _TOOLS_
+  codec[CCDTYPE_CRITICAL_EXT][0] = cdc_critical_ext_encode;
+  codec[CCDTYPE_CRITICAL_EXT][1] = cdc_critical_ext_decode;
+#endif
+
+  j++;
+#if defined S_PADDING_0 || defined _TOOLS_
+  codec[CCDTYPE_S_PADDING_0][0] = cdc_padd_0_encode;
+  codec[CCDTYPE_S_PADDING_0][1] = cdc_padd_0_decode;
+#endif
+
+  j++;
+#if defined CSN1_S0 || defined _TOOLS_
+  codec[CCDTYPE_CSN1_S0][0] = cdc_csn1_s0_encode;
+  codec[CCDTYPE_CSN1_S0][1] = cdc_csn1_s0_decode;
+#endif
+
+
+  j++;
+#if defined HL_FLAG || defined _TOOLS_
+  codec[CCDTYPE_HL_FLAG][0] = cdc_hl_flag_encode;
+  codec[CCDTYPE_HL_FLAG][1] = cdc_hl_flag_decode;
+#endif
+
+  j++;
+
+#if defined FDD_CI || defined _TOOLS_
+  codec[CCDTYPE_FDD_CI][0] = cdc_fdd_ci_encode;
+  codec[CCDTYPE_FDD_CI][1] = cdc_fdd_ci_decode;
+#endif
+
+  j++;
+
+#if defined TDD_CI || defined _TOOLS_
+  codec[CCDTYPE_TDD_CI][0] = cdc_tdd_ci_encode;
+  codec[CCDTYPE_TDD_CI][1] = cdc_tdd_ci_decode;
+#endif
+
+  j++;
+
+#if defined FREQ_LIST || defined _TOOLS_
+  codec[CCDTYPE_FREQ_LIST][0] = cdc_freq_list_encode;
+  codec[CCDTYPE_FREQ_LIST][1] = cdc_freq_list_decode;
+#endif
+
+  j++;
+#if defined CSN1_CONCAT || defined _TOOLS_
+  codec[CCDTYPE_CSN1_CONCAT][0] = cdc_csn1_concat_encode;
+  codec[CCDTYPE_CSN1_CONCAT][1] = cdc_csn1_concat_decode;
+#endif
+
+    j++;
+#if defined CCDTYPE_BREAK_COND || defined _TOOLS_
+  codec[CCDTYPE_BREAK_COND][0] = cdc_break_cond_encode;
+  codec[CCDTYPE_BREAK_COND][1] = cdc_break_cond_decode;
+#endif
+
+  j++;
+#if defined GSM5_TV || defined _TOOLS_
+  codec[CCDTYPE_GSM5_TV][0] = cdc_gsm5tv_encode;
+  codec[CCDTYPE_GSM5_TV][1] = cdc_gsm5tv_decode;
+#endif
+
+  j++;
+#if defined CSN1_CHOICE1 || defined _TOOLS_
+  codec[CCDTYPE_CSN1_CHOICE1][0] = cdc_csn1_choice1_encode;
+  codec[CCDTYPE_CSN1_CHOICE1][1] = cdc_csn1_choice1_decode;
+#endif
+
+  j++;
+#if defined CSN1_CHOICE2 || defined _TOOLS_
+  codec[CCDTYPE_CSN1_CHOICE2][0] = cdc_csn1_choice2_encode;
+  codec[CCDTYPE_CSN1_CHOICE2][1] = cdc_csn1_choice2_decode;
+#endif
+
+  j++;   
+#if defined CSN1_SHL_OPT || defined _TOOLS_
+  codec[CCDTYPE_CSN1_SHL_OPT][0] = cdc_csn1_shl_opt_encode;
+  codec[CCDTYPE_CSN1_SHL_OPT][1] = cdc_csn1_shl_opt_decode;
+#endif        
+
+  j++;   
+#if defined CSN1_S1_OPT || defined _TOOLS_
+  codec[CCDTYPE_CSN1_S1_OPT][0] = cdc_csn1_s1_opt_encode;
+  codec[CCDTYPE_CSN1_S1_OPT][1] = cdc_csn1_s1_opt_decode;
+#endif        
+
+  j++;   
+#if defined CSN1_S0_OPT || defined _TOOLS_
+  codec[CCDTYPE_CSN1_S0_OPT][0] = cdc_csn1_s0_opt_encode;
+  codec[CCDTYPE_CSN1_S0_OPT][1] = cdc_csn1_s0_opt_decode;
+#endif        
+
+  /*
+   * CCD has more co/dec functions than used in the table above.
+   * Look in ccd_codingtypes.h.
+   */
+  /*lint -e774
+   * The follwing instruction checks if it was forgotten to initialize
+   * the codec when the number of coding types was increased; if everything
+   * was OK, the if evaluates for sure to false, causing the lint error
+   */
+  if (j < MAX_CODEC_ID)
+    return ccdWarning;
+  /*lint +e774*/
+
+  return ccdOK;
+}
+#endif /* CCD_MK || !_TOOLS_ */