[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/l1/cl1/common/cl1tskll1aapi.h b/mcu/interface/l1/cl1/common/cl1tskll1aapi.h
new file mode 100644
index 0000000..56f5763
--- /dev/null
+++ b/mcu/interface/l1/cl1/common/cl1tskll1aapi.h
@@ -0,0 +1,420 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2016
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+#ifndef _CL1TSKLL1AAPI_H_
+#define _CL1TSKLL1AAPI_H_
+
+#ifdef MTK_DEV_93M_PREIT
+
+/*****************************************************************************
+
+ FILE NAME: cl1tskll1aapi.h
+
+ DESCRIPTION:
+
+ This file contains the message type and apis of LL1A for other modules.
+
+*****************************************************************************/
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "cl1tskll1adefs.h"
+
+
+/*----------------------------------------------------------------------------
+* Definitions
+*----------------------------------------------------------------------------*/
+#define GAP_SESSION_IN_PERIOD (6) /** The maximum number of gap session in one gap notify ind. */
+
+#define GAP_MARGIN_FOR_STANDBY (10000) /** The Gap margin for Standby rat when EVDO in active.*/
+#define GAP_MARGIN_FOR_STANDBY_OVERLAP (20000) /** The header or end Gap margin for Standby rat when EVDO in active.*/
+
+extern Ll1aScheInfoT gLl1aScheInfo;
+
+#define LL1A_GAP_SERVICE_STATUS_SET(Enable) (gLl1aScheInfo.GapServiceEnable = Enable)
+#define LL1A_GAP_SERVICE_STATUS_GET() (gLl1aScheInfo.GapServiceEnable)
+
+#define LL1A_GAP_OFFERED_STATUS_SET(Status) (gLl1aScheInfo.GapOfferedStatus = Status)
+#define LL1A_GAP_OFFERED_STATUS_GET() (gLl1aScheInfo.GapOfferedStatus)
+
+
+/*----------------------------------------------------------------------------
+ Message Formats structure
+----------------------------------------------------------------------------*/
+/**********************************************RMC Interface Related*********************************/
+
+/** Rmc Rat Status Ind. */
+typedef struct
+{
+ RmcRatStatusT RatStatus; /* Flight/Standby/Active. */
+} Ll1aRmcRatStatusIndMsgT;
+
+/** Rmc Mode Status Ind. */
+typedef struct
+{
+ RmcModeStatusT ModeStatus; /* NULL/IDLE/CONNECTED. */
+ kal_uint16 DrxCycleLength;/* When IDLE Mode, this value is valid and in slot unit. */
+} Ll1aRmcModeStatusIndMsgT;
+
+/** Rmc Inter-Freq Number. */
+typedef struct
+{
+ kal_uint8 FreqNum; /** EVDO in active, the number of higher priority inter-freq.*/
+ /** When HPS off, the freq_num is equal to zero. */
+} Ll1aRmcActiveMeasInfoIndMsgT;
+
+/** EvStandby Send the standby meas config to LL1A, including the meas purpose and meas type. */
+typedef struct
+{
+ kal_uint8 MeasPurpose; /** Bit0 - Meas On/Off, Bit1 - Cell Search On/Off. */
+ kal_uint8 TickBitMap; /** Bit0 - TICK_BITMAP_MPSR, Bit1 - TICK_BITMAP_HPS, Bit2 - TICK_BITMAP_LPS, Bit3 - TICK_BITMAP_RES. */
+ kal_uint8 FreqNum; /** This need EvStandby to fill it with different Meas On/Off and Thps On/Off Combination. */
+ kal_uint8 IsPeriodResetBitMap; /** Bit0 - RANK BIT Bit1 - HIGH PRIORITY BIT. */
+ kal_uint8 Tid; /** The Tid for this standby meas request. */
+} Ll1aEvStandbyMeasReqMsgT;
+
+/** This is a gap session stricture, with the start time and duration in EVDO's system time format. */
+typedef struct
+{
+ kal_uint32 GapSessionStartTime; /** The Start Time of Standby Gap. The start time is based on FRC time.*/
+ /* modify it to kal_uint32 to keep same with 91 for EVL1 flow */
+ kal_uint32 GapSessionLength; /** The Length of Standby Gap. The start time is based on FRC time.*/
+} GapSessionTypeT;
+
+
+/** The EvStandby' Gap Notify Ind Structure. */
+typedef struct
+{
+ kal_uint8 Tid; /** The Tid for this gap notify ind. */
+ kal_uint8 GapSessionNum; /** 1 - For Idle Gap; 1 < number <=6 - For Connect Gap. */
+ GapSessionTypeT GapSession[GAP_SESSION_IN_PERIOD]; /** LL1A will inform all the gap session time to Gap Manager. */
+ kal_uint8 MeasTid; /** Indicate the measurement tid for standby meas module. */
+ kal_uint8 HpsTid; /** Indicate the Hps tid for standby meas module. */
+ kal_uint8 TickBitmap; /** Bit0 - Tmrasure, Bit1 - Thps. */
+ kal_bool is_conn_gap; /* indicate whether is LTE connect normal gap */
+} EvStandbyLl1aGapNotifyIndMsgT;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ EvStandbyLl1aGapNotifyIndMsgT msg;
+} evstandby_ll1a_gap_notify_ind_msg_struct;
+
+
+/** The EvStandby' Measure done Ind Structure. */
+typedef struct
+{
+ kal_uint8 Tid; /** Indicate the measure done tid to which gap pattern period sent before.*/
+ kal_uint8 TickBitmap; /** Bit0 - TICK_BITMAP_MPSR, Bit1 - TICK_BITMAP_HPS, Bit2 - TICK_BITMAP_LPS, Bit3 - TICK_BITMAP_RES. */
+ kal_uint8 cell_list_status_bitmap; /* cell_list_status_bitmap - bit 0 is set to 1, if no cell found in cell list */
+} Ll1aEvStandbyMeasDoneIndMsgT;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ Ll1aEvStandbyMeasDoneIndMsgT msg;
+} Ll1aEvStandbyMeasDoneIndMsgT_HDR;
+
+/** The EvStandby Auto-Gap Cnf Structure. */
+typedef struct
+{
+ kal_bool Success; /** Indicate the auto-gap requeset for EvStandby is success or fail. */
+ kal_int32 ValidPeriod; /** The valid auto-gap period from LL1, in usc unit. */
+ kal_uint32 AutoTime; /** Return the AutoTime to GM.*/
+} EvStandbyLl1aAutoGapCnfMsgT;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ EvStandbyLl1aAutoGapCnfMsgT msg;
+} evstandby_ll1a_auto_gap_cnf_msg_struct;
+
+typedef struct
+{
+ Ll1aActiveGapPatternTypeT ActiveGap;
+ kal_uint32 GapStartTime;
+ kal_uint32 GapLen;
+}Ll1aGapPatternIndMsgT;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ Ll1aGapPatternIndMsgT msg;
+}Ll1aGapPatternMsgT_HDR;
+
+typedef struct
+{
+ kal_bool Enable; /** Indicate RMC GM needs specific gap length for standby ICS.*/
+ kal_uint16 GapLen; /** The needed specific gap length, in ms unit.*/
+} EvStandbyLl1aSpecificGapRegMsgT;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ EvStandbyLl1aSpecificGapRegMsgT msg;
+}EvStandbyLl1aSpecificGapRegMsgT_HDR;
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aHscGapPatternOfferReq
+
+ DESCRIPTION: This is used by EvSpage to call when gap offer enable flag is set
+
+ PARAMETERS: IsDrxCycle -- Indicate whether the gap is in a new DRX cycle
+ StartTime -- The Idle Gap Start Time in 32Kcnt
+ GapLen -- The Idle Gap length in 32Kcnt
+
+ RETURNED VALUES:
+*****************************************************************************/
+extern void Ll1aHscGapPatternOfferReq(Ll1aActiveGapPatternTypeT GapType, kal_bool IsDrxCycle, kal_uint32 StartTime, kal_uint32 GapLen);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aHscProcMmoGapPatternOfferReq
+
+ DESCRIPTION: This is used by LL1A to process the MMO gap offer to MLL1
+
+ PARAMETERS: MsgPtr -- The message pointer for MMO gap received from frame handler
+
+ RETURNED VALUES:
+*****************************************************************************/
+extern void Ll1aHscProcMmoGapPatternOfferReq(void *MsgPtr);
+
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aHscProcGapStopReq
+
+ DESCRIPTION: This is used by EvSpage to call when EvSpage needs to perform early wakeup
+ and needs LL1A helps to stop standby rat's gap(if previously gap pattern is offered).
+ When this API is called, LL1A will send gap stop request to LL1 automatically
+ and wait for gap stop cnf from LL1.
+ PARAMETERS: void
+ RETURNED VALUES:
+*****************************************************************************/
+extern kal_bool Ll1aHscProcGapStopReq(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: HscProcLl1aMsg
+
+ DESCRIPTION: This is the LL1A message process function entry in HSC task.
+ PARAMETERS: *MsgDataP - Message Data Pointer
+ MsgId - The defined message id
+ MsgSize - The message size
+ RETURNED VALUES: TRUE - Processed
+*****************************************************************************/
+extern kal_bool HscProcLl1aMsg(void *MsgDataP, kal_uint32 MsgId, kal_uint32 MsgSize);
+
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aModeStatusGet
+
+ DESCRIPTION: The API provide by LL1A to get the RMC Mode Status
+ PARAMETERS: void
+
+ RETURNED VALUES: RmcModeStatusT
+
+*****************************************************************************/
+extern RmcModeStatusT Ll1aModeStatusGet(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aModeStatusSet
+
+ DESCRIPTION: The API provide by LL1A to set the RMC Mode Status
+ PARAMETERS: RmcModeStatus
+
+ RETURNED VALUES: void
+
+*****************************************************************************/
+extern void Ll1aModeStatusSet(RmcModeStatusT RmcModeStatus);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aDrxCycleLenGet
+
+ DESCRIPTION: The API provide by LL1A to get the RMC DRX cycle length
+ PARAMETERS: void
+
+ RETURNED VALUES: uint16
+
+*****************************************************************************/
+extern kal_uint16 Ll1aDrxCycleLenGet(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aDrxCycleLenSet
+
+ DESCRIPTION: The API provide by LL1A to set the RMC DRX cycle length
+ PARAMETERS: uint16
+
+ RETURNED VALUES: void
+
+*****************************************************************************/
+extern void Ll1aDrxCycleLenSet(kal_uint16 DrxCycleLen);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aRatStateGet
+
+ DESCRIPTION: The API provide by LL1A to get the sLl1aScheInfo.RatState
+ PARAMETERS: void
+
+ RETURNED VALUES: bool
+
+*****************************************************************************/
+extern Ll1aStateTypeT Ll1aRatStateGet(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aRatStateSet
+
+ DESCRIPTION: The API provide by LL1A to set the sLl1aScheInfo.RsvasSuspend
+ PARAMETERS: bool
+
+ RETURNED VALUES: void
+
+*****************************************************************************/
+extern void Ll1aRatStateSet(Ll1aStateTypeT RatState);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aInit
+
+ DESCRIPTION: The LL1A Initialise function
+
+ PARAMETERS:
+
+ RETURNED VALUES:
+*****************************************************************************/
+extern void Ll1aInit(void);
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aInitForVzwMmo
+
+ DESCRIPTION: The LL1A Initialise function
+
+ PARAMETERS:
+
+ RETURNED VALUES:
+*****************************************************************************/
+extern void Ll1aInitForVzwMmo(void);
+
+#ifdef C2K_LL1_STUB_TARGET_SUPPORT
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aEvStandbySetLTEInfo
+
+ DESCRIPTION: EvStandby use this API to set the LTE's info
+ Pattern.
+ PARAMETERS:
+ RETURNED VALUES:
+*****************************************************************************/
+extern void Ll1aEvStandbySetLTEInfo(void *MsgDataP);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aEvStandbySetGapLengthInfo
+
+ DESCRIPTION: EvStandby use this API to set the LTE's gap length info from script
+ Pattern.
+ PARAMETERS:
+ RETURNED VALUES:
+*****************************************************************************/
+extern void Ll1aEvStandbySetGapLengthInfo(void *MsgDataP);
+
+#endif
+
+extern L1dModeStatusT Ll1aL1dModeStatusGet(void);
+extern void Ll1aL1dModeStatusSet(L1dModeStatusT L1dModeStatus);
+
+
+extern RmcRatStatusT Ll1aRmcRatStatusGet(void);
+extern void Ll1aRmcRatStatusSet(RmcRatStatusT RmcRatStatus);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aDoStandbyMeasTickBitmapGet
+
+ DESCRIPTION: The API provide by LL1A to get the sLl1aMeasTickBitmap
+ PARAMETERS: void
+
+ RETURNED VALUES: bool
+
+*****************************************************************************/
+extern kal_uint8 Ll1aDoStandbyMeasTickBitmapGet(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aDoStandbyMeasTickBitmapSet
+
+ DESCRIPTION: The API provide by LL1A to set the sLl1aMeasTickBitmap
+ PARAMETERS: bool
+
+ RETURNED VALUES: void
+
+*****************************************************************************/
+extern void Ll1aDoStandbyMeasTickBitmapSet(kal_uint8 MeasTickBitmap);
+
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aDoStandbyMeasPurposeBitmapGet
+
+ DESCRIPTION: The API provide by LL1A to get the sLl1aMeasPurposeBitmap
+ PARAMETERS: void
+
+ RETURNED VALUES: bool
+
+*****************************************************************************/
+extern kal_uint8 Ll1aDoStandbyMeasPurposeBitmapGet(void);
+
+/*****************************************************************************
+
+ FUNCTION NAME: Ll1aDoStandbyMeasPurposeBitmapSet
+
+ DESCRIPTION: The API provide by LL1A to set the sLl1aMeasPurposeBitmap
+ PARAMETERS: bool
+
+ RETURNED VALUES: void
+
+*****************************************************************************/
+extern void Ll1aDoStandbyMeasPurposeBitmapSet(kal_uint8 MeasPurposeBitmap);
+
+
+#endif /** End of MTK_DEV_C2K_IRAT. */
+#endif