view cdg211/cdginc/p_sim.h @ 662:8cd8fd15a095

SIM speed enhancement re-enabled and made configurable TI's original code supported SIM speed enhancement, but Openmoko had it disabled, and OM's disabling of speed enhancement somehow caused certain SIM cards to start working which didn't work before (OM's bug #666). Because our FC community is much smaller in year 2020 than OM's community was in their day, we are not able to find one of those #666-affected SIMs, thus the real issue they had encountered remains elusive. Thus our solution is to re-enable SIM speed enhancement and simply wait for if and when someone runs into a #666-affected SIM once again. We provide a SIM_allow_speed_enhancement global variable that allows SIM speed enhancement to be enabled or disabled per session, and an /etc/SIM_spenh file in FFS that allows it to enabled or disabled on a non-volatile basis. SIM speed enhancement is now enabled by default.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 24 May 2020 05:02:28 +0000
parents 56abf6cf8a0b
children
line wrap: on
line source

/*
+--------------------------------------------------------------------------+
| PROJECT : PROTOCOL STACK                                                 |
| FILE    : p_sim.h                                                        |
| SOURCE  : "__out__\g23m_dfile\prim\sim.pdf"                              |
| LastModified : "2003-01-24"                                              |
| IdAndVersion : "6147.108.99.113"                                         |
| SrcFileTime  : "Thu Feb 2 12:06:02 2006"                                 |
| Generated by CCDGEN_2.5.5 on Fri Jun 08 13:59:16 2007                    |
|           !!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 _Thu_Feb_2_12_06_02_2006

#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==2069
 */
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==2070
 */
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==2071
 */
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==2072
 */
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==2073
 */
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_pref_plmn__
#define __T_pref_plmn__
/*
 * Preferred PLMN list
 * CCDGEN:WriteStruct_Count==2074
 */
typedef struct
{
  U8                        c_pref;                   /*<  0:  1> Length of preferred PLMN list                      */
  U8                        pref[MAX_PREF_PLMN];      /*<  1:240> Preferred PLMN list                                */
  U8                        _align0;                  /*<241:  1> alignment                                          */
  U8                        _align1;                  /*<242:  1> alignment                                          */
  U8                        _align2;                  /*<243:  1> alignment                                          */
} T_pref_plmn;
#endif

#ifndef __T_forb_plmn__
#define __T_forb_plmn__
/*
 * Forbidden PLMN list
 * CCDGEN:WriteStruct_Count==2075
 */
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==2076
 */
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==2077
 */
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==2078
 */
typedef struct
{
  U8                        c_rec;                    /*<  0:  1> counter                                            */
  U8                        rec[MAX_CBMID_REC];       /*<  1:255> Records in the EF(CBMID)                           */
} T_cbmid_rec;
#endif


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

#ifndef __T_SIM_READ_REQ__
#define __T_SIM_READ_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2079
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       offset;                   /*<  2:  2> offset of data field                               */
  U16                       datafield;                /*<  4:  2> data field identification                          */
  U8                        length;                   /*<  6:  1> length of data field                               */
  U8                        max_length;               /*<  7:  1> Maximum of length                                  */
} T_SIM_READ_REQ;
#endif

#ifndef __T_SIM_READ_CNF__
#define __T_SIM_READ_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2080
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U16                       cause;                    /*<  2:  2> error code                                         */
  U8                        length;                   /*<  4:  1> length of data field                               */
  U8                        trans_data[MAX_SIM_CMD];  /*<  5:256> Transparent data content                           */
  U8                        _align0;                  /*<261:  1> alignment                                          */
  U8                        _align1;                  /*<262:  1> alignment                                          */
  U8                        _align2;                  /*<263:  1> alignment                                          */
} T_SIM_READ_CNF;
#endif

#ifndef __T_SIM_UPDATE_REQ__
#define __T_SIM_UPDATE_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2081
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       offset;                   /*<  2:  2> offset of data field                               */
  U16                       datafield;                /*<  4:  2> data field identification                          */
  U8                        length;                   /*<  6:  1> length of data field                               */
  U8                        trans_data[MAX_SIM_CMD];  /*<  7:256> Transparent data content                           */
  U8                        _align0;                  /*<263:  1> alignment                                          */
} T_SIM_UPDATE_REQ;
#endif

#ifndef __T_SIM_UPDATE_CNF__
#define __T_SIM_UPDATE_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2082
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U16                       cause;                    /*<  2:  2> error code                                         */
} T_SIM_UPDATE_CNF;
#endif

#ifndef __T_SIM_READ_RECORD_REQ__
#define __T_SIM_READ_RECORD_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2083
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       datafield;                /*<  2:  2> data field identification                          */
  U8                        record;                   /*<  4:  1> record number                                      */
  U8                        length;                   /*<  5:  1> length of data field                               */
  U8                        _align0;                  /*<  6:  1> alignment                                          */
  U8                        _align1;                  /*<  7:  1> alignment                                          */
} T_SIM_READ_RECORD_REQ;
#endif

#ifndef __T_SIM_READ_RECORD_CNF__
#define __T_SIM_READ_RECORD_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2084
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U16                       cause;                    /*<  2:  2> error code                                         */
  U8                        record;                   /*<  4:  1> record number                                      */
  U8                        max_record;               /*<  5:  1> Maximum record number                              */
  U8                        length;                   /*<  6:  1> length of data field                               */
  U8                        linear_data[MAX_SIM_CMD]; /*<  7:256> Linear fixed data content                          */
  U8                        _align0;                  /*<263:  1> alignment                                          */
} T_SIM_READ_RECORD_CNF;
#endif

#ifndef __T_SIM_UPDATE_RECORD_REQ__
#define __T_SIM_UPDATE_RECORD_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2085
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       datafield;                /*<  2:  2> data field identification                          */
  U8                        record;                   /*<  4:  1> record number                                      */
  U8                        length;                   /*<  5:  1> length of data field                               */
  U8                        linear_data[MAX_SIM_CMD]; /*<  6:256> Linear fixed data content                          */
  U8                        _align0;                  /*<262:  1> alignment                                          */
  U8                        _align1;                  /*<263:  1> alignment                                          */
} T_SIM_UPDATE_RECORD_REQ;
#endif

#ifndef __T_SIM_UPDATE_RECORD_CNF__
#define __T_SIM_UPDATE_RECORD_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2086
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U8                        record;                   /*<  2:  1> record number                                      */
  U8                        _align0;                  /*<  3:  1> alignment                                          */
  U16                       cause;                    /*<  4:  2> error code                                         */
  U8                        _align1;                  /*<  6:  1> alignment                                          */
  U8                        _align2;                  /*<  7:  1> alignment                                          */
} T_SIM_UPDATE_RECORD_CNF;
#endif

#ifndef __T_SIM_INCREMENT_REQ__
#define __T_SIM_INCREMENT_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2087
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       datafield;                /*<  2:  2> data field identification                          */
  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_INCREMENT_REQ;
#endif

#ifndef __T_SIM_INCREMENT_CNF__
#define __T_SIM_INCREMENT_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2088
 */
typedef struct
{
  U16                       datafield;                /*<  0:  2> data field identification                          */
  U16                       cause;                    /*<  2:  2> error code                                         */
  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_INCREMENT_CNF;
#endif

#ifndef __T_SIM_VERIFY_PIN_REQ__
#define __T_SIM_VERIFY_PIN_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2089
 */
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==2090
 */
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==2091
 */
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==2092
 */
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==2093
 */
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==2094
 */
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==2095
 */
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==2096
 */
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==2097
 */
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==2098
 */
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==2099
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        rand[MAX_RAND];           /*<  2: 16> authentication parameter rand                      */
  U8                        cksn;                     /*< 18:  1> ciphering key sequence number                      */
  U8                        _align0;                  /*< 19:  1> alignment                                          */
} T_SIM_AUTHENTICATION_REQ;
#endif

#ifndef __T_SIM_AUTHENTICATION_CNF__
#define __T_SIM_AUTHENTICATION_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2100
 */
typedef struct
{
  U8                        sres[MAX_SRES];           /*<  0:  4> authentication parameter Sres                      */
  U8                        kc[MAX_KC];               /*<  4:  8> authentication parameter Kc                        */
} T_SIM_AUTHENTICATION_CNF;
#endif

#ifndef __T_SIM_MMI_INSERT_IND__
#define __T_SIM_MMI_INSERT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==2101
 */
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           */
  T_pref_plmn               pref_plmn;                /*< 32:244> Preferred PLMN list                                */
  U8                        phase;                    /*<276:  1> phase  of SIM card                                 */
  U8                        access_acm;               /*<277:  1> Access ACM                                         */
  U8                        access_acmmax;            /*<278:  1> Access ACMMAX                                      */
  U8                        access_puct;              /*<279:  1> Access PUCT                                        */
  T_cbmid_rec               cbmid_rec;                /*<280:256> This structure contains the CBMID records          */
} T_SIM_MMI_INSERT_IND;
#endif

#ifndef __T_SIM_MM_INSERT_IND__
#define __T_SIM_MM_INSERT_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==2102
 */
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_pref_plmn               pref_plmn;                /*< 68:244> Preferred PLMN list                                */
  T_forb_plmn               forb_plmn;                /*<312: 16> Forbidden PLMN list                                */
  U8                        phase;                    /*<328:  1> phase  of SIM card                                 */
  U8                        hplmn;                    /*<329:  1> HPLMN search period                                */
  U8                        v_act_hplmn;              /*<330:  1> valid-flag                                         */
  U8                        act_hplmn[MAX_SIM_PLMN_SIZE]; /*<331:  3> Acting HPLMN                                       */
  U8                        _align3;                  /*<334:  1> alignment                                          */
  U8                        _align4;                  /*<335:  1> alignment                                          */
} T_SIM_MM_INSERT_IND;
#endif

#ifndef __T_SIM_REMOVE_IND__
#define __T_SIM_REMOVE_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==2103
 */
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==2104
 */
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                                      */
} T_SIM_MM_UPDATE_REQ;
#endif

#ifndef __T_SIM_SYNC_REQ__
#define __T_SIM_SYNC_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2105
 */
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==2106
 */
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==2107
 */
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==2108
 */
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==2109
 */
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==2110
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U8                        req_id;                   /*<  2:  1> identifies a certain SIM toolkit procedure         */
  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==2111
 */
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==2112
 */
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==2113
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        req_id;                   /*<  2:  1> identifies a certain SIM toolkit procedure         */
  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==2114
 */
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==2115
 */
typedef struct
{
  T_pref_plmn               pref_plmn;                /*<  0:244> Preferred PLMN list                                */
} T_SIM_MM_INFO_IND;
#endif

#ifndef __T_SIM_ACCESS_REQ__
#define __T_SIM_ACCESS_REQ__
/*
 * 
 * CCDGEN:WriteStruct_Count==2116
 */
typedef struct
{
  U16                       source;                   /*<  0:  2> source process                                     */
  U16                       datafield;                /*<  2:  2> data field identification                          */
  U8                        sim_command;              /*<  4:  1> SIM Command                                        */
  U8                        p1;                       /*<  5:  1> P1 Parameter                                       */
  U8                        p2;                       /*<  6:  1> P2 Parameter                                       */
  U8                        p3;                       /*<  7:  1> P3 Parameter                                       */
  U16                       c_trans_data;             /*<  8:  2> counter                                            */
  U8                        trans_data[MAX_SIM_TRANSP]; /*< 10:262> Transparent data content                           */
} T_SIM_ACCESS_REQ;
#endif

#ifndef __T_SIM_ACCESS_CNF__
#define __T_SIM_ACCESS_CNF__
/*
 * 
 * CCDGEN:WriteStruct_Count==2117
 */
typedef struct
{
  U16                       cause;                    /*<  0:  2> error code                                         */
  U8                        sw1;                      /*<  2:  1> SW1 Parameter                                      */
  U8                        sw2;                      /*<  3:  1> SW2 Parameter                                      */
  U16                       c_trans_data;             /*<  4:  2> counter                                            */
  U8                        trans_data[MAX_SIM_CMD];  /*<  6:256> Transparent data content                           */
  U8                        _align0;                  /*<262:  1> alignment                                          */
  U8                        _align1;                  /*<263:  1> alignment                                          */
} T_SIM_ACCESS_CNF;
#endif

#ifndef __T_SIM_FILE_UPDATE_IND__
#define __T_SIM_FILE_UPDATE_IND__
/*
 * 
 * CCDGEN:WriteStruct_Count==2118
 */
typedef struct
{
  U16                       val_nr;                   /*<  0:  2> valid entries of a file ID list                    */
  U16                       file_id[MAX_FILE_ID];     /*<  2:128> Identifier of an EF                                */
  U8                        _align0;                  /*<130:  1> alignment                                          */
  U8                        _align1;                  /*<131:  1> alignment                                          */
} T_SIM_FILE_UPDATE_IND;
#endif

#ifndef __T_SIM_FILE_UPDATE_RES__
#define __T_SIM_FILE_UPDATE_RES__
/*
 * 
 * CCDGEN:WriteStruct_Count==2119
 */
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==2120
 */
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==2121
 */
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==2122
 */
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==2123
 */
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==2124
 */
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==2125
 */
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==2126
 */
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==2127
 */
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==2128
 */
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==2129
 */
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==2130
 */
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==2131
 */
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==2132
 */
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==2133
 */
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