FreeCalypso > hg > fc-tourmaline
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