view cdg-hybrid/cdginc/p_8010_152_ps_include.h @ 268:f2e52cab0a73

abb_inth.c: check all interrupt causes, not just one The original code used if - else if - else if etc constructs, thus the first detected interrupt was the only one handled. However, Iota ITSTATREG is a clear-on-read register, thus if we only handle the first detected interrupt and skip checking the others, then the other interrupts will be lost, if more than one interrupt happened to occur in one ABB interrupt handling cycle - a form of rare race condition. Change the code to check all interrupts that were read in this cycle.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 13 Jun 2021 18:17:53 +0000
parents 35f7a1dc9f7d
children
line wrap: on
line source

/*
+--------------------------------------------------------------------------+
| PROJECT : PROTOCOL STACK                                                 |
| FILE    : p_8010_152_ps_include.h                                        |
| SOURCE  : "sap\8010_152_ps_include.pdf"                                  |
| LastModified : "2003-10-15"                                              |
| IdAndVersion : "8010.152.02.023"                                         |
| SrcFileTime  : "Thu Nov 29 09:28:58 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                 : 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 _Thu_Nov_29_09_28_58_2007

#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_pkt_flow_id__
#define __T_PS_pkt_flow_id__
typedef T_PS_VAL_pkt_flow_id T_PS_pkt_flow_id;
#endif

#ifndef __T_PS_delay__
#define __T_PS_delay__
typedef T_PS_VAL_delay T_PS_delay;
#endif

#ifndef __T_PS_relclass__
#define __T_PS_relclass__
typedef T_PS_VAL_relclass T_PS_relclass;
#endif

#ifndef __T_PS_peak__
#define __T_PS_peak__
typedef T_PS_VAL_peak T_PS_peak;
#endif

#ifndef __T_PS_preced__
#define __T_PS_preced__
typedef T_PS_VAL_preced T_PS_preced;
#endif

#ifndef __T_PS_mean__
#define __T_PS_mean__
typedef T_PS_VAL_mean T_PS_mean;
#endif

#ifndef __T_PS_tc__
#define __T_PS_tc__
typedef T_PS_VAL_tc T_PS_tc;
#endif

#ifndef __T_PS_order__
#define __T_PS_order__
typedef T_PS_VAL_order T_PS_order;
#endif

#ifndef __T_PS_del_err_sdu__
#define __T_PS_del_err_sdu__
typedef T_PS_VAL_del_err_sdu T_PS_del_err_sdu;
#endif

#ifndef __T_PS_max_sdu__
#define __T_PS_max_sdu__
typedef T_PS_VAL_max_sdu T_PS_max_sdu;
#endif

#ifndef __T_PS_max_rate_ul__
#define __T_PS_max_rate_ul__
typedef T_PS_VAL_max_rate_ul T_PS_max_rate_ul;
#endif

#ifndef __T_PS_max_rate_dl__
#define __T_PS_max_rate_dl__
typedef T_PS_VAL_max_rate_dl T_PS_max_rate_dl;
#endif

#ifndef __T_PS_xfer_delay__
#define __T_PS_xfer_delay__
typedef T_PS_VAL_xfer_delay T_PS_xfer_delay;
#endif

#ifndef __T_PS_handling_pri__
#define __T_PS_handling_pri__
typedef T_PS_VAL_handling_pri T_PS_handling_pri;
#endif

#ifndef __T_PS_guar_br_ul__
#define __T_PS_guar_br_ul__
typedef T_PS_VAL_guar_br_ul T_PS_guar_br_ul;
#endif

#ifndef __T_PS_guar_br_dl__
#define __T_PS_guar_br_dl__
typedef T_PS_VAL_guar_br_dl T_PS_guar_br_dl;
#endif

#ifndef __T_PS_sgsn_rel__
#define __T_PS_sgsn_rel__
typedef T_PS_VAL_sgsn_rel T_PS_sgsn_rel;
#endif

#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 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==1341
 */
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==1342
 */
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==1343
 */
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==1344
 */
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==1345
 */
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==1346
 */
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==1347
 */
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==1348
 */
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==1349
 */
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==1350
 */
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==1351
 */
#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==1352
 */
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==1353
 */
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==1354
 */
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==1355
 */
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==1356
 */
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==1357
 */
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==1358
 */
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==1359
 */
#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==1360
 */
#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==1361
 */
#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==1362
 */
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==1363
 */
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==1364
 */
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==1365
 */
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==1366
 */
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==1368
 */
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==1369
 */
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==1370
 */
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==1371
 */
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==1372
 */
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==1373
 */
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==1374
 */
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==1375
 */
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==1376
 */
#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==1377
 */
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==1378
 */
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

#ifndef __T_PS_qos_r97__
#define __T_PS_qos_r97__
/*
 * quality of service R97
 * CCDGEN:WriteStruct_Count==1379
 */
typedef struct
{
  U8                        delay;                    /*<  0:  1> T_PS_delay,  delay class                           */
  U8                        relclass;                 /*<  1:  1> T_PS_relclass,  reliability class                  */
  U8                        peak;                     /*<  2:  1> T_PS_peak,  peak throughput                        */
  U8                        preced;                   /*<  3:  1> T_PS_preced,  precedence class                     */
  U8                        mean;                     /*<  4:  1> T_PS_mean,  mean throughput                        */
  U8                        _align0;                  /*<  5:  1> alignment                                          */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
} T_PS_qos_r97;
#endif

#ifndef __T_PS_sdu_err_ratio__
#define __T_PS_sdu_err_ratio__
/*
 * SDU error ratio
 * CCDGEN:WriteStruct_Count==1380
 */
typedef struct
{
  U8                        ratio_mant;               /*<  0:  1> mantissa                                           */
  U8                        ratio_exp;                /*<  1:  1> exponent                                           */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_PS_sdu_err_ratio;
#endif

/*
 * Residual bit error ratio
 * CCDGEN:WriteStruct_Count==1381
 */
#ifndef __T_PS_ber__
#define __T_PS_ber__
typedef T_PS_sdu_err_ratio T_PS_ber;
#endif
#ifndef __T_PS_qos_r99__
#define __T_PS_qos_r99__
/*
 * quality of service R99
 * CCDGEN:WriteStruct_Count==1382
 */
typedef struct
{
  U8                        tc;                       /*<  0:  1> T_PS_tc,  traffic class; R99 / UMTS                */
  U8                        order;                    /*<  1:  1> T_PS_order,  delivery order; R99 / UMTS            */
  U8                        del_err_sdu;              /*<  2:  1> T_PS_del_err_sdu,  delivery of erroneous SDU; R99 / UMTS */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
  U16                       max_sdu;                  /*<  4:  2> T_PS_max_sdu,  max SDU size; R99 / UMTS            */
  U16                       max_rate_ul;              /*<  6:  2> T_PS_max_rate_ul,  max bit-rate uplink; R99 / UMTS */
  U16                       max_rate_dl;              /*<  8:  2> T_PS_max_rate_dl,  max bit-rate downlink; R99 / UMTS */
  U8                        _align1;                  /*< 10:  1> alignment                                          */
  U8                        _align2;                  /*< 11:  1> alignment                                          */
  T_PS_ber                  ber;                      /*< 12:  4> Residual bit error ratio                           */
  T_PS_sdu_err_ratio        sdu_err_ratio;            /*< 16:  4> SDU error ratio                                    */
  U16                       xfer_delay;               /*< 20:  2> T_PS_xfer_delay,  transfer delay; R99 / UMTS       */
  U8                        handling_pri;             /*< 22:  1> T_PS_handling_pri,  traffic handling priority; R99 / UMTS */
  U8                        _align3;                  /*< 23:  1> alignment                                          */
  U16                       guar_br_ul;               /*< 24:  2> T_PS_guar_br_ul,  guaranteed bit-rate uplink; R99 / UMTS */
  U16                       guar_br_dl;               /*< 26:  2> T_PS_guar_br_dl,  guaranteed bit-rate downlink; R99 / UMTS */
} T_PS_qos_r99;
#endif

#ifndef __T_PS_min_qos__
#define __T_PS_min_qos__
/*
 * quality of service
 * CCDGEN:WriteStruct_Count==1383
 */
typedef union
{
  U32                       min_qos_not_present;      /*<  0:  4> QoS parameters absent                              */
  T_PS_qos_r97              qos_r97;                  /*<  0:  8> quality of service R97                             */
  T_PS_qos_r99              qos_r99;                  /*<  0: 28> quality of service R99                             */
} T_PS_min_qos;
#endif

#ifndef __T_PS_qos__
#define __T_PS_qos__
/*
 * quality of service
 * CCDGEN:WriteStruct_Count==1384
 */
typedef union
{
  U32                       qos_not_present;          /*<  0:  4> QoS parameters absent. From nas_include sap        */
  T_PS_qos_r97              qos_r97;                  /*<  0:  8> quality of service R97                             */
  T_PS_qos_r99              qos_r99;                  /*<  0: 28> quality of service R99                             */
} T_PS_qos;
#endif


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

#ifndef __T_PS_EXPORT__
#define __T_PS_EXPORT__
/*
 * 
 * CCDGEN:WriteStruct_Count==1386
 */
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_PS_ctrl_qos             ctrl_qos;                 /*<2252:  4> (enum=32bit) controller for union                  */
  T_PS_qos                  qos;                      /*<2256: 28> quality of service                                 */
  T_PS_qos_r97              qos_r97;                  /*<2284:  8> quality of service R97                             */
  T_PS_qos_r99              qos_r99;                  /*<2292: 28> quality of service R99                             */
  T_PS_ctrl_min_qos         ctrl_min_qos;             /*<2320:  4> (enum=32bit) controller for union                  */
  T_PS_min_qos              min_qos;                  /*<2324: 28> quality of service                                 */
  U16                       pkt_flow_id;              /*<2352:  2> T_PS_pkt_flow_id,  packet flow identifier          */
  U8                        _align19;                 /*<2354:  1> alignment                                          */
  U8                        _align20;                 /*<2355:  1> alignment                                          */
  T_sdu                     sdu;                      /*<2356: ? > Container for a message                            */
} T_PS_EXPORT;
#endif


#include "CDG_LEAVE.h"


#endif