view cdg211/cdginc/p_8010_152_ps_include.h @ 516:1ed9de6c90bd

src/g23m-gsm/sms/sms_for.c: bogus malloc removed The new error handling code that was not present in TCS211 blob version contains a malloc call that is bogus for 3 reasons: 1) The memory allocation in question is not needed in the first place; 2) libc malloc is used instead of one of the firmware's proper ways; 3) The memory allocation is made inside a function and then never freed, i.e., a memory leak. This bug was caught in gcc-built FreeCalypso fw projects (Citrine and Selenite) because our gcc environment does not allow any use of libc malloc (any reference to malloc produces a link failure), but this code from TCS3.2 is wrong even for Magnetite: if this code path is executed repeatedly over a long time, the many small allocations made by this malloc call without a subsequent free will eventually exhaust the malloc heap provided by the TMS470 environment, malloc will start returning NULL, and the bogus code will treat it as an error. Because the memory allocation in question is not needed at all, the fix entails simply removing it.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 22 Jul 2018 06:04:49 +0000
parents 56abf6cf8a0b
children
line wrap: on
line source

/*
+--------------------------------------------------------------------------+
| PROJECT : PROTOCOL STACK                                                 |
| FILE    : p_8010_152_ps_include.h                                        |
| SOURCE  : "__out__\g23m_dfile\prim\8010_152_PS_Include.pdf"              |
| LastModified : "2003-10-15"                                              |
| IdAndVersion : "8010.152.02.023"                                         |
| SrcFileTime  : "Tue May 18 17:03:04 2004"                                |
| Generated by CCDGEN_2.5.5 on Fri Jun 08 13:59:14 2007                    |
|           !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!!                |
+--------------------------------------------------------------------------+
*/

/* PRAGMAS
 * PREFIX                 : PS
 * COMPATIBILITY_DEFINES  : NO
 * ALWAYS_ENUM_IN_VAL_FILE: YES
 * ENABLE_GROUP: NO
 * CAPITALIZE_TYPENAME: NO
 */


#ifndef P_8010_152_PS_INCLUDE_H
#define P_8010_152_PS_INCLUDE_H


#define CDG_ENTER__P_8010_152_PS_INCLUDE_H

#define CDG_ENTER__FILENAME _P_8010_152_PS_INCLUDE_H
#define CDG_ENTER__P_8010_152_PS_INCLUDE_H__FILE_TYPE CDGINC
#define CDG_ENTER__P_8010_152_PS_INCLUDE_H__LAST_MODIFIED _2003_10_15
#define CDG_ENTER__P_8010_152_PS_INCLUDE_H__ID_AND_VERSION _8010_152_02_023

#define CDG_ENTER__P_8010_152_PS_INCLUDE_H__SRC_FILE_TIME _Tue_May_18_17_03_04_2004

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_8010_152_PS_INCLUDE_H

#undef CDG_ENTER__FILENAME


#include "p_8010_152_ps_include.val"


/*
 * typedef between var and valtab enums
 */
#ifndef __T_PS_content__
#define __T_PS_content__
typedef T_PS_VAL_content T_PS_content;
#endif

#ifndef __T_PS_access_modes__
#define __T_PS_access_modes__
typedef T_PS_VAL_access_modes T_PS_access_modes;
#endif

#ifndef __T_PS_arfcn_rssi__
#define __T_PS_arfcn_rssi__
typedef T_PS_VAL_arfcn_rssi T_PS_arfcn_rssi;
#endif

#ifndef __T_PS_attach_detach_allowed__
#define __T_PS_attach_detach_allowed__
typedef T_PS_VAL_attach_detach_allowed T_PS_attach_detach_allowed;
#endif

#ifndef __T_PS_service_level__
#define __T_PS_service_level__
typedef T_PS_VAL_service_level T_PS_service_level;
#endif

#ifndef __T_PS_cn_domain__
#define __T_PS_cn_domain__
typedef T_PS_VAL_cn_domain T_PS_cn_domain;
#endif

#ifndef __T_PS_cpich_ec_n0__
#define __T_PS_cpich_ec_n0__
typedef T_PS_VAL_cpich_ec_n0 T_PS_cpich_ec_n0;
#endif

#ifndef __T_PS_cpich_rscp__
#define __T_PS_cpich_rscp__
typedef T_PS_VAL_cpich_rscp T_PS_cpich_rscp;
#endif

#ifndef __T_PS_est_service__
#define __T_PS_est_service__
typedef T_PS_VAL_est_service T_PS_est_service;
#endif

#ifndef __T_PS_arfcn__
#define __T_PS_arfcn__
typedef T_PS_VAL_arfcn T_PS_arfcn;
#endif

#ifndef __T_PS_gsm_band_priority__
#define __T_PS_gsm_band_priority__
typedef T_PS_VAL_gsm_band_priority T_PS_gsm_band_priority;
#endif

#ifndef __T_PS_ncc__
#define __T_PS_ncc__
typedef T_PS_VAL_ncc T_PS_ncc;
#endif

#ifndef __T_PS_bcc__
#define __T_PS_bcc__
typedef T_PS_VAL_bcc T_PS_bcc;
#endif

#ifndef __T_PS_gsm_frequency_band__
#define __T_PS_gsm_frequency_band__
typedef T_PS_VAL_gsm_frequency_band T_PS_gsm_frequency_band;
#endif

#ifndef __T_PS_gsm_ncell_index__
#define __T_PS_gsm_ncell_index__
typedef T_PS_VAL_gsm_ncell_index T_PS_gsm_ncell_index;
#endif

#ifndef __T_PS_bsic_valid__
#define __T_PS_bsic_valid__
typedef T_PS_VAL_bsic_valid T_PS_bsic_valid;
#endif

#ifndef __T_PS_llc_mode__
#define __T_PS_llc_mode__
typedef T_PS_VAL_llc_mode T_PS_llc_mode;
#endif

#ifndef __T_PS_meas_mode__
#define __T_PS_meas_mode__
typedef T_PS_VAL_meas_mode T_PS_meas_mode;
#endif

#ifndef __T_PS_nmo__
#define __T_PS_nmo__
typedef T_PS_VAL_nmo T_PS_nmo;
#endif

#ifndef __T_PS_search_mode__
#define __T_PS_search_mode__
typedef T_PS_VAL_search_mode T_PS_search_mode;
#endif

#ifndef __T_PS_peak_throughput__
#define __T_PS_peak_throughput__
typedef T_PS_VAL_peak_throughput T_PS_peak_throughput;
#endif

#ifndef __T_PS_t3212__
#define __T_PS_t3212__
typedef T_PS_VAL_t3212 T_PS_t3212;
#endif

#ifndef __T_PS_mcc__
#define __T_PS_mcc__
typedef T_PS_VAL_mcc T_PS_mcc;
#endif

#ifndef __T_PS_mnc__
#define __T_PS_mnc__
typedef T_PS_VAL_mnc T_PS_mnc;
#endif

#ifndef __T_PS_rat__
#define __T_PS_rat__
typedef T_PS_VAL_rat T_PS_rat;
#endif

#ifndef __T_PS_radio_prio__
#define __T_PS_radio_prio__
typedef T_PS_VAL_radio_prio T_PS_radio_prio;
#endif

#ifndef __T_PS_rel_ind__
#define __T_PS_rel_ind__
typedef T_PS_VAL_rel_ind T_PS_rel_ind;
#endif

#ifndef __T_PS_ksi__
#define __T_PS_ksi__
typedef T_PS_VAL_ksi T_PS_ksi;
#endif

#ifndef __T_PS_sapi__
#define __T_PS_sapi__
typedef T_PS_VAL_sapi T_PS_sapi;
#endif

#ifndef __T_PS_sim_type__
#define __T_PS_sim_type__
typedef T_PS_VAL_sim_type T_PS_sim_type;
#endif

#ifndef __T_PS_uarfcn_rssi__
#define __T_PS_uarfcn_rssi__
typedef T_PS_VAL_uarfcn_rssi T_PS_uarfcn_rssi;
#endif

#ifndef __T_PS_uarfcn__
#define __T_PS_uarfcn__
typedef T_PS_VAL_uarfcn T_PS_uarfcn;
#endif

#ifndef __T_PS_cell_status__
#define __T_PS_cell_status__
typedef T_PS_VAL_cell_status T_PS_cell_status;
#endif

#ifndef __T_PS_psc__
#define __T_PS_psc__
typedef T_PS_VAL_psc T_PS_psc;
#endif

#ifndef __T_PS_threshold__
#define __T_PS_threshold__
typedef T_PS_VAL_threshold T_PS_threshold;
#endif

#ifndef __T_PS_start_val__
#define __T_PS_start_val__
typedef T_PS_VAL_start_val T_PS_start_val;
#endif

#ifndef __T_PS_tx_diversity__
#define __T_PS_tx_diversity__
typedef T_PS_VAL_tx_diversity T_PS_tx_diversity;
#endif

#ifndef __T_PS_acc__
#define __T_PS_acc__
/*
 * Container for the access control class field from (U)SIM, see [3G 11.11] and [3G 31.102]
 * CCDGEN:WriteStruct_Count==919
 */
typedef struct
{
  U8                        content[PS_SIZE_ACC];     /*<  0:  2> T_PS_content,  Content of access control class     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_PS_acc;
#endif

#ifndef __T_PS_ad__
#define __T_PS_ad__
/*
 * Container for the administrative data field from (U)SIM, see [3G 11.11] and [3G 31.102]
 * CCDGEN:WriteStruct_Count==920
 */
typedef struct
{
  U8                        op;                       /*<  0:  1> UE operation mode                                  */
  U8                        ai[PS_SIZE_AI];           /*<  1:  2> Additional information                             */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
} T_PS_ad;
#endif

#ifndef __T_PS_gsm_bands__
#define __T_PS_gsm_bands__
/*
 * GSM bands
 * CCDGEN:WriteStruct_Count==921
 */
typedef struct
{
  U16                       gsm_frequency_band;       /*<  0:  2> T_PS_gsm_frequency_band,  Frequency band specification */
  U16                       gsm_band_priority;        /*<  2:  2> T_PS_gsm_band_priority,  GSM band priority         */
} T_PS_gsm_bands;
#endif

#ifndef __T_PS_bsic__
#define __T_PS_bsic__
/*
 * GSM BSIC
 * CCDGEN:WriteStruct_Count==922
 */
typedef struct
{
  U8                        ncc;                      /*<  0:  1> T_PS_ncc,  NCC                                     */
  U8                        bcc;                      /*<  1:  1> T_PS_bcc,  BCC                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_PS_bsic;
#endif

#ifndef __T_PS_gsm_cell_description__
#define __T_PS_gsm_cell_description__
/*
 * GSM channel number and band specification
 * CCDGEN:WriteStruct_Count==923
 */
typedef struct
{
  U16                       gsm_frequency_band;       /*<  0:  2> T_PS_gsm_frequency_band,  Frequency band specification */
  U16                       arfcn;                    /*<  2:  2> T_PS_arfcn,  GSM channel number                    */
  T_PS_bsic                 bsic;                     /*<  4:  4> GSM BSIC                                           */
} T_PS_gsm_cell_description;
#endif

#ifndef __T_PS_gsm_ncell_list__
#define __T_PS_gsm_ncell_list__
/*
 * GSM neighbour cell list
 * CCDGEN:WriteStruct_Count==924
 */
typedef struct
{
  U8                        _align0;                  /*<  0:  1> alignment                                          */
  U8                        _align1;                  /*<  1:  1> alignment                                          */
  U8                        _align2;                  /*<  2:  1> alignment                                          */
  U8                        c_gsm_cell_description;   /*<  3:  1> counter                                            */
  T_PS_gsm_cell_description gsm_cell_description[PS_MAX_GSM_NCELLS]; /*<  4:256> GSM channel number and band specification          */
} T_PS_gsm_ncell_list;
#endif

#ifndef __T_PS_gsm_ncell_measurement__
#define __T_PS_gsm_ncell_measurement__
/*
 * GSM neighbour cell measurement result
 * CCDGEN:WriteStruct_Count==925
 */
typedef struct
{
  T_PS_gsm_cell_description gsm_cell_description;     /*<  0:  8> GSM channel number and band specification          */
  U8                        bsic_valid;               /*<  8:  1> T_PS_bsic_valid,  BSIC validated                   */
  U8                        v_arfcn_rssi;             /*<  9:  1> valid-flag                                         */
  S8                        arfcn_rssi;               /*< 10:  1> T_PS_arfcn_rssi,  GSM channel RSSI measurement     */
  U8                        _align0;                  /*< 11:  1> alignment                                          */
} T_PS_gsm_ncell_measurement;
#endif

#ifndef __T_PS_gsm_ncell_results__
#define __T_PS_gsm_ncell_results__
/*
 * GSM neighbour cell results
 * CCDGEN:WriteStruct_Count==926
 */
typedef struct
{
  U8                        _align0;                  /*<  0:  1> alignment                                          */
  U8                        _align1;                  /*<  1:  1> alignment                                          */
  U8                        _align2;                  /*<  2:  1> alignment                                          */
  U8                        c_gsm_ncell_measurement;  /*<  3:  1> counter                                            */
  T_PS_gsm_ncell_measurement gsm_ncell_measurement[PS_MAX_GSM_NCELLS]; /*<  4:384> GSM neighbour cell measurement result              */
} T_PS_gsm_ncell_results;
#endif

#ifndef __T_PS_imsi__
#define __T_PS_imsi__
/*
 * Container for a subscriber id
 * CCDGEN:WriteStruct_Count==927
 */
typedef struct
{
  U8                        c_identity;               /*<  0:  1> counter                                            */
  U8                        identity[PS_SIZE_IMSI_MAX]; /*<  1: 15> Content of IMSI                                    */
} T_PS_imsi;
#endif

#ifndef __T_PS_k_c__
#define __T_PS_k_c__
/*
 * Container for GSM ciphering parameter
 * CCDGEN:WriteStruct_Count==928
 */
typedef struct
{
  U8                        key[PS_SIZE_KC];          /*<  0:  8> Ciphering key                                      */
  U8                        ksi;                      /*<  8:  1> T_PS_ksi,  Key set identifier                      */
  U8                        _align0;                  /*<  9:  1> alignment                                          */
  U8                        _align1;                  /*< 10:  1> alignment                                          */
  U8                        _align2;                  /*< 11:  1> alignment                                          */
} T_PS_k_c;
#endif

/*
 * Container for GPRS ciphering parameter
 * CCDGEN:WriteStruct_Count==929
 */
#ifndef __T_PS_k_c_gprs__
#define __T_PS_k_c_gprs__
typedef T_PS_k_c T_PS_k_c_gprs;
#endif
#ifndef __T_PS_gsm_key_set__
#define __T_PS_gsm_key_set__
/*
 * Contains information related to ciphering
 * CCDGEN:WriteStruct_Count==930
 */
typedef struct
{
  T_PS_k_c                  k_c;                      /*<  0: 12> Container for GSM ciphering parameter              */
  T_PS_k_c_gprs             k_c_gprs;                 /*< 12: 12> Container for GPRS ciphering parameter             */
} T_PS_gsm_key_set;
#endif

#ifndef __T_PS_ul_sdus__
#define __T_PS_ul_sdus__
/*
 * Sequence numbers and mem handles pr. NSAPI
 * CCDGEN:WriteStruct_Count==931
 */
typedef struct
{
  U8                        ul_sequence_number;       /*<  0:  1> Sequence number of last unacknowledged uplink SDU  */
  U8                        dl_sequence_number;       /*<  1:  1> Sequence number of last unacknowledged downlink SDU (used by the network) */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        c_mem_handle;             /*<  3:  1> counter                                            */
  U32                       *ptr_mem_handle;          /*<  4:  4> pointer to Memory handle                           */
} T_PS_ul_sdus;
#endif

#ifndef __T_PS_lac__
#define __T_PS_lac__
/*
 * Container for location area code
 * CCDGEN:WriteStruct_Count==932
 */
typedef struct
{
  U8                        lac_elements[PS_SIZE_LAC]; /*<  0:  2> Location area code element                         */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_PS_lac;
#endif

#ifndef __T_PS_operation_mode__
#define __T_PS_operation_mode__
/*
 * Supported radio access technologies
 * CCDGEN:WriteStruct_Count==933
 */
typedef struct
{
  U8                        access_modes;             /*<  0:  1> T_PS_access_modes,  Supported access modes.        */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        v_gsm_bands;              /*<  3:  1> valid-flag                                         */
  T_PS_gsm_bands            gsm_bands;                /*<  4:  4> GSM bands                                          */
} T_PS_operation_mode;
#endif

#ifndef __T_PS_nas_system_info__
#define __T_PS_nas_system_info__
/*
 * NAS system information
 * CCDGEN:WriteStruct_Count==934
 */
typedef struct
{
  T_PS_lac                  lac;                      /*<  0:  4> Container for location area code                   */
  U8                        v_rac;                    /*<  4:  1> valid-flag                                         */
  U8                        rac;                      /*<  5:  1> Container for packet switched routing area code    */
  U8                        nmo;                      /*<  6:  1> T_PS_nmo,  Network mode of operation               */
  U8                        attach_detach_allowed;    /*<  7:  1> T_PS_attach_detach_allowed,  Attach/detach allowed */
  U8                        t3212;                    /*<  8:  1> T_PS_t3212,  Periodic updating timer               */
  U8                        _align0;                  /*<  9:  1> alignment                                          */
  U8                        _align1;                  /*< 10:  1> alignment                                          */
  U8                        _align2;                  /*< 11:  1> alignment                                          */
} T_PS_nas_system_info;
#endif

#ifndef __T_PS_p_tmsi__
#define __T_PS_p_tmsi__
/*
 * Container for P-TMSI
 * CCDGEN:WriteStruct_Count==935
 */
typedef struct
{
  U8                        content_p_tmsi[PS_SIZE_P_TMSI]; /*<  0:  4> Content of P-TMSI                                  */
} T_PS_p_tmsi;
#endif

#ifndef __T_PS_plmn_id__
#define __T_PS_plmn_id__
/*
 * Container for a GSM MAP network identifier
 * CCDGEN:WriteStruct_Count==936
 */
typedef struct
{
  U8                        mcc[PS_SIZE_MCC];         /*<  0:  3> T_PS_mcc,  Mobile country code                     */
  U8                        c_mnc;                    /*<  3:  1> counter                                            */
  U8                        mnc[PS_SIZE_MNC_MAX];     /*<  4:  3> T_PS_mnc,  Mobile network code                     */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
} T_PS_plmn_id;
#endif

/*
 * Selected network identifier
 * CCDGEN:WriteStruct_Count==937
 */
#ifndef __T_PS_selected_plmn__
#define __T_PS_selected_plmn__
typedef T_PS_plmn_id T_PS_selected_plmn;
#endif
/*
 * Home network identifier
 * CCDGEN:WriteStruct_Count==938
 */
#ifndef __T_PS_home_plmn__
#define __T_PS_home_plmn__
typedef T_PS_plmn_id T_PS_home_plmn;
#endif
/*
 * Equivalent network identifier
 * CCDGEN:WriteStruct_Count==939
 */
#ifndef __T_PS_equivalent_plmn__
#define __T_PS_equivalent_plmn__
typedef T_PS_plmn_id T_PS_equivalent_plmn;
#endif
#ifndef __T_PS_lai__
#define __T_PS_lai__
/*
 * Container for location area information
 * CCDGEN:WriteStruct_Count==940
 */
typedef struct
{
  T_PS_plmn_id              plmn_id;                  /*<  0:  8> Container for a GSM MAP network identifier         */
  T_PS_lac                  lac;                      /*<  8:  4> Container for location area code                   */
} T_PS_lai;
#endif

#ifndef __T_PS_forbidden_lai__
#define __T_PS_forbidden_lai__
/*
 * Container for forbidden location area list
 * CCDGEN:WriteStruct_Count==941
 */
typedef struct
{
  U8                        _align0;                  /*<  0:  1> alignment                                          */
  U8                        _align1;                  /*<  1:  1> alignment                                          */
  U8                        _align2;                  /*<  2:  1> alignment                                          */
  U8                        c_lai;                    /*<  3:  1> counter                                            */
  T_PS_lai                  lai[PS_MAX_FORBIDDEN_LAI]; /*<  4:120> Container for location area information            */
} T_PS_forbidden_lai;
#endif

#ifndef __T_PS_equivalent_plmn_list__
#define __T_PS_equivalent_plmn_list__
/*
 * Container for equivalent PLMN list
 * CCDGEN:WriteStruct_Count==942
 */
typedef struct
{
  U8                        _align0;                  /*<  0:  1> alignment                                          */
  U8                        _align1;                  /*<  1:  1> alignment                                          */
  U8                        _align2;                  /*<  2:  1> alignment                                          */
  U8                        c_equivalent_plmn;        /*<  3:  1> counter                                            */
  T_PS_equivalent_plmn      equivalent_plmn[PS_MAX_EQUIVALENT_PLMNS]; /*<  4: 40> Equivalent network identifier                      */
} T_PS_equivalent_plmn_list;
#endif

#ifndef __T_PS_rai__
#define __T_PS_rai__
/*
 * Container for packet switched routing area identification
 * CCDGEN:WriteStruct_Count==943
 */
typedef struct
{
  T_PS_lai                  lai;                      /*<  0: 12> Container for location area information            */
  U8                        rac;                      /*< 12:  1> Container for packet switched routing area code    */
  U8                        _align0;                  /*< 13:  1> alignment                                          */
  U8                        _align1;                  /*< 14:  1> alignment                                          */
  U8                        _align2;                  /*< 15:  1> alignment                                          */
} T_PS_rai;
#endif

#ifndef __T_PS_ps_loci__
#define __T_PS_ps_loci__
/*
 * Container for packet switched location information
 * CCDGEN:WriteStruct_Count==944
 */
typedef struct
{
  T_PS_rai                  rai;                      /*<  0: 16> Container for packet switched routing area identification */
  U8                        _align0;                  /*< 16:  1> alignment                                          */
  U8                        _align1;                  /*< 17:  1> alignment                                          */
  U8                        _align2;                  /*< 18:  1> alignment                                          */
  U8                        v_p_tmsi;                 /*< 19:  1> valid-flag                                         */
  T_PS_p_tmsi               p_tmsi;                   /*< 20:  4> Container for P-TMSI                               */
} T_PS_ps_loci;
#endif

#ifndef __T_PS_tmsi__
#define __T_PS_tmsi__
/*
 * Container for TMSI
 * CCDGEN:WriteStruct_Count==946
 */
typedef struct
{
  U8                        content_tmsi[PS_SIZE_TMSI]; /*<  0:  4> Content of TMSI                                    */
} T_PS_tmsi;
#endif

#ifndef __T_PS_loci__
#define __T_PS_loci__
/*
 * Container for location information
 * CCDGEN:WriteStruct_Count==947
 */
typedef struct
{
  T_PS_lai                  lai;                      /*<  0: 12> Container for location area information            */
  U8                        _align0;                  /*< 12:  1> alignment                                          */
  U8                        _align1;                  /*< 13:  1> alignment                                          */
  U8                        _align2;                  /*< 14:  1> alignment                                          */
  U8                        v_tmsi;                   /*< 15:  1> valid-flag                                         */
  T_PS_tmsi                 tmsi;                     /*< 16:  4> Container for TMSI                                 */
} T_PS_loci;
#endif

#ifndef __T_PS_umts_cell_description__
#define __T_PS_umts_cell_description__
/*
 * Container for cell description information for a UMTS cell
 * CCDGEN:WriteStruct_Count==948
 */
typedef struct
{
  U16                       uarfcn;                   /*<  0:  2> T_PS_uarfcn,  UMTS channel number                  */
  U16                       psc;                      /*<  2:  2> T_PS_psc,  FDD primary scrambling code             */
  U8                        v_tx_diversity;           /*<  4:  1> valid-flag                                         */
  U8                        tx_diversity;             /*<  5:  1> T_PS_tx_diversity,  UMTS FDD TX diversity indicator */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
} T_PS_umts_cell_description;
#endif

#ifndef __T_PS_key_set__
#define __T_PS_key_set__
/*
 * Ciphering and integrity keys for a CN domain
 * CCDGEN:WriteStruct_Count==949
 */
typedef struct
{
  U8                        ksi;                      /*<  0:  1> T_PS_ksi,  Key set identifier                      */
  U8                        ciphering_key[PS_SIZE_CK]; /*<  1: 16> Ciphering key                                      */
  U8                        integrity_key[PS_SIZE_IK]; /*< 17: 16> Integrity protection key                           */
  U8                        _align0;                  /*< 33:  1> alignment                                          */
  U8                        _align1;                  /*< 34:  1> alignment                                          */
  U8                        _align2;                  /*< 35:  1> alignment                                          */
} T_PS_key_set;
#endif

#ifndef __T_PS_umts_ncell_list__
#define __T_PS_umts_ncell_list__
/*
 * UMTS neighbour cell list
 * CCDGEN:WriteStruct_Count==950
 */
typedef struct
{
  U8                        _align0;                  /*<  0:  1> alignment                                          */
  U8                        _align1;                  /*<  1:  1> alignment                                          */
  U8                        _align2;                  /*<  2:  1> alignment                                          */
  U8                        c_umts_cell_description;  /*<  3:  1> counter                                            */
  T_PS_umts_cell_description umts_cell_description[PS_MAX_UMTS_NCELLS]; /*<  4:512> Container for cell description information for a UMTS cell */
} T_PS_umts_ncell_list;
#endif

#ifndef __T_PS_umts_ncell_measurement__
#define __T_PS_umts_ncell_measurement__
/*
 * UMTS neighbour cell measurement result
 * CCDGEN:WriteStruct_Count==951
 */
typedef struct
{
  U16                       psc;                      /*<  0:  2> T_PS_psc,  FDD primary scrambling code             */
  U8                        cell_status;              /*<  2:  1> T_PS_cell_status,  Cell suitability status         */
  U8                        v_cpich_rscp;             /*<  3:  1> valid-flag                                         */
  S8                        cpich_rscp;               /*<  4:  1> T_PS_cpich_rscp,  UMTS cell measurement value of CPICH RSCP */
  U8                        v_cpich_ec_n0;            /*<  5:  1> valid-flag                                         */
  S8                        cpich_ec_n0;              /*<  6:  1> T_PS_cpich_ec_n0,  UMTS cell measurement value of CPICH Ec/N0 */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
} T_PS_umts_ncell_measurement;
#endif

#ifndef __T_PS_umts_ncell_results__
#define __T_PS_umts_ncell_results__
/*
 * UMTS neighbour cell results
 * CCDGEN:WriteStruct_Count==952
 */
typedef struct
{
  U16                       uarfcn;                   /*<  0:  2> T_PS_uarfcn,  UMTS channel number                  */
  S8                        uarfcn_rssi;              /*<  2:  1> T_PS_uarfcn_rssi,  UMTS channel RSSI measurement   */
  U8                        c_umts_ncell_measurement; /*<  3:  1> counter                                            */
  T_PS_umts_ncell_measurement umts_ncell_measurement[PS_MAX_UMTS_NCELLS_PER_UARFCN]; /*<  4:256> UMTS neighbour cell measurement result             */
} T_PS_umts_ncell_results;
#endif

#ifndef __T_PS_cs_security_parms__
#define __T_PS_cs_security_parms__
/*
 * Contains parameters related to ciphering and integrity protection for CS domain.
 * CCDGEN:WriteStruct_Count==953
 */
typedef struct
{
  T_PS_key_set              key_set;                  /*<  0: 36> Ciphering and integrity keys for a CN domain       */
  U8                        _align0;                  /*< 36:  1> alignment                                          */
  U8                        _align1;                  /*< 37:  1> alignment                                          */
  U8                        _align2;                  /*< 38:  1> alignment                                          */
  U8                        v_start_val;              /*< 39:  1> valid-flag                                         */
  U32                       start_val;                /*< 40:  4> T_PS_start_val,  START value (20 bits)             */
} T_PS_cs_security_parms;
#endif

/*
 * Contains parameters related to ciphering and integrity protection for PS domain.
 * CCDGEN:WriteStruct_Count==954
 */
#ifndef __T_PS_ps_security_parms__
#define __T_PS_ps_security_parms__
typedef T_PS_cs_security_parms T_PS_ps_security_parms;
#endif
#ifndef __T_PS_umts_security_info__
#define __T_PS_umts_security_info__
/*
 * Contains information related to UMTS ciphering and integrity protection.
 * CCDGEN:WriteStruct_Count==955
 */
typedef struct
{
  U8                        _align0;                  /*<  0:  1> alignment                                          */
  U8                        _align1;                  /*<  1:  1> alignment                                          */
  U8                        _align2;                  /*<  2:  1> alignment                                          */
  U8                        v_threshold;              /*<  3:  1> valid-flag                                         */
  U32                       threshold;                /*<  4:  4> T_PS_threshold,  THRESHOLD value                   */
  T_PS_cs_security_parms    cs_security_parms;        /*<  8: 44> Contains parameters related to ciphering and integrity protection for CS domain. */
  T_PS_ps_security_parms    ps_security_parms;        /*< 52: 44> Contains parameters related to ciphering and integrity protection for PS domain. */
} T_PS_umts_security_info;
#endif

#ifndef __T_PS_security_info__
#define __T_PS_security_info__
/*
 * Contains information related to ciphering and integrity protection.
 * CCDGEN:WriteStruct_Count==956
 */
typedef struct
{
  U8                        sim_type;                 /*<  0:  1> T_PS_sim_type,  Type of subscriber card present.   */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        v_gsm_key_set;            /*<  3:  1> valid-flag                                         */
  T_PS_gsm_key_set          gsm_key_set;              /*<  4: 24> Contains information related to ciphering          */
  U8                        _align2;                  /*< 28:  1> alignment                                          */
  U8                        _align3;                  /*< 29:  1> alignment                                          */
  U8                        _align4;                  /*< 30:  1> alignment                                          */
  U8                        v_umts_security_info;     /*< 31:  1> valid-flag                                         */
  T_PS_umts_security_info   umts_security_info;       /*< 32: 96> Contains information related to UMTS ciphering and integrity protection. */
} T_PS_security_info;
#endif


/*
 * End of substructure section, begin of primitive definition section
 */

#ifndef __T_PS_EXPORT__
#define __T_PS_EXPORT__
/*
 * 
 * CCDGEN:WriteStruct_Count==958
 */
typedef struct
{
  T_PS_acc                  acc;                      /*<  0:  4> Container for the access control class field from (U)SIM, see [3G 11.11] and [3G 31.102] */
  T_PS_ad                   ad;                       /*<  4:  4> Container for the administrative data field from (U)SIM, see [3G 11.11] and [3G 31.102] */
  U16                       arfcn;                    /*<  8:  2> T_PS_arfcn,  GSM channel number                    */
  S8                        arfcn_rssi;               /*< 10:  1> T_PS_arfcn_rssi,  GSM channel RSSI measurement     */
  U8                        _align0;                  /*< 11:  1> alignment                                          */
  T_PS_bsic                 bsic;                     /*< 12:  4> GSM BSIC                                           */
  U8                        cn_domain;                /*< 16:  1> T_PS_cn_domain,  Core network domain identity      */
  S8                        cpich_ec_n0;              /*< 17:  1> T_PS_cpich_ec_n0,  UMTS cell measurement value of CPICH Ec/N0 */
  S8                        cpich_rscp;               /*< 18:  1> T_PS_cpich_rscp,  UMTS cell measurement value of CPICH RSCP */
  U8                        est_service;              /*< 19:  1> T_PS_est_service,  Establishment service requested */
  T_PS_cs_security_parms    cs_security_parms;        /*< 20: 44> Contains parameters related to ciphering and integrity protection for CS domain. */
  T_PS_equivalent_plmn      equivalent_plmn;          /*< 64:  8> Equivalent network identifier                      */
  T_PS_equivalent_plmn_list equivalent_plmn_list;     /*< 72: 44> Container for equivalent PLMN list                 */
  T_PS_forbidden_lai        forbidden_lai;            /*<116:124> Container for forbidden location area list         */
  T_PS_gsm_cell_description gsm_cell_description;     /*<240:  8> GSM channel number and band specification          */
  U16                       gsm_frequency_band;       /*<248:  2> T_PS_gsm_frequency_band,  Frequency band specification */
  U8                        gsm_ncell_index;          /*<250:  1> T_PS_gsm_ncell_index,  GSM neighbour cell index    */
  U8                        _align1;                  /*<251:  1> alignment                                          */
  T_PS_gsm_ncell_list       gsm_ncell_list;           /*<252:260> GSM neighbour cell list                            */
  T_PS_gsm_ncell_measurement gsm_ncell_measurement;   /*<512: 12> GSM neighbour cell measurement result              */
  T_PS_gsm_ncell_results    gsm_ncell_results;        /*<524:388> GSM neighbour cell results                         */
  T_PS_gsm_key_set          gsm_key_set;              /*<912: 24> Contains information related to ciphering          */
  T_PS_home_plmn            home_plmn;                /*<936:  8> Home network identifier                            */
  T_PS_imsi                 imsi;                     /*<944: 16> Container for a subscriber id                      */
  T_PS_k_c                  k_c;                      /*<960: 12> Container for GSM ciphering parameter              */
  T_PS_k_c_gprs             k_c_gprs;                 /*<972: 12> Container for GPRS ciphering parameter             */
  T_PS_key_set              key_set;                  /*<984: 36> Ciphering and integrity keys for a CN domain       */
  U8                        ksi;                      /*<1020:  1> T_PS_ksi,  Key set identifier                      */
  U8                        _align2;                  /*<1021:  1> alignment                                          */
  U8                        _align3;                  /*<1022:  1> alignment                                          */
  U8                        _align4;                  /*<1023:  1> alignment                                          */
  T_PS_lac                  lac;                      /*<1024:  4> Container for location area code                   */
  T_PS_lai                  lai;                      /*<1028: 12> Container for location area information            */
  T_PS_loci                 loci;                     /*<1040: 20> Container for location information                 */
  U8                        llc_mode;                 /*<1060:  1> T_PS_llc_mode,  LLC mode                           */
  U8                        meas_mode;                /*<1061:  1> T_PS_meas_mode,  Measurement mode                  */
  U8                        _align5;                  /*<1062:  1> alignment                                          */
  U8                        _align6;                  /*<1063:  1> alignment                                          */
  U32                       mem_handle;               /*<1064:  4> Memory handle                                      */
  T_PS_nas_system_info      nas_system_info;          /*<1068: 12> NAS system information                             */
  T_PS_operation_mode       operation_mode;           /*<1080:  8> Supported radio access technologies                */
  T_PS_p_tmsi               p_tmsi;                   /*<1088:  4> Container for P-TMSI                               */
  U16                       peak_throughput;          /*<1092:  2> T_PS_peak_throughput,  Peak throughput QoS parameter */
  U8                        _align7;                  /*<1094:  1> alignment                                          */
  U8                        _align8;                  /*<1095:  1> alignment                                          */
  T_PS_plmn_id              plmn_id;                  /*<1096:  8> Container for a GSM MAP network identifier         */
  T_PS_ps_loci              ps_loci;                  /*<1104: 24> Container for packet switched location information */
  T_PS_ps_security_parms    ps_security_parms;        /*<1128: 44> Contains parameters related to ciphering and integrity protection for PS domain. */
  U16                       psc;                      /*<1172:  2> T_PS_psc,  FDD primary scrambling code             */
  U8                        radio_prio;               /*<1174:  1> T_PS_radio_prio,  Radio priority                   */
  U8                        rac;                      /*<1175:  1> Container for packet switched routing area code    */
  T_PS_rai                  rai;                      /*<1176: 16> Container for packet switched routing area identification */
  U8                        rat;                      /*<1192:  1> T_PS_rat,  Radio access technology                 */
  U8                        rel_ind;                  /*<1193:  1> T_PS_rel_ind,  Local Release Indicator             */
  U8                        sapi;                     /*<1194:  1> T_PS_sapi,  Service Access Point Identifier        */
  U8                        search_mode;              /*<1195:  1> T_PS_search_mode,  Search mode for network scan    */
  T_PS_security_info        security_info;            /*<1196:128> Contains information related to ciphering and integrity protection. */
  T_PS_selected_plmn        selected_plmn;            /*<1324:  8> Selected network identifier                        */
  U32                       start_val;                /*<1332:  4> T_PS_start_val,  START value (20 bits)             */
  U8                        sim_type;                 /*<1336:  1> T_PS_sim_type,  Type of subscriber card present.   */
  U8                        _align9;                  /*<1337:  1> alignment                                          */
  U8                        _align10;                 /*<1338:  1> alignment                                          */
  U8                        _align11;                 /*<1339:  1> alignment                                          */
  T_PS_tmsi                 tmsi;                     /*<1340:  4> Container for TMSI                                 */
  U8                        tx_diversity;             /*<1344:  1> T_PS_tx_diversity,  UMTS FDD TX diversity indicator */
  U8                        _align12;                 /*<1345:  1> alignment                                          */
  U16                       uarfcn;                   /*<1346:  2> T_PS_uarfcn,  UMTS channel number                  */
  S8                        uarfcn_rssi;              /*<1348:  1> T_PS_uarfcn_rssi,  UMTS channel RSSI measurement   */
  U8                        _align13;                 /*<1349:  1> alignment                                          */
  U8                        _align14;                 /*<1350:  1> alignment                                          */
  U8                        _align15;                 /*<1351:  1> alignment                                          */
  T_PS_ul_sdus              ul_sdus;                  /*<1352:  8> Sequence numbers and mem handles pr. NSAPI         */
  T_PS_umts_cell_description umts_cell_description;   /*<1360:  8> Container for cell description information for a UMTS cell */
  T_PS_umts_ncell_list      umts_ncell_list;          /*<1368:516> UMTS neighbour cell list                           */
  T_PS_umts_ncell_measurement umts_ncell_measurement; /*<1884:  8> UMTS neighbour cell measurement result             */
  T_PS_umts_ncell_results   umts_ncell_results;       /*<1892:260> UMTS neighbour cell results                        */
  T_PS_umts_security_info   umts_security_info;       /*<2152: 96> Contains information related to UMTS ciphering and integrity protection. */
  U8                        service_level;            /*<2248:  1> T_PS_service_level,  Cell service level            */
  U8                        _align16;                 /*<2249:  1> alignment                                          */
  U8                        _align17;                 /*<2250:  1> alignment                                          */
  U8                        _align18;                 /*<2251:  1> alignment                                          */
  T_sdu                     sdu;                      /*<2252: ? > Container for a message                            */
} T_PS_EXPORT;
#endif


#include "CDG_LEAVE.h"


#endif