FreeCalypso > hg > fc-tourmaline
comparison src/cs/drivers/drv_app/ffs/pcm.h @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 16 Oct 2020 06:23:26 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:4e78acac3d88 |
|---|---|
| 1 /* | |
| 2 +--------------------------------------------------------------------+ | |
| 3 | PROJECT: GSM-MFW (?) $Workfile:: pcm.h $| | |
| 4 | $Author: mmj $Revision:: 1 $| | |
| 5 | CREATED: 07.10.98 $Modtime:: 15.12.99 10:59 $| | |
| 6 | STATE : code | | |
| 7 +--------------------------------------------------------------------+ | |
| 8 | |
| 9 PURPOSE : Types definitions for the permanent memory configuration | |
| 10 */ | |
| 11 | |
| 12 #ifndef DEF_PCM | |
| 13 #define DEF_PCM | |
| 14 | |
| 15 #ifndef TARGET | |
| 16 #include "ffs.cfg" | |
| 17 #endif | |
| 18 | |
| 19 #if (TARGET == 1) | |
| 20 #include "rv/general.h" | |
| 21 #else | |
| 22 typedef unsigned char UBYTE; | |
| 23 typedef unsigned short USHORT; | |
| 24 #endif | |
| 25 | |
| 26 #define LEN_MSCAP (NR_EF_MSCAP * SIZE_EF_MSCAP) + 2 | |
| 27 #define LEN_IMEI (NR_EF_IMEI * SIZE_EF_IMEI) + 2 | |
| 28 #define LEN_IMSI (NR_EF_IMSI * SIZE_EF_IMSI) + 2 | |
| 29 #define LEN_SMS (NR_EF_SMS * SIZE_EF_SMS) + 2 | |
| 30 #define LEN_CLASS2 (NR_EF_CLASS2 * SIZE_EF_CLASS2) + 2 | |
| 31 #define LEN_CLASS3 (NR_EF_CLASS3 * SIZE_EF_CLASS3) + 2 | |
| 32 #define LEN_MSSUP (NR_EF_MSSUP * SIZE_EF_MSSUP) + 2 | |
| 33 #define LEN_CLNG (NR_EF_CLNG * SIZE_EF_CLNG) + 2 | |
| 34 #define LEN_MSSET (NR_EF_MSSET * SIZE_EF_MSSET) + 2 | |
| 35 #define LEN_HZCACHE (NR_EF_HZCACHE * SIZE_EF_HZCACHE) + 2 | |
| 36 #define LEN_LDN (NR_EF_LDN * SIZE_EF_LDN) + 2 | |
| 37 #define LEN_LRN (NR_EF_LRN * SIZE_EF_LRN) + 2 | |
| 38 #define LEN_LMN (NR_EF_LMN * SIZE_EF_LMN) + 2 | |
| 39 #define LEN_UPN (NR_EF_UPN * SIZE_EF_UPN) + 2 | |
| 40 #define LEN_MBN (NR_EF_MBN * SIZE_EF_MBN) + 2 | |
| 41 #define LEN_VMN (NR_EF_VMN * SIZE_EF_VMN) + 2 | |
| 42 #define LEN_CTIM (NR_EF_CTIM * SIZE_EF_CTIM) + 2 | |
| 43 #define LEN_CCNT (NR_EF_CCNT * SIZE_EF_CCNT) + 2 | |
| 44 #define LEN_ECC (NR_EF_ECC * SIZE_EF_ECC) + 2 | |
| 45 #define LEN_ORG (NR_EF_ORG * SIZE_EF_ORG) + 2 | |
| 46 #define LEN_CCP (NR_EF_CCP * SIZE_EF_CCP) + 2 | |
| 47 #define LEN_EXT1 (NR_EF_EXT1 * SIZE_EF_EXT1) + 2 | |
| 48 #define LEN_SIMLCK (NR_EF_SIMLCK * SIZE_EF_SIMLCK) + 2 | |
| 49 #define LEN_MAIN (NR_EF_MAIN * SIZE_EF_MAIN) + 2 | |
| 50 #define LEN_SFK (NR_EF_SFK * SIZE_EF_SFK) + 2 | |
| 51 #define LEN_FAULT (NR_EF_FAULT * SIZE_EF_FAULT) + 2 | |
| 52 #define LEN_DEBUG (NR_EF_DEBUG * SIZE_EF_DEBUG) + 2 | |
| 53 #define LEN_POWER (NR_EF_POWER * SIZE_EF_POWER) + 2 | |
| 54 #define LEN_KEYB (NR_EF_KEYB * SIZE_EF_KEYB) + 2 | |
| 55 #define LEN_RADIO (NR_EF_RADIO * SIZE_EF_RADIO) + 2 | |
| 56 #define LEN_CGMI (NR_EF_CGMI * SIZE_EF_CGMI) + 2 | |
| 57 #define LEN_INF0 (NR_EF_INF0 * SIZE_EF_INF0) + 2 | |
| 58 #define LEN_CGMM (NR_EF_CGMM * SIZE_EF_CGMM) + 2 | |
| 59 #define LEN_CGMR (NR_EF_CGMR * SIZE_EF_CGMR) + 2 | |
| 60 #define LEN_CGSN (NR_EF_CGSN * SIZE_EF_CGSN) + 2 | |
| 61 #define LEN_SMSPRFL (NR_EF_SMSPRFL * SIZE_EF_SMSPRFL) + 2 | |
| 62 #define LEN_PLMN (NR_EF_PLMN * SIZE_EF_PLMN) + 2 | |
| 63 #define LEN_BCCHINFO (NR_EF_BCCHINFO * SIZE_EF_BCCHINFO) + 2 | |
| 64 #define LEN_ALS (NR_EF_ALS * SIZE_EF_ALS) + 2 | |
| 65 #define LEN_LOCGPRS (NR_EF_LOCGPRS * SIZE_EF_LOCGPRS) + 2 | |
| 66 #define LEN_KCGPRS (NR_EF_KCGPRS * SIZE_EF_KCGPRS) + 2 | |
| 67 #define LEN_IMSIGPRS (NR_EF_IMSIGPRS * SIZE_EF_IMSIGPRS) + 2 | |
| 68 | |
| 69 #define PCM_SIZE (LEN_MSCAP + LEN_IMEI + LEN_IMSI + LEN_SMS + \ | |
| 70 LEN_CLASS2 + LEN_CLASS3 + LEN_MSSUP + LEN_CLNG + \ | |
| 71 LEN_MSSET + LEN_HZCACHE+ LEN_LDN + LEN_LRN + LEN_LMN + \ | |
| 72 LEN_UPN + LEN_MBN + LEN_VMN + LEN_CTIM + \ | |
| 73 LEN_CCNT + LEN_ECC + LEN_ORG + LEN_CCP + \ | |
| 74 LEN_EXT1 + LEN_SIMLCK + LEN_MAIN + LEN_SFK + \ | |
| 75 LEN_FAULT + LEN_DEBUG + LEN_POWER + LEN_KEYB + \ | |
| 76 LEN_RADIO + LEN_CGMI + LEN_INF0 + LEN_CGMM + \ | |
| 77 LEN_CGMR + LEN_CGSN + LEN_SMSPRFL + LEN_PLMN + \ | |
| 78 LEN_BCCHINFO + LEN_ALS + LEN_LOCGPRS + LEN_KCGPRS + \ | |
| 79 LEN_IMSIGPRS) | |
| 80 | |
| 81 /******************************************************************** | |
| 82 * | |
| 83 * Parameters written in flash memory | |
| 84 * | |
| 85 ********************************************************************/ | |
| 86 | |
| 87 #define PCM_SERIAL_CONFIG (0) | |
| 88 | |
| 89 /******************************************************************** | |
| 90 * | |
| 91 * Access functions to bit fields | |
| 92 * | |
| 93 ********************************************************************/ | |
| 94 | |
| 95 #define EXTERN extern | |
| 96 | |
| 97 #ifndef __BF_FUNCCALL__ | |
| 98 #define FldGet(f,n) ((((ULONG)f)&((ULONG)n##m))>>n##s) | |
| 99 #define FldSet(f,n,v) ((((ULONG)f)&(~((ULONG)n##m)))|(((ULONG)v)<<n##s)) | |
| 100 #else | |
| 101 ULONG FldGet (ULONG f, ULONG m, int s) | |
| 102 { return ((f&m)>>s); } | |
| 103 ULONG FldSet (ULONG f, ULONG m, int s, ULONG v) | |
| 104 { return ((f&(~m))|((v<<s)&m)); } | |
| 105 #endif | |
| 106 | |
| 107 /******************************************************************** | |
| 108 * | |
| 109 * Field Identitifer | |
| 110 * | |
| 111 ********************************************************************/ | |
| 112 | |
| 113 #define EF_MSCAP_ID "MSCAP" /* Mobile Capabilities */ | |
| 114 #define EF_IMEI_ID "IMEI" /* Int. Mobile Equipment Id. */ | |
| 115 #define EF_IMSI_ID "IMSI" /* Int. Mobile Subscriber Id. */ | |
| 116 #define EF_SMS_ID "SMS" /* Short Message Service */ | |
| 117 #define EF_CLASS2_ID "CLASS2" /* MS Classmark 2 */ | |
| 118 #define EF_CLASS3_ID "CLASS3" /* MS Classmark 3 */ | |
| 119 #define EF_MSSUP_ID "MSSUP" /* Mobile Setup */ | |
| 120 #define EF_CLNG_ID "CLNG" /* Current Language */ | |
| 121 #define EF_MSSET_ID "MSSET" /* MS Settings */ | |
| 122 #define EF_HZCACHE_ID "HZCACHE" /* Homezone cache */ | |
| 123 #define EF_LDN_ID "LDN" /* Last MOC Numbers */ | |
| 124 #define EF_LRN_ID "LRN" /* Last MTC Numbers */ | |
| 125 #define EF_LMN_ID "LMN" /* Last MTC Missed Numbers */ | |
| 126 #define EF_UPN_ID "UPN" /* User Personal Numbers */ | |
| 127 #define EF_MBN_ID "MBN" /* Mailbox Numbers */ | |
| 128 #define EF_VMN_ID "VMN" /* Voice Mail Number */ | |
| 129 #define EF_CTIM_ID "CTIM" /* Call Timer */ | |
| 130 #define EF_CCNT_ID "CCNT" /* Call Counter */ | |
| 131 #define EF_ECC_ID "ECC" /* Emergency Call Codes */ | |
| 132 #define EF_ORG_ID "ORG" /* Organizer and Alarm */ | |
| 133 #define EF_CCP_ID "CCP" /* Cap and Config Params */ | |
| 134 #define EF_EXT1_ID "EXT1" /* Extension 1 */ | |
| 135 #define EF_SIMLCK_ID "SIMLCK" /* SIM Lock */ | |
| 136 #define EF_SIMLCKEXT_ID "SIMLCKEXT" /* Extended SIM Lock */ | |
| 137 #define EF_MAIN_ID "MAIN" /* Maintenance Information */ | |
| 138 #define EF_SFK_ID "SFK" /* Special Function Keys */ | |
| 139 #define EF_FAULT_ID "FAULT" /* Fault Conditions */ | |
| 140 #define EF_DEBUG_ID "DEBUG" /* Debug Information */ | |
| 141 #define EF_POWER_ID "POWER" /* Power Management */ | |
| 142 #define EF_KEYB_ID "KEYB" /* Keyboard Mapping */ | |
| 143 #define EF_RADIO_ID "RADIO" /* Radio Parameters */ | |
| 144 #define EF_CGMI_ID "CGMI" /* Manufacturer */ | |
| 145 #define EF_INF0_ID "INF0" /* Identification Information */ | |
| 146 #define EF_CGMM_ID "CGMM" /* Model */ | |
| 147 #define EF_CGMR_ID "CGMR" /* Revision */ | |
| 148 #define EF_CGSN_ID "CGSN" /* Product Serial Number */ | |
| 149 #define EF_SMSPRFL_ID "SMSPRFL" /* SMS Profile */ | |
| 150 #define EF_PLMN_ID "PLMN" /* PLMN Identifier */ | |
| 151 #define EF_BCCHINFO_ID "BCCHINF" /* BCCH Information */ | |
| 152 #define EF_ALS_ID "ALS" /* Alternative Line Service */ | |
| 153 #define EF_LOCGPRS_ID "LOCGPRS" /* Location Info. (GPRS) */ | |
| 154 #define EF_KCGPRS_ID "KCGPRS" /* Ciphering Key (GPRS) */ | |
| 155 #define EF_IMSIGPRS_ID "IMSIGPRS" /* IMSI (GPRS) */ | |
| 156 | |
| 157 /******************************************************************** | |
| 158 * | |
| 159 * Return Values | |
| 160 * | |
| 161 ********************************************************************/ | |
| 162 | |
| 163 #define drv_Return_Type UBYTE | |
| 164 #define PCM_OK 0 | |
| 165 #define PCM_INITIALIZED 1 | |
| 166 #define PCM_INVALID_FILE 2 | |
| 167 #define PCM_INVALID_SIZE 3 | |
| 168 #define PCM_INVALID_CKSM 4 | |
| 169 #define PCM_INVALID_RECORD 5 | |
| 170 #define PCM_NVRAM_ACCS_FAIL 6 | |
| 171 #define PCM_ERASE_ERROR 7 | |
| 172 #define PCM_WRITE_ERROR 8 | |
| 173 | |
| 174 /* | |
| 175 * Field Info Structure | |
| 176 */ | |
| 177 typedef struct pcm_FileInfo_Type | |
| 178 { | |
| 179 UBYTE *FileLocation; | |
| 180 USHORT FileSize; | |
| 181 UBYTE Version; | |
| 182 } pcm_FileInfo_Type; | |
| 183 | |
| 184 typedef struct | |
| 185 { | |
| 186 char *identifier; | |
| 187 USHORT start; | |
| 188 USHORT length; | |
| 189 USHORT records; | |
| 190 } T_PCM_DESCRIPTION; | |
| 191 | |
| 192 | |
| 193 /******************************************************************** | |
| 194 * | |
| 195 * Field MOBILE CAPABILITIES - MSCAP | |
| 196 * | |
| 197 ********************************************************************/ | |
| 198 | |
| 199 typedef struct pcm_EFmscap_Type | |
| 200 { | |
| 201 UBYTE chnMode; /* channel modes */ | |
| 202 UBYTE datCap1; /* data capabilities */ | |
| 203 UBYTE datCap2; /* data capabilities */ | |
| 204 UBYTE featLst1; /* feature list */ | |
| 205 UBYTE featLst2; /* feature list */ | |
| 206 UBYTE featLst3; /* feature list */ | |
| 207 } EF_MSCAP; | |
| 208 | |
| 209 #define SIZE_EF_MSCAP 6 | |
| 210 #define NR_EF_MSCAP 1 | |
| 211 | |
| 212 /* | |
| 213 * chnMode bits | |
| 214 * _______________________________________________________ | |
| 215 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 216 * |------|------|------|------|------|------|------|------| | |
| 217 * |L1 |Tm |afs |ahs |spV3 |efrV2 |hr |spV1 | | |
| 218 * ------------------------------------------------------- | |
| 219 */ | |
| 220 #define spchSupV1 0x00000001,0 /* speech support (vers. 1) */ | |
| 221 #define spchSupV1m 0x00000001 | |
| 222 #define spchSupV1s 0 | |
| 223 #define hrSup 0x00000002,1 /* HR support */ | |
| 224 #define hrSupm 0x00000002 | |
| 225 #define hrSups 1 | |
| 226 #define HR_EFRSup 0x00000006,1 /* HR and EFR support */ | |
| 227 #define HR_EFRSupm 0x00000006 | |
| 228 #define HR_EFRSups 1 | |
| 229 #define EFRSupV2 0x00000004,2 /* enhanced FR support (v2) */ | |
| 230 #define EFRSupV2m 0x00000004 | |
| 231 #define EFRSupV2s 2 | |
| 232 #define EFRSupV3 0x00000008,3 /* speech support (vers 3) */ | |
| 233 #define EFRSupV3m 0x00000008 | |
| 234 #define EFRSupV3s 3 | |
| 235 #define VocSup 0x0000000F,0 /* vocoder support */ | |
| 236 #define VocSupm 0x0000000F | |
| 237 #define VocSups 0 | |
| 238 #define AHS 0x00000010,4 /* adaptive multirate half rate speech */ | |
| 239 #define AHSm 0x00000010 | |
| 240 #define AHSs 4 | |
| 241 #define AFS 0x00000020,5 /* adaptive multirate full rate speech */ | |
| 242 #define AFSm 0x00000020 | |
| 243 #define AFSs 5 | |
| 244 #define TestMobile 0x00000040,6 /* Test Mobile */ | |
| 245 #define TestMobilem 0x00000040 | |
| 246 #define TestMobiles 6 | |
| 247 #define L1Ver 0x00000080,7 /* Layer 1 Version */ | |
| 248 #define L1Verm 0x00000080 | |
| 249 #define L1Vers 7 | |
| 250 | |
| 251 /* | |
| 252 * datCap1 bits | |
| 253 * _______________________________________________________ | |
| 254 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 255 * |------|------|------|------|------|------|------|------| | |
| 256 * |14.4 |tfax |ntfax |tsyn |syn |asyn |rlp |ds | | |
| 257 * ------------------------------------------------------- | |
| 258 */ | |
| 259 #define datSup 0x00000001,0 /* Data support */ | |
| 260 #define datSupm 0x00000001 | |
| 261 #define datSups 0 | |
| 262 #define RLPSup 0x00000002,1 /* RLP data (NT Async) */ | |
| 263 #define RLPSupm 0x00000002 | |
| 264 #define RLPSups 1 | |
| 265 #define AsySup 0x00000004,2 /* T Async data support */ | |
| 266 #define AsySupm 0x00000004 | |
| 267 #define AsySups 2 | |
| 268 #define NTSynSup 0x00000008,3 /* NT Sync data support */ | |
| 269 #define NTSynSupm 0x00000008 | |
| 270 #define NTSynSups 3 | |
| 271 #define TSynSup 0x00000010,4 /* T Sync data support */ | |
| 272 #define TSynSupm 0x00000010 | |
| 273 #define TSynSups 4 | |
| 274 #define NTFaxSup 0x00000020,5 /* NT Fax support */ | |
| 275 #define NTFaxSupm 0x00000020 | |
| 276 #define NTFaxSups 5 | |
| 277 #define TFaxSup 0x00000040,6 /* T Fax support */ | |
| 278 #define TFaxSupm 0x00000040 | |
| 279 #define TFaxSups 6 | |
| 280 #define Dr14_4Sup 0x00000080,7 /* Data rate 14.4 support */ | |
| 281 #define Dr14_4Supm 0x00000080 | |
| 282 #define Dr14_4Sups 7 | |
| 283 | |
| 284 /* | |
| 285 * datCap2 bits | |
| 286 * _______________________________________________________ | |
| 287 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 288 * |------|------|------|------|------|------|------|------| | |
| 289 * |DHR | | |NAS |TPD |NTPD |TP |NTP | | |
| 290 * ------------------------------------------------------- | |
| 291 */ | |
| 292 #define NTPackSup 0x00000001,0 /* NT Packet Service */ | |
| 293 #define NTPackSupm 0x00000001 | |
| 294 #define NTPackSups 0 | |
| 295 #define TPackSup 0x00000002,1 /* T Packet Service */ | |
| 296 #define TPackSupm 0x00000002 | |
| 297 #define TPackSups 1 | |
| 298 #define NTPadSup 0x00000004,2 /* NT PAD Access Service */ | |
| 299 #define NTPadSupm 0x00000004 | |
| 300 #define NTPadSups 2 | |
| 301 #define TPadSup 0x00000008,3 /* T PAD Access Service */ | |
| 302 #define TPadSupm 0x00000008 | |
| 303 #define TPadSups 3 | |
| 304 #define NAltSrvSup 0x00000010,4 /* No Alternate Services */ | |
| 305 #define NAltSrvSupm 0x00000010 | |
| 306 #define NAltSrvSups 4 | |
| 307 #define DHRSup 0x00000080,7 /* Data Halfrate support */ | |
| 308 #define DHRSupm 0x00000080 | |
| 309 #define DHRSups 7 | |
| 310 | |
| 311 | |
| 312 /******************************************************************** | |
| 313 * | |
| 314 * Field INTERNATIONAL MOBILE EQUIPMENT ID - IMEI | |
| 315 * | |
| 316 ********************************************************************/ | |
| 317 | |
| 318 typedef struct pcm_EFimei_Type | |
| 319 { | |
| 320 UBYTE tac1; | |
| 321 UBYTE tac2; | |
| 322 UBYTE tac3; | |
| 323 UBYTE fac; | |
| 324 UBYTE snr1; | |
| 325 UBYTE snr2; | |
| 326 UBYTE snr3; | |
| 327 UBYTE svn; | |
| 328 } EF_IMEI; | |
| 329 | |
| 330 #define SIZE_EF_IMEI 8 | |
| 331 #define NR_EF_IMEI 1 | |
| 332 | |
| 333 | |
| 334 /******************************************************************** | |
| 335 * | |
| 336 * Field INTERNATIONAL MOBILE SUBSCRIBER ID - IMSI | |
| 337 * | |
| 338 ********************************************************************/ | |
| 339 | |
| 340 typedef struct pcm_EFimsi_Type | |
| 341 { | |
| 342 UBYTE len; /* length IMSI */ | |
| 343 UBYTE IMSI[8]; /* IMSI */ | |
| 344 } EF_IMSI; | |
| 345 | |
| 346 #define SIZE_EF_IMSI 9 | |
| 347 #define NR_EF_IMSI 1 | |
| 348 | |
| 349 | |
| 350 /******************************************************************** | |
| 351 * | |
| 352 * Field SHORT MESSAGE SERVICE - SMS | |
| 353 * | |
| 354 ********************************************************************/ | |
| 355 | |
| 356 typedef struct pcm_EFsms_Type | |
| 357 { | |
| 358 UBYTE stat; /* status */ | |
| 359 UBYTE rmd[175]; /* remainder */ | |
| 360 } EF_SMS; | |
| 361 | |
| 362 #define SIZE_EF_SMS 176 | |
| 363 #define NR_EF_SMS 1 | |
| 364 | |
| 365 /* | |
| 366 * stat bits | |
| 367 * _______________________________________________________ | |
| 368 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 369 * |------|------|------|------|------|------|------|------| | |
| 370 * |reserved |status | | |
| 371 * ------------------------------------------------------- | |
| 372 */ | |
| 373 | |
| 374 | |
| 375 /******************************************************************** | |
| 376 * | |
| 377 * Field MOBILE STATION CLASSMARK 2 - CLASS2 | |
| 378 * | |
| 379 ********************************************************************/ | |
| 380 | |
| 381 typedef struct pcm_EFclass2_Type | |
| 382 { | |
| 383 UBYTE byte1; /* class2 byte 1 */ | |
| 384 UBYTE byte2; /* class2 byte 2 */ | |
| 385 UBYTE byte3; /* class2 byte 3 */ | |
| 386 } EF_CLASS2; | |
| 387 | |
| 388 #define SIZE_EF_CLASS2 3 | |
| 389 #define NR_EF_CLASS2 1 | |
| 390 | |
| 391 /* | |
| 392 * byte1 bits | |
| 393 * _______________________________________________________ | |
| 394 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 395 * |------|------|------|------|------|------|------|------| | |
| 396 * |- |rev |es |a5/1 |rfpwr | | |
| 397 * ------------------------------------------------------- | |
| 398 */ | |
| 399 #define rfPwrCap 0x00000007,0 /* rf power capability */ | |
| 400 #define rfPwrCapm 0x00000007 | |
| 401 #define rfPwrCaps 0 | |
| 402 #define a51 0x00000008,3 /* rf power capability */ | |
| 403 #define a51m 0x00000008 | |
| 404 #define a51s 3 | |
| 405 #define esInd 0x00000010,4 /* ES indicator */ | |
| 406 #define esIndm 0x00000010 | |
| 407 #define esInds 4 | |
| 408 #define revLev 0x00000060,5 /* revision level */ | |
| 409 #define revLevm 0x00000060 | |
| 410 #define revLevs 5 | |
| 411 | |
| 412 /* | |
| 413 * byte2 bits | |
| 414 * _______________________________________________________ | |
| 415 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 416 * |------|------|------|------|------|------|------|------| | |
| 417 * |- |ps |ss |sm |reserved |frq | | |
| 418 * ------------------------------------------------------- | |
| 419 */ | |
| 420 #define freqCap 0x00000001,0 /* frequency capability */ | |
| 421 #define freqCapm 0x00000001 | |
| 422 #define freqCaps 0 | |
| 423 #define smCap 0x00000008,3 /* SM capability */ | |
| 424 #define smCapm 0x00000008 | |
| 425 #define smCaps 3 | |
| 426 #define ssScrInd 0x00000030,4 /* SS Screen Indicator */ | |
| 427 #define ssScrIndm 0x00000030 | |
| 428 #define ssScrInds 4 | |
| 429 #define psCap 0x00000040,6 /* PS capability */ | |
| 430 #define psCapm 0x00000040 | |
| 431 #define psCaps 6 | |
| 432 | |
| 433 /* | |
| 434 * byte3 bits | |
| 435 * _______________________________________________________ | |
| 436 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 437 * |------|------|------|------|------|------|------|------| | |
| 438 * |CM3 |reserved |A5/3 |A5/2 | | |
| 439 * ------------------------------------------------------- | |
| 440 */ | |
| 441 #define a52 0x00000001,0 /* encryption algorithm A5/2 */ | |
| 442 #define a52m 0x00000001 | |
| 443 #define a52s 0 | |
| 444 #define a53 0x00000002,1 /* encryption algorithm A5/3 */ | |
| 445 #define a53m 0x00000002 | |
| 446 #define a53s 1 | |
| 447 #define cm3 0x000000f8,7 /* CM3 */ | |
| 448 #define cm3m 0x000000f8 | |
| 449 #define cm3s 7 | |
| 450 | |
| 451 | |
| 452 /******************************************************************** | |
| 453 * | |
| 454 * Field MOBILE STATION CLASSMARK 3 - CLASS3 | |
| 455 * | |
| 456 ********************************************************************/ | |
| 457 | |
| 458 typedef struct pcm_EFclass3_Type | |
| 459 { | |
| 460 UBYTE byte1; /* class3 byte 1 */ | |
| 461 UBYTE byte2; /* class3 byte 2 */ | |
| 462 UBYTE byte3; /* class3 byte 3 */ | |
| 463 } EF_CLASS3; | |
| 464 | |
| 465 #define SIZE_EF_CLASS3 3 | |
| 466 #define NR_EF_CLASS3 1 | |
| 467 | |
| 468 /* | |
| 469 * byte1 bits | |
| 470 * _______________________________________________________ | |
| 471 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 472 * |------|------|------|------|------|------|------|------| | |
| 473 * |- |bnd3 |bnd2 |bnd1 |a5/7 |a5/6 |a5/5 |a5/4 | | |
| 474 * ------------------------------------------------------- | |
| 475 */ | |
| 476 #define a54 0x00000001,0 /* encryption algorithm A5/4 */ | |
| 477 #define a54m 0x00000001 | |
| 478 #define a54s 0 | |
| 479 #define a55 0x00000002,1 /* encryption algorithm A5/5 */ | |
| 480 #define a55m 0x00000002 | |
| 481 #define a55s 1 | |
| 482 #define a56 0x00000004,2 /* encryption algorithm A5/6 */ | |
| 483 #define a56m 0x00000004 | |
| 484 #define a56s 2 | |
| 485 #define a57 0x00000008,3 /* encryption algorithm A5/7 */ | |
| 486 #define a57m 0x00000008 | |
| 487 #define a57s 3 | |
| 488 #define bnd1 0x00000010,4 /* Band 1 */ | |
| 489 #define bnd1m 0x00000010 | |
| 490 #define bnd1s 4 | |
| 491 #define bnd2 0x00000020,5 /* Band 2 */ | |
| 492 #define bnd2m 0x00000020 | |
| 493 #define bnd2s 5 | |
| 494 #define bnd3 0x00000040,6 /* Band 3 */ | |
| 495 #define bnd3m 0x00000040 | |
| 496 #define bnd3s 6 | |
| 497 | |
| 498 /* | |
| 499 * byte2 bits | |
| 500 * _______________________________________________________ | |
| 501 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 502 * |------|------|------|------|------|------|------|------| | |
| 503 * |rfcap2 |rfcap1 | | |
| 504 * ------------------------------------------------------- | |
| 505 */ | |
| 506 #define rfCap1 0x0000000f,0 /* associated RF capability 1 */ | |
| 507 #define rfCap1m 0x0000000f | |
| 508 #define rfCap1s 0 | |
| 509 #define rfCap2 0x000000f0,4 /* associated RF capability 2 */ | |
| 510 #define rfCap2m 0x000000f0 | |
| 511 #define rfCap2s 4 | |
| 512 | |
| 513 /* | |
| 514 * byte3 bits | |
| 515 * _______________________________________________________ | |
| 516 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 517 * |------|------|------|------|------|------|------|------| | |
| 518 * |0 |0 |0 |xm |0 |0 |0 |0 | | |
| 519 * ------------------------------------------------------- | |
| 520 */ | |
| 521 | |
| 522 | |
| 523 /******************************************************************** | |
| 524 * | |
| 525 * Field MOBILE SETUP - MSSUP | |
| 526 * | |
| 527 ********************************************************************/ | |
| 528 | |
| 529 typedef struct pcm_EFmssup_Type | |
| 530 { | |
| 531 UBYTE lng1; /* language 1 */ | |
| 532 UBYTE lng2; /* language 2 */ | |
| 533 UBYTE lng3; /* language 3 */ | |
| 534 UBYTE feat1; /* features byte 1 */ | |
| 535 UBYTE feat2; /* features byte 2 */ | |
| 536 } EF_MSSUP; | |
| 537 | |
| 538 #define SIZE_EF_MSSUP 5 | |
| 539 #define NR_EF_MSSUP 1 | |
| 540 | |
| 541 /* | |
| 542 * lng1 bits | |
| 543 * _______________________________________________________ | |
| 544 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 545 * |------|------|------|------|------|------|------|------| | |
| 546 * |por |swe |spa |ita |dut |ger |fre |eng | | |
| 547 * ------------------------------------------------------- | |
| 548 */ | |
| 549 #define eng 0x00000001,0 /* English */ | |
| 550 #define engm 0x00000001 | |
| 551 #define engs 0 | |
| 552 #define fre 0x00000002,1 /* French */ | |
| 553 #define frem 0x00000002 | |
| 554 #define fres 1 | |
| 555 #define ger 0x00000004,2 /* German */ | |
| 556 #define germ 0x00000004 | |
| 557 #define gers 2 | |
| 558 #define dut 0x00000008,3 /* Dutch */ | |
| 559 #define dutm 0x00000008 | |
| 560 #define duts 3 | |
| 561 #define ita 0x00000010,4 /* Italian */ | |
| 562 #define itam 0x00000010 | |
| 563 #define itas 4 | |
| 564 #define spa 0x00000020,5 /* Spanish */ | |
| 565 #define spam 0x00000020 | |
| 566 #define spas 5 | |
| 567 #define swe 0x00000040,6 /* Swedish */ | |
| 568 #define swem 0x00000040 | |
| 569 #define swes 6 | |
| 570 #define por 0x00000080,7 /* Portuguese */ | |
| 571 #define porm 0x00000080 | |
| 572 #define pors 7 | |
| 573 | |
| 574 /* | |
| 575 * lng2 bits | |
| 576 * _______________________________________________________ | |
| 577 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 578 * |------|------|------|------|------|------|------|------| | |
| 579 * |rus |pol |slo |hun |tur |gre |nor |fin | | |
| 580 * ------------------------------------------------------- | |
| 581 */ | |
| 582 #define fin 0x00000001,0 /* Finnish */ | |
| 583 #define finm 0x00000001 | |
| 584 #define fins 0 | |
| 585 #define nor 0x00000002,1 /* Norwegian */ | |
| 586 #define norm 0x00000002 | |
| 587 #define nors 1 | |
| 588 #define gre 0x00000004,2 /* Greek */ | |
| 589 #define grem 0x00000004 | |
| 590 #define gres 2 | |
| 591 #define tur 0x00000008,3 /* Turkish */ | |
| 592 #define turm 0x00000008 | |
| 593 #define turs 3 | |
| 594 #define hun 0x00000010,4 /* Hungarian */ | |
| 595 #define hunm 0x00000010 | |
| 596 #define huns 4 | |
| 597 #define slo 0x00000020,5 /* Slovenian */ | |
| 598 #define slom 0x00000020 | |
| 599 #define slos 5 | |
| 600 #define pol 0x00000040,6 /* Polish */ | |
| 601 #define polm 0x00000040 | |
| 602 #define pols 6 | |
| 603 #define rus 0x00000080,7 /* Russian */ | |
| 604 #define rusm 0x00000080 | |
| 605 #define russ 7 | |
| 606 | |
| 607 /* | |
| 608 * lng3 bits | |
| 609 * _______________________________________________________ | |
| 610 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 611 * |------|------|------|------|------|------|------|------| | |
| 612 * |- |ara |tai |man |can |chi |cze |ind | | |
| 613 * ------------------------------------------------------- | |
| 614 */ | |
| 615 #define ind 0x00000001,0 /* Indonesian */ | |
| 616 #define indm 0x00000001 | |
| 617 #define inds 0 | |
| 618 #define cze 0x00000002,1 /* Czech */ | |
| 619 #define czem 0x00000002 | |
| 620 #define czes 1 | |
| 621 #define chi 0x00000004,2 /* Chinese */ | |
| 622 #define chim 0x00000004 | |
| 623 #define chis 2 | |
| 624 #define can 0x00000008,3 /* Cantonese */ | |
| 625 #define canm 0x00000008 | |
| 626 #define cans 3 | |
| 627 #define man 0x00000010,4 /* Mandarin */ | |
| 628 #define manm 0x00000010 | |
| 629 #define mans 4 | |
| 630 #define tai 0x00000020,5 /* Taiwanese */ | |
| 631 #define taim 0x00000020 | |
| 632 #define tais 5 | |
| 633 #define ara 0x00000040,6 /* Arabic */ | |
| 634 #define aram 0x00000040 | |
| 635 #define aras 6 | |
| 636 | |
| 637 /* | |
| 638 * feat1 bits | |
| 639 * _______________________________________________________ | |
| 640 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 641 * |------|------|------|------|------|------|------|------| | |
| 642 * |stk |irda |etc |ussd |cb |cf |dtmf |aoc | | |
| 643 * ------------------------------------------------------- | |
| 644 */ | |
| 645 #define AoC 0x00000001,0 /* Advice of Charge */ | |
| 646 #define AoCm 0x00000001 | |
| 647 #define AoCs 0 | |
| 648 #define DTMF 0x00000002,1 /* DTMF */ | |
| 649 #define DTMFm 0x00000002 | |
| 650 #define DTMFs 1 | |
| 651 #define CF 0x00000004,2 /* Call Forwarding */ | |
| 652 #define CFm 0x00000004 | |
| 653 #define CFs 2 | |
| 654 #define CB 0x00000008,3 /* Call Barring */ | |
| 655 #define CBm 0x00000008 | |
| 656 #define CBs 3 | |
| 657 #define USSD 0x00000010,4 /* USSD */ | |
| 658 #define USSDm 0x00000010 | |
| 659 #define USSDs 4 | |
| 660 #define ETC 0x00000020,5 /* ETC */ | |
| 661 #define ETCm 0x00000020 | |
| 662 #define ETCs 5 | |
| 663 #define IRDA 0x00000040,6 /* IRDA */ | |
| 664 #define IRDAm 0x00000040 | |
| 665 #define IRDAs 6 | |
| 666 | |
| 667 | |
| 668 /******************************************************************** | |
| 669 * | |
| 670 * Field CURRENT LANGUAGE - CLNG | |
| 671 * | |
| 672 ********************************************************************/ | |
| 673 | |
| 674 #define SIZE_EF_CLNG_DATA 2 /* two-letter abbreviation of the language */ | |
| 675 | |
| 676 typedef struct pcm_EFclng_Type | |
| 677 { | |
| 678 UBYTE data[SIZE_EF_CLNG_DATA]; /* abbreviation of the language */ | |
| 679 } EF_CLNG; | |
| 680 | |
| 681 #define SIZE_EF_CLNG (SIZE_EF_CLNG_DATA) | |
| 682 #define NR_EF_CLNG 1 | |
| 683 | |
| 684 | |
| 685 /******************************************************************** | |
| 686 * | |
| 687 * Field MOBILE STATION SETTTINGS - MSSET | |
| 688 * | |
| 689 ********************************************************************/ | |
| 690 | |
| 691 typedef struct pcm_EFmsset_Type | |
| 692 { | |
| 693 UBYTE buzzer1; /* buzzer byte 1 */ | |
| 694 UBYTE buzzer2; /* buzzer byte 2 */ | |
| 695 UBYTE buzzer3; /* buzzer byte 3 */ | |
| 696 UBYTE audio; /* audio */ | |
| 697 UBYTE misc; /* miscellaneous */ | |
| 698 UBYTE display; /* display */ | |
| 699 UBYTE language; /* language */ | |
| 700 UBYTE recent_ldn_ref; /* recent ldn reference */ | |
| 701 UBYTE recent_lrn_ref; /* recent lrn reference */ | |
| 702 UBYTE recent_upn_ref; /* recent upn reference */ | |
| 703 } EF_MSSET; | |
| 704 | |
| 705 #define SIZE_EF_MSSET 10 | |
| 706 #define NR_EF_MSSET 1 | |
| 707 | |
| 708 /* | |
| 709 * buzzer1 bits | |
| 710 * _______________________________________________________ | |
| 711 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 712 * |------|------|------|------|------|------|------|------| | |
| 713 * |vib |callvol |calltype | | |
| 714 * ------------------------------------------------------- | |
| 715 */ | |
| 716 #define calltype 0x00000007,0 /* ringer type incoming calls */ | |
| 717 #define calltypem 0x00000007 | |
| 718 #define calltypes 0 | |
| 719 #define callvol 0x00000038,3 /* ringer volume incoming calls */ | |
| 720 #define callvolm 0x00000038 | |
| 721 #define callvols 3 | |
| 722 #define vib 0x000000c0,6 /* vibrator */ | |
| 723 #define vibm 0x000000c0 | |
| 724 #define vibs 6 | |
| 725 | |
| 726 /* | |
| 727 * buzzer2 bits | |
| 728 * _______________________________________________________ | |
| 729 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 730 * |------|------|------|------|------|------|------|------| | |
| 731 * |reserved |msgvol |msgtype | | |
| 732 * ------------------------------------------------------- | |
| 733 */ | |
| 734 #define msgtype 0x00000007,0 /* ringer type messages */ | |
| 735 #define msgtypem 0x00000007 | |
| 736 #define msgtypes 0 | |
| 737 #define msgvol 0x00000038,3 /* ringer volume messages */ | |
| 738 #define msgvolm 0x00000038 | |
| 739 #define msgvols 3 | |
| 740 | |
| 741 /* | |
| 742 * buzzer3 bits | |
| 743 * _______________________________________________________ | |
| 744 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 745 * |------|------|------|------|------|------|------|------| | |
| 746 * |reserved |batw |keytone | | |
| 747 * ------------------------------------------------------- | |
| 748 */ | |
| 749 #define keytone 0x00000003,0 /* key tone mode */ | |
| 750 #define keytonem 0x00000003 | |
| 751 #define keytones 0 | |
| 752 #define batw 0x00000004,2 /* low battery warning */ | |
| 753 #define batwm 0x00000004 | |
| 754 #define batws 2 | |
| 755 | |
| 756 /* | |
| 757 * audio bits | |
| 758 * _________________________________________________________ | |
| 759 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 760 * |--------|------|------|------|------|------|------|------| | |
| 761 * |VoiceRec|Ext |Outvol |lnamp | | |
| 762 * --------------------------------------------------------- | |
| 763 */ | |
| 764 #define lnamp 0x00000007,0 /* microphone amplification */ | |
| 765 #define lnampm 0x00000007 | |
| 766 #define lnamps 0 | |
| 767 #define outvol 0x00000038,3 /* output volume */ | |
| 768 #define outvolm 0x00000038 | |
| 769 #define outvols 3 | |
| 770 #define ext 0x00000040,6 /* external audio */ | |
| 771 #define extm 0x00000040 | |
| 772 #define exts 6 | |
| 773 #define voicerec 0x00000080,7 /* voice recording */ | |
| 774 #define voicerecm 0x00000080 | |
| 775 #define voicerecs 7 | |
| 776 | |
| 777 /* | |
| 778 * miscellaneous bits | |
| 779 * _______________________________________________________ | |
| 780 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 781 * |------|------|------|------|------|------|------|------| | |
| 782 * | | |redial |calinf|clip |clir |pmod | | |
| 783 * ------------------------------------------------------- | |
| 784 */ | |
| 785 #define pmod 0x00000001,0 /* PLMN selection mode */ | |
| 786 #define pmodm 0x00000001 | |
| 787 #define pmods 0 | |
| 788 #define clir 0x00000002,1 /* CLIR */ | |
| 789 #define clirm 0x00000002 | |
| 790 #define clirs 1 | |
| 791 #define clip 0x00000004,2 /* CLIP */ | |
| 792 #define clipm 0x00000004 | |
| 793 #define clips 2 | |
| 794 #define calinf 0x00000008,3 /* call information display */ | |
| 795 #define calinfm 0x00000008 | |
| 796 #define calinfs 3 | |
| 797 #define redial 0x00000030,4 /* redial mode */ | |
| 798 #define redialm 0x00000030 | |
| 799 #define redials 4 | |
| 800 | |
| 801 /* | |
| 802 * display bits | |
| 803 * _______________________________________________________ | |
| 804 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 805 * |------|------|------|------|------|------|------|------| | |
| 806 * |bckdr |brgt |ctrt | | |
| 807 * ------------------------------------------------------- | |
| 808 */ | |
| 809 #define ctrt 0x00000007,0 /* contrast */ | |
| 810 #define ctrtm 0x00000007 | |
| 811 #define ctrts 0 | |
| 812 #define brgt 0x00000018,3 /* brightness */ | |
| 813 #define brgtm 0x00000018 | |
| 814 #define brgts 3 | |
| 815 #define bckdr 0x000000E0,5 /* duration for back light */ | |
| 816 #define bckdrm 0x000000E0 | |
| 817 #define bckdrs 5 | |
| 818 | |
| 819 /******************************************************************** | |
| 820 * | |
| 821 * Field Homezone cache | |
| 822 * | |
| 823 ********************************************************************/ | |
| 824 | |
| 825 typedef struct pcm_EFhzcache_Type | |
| 826 { | |
| 827 UBYTE cid[2]; | |
| 828 UBYTE zone; | |
| 829 } EF_HZCACHE; | |
| 830 | |
| 831 #define SIZE_EF_HZCACHE 3 | |
| 832 #define NR_EF_HZCACHE 5 | |
| 833 | |
| 834 /******************************************************************** | |
| 835 * | |
| 836 * Field LAST MOC NUMBERS - LDN | |
| 837 * | |
| 838 ********************************************************************/ | |
| 839 | |
| 840 typedef struct pcm_EFldn_Type | |
| 841 { | |
| 842 UBYTE calDrMsb; /* call duration (MSB) */ | |
| 843 UBYTE calDrLsb; /* call duration (LSB) */ | |
| 844 UBYTE year; /* year } */ | |
| 845 UBYTE month; /* month } = date */ | |
| 846 UBYTE day; /* day } */ | |
| 847 UBYTE hour; /* hour } */ | |
| 848 UBYTE minute; /* minute } = time */ | |
| 849 UBYTE second; /* second } */ | |
| 850 UBYTE len; /* length of BCD number */ | |
| 851 UBYTE numTp; /* TON and NPI */ | |
| 852 UBYTE dldNum[10]; /* called number */ | |
| 853 UBYTE ccp; /* capability/configuration identifier */ | |
| 854 UBYTE ext1; /* extension1 record identifier */ | |
| 855 } EF_LDN; | |
| 856 | |
| 857 #define SIZE_EF_LDN 22 | |
| 858 #define NR_EF_LDN 1 | |
| 859 | |
| 860 /* | |
| 861 * numTp bits | |
| 862 * _______________________________________________________ | |
| 863 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 864 * |------|------|------|------|------|------|------|------| | |
| 865 * |- |ton |npi | | |
| 866 * ------------------------------------------------------- | |
| 867 */ | |
| 868 #define numTp_npi 0x0000000F,0 /* numbering plan identification */ | |
| 869 #define numTp_npim 0x0000000F | |
| 870 #define numTp_npis 0 | |
| 871 #define numTp_ton 0x00000070,4 /* Type of number */ | |
| 872 #define numTp_tonm 0x00000070 | |
| 873 #define numTp_tons 4 | |
| 874 | |
| 875 | |
| 876 /******************************************************************** | |
| 877 * | |
| 878 * Field LAST MTC NUMBERS - LRN | |
| 879 * | |
| 880 ********************************************************************/ | |
| 881 | |
| 882 typedef struct pcm_EFlrn_Type | |
| 883 { | |
| 884 UBYTE calDrMsb; /* call duration (MSB) */ | |
| 885 UBYTE calDrLsb; /* call duration (LSB) */ | |
| 886 UBYTE year; /* year } */ | |
| 887 UBYTE month; /* month } = date */ | |
| 888 UBYTE day; /* day } */ | |
| 889 UBYTE hour; /* hour } */ | |
| 890 UBYTE minute; /* minute } = time */ | |
| 891 UBYTE second; /* second } */ | |
| 892 UBYTE id; /* identifier */ | |
| 893 UBYTE len; /* length of BCD number */ | |
| 894 UBYTE numTp; /* TON and NPI - bitmap same as EF_LDN */ | |
| 895 UBYTE dldNum[10]; /* calling number */ | |
| 896 UBYTE ccp; /* capability/configuration identifier */ | |
| 897 UBYTE ext1; /* extension1 record identifier */ | |
| 898 } EF_LRN; | |
| 899 | |
| 900 #define SIZE_EF_LRN 23 | |
| 901 #define NR_EF_LRN 1 | |
| 902 | |
| 903 /* | |
| 904 * id bits | |
| 905 * _______________________________________________________ | |
| 906 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 907 * |------|------|------|------|------|------|------|------| | |
| 908 * |reserved |type | | |
| 909 * ------------------------------------------------------- | |
| 910 */ | |
| 911 | |
| 912 | |
| 913 /******************************************************************** | |
| 914 * | |
| 915 * Field LAST MTC MISSED NUMBERS - LMN | |
| 916 * | |
| 917 ********************************************************************/ | |
| 918 | |
| 919 typedef struct pcm_EFlmn_Type | |
| 920 { | |
| 921 UBYTE year; /* year } */ | |
| 922 UBYTE month; /* month } = date */ | |
| 923 UBYTE day; /* day } */ | |
| 924 UBYTE hour; /* hour } */ | |
| 925 UBYTE minute; /* minute } = time */ | |
| 926 UBYTE second; /* second } */ | |
| 927 UBYTE id; /* identifier - bitmap same as EF_LRN */ | |
| 928 UBYTE len; /* length of BCD number */ | |
| 929 UBYTE numTp; /* TON and NPI - bitmap same as EF_LDN */ | |
| 930 UBYTE dldNum[10]; /* calling number */ | |
| 931 UBYTE ccp; /* capability/configuration identifier */ | |
| 932 UBYTE ext1; /* extension1 record identifier */ | |
| 933 } EF_LMN; | |
| 934 | |
| 935 #define SIZE_EF_LMN 21 | |
| 936 #define NR_EF_LMN 1 | |
| 937 | |
| 938 | |
| 939 /******************************************************************** | |
| 940 * | |
| 941 * Field USER PERSONAL NUMBERS - UPN | |
| 942 * | |
| 943 ********************************************************************/ | |
| 944 | |
| 945 typedef struct pcm_EFupn_Type | |
| 946 { | |
| 947 UBYTE alphId[10]; /* alpha identifier */ | |
| 948 UBYTE len; /* length of BCD number */ | |
| 949 UBYTE numTp; /* TON and NPI - bitmap same as EF_LDN */ | |
| 950 UBYTE usrNum[10]; /* number */ | |
| 951 UBYTE ccp; /* capability/configuration identifier */ | |
| 952 UBYTE ext1; /* extension1 record identifier */ | |
| 953 } EF_UPN; | |
| 954 | |
| 955 #define SIZE_EF_UPN 24 | |
| 956 #define NR_EF_UPN 1 | |
| 957 | |
| 958 | |
| 959 /******************************************************************** | |
| 960 * | |
| 961 * Field MAILBOX NUMBERS - MBN | |
| 962 * | |
| 963 ********************************************************************/ | |
| 964 | |
| 965 typedef struct pcm_EFmbn_Type | |
| 966 { | |
| 967 UBYTE alphId[10]; /* alpha identifier */ | |
| 968 UBYTE len; /* length of BCD number */ | |
| 969 UBYTE numTp; /* TON and NPI - bitmap same as EF_LDN */ | |
| 970 UBYTE mbNum[10]; /* number */ | |
| 971 } EF_MBN; | |
| 972 | |
| 973 #define SIZE_EF_MBN 22 | |
| 974 #define NR_EF_MBN 4 | |
| 975 | |
| 976 | |
| 977 /******************************************************************** | |
| 978 * | |
| 979 * Field VOICE MAIL NUMBER - VMN | |
| 980 * | |
| 981 ********************************************************************/ | |
| 982 | |
| 983 /* | |
| 984 * note that with new 04.08 the called party bcd number of the CC | |
| 985 * protocol can have up to 43 octets, 3 are used for other things | |
| 986 * than the BCD coded digits | |
| 987 */ | |
| 988 | |
| 989 #define MAX_CALLED_PARTY_BCD_NO_OCTETS 40 | |
| 990 | |
| 991 typedef struct pcm_EFvmn_Type | |
| 992 { | |
| 993 UBYTE vmNum[MAX_CALLED_PARTY_BCD_NO_OCTETS + 1]; /* voice mail number */ | |
| 994 UBYTE numTp; /* TON and NPI - bitmap same as EF_LDN */ | |
| 995 } EF_VMN; | |
| 996 | |
| 997 #define SIZE_EF_VMN (MAX_CALLED_PARTY_BCD_NO_OCTETS + 1 + 1) | |
| 998 #define NR_EF_VMN 1 | |
| 999 | |
| 1000 | |
| 1001 /******************************************************************** | |
| 1002 * | |
| 1003 * Field CALL TIMER - CTIM | |
| 1004 * | |
| 1005 ********************************************************************/ | |
| 1006 | |
| 1007 typedef struct pcm_EFctim_Type | |
| 1008 { | |
| 1009 UBYTE moVcDrHm[4]; /* MO voice duration home PLMN */ | |
| 1010 UBYTE mtVcDrHm[4]; /* MT voice duration home PLMN */ | |
| 1011 UBYTE moDtDrHm[4]; /* MO data duration home PLMN */ | |
| 1012 UBYTE mtDtDrHm[4]; /* MT data duration home PLMN */ | |
| 1013 UBYTE moFxDrHm[4]; /* MO fax duration home PLMN */ | |
| 1014 UBYTE mtFxDrHm[4]; /* MT fax duration home PLMN */ | |
| 1015 UBYTE moVcDrRm[4]; /* MO voice duration roaming */ | |
| 1016 UBYTE mtVcDrRm[4]; /* MT voice duration roaming */ | |
| 1017 UBYTE moDtDrRm[4]; /* MO data duration roaming */ | |
| 1018 UBYTE mtDtDrRm[4]; /* MT data duration roaming */ | |
| 1019 UBYTE moFxDrRm[4]; /* MO fax duration roaming */ | |
| 1020 UBYTE mtFxDrRm[4]; /* MT fax duration roaming */ | |
| 1021 } EF_CTIM; | |
| 1022 | |
| 1023 #define SIZE_EF_CTIM 48 | |
| 1024 #define NR_EF_CTIM 1 | |
| 1025 | |
| 1026 | |
| 1027 /******************************************************************** | |
| 1028 * | |
| 1029 * Field CALL COUNTER - CCNT | |
| 1030 * | |
| 1031 ********************************************************************/ | |
| 1032 | |
| 1033 typedef struct pcm_EFccnt_Type | |
| 1034 { | |
| 1035 UBYTE Total[4]; /* total duration */ | |
| 1036 UBYTE moVcDrHm[4]; /* MO voice counter home PLMN */ | |
| 1037 UBYTE mtVcDrHm[4]; /* MT voice counter home PLMN */ | |
| 1038 UBYTE moDtDrHm[4]; /* MO data counter home PLMN */ | |
| 1039 UBYTE mtDtDrHm[4]; /* MT data counter home PLMN */ | |
| 1040 UBYTE moFxDrHm[4]; /* MO fax counter home PLMN */ | |
| 1041 UBYTE mtFxDrHm[4]; /* MT fax counter home PLMN */ | |
| 1042 UBYTE moVcDrRm[4]; /* MO voice counter roaming */ | |
| 1043 UBYTE mtVcDrRm[4]; /* MT voice counter roaming */ | |
| 1044 UBYTE moDtDrRm[4]; /* MO data counter roaming */ | |
| 1045 UBYTE mtDtDrRm[4]; /* MT data counter roaming */ | |
| 1046 UBYTE moFxDrRm[4]; /* MO fax counter roaming */ | |
| 1047 UBYTE mtFxDrRm[4]; /* MT fax counter roaming */ | |
| 1048 } EF_CCNT; | |
| 1049 | |
| 1050 #define SIZE_EF_CCNT 52 | |
| 1051 #define NR_EF_CCNT 1 | |
| 1052 | |
| 1053 | |
| 1054 /******************************************************************** | |
| 1055 * | |
| 1056 * Field EMERGENCY CALL CODES - ECC | |
| 1057 * | |
| 1058 ********************************************************************/ | |
| 1059 | |
| 1060 typedef struct pcm_EFecc_Type | |
| 1061 { | |
| 1062 UBYTE ecc1[3]; /* emergency call code 1 */ | |
| 1063 UBYTE ecc2[3]; /* emergency call code 2 */ | |
| 1064 UBYTE ecc3[3]; /* emergency call code 3 */ | |
| 1065 UBYTE ecc4[3]; /* emergency call code 4 */ | |
| 1066 UBYTE ecc5[3]; /* emergency call code 5 */ | |
| 1067 } EF_ECC; | |
| 1068 | |
| 1069 #define SIZE_EF_ECC 15 | |
| 1070 #define NR_EF_ECC 1 | |
| 1071 | |
| 1072 | |
| 1073 /******************************************************************** | |
| 1074 * | |
| 1075 * Field ORGANIZER AND ALARM - ORG | |
| 1076 * | |
| 1077 ********************************************************************/ | |
| 1078 | |
| 1079 typedef struct pcm_EForg_Type | |
| 1080 { | |
| 1081 UBYTE date[6]; /* year, month, day, hour, minute, second */ | |
| 1082 UBYTE alrm; /* alarm */ | |
| 1083 UBYTE alphMem[16]; /* alpha memo */ | |
| 1084 } EF_ORG; | |
| 1085 | |
| 1086 #define SIZE_EF_ORG 23 | |
| 1087 #define NR_EF_ORG 1 | |
| 1088 | |
| 1089 /* | |
| 1090 * alrm bits | |
| 1091 * _______________________________________________________ | |
| 1092 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 1093 * |------|------|------|------|------|------|------|------| | |
| 1094 * |reserved |type |stat | | |
| 1095 * ------------------------------------------------------- | |
| 1096 */ | |
| 1097 #define alrm_stat 0x00000001,0 | |
| 1098 #define alrm_statm 0x00000001 | |
| 1099 #define alrm_stats 0 | |
| 1100 #define alrm_type 0x0000000E,1 | |
| 1101 #define alrm_typem 0x0000000E | |
| 1102 #define alrm_types 1 | |
| 1103 | |
| 1104 | |
| 1105 /******************************************************************** | |
| 1106 * | |
| 1107 * Field CAPABILITY AND CONFIGURATION PARAMETERS - CCP | |
| 1108 * | |
| 1109 ********************************************************************/ | |
| 1110 | |
| 1111 typedef struct pcm_EFccp_Type | |
| 1112 { | |
| 1113 UBYTE usrRate; /* user rate */ | |
| 1114 UBYTE bearServ; /* bearer service */ | |
| 1115 UBYTE conElem; /* connection element */ | |
| 1116 UBYTE stopBits; /* stop bits */ | |
| 1117 UBYTE dataBits; /* data bits */ | |
| 1118 UBYTE parity; /* parity */ | |
| 1119 UBYTE flowCntrl; /* flow control */ | |
| 1120 } EF_CCP; | |
| 1121 | |
| 1122 #define SIZE_EF_CCP 7 | |
| 1123 #define NR_EF_CCP 1 | |
| 1124 | |
| 1125 | |
| 1126 /******************************************************************** | |
| 1127 * | |
| 1128 * Field EXTENSION 1 - EXT1 | |
| 1129 * | |
| 1130 ********************************************************************/ | |
| 1131 | |
| 1132 typedef struct pcm_EFext1_Type | |
| 1133 { | |
| 1134 UBYTE recTp; /* record type */ | |
| 1135 UBYTE extDat[11]; /* extension data */ | |
| 1136 UBYTE id; /* identifier */ | |
| 1137 } EF_EXT1; | |
| 1138 | |
| 1139 #define SIZE_EF_EXT1 13 | |
| 1140 #define NR_EF_EXT1 1 | |
| 1141 | |
| 1142 /* | |
| 1143 * recTp bits | |
| 1144 * _______________________________________________________ | |
| 1145 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 1146 * |------|------|------|------|------|------|------|------| | |
| 1147 * |reserved |type | | |
| 1148 * ------------------------------------------------------- | |
| 1149 */ | |
| 1150 | |
| 1151 | |
| 1152 /******************************************************************** | |
| 1153 * | |
| 1154 * Field SIM LOCK & EXTENDED SIM LOCK (use alternatively) - SIMLCK | |
| 1155 * | |
| 1156 ********************************************************************/ | |
| 1157 | |
| 1158 typedef struct pcm_EFsimlck_Type | |
| 1159 { | |
| 1160 UBYTE locks1; /* lock byte 1 */ | |
| 1161 UBYTE locks2; /* lock byte 2 */ | |
| 1162 UBYTE cnt; /* unlock attempt counter */ | |
| 1163 UBYTE maxcnt; /* maximum attempt */ | |
| 1164 UBYTE PKey[8]; /* P control key */ | |
| 1165 UBYTE SPKey[8]; /* SP control key */ | |
| 1166 UBYTE NSKey[8]; /* NS control key */ | |
| 1167 UBYTE CKey[8]; /* C control key */ | |
| 1168 UBYTE NKey[8]; /* N control key */ | |
| 1169 UBYTE len_imsi; /* length of IMSI */ | |
| 1170 UBYTE imsi[15]; /* IMSI */ | |
| 1171 UBYTE gidl1; /* group identifier level 1 */ | |
| 1172 UBYTE gidl2; /* group identifier level 2 */ | |
| 1173 } EF_SIMLCK; | |
| 1174 | |
| 1175 #define SIZE_EF_SIMLCK 62 | |
| 1176 #define NR_EF_SIMLCK 1 | |
| 1177 | |
| 1178 | |
| 1179 typedef struct pcm_EFsimlckext_Type | |
| 1180 { | |
| 1181 UBYTE locks1; /* lock byte 1 */ | |
| 1182 UBYTE locks2; /* lock byte 2 */ | |
| 1183 UBYTE cnt; /* unlock attempt counter */ | |
| 1184 UBYTE maxcnt; /* maximum attempt */ | |
| 1185 UBYTE PKey[8]; /* P control key */ | |
| 1186 UBYTE SPKey[8]; /* SP control key */ | |
| 1187 UBYTE NSKey[8]; /* NS control key */ | |
| 1188 UBYTE CKey[8]; /* C control key */ | |
| 1189 UBYTE NKey[8]; /* N control key */ | |
| 1190 UBYTE len_p_imsi; /* length of IMSI P-Lock */ | |
| 1191 UBYTE p_imsi[15]; /* IMSI P-Lock */ | |
| 1192 UBYTE len_sp_imsi; /* length of IMSI SP-Lock */ | |
| 1193 UBYTE sp_imsi[15]; /* IMSI SP-Lock */ | |
| 1194 UBYTE len_ns_imsi; /* length of IMSI NS-Lock */ | |
| 1195 UBYTE ns_imsi[15]; /* IMSI NS-Lock */ | |
| 1196 UBYTE len_c_imsi; /* length of IMSI C-Lock */ | |
| 1197 UBYTE c_imsi[15]; /* IMSI C-Lock */ | |
| 1198 UBYTE len_n_imsi; /* length of IMSI N-Lock */ | |
| 1199 UBYTE n_imsi[15]; /* IMSI N-Lock */ | |
| 1200 UBYTE len_u_imsi; /* length of IMSI U-Lock */ | |
| 1201 UBYTE u_imsi[15]; /* IMSI U-Lock */ | |
| 1202 UBYTE gidl1; /* group identifier level 1 */ | |
| 1203 UBYTE gidl2; /* group identifier level 2 */ | |
| 1204 } EF_SIMLCKEXT; | |
| 1205 | |
| 1206 #define SIZE_EF_SIMLCKEXT 142 | |
| 1207 #define NR_EF_SIMLCKEXT 1 | |
| 1208 | |
| 1209 /* | |
| 1210 * locks1 bits | |
| 1211 * _______________________________________________________ | |
| 1212 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 1213 * |------|------|------|------|------|------|------|------| | |
| 1214 * |splock |nslock |nlock |plock | | |
| 1215 * ------------------------------------------------------- | |
| 1216 */ | |
| 1217 #define plock 0x00000003,0 | |
| 1218 #define plockm 0x00000003 | |
| 1219 #define plocks 0 | |
| 1220 #define nlock 0x0000000C,2 | |
| 1221 #define nlockm 0x0000000C | |
| 1222 #define nlocks 2 | |
| 1223 #define nslock 0x00000030,4 | |
| 1224 #define nslockm 0x00000030 | |
| 1225 #define nslocks 4 | |
| 1226 #define spslock 0x000000C0,6 | |
| 1227 #define splockm 0x000000C0 | |
| 1228 #define splocks 6 | |
| 1229 | |
| 1230 /* | |
| 1231 * locks2 bits | |
| 1232 * _______________________________________________________ | |
| 1233 * |8 |7 |6 |5 |4 |3 |2 |1 | | |
| 1234 * |------|------|------|------|------|------|------|------| | |
| 1235 * |reserved |clock | | |
| 1236 * ------------------------------------------------------- | |
| 1237 */ | |
| 1238 #define clock 0x00000003,0 | |
| 1239 #define clockm 0x00000003 | |
| 1240 #define clocks 0 | |
| 1241 | |
| 1242 | |
| 1243 /******************************************************************** | |
| 1244 * | |
| 1245 * Field MAINTENANCE INFORMATION - MAIN | |
| 1246 * | |
| 1247 ********************************************************************/ | |
| 1248 | |
| 1249 /* | |
| 1250 * T.B.D. | |
| 1251 */ | |
| 1252 | |
| 1253 #define SIZE_EF_MAIN 8 | |
| 1254 #define NR_EF_MAIN 1 | |
| 1255 | |
| 1256 | |
| 1257 /******************************************************************** | |
| 1258 * | |
| 1259 * Field SPECIAL FUNCTION KEY - SFK | |
| 1260 * | |
| 1261 ********************************************************************/ | |
| 1262 | |
| 1263 /* | |
| 1264 * T.B.D. | |
| 1265 */ | |
| 1266 | |
| 1267 #define SIZE_EF_SFK 8 | |
| 1268 #define NR_EF_SFK 1 | |
| 1269 | |
| 1270 | |
| 1271 /******************************************************************** | |
| 1272 * | |
| 1273 * Field FAULT CONDITIONS - FAULT | |
| 1274 * | |
| 1275 ********************************************************************/ | |
| 1276 | |
| 1277 /* | |
| 1278 * T.B.D. | |
| 1279 */ | |
| 1280 | |
| 1281 #define SIZE_EF_FAULT 8 | |
| 1282 #define NR_EF_FAULT 1 | |
| 1283 | |
| 1284 | |
| 1285 /******************************************************************** | |
| 1286 * | |
| 1287 * Field DEBUG INFORMATION - DEBUG | |
| 1288 * | |
| 1289 ********************************************************************/ | |
| 1290 | |
| 1291 /* | |
| 1292 * T.B.D. | |
| 1293 */ | |
| 1294 | |
| 1295 #define SIZE_EF_DEBUG 8 | |
| 1296 #define NR_EF_DEBUG 1 | |
| 1297 | |
| 1298 | |
| 1299 /******************************************************************** | |
| 1300 * | |
| 1301 * Field POWER MANAGEMENT - POWER | |
| 1302 * | |
| 1303 ********************************************************************/ | |
| 1304 | |
| 1305 /* | |
| 1306 * T.B.D. | |
| 1307 */ | |
| 1308 | |
| 1309 #define SIZE_EF_POWER 8 | |
| 1310 #define NR_EF_POWER 1 | |
| 1311 | |
| 1312 | |
| 1313 /******************************************************************** | |
| 1314 * | |
| 1315 * Field KEYBOARD MAPPING - KEYB | |
| 1316 * | |
| 1317 ********************************************************************/ | |
| 1318 | |
| 1319 typedef struct pcm_EFkbd_Type | |
| 1320 { | |
| 1321 UBYTE logical_key [32]; /* logical key map */ | |
| 1322 UBYTE raw_key [32]; /* raw key map */ | |
| 1323 } EF_KBD; | |
| 1324 | |
| 1325 #define SIZE_EF_KEYB 64 | |
| 1326 #define NR_EF_KEYB 1 | |
| 1327 | |
| 1328 | |
| 1329 /******************************************************************** | |
| 1330 * | |
| 1331 * Field RADIO PARAMETERS - RADIO | |
| 1332 * | |
| 1333 ********************************************************************/ | |
| 1334 | |
| 1335 /* | |
| 1336 * T.B.D. | |
| 1337 */ | |
| 1338 | |
| 1339 #define SIZE_EF_RADIO 8 | |
| 1340 #define NR_EF_RADIO 1 | |
| 1341 | |
| 1342 | |
| 1343 /******************************************************************** | |
| 1344 * | |
| 1345 * Field MANUFACTURER - CGMI | |
| 1346 * | |
| 1347 ********************************************************************/ | |
| 1348 | |
| 1349 #define SIZE_EF_CGMI_DATA 20 /* value depends on manufacturer spec. */ | |
| 1350 | |
| 1351 typedef struct pcm_EFcgmi_Type | |
| 1352 { | |
| 1353 UBYTE data[SIZE_EF_CGMI_DATA]; /* name of manufacturer */ | |
| 1354 } EF_CGMI; | |
| 1355 | |
| 1356 #define SIZE_EF_CGMI (SIZE_EF_CGMI_DATA) | |
| 1357 #define NR_EF_CGMI 1 | |
| 1358 | |
| 1359 | |
| 1360 /******************************************************************** | |
| 1361 * | |
| 1362 * Field IDENTIFICATION INFORMATION - INF0 | |
| 1363 * | |
| 1364 ********************************************************************/ | |
| 1365 | |
| 1366 #define SIZE_EF_INF0_DATA 20 /* value depends on manufacturer spec. */ | |
| 1367 | |
| 1368 typedef struct pcm_EFinf0_Type | |
| 1369 { | |
| 1370 UBYTE data[SIZE_EF_INF0_DATA]; /* identification information */ | |
| 1371 } EF_INF0; | |
| 1372 | |
| 1373 #define SIZE_EF_INF0 (SIZE_EF_INF0_DATA) | |
| 1374 #define NR_EF_INF0 2 | |
| 1375 | |
| 1376 | |
| 1377 /******************************************************************** | |
| 1378 * | |
| 1379 * Field MODEL - CGMM | |
| 1380 * | |
| 1381 ********************************************************************/ | |
| 1382 | |
| 1383 #define SIZE_EF_CGMM_DATA 20 /* value depends on manufacturer spec. */ | |
| 1384 | |
| 1385 typedef struct pcm_EFcgmm_Type | |
| 1386 { | |
| 1387 UBYTE data[SIZE_EF_CGMM_DATA]; /* name of product */ | |
| 1388 } EF_CGMM; | |
| 1389 | |
| 1390 #define SIZE_EF_CGMM (SIZE_EF_CGMM_DATA) | |
| 1391 #define NR_EF_CGMM 1 | |
| 1392 | |
| 1393 | |
| 1394 /******************************************************************** | |
| 1395 * | |
| 1396 * Field REVISION - CGMR | |
| 1397 * | |
| 1398 ********************************************************************/ | |
| 1399 | |
| 1400 #define SIZE_EF_CGMR_DATA 20 /* value depends on manufacturer spec. */ | |
| 1401 | |
| 1402 typedef struct pcm_EFcgmr_Type | |
| 1403 { | |
| 1404 UBYTE data[SIZE_EF_CGMR_DATA]; /* version of product */ | |
| 1405 } EF_CGMR; | |
| 1406 | |
| 1407 #define SIZE_EF_CGMR (SIZE_EF_CGMR_DATA) | |
| 1408 #define NR_EF_CGMR 1 | |
| 1409 | |
| 1410 | |
| 1411 /******************************************************************** | |
| 1412 * | |
| 1413 * Field PRODUCT SERIAL NUMBER - CGSN | |
| 1414 * | |
| 1415 ********************************************************************/ | |
| 1416 | |
| 1417 #define SIZE_EF_CGSN_DATA 20 /* value depends on manufacturer spec. */ | |
| 1418 | |
| 1419 typedef struct pcm_EFcgsn_Type | |
| 1420 { | |
| 1421 UBYTE data[SIZE_EF_CGSN_DATA]; /* serial number of product */ | |
| 1422 } EF_CGSN; | |
| 1423 | |
| 1424 #define SIZE_EF_CGSN (SIZE_EF_CGSN_DATA) | |
| 1425 #define NR_EF_CGSN 1 | |
| 1426 | |
| 1427 | |
| 1428 /******************************************************************** | |
| 1429 * | |
| 1430 * Field SMS PROFILE - SMSPRFL | |
| 1431 * | |
| 1432 ********************************************************************/ | |
| 1433 | |
| 1434 #define SIZE_EF_SMSPRFL_SCA 20 | |
| 1435 #define SIZE_EF_SMSPRFL_MIDS 40 | |
| 1436 #define SIZE_EF_SMSPRFL_DCSS 20 | |
| 1437 #define SIZE_EF_SMSPRFL_VPABS 14 | |
| 1438 | |
| 1439 typedef struct pcm_EFsmsprfl_Type | |
| 1440 { | |
| 1441 UBYTE vldFlag; /* valid flag */ | |
| 1442 UBYTE CSCAsca[SIZE_EF_SMSPRFL_SCA]; /* service center address */ | |
| 1443 UBYTE CSCAlenSca; /* length of service center address */ | |
| 1444 UBYTE CSCAton; /* type of number */ | |
| 1445 UBYTE CSCAnpi; /* numbering plan identification */ | |
| 1446 UBYTE CSCBmode; /* cell broadcast mode */ | |
| 1447 UBYTE CSCBmids[SIZE_EF_SMSPRFL_MIDS]; /* message identifiers */ | |
| 1448 UBYTE CSCBdcss[SIZE_EF_SMSPRFL_DCSS]; /* data coding schemes */ | |
| 1449 UBYTE CSMPfo; /* first octet */ | |
| 1450 UBYTE CSMPvprel; /* validity period relative */ | |
| 1451 UBYTE CSMPvpabs[SIZE_EF_SMSPRFL_VPABS]; /* validity period absolute */ | |
| 1452 UBYTE CSMPpid; /* protocol identifier */ | |
| 1453 UBYTE CSMPdcs; /* data coding scheme */ | |
| 1454 } EF_SMSPRFL; | |
| 1455 | |
| 1456 #define SIZE_EF_SMSPRFL (SIZE_EF_SMSPRFL_SCA + \ | |
| 1457 SIZE_EF_SMSPRFL_MIDS + \ | |
| 1458 SIZE_EF_SMSPRFL_DCSS + \ | |
| 1459 SIZE_EF_SMSPRFL_VPABS + 9) | |
| 1460 #define NR_EF_SMSPRFL 2 | |
| 1461 | |
| 1462 /* | |
| 1463 * vldFlag values | |
| 1464 */ | |
| 1465 #define EF_SMSPRFL_VLD 0x00 | |
| 1466 #define EF_SMSPRFL_INVLD 0xFF | |
| 1467 | |
| 1468 | |
| 1469 /******************************************************************** | |
| 1470 * | |
| 1471 * Field PLMN IDENTIFIER - PLMN | |
| 1472 * | |
| 1473 ********************************************************************/ | |
| 1474 | |
| 1475 #define SIZE_EF_PLMN_MCC 2 | |
| 1476 #define SIZE_EF_PLMN_MNC 2 | |
| 1477 #define SIZE_EF_PLMN_LONG 20 | |
| 1478 #define SIZE_EF_PLMN_SHRT 10 | |
| 1479 | |
| 1480 typedef struct pcm_EFplmn_Type | |
| 1481 { | |
| 1482 UBYTE mcc[SIZE_EF_PLMN_MCC]; /* mobile country code */ | |
| 1483 UBYTE mnc[SIZE_EF_PLMN_MNC]; /* mobile network code */ | |
| 1484 UBYTE lngNam[SIZE_EF_PLMN_LONG]; /* MT voice counter home PLMN */ | |
| 1485 UBYTE shrtNam[SIZE_EF_PLMN_SHRT]; /* MO data counter home PLMN */ | |
| 1486 } EF_PLMN; | |
| 1487 | |
| 1488 #define SIZE_EF_PLMN (SIZE_EF_PLMN_MCC + \ | |
| 1489 SIZE_EF_PLMN_MNC + \ | |
| 1490 SIZE_EF_PLMN_LONG + \ | |
| 1491 SIZE_EF_PLMN_SHRT) | |
| 1492 #define NR_EF_PLMN 2 | |
| 1493 | |
| 1494 | |
| 1495 /******************************************************************** | |
| 1496 * | |
| 1497 * Field BCCH INFORMATION - BCCHINF | |
| 1498 * | |
| 1499 ********************************************************************/ | |
| 1500 | |
| 1501 typedef struct pcm_EFbcchinfo_Type | |
| 1502 { | |
| 1503 UBYTE bcch_info[54]; /* content of bcch_info */ | |
| 1504 } EF_BCCHINFO; | |
| 1505 | |
| 1506 #define SIZE_EF_BCCHINFO 54 | |
| 1507 #define NR_EF_BCCHINFO 1 | |
| 1508 | |
| 1509 | |
| 1510 /******************************************************************** | |
| 1511 * | |
| 1512 * Field ALTERNATIVE LINE SERVICE - ALS | |
| 1513 * | |
| 1514 ********************************************************************/ | |
| 1515 | |
| 1516 typedef struct pcm_EFals_Type | |
| 1517 { | |
| 1518 UBYTE selLine; /* selected line */ | |
| 1519 UBYTE statLine; /* status line */ | |
| 1520 } EF_ALS; | |
| 1521 | |
| 1522 #define SIZE_EF_ALS 2 | |
| 1523 #define NR_EF_ALS 1 | |
| 1524 | |
| 1525 | |
| 1526 /******************************************************************** | |
| 1527 * | |
| 1528 * Field LOCATION INFORMATION (GPRS) - LOCGPRS | |
| 1529 * | |
| 1530 ********************************************************************/ | |
| 1531 | |
| 1532 typedef struct pcm_EFlocgprs_Type | |
| 1533 { | |
| 1534 UBYTE ptmsi[4]; /* packet TMSI */ | |
| 1535 UBYTE ptmsi_signature[3]; /* packet TMSI signature value */ | |
| 1536 UBYTE rai[6]; /* routing area information */ | |
| 1537 UBYTE ra_status; /* status of rai */ | |
| 1538 } EF_LOCGPRS; | |
| 1539 | |
| 1540 #define SIZE_EF_LOCGPRS sizeof (EF_LOCGPRS) | |
| 1541 #define NR_EF_LOCGPRS 1 | |
| 1542 | |
| 1543 | |
| 1544 /******************************************************************** | |
| 1545 * | |
| 1546 * Field CIPHERING KEY (GPRS) - KCGPRS | |
| 1547 * | |
| 1548 ********************************************************************/ | |
| 1549 | |
| 1550 typedef struct pcm_EFkcgprs_Type | |
| 1551 { | |
| 1552 UBYTE kc[8]; /* currently used cyphering key */ | |
| 1553 UBYTE cksn; /* ciphering key sequence number of kc */ | |
| 1554 } EF_KCGPRS; | |
| 1555 | |
| 1556 #define SIZE_EF_KCGPRS sizeof (EF_KCGPRS) | |
| 1557 #define NR_EF_KCGPRS 1 | |
| 1558 | |
| 1559 | |
| 1560 /******************************************************************** | |
| 1561 * | |
| 1562 * Field IMSI (GPRS) - IMSIGPRS | |
| 1563 * | |
| 1564 ********************************************************************/ | |
| 1565 | |
| 1566 typedef struct pcm_EFimsigprs_Type | |
| 1567 { | |
| 1568 UBYTE len; /* length IMSI */ | |
| 1569 UBYTE IMSI[8]; /* IMSI */ | |
| 1570 } EF_IMSIGPRS; | |
| 1571 | |
| 1572 #define SIZE_EF_IMSIGPRS sizeof (EF_IMSIGPRS) | |
| 1573 #define NR_EF_IMSIGPRS 1 | |
| 1574 | |
| 1575 | |
| 1576 /******************************************************************** | |
| 1577 * | |
| 1578 * Prototypes | |
| 1579 * | |
| 1580 ********************************************************************/ | |
| 1581 | |
| 1582 EXTERN unsigned char pcm_find_active_pcm_sector (void); | |
| 1583 | |
| 1584 EXTERN void pcm_read_flash (UBYTE *pcm_mem, | |
| 1585 unsigned size, | |
| 1586 UBYTE pcm_sector); | |
| 1587 | |
| 1588 EXTERN drv_Return_Type pcm_erase_flash_sector (UBYTE pcm_sector); | |
| 1589 | |
| 1590 EXTERN drv_Return_Type pcm_write_flash (UBYTE *pcm_mem, | |
| 1591 unsigned size, | |
| 1592 UBYTE pcm_sector); | |
| 1593 | |
| 1594 EXTERN drv_Return_Type pcm_Init (void); | |
| 1595 | |
| 1596 EXTERN void pcm_Exit (void); | |
| 1597 | |
| 1598 EXTERN drv_Return_Type pcm_ReadFile (UBYTE *in_FileName, | |
| 1599 USHORT in_BufferSize, | |
| 1600 UBYTE *out_BufferPtr, | |
| 1601 UBYTE *out_VersionPtr); | |
| 1602 | |
| 1603 EXTERN drv_Return_Type pcm_GetFileInfo (UBYTE *in_FileName, | |
| 1604 pcm_FileInfo_Type *out_FileInfoPtr); | |
| 1605 | |
| 1606 EXTERN drv_Return_Type pcm_ReadRecord (UBYTE *in_FileName, | |
| 1607 USHORT in_Record, | |
| 1608 USHORT in_BufferSize, | |
| 1609 UBYTE *out_BufferPtr, | |
| 1610 UBYTE *out_VersionPtr, | |
| 1611 USHORT *out_MaxRecordsPtr); | |
| 1612 | |
| 1613 EXTERN drv_Return_Type pcm_WriteFile (UBYTE *in_FileName, | |
| 1614 USHORT in_BufferSize, | |
| 1615 UBYTE *in_BufferPtr); | |
| 1616 | |
| 1617 EXTERN drv_Return_Type pcm_WriteRecord (UBYTE *in_FileName, | |
| 1618 USHORT in_Record, | |
| 1619 USHORT in_BufferSize, | |
| 1620 UBYTE *in_BufferPtr); | |
| 1621 | |
| 1622 EXTERN drv_Return_Type pcm_Flush (void); | |
| 1623 | |
| 1624 #endif // ifndef DEF_PCM |
