view cdg-hybrid/cdginc/p_em.h @ 303:f76436d19a7a default tip

!GPRS config: fix long-standing AT+COPS chance hanging bug There has been a long-standing bug in FreeCalypso going back years: sometimes in the AT command bring-up sequence of an ACI-only MS, the AT+COPS command would produce only a power scan followed by cessation of protocol stack activity (only L1 ADC traces), instead of the expected network search sequence. This behaviour was seen in different FC firmware versions going back to Citrine, and seemed to follow some law of chance, not reliably repeatable. This bug has been tracked down and found to be specific to !GPRS configuration, stemming from our TCS2/TCS3 hybrid and reconstruction of !GPRS support that was bitrotten in TCS3.2/LoCosto version. ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3 version and had to be pulled from TCS2 - but as it turns out, there is a new field in the MMR_REG_REQ primitive that needs to be set correctly, and that psa_mms.c module is the place where this initialization needed to be added.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Jun 2023 08:23:37 +0000
parents 35f7a1dc9f7d
children
line wrap: on
line source

/*
+--------------------------------------------------------------------------+
| PROJECT : PROTOCOL STACK                                                 |
| FILE    : p_em.h                                                         |
| SOURCE  : "sap\em.pdf"                                                   |
| LastModified : "2002-02-25"                                              |
| IdAndVersion : "8304.129.96.103"                                         |
| SrcFileTime  : "Thu Nov 29 09:40:50 2007"                                |
| Generated by CCDGEN_2.5.5A on Fri Oct 14 21:41:52 2016                   |
|           !!DO NOT MODIFY!!DO NOT MODIFY!!DO NOT MODIFY!!                |
+--------------------------------------------------------------------------+
*/

/* PRAGMAS
 * PREFIX                 : NONE
 * COMPATIBILITY_DEFINES  : NO (require PREFIX)
 * ALWAYS_ENUM_IN_VAL_FILE: NO
 * ENABLE_GROUP: NO
 * CAPITALIZE_TYPENAME: NO
 */


#ifndef P_EM_H
#define P_EM_H


#define CDG_ENTER__P_EM_H

#define CDG_ENTER__FILENAME _P_EM_H
#define CDG_ENTER__P_EM_H__FILE_TYPE CDGINC
#define CDG_ENTER__P_EM_H__LAST_MODIFIED _2002_02_25
#define CDG_ENTER__P_EM_H__ID_AND_VERSION _8304_129_96_103

#define CDG_ENTER__P_EM_H__SRC_FILE_TIME _Thu_Nov_29_09_40_50_2007

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_EM_H

#undef CDG_ENTER__FILENAME


#include "p_em.val"

#ifndef __T_net_ctrl__
#define __T_net_ctrl__
/*
 * Network control
 * CCDGEN:WriteStruct_Count==1481
 */
typedef struct
{
  U8                        spgc_ccch_sup;            /*<  0:  1> SPLIT_PG_CYCLE_SUPPORT: whether it is supported or not - should be BOOL, but BOOL is not valid in SAP */
  U8                        priority_access_thr;      /*<  1:  1> packet access to the network according to priority level */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_net_ctrl;
#endif

#ifndef __T_em_imeisv__
#define __T_em_imeisv__
/*
 * IMEISV
 * CCDGEN:WriteStruct_Count==1482
 */
typedef struct
{
  U8                        ident_type;               /*<  0:  1> Type of identity                                   */
  U8                        odd_even;                 /*<  1:  1> Odd/ Even indication                               */
  U8                        v_ident_dig;              /*<  2:  1> valid-flag                                         */
  U8                        c_ident_dig;              /*<  3:  1> counter                                            */
  U8                        ident_dig[16];            /*<  4: 16> Identity digit                                     */
} T_em_imeisv;
#endif

/*
 * IMSI
 * CCDGEN:WriteStruct_Count==1483
 */
#ifndef __T_em_imsi__
#define __T_em_imsi__
typedef T_em_imeisv T_em_imsi;
#endif
#ifndef __T_hop_chn__
#define __T_hop_chn__
/*
 * frequency hopping channel list after time
 * CCDGEN:WriteStruct_Count==1484
 */
typedef struct
{
  U8                        maio;                     /*<  0:  1> Mobile allocation index offset                     */
  U8                        nr_arfcns;                /*<  1:  1> Number of arfcns in hopping list                   */
  U16                       ma[65];                   /*<  2:130> MA list after time                                 */
} T_hop_chn;
#endif

#ifndef __T_classm2__
#define __T_classm2__
/*
 * Classmark 2
 * CCDGEN:WriteStruct_Count==1485
 */
typedef struct
{
  U8                        rev_lev;                  /*<  0:  1> rev_lev                                            */
  U8                        es_ind;                   /*<  1:  1> es_ind                                             */
  U8                        a5_1;                     /*<  2:  1> a5_1                                               */
  U8                        rf_pow_cap;               /*<  3:  1> rf_pow_cap                                         */
  U8                        ps_cap;                   /*<  4:  1> ps_cap                                             */
  U8                        ss_screen;                /*<  5:  1> ss_screen                                          */
  U8                        sm_cap;                   /*<  6:  1> sm_cap                                             */
  U8                        freq_cap;                 /*<  7:  1> freq_cap                                           */
  U8                        class_3;                  /*<  8:  1> class_3                                            */
  U8                        cmsp;                     /*<  9:  1> cmsp                                               */
  U8                        a5_3;                     /*< 10:  1> a5_3                                               */
  U8                        a5_2;                     /*< 11:  1> a5_2                                               */
} T_classm2;
#endif

#ifndef __T_meas_cap__
#define __T_meas_cap__
/*
 * meas_cap
 * CCDGEN:WriteStruct_Count==1486
 */
typedef struct
{
  U8                        sw_time;                  /*<  0:  1> sw_time                                            */
  U8                        sws_time;                 /*<  1:  1> sws_time                                           */
  U8                        dummy1;                   /*<  2:  1> dummy1                                             */
  U8                        dummy2;                   /*<  3:  1> dummy2                                             */
} T_meas_cap;
#endif

#ifndef __T_classm3__
#define __T_classm3__
/*
 * Classmark 3
 * CCDGEN:WriteStruct_Count==1487
 */
typedef struct
{
  U8                        mb_sub;                   /*<  0:  1> mb_sub                                             */
  U8                        a5_7;                     /*<  1:  1> a5_7                                               */
  U8                        a5_6;                     /*<  2:  1> a5_6                                               */
  U8                        a5_5;                     /*<  3:  1> a5_5                                               */
  U8                        a5_4;                     /*<  4:  1> a5_4                                               */
  U8                        v_radio_cap_2;            /*<  5:  1> v_radio_cap_2                                      */
  U8                        radio_cap_2;              /*<  6:  1> radio_cap_2                                        */
  U8                        v_radio_cap_1;            /*<  7:  1> v_radio_cap_1                                      */
  U8                        radio_cap_1;              /*<  8:  1> radio_cap_1                                        */
  U8                        v_r_support;              /*<  9:  1> v_r_support                                        */
  U8                        r_support;                /*< 10:  1> r_support                                          */
  U8                        v_m_s_class;              /*< 11:  1> v_m_s_class                                        */
  U8                        m_s_class;                /*< 12:  1> m_s_class                                          */
  U8                        ucs2_treat;               /*< 13:  1> ucs2_treat                                         */
  U8                        ext_meas_cap;             /*< 14:  1> ext_meas_cap                                       */
  U8                        v_meas_cap;               /*< 15:  1> v_meas_cap                                         */
  T_meas_cap                meas_cap;                 /*< 16:  4> meas_cap                                           */
} T_classm3;
#endif

#ifndef __T_ul_tbf_par__
#define __T_ul_tbf_par__
/*
 * ul tbf parameter
 * CCDGEN:WriteStruct_Count==1488
 */
typedef struct
{
  U8                        tfi;                      /*<  0:  1> Basic Element                                      */
  U8                        mac_mod;                  /*<  1:  1> Basic Element                                      */
  U16                       ul_nb_block;              /*<  2:  2> Number of blocks to be sent for uplink             */
  U8                        cv;                       /*<  4:  1> countdown value                                    */
  U8                        cs;                       /*<  5:  1> Basic Element                                      */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
} T_ul_tbf_par;
#endif

#ifndef __T_dl_tbf_par__
#define __T_dl_tbf_par__
/*
 * dl tbf parameters
 * CCDGEN:WriteStruct_Count==1489
 */
typedef struct
{
  U8                        tfi;                      /*<  0:  1> Basic Element                                      */
  U8                        mac_mod;                  /*<  1:  1> Basic Element                                      */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_dl_tbf_par;
#endif

#ifndef __T_t3312__
#define __T_t3312__
/*
 * Structured Element
 * CCDGEN:WriteStruct_Count==1490
 */
typedef struct
{
  U8                        t3312_deactivated;        /*<  0:  1> Periodic RAU timer state                           */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
  U32                       t3312_val;                /*<  4:  4> Periodic RAU timer value in seconds                */
} T_t3312;
#endif

#ifndef __T_amr_cod_prop__
#define __T_amr_cod_prop__
/*
 * Parameters for multirate speech field
 * CCDGEN:WriteStruct_Count==1491
 */
typedef struct
{
  U8                        amr_codec_thr;            /*<  0:  1> Lower thresholds for switching between mode j and j-1 */
  U8                        amr_codec_hyst;           /*<  1:  1> Hysteresis values to obtain the higher thresholds for switching between mode j and j+1 */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_amr_cod_prop;
#endif

#ifndef __T_hop_chn2__
#define __T_hop_chn2__
/*
 * Frequency channel hopping list before time
 * CCDGEN:WriteStruct_Count==1492
 */
typedef struct
{
  U8                        maio;                     /*<  0:  1> Mobile allocation index offset                     */
  U8                        nr_arfcns;                /*<  1:  1> Number of arfcns in hopping list                   */
  U16                       ma[65];                   /*<  2:130> MA list after time                                 */
} T_hop_chn2;
#endif


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

#ifndef __T_EM_SC_INFO_REQ__
#define __T_EM_SC_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1493
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_SC_INFO_REQ;
#endif

#ifndef __T_EM_SC_INFO_CNF__
#define __T_EM_SC_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1494
 */
typedef struct
{
  U16                       arfcn;                    /*<  0:  2> channel number                                     */
  S16                       c1;                       /*<  2:  2> path loss criterion C1                             */
  S16                       c2;                       /*<  4:  2> reselection criterion C2                           */
  U8                        rxlev;                    /*<  6:  1> received field strength                            */
  U8                        bsic;                     /*<  7:  1> base station ID code                               */
  U8                        dsc;                      /*<  8:  1> actual downlink signalling counter                 */
  U8                        txlev;                    /*<  9:  1> Power Level                                        */
  U8                        tn;                       /*< 10:  1> timeslot number                                    */
  U8                        rlt;                      /*< 11:  1> actual radiolink timeout counter                   */
  U8                        tav;                      /*< 12:  1> timing advance                                     */
  U8                        rxlev_f;                  /*< 13:  1> received field strength                            */
  U8                        rxlev_s;                  /*< 14:  1> received field strength                            */
  U8                        rxqual_f;                 /*< 15:  1> received quality                                   */
  U8                        rxqual_s;                 /*< 16:  1> received quality                                   */
  U8                        _align0;                  /*< 17:  1> alignment                                          */
  U16                       lac;                      /*< 18:  2> location area code                                 */
  U8                        cba;                      /*< 20:  1> cell bar access                                    */
  U8                        cbq;                      /*< 21:  1> cell bar  qualifier                                */
  U16                       cell_id;                  /*< 22:  2> cell identity SC                                   */
  U8                        cell_type_ind;            /*< 24:  1> Indicates the cell type GSM/GPRS                   */
  U8                        vocoder;                  /*< 25:  1> Vocoder type                                       */
  U8                        _align1;                  /*< 26:  1> alignment                                          */
  U8                        _align2;                  /*< 27:  1> alignment                                          */
} T_EM_SC_INFO_CNF;
#endif

#ifndef __T_EM_SC_GPRS_INFO_REQ__
#define __T_EM_SC_GPRS_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1495
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_SC_GPRS_INFO_REQ;
#endif

#ifndef __T_EM_SC_GPRS_INFO_CNF__
#define __T_EM_SC_GPRS_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1496
 */
typedef struct
{
  U8                        gmm_state;                /*<  0:  1> codes the GPRS state                               */
  U8                        tn;                       /*<  1:  1> timeslot number                                    */
  U8                        nmo;                      /*<  2:  1> network mode of operation                          */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
  T_net_ctrl                net_ctrl;                 /*<  4:  4> Network control                                    */
  U8                        cba;                      /*<  8:  1> cell bar access                                    */
  U8                        rac;                      /*<  9:  1> routing area code                                  */
  U8                        tav;                      /*< 10:  1> timing advance                                     */
  U8                        dsc;                      /*< 11:  1> actual downlink signalling counter                 */
  S16                       c31;                      /*< 12:  2> reselection criterion C31 (GPRS)                   */
  S16                       c32;                      /*< 14:  2> reselection criterion C32 (GPRS)                   */
  U8                        nco;                      /*< 16:  1> Network Controlled reselection Order               */
// ELEM-FF: REL99 
//   U8                        bss_paging_coord;         /*<  0:  0> BS paging coordination                             */
// ELEM-FF: REL99 
//   U8                        band_ind;                 /*<  0:  0> Band Indicator                                     */
  U8                        _align1;                  /*< 17:  1> alignment                                          */
  U8                        _align2;                  /*< 18:  1> alignment                                          */
  U8                        _align3;                  /*< 19:  1> alignment                                          */
} T_EM_SC_GPRS_INFO_CNF;
#endif

#ifndef __T_EM_NC_INFO_REQ__
#define __T_EM_NC_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1497
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_NC_INFO_REQ;
#endif

#ifndef __T_EM_NC_INFO_CNF__
#define __T_EM_NC_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1498
 */
typedef struct
{
  U8                        no_ncells;                /*<  0:  1> no of neighbour cells                              */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U16                       arfcn_nc[6];              /*<  2: 12> channel number                                     */
  S16                       c1_nc[6];                 /*< 14: 12> path loss criterion C1 neighbour cells             */
  S16                       c2_nc[6];                 /*< 26: 12> reselection criterion C2 neighbour cells           */
  U8                        rxlev_nc[6];              /*< 38:  6> received field strength neighbour cell             */
  U8                        bsic_nc[6];               /*< 44:  6> base station ID code neighbour cell                */
  U16                       cell_id_nc[6];            /*< 50: 12> cell identity neighbour cell                       */
  U16                       lac_nc[6];                /*< 62: 12> location area code neighbour cells                 */
  U8                        _align1;                  /*< 74:  1> alignment                                          */
  U8                        _align2;                  /*< 75:  1> alignment                                          */
  U32                       frame_offset[6];          /*< 76: 24> frame offset                                       */
  U32                       time_alignmt[6];          /*<100: 24> time alignment                                     */
  U8                        cba_nc[6];                /*<124:  6> cell bar access neighbour cells                    */
  U8                        cbq_nc[6];                /*<130:  6> cell bar qualifier neighbour cells                 */
  U8                        cell_type_ind[6];         /*<136:  6> Indicates the cell type GSM/GPRS                   */
  U8                        rac[6];                   /*<142:  6> routing area code                                  */
  U8                        temp_offset[6];           /*<148:  6> Stores temporary offset                            */
  U8                        cell_resel_offset[6];     /*<154:  6> stores cell reselect offset                        */
  U8                        rxlev_acc_min[6];         /*<160:  6> stores RXLEV_ACCESS_MIN                            */
  U8                        _align3;                  /*<166:  1> alignment                                          */
  U8                        _align4;                  /*<167:  1> alignment                                          */
} T_EM_NC_INFO_CNF;
#endif

#ifndef __T_EM_LOC_PAG_INFO_REQ__
#define __T_EM_LOC_PAG_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1499
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_LOC_PAG_INFO_REQ;
#endif

#ifndef __T_EM_LOC_PAG_INFO_CNF__
#define __T_EM_LOC_PAG_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1500
 */
typedef struct
{
  U8                        bs_pa_mfrms;              /*<  0:  1> Multiframe Period                                  */
  U8                        t3212;                    /*<  1:  1> Timer T3212                                        */
  U8                        mcc[3];                   /*<  2:  3> mobile country code                                */
  U8                        mnc[3];                   /*<  5:  3> mobile network code                                */
  U32                       tmsi;                     /*<  8:  4> binary representation TMSI                         */
} T_EM_LOC_PAG_INFO_CNF;
#endif

#ifndef __T_EM_PLMN_INFO_REQ__
#define __T_EM_PLMN_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1501
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_PLMN_INFO_REQ;
#endif

#ifndef __T_EM_PLMN_INFO_CNF__
#define __T_EM_PLMN_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1502
 */
typedef struct
{
  U8                        no_creq_max;              /*<  0:  1> mobile country code                                */
  U8                        reest_flag;               /*<  1:  1> Re-establishment flag                              */
  U8                        txpwr_max;                /*<  2:  1> Max power level in a cell                          */
  U8                        rxlev_min;                /*<  3:  1> min. rxlev to access the cell                      */
  U16                       rel_cause;                /*<  4:  2> release cause                                      */
// ELEM-FF: REL99 
//   U8                        sgsnr_rel;                /*<  0:  0> SGSNR release                                      */
// ELEM-FF: REL99 
//   U8                        mscr_rel;                 /*<  0:  0> MSCR Release                                       */
// ELEM-FF: REL99 
//   U8                        net_rel;                  /*<  0:  0> N/W Rel. information                               */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
} T_EM_PLMN_INFO_CNF;
#endif

#ifndef __T_EM_CIP_HOP_DTX_INFO_REQ__
#define __T_EM_CIP_HOP_DTX_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1503
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_CIP_HOP_DTX_INFO_REQ;
#endif

#ifndef __T_EM_CIP_HOP_DTX_INFO_CNF__
#define __T_EM_CIP_HOP_DTX_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1504
 */
typedef struct
{
  U8                        ciph_stat;                /*<  0:  1> Cipher status                                      */
  U8                        hop;                      /*<  1:  1> Hopping valid or not flag                          */
  U16                       arfcn;                    /*<  2:  2> channel number                                     */
  U8                        hsn;                      /*<  4:  1> Hopping sequence number                            */
  U8                        dtx_stat;                 /*<  5:  1> DTX status                                         */
  U8                        v_start;                  /*<  6:  1> starting time valid                                */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
  T_hop_chn                 hop_chn;                  /*<  8:132> frequency hopping channel list after time          */
  T_hop_chn2                hop_chn2;                 /*<140:132> Frequency channel hopping list before time         */
} T_EM_CIP_HOP_DTX_INFO_CNF;
#endif

#ifndef __T_EM_POWER_INFO_REQ__
#define __T_EM_POWER_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1505
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_POWER_INFO_REQ;
#endif

#ifndef __T_EM_POWER_INFO_CNF__
#define __T_EM_POWER_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1506
 */
typedef struct
{
  T_classm2                 classm2;                  /*<  0: 12> Classmark 2                                        */
  T_classm3                 classm3;                  /*< 12: 20> Classmark 3                                        */
} T_EM_POWER_INFO_CNF;
#endif

#ifndef __T_EM_IDENTITY_INFO_REQ__
#define __T_EM_IDENTITY_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1507
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_IDENTITY_INFO_REQ;
#endif

#ifndef __T_EM_IDENTITY_INFO_CNF__
#define __T_EM_IDENTITY_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1508
 */
typedef struct
{
  T_em_imeisv               em_imeisv;                /*<  0: 20> IMEISV                                             */
  T_em_imsi                 em_imsi;                  /*< 20: 20> IMSI                                               */
  U32                       tmsi;                     /*< 40:  4> binary representation TMSI                         */
} T_EM_IDENTITY_INFO_CNF;
#endif

#ifndef __T_EM_SW_VERSION_INFO_REQ__
#define __T_EM_SW_VERSION_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1509
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_SW_VERSION_INFO_REQ;
#endif

#ifndef __T_EM_SW_VERSION_INFO_CNF__
#define __T_EM_SW_VERSION_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1510
 */
typedef struct
{
  U16                       v_mmi;                    /*<  0:  2> not implemented yet                                */
  U16                       v_sim;                    /*<  2:  2> not implemented yet                                */
  U16                       v_cc;                     /*<  4:  2> not implemented yet                                */
  U16                       v_ss;                     /*<  6:  2> not implemented yet                                */
  U16                       v_sms;                    /*<  8:  2> not implemented yet                                */
  U16                       v_mm;                     /*< 10:  2> not implemented yet                                */
  U16                       v_rr;                     /*< 12:  2> not implemented yet                                */
  U16                       v_dl;                     /*< 14:  2> not implemented yet                                */
  U16                       v_l1;                     /*< 16:  2> not implemented yet                                */
  U8                        _align0;                  /*< 18:  1> alignment                                          */
  U8                        _align1;                  /*< 19:  1> alignment                                          */
} T_EM_SW_VERSION_INFO_CNF;
#endif

#ifndef __T_EM_COUNTER_IDLE_IND__
#define __T_EM_COUNTER_IDLE_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==1511
 */
typedef struct
{
  U8                        max_dlt;                  /*<  0:  1> maximum downlink timeout counter                   */
  U8                        act_dlt;                  /*<  1:  1> actual downlink timeout counter                    */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_COUNTER_IDLE_IND;
#endif

#ifndef __T_EM_COUNTER_DEDI_IND__
#define __T_EM_COUNTER_DEDI_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==1512
 */
typedef struct
{
  U8                        max_rlt;                  /*<  0:  1> maximum radiolink timeout counter                  */
  U8                        act_rlt;                  /*<  1:  1> actual radiolink timeout counter                   */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_COUNTER_DEDI_IND;
#endif

#ifndef __T_EM_L1_EVENT_REQ__
#define __T_EM_L1_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1513
 */
typedef struct
{
  U16                       bitmask_l1_h;             /*<  0:  2> bitmask for L1 higher bits                         */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  U32                       bitmask_l1_l;             /*<  4:  4> bitmask for L1 lower bits                          */
} T_EM_L1_EVENT_REQ;
#endif

#ifndef __T_EM_DL_EVENT_REQ__
#define __T_EM_DL_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1514
 */
typedef struct
{
  U16                       bitmask_dl;               /*<  0:  2> bitmask for DL                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_DL_EVENT_REQ;
#endif

#ifndef __T_EM_RR_EVENT_REQ__
#define __T_EM_RR_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1515
 */
typedef struct
{
  U16                       bitmask_rr_h;             /*<  0:  2> bitmask for RR higher bits                         */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  U32                       bitmask_rr_l;             /*<  4:  4> bitmask for RR lower bits                          */
} T_EM_RR_EVENT_REQ;
#endif

#ifndef __T_EM_MM_EVENT_REQ__
#define __T_EM_MM_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1516
 */
typedef struct
{
  U32                       bitmask_mm;               /*<  0:  4> bitmask for MM                                     */
} T_EM_MM_EVENT_REQ;
#endif

#ifndef __T_EM_CC_EVENT_REQ__
#define __T_EM_CC_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1517
 */
typedef struct
{
  U32                       bitmask_cc_h;             /*<  0:  4> bitmask for CC higher bits                         */
  U32                       bitmask_cc_l;             /*<  4:  4> bitmask for CC lower bits                          */
} T_EM_CC_EVENT_REQ;
#endif

#ifndef __T_EM_SS_EVENT_REQ__
#define __T_EM_SS_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1518
 */
typedef struct
{
  U16                       bitmask_ss;               /*<  0:  2> bitmask for SS                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_SS_EVENT_REQ;
#endif

#ifndef __T_EM_SMS_EVENT_REQ__
#define __T_EM_SMS_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1519
 */
typedef struct
{
  U32                       bitmask_sms_h;            /*<  0:  4> bitmask for SMS higher bits                        */
  U32                       bitmask_sms_l;            /*<  4:  4> bitmask for SMS lower bits                         */
} T_EM_SMS_EVENT_REQ;
#endif

#ifndef __T_EM_SIM_EVENT_REQ__
#define __T_EM_SIM_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1520
 */
typedef struct
{
  U32                       bitmask_sim;              /*<  0:  4> bitmask for SIM                                    */
} T_EM_SIM_EVENT_REQ;
#endif

#ifndef __T_EM_DATA_IND__
#define __T_EM_DATA_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==1521
 */
typedef struct
{
  U8                        entity;                   /*<  0:  1> Entity name                                        */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
} T_EM_DATA_IND;
#endif

#ifndef __T_EM_FMM_SC_INFO_REQ__
#define __T_EM_FMM_SC_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1522
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_SC_INFO_REQ;
#endif

#ifndef __T_EM_FMM_SC_INFO_CNF__
#define __T_EM_FMM_SC_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1523
 */
typedef struct
{
  U16                       arfcn;                    /*<  0:  2> channel number                                     */
  S16                       c1;                       /*<  2:  2> path loss criterion C1                             */
  S16                       c2;                       /*<  4:  2> reselection criterion C2                           */
  U8                        rac;                      /*<  6:  1> routing area code                                  */
  U8                        hyst;                     /*<  7:  1> C2 / C32 Hysteresis                                */
  S16                       c32;                      /*<  8:  2> reselection criterion C32 (GPRS)                   */
  U8                        gprs_prio_class;          /*< 10:  1> GPRS_PRIORITY_CLASS                                */
  U8                        _align0;                  /*< 11:  1> alignment                                          */
} T_EM_FMM_SC_INFO_CNF;
#endif

#ifndef __T_EM_FMM_SC_GPRS_INFO_REQ__
#define __T_EM_FMM_SC_GPRS_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1524
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_SC_GPRS_INFO_REQ;
#endif

#ifndef __T_EM_FMM_SC_GPRS_INFO_CNF__
#define __T_EM_FMM_SC_GPRS_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1525
 */
typedef struct
{
  U8                        c31_hyst;                 /*<  0:  1> C31_HYST                                           */
  U8                        ra_re_hyst;               /*<  1:  1> RAC_HYSTERESIS                                     */
  U8                        nco;                      /*<  2:  1> Network Controlled reselection Order               */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_SC_GPRS_INFO_CNF;
#endif

#ifndef __T_EM_FMM_NC_INFO_REQ__
#define __T_EM_FMM_NC_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1526
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_NC_INFO_REQ;
#endif

#ifndef __T_EM_FMM_NC_INFO_CNF__
#define __T_EM_FMM_NC_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1527
 */
typedef struct
{
  U8                        no_ncells;                /*<  0:  1> no of neighbour cells                              */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U16                       arfcn_nc[6];              /*<  2: 12> channel number                                     */
  S16                       c2_nc[6];                 /*< 14: 12> reselection criterion C2 neighbour cells           */
  U8                        rac_nc[6];                /*< 26:  6> routing area code                                  */
  S16                       c31_nc[6];                /*< 32: 12> reselection criterion C31 (GPRS) neighbour cells   */
  S16                       c32_nc[6];                /*< 44: 12> reselection criterion C32 (GPRS) neighbour cells   */
  U8                        gprs_prio_class_nc[6];    /*< 56:  6> GPRS_PRIORITY_CLASS                                */
  U8                        _align1;                  /*< 62:  1> alignment                                          */
  U8                        _align2;                  /*< 63:  1> alignment                                          */
} T_EM_FMM_NC_INFO_CNF;
#endif

#ifndef __T_EM_FMM_RLC_TRANS_INFO_REQ__
#define __T_EM_FMM_RLC_TRANS_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1528
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_RLC_TRANS_INFO_REQ;
#endif

#ifndef __T_EM_FMM_RLC_TRANS_INFO_CNF__
#define __T_EM_FMM_RLC_TRANS_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1529
 */
typedef struct
{
  U8                        rlc_num_retrans;          /*<  0:  1> Info about the number of retransmitted RLCs        */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U16                       rlc_num_trans;            /*<  2:  2> Info about the number of transmitted RLCs          */
  U8                        rlc_pdu_cnt;              /*<  4:  1> Info about the number of transmitted RLCs          */
  U8                        _align1;                  /*<  5:  1> alignment                                          */
  U8                        _align2;                  /*<  6:  1> alignment                                          */
  U8                        _align3;                  /*<  7:  1> alignment                                          */
  U32                       rlc_start_fn;             /*<  8:  4> Info about the number of transmitted RLCs          */
  U32                       rlc_end_fn;               /*< 12:  4> Info about the number of transmitted RLCs          */
  U16                       rlc_tbc;                  /*< 16:  2> Number of rlc data blocks during the tbf, which is requested to send */
  U8                        _align4;                  /*< 18:  1> alignment                                          */
  U8                        _align5;                  /*< 19:  1> alignment                                          */
} T_EM_FMM_RLC_TRANS_INFO_CNF;
#endif

#ifndef __T_EM_FMM_RESELECTION_START_IND__
#define __T_EM_FMM_RESELECTION_START_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==1530
 */
typedef struct
{
  U16                       arfcn;                    /*<  0:  2> channel number                                     */
  U8                        rac;                      /*<  2:  1> routing area code                                  */
  U8                        res_type;                 /*<  3:  1> Reselection Type                                   */
} T_EM_FMM_RESELECTION_START_IND;
#endif

#ifndef __T_EM_FMM_RESELECTION_END_IND__
#define __T_EM_FMM_RESELECTION_END_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==1531
 */
typedef struct
{
  U16                       arfcn;                    /*<  0:  2> channel number                                     */
  U8                        rac;                      /*<  2:  1> routing area code                                  */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_RESELECTION_END_IND;
#endif

#ifndef __T_EM_FMM_TBF_INFO_REQ__
#define __T_EM_FMM_TBF_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1532
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_FMM_TBF_INFO_REQ;
#endif

#ifndef __T_EM_FMM_TBF_INFO_CNF__
#define __T_EM_FMM_TBF_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1533
 */
typedef struct
{
  U8                        tbf_trans_type;           /*<  0:  1> TBF unique ID                                      */
  U8                        tbf_num_ults;             /*<  1:  1> number of assigned Timeslots                       */
  U16                       tbf_num_rlc;              /*<  2:  2> number of granted uplink RLC blocks                */
} T_EM_FMM_TBF_INFO_CNF;
#endif

#ifndef __T_EM_PCO_TRACE_REQ__
#define __T_EM_PCO_TRACE_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1534
 */
typedef struct
{
  U32                       pco_bitmap;               /*<  0:  4> EM-Data output to PCO according to bitmap          */
} T_EM_PCO_TRACE_REQ;
#endif

#ifndef __T_EM_GRLC_INFO_REQ__
#define __T_EM_GRLC_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1535
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_GRLC_INFO_REQ;
#endif

#ifndef __T_EM_GRLC_INFO_CNF__
#define __T_EM_GRLC_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1536
 */
typedef struct
{
  U8                        grlc_state;               /*<  0:  1> grlc state                                         */
  U8                        tbf_mod;                  /*<  1:  1> Basic Element                                      */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  T_ul_tbf_par              ul_tbf_par;               /*<  4:  8> ul tbf parameter                                   */
  T_dl_tbf_par              dl_tbf_par;               /*< 12:  4> dl tbf parameters                                  */
} T_EM_GRLC_INFO_CNF;
#endif

#ifndef __T_EM_GMM_INFO_REQ__
#define __T_EM_GMM_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1537
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_GMM_INFO_REQ;
#endif

#ifndef __T_EM_GMM_INFO_CNF__
#define __T_EM_GMM_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1538
 */
typedef struct
{
  U8                        ready_state;              /*<  0:  1> ready-standby state                                */
  U8                        ciphering_algorithm;      /*<  1:  1> ciphering algorithm                                */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  U32                       tlli;                     /*<  4:  4> tlli                                               */
  U32                       ptmsi;                    /*<  8:  4> ptmsi                                              */
  U32                       ptmsi_sig;                /*< 12:  4> ptmsi signature                                    */
  U32                       ready_timer;              /*< 16:  4> ready timer T3314                                  */
  T_t3312                   t3312;                    /*< 20:  8> Structured Element                                 */
} T_EM_GMM_INFO_CNF;
#endif

#ifndef __T_EM_AMR_INFO_REQ__
#define __T_EM_AMR_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1539
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_AMR_INFO_REQ;
#endif

#ifndef __T_EM_AMR_INFO_CNF__
#define __T_EM_AMR_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1540
 */
typedef struct
{
  U8                        amr_vocoder;              /*<  0:  1> AMR vocoder type                                   */
  U8                        amr_icmi;                 /*<  1:  1> AMR initial codec mode indicator                   */
  U8                        amr_icm;                  /*<  2:  1> AMR initial codec mode(index in the ACS)           */
  U8                        amr_acs;                  /*<  3:  1> AMR active codec set                               */
  U8                        amr_first_codec;          /*<  4:  1> Highest bit rate AMR codec mode                    */
  U8                        amr_nr_modes;             /*<  5:  1> Number of AMR codec modes                          */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
  T_amr_cod_prop            amr_cod_prop[3];          /*<  8: 12> Parameters for multirate speech field              */
} T_EM_AMR_INFO_CNF;
#endif

#ifndef __T_EM_THROUGHPUT_INFO_REQ__
#define __T_EM_THROUGHPUT_INFO_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1541
 */
typedef struct
{
  U16                       data;                     /*<  0:  2> requested data                                     */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_EM_THROUGHPUT_INFO_REQ;
#endif

#ifndef __T_EM_THROUGHPUT_INFO_CNF__
#define __T_EM_THROUGHPUT_INFO_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==1542
 */
typedef struct
{
  U32                       ul_net_octet;             /*<  0:  4> octet count on up link                             */
  U32                       ul_gross_octet;           /*<  4:  4> Gross throughput octet count on up link            */
  U32                       dl_net_octet;             /*<  8:  4> Net throughput octet count on down link            */
  U32                       dl_gross_octet;           /*< 12:  4> Gross throughput octet count on down link          */
  U32                       dl_crc_errors;            /*< 16:  4> CRC errors in Downlink                             */
} T_EM_THROUGHPUT_INFO_CNF;
#endif

#ifndef __T_EM_GRR_EVENT_REQ__
#define __T_EM_GRR_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1543
 */
typedef struct
{
  U32                       bitmask_grr;              /*<  0:  4> Bitmask for GRR                                    */
} T_EM_GRR_EVENT_REQ;
#endif

#ifndef __T_EM_GMM_EVENT_REQ__
#define __T_EM_GMM_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1544
 */
typedef struct
{
  U32                       bitmask_gmm;              /*<  0:  4> GMM bitmask                                        */
} T_EM_GMM_EVENT_REQ;
#endif

#ifndef __T_EM_GRLC_EVENT_REQ__
#define __T_EM_GRLC_EVENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==1545
 */
typedef struct
{
  U32                       bitmask_grlc;             /*<  0:  4> GRLC bitmask                                       */
} T_EM_GRLC_EVENT_REQ;
#endif


#include "CDG_LEAVE.h"


#endif