FreeCalypso > hg > fc-magnetite
view src/condat3/com/include/pcm.h @ 600:8f50b202e81f
board preprocessor conditionals: prep for more FC hw in the future
This change eliminates the CONFIG_TARGET_FCDEV3B preprocessor symbol and
all preprocessor conditionals throughout the code base that tested for it,
replacing them with CONFIG_TARGET_FCFAM or CONFIG_TARGET_FCMODEM. These
new symbols are specified as follows:
CONFIG_TARGET_FCFAM is intended to cover all hardware designs created by
Mother Mychaela under the FreeCalypso trademark. This family will include
modem products (repackagings of the FCDEV3B, possibly with RFFE or even
RF transceiver changes), and also my desired FreeCalypso handset product.
CONFIG_TARGET_FCMODEM is intended to cover all FreeCalypso modem products
(which will be firmware-compatible with the FCDEV3B if they use TI Rita
transceiver, or will require a different fw build if we switch to one of
Silabs Aero transceivers), but not the handset product. Right now this
CONFIG_TARGET_FCMODEM preprocessor symbol is used to conditionalize
everything dealing with MCSI.
At the present moment the future of FC hardware evolution is still unknown:
it is not known whether we will ever have any beyond-FCDEV3B hardware at all
(contingent on uncertain funding), and if we do produce further FC hardware
designs, it is not known whether they will retain the same FIC modem core
(triband), if we are going to have a quadband design that still retains the
classic Rita transceiver, or if we are going to switch to Silabs Aero II
or some other transceiver. If we produce a quadband modem that still uses
Rita, it will run exactly the same fw as the FCDEV3B thanks to the way we
define TSPACT signals for the RF_FAM=12 && CONFIG_TARGET_FCFAM combination,
and the current fcdev3b build target will be renamed to fcmodem. OTOH, if
that putative quadband modem will be Aero-based, then it will require a
different fw build target, the fcdev3b target will stay as it is, and the
two targets will both define CONFIG_TARGET_FCFAM and CONFIG_TARGET_FCMODEM,
but will have different RF_FAM numbers. But no matter which way we are
going to evolve, it is not right to have conditionals on CONFIG_TARGET_FCDEV3B
in places like ACI, and the present change clears the way for future
evolution.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 01 Apr 2019 01:05:24 +0000 |
parents | c8bd5a927942 |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | 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 #ifdef TI_PS_CUSTOM_RFCAP_DEFAULT EXTERN U8 custom_rfcap_default[SIZE_EF_RFCAP]; #endif /* TI_PS_CUSTOM_RFCAP_DEFAULT */ /******************************************************************** * * 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