view cdg-hybrid/cdginc/p_sim.val @ 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.val                                                      |
| 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_VAL
#define P_SIM_VAL


#define CDG_ENTER__P_SIM_VAL

#define CDG_ENTER__FILENAME _P_SIM_VAL
#define CDG_ENTER__P_SIM_VAL__FILE_TYPE CDGINC
#define CDG_ENTER__P_SIM_VAL__LAST_MODIFIED _2003_01_24
#define CDG_ENTER__P_SIM_VAL__ID_AND_VERSION _6147_108_99_113

#define CDG_ENTER__P_SIM_VAL__SRC_FILE_TIME _Fri_Jul_4_11_26_04_2008

#include "CDG_ENTER.h"

#undef CDG_ENTER__P_SIM_VAL

#undef CDG_ENTER__FILENAME


/*
 * Value constants for VAL_datafield
 */
#define SIM_MF                         (0x3f00)   /* main file directory (M)        */
#define SIM_ICCID                      (0x2fe2)   /* ICC identification (M)         */
#define SIM_ELP                        (0x2f05)   /* extended language preference   */
#define SIM_ADN                        (0x6f3a)   /* abbreviated dialling numbers   */
#define SIM_FDN                        (0x6f3b)   /* fixed dialling numbers         */
#define SIM_SMS                        (0x6f3c)   /* short messages                 */
#define SIM_CCP                        (0x6f3d)   /* capability configuration parameters */
#define SIM_MSISDN                     (0x6f40)   /* MSISDN                         */
#define SIM_SMSP                       (0x6f42)   /* short message service parameters */
#define SIM_SMSS                       (0x6f43)   /* short message status           */
#define SIM_LND                        (0x6f44)   /* last number dialled            */
#define SIM_SMSR                       (0x6f47)   /* short message status reports   */
#define SIM_SDN                        (0x6f49)   /* service dialling numbers       */
#define SIM_EXT1                       (0x6f4a)   /* extension 1                    */
#define SIM_EXT2                       (0x6f4b)   /* extension 2                    */
#define SIM_EXT3                       (0x6f4c)   /* extension 3                    */
#define SIM_BDN                        (0x6f4d)   /* barred dialling numbers        */
#define SIM_EXT4                       (0x6f4e)   /* extension 4                    */
#define SIM_ORANGE_DYN2_FLAG           (0x6f92)   /* Orange Proprietary             */
#define SIM_ORANGE_CSP2                (0x6f98)   /* Orange Proprietary             */
#define SIM_ORANGE_ACM2                (0x6f9c)   /* Orange Proprietary             */
#define SIM_ORANGE_DYN_FLAGS           (0x6f9f)   /* Orange Proprietary             */
#define SIM_DF_ORANGE                  (0x7f40)   /* Orange Proprietary             */
#define SIM_IMG                        (0x4f20)   /* icon images                    */
#define SIM_LP                         (0x6f05)   /* language preference (M)        */
#define SIM_VI_HZ_PARAM                (0x6f60)   /* Viag home zone parameters      */
#define SIM_VI_HZ_CACHE_1              (0x6f61)   /* Viag home zone Cache 1         */
#define SIM_VI_HZ_CACHE_2              (0x6f62)   /* Viag home zone Cache 2         */
#define SIM_VI_HZ_CACHE_3              (0x6f63)   /* Viag home zone Cache 3         */
#define SIM_VI_HZ_CACHE_4              (0x6f64)   /* Viag home zone Cache 4         */
#define SIM_IMSI                       (0x6f07)   /* international mobile subscriber identity (M) */
#define SIM_KC                         (0x6f20)   /* ciphering key Kc (M)           */
#define SIM_DCK                        (0x6f2c)   /* De-personalization Control Keys */
#define SIM_PLMNSEL                    (0x6f30)   /* preferred PLMN selector        */
#define SIM_HPLMN                      (0x6f31)   /* HPLMN search period (M)        */
#define SIM_CNL                        (0x6f32)   /* Co-operative Network List      */
#define SIM_ACMMAX                     (0x6f37)   /* ACM maximum value              */
#define SIM_SST                        (0x6f38)   /* SIM service table (M)          */
#define SIM_ACM                        (0x6f39)   /* accumulated call meter         */
#define SIM_GID1                       (0x6f3e)   /* group identifier level 1       */
#define SIM_GID2                       (0x6f3f)   /* group identifier level 2       */
#define SIM_PUCT                       (0x6f41)   /* price per unit and currency    */
#define SIM_CBMI                       (0x6f45)   /* cell broadcast message identifier selection */
#define SIM_SPN                        (0x6f46)   /* service provider name          */
#define SIM_CBMID                      (0x6f48)   /* cell broadcast message identifier for data download */
#define SIM_ECCP                       (0x6f4f)   /* Extended capability configuration parameters */
#define SIM_CMI                        (0x6f58)   /* Comparison Method Information  */
#define SIM_BCCH                       (0x6f74)   /* broadcast control channels (M) */
#define SIM_ACC                        (0x6f78)   /* access control classes (M)     */
#define SIM_FPLMN                      (0x6f7b)   /* forbidden PLMNs (M)            */
#define SIM_LOCI                       (0x6f7e)   /* location information (M)       */
#define SIM_AD                         (0x6fad)   /* administrative data (M)        */
#define SIM_PHASE                      (0x6fae)   /* phase identification (M)       */
#define SIM_VGCS                       (0x6fb1)   /* voice group call service       */
#define SIM_VGCSS                      (0x6fb2)   /* voice group call service status */
#define SIM_VBS                        (0x6fb3)   /* voice broadcast service        */
#define SIM_VBSS                       (0x6fb4)   /* voice broadcast service status */
#define SIM_EMLPP                      (0x6fb5)   /* enhanced multi level pre-emption and priority */
#define SIM_AAEM                       (0x6fb6)   /* automatic answer for eMLPP service */
#define SIM_ECC                        (0x6fb7)   /* emergency call codes           */
#define SIM_CBMIR                      (0x6f50)   /* cell broadcast message identifier range selection */
#define SIM_NIA                        (0x6f51)   /* network's indication of alerting */
#define SIM_KCGPRS                     (0x6f52)   /* ciphering key (GPRS)           */
#define SIM_LOCGPRS                    (0x6f53)   /* location information (GPRS)    */
#define SIM_SUME                       (0x6f54)   /* setup menu elements            */
#define SIM_PNN                        (0x6fc5)   /* PLMN network name (3GPP release 4) */
#define SIM_OPL                        (0x6fc6)   /* operator PLMN list (3GPP release 4) */
#define SIM_CPHS_VMW                   (0x6f11)   /* voice message waiting (CPHS)   */
#define SIM_CPHS_SST                   (0x6f12)   /* service string table (CPHS)    */
#define SIM_CPHS_CFF                   (0x6f13)   /* call forwarding flags (CPHS)   */
#define SIM_CPHS_ONSTR                 (0x6f14)   /* operator string name (CPHS)    */
#define SIM_CPHS_CSP                   (0x6f15)   /* customer service profile (CPHS) */
#define SIM_CPHS_CINF                  (0x6f16)   /* CPHS information (CPHS)        */
#define SIM_CPHS_MBXN                  (0x6f17)   /* mailbox numbers (CPHS)         */
#define SIM_CPHS_ONSHF                 (0x6f18)   /* operator name shortform (CPHS) */
#define SIM_CPHS_INFN                  (0x6f19)   /* information numbers (CPHS)     */
#define SIM_SAI                        (0x4f30)   /* SoLSA access indicator         */
#define SIM_SLL                        (0x4f31)   /* SoLSA LSA list                 */
#define SIM_CPHS_INFN2                 (0xea01)   /* information numbers (CPHS) 2 (old SIMs) */
#define SIM_DF_CING                    (0x7f66)   /* 1st level Directory(CINGULAR specific) */
#define SIM_DF2_CING                   (0x5f30)   /* 2nd level Directory(CINGULAR specific) */
#define SIM_CING_AHPLMN                (0x4f34)   /* Acting Home PLMN(CINGULAR specific) */
#define SIM_CING_TRMST                 (0x6fd2)   /* terminal support table         */
#define SIM_MEXE_ST                    (0x4f40)   /* MExE Service table             */
#define SIM_ORPK                       (0x4f41)   /* Operator Root Public Key       */
#define SIM_ARPK                       (0x4f42)   /* Administrator Root Public Key  */
#define SIM_TPRPK                      (0x4f43)   /* Third Party Root Public key    */
// VAL-FF: REL99  
// #define SIM_UCPS_ACTEC                 (0x6f60)/* User controlled PLMN Selector with Access Technology */
// VAL-FF: REL99  
// #define SIM_OCPS_ACTEC                 (0x6f61)/* Operator controlled PLMN Selector with Access Technology */
// VAL-FF: REL99  
// #define SIM_HPLMN_ACT                  (0x6f62)/* HPLMN Selector with Access Technology */
// VAL-FF: REL99  
// #define SIM_CPBCCH                     (0x6f63)/* CPBCCH Information             */
// VAL-FF: REL99  
// #define SIM_INV_SCAN                   (0x6f64)/* Investigation Scan             */
// VAL-FF: REL99  
// #define SIM_RPLMN_ACT                  (0x6f65)/* RPLMN Last used Access Technology */
#define SIM_CFIS                       (0x6fcb)   /* Call Forwarding Indication Status */
#define SIM_MBDN                       (0x6fc7)   /* Mailbox Dialling Numbers       */
#define SIM_MWIS                       (0x6fca)   /* Message Waiting Indication Status */
#define SIM_MBI                        (0x6fc9)   /* Mailbox Identifier             */

/*
 * Value constants for VAL_cause
 */
#define SIM_NO_ERROR                   (0x80ff)   /* No error (Status Code 9000, 91XX, 9FXX, 920X; USIM 63CX) */
#define SIM_CAUSE_NO_SELECT            (0x1)      /* No EF selected (SC 9400; USIM 6986) */
#define SIM_CAUSE_UNKN_FILE_ID         (0x2)      /* file id not found (SC 9404; USIM 6A82) */
#define SIM_CAUSE_EF_INVALID           (0x3)      /* EF invalidated (SC 9810; USIM 6283, 6984) */
#define SIM_CAUSE_ADDR_WRONG           (0x4)      /* Address of data invalid (SC 9402; USIM 6A83) */
#define SIM_CAUSE_CMD_INCONSIST        (0x5)      /* Command inconsistent with file type (SC 9408; USIM 6981) */
#define SIM_CAUSE_MAX_INCREASE         (0x6)      /* Increase: maximum reached (SC 9850) */
// VAL-FF: REL99  
// #define SIM_CAUSE_MEM_PROBLEM          (0x7)   /* Sim memory problem when updating EF LOCI with data containing the TMSI value */
#define SIM_CAUSE_CLA_WRONG            (0x8)      /* Wrong class parameter (SC 6EXX) */
#define SIM_CAUSE_INS_WRONG            (0x9)      /* Unknown instruction code (SC 6DXX; USIM 6A81) */
#define SIM_CAUSE_P1P2_WRONG           (0xa)      /* Incorrect parameter P1, P2 (SC 6BXX; USIM 6A86. 6A88) */
#define SIM_CAUSE_P3_WRONG             (0xb)      /* Incorrect parameter P3 (SC 67XX; USIM 6282, 6A87) */
#define SIM_CAUSE_CHV_NOTSET           (0xc)      /* No CHV active (SC 9802; USIM 6982) */
#define SIM_CAUSE_CHV_VALIDATED        (0xd)      /* CHV already validated (SC 9808; USIM 6982) */
#define SIM_CAUSE_ACCESS_PROHIBIT      (0xe)      /* Access conditions not fulfilled (SC 9804; USIM 6985) */
#define SIM_CAUSE_OTHER_ERROR          (0xf)      /* Any other SIM error            */
#define SIM_CAUSE_PUK1_BLOCKED         (0x10)     /* PUK1 blocked (SC 9840; USIM 63C0) */
#define SIM_CAUSE_PUK1_REMAIN1         (0x11)     /* Wrong PUK1, 1 attempt left (SC 9804; USIM 63C1) */
#define SIM_CAUSE_PUK1_REMAIN2         (0x12)     /* Wrong PUK1, 2 attempts left (USIM 63C2) */
#define SIM_CAUSE_PUK1_REMAIN3         (0x13)     /* Wrong PUK1, 3 attempts left (USIM 63C3) */
#define SIM_CAUSE_PUK1_REMAIN4         (0x14)     /* Wrong PUK1, 4 attempts left (USIM 63C4) */
#define SIM_CAUSE_PUK1_REMAIN5         (0x15)     /* Wrong PUK1, 5 attempts left (USIM 63C5) */
#define SIM_CAUSE_PUK1_REMAIN6         (0x16)     /* Wrong PUK1, 6 attempts left (USIM 63C6) */
#define SIM_CAUSE_PUK1_REMAIN7         (0x17)     /* Wrong PUK1, 7 attempts left (USIM 63C7) */
#define SIM_CAUSE_PUK1_REMAIN8         (0x18)     /* Wrong PUK1, 8 attempts left (USIM 63C8) */
#define SIM_CAUSE_PUK1_REMAIN9         (0x19)     /* Wrong PUK1, 9 attempts left (USIM 63C9) */
#define SIM_CAUSE_PUK1_EXPECT          (0x1a)     /* PUK1 required (SC 9804, 9808; USIM 6982, 6985) */
#define SIM_CAUSE_PIN1_BLOCKED         (0x1c)     /* PIN1 blocked (SC 9840; USIM 63C0, 6983) */
#define SIM_CAUSE_PIN1_REMAIN1         (0x1d)     /* Wrong PIN1, 1 attempt left (USIM 63C1) */
#define SIM_CAUSE_PIN1_REMAIN2         (0x1e)     /* Wrong PIN1, 2 attempts left (USIM 63C2) */
#define SIM_CAUSE_PIN1_EXPECT          (0x1f)     /* PIN1 required (SC 9804, 9808; USIM 6982, 6985) */
#define SIM_CAUSE_PUK2_BLOCKED         (0x20)     /* PUK2 blocked (SC 9840; USIM 63C0) */
#define SIM_CAUSE_PUK2_REMAIN1         (0x21)     /* Wrong PUK2, 1 attempt left (USIM 63C1) */
#define SIM_CAUSE_PUK2_REMAIN2         (0x22)     /* Wrong PUK2, 2 attempts left (USIM 63C2) */
#define SIM_CAUSE_PUK2_REMAIN3         (0x23)     /* Wrong PUK2, 3 attempts left (USIM 63C3) */
#define SIM_CAUSE_PUK2_REMAIN4         (0x24)     /* Wrong PUK2, 4 attempts left (USIM 63C4) */
#define SIM_CAUSE_PUK2_REMAIN5         (0x25)     /* Wrong PUK2, 5 attempts left (USIM 63C5) */
#define SIM_CAUSE_PUK2_REMAIN6         (0x26)     /* Wrong PUK2, 6 attempts left (USIM 63C6) */
#define SIM_CAUSE_PUK2_REMAIN7         (0x27)     /* Wrong PUK2, 7 attempts left (USIM 63C7) */
#define SIM_CAUSE_PUK2_REMAIN8         (0x28)     /* Wrong PUK2, 8 attempts left (USIM 63C8) */
#define SIM_CAUSE_PUK2_REMAIN9         (0x29)     /* Wrong PUK2, 9 attempts left (USIM 63C9) */
#define SIM_CAUSE_PUK2_EXPECT          (0x2a)     /* PUK2 required (SC 9804, 9808; USIM 6982, 6985) */
#define SIM_CAUSE_PIN2_BLOCKED         (0x2c)     /* PIN2 blocked (SC 9840; USIM 63C0, 6983) */
#define SIM_CAUSE_PIN2_REMAIN1         (0x2d)     /* Wrong PIN2, 1 attempt left (USIM 63C1) */
#define SIM_CAUSE_PIN2_REMAIN2         (0x2e)     /* Wrong PIN2, 2 attempts left (USIM 63C2) */
#define SIM_CAUSE_PIN2_EXPECT          (0x2f)     /* PIN1 required (SC 9804, 9808; USIM 6982, 6985) */
#define SIM_CAUSE_SAT_BUSY             (0x31)     /* SIM Application Toolkit busy (SC 9300) */
#define SIM_CAUSE_DNL_ERROR            (0x32)     /* SAT download error (SC 9EXX; USIM 62XX, 63XX) */
#define SIM_NO_ERR_FILE_ALREADY_SELECTED (0xf0)   /* No error File Already selected (Internal success indication) */
#define SIM_CAUSE_CARD_REMOVED         (0x8000)   /* SIM card removed or exchanged  */
#define SIM_CAUSE_PARAM_WRONG          (0xc000)   /* Wrong parameter in primitive   */
#define SIM_CAUSE_DRV_NOCARD           (0xc001)   /* SIM driver error: no card detected */
#define SIM_CAUSE_DRV_NOINT            (0xc002)   /* SIM driver error: no interrupt */
#define SIM_CAUSE_DRV_NOATR            (0xc003)   /* SIM driver error: no answer to reset */
#define SIM_CAUSE_DRV_READ             (0xc004)   /* SIM driver error: invalid response */
#define SIM_CAUSE_DRV_XMIT             (0xc005)   /* SIM driver error: unsuccessful transmission */
#define SIM_CAUSE_DRV_OVF              (0xc006)   /* SIM driver error: interrupt overflow */
#define SIM_CAUSE_DRV_LEN              (0xc007)   /* SIM driver error: incorrect size of response */
#define SIM_CAUSE_DRV_CARDREJ          (0xc008)   /* SIM driver error: card rejected (invalid properties) */
#define SIM_CAUSE_DRV_WAIT             (0xc009)   /* SIM driver error: timeout      */
#define SIM_CAUSE_DRV_ABNCASE1         (0xc00a)   /* SIM driver error: abnormal case 1 */
#define SIM_CAUSE_DRV_ABNCASE2         (0xc00b)   /* SIM driver error: abnormal case 2 */
#define SIM_CAUSE_DRV_RCVOVFL          (0xc00c)   /* SIM driver error: more than 256 bytes received */
#define SIM_CAUSE_DRV_HWFAIL           (0xc00d)   /* SIM driver error: hardware failure */
#define SIM_CAUSE_DRV_TEMPFAIL         (0xc00e)   /* SIM driver error: temprary failure, SIM reset required */
#define SIM_CAUSE_SIM_REINSERTED       (0xc00f)   /* SIM card reinserted            */

/*
 * Value constants for VAL_op_mode
 */
#define OP_NORMAL_SIM                  (0x0)      /* normal SIM card                */
#define OP_TEST_SIM                    (0x1)      /* test SIM card                  */

/*
 * Value constants for VAL_pin_cnt
 */
#define CARD_BLOCKED                   (0x0)      /* SIM card is blocked            */

/*
 * Value constants for VAL_phase
 */
#define PHASE_2_AS_1_SIM               (0x0)      /* phase 2 card configured as phase 1 card */
#define PHASE_1_SIM                    (0x1)      /* phase 1 card                   */
#define PHASE_2_SIM                    (0x2)      /* phase 2 card                   */
#define PHASE_2PLUS_SIM                (0x3)      /* phase 2+ card, TP download required */

/*
 * Value constants for VAL_hplmn
 */
#define HPLMN_DEF                      (0xa)      /* default time period for home PLMN search */

/*
 * Value constants for VAL_pin_id
 */
#define PHASE_2_PIN_1                  (0x1)      /* phase 2 card, PIN 1            */
#define PHASE_2_PIN_2                  (0x2)      /* phase 2 card, PIN 2            */
#define PHASE_2_PUK_1                  (0x3)      /* phase 2 card, PUK 1            */
#define PHASE_2_PUK_2                  (0x4)      /* phase 2 card, PUK 2            */

/*
 * Value constants for VAL_source
 */
#define SRC_MMI                        (0x0)      /* from man machine interface     */
#define SRC_MM                         (0x1)      /* from mobility management       */
#define SRC_SMS                        (0x2)      /* from short message service     */
#define SRC_GMM                        (0x3)      /* from GPRS mobile management    */
#define SRC_RR                         (0x4)      /* from radio resource management */

/*
 * Value constants for VAL_mem_cap_avail
 */
#define SIM_SMS_MEM_FULL               (0x0)      /* SMS storage on SIM execeeded   */
#define SIM_SMS_MEM_AVAIL              (0x1)      /* SMS storage on SIM available   */
#define SIM_SMS_NO_MEM                 (0xff)     /* SMS storage on SIM not present */

/*
 * Value constants for VAL_stk_pro_file
 */
#define SAT_TP1_PRF_DNL                (0x1)      /* Profile download (redundant definition) */
#define SAT_TP1_SMS_DNL                (0x2)      /* SMS-PP data download           */
#define SAT_TP1_CB_DNL                 (0x4)      /* Cell Broadcast data download   */
#define SAT_TP1_MENU_SEL               (0x8)      /* Menu selection                 */
#define SAT_TP1_9E_XX                  (0x10)     /* '9E XX' response code for SIM data download error */
#define SAT_TP1_TIMER_EXP              (0x20)     /* Timer expiration (Class 3)     */
#define SAT_TP1_CC_USSD                (0x40)     /* USSD string data object supported in Call Control */
#define SAT_TP1_CC_ON_REDIAL           (0x80)     /* Call Control by SIM always performed on automatic redial */
#define SAT_TP2_CMD_RES                (0x1)      /* Command result (generic)       */
#define SAT_TP2_CC                     (0x2)      /* Call Control by SIM            */
#define SAT_TP2_CC_CELL_ID             (0x4)      /* Cell Identity included in Call Control by SIM */
#define SAT_TP2_MOSMC                  (0x8)      /* MO SM Control by SIM (Class 3) */
#define SAT_TP2_ALPHA_ID               (0x10)     /* Alpha identifier according to clause 9 */
#define SAT_TP2_UCS2_ENTRY             (0x20)     /* UCS2 entry supported           */
#define SAT_TP2_UCS2_DSPL              (0x40)     /* UCS2 display supported         */
#define SAT_TP2_DSPL_EXT               (0x80)     /* extended display length supported (Class 3) */
#define SAT_TP3_DSPL_TXT               (0x1)      /* Proactive SIM: Display Text    */
#define SAT_TP3_GET_INKEY              (0x2)      /* Proactive SIM: Get Inkey       */
#define SAT_TP3_GET_INPUT              (0x4)      /* Proactive SIM: Get Input       */
#define SAT_TP3_MORE_TIME              (0x8)      /* Proactive SIM: More Time       */
#define SAT_TP3_PLAY_TONE              (0x10)     /* Proactive SIM: Play Tone       */
#define SAT_TP3_POLL_ITV               (0x20)     /* Proactive SIM: Poll Interval   */
#define SAT_TP3_POLL_OFF               (0x40)     /* Proactive SIM: Polling Off     */
#define SAT_TP3_REFRESH                (0x80)     /* Proactive SIM: Refresh         */
#define SAT_TP4_SEL_ITEM               (0x1)      /* Proactive SIM: Select Item     */
#define SAT_TP4_SEND_SMS               (0x2)      /* Proactive SIM: Send SM         */
#define SAT_TP4_SEND_SS                (0x4)      /* Proactive SIM: Send SS         */
#define SAT_TP4_SEND_USSD              (0x8)      /* Proactive SIM: Send USSD (Class 3) */
#define SAT_TP4_SETUP_CALL             (0x10)     /* Proactive SIM: Set up Call     */
#define SAT_TP4_SETUP_MENU             (0x20)     /* Proactive SIM: Set up Menu     */
#define SAT_TP4_PLI_PLMN_IMEI          (0x40)     /* Proactive SIM: Provide Local Informaton (PLMN, Cell ID, IMEI) */
#define SAT_TP4_PLI_NMR                (0x80)     /* Proactive SIM: Provide Local Informaton (NMR) */
#define SAT_TP5_EVENT_LIST             (0x1)      /* Proactive SIM: Set up Event List (Class 3) */
#define SAT_TP5_MT_CALL                (0x2)      /* Event: Moblile Terminated Call (Class 3) */
#define SAT_TP5_CALL_CONN              (0x4)      /* Event: Call connected (Class 3) */
#define SAT_TP5_CALL_DISC              (0x8)      /* Event: Call disconnected (Class 3) */
#define SAT_TP5_LOC_STATUS             (0x10)     /* Event: Location status (Class 3) */
#define SAT_TP5_USER_ACT               (0x20)     /* Event: User activity (Class 3) */
#define SAT_TP5_SCR_AVAIL              (0x40)     /* Event: Idle screen available (Class 3) */
#define SAT_TP5_CDR_STATUS             (0x80)     /* Event: Card reader status (Class a) */
#define SAT_TP6_LANG_SEL               (0x1)      /* Event: Language Selection (Class 3) */
#define SAT_TP6_BROWS_TERM             (0x2)      /* Event: Browser Termination (Class c) */
#define SAT_TP6_DATA_AVAIL             (0x4)      /* Event: Data available (Class e) */
#define SAT_TP6_CHANNEL_STAT           (0x8)      /* Event: Channel status (Class e) */
#define SAT_TP7_PW_ON_CD               (0x1)      /* Proactive SIM: Power on Card (Class a) */
#define SAT_TP7_PW_OFF_CD              (0x2)      /* Proactive SIM: Power off Card (Class a) */
#define SAT_TP7_PF_CD_ADPU             (0x4)      /* Proactive SIM: Perform Card ADPU (Class a) */
#define SAT_TP7_GET_CDR_STATUS         (0x8)      /* Proactive SIM: Get Card Reader Status (Class a) */
#define SAT_TP7_GET_CDR_IDENT          (0x10)     /* Proactive SIM: Get Card Reader Identifier (Class a) */
#define SAT_TP8_TMNG_ST                (0x1)      /* Proactive SIM: Timer Management (start, stop) (Class 3) */
#define SAT_TP8_TMNG_VAL               (0x2)      /* Proactive SIM: Timer Management (get current value) (Class 3) */
#define SAT_TP8_PLI_DTT                (0x4)      /* Proactive SIM: Provide Local Information (date, time, tz) (Class 3) */
#define SAT_TP8_BIN_GET_INKEY          (0x8)      /* Binary choice in Get Inkey (Class 3) */
#define SAT_TP8_IDLE_TXT               (0x10)     /* Proactive SIM: Set up Idle Mode Text (Class 3) */
#define SAT_TP8_AT_CMD                 (0x20)     /* Proactive SIM: Run AT command (Class b) */
#define SAT_TP8_AI2_SETUP_CALL         (0x40)     /* 2nd alpha identifier in Set up Call (Class 3) */
#define SAT_TP8_CCP2_CC                (0x80)     /* 2nd capability configuration parameter with Call Control (Class 3) */
#define SAT_TP9_SUST_DSPL_TXT          (0x1)      /* Sustained Display Text (Class 3) */
#define SAT_TP9_DTMF_CMD               (0x2)      /* Send DTMF Command (Class 3)    */
#define SAT_TP9_BCCH_COD               (0x4)      /* BCCH coding according to subclause 12.19 (Class 3) */
#define SAT_TP9_PLI_LANG               (0x8)      /* Proactive SIM: Provide Local Information (Language) (Rel. 99) */
#define SAT_TP9_PLI_TIMING_ADV         (0x10)     /* Proactive SIM: Provide Local Information (Timing Adv ance) (Rel. 99) */
#define SAT_TP9_LANG_NOTIFY            (0x20)     /* Proactive SIM: Language Notification (Class 3) */
#define SAT_TP9_LAUNCH_BROWSER         (0x40)     /* Proactive SIM: Launch Browser (Class c) */
#define SAT_TP10_SFTKEY_SEL_ITEM       (0x1)      /* Soft key support for SELECT ITEM */
#define SAT_TP10_SFTKEY_SETUP_MENU     (0x2)      /* Soft key support for SET UP MENU */
#define SAT_TP11_MAX_NR_SFTKEY         (0xff)     /* Maximum number of soft keys available */
#define SAT_TP12_OPEN_CHANNEL          (0x1)      /* Proactive SIM: OPEN CHANNEL (Class e) */
#define SAT_TP12_CLOSE_CHANNEL         (0x2)      /* Proactive SIM: CLOSE CHANNEL (Class e) */
#define SAT_TP12_RECEIVE_DATA          (0x4)      /* Proactive SIM: RECEIVE DATA (Class e) */
#define SAT_TP12_SEND_DATA             (0x8)      /* Proactive SIM: SEND DATA (Class e) */
#define SAT_TP12_GET_CHANNEL_STAT      (0x10)     /* Proactive SIM: GET CHANNEL STATUS (Class e) */
#define SAT_TP13_CSD_SUPP_BY_ME        (0x1)      /* CSD supported by ME (Class e)  */
#define SAT_TP13_GPRS_SUPP_BY_ME       (0x2)      /* GPRS supported by ME (Class e) */
#define SAT_TP13_NR_OF_CHAN_SUPP       (0xe0)     /* Number of channels supported by ME (Class e) */
#define SAT_TP14_NR_OF_CHAR_DSPL_DWN   (0x1f)     /* Number of characters supported down the ME display */
#define SAT_TP14_SCRN_SIZE_PARAM       (0x80)     /* Screen sizing parameters supported by ME */
#define SAT_TP15_NR_OF_CHAR_DSPL_ACRS  (0x7f)     /* Number of characters supported across the ME display */
#define SAT_TP15_VAR_SIZE_FONT         (0x80)     /* Variable size fonts supported  */
#define SAT_TP16_DSPL_RESIZE           (0x1)      /* Display can be resized         */
#define SAT_TP16_TEXT_WRAP             (0x2)      /* Text wrapping supported        */
#define SAT_TP16_TEXT_SCROLL           (0x4)      /* Text scrolling supported       */
#define SAT_TP16_WIDTH_RDCT_MENU       (0xe0)     /* Width reduction when in Menu   */
#define SAT_TP17_BEARER_IND_SUPP_TCP   (0x1)      /* Bearer independent protocol supported TCP (Class e) */
#define SAT_TP17_BEARER_IND_SUPP_UDP   (0x2)      /* Bearer independent protocol supported UPD (Class e) */
#define SAT_TP19_PROT_VERS             (0xf)      /* Protocol version coded as TIA/EIA 136-123 */

/*
 * Value constants for VAL_proc
 */
#define SIM_INITIALISATION             (0x0)      /* initialisation                 */
#define SIM_FDN_ENABLE                 (0x1)      /* FDN enabling                   */
#define SIM_FDN_DISABLE                (0x2)      /* FDN disabling                  */
#define SIM_SELECT                     (0x3)      /* SIM selection                  */

/*
 * Value constants for VAL_func
 */
#define SIM_NO_OPERATION               (0x0)      /* card is invalid                */
#define SIM_ADN_ENABLED                (0x1)      /* normal GSM operation, ADN enabled */
#define SIM_FDN_ENABLED                (0x2)      /* restricted GSM operation, FDN enabled */
#define SIM_ADN_BDN_ENABLED            (0x5)      /* normal GSM operation, ADN and BDN enabled */
#define SIM_FDN_BDN_ENABLED            (0x6)      /* restricted GSM operation, FDN and BDN enabled */

/*
 * Value constants for VAL_download_sms
 */
#define DOWNLOAD_SMS_NO                (0x0)      /* No support of download SMS     */
#define DOWNLOAD_SMS_YES               (0x1)      /* Support of download SMS        */

/*
 * Value constants for VAL_access_acm
 */
#define ACCESS_ALWAYS                  (0x0)      /* No PIN is needed               */
#define ACCESS_PIN_1                   (0x1)      /* PIN 1 is needed                */
#define ACCESS_PIN_2                   (0x2)      /* PIN 2 is needed                */

/*
 * Value constants for VAL_mmi_pro_file
 */
#define SIM_MMI_ADN                    (0x80)     /* MMI ADN support, if set        */
#define SIM_MMI_FDN                    (0x40)     /* MMI FDN support, if set        */
#define SIM_MMI_BDN                    (0x20)     /* MMI BDN support, if set        */

/*
 * Value constants for VAL_synccs
 */
#define SYNC_START_CALL                (0x1)      /* Start present checks if needed during calls */
#define SYNC_STOP_CALL                 (0x2)      /* Stop present checks if running */
#define SYNC_DEACTIVATE                (0x3)      /* Deactivate SIM card            */
#define SYNC_MM_FINISHED_READING       (0x4)      /* MM has finished reading of the EFs */
#define SYNC_MMI_FINISHED_READING      (0x5)      /* MMI has finished reading of the EFs */

/*
 * Value constants for VAL_sim_command
 */
#define SIM_TRANSP_CMD                 (0x0)      /* Transparent SIM Command        */
#define SIM_READ_BINARY                (0x1)      /* Read Binary Command            */
#define SIM_READ_RECORD                (0x2)      /* Read Record Command            */
#define SIM_UPDATE_BINARY              (0x3)      /* Update Binary Command          */
#define SIM_UPDATE_RECORD              (0x4)      /* Update Record Command          */
#define SIM_STATUS                     (0x5)      /* Status Command                 */
#define SIM_GET_RESPONSE               (0x6)      /* Get Response Command           */

/*
 * Value constants for VAL_sw1
 */
#define SW1_SUCCESS                    (0x90)     /* normal ending of the command: SW2 = '00' */
#define SW1_SUCCESS_EXTRA_INF          (0x91)     /* ditto, with extra data from proactiv SIM for ME: SW2 = lgth */
#define SW1_DATA_LGTH_BY_ERR           (0x9e)     /* SW2 gives the length of respose in case of SIM downl. error */
#define SW1_SUCCESS_DATA_AVAIL         (0x9f)     /* SW2 gives the length of (SIM) response data */
#define SW1_SAT_BUSY                   (0x93)     /* no command execution now, further normal commands allowed */
#define SW1_MEMORY_MANAGEMENT          (0x92)     /* two cases possible depending on SW2 */
#define SW1_REFRNCG_MANAGEMENT         (0x94)     /* four cases possible depending on SW2 */
#define SW1_SECURTY_MANAGEMENT         (0x98)     /* six cases possible depending on SW2 */
#define SW1_ERR_INCORRECT_P3           (0x67)     /* incorrect parameter P3         */
#define SW1_ERR_INCOR_P1_OR_P2         (0x6b)     /* incorrect parameter P1 or P2   */
#define SW1_ERR_UNKNOWN_INSTR          (0x6d)     /* unknown instruction code given in the command */
#define SW1_ERR_INSTR_CLA              (0x6e)     /* wrong instruction class given in the command */
#define SW1_ERR_DIAG_OR_AUTHEN         (0x6f)     /* technical problem with no diagnostic given */
#define SW2_NORMAL                     (0x0)      /* normal ending of the command (SW1 = '00') */
#define SW2_256_BYTES_LGTH             (0x0)      /* SW2 gives the lengths of 256 bytes of information */
#define SW2_MEMORY_PROBLEM             (0x40)     /* memory problem: in connection with SW1 = '92' */
#define SW2_NO_EF_SELECTED             (0x2)      /* no elementary file selected: in connection with SW1 = '94' */
#define SW2_OUT_OF_RANGE               (0x2)      /* invalid adress: in connection with SW1 = '94' */
#define SW2_FILE_ID_PATT_NFOUND        (0x4)      /* file ID or pattern not found: in connection with SW1 = '94' */
#define SW2_FILE_INCON_WTH_CMD         (0x8)      /* file inconsistent with cmd: in connection with SW1 = '94' */
#define SW2_NO_CHV_INIT                (0x2)      /* no CHV initialized: in connection with SW1 = '98' */
#define SW2_ACC_FAIL                   (0x4)      /* in connection with SW1 = '98': (1) acces condition not fullfilled; (2) CHV verify unsuccessful, at least one attempt left; (3) UNBLOCK CHV verify unsuccessful, at least one attempt left; (4) authentication failed */
#define SW2_CNTR_TO_CHV_STAT           (0x8)      /* in contradiction with CHV status: in conn. with SW1 = '98' */
#define SW2_CNTR_TO_INVALID_STAT       (0x10)     /* in contradiction with invalidation status: in conn. with SW1 = '98' */
#define SW2_ACC_FAIL_NO_ATTEMTP        (0x40)     /* in connection with SW1 = '98': (1) CHV verify unsuccessful, no attempt left; (2) UNBLOCK CHV verify unsuccessful, no attempt left; (3) CHV blocked; (4) UNBLOCK CHV blocked */
#define SW2_NO_INCREASE_PERF           (0x50)     /* increase cannot be performed, Max value reached: in conn. with SW1 = '98' */

/*
 * Value constants for VAL_smsr_mem_cap
 */
#define SIM_SMSR_DISABLE               (0x0)      /* EF(SMSR) disabled on SIM       */
#define SIM_SMSR_ENABLE                (0x1)      /* EF(SMSR) enabled on SIM        */

/*
 * Value constants for VAL_fu_rsc
 */
#define SIM_FU_ERROR                   (0x0)      /* ME is unable to perform the command (SAT result = 20) */
#define SIM_FU_SUCCESS                 (0x1)      /* file update is performed successfully (SAT result = 0) */
#define SIM_FU_SUCC_ADD                (0x2)      /* file update is performed with additional files read (SAT result = 3) */

/*
 * Value constants for VAL_dti_conn
 */
#define SIM_DTI_UNKNOWN                (0x0)      /* Unknown DTI link status        */
#define SIM_DTI_CONNECT                (0x1)      /* Connect DTI link to SIM        */
#define SIM_DTI_DISCONNECT             (0x2)      /* Disconnect DTI link from SIM   */

/*
 * Value constants for VAL_con_type
 */
#define SIM_CON_TYPE_UDP               (0x1)      /* send and expect UDP datagrams  */
#define SIM_CON_TYPE_IP                (0x2)      /* send and expect IP packets     */
#define SIM_CON_TYPE_SERIAL            (0x3)      /* send and expect serial data    */

/*
 * Value constants for VAL_local_ip
 */
#define SIM_IP_LOCAL_DYNAMIC           (0x0)      /* SIM requests IP address from UDP */

/*
 * Value constants for VAL_event_data_avail
 */
#define SIM_EVENT_DISABLE              (0x0)      /* do not use this event          */
#define SIM_EVENT_ENABLE               (0x1)      /* use this event                 */
#define SIM_KEEP_ALIVE                 (0xff)     /* reserved                       */

/*
 * Value constants for VAL_release_time
 */
#define SIM_NO_AUTO_RELEASE            (0x0)      /* do not use release timer       */

/*
 * Value constants for VAL_cla
 */
#define GSM_CLASS                      (0xa0)     /* GSM instruction class          */

/*
 * Value constants for VAL_ins_code
 */
#define SIM_INS_SELECT                 (0xa4)     /* Select Instruction             */
#define SIM_INS_STATUS                 (0xf2)     /* Status Instruction             */
#define SIM_INS_READ_BINARY            (0xb0)     /* Read Binary Instruction        */
#define SIM_INS_UPDATE_BINARY          (0xd6)     /* Update Binary Instruction      */
#define SIM_INS_READ_RECORD            (0xb2)     /* Read Record Instruction        */
#define SIM_INS_UPDATE_RECORD          (0xdc)     /* Update Record Instruction      */
#define SIM_INS_SEEK                   (0xa2)     /* Seek Instruction               */
#define SIM_INS_INCREASE               (0x32)     /* Increase Instruction           */
#define SIM_INS_VERIFY_CHV             (0x20)     /* Verify Chv Instruction         */
#define SIM_INS_CHANGE_CHV             (0x24)     /* Change Chv Instruction         */
#define SIM_INS_DISABLE_CHV            (0x26)     /* Disable Chv Instruction        */
#define SIM_INS_ENABLE_CHV             (0x28)     /* Ensable Chv Instruction        */
#define SIM_INS_UNBLOCK_CHV            (0x2c)     /* Unblock Chv Instruction        */
#define SIM_INS_INVALIDATE             (0x4)      /* Invalidate Instruction         */
#define SIM_INS_REHABILITATE           (0x44)     /* Rehabilitate Instruction       */
#define SIM_INS_RUN_GSM_ALGTH          (0x88)     /* Run GSM Algorithm Instruczion  */
#define SIM_INS_GET_RESPONSE           (0xc0)     /* Get Response Instruction       */
#define SIM_INS_TERMINAL_PROFILE       (0x10)     /* Terminal Profile Instruction   */
#define SIM_INS_ENVELOPE               (0xc2)     /* Envelope Instruction           */
#define SIM_INS_FETCH                  (0x12)     /* Fetch Instruction              */
#define SIM_INS_TERMINAL_RESPONSE      (0x14)     /* Terminal Response Instruction  */

/*
 * Value constants for VAL_bip_conn
 */
#define SIM_BIP_UNKNOWN                (0x0)      /* unknown BIP channel status     */
#define SIM_BIP_OPEN_CHANNEL           (0x1)      /* Open bearer independent protocol channel */
#define SIM_BIP_CLOSE_CHANNEL          (0x2)      /* Close bearer independent protocol channel */
#define SIM_BIP_CHANNEL_RESUMED        (0x4)      /* BIP channel is resumed         */
#define SIM_BIP_CHANNEL_SUSPENDED      (0x8)      /* BIP channel is suspended       */

/*
 * Value constants for VAL_dti_direction
 */
#define SIM_DTI_NORMAL                 (0x0)      /* DTI used normally              */
#define SIM_DTI_INVERTED               (0x1)      /* DTI is inverted                */

/*
 * Value constants for VAL_cust_mode
 */
#define SIM_CUST_MODE_NORM             (0x0)      /* Normal Behaviour               */
#define SIM_CUST_MODE_1                (0x1)      /* Customisation Value 1          */

/*
 * Value constants for VAL_user_accepts
 */
#define SIM_USER_REJECTS               (0x0)      /* User Rejected                  */
#define SIM_USER_ACCEPTS               (0x1)      /* User Accepted                  */

/*
 * Value constants for VAL_sim_num
 */
#define SIM_NUM_0                      (0x0)      /* Auto Select                    */
#define SIM_NUM_1                      (0x1)      /* Select SIM 1                   */
#define SIM_NUM_2                      (0x2)      /* Select SIM 2                   */

/*
 * Value constants for VAL_df_level2
 */
#define SIM_DF_MEXE                    (0x5f3c)   /* DF for MEXE  (subdirectory of 'gsm') */
#define SIM_DF_GRAPHICS                (0x5f50)   /* icon graphics directory (subdirectory of 'telecom') */
#define SIM_DF_SOLSA                   (0x5f70)   /* SoLSA directory (subdirectory of 'gsm') */

/*
 * Value constants for VAL_df_level1
 */
#define SIM_DF_TELECOM                 (0x7f10)   /* telecom directory              */
#define SIM_DF_GSM                     (0x7f20)   /* gsm directory (M)              */
#define SIM_DF_1800                    (0x7f21)   /* dcs 1800 directory             */
#define SIM_DF_VI                      (0x7f43)   /* Viag directory                 */

/*
 * user defined constants
 */
#define MAX_STK_CMD                    (0x100)    
#define MAX_SIM_CMD                    (0x100)    
#define MAX_SIM_TRANSP                 (0x106)    
#define MAX_SIM_ATR                    (0x21)     
#define MAX_PIN_LEN                    (0x8)      
#define MAX_FILE_ID                    (0x40)     
#define MAX_STK_PRF                    (0x14)     
#define MAX_SRV_TBL                    (0x10)     
#define MAX_LNG_PREF                   (0x5)      
#define MAX_ECC                        (0xf)      
#define MAX_PREF_PLMN                  (0xf0)     
#define MAX_IMSI                       (0x9)      
#define MAX_KC                         (0x8)      
#define MAX_LOCIGSM                    (0xb)      
#define MAX_LOCIGPRS                   (0xe)      
#define MAX_RAND                       (0x10)     
#define MAX_SRES                       (0x4)      
#define MAX_SIM_PLMN_SIZE              (0x3)      
#define MAX_AD                         (0x4)      
#define MAX_TRMST                      (0x8)      
#define SIM_CLASS_E_BUFFER_SIZE        (0x578)    
#define SIM_ORIGINATING_ENTITY         (0x0)      
#define MAX_CBMID_REC                  (0xff)     

#include "CDG_LEAVE.h"


#endif