rjw | 6c1fd8f | 2022-11-30 14:33:01 +0800 | [diff] [blame] | 1 | /***************************************************************************** |
| 2 | * Copyright Statement: |
| 3 | * -------------------- |
| 4 | * This software is protected by Copyright and the information contained |
| 5 | * herein is confidential. The software may not be copied and the information |
| 6 | * contained herein may not be used or disclosed except with the written |
| 7 | * permission of MediaTek Inc. (C) 2016 |
| 8 | * |
| 9 | * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| 10 | * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"") |
| 11 | * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| 12 | * AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| 13 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| 14 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| 15 | * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| 16 | * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| 17 | * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| 18 | * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| 19 | * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| 20 | * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| 21 | * |
| 22 | * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| 23 | * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| 24 | * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| 25 | * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| 26 | * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| 27 | * |
| 28 | * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| 29 | * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| 30 | * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| 31 | * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| 32 | * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| 33 | * |
| 34 | *****************************************************************************/ |
| 35 | /************************************************************* |
| 36 | * |
| 37 | * This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc. |
| 38 | * |
| 39 | * Any unauthorized use inconsistent with the terms of such license is strictly prohibited. |
| 40 | * |
| 41 | * Copyright (c) 1998-2010 VIA Telecom, Inc. All rights reserved. |
| 42 | * |
| 43 | *************************************************************/ |
| 44 | #ifndef _LMDAPI_H_ |
| 45 | #define _LMDAPI_H_ |
| 46 | /***************************************************************************** |
| 47 | * |
| 48 | * FILE NAME : lmdapi.h |
| 49 | * |
| 50 | * DESCRIPTION : |
| 51 | * |
| 52 | * This is the interface include file for LMD. |
| 53 | * It is organized by first defining the EXE mailboxes and signals used. |
| 54 | * After this, the enumerated message IDs are defined. Basic typedefs follow |
| 55 | * this and Following that is the message structure for each message. |
| 56 | * |
| 57 | * NOTE: At the end of the file are typedefs that the PS had expected to find in |
| 58 | * this file during CBP3 development. These are included here as a temporary |
| 59 | * workaround until these issues can be resolved. |
| 60 | * |
| 61 | * HISTORY : |
| 62 | * See Log at end of file |
| 63 | * |
| 64 | *****************************************************************************/ |
| 65 | |
| 66 | |
| 67 | /*---------------------------------------------------------------------------- |
| 68 | Include Files |
| 69 | ----------------------------------------------------------------------------*/ |
| 70 | |
| 71 | #include "sysdefs.h" |
| 72 | #include "sysapi.h" |
| 73 | #include "rlpwapi.h" |
| 74 | #include "lmd_msgid.h" |
| 75 | #include "lmd_audio.h" |
| 76 | |
| 77 | /*---------------------------------------------------------------------------- |
| 78 | * EXE Interfaces - Definition of Signals and Mailboxes |
| 79 | *----------------------------------------------------------------------------*/ |
| 80 | /* array size for long code mask */ |
| 81 | #define LMD_LONG_CODE_MASK_SIZE 6 |
| 82 | #define MOD_DUMMY 0 |
| 83 | |
| 84 | /* Voice Memo prefetch buffer size = (max size frame + the rate word) X 4. |
| 85 | * |
| 86 | * LMD defines a static buffer SpchData[] where it prefetches the speech |
| 87 | * data during voice memo or answering machine playback. There are |
| 88 | * conditions where FSM is late in doing the block reads and LMD would |
| 89 | * be starving of data. By making the buffer size 4 times bigger than |
| 90 | * the maximun speech packet size we guarantee that LMD will always have |
| 91 | * at least one packet in prefetch buffer. |
| 92 | */ |
| 93 | |
| 94 | /*--------------------------------------------------------------- |
| 95 | * Message IDs for signals and commands sent to LMD |
| 96 | *---------------------------------------------------------------*/ |
| 97 | /* Maximum number of SCH */ |
| 98 | |
| 99 | #ifdef SYS_OPTION_SCH_RAM_INUSE |
| 100 | #define MAX_PDU_NUM 8 /* now 8 for one SCH */ |
| 101 | #else |
| 102 | #define MAX_PDU_NUM 1 /* now 8 for one SCH */ |
| 103 | #endif |
| 104 | |
| 105 | #define MAX_ACCESS_MSG_LEN 111 |
| 106 | #define MAX_MSG_LEN 255 |
| 107 | #define PCH_FRAME_LEN 24 |
| 108 | #define MAX_FCH_FRAME_BYTE_LEN 34 |
| 109 | |
| 110 | /* |
| 111 | ** Messages of LmdCmdMsgIdT type |
| 112 | ** should be sent to the LMD_CMD_MAILBOX. |
| 113 | */ |
| 114 | #include "lmd_msgid.h" |
| 115 | |
| 116 | |
| 117 | /*Move some structures form dspmapi.h to here*/ |
| 118 | /* Forward channel modem channel buffer sizes in kal_uint16 */ |
| 119 | #define IPC_DTA_MBOX_M2C_CH0_SIZE 17 |
| 120 | #define IPC_DTA_MBOX_M2C_CH1_SIZE 30 |
| 121 | #define IPC_DTA_MBOX_M2C_CH2_SIZE 47 |
| 122 | |
| 123 | /* Reverse channel modem channel buffer sizes in kal_uint16 */ |
| 124 | #define IPC_DTA_MBOX_C2M_CH0_SIZE 17 |
| 125 | #define IPC_DTA_MBOX_C2M_CH1_SIZE 17 |
| 126 | #define IPC_DTA_MBOX_C2M_CH2_SIZE 390 |
| 127 | /* Reverse channel signaling buffer size in kal_uint16 */ |
| 128 | #define IPC_DTA_MBOX_C2M_SIGBUF_SIZE 5 |
| 129 | |
| 130 | /* define for varais in lmddbuf.c*/ |
| 131 | #define IPC_DTA_MBOX_C2M_CH0_SIZE_IN_DB_WORDS 9 |
| 132 | #define IPC_DTA_MBOX_C2M_CH2_SIZE_IN_DB_WORDS 195 |
| 133 | |
| 134 | typedef enum |
| 135 | { |
| 136 | LMD_REV_NULL_CHNL = 0, |
| 137 | LMD_REV_ACCESS_CHNL, |
| 138 | LMD_REV_EACH_CHNL, |
| 139 | LMD_REV_TRAFFIC_CHNL |
| 140 | } LmdRevChanTypeT; |
| 141 | |
| 142 | typedef enum /* Rev fch rate */ |
| 143 | { |
| 144 | R_FULL = 0, |
| 145 | R_HALF, |
| 146 | R_QUARTER, |
| 147 | R_EIGHTH, |
| 148 | R_ZERO |
| 149 | } LmdRevFundRateTypeT; |
| 150 | |
| 151 | typedef enum |
| 152 | { |
| 153 | IPC_FWD_FRAME_BLANK = 0x0, |
| 154 | IPC_FWD_FRAME_EIGHTH = 0x1, |
| 155 | IPC_FWD_FRAME_QUARTER = 0x2, /* not used for SSO 3 */ |
| 156 | IPC_FWD_FRAME_HALF = 0x3, |
| 157 | IPC_FWD_FRAME_FULL = 0x4, |
| 158 | IPC_FWD_FRAME_ERASURE = 0xE, |
| 159 | IPC_FWD_FRAME_FULL_LIKELY = 0xF /* used only for SSO's 1&3 */ |
| 160 | } LmdFwdFrameRateT; |
| 161 | |
| 162 | typedef enum |
| 163 | { |
| 164 | FER_FCH = 0, |
| 165 | FER_SCH, |
| 166 | FER_MAX_CHANNELS |
| 167 | } LmdFerStatsChannelsT; |
| 168 | |
| 169 | typedef enum |
| 170 | { |
| 171 | FSYNC, |
| 172 | FPAGE, |
| 173 | FBCCH, |
| 174 | FQPCH, |
| 175 | FCPCCH, |
| 176 | FCACH, |
| 177 | FCCCH, |
| 178 | FDCCH, |
| 179 | FFCH, /* also for traffic channel in IS95 FTCH */ |
| 180 | FSCH, |
| 181 | F_MON_CHNL, |
| 182 | FPDCH, |
| 183 | FWD_MAX_CHNL_TYPS |
| 184 | } LmdFwdChnlTypeT; |
| 185 | |
| 186 | /*--------------------------------------------------------------- |
| 187 | * Basic Types |
| 188 | *---------------------------------------------------------------*/ |
| 189 | |
| 190 | /* |
| 191 | ** The Logic To Physical Mapping (LPM) table is used in |
| 192 | ** the service configuration messages. |
| 193 | */ |
| 194 | #define MAX_LPM_ENTRIES 15 |
| 195 | |
| 196 | typedef struct |
| 197 | { |
| 198 | kal_uint8 SrId; |
| 199 | kal_uint8 LogicalResource; |
| 200 | kal_uint8 PhysicalResource; |
| 201 | kal_bool ForwardFlag; |
| 202 | kal_bool ReverseFlag; |
| 203 | kal_uint8 Priority; |
| 204 | } LmdLpmT; |
| 205 | |
| 206 | |
| 207 | /*--------------------------------------------------------------- |
| 208 | * Message Definitions |
| 209 | * There is a section for each defined message type. If |
| 210 | * there is no MsgT shown, there is no data associated with |
| 211 | * the message. |
| 212 | *---------------------------------------------------------------*/ |
| 213 | |
| 214 | /*LMD_L1D_FWD_DATA_IND_MSG*/ |
| 215 | typedef struct |
| 216 | { |
| 217 | kal_bool FchChnlQuality; |
| 218 | kal_bool SchChnlReady; |
| 219 | kal_bool SchChnlQuality; |
| 220 | kal_uint16 FchEbNt; |
| 221 | kal_uint16 DecodeSucPcgIndex; |
| 222 | kal_uint16 AckReceivePcgIndex; |
| 223 | LmdFwdFrameRateT FchRate; |
| 224 | kal_uint16 FchDataLength; |
| 225 | kal_uint16 SchEbNt; |
| 226 | kal_uint16 SchDataLength; |
| 227 | kal_uint32 *FchDataAddress; |
| 228 | kal_uint32 *SchDataAddress; |
| 229 | } LmdL1dFwdDataIndMsgT; |
| 230 | |
| 231 | |
| 232 | |
| 233 | |
| 234 | |
| 235 | |
| 236 | |
| 237 | |
| 238 | /* |
| 239 | ** LMD_REVERSE_ACCESS_SIG_MSG |
| 240 | */ |
| 241 | typedef struct |
| 242 | { |
| 243 | kal_uint8 MsgLength; /* Length of the message in bytes */ |
| 244 | kal_uint8 MsgData[MAX_ACCESS_MSG_LEN]; /* Starting address of the message */ |
| 245 | } LmdReverseAccessSigMsgT; |
| 246 | |
| 247 | /* The follwoing is for EACH frame durations*/ |
| 248 | typedef enum |
| 249 | { |
| 250 | LMD_FRAME_DURATION_5MS, |
| 251 | LMD_FRAME_DURATION_10MS, |
| 252 | LMD_FRAME_DURATION_20MS |
| 253 | }LmdFrameDurationT; |
| 254 | |
| 255 | /* |
| 256 | ** LMD_EACH_SIG_MSG |
| 257 | */ |
| 258 | typedef struct |
| 259 | { |
| 260 | kal_uint16 FrameNumBits; /* number of bits per frame */ |
| 261 | LmdFrameDurationT FrameDuration; /* Frame duration of EACH:5ms,10ms,20ms*/ |
| 262 | kal_uint16 MsgLength; /* Message length in bytes */ |
| 263 | kal_uint8 MsgData[1]; /* Starting address of the message */ |
| 264 | } LmdReverseEACHSigMsgT; |
| 265 | |
| 266 | /* |
| 267 | ** LMD_REVERSE_TRAFFIC_SIG_MSG |
| 268 | */ |
| 269 | typedef struct |
| 270 | { |
| 271 | kal_uint8 PrevInUse; /* minimum of mob_p_rev and p_rev */ |
| 272 | kal_uint8 retryCount; |
| 273 | kal_uint16 MsgLength; /* Length of message in bytes */ |
| 274 | kal_uint8 MsgData[MAX_MSG_LEN]; |
| 275 | } LmdReverseTrafficSigMsgT; |
| 276 | |
| 277 | /* |
| 278 | ** LMD_ACCESS_PROBE_ABORT_MSG |
| 279 | */ |
| 280 | |
| 281 | /* |
| 282 | ** LMD_TRAFFIC_CHAN_START_MSG |
| 283 | */ |
| 284 | typedef struct |
| 285 | { |
| 286 | kal_uint8 LcMask[LMD_LONG_CODE_MASK_SIZE]; /* Long code Mask */ |
| 287 | kal_uint8 ChInd; /* Channel Indicator: 1=FCH, 2=DCCH, 3=BOTH */ |
| 288 | /* Note that the ch_ind has additional new entries |
| 289 | corresponding to the ExtChInd for PDCH channel |
| 290 | configurations, as follows: |
| 291 | 4 = FPDCH_FCPCCH_RFCH, |
| 292 | 5 = FPDCH_FCPCCH_RDCCH, |
| 293 | 6 = FPDCH_FFCH_RFCH, |
| 294 | 7 = FPDCH_FDCCH_RDCCH, |
| 295 | 8 = FPDCH_RFCH_FFCH_RDCCH, |
| 296 | 9 = FPDCH_RFCH_FFCH_RDCCH_FDCCH */ |
| 297 | |
| 298 | kal_uint16 ForMuxOption; |
| 299 | kal_uint16 RevMuxOption; |
| 300 | kal_uint8 ForRc; /* RC for FCH and DCCH, see Table 3.7.2.3.2.21-3 */ |
| 301 | kal_uint8 RevRc; /* RC for FCH and DCCH, see Table 3.7.2.3.2.21-3 */ |
| 302 | kal_uint8 NumLpmEntries; |
| 303 | LmdLpmT LpmEntries[MAX_LPM_ENTRIES]; |
| 304 | kal_uint8 FrameOffset; |
| 305 | } LmdTrafficChanStartMsgT; |
| 306 | |
| 307 | /* |
| 308 | ** LMD_SERVICE_CONFIGURATION_MSG |
| 309 | */ |
| 310 | #define LMD_MAX_CON_REC 5 |
| 311 | #define LMD_MAX_SCH_NUM 2 |
| 312 | |
| 313 | typedef enum |
| 314 | { |
| 315 | LMD_NO_TRAFFIC, |
| 316 | LMD_PRIMARY_TRAFFIC, |
| 317 | LMD_SECONDARY_TRAFFIC |
| 318 | } LmdTrafficTypeT; |
| 319 | |
| 320 | typedef struct |
| 321 | { |
| 322 | kal_uint8 ConRef; /* service option connection reference */ |
| 323 | kal_uint16 ServiceOption; /* associated service option */ |
| 324 | LmdTrafficTypeT ForTraffic; /* forward traffic type */ |
| 325 | LmdTrafficTypeT RevTraffic; /* reverse traffic type */ |
| 326 | kal_uint8 SrId; |
| 327 | } LmdConnectionRecordT; |
| 328 | |
| 329 | typedef struct |
| 330 | { |
| 331 | kal_uint8 SchId; |
| 332 | kal_bool Coding; /* True-- Turbo is On */ |
| 333 | kal_uint16 SchMux; /* MuxOption of */ |
| 334 | kal_uint8 SchRc; |
| 335 | } LmdSchChanConfigT; |
| 336 | |
| 337 | typedef struct |
| 338 | { |
| 339 | kal_uint16 ForMuxOption; |
| 340 | kal_uint16 RevMuxOption; |
| 341 | kal_uint8 ForNumBits; |
| 342 | kal_uint8 RevNumBits; |
| 343 | kal_uint8 NumConRec; |
| 344 | LmdConnectionRecordT ConRec[LMD_MAX_CON_REC]; |
| 345 | kal_bool FchCcIncl; |
| 346 | SysFchFrameSizeT FchFrameSize; /* valid only if FchCcIncl = 1 */ |
| 347 | kal_uint8 FchForRc; |
| 348 | kal_uint8 FchRevRc; |
| 349 | kal_bool DcchCcIncl; |
| 350 | SysDcchFrameSizeT DcchFrameSize; /* valid only if dcch_cc_incl = 1 */ |
| 351 | kal_uint8 DcchForRc; |
| 352 | kal_uint8 DcchRevRc; |
| 353 | kal_bool ForSchCcIncl; |
| 354 | kal_uint8 NumForSch; /* Number of Fwd SCH*/ |
| 355 | LmdSchChanConfigT ForSchConfig[LMD_MAX_SCH_NUM]; |
| 356 | kal_bool RevSchCcIncl; |
| 357 | kal_uint8 NumRevSch; /* number of Rev SCH*/ |
| 358 | LmdSchChanConfigT RevSchConfig[LMD_MAX_SCH_NUM]; |
| 359 | |
| 360 | kal_bool ForPdchCcIncl; /* If T, the following F-PDCH fields apply */ |
| 361 | kal_uint16 ForPdchMuxOption; |
| 362 | kal_uint8 ForPdchRc; |
| 363 | } LmdServiceConfigurationT; |
| 364 | |
| 365 | /*used for lmdsrvcfg.c*/ |
| 366 | typedef struct |
| 367 | { |
| 368 | kal_uint8 FwdLogicalRes; |
| 369 | kal_uint8 FwdPhysicalResCount; |
| 370 | kal_uint8 FwdPhysicalRes;/* bit map */ |
| 371 | kal_uint8 FwdPhysicalResOn; |
| 372 | LmdTrafficTypeT FwdTraffic; |
| 373 | }ForwardConfigT; |
| 374 | |
| 375 | typedef struct |
| 376 | { |
| 377 | kal_uint8 RevLogicalRes; |
| 378 | kal_uint8 RevPhysicalResCount; |
| 379 | kal_uint8 RevPhysicalRes;/* bit map*/ |
| 380 | kal_uint8 RevPhysicalResOn; |
| 381 | LmdTrafficTypeT RevTraffic; |
| 382 | }ReverseConfigT; |
| 383 | |
| 384 | typedef struct |
| 385 | { |
| 386 | LmdServiceOptionT ServiceOpt; |
| 387 | kal_uint16 SvcTaskId; |
| 388 | }ServiceConfigT; |
| 389 | |
| 390 | typedef struct |
| 391 | { |
| 392 | kal_uint8 priority; |
| 393 | ForwardConfigT forward; |
| 394 | ReverseConfigT reverse; |
| 395 | ServiceConfigT service; |
| 396 | }LmdSridDataT; |
| 397 | |
| 398 | typedef struct |
| 399 | { |
| 400 | LmdServiceConfigurationT SrvcConfig; /* traffic channel service configuration */ |
| 401 | SysActionTimeT ActTime; /* Time this message takes effect */ |
| 402 | kal_bool SrvcConfigNonNegInc; |
| 403 | } LmdServiceConfigurationMsgT; |
| 404 | |
| 405 | |
| 406 | /* |
| 407 | ** LMD_SERVICE_CONFIG_NN_MSG |
| 408 | */ |
| 409 | typedef struct |
| 410 | { |
| 411 | kal_uint8 NumLpmEntries; |
| 412 | LmdLpmT LpmEntries[MAX_LPM_ENTRIES]; |
| 413 | SysActionTimeT ActTime; /* Time this message takes effect */ |
| 414 | } LmdServiceConfigurationNnMsgT; |
| 415 | |
| 416 | typedef struct |
| 417 | { |
| 418 | SysActionTimeT ActTime; /* system time (uint=20 ms) to */ |
| 419 | /* send message */ |
| 420 | LmdServiceOptionT ServiceOption; /* service option number */ |
| 421 | kal_uint8 ConRef; /* connection reference being controled */ |
| 422 | kal_uint8 DataSize; /* control data size in bytes */ |
| 423 | kal_uint8 Data[MAX_MSG_LEN]; /* control data */ |
| 424 | } LmdServiceOptionControlMsgT; |
| 425 | |
| 426 | /* |
| 427 | ** LMD_CONVERSATION_SUBSTATE_CONN_MSG |
| 428 | */ |
| 429 | |
| 430 | /* |
| 431 | ** LMD_CONVERSATION_SUBSTATE_DISC_MSG |
| 432 | */ |
| 433 | |
| 434 | /* |
| 435 | ** LMD_PWR_CTL_PARMS_MSG |
| 436 | */ |
| 437 | typedef struct |
| 438 | { |
| 439 | kal_uint8 ChanMonitor; /* 0 = FCH, 1 = DCCH */ |
| 440 | kal_bool PwrThreshEnable; |
| 441 | kal_uint8 PwrRepThresh; |
| 442 | kal_bool PwrPeriodEnable; |
| 443 | kal_uint8 PwrRepFrames; |
| 444 | kal_uint8 PwrRepDelay; |
| 445 | kal_bool ResetFPC; |
| 446 | } LmdPwrCtlParmsMsgT; |
| 447 | |
| 448 | |
| 449 | typedef struct |
| 450 | { |
| 451 | kal_uint16 ParmId; |
| 452 | kal_uint32 Value; |
| 453 | } LmdRevStatT; |
| 454 | |
| 455 | typedef struct |
| 456 | { |
| 457 | kal_uint16 NumRecs; |
| 458 | LmdRevStatT Rec[1]; |
| 459 | } LmdRevStatSetMsgT; |
| 460 | |
| 461 | typedef enum |
| 462 | { |
| 463 | LMD_FULL_RATE = 0x80, |
| 464 | LMD_HALF_RATE = 0x40, |
| 465 | LMD_QUARTER_RATE = 0x20, |
| 466 | LMD_EIGHTH_RATE = 0x10, |
| 467 | LMD_NULL_RATE = 0x00 |
| 468 | } LmdRatesT; |
| 469 | |
| 470 | |
| 471 | /* |
| 472 | ** LMD_RLP_REV_FUNDICATED_DATA_REQ_MSG |
| 473 | */ |
| 474 | |
| 475 | #define MAX_FUNDICATED_FRAME_SIZE 34 /* Max. size per RLP frame in byte. */ |
| 476 | typedef struct |
| 477 | { |
| 478 | kal_uint8 priSrId; /* SR_ID for Primary Traffic */ |
| 479 | SysRlpFrameRateE priRate; /* frame rate for primary */ |
| 480 | kal_uint8 priData[MAX_FUNDICATED_FRAME_SIZE]; /* data buffer for primary */ |
| 481 | |
| 482 | kal_uint8 secSrId; /* SR_ID for Secondary Traffic */ |
| 483 | SysRlpFrameRateE secRate; /* frame rate for secondary */ |
| 484 | kal_uint8 secData[MAX_FUNDICATED_FRAME_SIZE]; /* data buffer for secondary */ |
| 485 | } LmdRevFundicatedDataReqMsgT; |
| 486 | |
| 487 | #if 0 |
| 488 | /* under construction !*/ |
| 489 | /* under construction !*/ |
| 490 | /* under construction !*/ |
| 491 | /* under construction !*/ |
| 492 | /* under construction !*/ |
| 493 | /* under construction !*/ |
| 494 | /* under construction !*/ |
| 495 | /* under construction !*/ |
| 496 | /* under construction !*/ |
| 497 | /* under construction !*/ |
| 498 | #endif |
| 499 | /* |
| 500 | ** LMD_RLP_REV_SCH_DATA_REQ_MSG |
| 501 | */ |
| 502 | #define NUM_RSCH_FRAMES 8 |
| 503 | #define REV_SCH_NON_RLP_IND 0xFF |
| 504 | #define REV_SCH_RLP_IND 0 |
| 505 | |
| 506 | typedef struct |
| 507 | { |
| 508 | kal_uint8 srId; |
| 509 | kal_uint8 frameFormat; /* The first 2 bits of RLP frame at SCH goes to the lower |
| 510 | 2 bits of frameType */ |
| 511 | SysRlpFrameRateE frameRate; /* The number of byte */ |
| 512 | kal_uint8 pduType; /* MuxPdu Type used for TDSO */ |
| 513 | kal_uint16 frameLen; |
| 514 | kal_uint8* dataPtr; |
| 515 | } LmdPduT; |
| 516 | |
| 517 | typedef struct |
| 518 | { |
| 519 | kal_uint8 schUser; /* Used to indicate if RLP or TDSO uses R-SCH */ |
| 520 | kal_uint8 numSchFrames; /* Number of PDU data packets */ |
| 521 | LmdPduT schFrames[NUM_RSCH_FRAMES]; /* data type defined in PDUOctet */ |
| 522 | } LmdRevSchDataReqMsgT; |
| 523 | |
| 524 | /* |
| 525 | ** LMD_SCCH_REV_DATA_MSG |
| 526 | */ |
| 527 | typedef struct |
| 528 | { |
| 529 | kal_bool IsSecondary; /* False=Primary, True=Secondary */ |
| 530 | kal_uint8 NumberOfSCCH; /* Number of SCCH included */ |
| 531 | kal_uint8* Data[7]; /* data pointed by Data */ |
| 532 | } LmdScchRevDataMsgT; |
| 533 | |
| 534 | /* |
| 535 | ** LMD_SEC_HIGH_MSG, |
| 536 | */ |
| 537 | typedef struct |
| 538 | { |
| 539 | kal_bool SecPriorityHigh; |
| 540 | } LmdSecHighMsgT; |
| 541 | |
| 542 | typedef enum |
| 543 | { |
| 544 | LMD_TRANSMITTER_STATUS_ON, /* Transmitter is off */ |
| 545 | LMD_TRANSMITTER_STATUS_OFF /* Transmitter is on */ |
| 546 | } LmdTransmitterStatusT; |
| 547 | |
| 548 | /* |
| 549 | ** LMD_TRANSMITTER_STATUS_MSG, |
| 550 | */ |
| 551 | typedef struct |
| 552 | { |
| 553 | LmdTransmitterStatusT Status; |
| 554 | } LmdTransmitterStatusMsgT; |
| 555 | |
| 556 | /* |
| 557 | ** LMD_SET_STAT_CNT_MSG, |
| 558 | */ |
| 559 | |
| 560 | typedef struct { |
| 561 | kal_uint8 Offset; /* Offset from first element */ |
| 562 | kal_uint32 Value; /* Value received from BS */ |
| 563 | } SetValueT; |
| 564 | |
| 565 | /* |
| 566 | ** LMD_SET_STAT_CNT_MSG, |
| 567 | */ |
| 568 | typedef struct { |
| 569 | StatCounterT StatCounter; /* Statistics counter */ |
| 570 | kal_uint8 NumSetValue; /* Number of set value included */ |
| 571 | SetValueT SetValue[MAX_STAT_ELEMENT]; |
| 572 | } LmdSetStatCntMsgT; |
| 573 | |
| 574 | /* |
| 575 | ** LMD_GET_STAT_CNT_MSG, |
| 576 | */ |
| 577 | typedef struct { |
| 578 | StatCounterT StatCounter; /* Statistics counter */ |
| 579 | } LmdGetStatCntMsgT; |
| 580 | |
| 581 | /* |
| 582 | ** LMD_SET_FER_STATS_NUM_FRAMES_MSG, |
| 583 | */ |
| 584 | typedef struct { |
| 585 | kal_uint16 NumFrames; /* Number of frames for running average */ |
| 586 | } LmdSetFerStatsNumFramesMsgT; |
| 587 | |
| 588 | /* |
| 589 | **LMD_GET_DEBUG_SCRN_INFO_MSG, |
| 590 | */ |
| 591 | typedef struct { |
| 592 | ExeRspMsgT RspInfo; /* Response routing information */ |
| 593 | } LmdGetDebugScrnInfoRequestT; |
| 594 | |
| 595 | typedef struct { |
| 596 | kal_uint16 badframes; |
| 597 | kal_uint16 totframes; |
| 598 | } LmdGetDebugScrnInfoResponseT; |
| 599 | |
| 600 | /* |
| 601 | ** LMD_SPEECH_DISABLE_MSG, |
| 602 | */ |
| 603 | typedef struct |
| 604 | { |
| 605 | kal_bool Disable; |
| 606 | kal_bool Restart; /* KAL_TRUE if speech connection to be restarted, |
| 607 | KAL_FALSE if just disabling routing of speech but remain connected */ |
| 608 | } LmdSpeechDisableMsgT; |
| 609 | |
| 610 | /****************FSCH muxHwPdu********************/ |
| 611 | /* MuxPDU Type Definitions */ |
| 612 | typedef enum |
| 613 | { |
| 614 | LMD_MP_MUXTYPE_1 = 0, |
| 615 | LMD_MP_MUXTYPE_2, |
| 616 | LMD_MP_MUXTYPE_3, |
| 617 | LMD_MP_MUXTYPE_5, |
| 618 | LMD_MP_MUXTYPE_MAX |
| 619 | } LmdMpMuxTypeT; |
| 620 | |
| 621 | /* MuxPDU Header */ |
| 622 | typedef struct |
| 623 | { |
| 624 | kal_uint16 sr_id; |
| 625 | kal_uint16 Len; |
| 626 | kal_uint16 ExtHeader; |
| 627 | kal_uint16 Padding[1]; |
| 628 | CpBufferT *MpBufPtr; /* MuxPDU RAM buffer pointer */ |
| 629 | } LmdSchHeaderT; /* 12 bytes */ |
| 630 | |
| 631 | /* MuxPDU Configuration */ |
| 632 | typedef struct |
| 633 | { |
| 634 | kal_uint8 MuxType; /* 1/2/3/5 */ |
| 635 | kal_uint16 FrameLength; /* Frame length in bits - used in BYPASS mode */ |
| 636 | } LmdMpConfigT; |
| 637 | |
| 638 | //extern kal_bool LmdMpRawSpyEnabled; |
| 639 | #define LMD_MP_MAX_PDUS 100 |
| 640 | |
| 641 | typedef enum |
| 642 | { |
| 643 | MUX1_REV_FCH_1 = 1, |
| 644 | MUX1_REV_FCH_2, |
| 645 | MUX1_REV_FCH_3, |
| 646 | MUX1_REV_FCH_4, |
| 647 | MUX1_REV_FCH_5, |
| 648 | MUX1_REV_FCH_6, |
| 649 | MUX1_REV_FCH_7, |
| 650 | MUX1_REV_FCH_8, |
| 651 | MUX1_REV_FCH_9, /* Reserved */ |
| 652 | MUX1_REV_FCH_10, /* Reserved */ |
| 653 | MUX1_REV_FCH_11, |
| 654 | MUX1_REV_FCH_12, |
| 655 | MUX1_REV_FCH_13, |
| 656 | MUX1_REV_FCH_14, |
| 657 | MUX1_FOR_FCH_1 = 15, |
| 658 | MUX1_FOR_FCH_2, |
| 659 | MUX1_FOR_FCH_3, |
| 660 | MUX1_FOR_FCH_4, |
| 661 | MUX1_FOR_FCH_5, |
| 662 | MUX1_FOR_FCH_6, |
| 663 | MUX1_FOR_FCH_7, |
| 664 | MUX1_FOR_FCH_8, |
| 665 | MUX1_FOR_FCH_9, |
| 666 | MUX1_FOR_FCH_10, |
| 667 | MUX1_FOR_FCH_11, |
| 668 | MUX1_FOR_FCH_12, |
| 669 | MUX1_FOR_FCH_13, |
| 670 | MUX1_FOR_FCH_14, |
| 671 | PAG_1 = 29, /* number of paging ch messages received */ |
| 672 | PAG_2, /* number of paging ch messages with bad crc */ |
| 673 | PAG_3, /* number of paging ch msgs addressed to mobile */ |
| 674 | PAG_4, /* number of paging ch half frames received */ |
| 675 | PAG_5, /* # pag half frames rec. part of a valid message*/ |
| 676 | PAG_6, /* number of times loss of paging ch declared */ |
| 677 | PAG_7, /* number of idle handoffs */ |
| 678 | ACC_1 = 36, /* number of layer 3 requests messages generated */ |
| 679 | ACC_2, /* number of layer 3 response messages generated */ |
| 680 | ACC_3, /* number of times access probe was gen. 2 times */ |
| 681 | ACC_4, /* number of times access probe was gen. 3 times */ |
| 682 | ACC_5, /* number of times access probe was gen. 4 times */ |
| 683 | ACC_6, /* number of times access probe was gen. 5 times */ |
| 684 | ACC_7, /* number of times access probe was gen. 6 times */ |
| 685 | ACC_8, /* number of unsuccessful access attempts */ |
| 686 | LAYER2_RTC1 = 44, |
| 687 | LAYER2_RTC2, |
| 688 | LAYER2_RTC3, |
| 689 | LAYER2_RTC4, |
| 690 | LAYER2_RTC5, |
| 691 | OTHER_SYS_TIME = 49, |
| 692 | MUX2_REV_FCH_1 = 50, |
| 693 | MUX2_REV_FCH_2, |
| 694 | MUX2_REV_FCH_3, |
| 695 | MUX2_REV_FCH_4, |
| 696 | MUX2_REV_FCH_5, |
| 697 | MUX2_REV_FCH_6, |
| 698 | MUX2_REV_FCH_7, |
| 699 | MUX2_REV_FCH_8, |
| 700 | MUX2_REV_FCH_9, |
| 701 | MUX2_REV_FCH_10, |
| 702 | MUX2_REV_FCH_11, |
| 703 | MUX2_REV_FCH_12, |
| 704 | MUX2_REV_FCH_13, |
| 705 | MUX2_REV_FCH_14, |
| 706 | MUX2_REV_FCH_15, |
| 707 | MUX2_REV_FCH_16, |
| 708 | MUX2_REV_FCH_17, |
| 709 | MUX2_REV_FCH_18, |
| 710 | MUX2_REV_FCH_19, |
| 711 | MUX2_REV_FCH_20, |
| 712 | MUX2_REV_FCH_21, |
| 713 | MUX2_REV_FCH_22, |
| 714 | MUX2_REV_FCH_23, |
| 715 | MUX2_REV_FCH_24, |
| 716 | MUX2_REV_FCH_25, |
| 717 | MUX2_REV_FCH_26, |
| 718 | MUX2_FOR_FCH_1 = 76, |
| 719 | MUX2_FOR_FCH_2, |
| 720 | MUX2_FOR_FCH_3, |
| 721 | MUX2_FOR_FCH_4, |
| 722 | MUX2_FOR_FCH_5, |
| 723 | MUX2_FOR_FCH_6, |
| 724 | MUX2_FOR_FCH_7, |
| 725 | MUX2_FOR_FCH_8, |
| 726 | MUX2_FOR_FCH_9, |
| 727 | MUX2_FOR_FCH_10, |
| 728 | MUX2_FOR_FCH_11, |
| 729 | MUX2_FOR_FCH_12, |
| 730 | MUX2_FOR_FCH_13, |
| 731 | MUX2_FOR_FCH_14, |
| 732 | MUX2_FOR_FCH_15, |
| 733 | MUX2_FOR_FCH_16, |
| 734 | MUX2_FOR_FCH_17, |
| 735 | MUX2_FOR_FCH_18, |
| 736 | MUX2_FOR_FCH_19, |
| 737 | MUX2_FOR_FCH_20, |
| 738 | MUX2_FOR_FCH_21, |
| 739 | MUX2_FOR_FCH_22, |
| 740 | MUX2_FOR_FCH_23, |
| 741 | MUX2_FOR_FCH_24, |
| 742 | MUX2_FOR_FCH_25, |
| 743 | MUX2_FOR_FCH_26, |
| 744 | /* reverse SCCH not supported in CBP4 */ |
| 745 | SCCH1_REV_S = 102, |
| 746 | SCCH1_REV_P, |
| 747 | SCCH2_REV_S, |
| 748 | SCCH2_REV_P, |
| 749 | SCCH3_REV_S, |
| 750 | SCCH3_REV_P, |
| 751 | SCCH4_REV_S, |
| 752 | SCCH4_REV_P, |
| 753 | SCCH5_REV_S, |
| 754 | SCCH5_REV_P, |
| 755 | SCCH6_REV_S, |
| 756 | SCCH6_REV_P, |
| 757 | SCCH7_REV_S, |
| 758 | SCCH7_REV_P, |
| 759 | /* forward SCCH not supported in CBP4 */ |
| 760 | SCCH1_FOR_S = 116, |
| 761 | SCCH1_FOR_P, |
| 762 | SCCH2_FOR_S, |
| 763 | SCCH2_FOR_P, |
| 764 | SCCH3_FOR_S, |
| 765 | SCCH3_FOR_P, |
| 766 | SCCH4_FOR_S, |
| 767 | SCCH4_FOR_P, |
| 768 | SCCH5_FOR_S, |
| 769 | SCCH5_FOR_P, |
| 770 | SCCH6_FOR_S, |
| 771 | SCCH6_FOR_P, |
| 772 | SCCH7_FOR_S, |
| 773 | SCCH7_FOR_P, |
| 774 | /* MM RTC not supported in CBP4 */ |
| 775 | MM_RTC1 = 130, |
| 776 | MM_RTC2, |
| 777 | MM_RTC3, |
| 778 | MM_RTC4, |
| 779 | MM_RTC5, |
| 780 | |
| 781 | MUX1_REV_FCH_15 = 135, /* Reserved */ |
| 782 | MUX1_REV_FCH_5_ms, /* not supported in CBP4 */ |
| 783 | MUX1_FOR_FCH_15, /* Reserved */ |
| 784 | MUX1_FOR_FCH_5_ms, /* not supported in CBP4 */ |
| 785 | MUX2_REV_FCH_27, /* Reserved */ |
| 786 | MUX2_REV_FCH_5_ms, /* not supported in CBP4 */ |
| 787 | MUX2_FOR_FCH_27, /* Reserved */ |
| 788 | MUX2_FOR_FCH_5_ms, /* not supported in CBP4 */ |
| 789 | |
| 790 | MUX1_REV_DCCH_1 = 143, |
| 791 | MUX1_REV_DCCH_2, |
| 792 | MUX1_REV_DCCH_3, |
| 793 | MUX1_REV_DCCH_4, |
| 794 | MUX1_REV_DCCH_5, |
| 795 | MUX1_REV_DCCH_6, |
| 796 | MUX1_REV_DCCH_7, |
| 797 | MUX1_REV_DCCH_8, |
| 798 | MUX1_REV_DCCH_9, |
| 799 | MUX1_REV_DCCH_10, |
| 800 | MUX1_REV_DCCH_11, |
| 801 | MUX1_REV_DCCH_12, |
| 802 | MUX1_REV_DCCH_13, |
| 803 | MUX1_REV_DCCH_14, |
| 804 | MUX1_REV_DCCH_15, |
| 805 | MUX1_REV_DCCH_5_ms, /* not supported in CBP4 */ |
| 806 | |
| 807 | MUX1_FOR_DCCH_1 = 159, |
| 808 | MUX1_FOR_DCCH_2, |
| 809 | MUX1_FOR_DCCH_3, |
| 810 | MUX1_FOR_DCCH_4, |
| 811 | MUX1_FOR_DCCH_5, |
| 812 | MUX1_FOR_DCCH_6, |
| 813 | MUX1_FOR_DCCH_7, |
| 814 | MUX1_FOR_DCCH_8, |
| 815 | MUX1_FOR_DCCH_9, |
| 816 | MUX1_FOR_DCCH_10, |
| 817 | MUX1_FOR_DCCH_11, |
| 818 | MUX1_FOR_DCCH_12, |
| 819 | MUX1_FOR_DCCH_13, |
| 820 | MUX1_FOR_DCCH_14, |
| 821 | MUX1_FOR_DCCH_15, |
| 822 | MUX1_FOR_DCCH_5_ms, /* not supported in CBP4 */ |
| 823 | |
| 824 | MUX2_REV_DCCH_1 = 175, |
| 825 | MUX2_REV_DCCH_2, |
| 826 | MUX2_REV_DCCH_3, |
| 827 | MUX2_REV_DCCH_4, |
| 828 | MUX2_REV_DCCH_5, |
| 829 | MUX2_REV_DCCH_6, |
| 830 | MUX2_REV_DCCH_7, |
| 831 | MUX2_REV_DCCH_8, |
| 832 | MUX2_REV_DCCH_9, |
| 833 | MUX2_REV_DCCH_10, |
| 834 | MUX2_REV_DCCH_11, |
| 835 | MUX2_REV_DCCH_12, |
| 836 | MUX2_REV_DCCH_13, |
| 837 | MUX2_REV_DCCH_14, |
| 838 | MUX2_REV_DCCH_15, |
| 839 | MUX2_REV_DCCH_16, |
| 840 | MUX2_REV_DCCH_17, |
| 841 | MUX2_REV_DCCH_18, |
| 842 | MUX2_REV_DCCH_19, |
| 843 | MUX2_REV_DCCH_20, |
| 844 | MUX2_REV_DCCH_21, |
| 845 | MUX2_REV_DCCH_22, |
| 846 | MUX2_REV_DCCH_23, |
| 847 | MUX2_REV_DCCH_24, |
| 848 | MUX2_REV_DCCH_25, |
| 849 | MUX2_REV_DCCH_26, |
| 850 | MUX2_REV_DCCH_27, |
| 851 | MUX2_REV_DCCH_5_ms, /* not supported in CBP4 */ |
| 852 | |
| 853 | MUX2_FOR_DCCH_1 = 203, |
| 854 | MUX2_FOR_DCCH_2, |
| 855 | MUX2_FOR_DCCH_3, |
| 856 | MUX2_FOR_DCCH_4, |
| 857 | MUX2_FOR_DCCH_5, |
| 858 | MUX2_FOR_DCCH_6, |
| 859 | MUX2_FOR_DCCH_7, |
| 860 | MUX2_FOR_DCCH_8, |
| 861 | MUX2_FOR_DCCH_9, |
| 862 | MUX2_FOR_DCCH_10, |
| 863 | MUX2_FOR_DCCH_11, |
| 864 | MUX2_FOR_DCCH_12, |
| 865 | MUX2_FOR_DCCH_13, |
| 866 | MUX2_FOR_DCCH_14, |
| 867 | MUX2_FOR_DCCH_15, |
| 868 | MUX2_FOR_DCCH_16, |
| 869 | MUX2_FOR_DCCH_17, |
| 870 | MUX2_FOR_DCCH_18, |
| 871 | MUX2_FOR_DCCH_19, |
| 872 | MUX2_FOR_DCCH_20, |
| 873 | MUX2_FOR_DCCH_21, |
| 874 | MUX2_FOR_DCCH_22, |
| 875 | MUX2_FOR_DCCH_23, |
| 876 | MUX2_FOR_DCCH_24, |
| 877 | MUX2_FOR_DCCH_25, |
| 878 | MUX2_FOR_DCCH_26, |
| 879 | MUX2_FOR_DCCH_27, |
| 880 | MUX2_FOR_DCCH_5_ms, /* not supported in CBP4 */ |
| 881 | |
| 882 | SCH0_REV_1X = 231, |
| 883 | SCH0_REV_2X, |
| 884 | SCH0_REV_4X, |
| 885 | SCH0_REV_8X, |
| 886 | SCH0_REV_16X, |
| 887 | SCH0_REV_LTU, |
| 888 | SCH0_REV_LTUOK, /* not supported in CBP4 */ |
| 889 | |
| 890 | /* reverse SCH1 not supported in CBP4 */ |
| 891 | SCH1_REV_1X = 238, |
| 892 | SCH1_REV_2X, |
| 893 | SCH1_REV_4X, |
| 894 | SCH1_REV_8X, |
| 895 | SCH1_REV_16X, |
| 896 | SCH1_REV_LTU, |
| 897 | SCH1_REV_LTUOK, /* not supported in CBP4 */ |
| 898 | |
| 899 | SCH0_FOR_1X = 245, |
| 900 | SCH0_FOR_2X, |
| 901 | SCH0_FOR_4X, |
| 902 | SCH0_FOR_8X, |
| 903 | SCH0_FOR_16X, |
| 904 | SCH0_FOR_LTU, |
| 905 | SCH0_FOR_LTUOK, /* not supported in CBP4 */ |
| 906 | |
| 907 | /* forward SCH1 not supported in CBP4 */ |
| 908 | SCH1_FOR_1X = 252, |
| 909 | SCH1_FOR_2X, |
| 910 | SCH1_FOR_4X, |
| 911 | SCH1_FOR_8X, |
| 912 | SCH1_FOR_16X, |
| 913 | SCH1_FOR_LTU, |
| 914 | SCH1_FOR_LTUOK, /* not supported in CBP4 */ |
| 915 | BCCH_1,/* = 259 */ |
| 916 | BCCH_2, |
| 917 | BCCH_3, |
| 918 | BCCH_4, |
| 919 | BCCH_5, |
| 920 | FCCCH_1, |
| 921 | FCCCH_2, |
| 922 | FCCCH_3, |
| 923 | FCCCH_4, |
| 924 | /* EACH */ |
| 925 | #ifdef LMD_EACH_ON |
| 926 | EACH_BA_1 = 470, |
| 927 | EACH_BA_2, |
| 928 | EACH_BA_3, |
| 929 | EACH_BA_4, |
| 930 | EACH_BA_5, |
| 931 | EACH_BA_6, |
| 932 | EACH_BA_7, |
| 933 | EACH_BA_8, |
| 934 | #endif |
| 935 | PCG_0_FOR_FCH_1 = 661, |
| 936 | PCG_0_FOR_FCH_2, |
| 937 | PCG_0_FOR_FCH_3, |
| 938 | PCG_0_FOR_FCH_4, |
| 939 | PCG_1_FOR_FCH_1, |
| 940 | PCG_1_FOR_FCH_2, |
| 941 | PCG_1_FOR_FCH_3, |
| 942 | PCG_1_FOR_FCH_4, |
| 943 | PCG_2_FOR_FCH_1, |
| 944 | PCG_2_FOR_FCH_2, |
| 945 | PCG_2_FOR_FCH_3, |
| 946 | PCG_2_FOR_FCH_4, |
| 947 | PCG_3_FOR_FCH_1, |
| 948 | PCG_3_FOR_FCH_2, |
| 949 | PCG_3_FOR_FCH_3, |
| 950 | PCG_3_FOR_FCH_4, |
| 951 | PCG_4_FOR_FCH_1, |
| 952 | PCG_4_FOR_FCH_2, |
| 953 | PCG_4_FOR_FCH_3, |
| 954 | PCG_4_FOR_FCH_4, |
| 955 | PCG_5_FOR_FCH_1, |
| 956 | PCG_5_FOR_FCH_2, |
| 957 | PCG_5_FOR_FCH_3, |
| 958 | PCG_5_FOR_FCH_4, |
| 959 | PCG_6_FOR_FCH_1, |
| 960 | PCG_6_FOR_FCH_2, |
| 961 | PCG_6_FOR_FCH_3, |
| 962 | PCG_6_FOR_FCH_4, |
| 963 | PCG_7_FOR_FCH_1, |
| 964 | PCG_7_FOR_FCH_2, |
| 965 | PCG_7_FOR_FCH_3, |
| 966 | PCG_7_FOR_FCH_4, |
| 967 | PCG_8_FOR_FCH_1, |
| 968 | PCG_8_FOR_FCH_2, |
| 969 | PCG_8_FOR_FCH_3, |
| 970 | PCG_8_FOR_FCH_4, |
| 971 | PCG_9_FOR_FCH_1, |
| 972 | PCG_9_FOR_FCH_2, |
| 973 | PCG_9_FOR_FCH_3, |
| 974 | PCG_9_FOR_FCH_4, |
| 975 | PCG_10_FOR_FCH_1, |
| 976 | PCG_10_FOR_FCH_2, |
| 977 | PCG_10_FOR_FCH_3, |
| 978 | PCG_10_FOR_FCH_4, |
| 979 | PCG_11_FOR_FCH_1, |
| 980 | PCG_11_FOR_FCH_2, |
| 981 | PCG_11_FOR_FCH_3, |
| 982 | PCG_11_FOR_FCH_4, |
| 983 | PCG_12_FOR_FCH_1, |
| 984 | PCG_12_FOR_FCH_2, |
| 985 | PCG_12_FOR_FCH_3, |
| 986 | PCG_12_FOR_FCH_4, |
| 987 | PCG_13_FOR_FCH_1, |
| 988 | PCG_13_FOR_FCH_2, |
| 989 | PCG_13_FOR_FCH_3, |
| 990 | PCG_13_FOR_FCH_4, |
| 991 | PCG_14_FOR_FCH_1, |
| 992 | PCG_14_FOR_FCH_2, |
| 993 | PCG_14_FOR_FCH_3, |
| 994 | PCG_14_FOR_FCH_4, |
| 995 | PCG_15_FOR_FCH_1, |
| 996 | PCG_15_FOR_FCH_2, |
| 997 | PCG_15_FOR_FCH_3, |
| 998 | PCG_15_FOR_FCH_4, |
| 999 | PCG_0_FOR_SCH_1 = 725, |
| 1000 | ACK_TX_PCG_0_FCH = 805, |
| 1001 | ACK_TX_PCG_1_FCH, |
| 1002 | ACK_TX_PCG_2_FCH, |
| 1003 | ACK_TX_PCG_3_FCH, |
| 1004 | ACK_TX_PCG_4_FCH, |
| 1005 | ACK_TX_PCG_5_FCH, |
| 1006 | ACK_TX_PCG_6_FCH, |
| 1007 | ACK_TX_PCG_7_FCH, |
| 1008 | ACK_TX_PCG_8_FCH, |
| 1009 | ACK_TX_PCG_9_FCH, |
| 1010 | ACK_TX_PCG_10_FCH, |
| 1011 | ACK_TX_PCG_11_FCH, |
| 1012 | ACK_TX_PCG_12_FCH, |
| 1013 | ACK_TX_PCG_13_FCH, |
| 1014 | ACK_TX_PCG_14_FCH, |
| 1015 | ACK_TX_PCG_15_FCH, |
| 1016 | ACK_TX_PCG_0_SCH = 821, |
| 1017 | ACK_RX_PCG_1_FCH = 837, |
| 1018 | ACK_RX_PCG_2_FCH, |
| 1019 | ACK_RX_PCG_3_FCH, |
| 1020 | ACK_RX_PCG_4_FCH, |
| 1021 | ACK_RX_PCG_5_FCH, |
| 1022 | ACK_RX_PCG_6_FCH, |
| 1023 | ACK_RX_PCG_7_FCH, |
| 1024 | ACK_RX_PCG_8_FCH, |
| 1025 | ACK_RX_PCG_9_FCH, |
| 1026 | ACK_RX_PCG_10_FCH, |
| 1027 | ACK_RX_PCG_11_FCH, |
| 1028 | ACK_RX_PCG_12_FCH, |
| 1029 | ACK_RX_PCG_13_FCH, |
| 1030 | ACK_RX_PCG_14_FCH, |
| 1031 | ACK_RX_PCG_15_FCH, |
| 1032 | ACK_RX_PCG_1_SCH = 852, |
| 1033 | END_OF_LIST |
| 1034 | } RetrievableAndSettableParametersT; |
| 1035 | |
| 1036 | typedef enum |
| 1037 | { |
| 1038 | R_NULL = 0, |
| 1039 | R_ACCESS, |
| 1040 | R_EACH, |
| 1041 | R_TRAFFIC |
| 1042 | |
| 1043 | }RevChnlTypeT; |
| 1044 | |
| 1045 | typedef struct |
| 1046 | { |
| 1047 | kal_bool CounterSuspend; |
| 1048 | } LmdCounterSuspendMsgT; |
| 1049 | |
| 1050 | typedef struct |
| 1051 | { |
| 1052 | SysActionTimeT ActTime; |
| 1053 | kal_uint8 ch_ind; /* Channel Indicator: 1=FCH, 2=DCCH, 3=BOTH */ |
| 1054 | /* Note that the ch_ind has additional new entries |
| 1055 | corresponding to the ExtChInd for PDCH channel |
| 1056 | configurations, as follows: |
| 1057 | 4 = FPDCH_FCPCCH_RFCH, |
| 1058 | 5 = FPDCH_FCPCCH_RDCCH, |
| 1059 | 6 = FPDCH_FFCH_RFCH, |
| 1060 | 7 = FPDCH_FDCCH_RDCCH, |
| 1061 | 8 = FPDCH_RFCH_FFCH_RDCCH, |
| 1062 | 9 = FPDCH_RFCH_FFCH_RDCCH_FDCCH */ |
| 1063 | kal_bool SrvConfigNonNegInc; |
| 1064 | } LmdResourceUpdateT; |
| 1065 | |
| 1066 | /*----------------------------------------- |
| 1067 | * The Forward SCH Msg. |
| 1068 | *------------------------------------------*/ |
| 1069 | |
| 1070 | typedef struct |
| 1071 | { |
| 1072 | kal_uint8 ForSchId; |
| 1073 | kal_uint8 ForSchDuration; |
| 1074 | kal_uint8 ForSchRate; |
| 1075 | |
| 1076 | } LmdFschRecT; |
| 1077 | |
| 1078 | typedef struct |
| 1079 | { |
| 1080 | kal_bool PilotGatingUseRate; |
| 1081 | kal_bool ForSchFerRep; |
| 1082 | kal_uint8 NumForSch; /* number of SCH assigned.*/ |
| 1083 | LmdFschRecT FschRec[2]; |
| 1084 | |
| 1085 | } LmdFschMsgT; |
| 1086 | |
| 1087 | typedef struct |
| 1088 | { |
| 1089 | kal_uint8 sch_id; |
| 1090 | kal_bool FinalBurst; |
| 1091 | |
| 1092 | } LmdFschBurstEndMsgT; |
| 1093 | /*----------------------------------------- |
| 1094 | * The Reverse SCH Msg. |
| 1095 | *------------------------------------------*/ |
| 1096 | typedef struct |
| 1097 | { |
| 1098 | kal_uint8 RevSchId; |
| 1099 | kal_uint8 RevSchDuration; |
| 1100 | kal_uint8 RevSchRate; |
| 1101 | |
| 1102 | } LmdRschRecT; |
| 1103 | |
| 1104 | typedef struct |
| 1105 | { |
| 1106 | kal_uint8 RevSchDtxDuration; |
| 1107 | kal_uint8 NumRevSch; /* number of SCH assigned.*/ |
| 1108 | LmdRschRecT RschRec[LMD_MAX_SCH_NUM]; |
| 1109 | |
| 1110 | } LmdRschMsgT; |
| 1111 | |
| 1112 | |
| 1113 | /* The Fwd RLP Data Reading Order revert Msg */ |
| 1114 | typedef struct |
| 1115 | { |
| 1116 | |
| 1117 | kal_bool ReadSwap; |
| 1118 | |
| 1119 | } LmdFschPduOrderCtrlMsgT; |
| 1120 | |
| 1121 | /*======================================================================================== |
| 1122 | ========================================================================================== |
| 1123 | ===================== The following sections need to be resolved. ======================== |
| 1124 | ========================================================================================== |
| 1125 | ========================================================================================*/ |
| 1126 | |
| 1127 | |
| 1128 | typedef enum |
| 1129 | { |
| 1130 | LMD_PRIORITY_NO_MSG, |
| 1131 | LMD_PRIORITY_HIGH, /* send in < 200 msec */ |
| 1132 | LMD_PRIORITY_MEDIUM, /* send in < 300 msec */ |
| 1133 | LMD_PRIORITY_LOW /* send in < 500 msec */ |
| 1134 | } LmdMsgPriorityT; |
| 1135 | |
| 1136 | /*--------------------------------------------------------------- |
| 1137 | * Miscellaneous Typedefs |
| 1138 | * These typedefs are not used in any of the messages defined |
| 1139 | * so far. They are here in case other units need these definitions |
| 1140 | * to compile. If they do not eventually move to message definitions, |
| 1141 | * they should be removed from this file. |
| 1142 | *---------------------------------------------------------------*/ |
| 1143 | |
| 1144 | typedef enum |
| 1145 | { |
| 1146 | LMD_FRAME_RATE_FULL, |
| 1147 | LMD_FRAME_RATE_HALF, |
| 1148 | LMD_FRAME_RATE_QUARTER, |
| 1149 | LMD_FRAME_RATE_EIGHTH, |
| 1150 | LMD_FRAME_ERASURE, |
| 1151 | LMD_FRAME_RATE_FULL_LIKELY, |
| 1152 | LMD_FRAME_RATE = 0x7FFFFFFF |
| 1153 | } LmdFrameRateFwdT; |
| 1154 | |
| 1155 | typedef struct |
| 1156 | { |
| 1157 | kal_uint8 Frames; |
| 1158 | } LmdPowerReportFramesT; |
| 1159 | |
| 1160 | typedef enum |
| 1161 | { |
| 1162 | LMD_RTC_PREAMBLE = 0, |
| 1163 | LMD_RTC_SIGNALING_ONLY, |
| 1164 | LMD_RTC_TRAFFIC |
| 1165 | } LmdRTCTrafficT; |
| 1166 | /* Tx signal Control data type */ |
| 1167 | typedef enum |
| 1168 | { |
| 1169 | LMD_REV_TX_DISABLE =0, |
| 1170 | LMD_REV_TX_ENABLE=1 |
| 1171 | |
| 1172 | }LmdTxSignalControlT; |
| 1173 | |
| 1174 | /* PT DATA */ |
| 1175 | typedef struct |
| 1176 | { |
| 1177 | kal_uint16 MsgId; |
| 1178 | IpcCpSpchDataRevChPacketMsgT* PtDataMsgP; |
| 1179 | } LmdRevPtDataT; |
| 1180 | /* DS FCH DATA */ |
| 1181 | typedef struct |
| 1182 | { |
| 1183 | kal_uint16 MsgId; |
| 1184 | LmdRevFundicatedDataReqMsgT* fchDataMsgP; |
| 1185 | } LmdRevDsFchDataT; |
| 1186 | /* DS SCH DATA */ |
| 1187 | typedef struct |
| 1188 | { |
| 1189 | kal_uint16 MsgId; |
| 1190 | LmdRevSchDataReqMsgT* schDataMsgP; |
| 1191 | }LmdRevDsSchDataT; |
| 1192 | |
| 1193 | /*--------------------------------------------------------------- |
| 1194 | ** Global function prototypes for use outside LMD |
| 1195 | **---------------------------------------------------------------*/ |
| 1196 | /*--forward channel functions--*/ |
| 1197 | extern void LmdIpcUpdateFwdStats(LmdFwdChnlTypeT ChnlType, kal_uint16 TotalFrames, kal_uint16 BadFrames); |
| 1198 | |
| 1199 | #if 0 |
| 1200 | /* under construction !*/ |
| 1201 | /* under construction !*/ |
| 1202 | #endif |
| 1203 | |
| 1204 | /*--- Reverse Tx Signal Control handler----------*/ |
| 1205 | extern void LmdRevTxSignalControl(LmdTxSignalControlT TxSigControl, RevChnlTypeT Channel, kal_uint8 PcgIdx); |
| 1206 | |
| 1207 | |
| 1208 | /*--- Rev Sch Transmission Status --- */ |
| 1209 | extern void LmdRevSchTxStatusSet(kal_bool RschTxAllowed); |
| 1210 | void LmdGetFrameInfo(kal_uint16 *badframes, kal_uint16 *totframes); |
| 1211 | |
| 1212 | /*--- Interrupt handlers --- */ |
| 1213 | //extern void LmdMpLisr (void); |
| 1214 | //extern void LmdMpFIQIsr (void); |
| 1215 | |
| 1216 | extern void LmdFwdSetFrameOffset (kal_uint8 FrameOffset); |
| 1217 | extern void LmdFwdSetFwdBlankingDutyCycles (kal_uint8 FwdBlankingDutyCycle); |
| 1218 | extern void LmdFwdSetRevBlankingDutyCycles (kal_uint8 RevBlankingDutyCycle); |
| 1219 | |
| 1220 | /*--------------------------------------------------------------- |
| 1221 | ** Global variable prototypes for use outside LMD |
| 1222 | **---------------------------------------------------------------*/ |
| 1223 | |
| 1224 | //extern kal_uint16 LmdFerConsecutiveBadFrames[FER_MAX_CHANNELS]; /* 0: FCH, 1: SCH */ |
| 1225 | //extern kal_uint16 LmdFerStats[FER_MAX_CHANNELS]; /* 0: FCH, 1: SCH */ |
| 1226 | |
| 1227 | /***************************************************************************** |
| 1228 | * End of File |
| 1229 | *****************************************************************************/ |
| 1230 | #endif |
| 1231 | /**Log information: \main\Trophy_SO73\1 2013-07-10 07:00:01 GMT yanliu |
| 1232 | ** HREF#0000: 1x advance SD 20130708_1xAdvanced version merge**/ |
| 1233 | /**Log information: \main\2 2013-07-17 08:16:12 GMT yanliu |
| 1234 | ** HREF#0000: 1x advance SD 20130708_1xAdvanced version merge**/ |
| 1235 | |