FreeCalypso > hg > fc-magnetite
diff src/condat2/com/include/pcm.h @ 3:93999a60b835
src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 26 Sep 2016 00:29:36 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/condat2/com/include/pcm.h Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,1622 @@ +/* ++----------------------------------------------------------------------------- +| Project : GSM-MFW +| Modul : ++----------------------------------------------------------------------------- +| Copyright 2002 Texas Instruments Berlin, AG +| All rights reserved. +| +| This file is confidential and a trade secret of Texas +| Instruments Berlin, AG +| The receipt of or possession of this file does not convey +| any rights to reproduce or disclose its contents or to +| manufacture, use, or sell anything it may describe, in +| whole, or in part, without the specific written consent of +| Texas Instruments Berlin, AG. ++----------------------------------------------------------------------------- +| Purpose : Types definitions for the permanent memory configuration. ++----------------------------------------------------------------------------- +*/ +/******************************************************************************** + $History: pcm.h + + Jun 14, 2005 REF: MMI-FIX-30439 x0018858 + Description: The homezone/cityzone tags were not being displayed properly. + Solution: Modified to save the tags properly in caches and also made the + appropriate modifications to update the same properly during mobility. + +********************************************************************************/ + +#ifndef PCM_H +#define PCM_H + +/******************************************************************** + * + * Parameters written in flash memory + * + ********************************************************************/ + +#define PCM_SERIAL_CONFIG (0) + +/******************************************************************** + * + * Access functions to bit fields + * + ********************************************************************/ + +#ifndef __BF_FUNCCALL__ +#define FldGet(f,n) ((((ULONG)f)&((ULONG)n##m))>>n##s) +#define FldSet(f,n,v) ((((ULONG)f)&(~((ULONG)n##m)))|(((ULONG)v)<<n##s)) +#else +ULONG FldGet (ULONG f, ULONG m, int s) +{ return ((f&m)>>s); } +ULONG FldSet (ULONG f, ULONG m, int s, ULONG v) +{ return ((f&(~m))|((v<<s)&m)); } +#endif + +/******************************************************************** + * + * Field Identitifer + * + ********************************************************************/ + +#define EF_MSCAP_ID "MSCAP" /* Mobile Capabilities */ +#define EF_IMEI_ID "IMEI" /* Int. Mobile Equipment Id */ +#define EF_IMSI_ID "IMSI" /* Int. Mobile Subscriber Id */ +#define EF_SMS_ID "SMS" /* Short Messages */ +#define EF_CLASS2_ID "CLASS2" /* MS Classmark 2 */ +#define EF_CLASS3_ID "CLASS3" /* MS Classmark 3 (old def.)*/ +#define EF_RFCAP_ID "RFCAP" /* RF Capabilities */ +#define EF_MSSUP_ID "MSSUP" /* Mobile Setup */ +#define EF_MSSET_ID "MSSET" /* Mobile Setting */ +// Jun 14, 2005 REF: MMI-FIX-30439 x0018858 +#define EF_HZCACHE_ID "HZCACHE" /* Homezone cache */ +#define EF_LDN_ID "LDN" /* Last Dialed Numbers */ +#define EF_LRN_ID "LRN" /* Last Received Numbers */ +#define EF_LMN_ID "LMN" /* Last Missed Numbers */ +#define EF_UPN_ID "UPN" /* User Personal Numbers */ +#define EF_MBN_ID "MBN" /* Mailbox Numbers */ +#define EF_VMN_ID "VMN" /* Voice Mail Number */ +#define EF_CLNG_ID "CLNG" /* Current LAnguage */ +#define EF_CTIM_ID "CTIM" /* Call Timer */ +#define EF_CCNT_ID "CCNT" /* Call Counter */ +#define EF_ECC_ID "ECC" /* Emergency Call Codes */ +#define EF_ORG_ID "ORG" /* Organizer and Alarm */ +#define EF_CCP_ID "CCP" /* Caps and Config Params */ +#define EF_EXT1_ID "EXT1" /* Extension 1 */ +#define EF_SIMLCK_ID "SIMLCK" /* SIM Lock */ +#define EF_SIMLCKEXT_ID "SIMLCKEXT" /* SIM Lock Extended */ +#define EF_MAIN_ID "MAIN" /* Maintenance */ +#define EF_SFK_ID "SFK" /* Special Function Key */ +#define EF_FAULT_ID "FAULT" /* Fault Conditions */ +#define EF_DEBUG_ID "DEBUG" /* Debug Information */ +#define EF_POWER_ID "POWER" /* Power Management */ +#define EF_KEYB_ID "KEYB" /* Keyboard Mapping */ +#define EF_RADIO_ID "RADIO" /* Radio Parameter */ +#define EF_CGMI_ID "CGMI" /* Manufacturer */ +#define EF_INF0_ID "INF0" /* Manufacturer 1 */ +#define EF_CGMM_ID "CGMM" /* Model */ +#define EF_CGMR_ID "CGMR" /* Revision */ +#define EF_CGSN_ID "CGSN" /* Product Serial Number */ +#define EF_SMSPRFL_ID "SMSPRFL" /* SMS Profile */ +#define EF_PLMN_ID "PLMN" /* PLMN Identifier */ +#define EF_BCCHINFO_ID "BCCHINF" /* BCCH Information */ +#define EF_ALS_ID "ALS" /* alternate line service */ +#define EF_LOCGPRS_ID "LOCGPRS" /* Location Inf. (GPRS) */ +#define EF_KCGPRS_ID "KCGPRS" /* Ciphering Key (GPRS) */ +#define EF_IMSIGPRS_ID "IMSIGPRS" /* IMSI check for GPRS */ + +/******************************************************************** + * + * Return Values + * + ********************************************************************/ + +#define drv_Return_Type UBYTE + +#define PCM_OK 0 +#define PCM_INITIALIZED 1 +#define PCM_INVALID_FILE 2 +#define PCM_INVALID_SIZE 3 +#define PCM_INVALID_CKSM 4 +#define PCM_INVALID_RECORD 5 +#define PCM_NVRAM_ACCS_FAIL 6 +#define PCM_ERASE_ERROR 7 +#define PCM_WRITE_ERROR 8 +/* + * Field Info Structure + */ +typedef struct pcm_FileInfo_Type +{ + UBYTE * FileLocation; + USHORT FileSize; + UBYTE Version; +} pcm_FileInfo_Type; + + +/******************************************************************** + * + * Field MOBILE CAPABILITIES + * + ********************************************************************/ + +typedef struct pcm_EFmscap_Type /* Mobile Capabilities */ +{ + UBYTE chnMode; /* channel modes */ + UBYTE datCap1; /* data capabilities */ + UBYTE datCap2; /* data capabilities */ + UBYTE featLst1; /* feature list */ + UBYTE featLst2; /* feature list */ + UBYTE featLst3; /* feature list */ +} EF_MSCAP; + +#define SIZE_EF_MSCAP 6 +#define NR_EF_MSCAP 1 + +/* + * chnMode bits + * + * Octet 8 7 6 5 4 3 2 1 + * L1 Tm afs ahs spV3 efrV2 hr spV1 + */ +#define spchSupV1 0x00000001,0 /* speech support (vers. 1) */ +#define spchSupV1m 0x00000001 +#define spchSupV1s 0 +#define hrSup 0x00000002,1 /* HR support */ +#define hrSupm 0x00000002 +#define hrSups 1 +#define HR_EFRSup 0x00000006,1 /* HR and EFR support */ +#define HR_EFRSupm 0x00000006 +#define HR_EFRSups 1 +#define EFRSupV2 0x00000004,2 /* enhanced FR support (v2) */ +#define EFRSupV2m 0x00000004 +#define EFRSupV2s 2 +#define EFRSupV3 0x00000008,3 /* speech support (vers 3) */ +#define EFRSupV3m 0x00000008 +#define EFRSupV3s 3 +#define VocSup 0x0000000F,0 /* vocoder support */ +#define VocSupm 0x0000000F +#define VocSups 0 +#define AHS 0x00000010,4 /* adaptive multirate half rate speech */ +#define AHSm 0x00000010 +#define AHSs 4 +#define AFS 0x00000020,5 /* adaptive multirate full rate speech */ +#define AFSm 0x00000020 +#define AFSs 5 +#define TestMobile 0x00000040,6 /* Test Mobile */ +#define TestMobilem 0x00000040 +#define TestMobiles 6 +#define L1Ver 0x00000080,7 /* Layer 1 Version */ +#define L1Verm 0x00000080 +#define L1Vers 7 + +/* + * datCap bits + */ +#define datSup 0x00000001,0 /* Data support */ +#define datSupm 0x00000001 +#define datSups 0 +#define RLPSup 0x00000002,1 /* RLP data (NT Async) */ +#define RLPSupm 0x00000002 +#define RLPSups 1 +#define AsySup 0x00000004,2 /* T Async data support */ +#define AsySupm 0x00000004 +#define AsySups 2 +#define NTSynSup 0x00000008,3 /* NT Sync data support */ +#define NTSynSupm 0x00000008 +#define NTSynSups 3 +#define TSynSup 0x00000010,4 /* NT Sync data support */ +#define TSynSupm 0x00000010 +#define TSynSups 4 +#define NTFaxSup 0x00000020,5 /* NT Fax support */ +#define NTFaxSupm 0x00000020 +#define NTFaxSups 5 +#define TFaxSup 0x00000040,6 /* T Fax support */ +#define TFaxSupm 0x00000040 +#define TFaxSups 6 +#define Dr14_4Sup 0x00000080,7 /* Data rate 14.4 support */ +#define Dr14_4Supm 0x00000080 +#define Dr14_4Sups 7 + +/* + * datCap2 bits + */ +#define NTPackSup 0x00000001,0 /* NT Packet Service */ +#define NTPackSupm 0x00000001 +#define NTPackSups 0 +#define TPackSup 0x00000002,1 /* T Packet Service */ +#define TPackSupm 0x00000002 +#define TPackSups 1 +#define NTPadSup 0x00000004,2 /* NT PAD Access Service */ +#define NTPadSupm 0x00000004 +#define NTPadSups 2 +#define TPadSup 0x00000008,3 /* T PAD Access Service */ +#define TPadSupm 0x00000008 +#define TPadSups 3 +#define NAltSrvSup 0x00000010,4 /* No Alternate Services */ +#define NAltSrvSupm 0x00000010 +#define NAltSrvSups 4 +#define DHRSup 0x00000080,7 /* Data Halfrate support */ +#define DHRSupm 0x00000080 +#define DHRSups 7 + +/******************************************************************** + * + * Field IMEI + * + ********************************************************************/ + +typedef struct pcm_EFimei_Type /* International ME Id */ +{ + UBYTE tac1; + UBYTE tac2; + UBYTE tac3; + UBYTE fac; + UBYTE snr1; + UBYTE snr2; + UBYTE snr3; + UBYTE svn; +} EF_IMEI; + +#define SIZE_EF_IMEI 8 +#define NR_EF_IMEI 1 + +/******************************************************************** + * + * Field IMSI + * + ********************************************************************/ + +typedef struct pcm_EFimsi_Type /* International Subscriber Id */ +{ + UBYTE len; + UBYTE IMSI[8]; +} EF_IMSI; + +#define SIZE_EF_IMSI 9 +#define NR_EF_IMSI 1 + +/******************************************************************** + * + * Field SHORT MESSAGE SERVICES + * + ********************************************************************/ + +typedef struct pcm_EFsms_Type /* Short Messages */ +{ + UBYTE stat; + UBYTE rmd[175]; +} EF_SMS; + +#define SIZE_EF_SMS 176 +#ifdef _SIMULATION_ +#define NR_EF_SMS 3 +#else +#define NR_EF_SMS 1 +#endif + +/******************************************************************** + * + * Field MOBILE STATION CLASSMARK 2 + * + ********************************************************************/ + +typedef struct pcm_EFclass2_Type /* Mobile Station Classmark 2 */ +{ + UBYTE byte1; + UBYTE byte2; + UBYTE byte3; +} EF_CLASS2; + +#define SIZE_EF_CLASS2 3 +#define NR_EF_CLASS2 1 + +/* + * byte1 + */ +#define rfPwrCap 0x00000007,0 /* rf power capability */ +#define rfPwrCapm 0x00000007 +#define rfPwrCaps 0 +#define a51 0x00000008,3 /* rf power capability */ +#define a51m 0x00000008 +#define a51s 3 +#define esInd 0x00000010,4 /* ES indicator */ +#define esIndm 0x00000010 +#define esInds 4 +#define revLev 0x00000060,5 /* revision level */ +#define revLevm 0x00000060 +#define revLevs 5 + +/* + * byte2 + */ +#define freqCap 0x00000001,0 /* frequency capability */ +#define freqCapm 0x00000001 +#define freqCaps 0 +#define vgcsCap 0x00000002,1 /* VGCS notification reception */ +#define vgcsCapm 0x00000002 +#define vgcsCaps 1 +#define vbsCap 0x00000004,2 /* VBS notification reception */ +#define vbsCapm 0x00000004 +#define vbsCaps 2 +#define smCap 0x00000008,3 /* SM capability */ +#define smCapm 0x00000008 +#define smCaps 3 +#define ssScrInd 0x00000030,4 /* SS Screen Indicator */ +#define ssScrIndm 0x00000030 +#define ssScrInds 4 +#define psCap 0x00000040,6 /* PS capability */ +#define psCapm 0x00000040 +#define psCaps 6 + +/* + * byte3 + */ +#define a52 0x00000001,0 /* encryption algorithm A5/2 */ +#define a52m 0x00000001 +#define a52s 0 +#define a53 0x00000002,1 /* encryption algorithm A5/3 */ +#define a53m 0x00000002 +#define a53s 1 +#define cmspCap 0x00000004,2 /* CM service prompt */ +#define cmspCapm 0x00000004 +#define cmspCaps 2 +#define solsaCap 0x00000008,3 /* SoLSA */ +#define solsaCapm 0x00000008 +#define solsaCaps 3 +#define ucs2Cap 0x00000010,4 /* UCS2 treatment */ +#define ucs2Capm 0x00000010 +#define ucs2Caps 4 +#define lcsvaCap 0x00000020,5 /* LCS VA capability */ +#define lcsvaCapm 0x00000020 +#define lcsvaCaps 5 +#define cm3bit 0x00000080,7 /* Classmark 3 available */ +#define cm3bitm 0x00000080 +#define cm3bits 7 + + +/******************************************************************** + * + * Field MOBILE STATION CLASSMARK 3 + * + ********************************************************************/ + +typedef struct pcm_EFclass3_Type /* Mobile Station Classmark 3 */ +{ + UBYTE byte1; + UBYTE byte2; + UBYTE byte3; +}EF_CLASS3; + +#define SIZE_EF_CLASS3 3 +#define NR_EF_CLASS3 1 + +/* + * byte1 + */ +#define a54 0x00000001,0 /* encryption algorithm A5/4 */ +#define a54m 0x00000001 +#define a54s 0 +#define a55 0x00000002,1 /* encryption algorithm A5/5 */ +#define a55m 0x00000002 +#define a55s 1 +#define a56 0x00000004,2 /* encryption algorithm A5/6 */ +#define a56m 0x00000004 +#define a56s 2 +#define a57 0x00000008,3 /* encryption algorithm A5/7 */ +#define a57m 0x00000008 +#define a57s 3 +#define bnd1 0x00000010,4 /* Band 1 */ +#define bnd1m 0x00000010 +#define bnd1s 4 +#define bnd2 0x00000020,5 /* Band 2 */ +#define bnd2m 0x00000020 +#define bnd2s 5 +#define bnd3 0x00000040,6 /* Band 3 */ +#define bnd3m 0x00000040 +#define bnd3s 6 + +/* + * byte2 + */ +#define rfCap1 0x0000000f,0 /* associated RF capability 1 */ +#define rfCap1m 0x0000000f +#define rfCap1s 0 +#define rfCap2 0x000000f0,4 /* associated RF capability 2 */ +#define rfCap2m 0x000000f0 +#define rfCap2s 4 + +/* + * byte2 + */ +#define ExtMeas 0x00000010,4 /* associated RF capability 1 */ +#define ExtMeasm 0x00000010 +#define ExtMeass 4 + +/******************************************************************** + * + * Field RF Capabilities + * + ********************************************************************/ + +typedef struct pcm_EFrfcap_Type +{ + UBYTE setbands; /* set frequency bands */ + UBYTE bands; /* supported frequency bands */ + UBYTE power1; /* power classes of GSM900 and DCS1800 */ + UBYTE power2; /* power classes of PCS1900 and GSM850 */ + UBYTE power3; /* power classes of GSM400 and EGDE */ + UBYTE msGSM; /* GSM multi slot capability and classes */ + UBYTE msEDGE; /* EDGE multi slot capability and classes */ + UBYTE msHSCSD; /* HSCSD multi slot capability and classes */ + UBYTE msGPRS; /* GPRS multi slot capability and classes */ + UBYTE msECSD; /* ECSD multi slot capability and classes */ + UBYTE msEGPRS; /* EGPRS multi slot capability and classes */ + UBYTE capability1; /* divers capabilities and options */ + UBYTE capability2; /* divers capabilities and options */ + UBYTE switchmeasure; /* switching time */ + UBYTE encryption; /* A5/n encryption algorithm availability */ + UBYTE positioning; /* supported positioning methods */ +} EF_RFCAP; + +#define SIZE_EF_RFCAP 16 +#define NR_EF_RFCAP 1 + +/* + * setbands, bands + */ +#define rf_900 0x00000001,0 /* support of GSM 900 */ +#define rf_900m 0x00000001 +#define rf_900s 0 +#define rf_1800 0x00000002,1 /* support of DCS 1800 */ +#define rf_1800m 0x00000002 +#define rf_1800s 1 +#define rf_1900 0x00000004,2 /* support of PCS 1900 */ +#define rf_1900m 0x00000004 +#define rf_1900s 2 +#define rf_EGSM 0x00000008,3 /* support of E-GSM */ +#define rf_EGSMm 0x00000008 +#define rf_EGSMs 3 +#define rf_850 0x00000010,4 /* support of GSM 850 */ +#define rf_850m 0x00000010 +#define rf_850s 4 +#define rf_450 0x00000020,5 /* support of GSM 450 */ +#define rf_450m 0x00000020 +#define rf_450s 5 +#define rf_480 0x00000040,6 /* support of GSM 480 */ +#define rf_480m 0x00000040 +#define rf_480s 6 +#define rf_RGSM 0x00000080,7 /* support of R-GSM */ +#define rf_RGSMm 0x00000080 +#define rf_RGSs 7 + +/* + * power1 + */ +#define rfCap_1800 0x0000000f,0 /* associated RF capability of DCS 1800 */ +#define rfCap_1800m 0x0000000f +#define rfCap_1800s 0 +#define rfCap_900 0x000000f0,4 /* associated RF capability of GSM 900 */ +#define rfCap_900m 0x000000f0 +#define rfCap_900s 4 +/* + * power2 + */ +#define rfCap_850 0x0000000f,0 /* associated RF capability of GSM 850 */ +#define rfCap_850m 0x0000000f +#define rfCap_850s 0 +#define rfCap_1900 0x000000f0,4 /* associated RF capability of PCS 1900 */ +#define rfCap_1900m 0x000000f0 +#define rfCap_1900s 4 +/* + * power3 + */ +#define rfCap_EDGE2 0x00000003,0 /* associated RF capability 2 of EDGE */ +#define rfCap_EDGE2m 0x00000003 +#define rfCap_EDGE2s 0 +#define rfCap_EDGE1 0x0000000c,2 /* associated RF capability 1 of EDGE */ +#define rfCap_EDGE1m 0x0000000c +#define rfCap_EDGE1s 2 +#define rfCap_400 0x000000f0,4 /* associated RF capability of GSM 450,480*/ +#define rfCap_400m 0x000000f0 +#define rfCap_400s 4 +/* + * msGSM, msEDGE, msHSCSD, msGPRS, msECSD, msEGPRS + */ +#define rfCap_DTMSC 0x00000003,0 /* Multi Slot Sub-Class (only msGPRS+msEGPRS) */ +#define rfCap_DTMSCm 0x00000003 +#define rfCap_DTMSCs 0 +#define rfCap_DTM 0x00000004,2 /* Support of DTM (only msGPRS+msEGPRS) */ +#define rfCap_DTMm 0x00000004 +#define rfCap_DTMs 2 +#define rfCap_MSC 0x000000f8,3 /* Multi Slot Class */ +#define rfCap_MSCm 0x000000f8 +#define rfCap_MSCs 3 +/* + * capability1 + */ +#define rfCap_mac 0x00000001,0 /* Dynamic and fixed allocation */ +#define rfCap_macm 0x00000001 +#define rfCap_macs 0 +#define rfCap_mod 0x00000002,1 /* EDGE modulation capability */ +#define rfCap_modm 0x00000002 +#define rfCap_mods 1 +#define rfCap_cmsp 0x00000004,2 /* CM service prompt */ +#define rfCap_cmspm 0x00000004 +#define rfCap_cmsps 2 +#define rfCap_solsa 0x00000008,3 /* SoLSA capability */ +#define rfCap_solsam 0x00000008 +#define rfCap_solsas 3 +#define rfCap_lcsva 0x00000010,4 /* LCS value added location request noti. */ +#define rfCap_lcsvam 0x00000010 +#define rfCap_lcsvas 4 +#define rfCap_ppsms 0x00000020,5 /* MT point to point SMS */ +#define rfCap_ppsmsm 0x00000020 +#define rfCap_ppsmss 5 +#define rfCap_ps 0x00000040,6 /* pseudo synchronization capability */ +#define rfCap_psm 0x00000040 +#define rfCap_pss 6 +#define rfCap_esind 0x00000080,7 /* controlled early class sending */ +#define rfCap_esindm 0x00000080 +#define rfCap_esinds 7 +/* + * capability2 + */ +#define rfCap_ssc 0x00000003,0 /* SS screening indicator */ +#define rfCap_sscm 0x00000003 +#define rfCap_sscs 0 +#define rfCap_usc2 0x00000004,2 /* UCS2 encoded */ +#define rfCap_usc2m 0x00000004 +#define rfCap_usc2s 2 +#define rfCap_vgcs 0x00000008,3 /* VGCS capability */ +#define rfCap_vgcsm 0x00000008 +#define rfCap_vgcss 3 +#define rfCap_vbs 0x00000010,4 /* VBS capability */ +#define rfCap_vbsm 0x00000010 +#define rfCap_vbss 4 +#define rfCap_compact 0x00000020,5 /* COMPACT interference measurement */ +#define rfCap_compactm 0x00000020 +#define rfCap_compacts 5 +#define rfCap_extmeas 0x00000040,6 /* extendend measurement */ +#define rfCap_extmeasm 0x00000040 +#define rfCap_extmeass 6 +#define rfCap_meas 0x00000080,7 /* values about measurement capability */ +#define rfCap_measm 0x00000080 +#define rfCap_meass 7 +/* + * switchmeasure + */ +#define rfCap_smt 0x0000000f,0 /* time switch-power measurement */ +#define rfCap_smtm 0x0000000f +#define rfCap_smts 0 +#define rfCap_smst 0x000000f0,4 /* time switch-power measurement-switch */ +#define rfCap_smstm 0x000000f0 +#define rfCap_smsts 4 +/* + * encryption + */ +#define rfCap_A5_7 0x00000002,1 /* encryption algorithm A5/7 */ +#define rfCap_A5_7m 0x00000002 +#define rfCap_A5_7s 1 +#define rfCap_A5_6 0x00000004,2 /* encryption algorithm A5/6 */ +#define rfCap_A5_6m 0x00000004 +#define rfCap_A5_6s 2 +#define rfCap_A5_5 0x00000008,3 /* encryption algorithm A5/5 */ +#define rfCap_A5_5m 0x00000008 +#define rfCap_A5_5s 3 +#define rfCap_A5_4 0x00000010,4 /* encryption algorithm A5/4 */ +#define rfCap_A5_4m 0x00000010 +#define rfCap_A5_4s 4 +#define rfCap_A5_3 0x00000020,5 /* encryption algorithm A5/3 */ +#define rfCap_A5_3m 0x00000020 +#define rfCap_A5_3s 5 +#define rfCap_A5_2 0x00000040,6 /* encryption algorithm A5/2 */ +#define rfCap_A5_2m 0x00000040 +#define rfCap_A5_2s 6 +#define rfCap_A5_1 0x00000080,7 /* encryption algorithm A5/1 */ +#define rfCap_A5_1m 0x00000080 +#define rfCap_A5_1s 7 +/* + * positioning + */ +#define rfCap_eeda 0x00000002,1 /* EGPRS Extended Dynamic Allocation Capability */ +#define rfCap_eedam 0x00000002 +#define rfCap_eedas 1 +#define rfCap_geda 0x00000004,2 /* GPRS Extended Dynamic Allocation Capability */ +#define rfCap_gedam 0x00000004 +#define rfCap_gedas 2 +#define rfCap_cgps 0x00000008,3 /* conventional GPS */ +#define rfCap_cgpsm 0x00000008 +#define rfCap_cgpss 3 +#define rfCap_bgps 0x00000010,4 /* based GPS */ +#define rfCap_bgpsm 0x00000010 +#define rfCap_bgpss 4 +#define rfCap_agps 0x00000020,5 /* assisted GPS */ +#define rfCap_agpsm 0x00000020 +#define rfCap_agpss 5 +#define rfCap_beotd 0x00000040,6 /* based E-OTD */ +#define rfCap_beotdm 0x00000040 +#define rfCap_beotds 6 +#define rfCap_aeotd 0x00000080,7 /* assisted E-OTD */ +#define rfCap_aeotdm 0x00000080 +#define rfCap_aeotds 7 + +/******************************************************************** + * + * Field MOBILE SETUP + * + ********************************************************************/ + +typedef struct pcm_EFmssup_Type /* Mobile Setup */ +{ + UBYTE lng1; + UBYTE lng2; + UBYTE lng3; + UBYTE feat1; + UBYTE feat2; +}EF_MSSUP; + +#define SIZE_EF_MSSUP 5 +#define NR_EF_MSSUP 1 + +/* + * lng1 + */ +#define eng 0x00000001,0 /* English */ +#define engm 0x00000001 +#define engs 0 +#define fre 0x00000002,1 /* French */ +#define frem 0x00000002 +#define fres 1 +#define ger 0x00000004,2 /* German */ +#define germ 0x00000004 +#define gers 2 +#define dut 0x00000008,3 /* Dutch */ +#define dutm 0x00000008 +#define duts 3 +#define ita 0x00000010,4 /* Italian */ +#define itam 0x00000010 +#define itas 4 +#define spa 0x00000020,5 /* Spanish */ +#define spam 0x00000020 +#define spas 5 +#define swe 0x00000040,6 /* Swedish */ +#define swem 0x00000040 +#define swes 6 +#define por 0x00000080,7 /* Portuguese */ +#define porm 0x00000080 +#define pors 7 + +/* + * lng2 + */ +#define fin 0x00000001,0 /* Finnish */ +#define finm 0x00000001 +#define fins 0 +#define nor 0x00000002,1 /* Norwegian */ +#define norm 0x00000002 +#define nors 1 +#define gre 0x00000004,2 /* Greek */ +#define grem 0x00000004 +#define gres 2 +#define tur 0x00000008,3 /* Turkish */ +#define turm 0x00000008 +#define turs 3 +#define hun 0x00000010,4 /* Hungarian */ +#define hunm 0x00000010 +#define huns 4 +#define slo 0x00000020,5 /* Slovenian */ +#define slom 0x00000020 +#define slos 5 +#define pol 0x00000040,6 /* Polish */ +#define polm 0x00000040 +#define pols 6 +#define rus 0x00000080,7 /* Russian */ +#define rusm 0x00000080 +#define russ 7 + +/* + * lng3 + */ +#define ind 0x00000001,0 /* Indonesian */ +#define indm 0x00000001 +#define inds 0 +#define cze 0x00000002,1 /* Czech */ +#define czem 0x00000002 +#define czes 1 +#define chi 0x00000004,2 /* Chinese */ +#define chim 0x00000004 +#define chis 2 +#define can 0x00000008,3 /* Cantonese */ +#define canm 0x00000008 +#define cans 3 +#define man 0x00000010,4 /* Mandarin */ +#define manm 0x00000010 +#define mans 4 +#define tai 0x00000020,5 /* Taiwanese */ +#define taim 0x00000020 +#define tais 5 +#define ara 0x00000040,6 /* Arabic */ +#define aram 0x00000040 +#define aras 6 + +/* + * feat + */ +#define AoC 0x00000001,0 /* Advice of Charge */ +#define AoCm 0x00000001 +#define AoCs 0 +#define DTMF 0x00000002,1 /* DTMF */ +#define DTMFm 0x00000002 +#define DTMFs 1 +#define CF 0x00000004,2 /* Call Forwarding */ +#define CFm 0x00000004 +#define CFs 2 +#define CB 0x00000008,3 /* Call Barring */ +#define CBm 0x00000008 +#define CBs 3 +#define USSD 0x00000010,4 /* USSD */ +#define USSDm 0x00000010 +#define USSDs 4 +#define ETC 0x00000020,5 /* ETC */ +#define ETCm 0x00000020 +#define ETCs 5 +#define IRDA 0x00000040,6 /* IRDA */ +#define IRDAm 0x00000040 +#define IRDAs 6 + +/******************************************************************** + * + * Field Current language (CLNG) + * + ********************************************************************/ + +#define SIZE_EF_CLNG_DATA 2 + +typedef struct pcm_EFclng_Type +{ + UBYTE data[SIZE_EF_CLNG_DATA]; /* current language in ME */ +} EF_CLNG; + +#define SIZE_EF_CLNG SIZE_EF_CLNG_DATA +#define NR_EF_CLNG 1 + +/******************************************************************** + * + * Field MOBILE STATION SETTTINGS + * + ********************************************************************/ + +typedef struct pcm_EFmsset_Type /* Mobile Setting */ +{ + UBYTE buzzer1; + UBYTE buzzer2; + UBYTE buzzer3; + UBYTE audio; + UBYTE misc; + UBYTE display; + UBYTE language; + UBYTE recent_ldn_ref; + UBYTE recent_lrn_ref; + UBYTE recent_upn_ref; +} EF_MSSET; + +#define SIZE_EF_MSSET 10 +#define NR_EF_MSSET 1 + +/* + * buzzer 1 + */ +#define calltype 0x00000007,0 /* ringer type incoming calls */ +#define calltypem 0x00000007 +#define calltypes 0 +#define callvol 0x00000038,3 /* ringer volume incoming calls */ +#define callvolm 0x00000038 +#define callvols 3 +#define vib 0x000000c0,6 /* vibrator */ +#define vibm 0x000000c0 +#define vibs 6 + +/* + * buzzer 2 + */ +#define msgtype 0x00000007,0 /* ringer type messages */ +#define msgtypem 0x00000007 +#define msgtypes 0 +#define msgvol 0x00000038,3 /* ringer volume messages */ +#define msgvolm 0x00000038 +#define msgvols 3 + +/* + * buzzer 3 + */ +#define keytone 0x00000003,0 /* key tone mode */ +#define keytonem 0x00000003 +#define keytones 0 +#define batw 0x00000004,2 /* low battery warning */ +#define batwm 0x00000004 +#define batws 2 + +/* + * audio + */ +#define lnamp 0x00000007,0 /* microphone amplification */ +#define lnampm 0x00000007 +#define lnamps 0 +#define outvol 0x00000038,3 /* output volume */ +#define outvolm 0x00000038 +#define outvols 3 +#define ext 0x00000040,6 /* external audio */ +#define extm 0x00000040 +#define exts 6 +#define voicerec 0x00000080,7 /* voice recording */ +#define voicerecm 0x00000080 +#define voicerecs 7 + +/* + * miscellenous + */ +#define pmod 0x00000001,0 /* PLMN selection mode */ +#define pmodm 0x00000001 +#define pmods 0 +#define clir 0x00000002,1 /* CLIR */ +#define clirm 0x00000002 +#define clirs 1 +#define clip 0x00000004,2 /* CLIP */ +#define clipm 0x00000004 +#define clips 2 +#define calinf 0x00000008,3 /* call information display */ +#define calinfm 0x00000008 +#define calinfs 3 +#define redial 0x00000030,4 /* redial mode */ +#define redialm 0x00000030 +#define redials 4 + +/* + * display + */ +#define ctrt 0x00000007,0 /* contrast */ +#define ctrtm 0x00000007 +#define ctrts 0 +#define brgt 0x00000018,3 /* brightness */ +#define brgtm 0x00000018 +#define brgts 3 +#define bckdr 0x000000E0,5 /* duration for back light */ +#define bckdrm 0x000000E0 +#define bckdrs 5 + +// Jun 14, 2005 REF: MMI-FIX-30439 x0018858 +//Begin 30439 +/******************************************************************** + * + * Field Homezone cache + * + ********************************************************************/ + +typedef struct pcm_EFhzcache_Type +{ + UBYTE cid[2]; + UBYTE zone; +} EF_HZCACHE; + +#define SIZE_EF_HZCACHE 3 +#define NR_EF_HZCACHE 5 + +/******************************************************************** + * + * Field LAST MOC NUMBERS - LDN + * + ********************************************************************/ +//end 30439 + +typedef struct pcm_EFldn_Type /* Last Dialed Numbers */ +{ + UBYTE calDrMsb; + UBYTE calDrLsb; + UBYTE year; + UBYTE month; + UBYTE day; + UBYTE hour; + UBYTE minute; + UBYTE second; + UBYTE len; /* length of BCD number */ + UBYTE numTp; + UBYTE dldNum[10]; /* dialed number */ + UBYTE ccp; /* capability/configuration id */ + UBYTE ext1; /* extension1 record identifier */ +} EF_LDN; + +#define SIZE_EF_LDN 22 +#define NR_EF_LDN 1 + +/* + * numTp + */ +#define numTp_npi 0x0000000F,0 /* numbering plan identification */ +#define numTp_npim 0x0000000F +#define numTp_npis 0 +#define numTp_ton 0x00000070,4 /* Type of number */ +#define numTp_tonm 0x00000070 +#define numTp_tons 4 + +/******************************************************************** + * + * Field LAST RECEIVED NUMBERS + * + ********************************************************************/ + +typedef struct pcm_EFlrn_Type /* Last Received Numbers */ +{ + UBYTE calDrMsb; + UBYTE calDrLsb; + UBYTE year; + UBYTE month; + UBYTE day; + UBYTE hour; + UBYTE minute; + UBYTE second; + UBYTE id; + UBYTE len; /* length of BCD number */ + UBYTE numTp; + UBYTE dldNum[10]; /* dialed number */ + UBYTE ccp; /* capability/configuration id */ + UBYTE ext1; /* extension1 record identifier */ +} EF_LRN; + +#define SIZE_EF_LRN 23 +#define NR_EF_LRN 1 + +/******************************************************************** + * + * Field LAST MISSED NUMBERS + * + ********************************************************************/ + +typedef struct pcm_EFlmn_Type /* Last Missed Numbers */ +{ + UBYTE year; + UBYTE month; + UBYTE day; + UBYTE hour; + UBYTE minute; + UBYTE second; + UBYTE id; + UBYTE len; /* length of BCD number */ + UBYTE numTp; + UBYTE dldNum[10]; /* dialed number */ + UBYTE ccp; /* capability/configuration id */ + UBYTE ext1; /* extension1 record identifier */ +} EF_LMN; + +#define SIZE_EF_LMN 21 +#define NR_EF_LMN 1 + +/******************************************************************** + * + * Field USER PERSONAL NUMBERS + * + ********************************************************************/ + +typedef struct pcm_EFupn_Type /* User Personal Numbers */ +{ + UBYTE alphId[10]; + UBYTE len; + UBYTE numTp; /* bitmap same as EF_LDN */ + UBYTE usrNum[10]; + UBYTE ccp; + UBYTE ext1; +} EF_UPN; + +#define SIZE_EF_UPN 24 +#define NR_EF_UPN 1 + +/******************************************************************** + * + * Field MAILBOX NUMBERS + * + ********************************************************************/ + +typedef struct pcm_EFmbn_Type /* Mailbox Numbers */ +{ + UBYTE alphId[10]; + UBYTE len; + UBYTE numTp; /* bitmap same as EF_LDN */ + UBYTE mbNum[10]; +} EF_MBN; + +#define SIZE_EF_MBN 22 +#define NR_EF_MBN 4 + + +/******************************************************************** + * + * Field Voice Mail Number + * + ********************************************************************/ + +/* + * note that with new 04.08 the called party bcd number of the CC + * protocol can have up to 43 octets, 3 are used for other things + * than the BCD coded digits + */ +#define MAX_CALLED_PARTY_BCD_NO_OCTETS 40 +typedef struct pcm_EFvmn_Type /* Voice mail Number */ +{ + UBYTE vmNum[MAX_CALLED_PARTY_BCD_NO_OCTETS + 1]; + /* implementation uses delimiter of 0xFF */ + UBYTE numTp; + +} EF_VMN; + +#define SIZE_EF_VMN (MAX_CALLED_PARTY_BCD_NO_OCTETS + 1 + 1) +#define NR_EF_VMN 1 + + +/******************************************************************** + * + * Field CALL TIMER + * + ********************************************************************/ + +typedef struct pcm_EFctim_Type /* Call Timer */ +{ + UBYTE moVcDrHm[4]; + UBYTE mtVcDrHm[4]; + UBYTE moDtDrHm[4]; + UBYTE mtDtDrHm[4]; + UBYTE moFxDrHm[4]; + UBYTE mtFxDrHm[4]; + UBYTE moVcDrRm[4]; + UBYTE mtVcDrRm[4]; + UBYTE moDtDrRm[4]; + UBYTE mtDtDrRm[4]; + UBYTE moFxDrRm[4]; + UBYTE mtFxDrRm[4]; +} EF_CTIM; + +#define SIZE_EF_CTIM 48 +#define NR_EF_CTIM 1 + +/******************************************************************** + * + * Field CALL COUNTER + * + ********************************************************************/ + +typedef struct pcm_EFccnt_Type /* Call Counter */ +{ + UBYTE total[4]; + UBYTE moVcDrHm[4]; + UBYTE mtVcDrHm[4]; + UBYTE moDtDrHm[4]; + UBYTE mtDtDrHm[4]; + UBYTE moFxDrHm[4]; + UBYTE mtFxDrHm[4]; + UBYTE moVcDrRm[4]; + UBYTE mtVcDrRm[4]; + UBYTE moDtDrRm[4]; + UBYTE mtDtDrRm[4]; + UBYTE moFxDrRm[4]; + UBYTE mtFxDrRm[4]; +} EF_CCNT; + +#define SIZE_EF_CCNT 52 +#define NR_EF_CCNT 1 + +/******************************************************************** + * + * Field EMERGENCY CALL CODES + * + ********************************************************************/ + + +typedef struct pcm_EFecc_Type /* Emergency Call Codes */ +{ + UBYTE ecc1[3]; /* emergency call code */ + UBYTE ecc2[3]; + UBYTE ecc3[3]; + UBYTE ecc4[3]; + UBYTE ecc5[3]; +} EF_ECC; + +#define SIZE_EF_ECC 15 +#define NR_EF_ECC 1 + +/******************************************************************** + * + * Field ORGANIZER AND ALARM + * + ********************************************************************/ + + +typedef struct pcm_EForg_Type /* Organizer and Alarm */ +{ + UBYTE date[6]; /* bitmap same as EF_LDN */ + UBYTE alrm; + UBYTE alphMem[16]; /* alpha memo */ +} EF_ORG; + +#define SIZE_EF_ORG 23 +#define NR_EF_ORG 1 + +/* + * alrm + */ +#define alrm_stat 0x00000001,0 +#define alrm_statm 0x00000001 +#define alrm_stats 0 +#define alrm_type 0x0000000E,1 +#define alrm_typem 0x0000000E +#define alrm_types 1 + +/******************************************************************** + * + * Field CAPABILITY AND CONFIGURATION PARAMETERS + * + ********************************************************************/ + +typedef struct pcm_EFccp_Type /* Capability and Configuration Parameters */ +{ + UBYTE usrRate; /* user rate */ + UBYTE bearServ; /* bearer service */ + UBYTE conElem; /* connection element */ + UBYTE stopBits; /* stop bits */ + UBYTE dataBits; /* data bits */ + UBYTE parity; /* parity */ + UBYTE flowCntrl; /* flow control */ +} EF_CCP; + +#define SIZE_EF_CCP 7 +#define NR_EF_CCP 1 + +/******************************************************************** + * + * Field EXTENSION 1 + * + ********************************************************************/ + +typedef struct pcm_EFext1_Type /* Extension 1 */ +{ + UBYTE recTp; /* record type */ + UBYTE extDat[11]; /* extension data */ + UBYTE id; /* identifier */ +} EF_EXT1; + +#define SIZE_EF_EXT1 13 +#define NR_EF_EXT1 1 + +/******************************************************************** + * + * Field SIM LOCK and Extended SIM LOCK (use alternativly) + * + ********************************************************************/ + +typedef struct pcm_EFsimlck_Type /* SIM Lock */ +{ + UBYTE locks1; /* lock status */ + UBYTE locks2; + UBYTE cnt; /* lock counter */ + UBYTE maxcnt; /* lock counter */ + UBYTE PKey[8]; /* SIM control key */ + UBYTE SPKey[8]; /* SP control key */ + UBYTE NSKey[8]; /* NS control key */ + UBYTE CKey[8]; /* corporate control key */ + UBYTE NKey[8]; /* network control key */ + UBYTE len_imsi; /* bytes of IMSI */ + UBYTE imsi[15]; /* IMSI */ + UBYTE gidl1; /* Group Identifier Level 1 */ + UBYTE gidl2; /* Group Identifier Level 1 */ +} EF_SIMLCK; + +#define SIZE_EF_SIMLCK 62 +#define NR_EF_SIMLCK 1 + +typedef struct pcm_EFsimlckext_Type /* Extended SIM Lock */ +{ + UBYTE locks1; /* lock status */ + UBYTE locks2; + UBYTE cnt; /* lock counter */ + UBYTE maxcnt; /* lock counter */ + UBYTE PKey[8]; /* SIM control key */ + UBYTE SPKey[8]; /* SP control key */ + UBYTE NSKey[8]; /* NS control key */ + UBYTE CKey[8]; /* corporate control key */ + UBYTE NKey[8]; /* network control key */ + UBYTE len_p_imsi; /* bytes of IMSI P-Lock */ + UBYTE p_imsi[15]; /* IMSI P-Lock */ + UBYTE len_sp_imsi; /* bytes of IMSI SP-Lock */ + UBYTE sp_imsi[15]; /* IMSI SP-Lock */ + UBYTE len_ns_imsi; /* bytes of IMSI NS-Lock */ + UBYTE ns_imsi[15]; /* IMSI NS-Lock */ + UBYTE len_c_imsi; /* bytes of IMSI C-Lock */ + UBYTE c_imsi[15]; /* IMSI C-Lock */ + UBYTE len_n_imsi; /* bytes of IMSI N-Lock */ + UBYTE n_imsi[15]; /* IMSI N-Lock */ + UBYTE len_u_imsi; /* bytes of IMSI U-Lock */ + UBYTE u_imsi[15]; /* IMSI U-Lock */ + UBYTE gidl1; /* Group Identifier Level 1 */ + UBYTE gidl2; /* Group Identifier Level 1 */ +} EF_SIMLCKEXT; + +#define SIZE_EF_SIMLCKEXT 142 +#define NR_EF_SIMLCKEXT 1 + +/* + * locks1 + */ +#define plock 0x00000003,0 +#define plockm 0x00000003 +#define plocks 0 +#define nlock 0x0000000C,2 +#define nlockm 0x0000000C +#define nlocks 2 +#define nslock 0x00000030,4 +#define nslockm 0x00000030 +#define nslocks 4 +#define spslock 0x000000C0,6 +#define splockm 0x000000C0 +#define splocks 6 + +/* + * locks2 + */ +#define clock 0x00000003,0 +#define clockm 0x00000003 +#define clocks 0 +#define flock 0x0000000C,2 +#define flockm 0x0000000C +#define flocks 2 +/* +#define reserved1 0x00000030,4 +#define reserved1m 0x00000030 +#define reserved1s 4 +#define reserved2 0x000000C0,6 +#define reserved2m 0x000000C0 +#define reserved2s 6 +*/ + +/******************************************************************** + * + * Field MAINTENANCE INFORMATION + * + ********************************************************************/ + +/* + * T.B.D. + */ +#define SIZE_EF_MAIN 8 +#define NR_EF_MAIN 1 + +/******************************************************************** + * + * Field SPECIAL FUNCTION KEY + * + ********************************************************************/ + +/* + * T.B.D. + */ +#define SIZE_EF_SFK 8 +#define NR_EF_SFK 1 + +/******************************************************************** + * + * Field FAULT CONDITIONS + * + ********************************************************************/ + +/* + * T.B.D. + */ +#define SIZE_EF_FAULT 8 +#define NR_EF_FAULT 1 + +/******************************************************************** + * + * Field DEBUG INFORMATION + * + ********************************************************************/ + +/* + * T.B.D. + */ +#define SIZE_EF_DEBUG 8 +#define NR_EF_DEBUG 1 + +/******************************************************************** + * + * Field POWER MANAGEMENT + * + ********************************************************************/ + +/* + * T.B.D. + */ +#define SIZE_EF_POWER 8 +#define NR_EF_POWER 1 + + /******************************************************************** + * + * Field KEYBOARD MAPPING + * + ********************************************************************/ + +typedef struct pcm_EFkbd_Type /* Keyboard Mapping */ +{ + UBYTE logical_key [32]; /* logical key */ + UBYTE raw_key [32]; /* raw key */ +} EF_KBD; + +#define SIZE_EF_KEYB 64 +#define NR_EF_KEYB 1 + +/******************************************************************** + * + * Field RADIO PARAMETERS + * + ********************************************************************/ + +/* + * T.B.D. + */ +#define SIZE_EF_RADIO 8 +#define NR_EF_RADIO 1 + +/******************************************************************** + * + * Manufacturer + * + ********************************************************************/ + +#define SIZE_EF_CGMI_DATA 20 + +typedef struct pcm_EFcgmi_Type /* Manufacturer */ +{ + UBYTE data[SIZE_EF_CGMI_DATA]; /* Name of Manufacturer */ +} EF_CGMI; + +#define SIZE_EF_CGMI SIZE_EF_CGMI_DATA +#define NR_EF_CGMI 1 + +/******************************************************************** + * + * Identification Information + * + ********************************************************************/ + +#define SIZE_EF_INF0_DATA 20 + +typedef struct pcm_EFinf0_Type +{ + UBYTE data[SIZE_EF_INF0_DATA]; /*Identification Information*/ +} EF_INF0; + +#define SIZE_EF_INF0 SIZE_EF_INF0_DATA +#define NR_EF_INF0 2 + +/******************************************************************** + * + * Model + * + ********************************************************************/ + +#define SIZE_EF_CGMM_DATA 20 + +typedef struct pcm_EFcgmm_Type /* Model */ +{ + UBYTE data[SIZE_EF_CGMM_DATA]; /* Name of Product */ +} EF_CGMM; + +#define SIZE_EF_CGMM SIZE_EF_CGMM_DATA +#define NR_EF_CGMM 1 + +/******************************************************************** + * + * Revision + * + ********************************************************************/ + +#define SIZE_EF_CGMR_DATA 20 + +typedef struct pcm_EFcgmr_Type /* Revision */ +{ + UBYTE data[SIZE_EF_CGMR_DATA]; /* Version of Product */ +} EF_CGMR; + +#define SIZE_EF_CGMR SIZE_EF_CGMR_DATA +#define NR_EF_CGMR 1 + +/******************************************************************** + * + * Product Serial Number + * + ********************************************************************/ + +#define SIZE_EF_CGSN_DATA 20 + +typedef struct pcm_EFcgsn_Type /* Product Serial Number */ +{ + UBYTE data[SIZE_EF_CGSN_DATA]; /* Serial Number of Product */ +} EF_CGSN; + +#define SIZE_EF_CGSN SIZE_EF_CGSN_DATA +#define NR_EF_CGSN 1 + +/******************************************************************** + * + * SMS Profile + * + ********************************************************************/ + +#define SIZE_EF_SMSPRFL_SCA 20 +#define SIZE_EF_SMSPRFL_MIDS 40 +#define SIZE_EF_SMSPRFL_DCSS 20 +#define SIZE_EF_SMSPRFL_VPABS 14 + +#define EF_SMSPRFL_VLD 0x00 +#define EF_SMSPRFL_INVLD 0xFF + +typedef struct pcm_EFsmsprfl_Type /* SMS Profile */ +{ + UBYTE vldFlag; /* Valid Flag */ + UBYTE CSCAsca[SIZE_EF_SMSPRFL_SCA]; /* Service Center Address */ + UBYTE CSCAlenSca; /* Length of Service Center Address */ + UBYTE CSCAton; /* Type of Number */ + UBYTE CSCAnpi; /* Numbering Plan Identification */ + UBYTE CSCBmode; /* Mode */ + UBYTE CSCBmids[SIZE_EF_SMSPRFL_MIDS]; /* Message Identifier */ + UBYTE CSCBdcss[SIZE_EF_SMSPRFL_DCSS]; /* Data Coding Schemes */ + UBYTE CSMPfo; /* First Octet */ + UBYTE CSMPvprel; /* Validity Period Relative */ + UBYTE CSMPvpabs[SIZE_EF_SMSPRFL_VPABS]; /* Validity Period Absolute */ + UBYTE CSMPpid; /* Protocol Identifier */ + UBYTE CSMPdcs; /* Data Coding Scheme */ +} EF_SMSPRFL; + +#define SIZE_EF_SMSPRFL ( SIZE_EF_SMSPRFL_SCA + \ + SIZE_EF_SMSPRFL_MIDS + \ + SIZE_EF_SMSPRFL_DCSS + \ + SIZE_EF_SMSPRFL_VPABS + 9 ) +#define NR_EF_SMSPRFL 2 + +/******************************************************************** + * + * PLMN Identifier + * + ********************************************************************/ + +#define SIZE_EF_PLMN_LONG 20 +#define SIZE_EF_PLMN_SHRT 10 +#define SIZE_EF_PLMN_MCC 2 +#define SIZE_EF_PLMN_MNC 2 + +typedef struct pcm_EFplmn_Type /* PLMN Identifier */ +{ + UBYTE mcc[SIZE_EF_PLMN_MCC]; /* Mobile country code */ + UBYTE mnc[SIZE_EF_PLMN_MNC]; /* Mobile network code */ + UBYTE lngNam[SIZE_EF_PLMN_LONG]; /* Long operator name */ + UBYTE shrtNam[SIZE_EF_PLMN_SHRT]; /* Short operator name */ +} EF_PLMN; + +#define SIZE_EF_PLMN ( SIZE_EF_PLMN_MCC + SIZE_EF_PLMN_MCC + \ + SIZE_EF_PLMN_LONG + SIZE_EF_PLMN_SHRT ) +#define NR_EF_PLMN 2 + +/******************************************************************** + * + * Field BCCH Information + * + ********************************************************************/ + +typedef struct pcm_EFbcchinfo_Type /* BCCH information */ +{ + UBYTE bcch_info[54]; /* content */ +} EF_BCCHINFO; + +#define SIZE_EF_BCCHINFO 54 +#define NR_EF_BCCHINFO 1 + +/******************************************************************** + * + * Field alternate line service + * + ********************************************************************/ + +typedef struct pcm_EFals_Type /* alternate line service */ +{ + UBYTE selLine; + UBYTE statLine; +} EF_ALS; + +#define SIZE_EF_ALS 2 +#define NR_EF_ALS 1 + +/******************************************************************** + * + * Field Location Information (GPRS) + * + ********************************************************************/ + +typedef struct pcm_EFlocgprs_Type /* GPRS Location information */ +{ + UBYTE ptmsi[4]; + UBYTE ptmsi_signature[3]; + UBYTE rai[6]; + UBYTE ra_status; +} EF_LOCGPRS; + +#define SIZE_EF_LOCGPRS sizeof (EF_LOCGPRS) +#define NR_EF_LOCGPRS 1 + +/******************************************************************** + * + * Field Ciphering Key (GPRS) + * + ********************************************************************/ + +typedef struct pcm_EFkcgprs_Type /* GPRS Ciphering key */ +{ + UBYTE kc[8]; + UBYTE cksn; +} EF_KCGPRS; + +#define SIZE_EF_KCGPRS sizeof (EF_KCGPRS) +#define NR_EF_KCGPRS 1 + +/******************************************************************** + * + * Field IMSI (GPRS, only for validation of GPRS related fields) + * + ********************************************************************/ + +typedef struct pcm_EFimsigprs_Type /* International Subscriber Id */ +{ + UBYTE len; + UBYTE IMSI[8]; +} EF_IMSIGPRS; + +#define SIZE_EF_IMSIGPRS sizeof (EF_IMSIGPRS) +#define NR_EF_IMSIGPRS 1 + +/******************************************************************** + * + * Prototypes + * + ********************************************************************/ + +#if defined (NEW_FRAME) +/* + * to achieve backward compatibility with older definitions + */ +#define drv_SignalCB_Type T_DRV_CB_FUNC +#define drv_SignalID_Type T_DRV_SIGNAL +#define T_VSI_THANDLE USHORT +#endif + +EXTERN drv_Return_Type pcm_Init (void); +EXTERN void pcm_Exit (void); +EXTERN drv_Return_Type pcm_ReadFile (UBYTE * in_FileName, + USHORT in_BufferSize, + UBYTE * out_BufferPtr, + UBYTE * out_VersionPtr); +EXTERN drv_Return_Type pcm_GetFileInfo (UBYTE * in_FileName, + pcm_FileInfo_Type * out_FileInfoPtr); +EXTERN drv_Return_Type pcm_ReadRecord (UBYTE * in_FileName, + USHORT in_Record, + USHORT in_BufferSize, + UBYTE * out_BufferPtr, + UBYTE * out_VersionPtr, + USHORT * out_MaxRecordsPtr); +EXTERN drv_Return_Type pcm_WriteFile (UBYTE * in_FileName, + USHORT in_BufferSize, + UBYTE * in_BufferPtr); +EXTERN drv_Return_Type pcm_WriteRecord (UBYTE * in_FileName, + USHORT in_Record, + USHORT in_BufferSize, + UBYTE * in_BufferPtr); +EXTERN drv_Return_Type pcm_Flush (void); + + +#endif + +