view cdg-hybrid/cdginc/p_sim.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_sim.h                                                        |
| SOURCE  : "sap\sim.pdf"                                                  |
| LastModified : "2003-01-24"                                              |
| IdAndVersion : "6147.108.99.113"                                         |
| SrcFileTime  : "Fri Jul 4 11:26:04 2008"                                 |
| 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_SIM_H
#define P_SIM_H


#define CDG_ENTER__P_SIM_H

#define CDG_ENTER__FILENAME _P_SIM_H
#define CDG_ENTER__P_SIM_H__FILE_TYPE CDGINC
#define CDG_ENTER__P_SIM_H__LAST_MODIFIED _2003_01_24
#define CDG_ENTER__P_SIM_H__ID_AND_VERSION _6147_108_99_113

#define CDG_ENTER__P_SIM_H__SRC_FILE_TIME _Fri_Jul_4_11_26_04_2008

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_SIM_H

#undef CDG_ENTER__FILENAME


#include "p_sim.val"

#ifndef __T_imsi_field__
#define __T_imsi_field__
/*
 * international mobile subscriber identity
 * CCDGEN:WriteStruct_Count==3008
 */
typedef struct
{
  U8                        c_field;                  /*<  0:  1> length of imsi                                     */
  U8                        field[MAX_IMSI];          /*<  1:  9> imsi                                               */
  U8                        _align0;                  /*< 10:  1> alignment                                          */
  U8                        _align1;                  /*< 11:  1> alignment                                          */
} T_imsi_field;
#endif

#ifndef __T_loc_info__
#define __T_loc_info__
/*
 * location information
 * CCDGEN:WriteStruct_Count==3009
 */
typedef struct
{
  U8                        c_loc;                    /*<  0:  1> Length of Location Information                     */
  U8                        loc[MAX_LOCIGSM];         /*<  1: 11> Location Information                               */
} T_loc_info;
#endif

#ifndef __T_acc_ctrl__
#define __T_acc_ctrl__
/*
 * access control classes
 * CCDGEN:WriteStruct_Count==3010
 */
typedef struct
{
  U8                        c_acc;                    /*<  0:  1> length of access control classes                   */
  U8                        acc[2];                   /*<  1:  2> access control classes                             */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
} T_acc_ctrl;
#endif

#ifndef __T_bcch_inf__
#define __T_bcch_inf__
/*
 * BCCH information
 * CCDGEN:WriteStruct_Count==3011
 */
typedef struct
{
  U8                        c_bcch;                   /*<  0:  1> Length of bcch information                         */
  U8                        bcch[16];                 /*<  1: 16> bcch information                                   */
  U8                        _align0;                  /*< 17:  1> alignment                                          */
  U8                        _align1;                  /*< 18:  1> alignment                                          */
  U8                        _align2;                  /*< 19:  1> alignment                                          */
} T_bcch_inf;
#endif

#ifndef __T_kc_n__
#define __T_kc_n__
/*
 * Kc and cipher key sequence number
 * CCDGEN:WriteStruct_Count==3012
 */
typedef struct
{
  U8                        c_kc;                     /*<  0:  1> Length of data field                               */
  U8                        kc[MAX_KC + 1];           /*<  1:  9> authentication parameter Kc                        */
  U8                        _align0;                  /*< 10:  1> alignment                                          */
  U8                        _align1;                  /*< 11:  1> alignment                                          */
} T_kc_n;
#endif

#ifndef __T_forb_plmn__
#define __T_forb_plmn__
/*
 * Forbidden PLMN list
 * CCDGEN:WriteStruct_Count==3013
 */
typedef struct
{
  U8                        c_forb;                   /*<  0:  1> length of forbidden PLMN list                      */
  U8                        forb[12];                 /*<  1: 12> Forbidden PLMN list                                */
  U8                        _align0;                  /*< 13:  1> alignment                                          */
  U8                        _align1;                  /*< 14:  1> alignment                                          */
  U8                        _align2;                  /*< 15:  1> alignment                                          */
} T_forb_plmn;
#endif

#ifndef __T_stk_cmd__
#define __T_stk_cmd__
/*
 * SIM toolkit command
 * CCDGEN:WriteStruct_Count==3014
 */
typedef struct
{
  U16                       l_cmd;                    /*<  0:  2> command length                                     */
  U16                       o_cmd;                    /*<  2:  2> command offset                                     */
  U8                        cmd[MAX_STK_CMD];         /*<  4:256> command data                                       */
} T_stk_cmd;
#endif

#ifndef __T_gprs_loc_info__
#define __T_gprs_loc_info__
/*
 * location information
 * CCDGEN:WriteStruct_Count==3015
 */
typedef struct
{
  U8                        c_loc;                    /*<  0:  1> Length of Location Information                     */
  U8                        loc[MAX_LOCIGPRS];        /*<  1: 14> Location Information                               */
  U8                        _align0;                  /*< 15:  1> alignment                                          */
} T_gprs_loc_info;
#endif

#ifndef __T_cbmid_rec__
#define __T_cbmid_rec__
/*
 * This structure contains the CBMID records
 * CCDGEN:WriteStruct_Count==3016
 */
typedef struct
{
  U8                        c_rec;                    /*<  0:  1> counter                                            */
  U8                        rec[MAX_CBMID_REC];       /*<  1:255> Records in the EF(CBMID)                           */
} T_cbmid_rec;
#endif

#ifndef __T_path_info__
#define __T_path_info__
/*
 * Path information
 * CCDGEN:WriteStruct_Count==3017
 */
typedef struct
{
  U16                       df_level1;                /*<  0:  2> First level directory                              */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        v_df_level2;              /*<  3:  1> valid-flag                                         */
  U16                       df_level2;                /*<  4:  2> Second level directory                             */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
} T_path_info;
#endif

#ifndef __T_file_info__
#define __T_file_info__
/*
 * File Information for FILE UPDATE
 * CCDGEN:WriteStruct_Count==3018
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        v_path_info;              /*<  3:  1> valid-flag                                         */
  T_path_info               path_info;                /*<  4:  8> Path information                                   */
} T_file_info;
#endif


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

#ifndef __T_SIM_READ_REQ__
#define __T_SIM_READ_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3019
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       offset;                   /*<  2:  2> offset of data field                               */
  U16                       datafield;                /*<  4:  2> data field identification                          */
  U8                        req_id;                   /*<  6:  1> used to uniquely identify requests to SIM          */
  U8                        length;                   /*<  7:  1> length of data field                               */
  U8                        max_length;               /*<  8:  1> Maximum of length                                  */
  U8                        _align0;                  /*<  9:  1> alignment                                          */
  U8                        _align1;                  /*< 10:  1> alignment                                          */
  U8                        v_path_info;              /*< 11:  1> valid-flag                                         */
  T_path_info               path_info;                /*< 12:  8> Path information                                   */
} T_SIM_READ_REQ;
#endif

#ifndef __T_SIM_READ_CNF__
#define __T_SIM_READ_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3020
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        length;                   /*<  3:  1> length of data field                               */
  U8                        trans_data[MAX_SIM_CMD];  /*<  4:256> Transparent data content                           */
} T_SIM_READ_CNF;
#endif

#ifndef __T_SIM_UPDATE_REQ__
#define __T_SIM_UPDATE_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3021
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       offset;                   /*<  2:  2> offset of data field                               */
  U16                       datafield;                /*<  4:  2> data field identification                          */
  U8                        req_id;                   /*<  6:  1> used to uniquely identify requests to SIM          */
  U8                        v_path_info;              /*<  7:  1> valid-flag                                         */
  T_path_info               path_info;                /*<  8:  8> Path information                                   */
  U8                        length;                   /*< 16:  1> length of data field                               */
  U8                        trans_data[MAX_SIM_CMD];  /*< 17:256> Transparent data content                           */
  U8                        _align0;                  /*<273:  1> alignment                                          */
  U8                        _align1;                  /*<274:  1> alignment                                          */
  U8                        _align2;                  /*<275:  1> alignment                                          */
} T_SIM_UPDATE_REQ;
#endif

#ifndef __T_SIM_UPDATE_CNF__
#define __T_SIM_UPDATE_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3022
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
} T_SIM_UPDATE_CNF;
#endif

#ifndef __T_SIM_READ_RECORD_REQ__
#define __T_SIM_READ_RECORD_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3023
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        record;                   /*<  2:  1> record number                                      */
  U8                        length;                   /*<  3:  1> length of data field                               */
  U16                       datafield;                /*<  4:  2> data field identification                          */
  U8                        req_id;                   /*<  6:  1> used to uniquely identify requests to SIM          */
  U8                        v_path_info;              /*<  7:  1> valid-flag                                         */
  T_path_info               path_info;                /*<  8:  8> Path information                                   */
} T_SIM_READ_RECORD_REQ;
#endif

#ifndef __T_SIM_READ_RECORD_CNF__
#define __T_SIM_READ_RECORD_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3024
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        max_record;               /*<  3:  1> Maximum record number                              */
  U8                        length;                   /*<  4:  1> length of data field                               */
  U8                        linear_data[MAX_SIM_CMD]; /*<  5:256> Linear fixed data content                          */
  U8                        _align0;                  /*<261:  1> alignment                                          */
  U8                        _align1;                  /*<262:  1> alignment                                          */
  U8                        _align2;                  /*<263:  1> alignment                                          */
} T_SIM_READ_RECORD_CNF;
#endif

#ifndef __T_SIM_UPDATE_RECORD_REQ__
#define __T_SIM_UPDATE_RECORD_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3025
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        record;                   /*<  2:  1> record number                                      */
  U8                        req_id;                   /*<  3:  1> used to uniquely identify requests to SIM          */
  U16                       datafield;                /*<  4:  2> data field identification                          */
  U8                        length;                   /*<  6:  1> length of data field                               */
  U8                        v_path_info;              /*<  7:  1> valid-flag                                         */
  T_path_info               path_info;                /*<  8:  8> Path information                                   */
  U8                        linear_data[MAX_SIM_CMD]; /*< 16:256> Linear fixed data content                          */
} T_SIM_UPDATE_RECORD_REQ;
#endif

#ifndef __T_SIM_UPDATE_RECORD_CNF__
#define __T_SIM_UPDATE_RECORD_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3026
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
} T_SIM_UPDATE_RECORD_CNF;
#endif

#ifndef __T_SIM_INCREMENT_REQ__
#define __T_SIM_INCREMENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3027
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       datafield;                /*<  2:  2> data field identification                          */
  U8                        req_id;                   /*<  4:  1> used to uniquely identify requests to SIM          */
  U8                        length;                   /*<  5:  1> length of data field                               */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        v_path_info;              /*<  7:  1> valid-flag                                         */
  T_path_info               path_info;                /*<  8:  8> Path information                                   */
  U8                        linear_data[MAX_SIM_CMD]; /*< 16:256> Linear fixed data content                          */
} T_SIM_INCREMENT_REQ;
#endif

#ifndef __T_SIM_INCREMENT_CNF__
#define __T_SIM_INCREMENT_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3028
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        length;                   /*<  3:  1> length of data field                               */
  U8                        linear_data[MAX_SIM_CMD]; /*<  4:256> Linear fixed data content                          */
} T_SIM_INCREMENT_CNF;
#endif

#ifndef __T_SIM_VERIFY_PIN_REQ__
#define __T_SIM_VERIFY_PIN_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3029
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        pin[MAX_PIN_LEN];         /*<  2:  8> personal identification number                     */
  U8                        pin_id;                   /*< 10:  1> PIN identification                                 */
  U8                        _align0;                  /*< 11:  1> alignment                                          */
} T_SIM_VERIFY_PIN_REQ;
#endif

#ifndef __T_SIM_VERIFY_PIN_CNF__
#define __T_SIM_VERIFY_PIN_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3030
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_id;                   /*<  2:  1> PIN identification                                 */
  U8                        pin_cnt;                  /*<  3:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  4:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  5:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  6:  1> PUK 2 counter                                      */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
} T_SIM_VERIFY_PIN_CNF;
#endif

#ifndef __T_SIM_CHANGE_PIN_REQ__
#define __T_SIM_CHANGE_PIN_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3031
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        old_pin[MAX_PIN_LEN];     /*<  2:  8> personal identification number                     */
  U8                        new_pin[MAX_PIN_LEN];     /*< 10:  8> personal identification number                     */
  U8                        pin_id;                   /*< 18:  1> PIN identification                                 */
  U8                        _align0;                  /*< 19:  1> alignment                                          */
} T_SIM_CHANGE_PIN_REQ;
#endif

#ifndef __T_SIM_CHANGE_PIN_CNF__
#define __T_SIM_CHANGE_PIN_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3032
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_id;                   /*<  2:  1> PIN identification                                 */
  U8                        pin_cnt;                  /*<  3:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  4:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  5:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  6:  1> PUK 2 counter                                      */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
} T_SIM_CHANGE_PIN_CNF;
#endif

#ifndef __T_SIM_DISABLE_PIN_REQ__
#define __T_SIM_DISABLE_PIN_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3033
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        pin[MAX_PIN_LEN];         /*<  2:  8> personal identification number                     */
  U8                        _align0;                  /*< 10:  1> alignment                                          */
  U8                        _align1;                  /*< 11:  1> alignment                                          */
} T_SIM_DISABLE_PIN_REQ;
#endif

#ifndef __T_SIM_DISABLE_PIN_CNF__
#define __T_SIM_DISABLE_PIN_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3034
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_cnt;                  /*<  2:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  3:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  4:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  5:  1> PUK 2 counter                                      */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
} T_SIM_DISABLE_PIN_CNF;
#endif

#ifndef __T_SIM_ENABLE_PIN_REQ__
#define __T_SIM_ENABLE_PIN_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3035
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        pin[MAX_PIN_LEN];         /*<  2:  8> personal identification number                     */
  U8                        _align0;                  /*< 10:  1> alignment                                          */
  U8                        _align1;                  /*< 11:  1> alignment                                          */
} T_SIM_ENABLE_PIN_REQ;
#endif

#ifndef __T_SIM_ENABLE_PIN_CNF__
#define __T_SIM_ENABLE_PIN_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3036
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_cnt;                  /*<  2:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  3:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  4:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  5:  1> PUK 2 counter                                      */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
} T_SIM_ENABLE_PIN_CNF;
#endif

#ifndef __T_SIM_UNBLOCK_REQ__
#define __T_SIM_UNBLOCK_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3037
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        unblock_key[MAX_PIN_LEN]; /*<  2:  8> unblocking key                                     */
  U8                        pin[MAX_PIN_LEN];         /*< 10:  8> personal identification number                     */
  U8                        pin_id;                   /*< 18:  1> PIN identification                                 */
  U8                        _align0;                  /*< 19:  1> alignment                                          */
} T_SIM_UNBLOCK_REQ;
#endif

#ifndef __T_SIM_UNBLOCK_CNF__
#define __T_SIM_UNBLOCK_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3038
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_id;                   /*<  2:  1> PIN identification                                 */
  U8                        pin_cnt;                  /*<  3:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  4:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  5:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  6:  1> PUK 2 counter                                      */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
} T_SIM_UNBLOCK_CNF;
#endif

#ifndef __T_SIM_AUTHENTICATION_REQ__
#define __T_SIM_AUTHENTICATION_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3039
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        cksn;                     /*<  3:  1> ciphering key sequence number                      */
  U8                        rand[MAX_RAND];           /*<  4: 16> authentication parameter rand                      */
} T_SIM_AUTHENTICATION_REQ;
#endif

#ifndef __T_SIM_AUTHENTICATION_CNF__
#define __T_SIM_AUTHENTICATION_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3040
 */
typedef struct
{
  U8                        req_id;                   /*<  0:  1> used to uniquely identify requests to SIM          */
  U8                        sres[MAX_SRES];           /*<  1:  4> authentication parameter Sres                      */
  U8                        kc[MAX_KC];               /*<  5:  8> authentication parameter Kc                        */
  U8                        _align0;                  /*< 13:  1> alignment                                          */
  U8                        _align1;                  /*< 14:  1> alignment                                          */
  U8                        _align2;                  /*< 15:  1> alignment                                          */
} T_SIM_AUTHENTICATION_CNF;
#endif

#ifndef __T_SIM_MMI_INSERT_IND__
#define __T_SIM_MMI_INSERT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3041
 */
typedef struct
{
  U8                        func;                     /*<  0:  1> SIM card functionality                             */
  U8                        sim_serv[MAX_SRV_TBL];    /*<  1: 16> SIM service table                                  */
  U8                        _align0;                  /*< 17:  1> alignment                                          */
  U8                        _align1;                  /*< 18:  1> alignment                                          */
  U8                        _align2;                  /*< 19:  1> alignment                                          */
  T_imsi_field              imsi_field;               /*< 20: 12> international mobile subscriber identity           */
  U8                        phase;                    /*< 32:  1> phase  of SIM card                                 */
  U8                        access_acm;               /*< 33:  1> Access ACM                                         */
  U8                        access_acmmax;            /*< 34:  1> Access ACMMAX                                      */
  U8                        access_puct;              /*< 35:  1> Access PUCT                                        */
  T_cbmid_rec               cbmid_rec;                /*< 36:256> This structure contains the CBMID records          */
  U8                        c_ad;                     /*<292:  1> counter                                            */
  U8                        ad[MAX_AD];               /*<293:  4> Contents of Administrative Data file               */
  U8                        _align3;                  /*<297:  1> alignment                                          */
  U8                        _align4;                  /*<298:  1> alignment                                          */
  U8                        _align5;                  /*<299:  1> alignment                                          */
} T_SIM_MMI_INSERT_IND;
#endif

#ifndef __T_SIM_MM_INSERT_IND__
#define __T_SIM_MM_INSERT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3042
 */
typedef struct
{
  U8                        c_ad;                     /*<  0:  1> counter                                            */
  U8                        ad[MAX_AD];               /*<  1:  4> Contents of Administrative Data file               */
  U8                        _align0;                  /*<  5:  1> alignment                                          */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
  T_imsi_field              imsi_field;               /*<  8: 12> international mobile subscriber identity           */
  T_loc_info                loc_info;                 /*< 20: 12> location information                               */
  T_acc_ctrl                acc_ctrl;                 /*< 32:  4> access control classes                             */
  T_bcch_inf                bcch_inf;                 /*< 36: 20> BCCH information                                   */
  T_kc_n                    kc_n;                     /*< 56: 12> Kc and cipher key sequence number                  */
  T_forb_plmn               forb_plmn;                /*< 68: 16> Forbidden PLMN list                                */
  U8                        phase;                    /*< 84:  1> phase  of SIM card                                 */
  U8                        hplmn;                    /*< 85:  1> HPLMN search period                                */
  U8                        v_act_hplmn;              /*< 86:  1> valid-flag                                         */
  U8                        act_hplmn[MAX_SIM_PLMN_SIZE]; /*< 87:  3> Acting HPLMN                                       */
  U16                       pref_plmn_list_sz;        /*< 90:  2> List size of the preferred PLMN. Size =0 means that preferred PLMN does not present. */
// ELEM-FF: REL99 
//   U16                       u_ctl_plmn_sel_actech_list_sz; /*<  0:  0> Size of the PLMN list 'User controlled PLMN Selector with Access Technology'. Size =0 means that plmn list is not present. */
// ELEM-FF: REL99 
//   U16                       o_ctl_plmn_sel_actech_list_sz; /*<  0:  0> Size of the PLMN list 'Operator controlled PLMN Selector with Access Technology'. Size =0 means that plmn list is not present. */
} T_SIM_MM_INSERT_IND;
#endif

#ifndef __T_SIM_REMOVE_IND__
#define __T_SIM_REMOVE_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3043
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_SIM_REMOVE_IND;
#endif

#ifndef __T_SIM_MM_UPDATE_REQ__
#define __T_SIM_MM_UPDATE_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3044
 */
typedef struct
{
  T_loc_info                loc_info;                 /*<  0: 12> location information                               */
  T_bcch_inf                bcch_inf;                 /*< 12: 20> BCCH information                                   */
  T_forb_plmn               forb_plmn;                /*< 32: 16> Forbidden PLMN list                                */
  U8                        cksn;                     /*< 48:  1> ciphering key sequence number                      */
  U8                        kc[MAX_KC];               /*< 49:  8> authentication parameter Kc                        */
  U8                        _align0;                  /*< 57:  1> alignment                                          */
  U16                       cell_identity;            /*< 58:  2> cell identity                                      */
  U8                        ef_indicator;             /*< 60:  1> EF Indicator                                       */
  U8                        _align1;                  /*< 61:  1> alignment                                          */
  U8                        _align2;                  /*< 62:  1> alignment                                          */
  U8                        _align3;                  /*< 63:  1> alignment                                          */
} T_SIM_MM_UPDATE_REQ;
#endif

#ifndef __T_SIM_SYNC_REQ__
#define __T_SIM_SYNC_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3045
 */
typedef struct
{
  U8                        synccs;                   /*<  0:  1> Synchronisation Cause                              */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
} T_SIM_SYNC_REQ;
#endif

#ifndef __T_SIM_SYNC_CNF__
#define __T_SIM_SYNC_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3046
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_SIM_SYNC_CNF;
#endif

#ifndef __T_SIM_ACTIVATE_REQ__
#define __T_SIM_ACTIVATE_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3047
 */
typedef struct
{
  U8                        proc;                     /*<  0:  1> procedure type                                     */
  U8                        mmi_pro_file;             /*<  1:  1> MMI profile                                        */
  U8                        stk_pro_file[MAX_STK_PRF]; /*<  2: 20> SIM toolkit profile                                */
  U8                        cust_mode;                /*< 22:  1> Customisation Mode                                 */
  U8                        sim_num;                  /*< 23:  1> SIM Interface Identifier                           */
  U8                        v_trmst_file;             /*< 24:  1> valid-flag                                         */
  U8                        trmst_file[MAX_TRMST];    /*< 25:  8> Terminal Support Table EF                          */
  U8                        _align0;                  /*< 33:  1> alignment                                          */
  U8                        _align1;                  /*< 34:  1> alignment                                          */
  U8                        _align2;                  /*< 35:  1> alignment                                          */
} T_SIM_ACTIVATE_REQ;
#endif

#ifndef __T_SIM_ACTIVATE_CNF__
#define __T_SIM_ACTIVATE_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3048
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_cnt;                  /*<  2:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  3:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  4:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  5:  1> PUK 2 counter                                      */
  U8                        ec_code[MAX_ECC];         /*<  6: 15> Emergency call codes                               */
  U8                        pref_lang[MAX_LNG_PREF];  /*< 21:  5> preferred languages                                */
  U8                        sim_num;                  /*< 26:  1> SIM Interface Identifier                           */
  U8                        c_atr;                    /*< 27:  1> counter                                            */
  U8                        atr[MAX_SIM_ATR];         /*< 28: 33> Answer to Reset                                    */
  U8                        _align0;                  /*< 61:  1> alignment                                          */
  U8                        _align1;                  /*< 62:  1> alignment                                          */
  U8                        _align2;                  /*< 63:  1> alignment                                          */
} T_SIM_ACTIVATE_CNF;
#endif

#ifndef __T_SIM_SMS_INSERT_IND__
#define __T_SIM_SMS_INSERT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3049
 */
typedef struct
{
  U8                        phase;                    /*<  0:  1> phase  of SIM card                                 */
  U8                        tp_mr;                    /*<  1:  1> message reference                                  */
  U8                        mem_cap_avail;            /*<  2:  1> memory capacity available flag                     */
  U8                        download_sms;             /*<  3:  1> Download SMS Flag                                  */
  U8                        smsr_mem_cap;             /*<  4:  1> Indicator for short message status report storage  */
  U8                        _align0;                  /*<  5:  1> alignment                                          */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
} T_SIM_SMS_INSERT_IND;
#endif

#ifndef __T_SIM_TOOLKIT_REQ__
#define __T_SIM_TOOLKIT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3050
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
  T_stk_cmd                 stk_cmd;                  /*<  4:260> SIM toolkit command                                */
} T_SIM_TOOLKIT_REQ;
#endif

#ifndef __T_SIM_TOOLKIT_RES__
#define __T_SIM_TOOLKIT_RES__
/*
 * 
 * CCDGEN:WriteStruct_Count==3051
 */
typedef struct
{
  T_stk_cmd                 stk_cmd;                  /*<  0:260> SIM toolkit command                                */
} T_SIM_TOOLKIT_RES;
#endif

#ifndef __T_SIM_TOOLKIT_IND__
#define __T_SIM_TOOLKIT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3052
 */
typedef struct
{
  T_stk_cmd                 stk_cmd;                  /*<  0:260> SIM toolkit command                                */
} T_SIM_TOOLKIT_IND;
#endif

#ifndef __T_SIM_TOOLKIT_CNF__
#define __T_SIM_TOOLKIT_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3053
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
  T_stk_cmd                 stk_cmd;                  /*<  4:260> SIM toolkit command                                */
} T_SIM_TOOLKIT_CNF;
#endif

#ifndef __T_SIM_ACTIVATE_IND__
#define __T_SIM_ACTIVATE_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3054
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        pin_cnt;                  /*<  2:  1> PIN counter                                        */
  U8                        puk_cnt;                  /*<  3:  1> PUK counter                                        */
  U8                        pin2_cnt;                 /*<  4:  1> PIN 2 counter                                      */
  U8                        puk2_cnt;                 /*<  5:  1> PUK 2 counter                                      */
  U8                        ec_code[MAX_ECC];         /*<  6: 15> Emergency call codes                               */
  U8                        pref_lang[MAX_LNG_PREF];  /*< 21:  5> preferred languages                                */
  U8                        c_atr;                    /*< 26:  1> counter                                            */
  U8                        atr[MAX_SIM_ATR];         /*< 27: 33> Answer to Reset                                    */
} T_SIM_ACTIVATE_IND;
#endif

#ifndef __T_SIM_MM_INFO_IND__
#define __T_SIM_MM_INFO_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3055
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_SIM_MM_INFO_IND;
#endif

#ifndef __T_SIM_ACCESS_REQ__
#define __T_SIM_ACCESS_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3056
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       datafield;                /*<  2:  2> data field identification                          */
  U8                        req_id;                   /*<  4:  1> used to uniquely identify requests to SIM          */
  U8                        sim_command;              /*<  5:  1> SIM Command                                        */
  U8                        p1;                       /*<  6:  1> P1 Parameter                                       */
  U8                        p2;                       /*<  7:  1> P2 Parameter                                       */
  U8                        p3;                       /*<  8:  1> P3 Parameter                                       */
  U8                        _align0;                  /*<  9:  1> alignment                                          */
  U16                       c_trans_data;             /*< 10:  2> counter                                            */
  U8                        trans_data[MAX_SIM_TRANSP]; /*< 12:262> Transparent data content                           */
  U8                        _align1;                  /*<274:  1> alignment                                          */
  U8                        _align2;                  /*<275:  1> alignment                                          */
} T_SIM_ACCESS_REQ;
#endif

#ifndef __T_SIM_ACCESS_CNF__
#define __T_SIM_ACCESS_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3057
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> used to uniquely identify requests to SIM          */
  U8                        sw1;                      /*<  3:  1> SW1 Parameter                                      */
  U8                        sw2;                      /*<  4:  1> SW2 Parameter                                      */
  U8                        _align0;                  /*<  5:  1> alignment                                          */
  U16                       c_trans_data;             /*<  6:  2> counter                                            */
  U8                        trans_data[MAX_SIM_CMD];  /*<  8:256> Transparent data content                           */
} T_SIM_ACCESS_CNF;
#endif

#ifndef __T_SIM_FILE_UPDATE_IND__
#define __T_SIM_FILE_UPDATE_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3058
 */
typedef struct
{
  U16                       val_nr;                   /*<  0:  2> valid entries of a file ID list                    */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  T_file_info               file_info[MAX_FILE_ID];   /*<  4:768> File Information for FILE UPDATE                   */
} T_SIM_FILE_UPDATE_IND;
#endif

#ifndef __T_SIM_FILE_UPDATE_RES__
#define __T_SIM_FILE_UPDATE_RES__
/*
 * 
 * CCDGEN:WriteStruct_Count==3059
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       fu_rsc;                   /*<  2:  2> result code for SIM_FILE_UPDATE_IND                */
} T_SIM_FILE_UPDATE_RES;
#endif

#ifndef __T_SIM_GMM_INSERT_IND__
#define __T_SIM_GMM_INSERT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3060
 */
typedef struct
{
  U8                        op_mode;                  /*<  0:  1> operation mode                                     */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
  T_imsi_field              imsi_field;               /*<  4: 12> international mobile subscriber identity           */
  T_loc_info                loc_info;                 /*< 16: 12> location information                               */
  T_gprs_loc_info           gprs_loc_info;            /*< 28: 16> location information                               */
  T_acc_ctrl                acc_ctrl;                 /*< 44:  4> access control classes                             */
  T_kc_n                    kc_n;                     /*< 48: 12> Kc and cipher key sequence number                  */
  U8                        phase;                    /*< 60:  1> phase  of SIM card                                 */
  U8                        _align3;                  /*< 61:  1> alignment                                          */
  U8                        _align4;                  /*< 62:  1> alignment                                          */
  U8                        _align5;                  /*< 63:  1> alignment                                          */
} T_SIM_GMM_INSERT_IND;
#endif

#ifndef __T_SIM_GMM_UPDATE_REQ__
#define __T_SIM_GMM_UPDATE_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3061
 */
typedef struct
{
  T_gprs_loc_info           gprs_loc_info;            /*<  0: 16> location information                               */
  U8                        cksn;                     /*< 16:  1> ciphering key sequence number                      */
  U8                        kc[MAX_KC];               /*< 17:  8> authentication parameter Kc                        */
  U8                        att_status;               /*< 25:  1> GPRS IMSI attach status                            */
  U8                        _align0;                  /*< 26:  1> alignment                                          */
  U8                        _align1;                  /*< 27:  1> alignment                                          */
} T_SIM_GMM_UPDATE_REQ;
#endif

#ifndef __T_SIM_DTI_REQ__
#define __T_SIM_DTI_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3062
 */
typedef struct
{
  U32                       link_id;                  /*<  0:  4> DTI link identifier                                */
  U8                        dti_conn;                 /*<  4:  1> connection qualifier                               */
  U8                        dti_direction;            /*<  5:  1> DTI direction                                      */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
  U32                       entity_name;              /*<  8:  4> DTI entity name                                    */
} T_SIM_DTI_REQ;
#endif

#ifndef __T_SIM_DTI_CNF__
#define __T_SIM_DTI_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3063
 */
typedef struct
{
  U32                       link_id;                  /*<  0:  4> DTI link identifier                                */
  U8                        dti_conn;                 /*<  4:  1> connection qualifier                               */
  U8                        _align0;                  /*<  5:  1> alignment                                          */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
} T_SIM_DTI_CNF;
#endif

#ifndef __T_SIM_BIP_REQ__
#define __T_SIM_BIP_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3064
 */
typedef struct
{
  U8                        bip_ch_id;                /*<  0:  1> BIP channel identifier                             */
  U8                        bip_conn;                 /*<  1:  1> bip connection qualifier                           */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  U32                       release_time;             /*<  4:  4> link release timeout                               */
  U8                        add_info_result;          /*<  8:  1> additional information on result code              */
  U8                        general_result;           /*<  9:  1> general result code                                */
  U8                        _align2;                  /*< 10:  1> alignment                                          */
  U8                        _align3;                  /*< 11:  1> alignment                                          */
} T_SIM_BIP_REQ;
#endif

#ifndef __T_SIM_BIP_CNF__
#define __T_SIM_BIP_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3065
 */
typedef struct
{
  U8                        bip_ch_id;                /*<  0:  1> BIP channel identifier                             */
  U8                        bip_conn;                 /*<  1:  1> bip connection qualifier                           */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
} T_SIM_BIP_CNF;
#endif

#ifndef __T_SIM_BIP_CONFIG_REQ__
#define __T_SIM_BIP_CONFIG_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3066
 */
typedef struct
{
  U32                       local_ip;                 /*<  0:  4> local IP address                                   */
  U32                       destination_ip;           /*<  4:  4> destination IP address                             */
  U16                       destination_port;         /*<  8:  2> destination port number                            */
  U8                        con_type;                 /*< 10:  1> connection type                                    */
  U8                        _align0;                  /*< 11:  1> alignment                                          */
} T_SIM_BIP_CONFIG_REQ;
#endif

#ifndef __T_SIM_BIP_CONFIG_CNF__
#define __T_SIM_BIP_CONFIG_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3067
 */
typedef struct
{
  U8                        dummy;                    /*<  0:  1> no parameters                                      */
} T_SIM_BIP_CONFIG_CNF;
#endif

#ifndef __T_SIM_DTI_BIP_IND__
#define __T_SIM_DTI_BIP_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==3068
 */
typedef struct
{
  U32                       link_id;                  /*<  0:  4> DTI link identifier                                */
  U8                        dti_conn;                 /*<  4:  1> connection qualifier                               */
  U8                        bip_ch_id;                /*<  5:  1> BIP channel identifier                             */
  U8                        bip_conn;                 /*<  6:  1> bip connection qualifier                           */
  U8                        _align0;                  /*<  7:  1> alignment                                          */
} T_SIM_DTI_BIP_IND;
#endif

#ifndef __T_SIM_EVENTLIST_REQ__
#define __T_SIM_EVENTLIST_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3069
 */
typedef struct
{
  U8                        event_data_avail;         /*<  0:  1> data available event                               */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
} T_SIM_EVENTLIST_REQ;
#endif

#ifndef __T_SIM_EVENTLIST_CNF__
#define __T_SIM_EVENTLIST_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3070
 */
typedef struct
{
  U8                        event_data_avail;         /*<  0:  1> data available event                               */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
} T_SIM_EVENTLIST_CNF;
#endif

#ifndef __T_SIM_TEST_REQ__
#define __T_SIM_TEST_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==3071
 */
typedef struct
{
  U8                        cla;                      /*<  0:  1> class of instruction                               */
  U8                        ins_code;                 /*<  1:  1> instruction code                                   */
  U8                        p1;                       /*<  2:  1> P1 Parameter                                       */
  U8                        p2;                       /*<  3:  1> P2 Parameter                                       */
  U8                        le;                       /*<  4:  1> length of response                                 */
  U8                        _align0;                  /*<  5:  1> alignment                                          */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
  T_stk_cmd                 stk_cmd;                  /*<  8:260> SIM toolkit command                                */
} T_SIM_TEST_REQ;
#endif

#ifndef __T_SIM_TEST_CNF__
#define __T_SIM_TEST_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==3072
 */
typedef struct
{
  U8                        sw1;                      /*<  0:  1> SW1 Parameter                                      */
  U8                        sw2;                      /*<  1:  1> SW2 Parameter                                      */
  U8                        _align0;                  /*<  2:  1> alignment                                          */
  U8                        _align1;                  /*<  3:  1> alignment                                          */
  T_stk_cmd                 stk_cmd;                  /*<  4:260> SIM toolkit command                                */
} T_SIM_TEST_CNF;
#endif

#ifndef __T_SIM_REFRESH_USER_RES__
#define __T_SIM_REFRESH_USER_RES__
/*
 * 
 * CCDGEN:WriteStruct_Count==3073
 */
typedef struct
{
  U8                        user_accepts;             /*<  0:  1> User Response                                      */
  U8                        _align0;                  /*<  1:  1> alignment                                          */
  U8                        _align1;                  /*<  2:  1> alignment                                          */
  U8                        _align2;                  /*<  3:  1> alignment                                          */
  T_stk_cmd                 stk_cmd;                  /*<  4:260> SIM toolkit command                                */
} T_SIM_REFRESH_USER_RES;
#endif


#include "CDG_LEAVE.h"


#endif