blob: 79e5a0386d8276d4a5b6e70eb65c3be31b8531ce [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
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 _LMDDEFS_H_
45#define _LMDDEFS_H_
46/*****************************************************************************
47*
48* FILE NAME : lmddefs.h
49*
50* DESCRIPTION : LMD unit definitions
51*
52* HISTORY :
53* See Log at end of file
54*
55*****************************************************************************/
56/*----------------------------------------------------------------------------
57 Include Files
58----------------------------------------------------------------------------*/
59
60#include "lmdapi.h"
61#include "lmdsapi.h"
62#include "sysapi.h"
63#include "pswapi.h"
64#include "l1dapi.h"
65#include "rlpwapi.h"
66#include "cpbuf.h"
67#include "lmderr.h"
68#include "xl2_em.h"
69#include "lmd_audio.h"
70
71/* Bit maps for the Physical channel type */
72#define PHY_RES_NULL 0x00
73#define PHY_RES_FCH 0x01
74#define PHY_RES_DCCH 0x02
75#define PHY_RES_SCH0 0x04
76#define PHY_RES_SCH1 0x08
77
78/* MUX Pdu Types */
79#define MUXPDUTYPE1 1
80#define MUXPDUTYPE2 2
81#define MUXPUDTYPE3 3
82#define MUXPDUTYPE4 4
83#define MUXPDUTYPE5 5
84#define MUXPDUTYPE6 6
85
86#define MUX_PDU_TYPE_5_SIGNALING_LIM 10
87
88#ifdef MTK_CBP_ENCRYPT_VOICE
89/*Used for VoiceEncryption in so32944*/
90#define PLAINT_LEN 171
91#define PLAINT_LEN_IN_SIZE 22
92#define PLAINT_LEN_IN_WORD 11
93#endif
94
95/*---------------------------------------------------------------
96* IPC Direct Buffer Mailbox Interface
97*---------------------------------------------------------------*/
98
99/* Direct buffer maximum sizes */
100#define REV_EACH_MBX_SIZE 47
101
102#define REV_FCH_MBX_SIZE IPC_DTA_MBOX_C2M_CH0_SIZE
103#define REV_DCCH_MBX_SIZE IPC_DTA_MBOX_C2M_CH1_SIZE
104#define REV_SCH_MBX_SIZE IPC_DTA_MBOX_C2M_CH2_SIZE
105#define REV_FCH_MBX_SIZE_IN_DB_WORD IPC_DTA_MBOX_C2M_CH0_SIZE_IN_DB_WORDS
106#define REV_SCH_MBX_SIZE_IN_DB_WORD IPC_DTA_MBOX_C2M_CH2_SIZE_IN_DB_WORDS
107
108/* FCH MUXPDU1 number of bits definition */
109#define FCH_MUX_PDU1_9600 0x0080
110#define FCH_MUX_PDU1_4800 0x0040
111#define FCH_MUX_PDU1_2400 0x0020
112#define FCH_MUX_PDU1_1200 0x0010
113
114/* FCH MUXPDU2 number of bits definition */
115#define FCH_MUX_PDU2_14400 0x0080
116#define FCH_MUX_PDU2_7200 0x0040
117#define FCH_MUX_PDU2_3600 0x0020
118#define FCH_MUX_PDU2_1800 0x0010
119
120#define FCH_MUX_PDU_ALL_RATE 0x00F0
121
122/* Channel type used by the reverse traffic channel carrier type data struct */
123#define LMD_REV_FCH 0x01
124#define LMD_REV_DCCH 0x02
125#define LMD_REV_SCH 0x04
126
127#define LMD_FRAME_DELAY_TRAFFIC_CHAN 1
128#define MUX_PDU_NO_HEADER 0x07
129
130/* the rate type of the PT data */
131/* The DSPV packet Rate representation, using IpcSpchSrvcOptRateT */
132/* The DSPM will use the LmdFrameRateFwdT, which Full = 0 */
133#define PT_BLANK IPC_SPCH_BLANK /* 0 */
134#define PT_EIGHTH IPC_SPCH_EIGHTH
135#define PT_QUARTER IPC_SPCH_QUARTER /* not used for SSO 3 */
136#define PT_HALF IPC_SPCH_HALF
137#define PT_FULL IPC_SPCH_FULL
138#define PT_ERASURE IPC_SPCH_ERASURE
139#define PT_FULL_LIKELY IPC_SPCH_FULL_LIKELY
140#define PT_NON_CRITICAL IPC_SPCH_NON_CRITICAL
141
142
143#define RLP_FRAME_TYPE_BITS 2 /* RLP request LMD to read FRAME Type*/
144
145/* Static Tdso Data Buffer count and size in bytes
146 The size is derived from the largest size of a PDU block.
147 The count is (NumPdus for Fch/Dcch + NumPdus for Sch) * 4 = (1+8) * 4 = 36.
148 We quadruble the count to have some cushion in case Tdso generates more
149 data than LmdRevch.c can handle */
150#define TDSO_BUFFER_SIZE 68
151#define TDSO_BUFFER_COUNT 36
152
153
154#define SCH_INFINITE_DURATION 0xFFFF
155#define SCH_INFINITE_DTX_DURATION 0x000F
156
157
158/* LSO counters */
159#define RECEIVE_ACK_NAK_COUNTERS_MAX 4
160extern kal_uint32 LsoFAckChCounters[RECEIVE_ACK_NAK_COUNTERS_MAX];
161typedef enum
162{
163 LSO_FACKCH_EACK_RACK = 0,
164 LSO_FACKCH_EACK_RNAK = 1,
165 LSO_FACKCH_ENAK_RNAK = 2,
166 LSO_FACKCH_ENAK_RACK = 3
167} LsoReceiveAckNakCountersT;
168/*the amount of counters*/
169
170/*---------------------------------------------------------------
171* Task Id definitions used for primary traffic routing
172*---------------------------------------------------------------*/
173
174#define MARKOV_TASK (MOD_LMD|0x8000)
175/* EACH Frame Size limitation...*/
176
177/*
178 Each of the following data structures are passed as parameters to
179 functions which write various LMD channel data to the IPC direct
180 buffer mailbox.
181*/
182
183/* Access channel data structure */
184typedef struct
185{
186 kal_uint8 DataLength; /* Number of bytes in access channel data */
187 kal_uint8* AccessData; /* Pointer to access channel data */
188} LmdAccessDataCarrierT;
189
190/* Fch data structure */
191typedef struct
192{
193 kal_uint16 RevFchRate; /* Fch rate */
194 kal_uint16 RevFchLength; /* Number of fch bytes */
195 kal_uint16 RevFchData[REV_FCH_MBX_SIZE]; /* Array of fch data */
196} LmdRevFchCarrierT;
197
198/* Dcch data structure */
199typedef struct
200{
201 kal_uint16 RevDcchLength; /* Number of dcch bytes */
202 kal_uint16 RevDcchData[REV_DCCH_MBX_SIZE]; /* Array of fch data */
203} LmdRevDcchCarrierT;
204
205/* Sch data structure */
206typedef struct
207{
208 kal_uint16 RevSchLength; /* Number of sch bytes */
209 kal_uint16 RevSchData[REV_SCH_MBX_SIZE]; /* Array of sch data */
210} LmdRevSchCarrierT;
211
212/* Traffic channel data structure */
213typedef struct
214{
215 kal_uint8 ChannelType; /* FCH, DCCH, SCH */
216 LmdRevFchCarrierT *FchCarrierP; /* Pointer to fch data struct */
217 LmdRevDcchCarrierT *DcchCarrierP;/* Pointer to dcch data struct */
218 LmdRevSchCarrierT *SchCarrierP; /* Pointer to sch data struct */
219} LmdReverseTchCarrierT;
220
221typedef struct
222{
223 kal_uint16 NumBits;
224 kal_uint8 *DataP;
225} LmdDataTypeT;
226
227/* Data structures used to communicate service configurations to the reverse object */
228
229/* The FCH rev mux format */
230typedef struct
231{
232 kal_uint8 FchHeader; /* The header to use for fch */
233 kal_uint8 FchHeaderBits; /* The number of bits in the fch header */
234 kal_uint16 FchPtBits; /* The number of primary traffic bits in fch */
235 kal_uint16 FchSigBits; /* The number of signaling bits in fch */
236 kal_uint8 FchSigNumInsertBits;/* The number of signaling insert bits in fch */
237 kal_uint16 FchSecBits; /* The number of secondary traffic bits in fch */
238 kal_bool CreateNullFrame;/* Boolean indicating the frame should be null */
239 LmdRevFundRateTypeT FchRate; /* The FCH rate information used for DSPM. */
240 SysMultiplexOptionT MuxOpt; /* The current FCH mux option */
241 kal_uint16 NumBits; /* Number of bits per second */
242 PswFrameCatagoryT Category; /* Frame category */
243 kal_bool NonCritical;
244}FchRevMuxFormatT;
245
246/* The DCCH rev mux format */
247typedef struct
248{
249 kal_uint8 DcchHeader; /* The header to use for dcch */
250 kal_uint8 DcchHeaderBits; /* The number of bits in the dcch header */
251 kal_uint16 DcchPtBits; /* The number of primary traffic bits in dcch */
252 kal_uint16 DcchSigBits; /* The number of signaling bits in dcch */
253 kal_uint8 DcchSigNumInsertBits;/* The number of signaling insert bits in dcch */
254 kal_uint16 DcchSecBits; /* The number of secondary traffic bits in dcch */
255 kal_bool CreateNullFrame;/* Boolean indicating the frame should be null */
256 SysMultiplexOptionT MuxOpt; /* The current DCCH mux option */
257 kal_uint16 NumBits; /* Number of bits per second */
258 PswFrameCatagoryT Category; /* Frame category */
259}DcchRevMuxFormatT;
260
261typedef struct
262{
263 kal_uint8 SrId;
264 kal_uint8 FrameFormat;
265}LmdSvcRevDsSchInfoT;
266
267typedef struct
268{
269 kal_uint8 NumberOfSchPdu; /* Getting it from the RLP Msg*/
270 LmdSvcRevDsSchInfoT PduInfo[MAX_PDU_NUM];
271} LmdSvcDsSchT;
272
273/* The SCH rev mux format */
274typedef struct
275{
276 kal_uint8 sch_id;
277 kal_bool Coding; /* True-- Turbo is On */
278 kal_uint8 NumLtu; /* Number of LTU */
279 kal_uint16 LtuBits;
280 kal_uint8 NumPdu; /* Number of PDU: in case LTU = 0: total
281 PDU num in a frame; LTU >=2, PDU num
282 per LTU.*/
283 kal_uint8 PduHeader; /* The header of each Pdu: Only for
284 MuxPdu Type 1 and 2. in the MuxPdu
285 Type3, the Header is sr_id + '0000'
286 for Mux PDu3 Filled PDU:
287 Header = '111' + '0000'
288 */
289 kal_uint8 MuxPduType;
290 kal_uint8 NumFilledPdu;/* LTU >0 only */
291 kal_uint8 HeaderBits; /* the number of header in each PDU */
292 kal_uint16 PduBits;
293 SysMultiplexOptionT MuxOpt; /* reverse Mux Option*/
294 LmdSvcDsSchT *RevSchConfig;/* contains each Pdu's SrId and FrameType*/
295}SchRevMuxFormatT;
296
297/*
298 The structure that ties it all together and is filled in by the service
299 configuration object
300*/
301typedef struct
302{
303 FchRevMuxFormatT FchRevMuxFormat;
304 DcchRevMuxFormatT DcchRevMuxFormat;
305 SchRevMuxFormatT SchRevMuxFormat[SYS_MAX_FSCH];
306}LmdRevSvcConfigT;
307
308/* Data structure used to communicate service configurations to the forward object */
309typedef struct
310{
311 kal_uint16 NumBits; /* Number of primary/sec traffic bits associated with
312 this physical channel */
313 kal_uint16 Routing;
314 /* How the primary/sec traffic for this channel should be
315 routed, this contains the task id for the task to
316 which the data should be routed */
317 kal_uint8 SrId; /* Primary/sec Channel Sr_id: used in RLP Fwd Frame Ind. */
318 kal_uint32 MsgId; /* The message id that should be used to route the
319 primary/sec traffic to the PtRouting task */
320}SubChnlT;
321
322typedef struct
323{
324 /**---------- Signaling channel ------------------------------------------*/
325 kal_uint16 NumBits; /* Number of signaling bits associated with this
326 physical channel */
327 kal_uint16 Routing;
328 /* How the signaling for this channel should be routed,
329 this contains the task id for the task to which the data
330 should be routed */
331 PswFrameCatagoryT Category;
332 PswFrameQuality Quality; /* Good for bad signalling frame */
333 SysMultiplexOptionT MuxOpt;
334 kal_uint32 MsgId; /* The message id that should be used to route the
335 signaling data to the SigRouting task */
336}SigChnlT;
337
338typedef struct
339{
340 kal_bool IsSecondary;
341 kal_uint8 HeaderBits; /* Number of Headerbits */
342 kal_uint8 DataBits;
343 kal_uint16 Routing;
344}FwdScchT;
345
346typedef struct
347{
348 kal_uint8 sch_id;
349 kal_uint8 NumLtu;
350 kal_uint16 LtuBits; /* Num of each Ltu's length in bits*/
351 kal_uint8 NumPdu; /* Num of PDU: in case LTU = 0: total
352 PDU num in a frame; LTU >=2, PDU num
353 per LTU.*/
354 kal_uint8 MuxPduType; /* MuxPdu type for each PDU */
355 SysRlpFrameRateE PduRate;
356 kal_uint8 PduHeaderBits;
357 kal_uint16 PduBits;
358 kal_uint8 PduSrId; /* only offered in case PDUType1 or 2 */
359 kal_uint16 Routing;
360 SysMultiplexOptionT mux_option;
361 kal_uint32 MsgId;
362}FwdSchT;
363
364/* SCH Frame from L1D public buffer*/
365typedef struct
366{
367 kal_uint32 TimeStamp; /* System time in frames, needed by TDSO */
368 kal_uint16 NumMuxPdus; /* Number of MuxPDUS */
369 kal_uint16 NumGoodFrames;
370 kal_uint8 MuxPduType;
371 LmdSchHeaderT Header[1];
372} LmdSchFrameT;
373
374
375typedef struct
376{
377 SubChnlT Primary;
378 SigChnlT Signaling;
379 SubChnlT Secondary;
380 /*----------- Header and null frame indicator --------------------- */
381 kal_uint8 HeaderBits; /* Number of header bits for this physical channel */
382 kal_bool NullFramePossible; /* Identifies that the forward object should determine if
383 this in fact is a null frame */
384 kal_uint16 NumBits; /* Number of bits per second */
385 /*----------- Channel assigned --------------------- */
386 kal_bool FchAssigned;
387 kal_bool DcchAssigned; /* Dcch assigned kal_boolean, indicates that Dcch is assigned. */
388}FwdDtchT;
389
390typedef enum
391{
392 FFch = 0,
393 FDcch,
394 FScch,
395 FSch,
396 FNull
397}FwdDataChnlT;
398
399/* Data structure used to communicate service configurations to the forward object */
400typedef struct
401{
402 FwdDataChnlT PhysChnlType; /* Channel type indicator -- FCH, DCCH, SCCH, SCH */
403 FwdDtchT Dtch;
404 FwdScchT Scch;
405 FwdSchT Sch[SYS_MAX_FSCH];
406}LmdFwdSvcConfigT;
407
408/* data info sent to SVC */
409typedef struct
410{
411 LmdFwdChnlTypeT PhysChan; /* this will tell SVC FWD receives SCH data.*/
412 kal_uint8 Header;
413 kal_uint16 DtchNumBits;/* Only for FCH, DCCH*/
414 LmdFwdFrameRateT DtchRate; /* Only for FCH, DCCH*/
415}FwdDataT;
416
417typedef enum
418{
419 LMD_REV_FCH_PT = 0x0,
420 LMD_REV_FCH_SIG,
421 LMD_REV_FCH_SEC,
422 LMD_REV_DCCH_PT,
423 LMD_REV_DCCH_SIG,
424 LMD_REV_DCCH_SEC,
425 LMD_REV_NONE
426} LmdRevPhysChnlTypeT;
427
428typedef struct
429{
430 //ExeMailboxIdT PtMbox;
431 LmdRevPhysChnlTypeT PtPhysChannel;/* the PT mailbox's carrier channel */
432}LmdPtMboxSetT;
433
434typedef struct
435{
436 //ExeMailboxIdT Mbox; /* used for frame request, then RLP put data in this Mbox */
437 kal_uint8 PrimSrId; /* used for frame request */
438 LmdRevPhysChnlTypeT PrimChannel; /* used for Rev to dispose data */
439 RlpFrameRateTabT PrimRateMax; /* used for Frame request*/
440 kal_uint8 SecSrId; /* used for frame request */
441 LmdRevPhysChnlTypeT SecChannel; /* used for Rev to dispose rev data */
442 RlpFrameRateTabT SecRateMax; /* used for Frame request*/
443 kal_uint8 SchId; /* SCH id for the REV channel*/
444 //ExeMailboxIdT SchMbox;
445 kal_uint8 NumberOfSchPDU; /* Number of PDU's allowed */
446 SysRlpFrameRateE PDURate;
447}LmdRlpMboxSetT;
448
449typedef struct
450{
451 LmdRevPhysChnlTypeT PtPhysChannel;
452 LmdRlpMboxSetT* RlpFch; /*RLP mail FCH setups*/
453 LmdRevPhysChnlTypeT SigPhysChannel; /* Signaling carrier channel */
454 kal_bool RlpDtchShareMbox;
455}LmdRevMboxSetT;
456
457typedef struct
458{
459 kal_uint16 PtBits;
460 kal_uint16 PtRate;
461}LmdSvcPtDataT;
462
463typedef struct
464{
465 kal_uint8 PrimSrId;
466 SysRlpFrameRateE PrimRate;
467 kal_uint8 SecSrId;
468 SysRlpFrameRateE SecRate;
469}LmdSvcDsDtchT;
470
471/* The Fsch config info from SVC to FWD */
472typedef struct
473{
474 kal_bool PilotGatingUseRate;
475 kal_bool ForSchFerRep;
476 kal_uint8 sch_id;
477
478}LmdSvcFschInfoT;
479
480/* The Rsch config info from SVC to FWD */
481typedef struct
482{
483 kal_uint16 RevSchDtxDuration;
484 kal_uint8 sch_id;
485 kal_uint16 RevSchDuration;
486}LmdSvcRschInfoT;
487
488
489/*
490 Markov structures
491 */
492/* Markov data message */
493typedef struct
494{
495 kal_uint16 MuxCat; /* mux option category */
496 kal_uint16 RxNumBits; /* size of data in bits */
497 kal_uint16 RxPacket [MAX_FCH_FRAME_WORD_LEN]; /* data */
498} LmdMsoFwdChDataMsgT;
499
500/* Markov control message */
501typedef struct
502{
503 kal_uint8 CtlRecType;
504 union
505 {
506 kal_uint8 Control;
507 kal_uint8 VectCounterId;
508 } Directive;
509} LmdMsoControlDataT;
510
511/* Markov Clear Spy Statistics message */
512typedef enum
513{
514 CLEAR_TX_STATS = 0x01,
515 CLEAR_RX_STATS = 0x02,
516 CLEAR_BOTH_STATS = 0x03
517} LmdDirectionFlagT;
518
519typedef struct
520{
521 LmdDirectionFlagT DirFlag; /* a bit mask variable (TX, RX, or both) */
522} LmdMsoClearStatsMsgT;
523
524/*
525 LSO structures
526 */
527
528
529/*SO75 control message*/
530typedef struct
531{
532 kal_uint8 CtlRecType;
533 union
534 {
535 kal_uint8 AckOrNak;//wait to be confirmed
536 kal_uint8 VectCounterId;
537 }Directive;
538 kal_uint8 ClearCounters;
539} LmdLsoControlDataT;
540
541/*Control for ACK Channel(used for 1xAdv)*/
542typedef enum
543{
544 DEPEND =0x0,
545 ACK =0x1,
546 NAK =0x2
547} AckNakControlT;
548
549
550/*
551 Tdso definitions
552 */
553/* Tdso connect message structure */
554typedef struct
555{
556 kal_uint8 RC; /* Radio Configuration */
557 kal_uint8 ChanMask; /* PHY_RES_FCH, DCCH, SCH0 or SCH1 */
558 LmdTrafficTypeT TrafficType; /* PRIMARY or SECONDARY */
559 kal_uint16 MuxOptions[4]; /* 0 for Fch, 1 for Dcch, 2 for Sch0, 3 for Sch1 */
560} LmdTdsoConfigT;
561
562typedef struct
563{
564 LmdTdsoConfigT Fwd;
565 LmdTdsoConfigT Rev;
566} LmdTdsoConnectMsgT;
567
568/* Tdso data message structures */
569typedef enum
570{
571 DCID_FCH = 0,
572 DCID_DCCH,
573 DCID_SCH0,
574 DCID_SCH1,
575 DCID_NULL
576} LmdDataChanIdT;
577
578typedef struct
579{
580 LmdDataChanIdT DataChanId; /* FCH, DCCH, SCH0 or SCH1 */
581 kal_uint16 NumPdus;
582 kal_uint16 NumBits;
583 kal_uint8 *DataP[8];
584} LmdTdsoDataT;
585
586typedef struct
587{
588 kal_uint8 FwdChanMask; /* PHY_RES_FCH, DCCH, SCH0 or SCH1 */
589 kal_uint16 MuxCat;
590 kal_uint16 NumPdus;
591 kal_uint16 NumBits;
592 kal_uint32 SysTime;
593 CpBufferT *DataP[8];
594} LmdTdsoFwdChDataMsgT;
595
596typedef struct
597{
598 kal_uint8 FwdChanMask; /* PHY_RES_FCH, DCCH, SCH0 or SCH1 */
599 kal_uint8 RevChanMask; /* PHY_RES_FCH, DCCH, SCH0 or SCH1 */
600} LmdTdsoDisconnectMsgT;
601
602typedef enum
603{
604 FWD_LINK = 0,
605 REV_LINK
606} LmdLinkDirectionT;
607
608/* Tdso clear statisctics ETS command message structure */
609typedef struct
610{
611 LmdDirectionFlagT DirFlag; /* a bit mask variable (TX, RX, or both) */
612} LmdTdsoClearStatsMsgT;
613
614/* Tdso Random Number Calc ETS command message structures */
615typedef struct
616{
617 ExeRspMsgT RspInfo;
618 kal_bool NewSeed;
619 kal_uint32 Seed;
620} LmdTdsoRandomNumberCalcMsgT;
621
622typedef struct
623{
624 kal_uint8 SeqNum;
625 kal_uint32 Y31;
626 kal_uint32 Y24;
627} RngT;
628
629typedef struct
630{
631 RngT Yn[5];
632} LmdTdsoRandomNumberCalcRspMsgT;
633
634/* Voice memo and voice recognition definitions */
635typedef enum
636{
637 LMD_VMEM_REASON_COMMANDED = 0,
638 LMD_VMEM_REASON_COMPLETED,
639 LMD_VMEM_REASON_CANNOT_DO
640} LmdVmemReasonT;
641
642typedef struct
643{
644 kal_uint8 NumMuxPDUs;
645 kal_uint8 Pad;
646 kal_uint16 MuxPDUSize;
647} LmdMpInputOutputDebugInputSpyT;
648
649typedef struct
650{
651 kal_uint8 NumRlpFrames;
652 kal_uint8 RlpFrameFormat;
653 kal_uint16 RlpFrameLen;
654} LmdMpInputOutputDebugOutputSpyT;
655
656typedef struct
657{
658 kal_uint16 MuxPduCtrl;
659 kal_uint16 MuxPduType5Ctrl;
660 kal_uint16 NumFrames;
661 kal_uint16 NumGoodFrames;
662 kal_uint16 NumMuxPDUs;
663 kal_uint16 SrId;
664 kal_uint16 MuxPDULen;
665 kal_uint16 MuxPDUExtHeader;
666 kal_uint8 MuxPDUData[4];
667} LmdMpPdchInputDebugSpyT;
668
669typedef struct
670{
671 kal_uint8 priSrId;
672 SysRlpFrameRateE priRate;
673 kal_uint8 priDataPtr[4];
674 kal_uint8 secSrId;
675 SysRlpFrameRateE secRate;
676 kal_uint8 secDataPtr[4];
677} LmdMpFundicatedDataOutputSpyT;
678
679typedef struct
680{
681 kal_uint8 srId;
682 RlpFrmFormatE frameFormat;
683 kal_uint8 offset;
684 kal_uint8 reserved;
685 kal_uint16 frameLen;
686 kal_uint8 Data[4];
687} LmdMpPdchOutputSpyFrameInfoT;
688
689typedef enum
690{
691 UNINITIALIZED = 0,
692 INITIALIZED,
693 ACCESS,
694 EACH_STATE,
695 TRAFFIC,
696 TEST_STATE,
697 NULL_STATE,
698 WAIT_2_FRAME_STATE
699} LmdRevStateTypeT;
700
701typedef enum
702{
703 MPDU_NORMAL = 0,
704 MPDU_BYPASS,
705 MPDU_AUTOMATIC
706} MpOpModeT;
707
708/* MuxPDU Training States */
709typedef enum
710{
711 TRAINING_DISABLED = 0,
712 TRAINING_ACTIVE,
713 TRAINING_COMPLETE
714} MpStateT;
715/* MuxPDU Training State sub-trace ids */
716typedef enum
717{
718 MPT_SETUP_ID = 0,
719 MPT_CHECK_LTU_CRC_ID,
720 MPT_ACTIVATE_NEW_CONFIG_ID
721} MpActionIdT;
722/* MuxPDU Set Op Mode Msg */
723typedef struct
724{
725 ExeRspMsgT RspInfo;
726 MpOpModeT PreferredMode;
727} LmdMpSetOpModeMsgT;
728
729typedef struct
730{
731 MpOpModeT PreferredMode;
732 kal_uint8 CurrentMode;
733 kal_uint8 CheckLtuCrc;
734} LmdMpSetOpModeRspMsgT;
735
736/* MuxPDU Get Op Mode Msg */
737typedef struct
738{
739 ExeRspMsgT RspInfo;
740} LmdMpGetOpModeMsgT;
741
742typedef struct
743{
744 MpOpModeT PreferredMode;
745 kal_uint8 CurrentMode;
746 kal_uint8 CheckLtuCrc;
747} LmdMpGetOpModeRspMsgT;
748
749
750typedef struct
751{
752 kal_uint8 FFchId;
753 kal_uint8 FSchId;
754 kal_uint8 RFchId;
755 kal_uint8 RSchId;
756}TdsoSrIdT;
757
758typedef struct
759{
760 kal_bool Enabled;
761 kal_uint8 ChanMonitor; /* 0 = FCH, 1 = DCCH */
762 kal_bool PwrThreshEnable;
763 kal_uint8 PwrRepThresh;
764 kal_bool PwrPeriodEnable;
765 kal_uint8 PwrRepFrames;
766 kal_uint8 PwrRepDelay;
767 kal_uint8 CurrRepDelay;
768 kal_uint8 BadFrames;
769 kal_uint8 DcchBadFrames;
770 kal_uint32 TotFrames;
771 kal_uint32 DcchTotFrames;
772 kal_uint8 FrameOffset;
773 kal_uint8 FwdBlankingDutyCycle;
774 kal_uint8 RevBlankingDutyCycle;
775}LmdFwdPwrCtlT;
776
777#ifdef MTK_CBP_ENCRYPT_VOICE
778typedef enum
779{
780 Discard_In_Config = 0,
781 Discard_Full_0_Frame,
782 Discard_first_rev_3_Frame,
783 VoiceEncryptDelay_Reset,
784 Decrypt_Voice,
785 Encrypt_Voice
786} LmdVoiceEncryptEventT;
787#endif
788/*----------------------------------------------------------------------
789 Global variables.
790-----------------------------------------------------------------------*/
791/* Flag Value to indicate the Fwd counters are suspended */
792/* declared and initialized in lmdfwdch.c and used in lmdfwdch.c and lmdmpfwd.c */
793extern kal_bool FwdCounterSuspend;
794extern kal_bool LmdMpSchAssigned;
795
796
797extern TdsoSrIdT TdsoSrId;
798extern kal_uint8 FwdRc;
799extern kal_uint8 RevRc;
800extern LmdFwdPwrCtlT LmdFwdPwrCtlParms;
801extern kal_uint8 VocSrId;
802extern LmdSridDataT LmdSrId[SYS_SR_ID_MAX + 1];
803
804/*flags for statistic and loopback data processing*/
805extern kal_bool EAckCounter;
806extern kal_bool ENakCounter;
807extern kal_bool LsoTxFCHIsNull;
808
809#ifdef MTK_CBP_ENCRYPT_VOICE
810extern kal_bool VoiceEncDataDisable;
811#endif
812
813
814/*----------------------------------------------------------------------
815 Global Function Prototypes
816-----------------------------------------------------------------------*/
817/*-------------------- TRACE/SPY MSG ID Handle------------------------*/
818extern void LmdDhlMsgLog(module_type mod_id, msg_type msg_id, local_para_struct *msgPtr);
819
820/*-- Reverse Object Operations ---------------------------------*/
821extern void LmdRevSig(kal_uint32 SigId);
822extern void LmdRevCmdMsg(void *MsgDataPtr, kal_int32 MsgId);
823extern void LmdRevSigMsg(void *MsgDataPtr, kal_int32 MsgId);
824extern kal_uint16 LmdRevSigDataQueueSizeGet(void);
825extern kal_uint8 LmdRevPrevGet(void);
826extern void LmdRevSchMsg(LmdSvcRschInfoT *RschInfoP);
827extern void LmdGetRevStatCntMsg(LmdGetStatCntMsgT *MsgP);
828extern void LmdSetRevStatCntMsg(LmdSetStatCntMsgT *MsgP);
829extern void LmdResetRevStatCntMsg(void);
830extern void LmdRevSchStop(kal_uint8 sch_id);
831extern void LmdRevTrafficMBoxesFlush(void);
832extern void LmdRevDataMsg(void* MsgDataPtr, kal_uint16 MsgId);
833
834/*-- Reverse channel rate test case handler -----*/
835extern void LmdRateTestControl(L1dTstChnTypeT ChnlType, L1dTstFchRateT FchRate, L1dTstSchRateT SchRate);
836
837
838/*-- Forward Object Operations ---------------------------------*/
839extern void LmdFwdSig(kal_uint32 SigId);
840extern void LmdFwdCmdMsg(void *MsgDataPtr, kal_int32 MsgId);
841extern void LmdFwdSchMsg(LmdSvcFschInfoT *FschInfoP);
842extern void LmdGetFwdStatCntMsg(LmdGetStatCntMsgT *MsgP);
843extern void LmdSetFwdStatCntMsg(LmdSetStatCntMsgT *MsgP);
844extern void LmdResetFwdStatCntMsg(void);
845extern void LmdFwdSchStopSigProc(kal_uint8 sch_id);
846extern void LmdFwdSchPwrMeasRep(kal_uint8 sch_id);
847extern void LmdFwdChannelInit(void);
848extern void LmdFwdUpdateAllSchStats (kal_bool PhysChanQlty, kal_bool SchChanRdy, LmdFwdSvcConfigT *LmdFwdConfig);
849//extern void LmdClearDtxStats(void);
850extern void LmdIpcClearFwdStats(void);
851
852#ifdef MTK_DEV_BUG_FIX_XL2
853extern void LmdFwdSchFrameCountReset(kal_bool CountReset);
854#endif
855
856/*-- Service Configuration Object Operations ---------------------------------*/
857extern void LmdSvcSig(kal_uint32 SigId);
858extern void LmdSvcCmdMsg(void *MsgDataPtr, kal_int32 MsgId);
859extern void LmdSvcRevConfigGet(LmdRevSvcConfigT *LmdRevConfig,
860 LmdSvcPtDataT *LmdPtData,
861 LmdSvcDsDtchT *RevRlpFch,
862 LmdSvcDsSchT *RevRlpSch,
863 kal_uint16 SigBits);
864extern void LmdSvcFwdConfigGet(LmdFwdSvcConfigT *LmdFwdConfig,
865 FwdDataT *FwdData,
866 kal_bool ChnlQlty);
867extern kal_uint8 LmdSvcFwdMuxPDUType(void);
868extern void LmdSvcFwdFrameReceive(LmdFwdChnlTypeT PhysChan);
869extern kal_uint16 LmdSvcFwdPtRate(kal_uint16 PtBits, kal_uint16 PtRouting, LmdFwdFrameRateT PhysChanRate);
870extern kal_uint16 LmdSvcFwdSecRate(kal_uint16 SecBits, kal_uint16 SecRouting);
871extern void LmdSvcVocRateLimit(kal_bool Limit);
872extern void LmdSvcRevMboxSet(LmdRevMboxSetT* LmdRevMboxSet, kal_uint16 SigBits);
873
874extern kal_uint8 LmdSvcRevSigPhysRes(void);
875extern kal_uint8 LmdSvcServiceOptPhysRes(LmdLinkDirectionT LinkDir, LmdServiceOptionT SvcOpt);
876extern void LmdSvcRevTdsoDataConvert(LmdTdsoDataT* GenMsgP, void* RevDsMsgP);
877extern kal_uint8 * LmdSvcLCMaskGet(void);
878
879extern RlpRxFrameRateT LmdRlpFrameSpyRate(SysMultiplexOptionT MuxOption,
880 kal_uint16 PduType,SysRlpFrameRateE PduRate);
881
882extern void LmdSvcSpeechDisableMsgHandler(LmdSpeechDisableMsgT *);
883
884extern kal_bool LmdSvcRevSchCodingGet();
885extern kal_uint8 LmdSvcFwdSchMuxPduGet();
886/* for RSCH DTX*/
887extern void LmdSvcRschDtxExpired(kal_uint8 sch_id);
888extern void LmdRevSchSendDtxExpiration(void);
889
890
891
892/* FSCH rate determination...*/
893extern void LmdSvcActivateNewFSchConfig (void);
894extern kal_uint16 LmdSvcFwdSchDurationGet(kal_uint8 sch_id);
895
896/*-------- Direct Buffer functions --------------------*/
897extern void LmdRevSendAccessFrame(LmdAccessDataCarrierT *LmdAccessDataCarrierP, kal_uint32 FrameBytes);
898extern void LmdRevSendTrafficFrame(LmdReverseTchCarrierT *LmdRevTchCarrierP
899#if defined (MTK_DEV_OPTIMIZE_XL2)
900 , kal_uint8 vocieFlag, kal_uint8 SigFlag
901#endif
902 , kal_uint8 retryCount
903 );
904extern void LmdRevSendTestFrame(void);
905extern void LmdRevInitTestFrame(L1dTstChnTypeT ChnlType,L1dTstFchRateT FchRate,L1dTstSchRateT SchRate);
906extern void LmdRevResetFrameTracking (void);
907extern void LmdFwdStatistics(LmdFwdChnlTypeT PhysChanType, SysMultiplexOptionT MuxOpt,
908 kal_uint16 NumBits, PswFrameCatagoryT Category, kal_bool NullFrame,
909 kal_uint8 NumLtus, kal_uint8 NumGoodLtuCrc);
910
911/*-------- LMD Bit Copying Functions --------------------*/
912extern void LmdPacked8to16BitCpy(kal_uint8 *FromP, kal_uint32 FromBitOffset,
913 kal_uint16 *ToP, kal_uint32 ToBitOffset, kal_uint32 NumBits);
914
915extern void Lmd16toPacked8bitcpy(kal_uint16 *FromP, kal_uint8 *ToP, kal_uint32 NumBits,
916 kal_uint32 BuffBitOffset);
917
918extern void Lmd16toPacked16BitCpy(kal_uint16 *FromP, kal_uint16 *ToP,
919 kal_uint32 NumBits, kal_uint32 BuffBitOffset);
920
921extern void LmdPacked16to16BitCpy(kal_uint16 *FromP, kal_uint16 *ToP,
922 kal_uint32 NumBits, kal_uint32 BuffBitOffset);
923
924extern void LmdPacked16toPacked16BitCpy(register kal_uint16 *FromP,
925 register kal_uint16 *ToP,
926 kal_uint32 NumBits, kal_uint32 FromBitOffset);
927
928extern void Lmd8Bitto8BitCpy(register kal_uint8 *FromP, register kal_uint8 *ToP,
929 kal_uint32 NumBits, kal_uint32 ToBitOffset);
930
931extern void Lmd8BitOffsetto8BitOffsetCpy(register kal_uint8 *FromP, register kal_uint8 *ToP,
932 kal_uint32 NumBits, kal_uint32 FromBitOffset,
933 kal_uint32 ToBitOffset);
934
935extern void LmdSendPswCmdStatusMsg(PswCmdStatusT Status);
936
937/* LMD Crc Functions */
938extern kal_uint16 LmdCrc16BitCalculate (kal_uint8 *msg, kal_uint8 len);
939extern kal_bool LmdCrc16BitCheck (kal_uint8 *message, kal_uint8 len);
940
941/* LMD IRAM Functions that are used by Markov and Test Data Service options */
942extern kal_uint32 LmdRNG48 ( kal_uint32 RNG32 );
943//extern void LmdResetMpPdchCounter (void);
944
945/*for MOD_SPCH Functions*/
946extern void lmdSpch_process_ilm(ilm_struct *current_ilm);
947
948
949/*-------- Markov Functions --------------------*/
950extern void LmdMsoInit ( void );
951extern void LmdMsoConnect ( kal_uint16 MultiplexOption, LmdServiceOptionT ServiceOption );
952extern void LmdMsoControlMsg ( LmdServiceOptionControlMsgT *RxMsgP );
953extern void LmdMsoProcessing ( LmdMsoFwdChDataMsgT *RxMsgP );
954extern void LmdMsoDisconnect ( void );
955extern void LmdMarkovClearStatsMsg ( LmdMsoClearStatsMsgT *RxMsgP );
956
957/*-------- Tdso Functions --------------------*/
958extern void LmdTdsoInit ( void );
959extern void lmds_process_ilm(ilm_struct *current_ilm);
960extern void LmdTdsoConnect ( LmdTdsoConnectMsgT *TdsoConnMsgP );
961extern void LmdTdsoControlMsg ( LmdServiceOptionControlMsgT *RxMsgP );
962extern void LmdTdsoProcessFwdChData ( LmdTdsoFwdChDataMsgT *RxMsgP );
963extern void LmdTdsoProcessRevChData ( void );
964extern void LmdTdsoDisConnect ( LmdTdsoDisconnectMsgT *RxMsgP );
965extern void LmdTdsoClearStatsMsg ( LmdTdsoClearStatsMsgT *RxMsgP );
966extern void LmdTdsoRandomNumberCalcMsg ( LmdTdsoRandomNumberCalcMsgT *RxMsgP );
967
968/*-------- Lso75 Functions --------------------*/
969extern void LmdLsoReset(void);
970extern kal_bool LmdOnTrafficChannel( void );
971extern kal_bool LmdInTestMode( void );
972
973/*------------- Debug Screen Info Response --------------------*/
974extern void LmdDebugScrnFERCalc (kal_bool badframe);
975extern void LmdDebugScrnInfoMsg (LmdGetDebugScrnInfoRequestT* RxMsgP);
976extern void LmdInitializeDebugScrnCounters (void);
977extern LmdRevStateTypeT getLmdRevState(void);
978#ifdef MTK_CBP_ENCRYPT_VOICE
979extern void LmdResetVoiceEncryptDelay(void);
980#endif
981
982/*****************************************************************************
983* $Log: lmddefs.h $
984* Revision 1.12.2.3 2006/03/21 14:38:21 vxnguyen
985* - Removed references to compiler flag LMD_MPDU_BYPASS_OPERATION.
986* - Defined MuxPdu SetMode and GetMode variables, message structures
987* and function prototypes.
988* Revision 1.12.2.2 2006/02/17 10:22:11 wfu
989* - For Bypass mode.
990* Revision 1.12.2.1 2005/10/05 09:38:46 wfu
991* Revision 1.12.3.2 2006/03/13 17:31:56 winston
992* Fix CR7312: Added function prototypes for resetting the fwd/rev mux stat counters, LmdResetRevStatCntMsg() and LmdResetFwdStatCntMsg().
993* Revision 1.12.3.1 2005/10/05 09:38:46 winston
994* Duplicate revision
995* Revision 1.12 2005/10/05 09:38:46 chinh
996* - Move LmdRevStateTypeT from lmdrevch.c to this file.
997* Revision 1.11 2005/03/18 10:14:22 bcolford
998* CBP4.05 [4.21] to CBP6.1 [2.9.0] CP Software Merge.
999* Revision 1.6 2005/01/31 11:59:32 mmalopy
1000* - LmdSvcGpsSpeechDisableMsgHandler() reprotoytyped as
1001* LmdSvcSpeechDisableMsgHandler() (denotes its used by
1002* applications other than GPS).
1003* Revision 1.5 2005/01/14 16:08:38 wfu
1004* Revision 1.4 2004/07/29 15:48:12 robertk
1005* CR 3500: Removed SYS_OPTION_VOICE_MEMO compile switch from definitions.
1006* Revision 1.3 2004/05/04 15:32:25 ckackman
1007* CP_LMD_0.08.0_MergeCBP4.0_10.0
1008* Revision 1.10 2005/02/03 12:10:39 wfu
1009* - Update LmdEachCarrierT and functional prototype for LmdRevSendEachFrame() and declare the global buffer EachBuff[] for EACH frame.
1010* Revision 1.9 2004/11/18 11:11:02 vxnguyen
1011* New LMD function prototypes.
1012* Revision 1.8 2004/10/21 14:15:15 bcolford
1013* Add new data structures to suppot F-PDCH, F-SCH and F-FCH
1014* spies.
1015* Revision 1.7 2004/10/06 14:01:14 bcolford
1016* Add new data structures to support MuxPDU Type 5, F-PDCH
1017* development.
1018* Revision 1.6 2004/09/28 13:22:26 bcolford
1019* CBP6.0 ver 3.3.0 to CBP6.1 merge
1020* Revision 1.8 2004/06/29 11:14:39 bcolford
1021* Updated for CBP4.0 to CBP6.0 merge
1022* Revision 1.66 2004/03/12 15:16:33 ameya
1023* Added prototypes for LmdDebugScrnFERCalc(), LmdDebugScrnInfoMsg() and LmdInitializeDebugScrnCounters().
1024* Revision 1.65 2004/02/13 13:06:18 wfu
1025* .Declare LmdFwdChannelInit() as a global function call.
1026* Revision 1.2 2004/04/07 16:08:58 vxnguyen
1027* Removed all SpchDataMppAgc definitions/code in the effort of cleaning up IPC.
1028* Revision 1.1 2004/01/22 10:44:44 fpeng
1029* Revision 1.5 2004/08/27 10:48:22 bcolford
1030* Export a subroutine to allow initialazation of PDCH counter.
1031* Revision 1.4 2004/07/29 11:29:23 bcolford
1032* Export the new PDCH Test Mode flag and the
1033* LmdSrvMpPdchCtrl() subroutine.
1034* Revision 1.3 2004/07/08 11:07:20 blee
1035* Added support for new RLP API and support for MuxPDU Type 5
1036* data objects on F-PDCH.
1037* Revision 1.2.1.2 2004/04/20 10:38:34 bcolford
1038* MuxPDU Type five development
1039* Revision 1.2 2004/03/25 11:55:18 fpeng
1040* Updated from 6.0 CP 2.5.0
1041* Revision 1.7 2004/02/10 11:52:06 bcolford
1042* Merged CBP4.0 Release 8.05.0 changes.
1043* Revision 1.6 2004/01/30 10:32:31 vxnguyen
1044* - Simplified LmdFwdSchMpFrameProc() function prototype.
1045* (the LtuOn, PhysChanQlty and SysTime arguments are no
1046* longer passed to this function).
1047* Revision 1.5 2003/12/19 11:44:58 wavis
1048* Removed NULL_TASK definition (replaced by EXE_DUMMY_TASK).
1049* Revision 1.4 2003/12/10 16:07:13 bcolford
1050* Add a new macro to support MuxPDU Bypass operation.
1051* Revision 1.3.1.2 2003/12/02 16:30:40 bcolford
1052* Add a new pre-processor directive to support MuxPDU Type 3
1053* operation in bypass mode.
1054* Revision 1.3 2003/11/26 15:37:42 bcolford
1055* Added new prototypes for MuxType 3 processing on SCH.
1056* Export a new flag to coordinate Sch Assigned status.
1057* Revision 1.2.1.3 2003/11/26 11:09:12 bcolford
1058* Completed integration between MuxPDU and TDSO.
1059* Revision 1.2.1.2 2003/11/07 16:36:40 bcolford
1060* Updated the prototype for MuxPDU processing subroutine.
1061* Revision 1.2 2003/11/03 11:21:27 bcolford
1062* Share some subroutines between normal forward channel
1063* processing and MuxPDU forward channel processing.
1064* Revision 1.1 2003/05/12 15:31:49 fpeng
1065* Initial revision
1066* Revision 1.64 2003/12/09 09:37:22 mshaver
1067* Added LmdFwdSchPwrMeasRep() function prototype.
1068* Revision 1.63 2003/04/25 15:02:16 wfu
1069* .Change the data types of RevSchDtxDuration and RevSchDuration
1070* from kal_uint8 to kal_uint16 to avoid roundoff problem when
1071* the value goes beyond 255. CR2171.
1072* Revision 1.62 2003/03/13 16:11:20 wfu
1073* . LMD should inform SVC when RSCH DTX expired. Add function prototype
1074* for LmdSvcRschDtxExpired().
1075* Revision 1.61 2002/11/11 16:20:33 wfu
1076* . Add one additional element of SysTime in
1077* LmdTdsoFwdChDataMsgT for 153K FSCH
1078* Revision 1.60 2002/10/23 08:05:55 mshaver
1079* Removed prototypes for LmdProcessSpchDataMppHfree() and
1080* LmdProcessSpchDataSppHfree() as they are not needed.
1081* Revision 1.59 2002/10/03 15:21:33 jbenders
1082* Added function proto for LmdSvcGpsSpeechDisableMsgHandler()
1083* which will be used to properly disable/reenable the voice path and
1084* vocoder at the beginning/end of a traffic channel GPS session.
1085* Revision 1.58 2002/09/26 15:18:18 vxnguyen
1086* Added additional Voice Memo function prototypes.
1087* Revision 1.57 2002/09/09 16:18:50 wfu
1088* . Add new element 'Coding' in
1089* SchRevMuxFormatT to indicate the
1090* RSCH's Turbo coding's status.
1091* Revision 1.56 2002/08/27 17:28:31 wfu
1092* . add LmdRevSchStop() and LmdfwdSchStopSigProc()
1093* as global functions.
1094* Revision 1.55 2002/07/15 18:33:02 vxnguyen
1095* Added 'LmdRNG48()' function prototype.
1096* Revision 1.54 2002/06/18 11:58:03 wfu
1097* .Added codes for CR 507:
1098* RLP Rx/Tx Frame Spies:
1099*
1100* 1).Move #define MUXPDUTYPE1 - 6
1101* from lmdsrvcf.c.
1102* 2).Declare prototype of
1103* LmdRlpFrameSpyRate().
1104*
1105* Revision 1.53.1.2 2002/06/07 15:08:41 wfu
1106* . CR507 working version for RLp RX/TX frame spy.
1107* Revision 1.53.1.1 2002/05/30 11:11:28 wfu
1108* Duplicate revision
1109* Revision 1.53 2002/05/30 11:11:28 mshaver
1110* Added VIA Technologies copyright notice.
1111* Revision 1.52 2002/05/17 11:27:07 vxnguyen
1112* - Updated Tdso function prototypes and definitions as a new
1113* Lmd Secondary task has been created to handle Tdso.
1114* Revision 1.51 2002/04/10 15:47:04 mshaver
1115* Add the element FchAssigned to FwdDtchT to indicate to the
1116* forward channel code whether or not FCH is in use.
1117* Revision 1.50 2002/04/10 10:43:18 vxnguyen
1118* Modified LmdSvcLCMaskGet() prototype.
1119* Revision 1.49 2002/03/28 18:39:27 hans
1120* is2000 rev 0 add 2, retrievable and settable parameters implemented.
1121*
1122* Revision 1.48 2002/02/07 16:50:53 vxnguyen
1123* Added the use of compilor options SYS_OPTION_VOICE_MEMO
1124* and SYS_OPTION_VOICE_RECOGNITION.
1125* Revision 1.47 2002/01/23 17:29:24 mmalopy
1126* - LmdRevSendTestFrame() and LmdRevInitTestFrame() functions
1127* prototyped.
1128* Revision 1.46 2002/01/09 19:58:57 vxnguyen
1129* - Added Tdso definitions.
1130* - Renamed _SvcRlp_ definitions to _SvcDs_ whereever applicable
1131* so that these definitions could be shared between RLP and TDSO.
1132* Revision 1.45 2001/11/19 15:42:09 vxnguyen
1133* Added new Voice Rec and Voice Memo definitions.
1134* Revision 1.44 2001/11/13 13:10:58 mshaver
1135* - Changes to be compliant with the new LMD-RLP interface design.
1136* - Changes to support forward and reverse SCH.
1137* - Changed fundamental and dedicated channel data structure
1138* organization to allow the code to be read easier.
1139* - Changed the LMD service config get routine prototypes for both
1140* forward and reverse channels to be consistent with the above
1141* changes.
1142* - Add RlpDtchShareMbox in the data structure of LmdRevMboxSetT to
1143* indicate whether the RLP FCH and DCCH are sharing the same mailbox
1144* for delivery of reverse data to LMD.
1145* - Add one element in the data structure SchRevMuxFormatT
1146* to indicate the R-SCH's mux_option.
1147* - Add LmdSchFschInfoT to allow SVC to pass FSCH Msg
1148* information to FWD.
1149* - Add LmdSchRschInfoT to allow SVC to pass RSCH Msg
1150* information to REV.
1151* - Declare LmdRevSchMsg() and LmdFwdSchMsg() as global in
1152* LMD, since the LMD_RSCH_MSG and LMD_FSCH_MSG will
1153* only be handled by SVC, and SVC will call these
1154* two functions to pass necessary information to REV and FWD.
1155* Revision 1.43 2001/10/16 18:47:21 vxnguyen
1156* Fixed LmdMsoConnect() prototype.
1157* Revision 1.42 2001/08/29 14:49:31 vxnguyen
1158* Added MSO data structure definitions and function prototypes.
1159* Revision 1.41 2001/06/13 11:22:01 mshaver
1160* For implementation of forward and reverse channel statistics, the
1161* fch mux pdu 1 and 2 number of bits #defines were moved from
1162* lmdsrvcf.c to lmddefs.h. Also, NumBits was added to
1163* LmdFwdSvcConfigT, and MuxOpt, NumBits and Category were
1164* added to the FchRevMuxFormatT and DcchRevMuxFormatT
1165* data structures.
1166* Revision 1.40 2001/06/12 15:11:14 mshaver
1167* Changed LmdFwdSvcConfigT to add message id elements to
1168* allow the service configuration object to tell the forward object
1169* what message id should be used to route the sub channel data.
1170* Revision 1.39 2001/06/06 10:21:29 mshaver
1171* Merge in revision 1.38.1.2
1172* Revision 1.38.1.2 2001/06/05 14:42:29 mshaver
1173* Changed LmdFwdSvcConfigT ChanAssigned element to
1174* DcchAssigned to indicate whether or not Dcch is assigned.
1175* Revision 1.38.1.1 2001/06/04 14:37:02 mshaver
1176* Duplicate revision
1177* Revision 1.38 2001/06/04 14:37:02 mshaver
1178* Moved signal definitions to lmdapi.h
1179* Revision 1.37 2001/06/01 11:31:20 mshaver
1180* Added prototypes for lmd crc utility functions.
1181* Revision 1.36 2001/05/25 11:01:05 mshaver
1182* Added ChanAssigned kal_boolean to LmdFwdSvcConfigT for
1183* determining if a channel is assigned whether or not statistics
1184* for that channel should be updated.
1185* Revision 1.35 2001/05/03 15:41:46 mshaver
1186* Merge in changes from rev 1.30.1.2 which changed the prototype
1187* for LmdSvcFwdConfigGet() to change the type for FchRate from
1188* kal_uint16 to LmdFwdFrameRateT.
1189* Revision 1.34 2001/04/26 16:41:52 wfu
1190* Change in the data structure: LmdSvcRlpDataT: The PrimaRate from kal_uint8 to SysRlpFrameRateT, same as SecRate.
1191* Revision 1.33 2001/04/25 11:57:20 mshaver
1192* Changed LmdSvcRevMboxSet() prototype to add a second
1193* parameter to pass the number of signaling bits in the signaling
1194* queue. This is needed by the service configuration object in order
1195* for it to determine the maximum primary and secondary rates to be
1196* assigned to RLP
1197* Revision 1.32 2001/04/20 16:07:14 mshaver
1198* Deleted unused data struct PtMboxSetT, changed types in
1199* RlpChanMboxSetT to SysRlpFrameRateT, added signaling
1200* physical channel type to LmdRevMboxSetT.
1201* Revision 1.31 2001/04/19 17:46:37 wfu
1202* Add the new data structures and functions for supporting RLP.
1203* Revision 1.30 2001/04/18 15:23:11 mshaver
1204* Changed LmdWvcFwdConfigGet() and
1205* LmdSvcFwdFrameReceive() prototypes' physical channel
1206* parameter to be 'LmdFwdChnlTypeT' type.
1207* Revision 1.29 2001/04/10 15:04:23 mshaver
1208* Changes for revision 1.27 were deleted by revision 1.28. These
1209* function prototypes have been restored.
1210* Revision 1.28 2001/04/10 14:09:51 wfu
1211* 1). Merge with 1.26.1.2
1212* 2). Added the DSPV rate representation: PT_FULL = IPC_SPCH_BLANK , and so on.
1213* Revision 1.26 2001/03/28 15:30:18 mshaver
1214* Call integration. Add prototype for LmdSendPswCmdStatusMsg().
1215* Revision 1.25 2001/03/19 13:57:40 wfu
1216* Add MUX_PDU_NO_HEADER = 0x07
1217* Revision 1.24 2001/03/16 13:32:57 wfu
1218* Change the data type of Rev Config FchRate as LmdRevFundRateTypeT.
1219* Revision 1.23 2001/03/16 12:53:35 wfu
1220* Add FchRate in the Reverse Config.
1221* Revision 1.22 2001/03/12 08:23:56 mshaver
1222* Added prototype for LmdSvcVocRateLimit().
1223* Revision 1.21 2001/03/08 17:07:08 mshaver
1224* Added RevFchRate to LmdRevFchCarrierT as it is to be
1225* written to the signal buffer if there is FCH data. Also, added
1226* a prototype for the reverse object function LmdRevPrevGet().
1227* Revision 1.20 2001/03/02 16:35:25 wfu
1228* Revision 1.19 2001/02/28 17:00:08 mshaver
1229* Added prototype for reverse object for LmdRevSigDataQueueSizeGet().
1230* Revision 1.18 2001/02/28 09:38:01 mshaver
1231* Added rate parameter to LmdSvcRevConfigGet().
1232* Revision 1.17 2001/02/27 10:10:02 wfu
1233* Small changes in the functions' prototypes.
1234* Revision 1.16 2001/02/27 10:07:59 wfu
1235* Delete the functions' prototypes for LmdSvcInit() and LmdSvcSigBack().
1236* Revision 1.15 2001/02/23 14:03:34 wfu
1237* Add the function prototype: LmdServiceConfigInit(void);
1238* Revision 1.14 2001/02/23 11:03:42 wfu
1239* Add the following signals:
1240* LMD_SERVICE_OPTION_CONTROL_SIG
1241* LMD_START_NN_SERVICE_CONFIG_SIG
1242* LMD_START_SERVICE_CONFIG_SIG
1243* Used from LMD<->LMD
1244* Revision 1.13 2001/02/22 13:43:12 mshaver
1245* Add parameter to LmdRevSendAccessFrame to pass the maximum
1246* number of bytes in the access frame
1247* Revision 1.12 2001/02/21 13:23:25 mshaver
1248* Added parameter to LmdSvcFwdConfigGet to indicate the
1249* quality of the current channel (CRC).
1250* Revision 1.11 2001/02/20 08:26:09 mshaver
1251* Change header size from 16 to 8 bits in LmdSvcFwdConfigGet().
1252* Revision 1.10 2001/02/16 14:48:53 mshaver
1253* Added FchRate to LmdSvcFwdConfigGet() parameter list.
1254* Revision 1.9 2001/02/15 17:32:01 mshaver
1255* Changed the forward service config struct to define the routing
1256* fields in terms of task ids, added frame category and mux option
1257* to the struct as well. Added prototypes for addition service
1258* configuration operations LmdSvcFwdMuxPDUType(),
1259* LmdSvcFwdFrameReceive() and LmcSvcFwdPtRate().
1260* Revision 1.8 2001/02/14 13:53:37 mshaver
1261* Added forward and reverse function prototypes to be consistent
1262* with the Rhapsody model. Removed unneeded information that
1263* is now local to a specific object.
1264* Revision 1.7 2001/01/29 11:53:42 mshaver
1265* Added Lmd8BitOffsetto8BitOffsetCpy() prototype, and signal
1266* data queueing function prototypes.
1267* Revision 1.6 2001/01/19 11:53:10 mshaver
1268* Added LmdDataTypeTand LmdRevTchCarrierT data structures,
1269* and lmdbit.c function prototypes.
1270* Revision 1.5 2001/01/16 16:30:17 mshaver
1271* Merge in revision 1.4.1.2.
1272* Revision 1.4.1.2 2001/01/16 16:08:18 mshaver
1273* Define enum typedef for lmd state, remove PACKED qualifier from the data structs used to write data to direct buffer as it is not needed, changed various function prototypes to be extern.
1274* Revision 1.4.1.1 2001/01/10 16:07:11 mshaver
1275* Duplicate revision
1276* Revision 1.4 2001/01/10 16:07:11 wfu
1277* revison on 01/10/01
1278* Revision 1.3 2001/01/08 08:54:38 mshaver
1279* Moved IPC direct buffer mailbox definitions from lmdapi.h to
1280* lmddefs.h as they are not global. Added rcs log at bottom of
1281* file.
1282*****************************************************************************/
1283
1284/*****************************************************************************
1285* End of File
1286*****************************************************************************/
1287
1288#endif
1289/**Log information: \main\Trophy\Trophy_ylxiao_href22033\1 2013-03-18 14:16:24 GMT ylxiao
1290** HREF#22033, merge 4.6.0**/
1291/**Log information: \main\Trophy\1 2013-03-19 05:20:51 GMT hzhang
1292** HREF#22033 to merge 0.4.6 code from SD.**/
1293/**Log information: \main\Trophy\Trophy_SO73\1 2013-07-10 07:00:08 GMT yanliu
1294** HREF#0000: 1x advance SD 20130708_1xAdvanced version merge**/
1295/**Log information: \main\Trophy\2 2013-07-17 08:16:58 GMT yanliu
1296** HREF#0000: 1x advance SD 20130708_1xAdvanced version merge**/
1297