[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/as_c2k/evdo/clcomp.h b/mcu/interface/protocol/as_c2k/evdo/clcomp.h
new file mode 100644
index 0000000..6196969
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/evdo/clcomp.h
@@ -0,0 +1,406 @@
+/*****************************************************************************
+* 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).
+*
+*****************************************************************************/
+/*************************************************************
+*
+* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
+*
+* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
+*
+* Copyright (c) 2006-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _CLCOMP_H_
+#define _CLCOMP_H_ 1
+/*****************************************************************************
+*
+* FILE NAME : clcomp.h
+*
+* DESCRIPTION : This file includes the definition of OMP
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "cpbuf.h"
+#include "do_clcapi.h"
+#include "do_rupapi.h"
+#include "do_idpapi.h"
+#include "do_dsaapi.h"
+#include "do_ompapi.h"
+#ifdef MTK_DEV_C2K_IRAT
+#include "valapi.h"
+#endif
+#include "slc_nvram.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define CP_1_BIT_WIDTH 1
+#define CP_2_BITS_WIDTH 2
+#define CP_3_BITS_WIDTH 3
+#define CP_4_BITS_WIDTH 4
+#define CP_5_BITS_WIDTH 5
+#define CP_6_BITS_WIDTH 6
+#define CP_7_BITS_WIDTH 7
+#define CP_8_BITS_WIDTH 8
+
+#define OMP_ATTRIB_OCP_BIT 0x01
+#define OMP_ATTRIB_RUTC_BIT 0x02
+#define N_OMP_MIN_ZONE_SIGNATURE_LIST_SIZE 8
+#define OMP_MAX_CACHE_RECS 6
+#define OMP_SECTORID_LENGTH_IN_BYTE 16
+
+#ifdef MTK_DEV_C2K_IRAT
+#define OMP_MAX_OTHER_RAT_REC_NUM 16
+#define OMP_MAX_NEIGHBORRAT_REC_LEN 400
+#endif /* MTK_DEV_C2K_IRAT */
+
+typedef kal_uint8 OmpSectorIdT[OMP_SECTORID_LENGTH_IN_BYTE];
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+
+typedef enum {
+ ST_EVDO,
+ ST_CDMA_1X
+} SystemTypeT;
+
+typedef enum {
+ OMP_INACTIVE_ST,
+ OMP_ACTIVE_ST,
+ OMP_STATE_MAX
+} OmpStateT;
+
+typedef enum {
+ OMP_DEFAULT,
+ OMP_MAX_PROT
+} OmpSubTypeT;
+
+typedef enum {
+ OMP_INCONFIG,
+ OMP_INUSE,
+ OMP_MAX_INSTANCE
+} OmpInstanceT;
+
+typedef enum {
+ OMP_QUICKCONFIG_MESSAGE,
+ OMP_SECTORPARAMETERS_MESSAGE,
+#ifdef MTK_DEV_C2K_IRAT
+ OMP_HRPDSILENCEPARAMETERS_MESSAGE,
+ OMP_OTHERRAT_NEIGHBORLIST_MESSAGE,
+#endif /* MTK_DEV_C2K_IRAT */
+ OMP_CONFIG_REQUEST_MESSAGE = 0x50,
+ OMP_CONFIG_RESPONSE_MESSAGE,
+ OMP_MAX_MESSAGE_ID
+} OmpMessageTypeT;
+
+typedef enum {
+ OMP_ATTRIB_OCP = 0xFF, /*OverheadCachePeriod Attribute ID, 0x00*/
+ OMP_ATTRIB_RUTC = 0xFE /*RouteUpdateTriggerCodeListSize Attribute ID, 0x00 */
+} OmpAttribIdT;
+
+typedef struct {
+ kal_uint8 ColorCode;
+ kal_uint32 SectorID24;
+ kal_uint16 SectorSignature;
+ kal_uint16 AccessSignature;
+ //kal_uint16 OldAccessSignature;/*not used*/
+ kal_bool Redirect;
+ kal_uint8 RPCCount63To0;
+ kal_uint8 ForwardTrafficValid63To0[8];
+ kal_bool RPCCount127To64Included;
+ kal_uint8 RPCCount127To64;
+ kal_uint8 ForwardTrafficValid127To64[8];
+ kal_uint8 Reserved;
+#ifdef MTK_DEV_C2K_IRAT
+ kal_bool ReservedBitsIncluded;
+ kal_uint8 NumReservedBits;
+ kal_bool OtherRATAvailable;
+ kal_uint8 OtherRATTXCycle;
+ kal_uint8 OtherRATSignature;
+#endif /* MTK_DEV_C2K_IRAT */
+}OMPQuickConfigMsgT;
+
+
+typedef struct {
+ kal_uint16 CountryCode;
+ kal_uint8 SectorID[OMP_SECTORID_LENGTH_IN_BYTE];
+ kal_uint8 SubnetMask;
+ kal_uint16 SectorSignature;
+ kal_uint32 Latitude;
+ kal_uint32 Longitude;
+ kal_uint16 RouteUpdateRadiusOverhead;
+ kal_uint8 LeapSeconds;
+ kal_uint16 LocalTimeOffset;
+ kal_uint8 ReverseLinkSilenceDuration;
+ kal_uint8 ReverseLinkSilencePeriod;
+ kal_uint8 ChannelCount;
+ ChanRecGT channelRecord[MAX_CHANNEL_SUPPORT];
+ kal_uint8 NeighborCount;
+ kal_uint16 NeighborPilotPN[MAX_CHANNEL_SUPPORT];
+ NeighborChannelT NeighborChannel[MAX_CHANNEL_SUPPORT];
+ kal_bool NeighborSearchWindowSizeIncluded;
+ kal_uint8 NeighborSearchWindowSize[MAX_CHANNEL_SUPPORT];
+ kal_bool NeighborSearchWindowOffsetIncluded;
+ kal_uint8 NeighborSearchWindowOffset[MAX_CHANNEL_SUPPORT];
+ kal_bool ExtendedChannelIncluded;
+ kal_uint8 ExtendedChannelCount;
+ ChanRecGT ExtendedChannel[MAX_CHANNEL_SUPPORT];
+ kal_bool AccessHashingChannelMaskIncluded;
+ kal_uint8 AccessHashingMaskLength;
+ AccessHashingChannelMaskRecordT AccessHashingChannelMask[MAX_CHANNEL_SUPPORT*2];
+ kal_bool RouteUpdateTriggerCodeIncluded;
+ kal_uint16 RouteUpdateTriggerCode;
+ kal_uint8 RouteUpdateTriggerMaxAge;
+ kal_bool PriorSessionGAUP;
+ kal_bool FPDCHSupportedIncluded;
+ kal_uint32 FPDCHSupported;
+ kal_bool SecondaryColorCodeIncluded;
+ kal_uint8 SecondaryColorCodeCount;
+ kal_uint8 SecondaryColorCode[MAX_SECONDARY_COLORCODE_NUM];
+ kal_uint8 Reserved;
+} OMPSectorParametersMsgT;
+
+#ifdef MTK_DEV_C2K_IRAT
+
+#define MAX_OMP_PLMN_NUM 8
+#define MAX_EUTRA_FREQ_NUM 8
+
+/*IRAT*/
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct /* 3GPP2 C.S0087 v2.0 7.1 */
+{
+ kal_uint8 ThreshXQ;
+ kal_uint8 QualMinEUTRA;
+ kal_bool QualMinEUTRAOffsetIncl;
+ kal_uint8 QualMinEUTRAOffset;
+} OmpIratEUTRANNbrRSRQSpecT;
+#endif
+/*IRAT*/
+
+typedef struct {
+ kal_uint16 EARFCN; /* EUTRA channel number */
+ kal_uint8 EARFCNPriority; /* priority of EARFCN of the neighbir EUTRA system. 0xff means not provided */
+ kal_uint8 ThreshX; /* Min required signal threshold used for selecting an EARFCN */
+ kal_uint8 RxLevMinEUTRA; /* Min ref power level to select EUTRA */
+ kal_uint8 PEMax; /* Max TX power level UE may use when transmitting up-link of EUTRA */
+ kal_bool RxLevMinEUTRAOffsetIncl;
+ kal_uint8 RxLevMinEUTRAOffset; /* Offset to min ref power level to select EUTRA. 0xff means not provided */
+ kal_uint8 MeasurementBandwidth; /* measurement bandwidth Nrb value, Table 7.1-1 */
+ kal_bool PLMNSameAsPreviousChannel;
+ kal_uint8 NumPLMNIds; /* number of PLMN on this EARFCN channel */
+ kal_uint32 PLMNID[MAX_OMP_PLMN_NUM]; /*PLMN ID of the neighbor EUTRA system. 0xffffffff means not provided */
+} OmpIratEUTRANNeighborT;
+
+typedef struct {
+ kal_bool PriorityIncluded;
+ kal_uint8 ServingPriority;
+ kal_uint8 ThreshServing;
+ kal_bool PerEARFCNParamsIncluded;
+ kal_uint8 RxLevMinEUTRACommon;
+ kal_uint8 PEMaxCommon;
+ kal_bool RxLevMinEUTRAOffsetCommonIncl;
+ kal_uint8 RxLevMinEUTRAOffsetCommon;
+ kal_bool MaxReselectionTimerIncluded;
+ kal_uint8 MaxReselectionTimer;
+ kal_bool SearchBackOffTimerIncluded;
+ kal_uint8 MinMeasurementBackoff;
+ kal_uint8 MaxMeasurementBackoff;
+ kal_bool PLMNIDIncluded;
+ kal_uint8 NumEUTRAFrequencies;
+ OmpIratEUTRANNeighborT EUTRAFreq[MAX_EUTRA_FREQ_NUM];
+
+/*IRAT*/
+#ifdef MTK_DEV_C2K_IRAT
+ kal_bool ServingNwPLMNIncl;
+ kal_uint8 NumServingPLMNIds;
+ kal_uint32 S_PLMNID[MAX_OMP_PLMN_NUM];
+ kal_bool RSRQParasIncl;
+ kal_uint8 QualMinEUTRAComm;
+ kal_bool QualMinEUTRAOffsetCommIncl;
+ kal_uint8 QualMinEUTRAOffsetComm;
+ OmpIratEUTRANNbrRSRQSpecT EUTRARsrqSpec[MAX_EUTRA_FREQ_NUM];
+#endif
+/*IRAT*/
+} OmpEUTRANNeigborListRecT;
+
+typedef struct {
+ kal_uint8 RATType;
+ kal_uint16 NeighborListRATRecordLength;
+ union {
+ kal_uint8 NeighborListRecord[OMP_MAX_NEIGHBORRAT_REC_LEN];
+ OmpEUTRANNeigborListRecT OmpEUTRANNeigborListRec;
+ } u;
+} OmpOtherRATRecT;
+
+/* By Keith: The struct for saving Eutran neighbor frequencies */
+typedef struct {
+ kal_uint8 NumEUTRAFrequencies;
+ kal_uint16 EARFCN[MAX_EUTRA_FREQ_NUM];
+} OmpEUTRANNeigborListFreqRecT;
+
+typedef struct {
+ kal_uint8 OtherRATSignature;
+ kal_uint8 NumOtherRAT;
+ OmpOtherRATRecT OmpOtherRATList[OMP_MAX_OTHER_RAT_REC_NUM];
+} OMPOtherRATNeighborListMsgT;
+
+typedef struct {
+ kal_uint8 ReverseLinkSilenceDuration;
+ kal_uint8 ReverseLinkSilencePeriod;
+ kal_uint8 Reserved;
+} OMPHRPDSilenceParameterMsgT;
+#endif /* MTK_DEV_C2K_IRAT */
+
+typedef enum
+{
+ OMP_CACHE_NOTUSED,
+ OMP_CACHE_INUSE_FOR_IDLE,
+ OMP_CACHE_INUSE_FOR_CONN
+} OmpCacheStateT;
+
+typedef struct
+{
+ kal_uint32 timestamp;
+ kal_uint16 PilotPN;
+ OmpCacheStateT stOmpCache;
+ ChanRecGT ChannelInfo;
+
+ OMPQuickConfigMsgT OMPQuickConfigMsg;
+ OMPSectorParametersMsgT OMPSectorParametersMsg;
+} OMPCacheRecT;
+
+typedef struct
+{
+ kal_uint32 oldSectorID24;
+ kal_uint16 oldSectorSignature;
+ kal_uint16 newPilotPN;
+ OmpSubTypeT OmpSubType;
+ OmpStateT curOmpState;
+ kal_bool bInUseInitialized;
+ kal_bool bOverheadParametersUpToDate;
+ kal_bool bQuickConfigRcvd;
+ kal_bool bSectorParametersMsgPending;
+ kal_bool bIHOInProgress;
+ kal_uint8 oldColorCode;
+ kal_bool bOldColorCodeValid;
+ kal_bool bColorCodeChanged;
+ kal_bool bCurSubnetValid;
+
+ OMPCacheRecT *pCurOmpCache;
+ OMPCacheRecT OmpCacheItems[OMP_MAX_CACHE_RECS];
+ OMPQuickConfigMsgT OMPQuickConfigMsg;
+ OMPSectorParametersMsgT OMPSectorParametersMsg;
+
+ kal_uint8 curSubnet[OMP_SECTORID_LENGTH_IN_BYTE];
+ kal_uint8 oldSubnet[OMP_SECTORID_LENGTH_IN_BYTE];
+
+#ifdef MTK_DEV_C2K_IRAT
+ kal_uint32 SectorID24CacheForRpt;
+ kal_uint16 oldCountryCode;
+ kal_bool ConnClosedCacheForRpt;
+ kal_bool OtherRATUpdated;
+ kal_uint8 oldOtherRATSignature;
+ kal_uint8 OtherRATSignatureCacheForRpt;
+ kal_bool isNeedUpdateOtherRatInfo2Iratm;
+ OMPHRPDSilenceParameterMsgT OMPHRPDSilenceParametersMsg;
+ OMPOtherRATNeighborListMsgT OMPOtherRATNeighborListMsg;
+ OmpEUTRANNeigborListFreqRecT OmpEutranNeigborListFreq;
+#endif /* MTK_DEV_C2K_IRAT */
+
+ OmpAttribRecT attribOmp[OMP_MAX_INSTANCE];
+ OmpAttribRecT attribFallback;
+}OmpInfoT;
+
+typedef struct {
+ kal_uint8 Subnet[16];
+ kal_uint32 ExpiredSysTime;
+ kal_uint16 RouteUpdateTriggerCode;
+} RouteUpdateTriggerCodeItemT;
+
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+void OmpInit(void);
+void RunOmpStateMachine(kal_uint32 MsgId, void *MsgDataP);
+void ProcessOmpActivateMsg(void);
+void ProcessOmpDeactivateMsg(void);
+void ProcessOmpRupIdleHandoffMsg(OmpRupIdleHandoffMsgT *MsgDataP);
+void ProcessOmpCspConnClosedMsg(void);
+void ProcessOmpAcmSysParmUpdReqMsg(void);
+void ProcessOmpDsaFwdMsg(DsaFwdMsgT *MsgDataP);
+void ProcessOmpSupervisionTmrExpired(kal_uint32 TimerId);
+void ProcessOmpIHOOhmDecodeTmrExpired(void);
+void ProcessOmpScpReconfiguredMsg(void);
+void ProcessOmpScpCommittedMsg(void);
+void OmpInitStructures( kal_uint8 SubType, kal_bool InUse);
+kal_uint8 OmpGetPriorSessionGAUP(void);
+void OmpIdpClearIHOFlag(void);
+void OmpSetOverheadParametersUpToDate(kal_bool bUpdated, kal_bool bNeedUpdateAll,kal_bool bClearQuickConfigRcvdFlag,kal_bool bResetSubnet);
+void OmpSupTimerReset(void);
+#ifdef MTK_DEV_C2K_IRAT
+void ProcessOmpIratMccReqMsg(void);
+kal_bool OmpGetOtherRatAvail (void);
+#ifdef MTK_PLT_ON_PC_UT
+kal_bool OmpSetOtherNeighBorListMsg (OmpEUTRANNeigborListRecT *pEutranNlRec,kal_bool *bOmpEarfcnIschanged);
+#else
+kal_bool OmpSetIratmOtherNeighBorListMsg (kal_bool *bOmpEarfcnIschanged);
+#endif
+#endif /* MTK_DEV_C2K_IRAT */
+void ProcessOmpCssSystemValidatedMsg(void);
+kal_bool OmpGetIHOPilotPN(kal_uint16 *newPilotPN);
+void setUpdateOtherRat2IratmFlag(kal_bool isNeedUpdate);
+
+
+
+/*****************************************************************************
+* $Log: clcomp.h $
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif /*_CLCOMP_H_*/
+
+