[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/as_c2k/evdo/slcsmp.h b/mcu/interface/protocol/as_c2k/evdo/slcsmp.h
new file mode 100644
index 0000000..286b463
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/evdo/slcsmp.h
@@ -0,0 +1,226 @@
+/*****************************************************************************
+* 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 _SLCSMP_H_
+#define _SLCSMP_H_ 1
+/*****************************************************************************
+*
+* FILE NAME : slcsmp.h
+*
+* DESCRIPTION : This file includes the definition of SMP
+*
+* HISTORY :
+* See Log at end of file
+*
+*****************************************************************************/
+#include "do_slcapi.h"
+#include "slcamp.h"
+#include "do_dsaapi.h"
+#include "do_clcapi.h"
+#include "slc_nvram.h"
+
+#define SESSION_CLOSE_REASON_MORE 8
+
+#define SESSION_CLOSE_MESSAGEID_LEN 8
+#define SESSION_CLOSE_REASON_LEN 8
+#define SESSION_MORE_INFO_LEN 8
+#define SESSION_TYPE_LENGTH_LEN 1
+#define SESSION_TYPE_LEN_1 7
+#define SESSION_TYPE_LEN_2 15
+#define SESSION_SUBTYPE_LEN 16
+
+#define KEEPALIVE_MESSAGEID_LEN 8
+#define KEEPALIVE_TRANSID_LEN 8
+
+#define SMP_DEFAULT_TCLOSE 0x0ca8
+#define SMP_DEFAULT_NSMPKEEPALIVE 3
+
+
+#define SMP_KEEPALIVE_TIMER_INTERVAL 12000
+
+#define SMP_DEFAULT_SUBTYPE 0x0000
+
+typedef enum {
+ SMP_CONFIG_ATTR_ID = 0xff,
+ ALL_SMP_ATTR
+}SmpAttributeID;
+
+typedef enum {
+ SMP_INUSE,
+ SMP_INCONFIG,
+ SMP_ALL
+}SmpInstance;
+
+typedef enum {
+ SMP_SESSION_CLOSE_MSG = 0x01,
+ SMP_KEEPALIVE_REQ_MSG = 0x02,
+ SMP_KEEPALIVE_RSP_MSG = 0x03,
+ SMP_CONFIG_REQ_MSG = 0x50,
+ SMP_CONFIG_RSP_MSG = 0x51,
+}SmpMessageTypeT;
+
+typedef enum {
+ INACTIVE_STATE, /*InActive ST*/
+ SETUP_STATE, /*AMP Setup ST*/
+ OPEN_STATE, /*Open ST*/
+ CLOSING_STATE,
+ SMPSTATE
+} SmpState;
+
+typedef enum {
+ FSM_NOT_INITED,
+ FSM_OPEN_ERR,
+ FSM_READ_ERR,
+ FSM_WRITE_ERR,
+ FSM_NO_ERR,
+ FSM_ERR
+}FsmResult;
+
+typedef enum {
+ NEW_SESSION,
+ ALIVE_SESSION,
+ PRIOR_SESSION,
+ OPENED_SESSION
+}SessionStateT;
+
+
+typedef struct {
+ kal_uint8 MessageID;
+ kal_uint8 TransactionID;
+}SmpKeepAliveMsgT;
+
+typedef struct{
+ kal_uint8 Length;
+ SmpAttributeID AttrID;
+ kal_uint16 AttrValue;
+}SmpAttributeRecord;
+
+typedef struct {
+ kal_uint8 MessageID;
+ kal_uint8 TransactionID;
+ SmpAttributeRecord AttrRecord;
+}SmpConfigurationRspMsgT;
+
+typedef struct {
+ kal_uint16 InuseSubType;
+ kal_uint16 InconfigSubType;
+ SmpState SmpState;
+ kal_uint8 KeepAliveReqTransIdSent;
+ kal_uint8 KeepAliveReqTransIdRcv;
+ kal_bool MpsInProgress;
+ kal_uint8 NKeepAlive; /*count parameter*/
+ kal_uint8 NRemainKeepAliveTimes; /*The remaining system time*/
+ kal_uint8 PriorSessionGAUP;
+ SessionStateT SesionState;
+}SmpParamT;
+
+typedef kal_bool (*pCallFunc)(void **retBuffer, void *storedBuffer);
+
+void SmpInit(void);
+void RunSmpStateMachine(kal_uint32 MsgId, void *MsgDataP);
+void ProcessSmpDsaFwdMsg(DsaFwdMsgT *MsgDataP);
+void ProcessSmpKeepAliveTransTimeout(void);
+void SmpInitStructures( kal_uint16 SubType, kal_bool InUse);
+void SmpCommit(void);
+void SetSmpState(SmpState state);
+SmpState GetSmpState(void);
+void SetSessionState(SessionStateT state);
+SessionStateT GetSessionState(void);
+kal_uint8 GetSessionEhrpdFlag(void);
+void SmpDeclareSessionOpened(kal_bool informCssOnly, kal_bool newSession);
+void SmpSendSessionOpenStatus(kal_bool status);
+void SmpSetSessionNegoState(SessionStateT state);
+void SlcReportSessionNegoFailure(ClcErrCauseT cause);
+void SlcSendDsarDelMsg(kal_uint8 protocolType, kal_uint8 msgId, kal_bool reqTxStatus);
+void SlcSessionStatePrint(void);
+void smp_nvram_read_cnf_handle (local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+void smp_nvram_write_cnf_handle(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+void SmpCheckSendingLocationNotificationMsg(kal_bool setFlag, kal_bool sendMsg);
+kal_bool SmpCheckSessionNegoHpsNeeded(void);
+
+/*****************************************************************************
+* $Log: slcsmp.h $
+*
+* 06 04 2018 tom.wu
+* [MOLY00328488] [Merlot][MT6761][O1][C2K][OM6M][MD3 Regression]EVDO system selecting time is longer than OPPO R11
+*
+* .
+*
+* 07 06 2017 sue.zhong
+* [MOLY00259241] [6293][C2K]Replace with KAL data type
+* Correct copyright file header
+*
+* 04 24 2017 tom.wu
+* [MOLY00231424] [6293][C2K] slc/clc common modify
+*
+* :merge MP6 CL to UMOLYA.TRUNK, 86452,86510,87001,87251,87574,87644
+*
+* 04 11 2017 tom.wu
+* [MOLY00241000] [BIANCO][MT6763][RDIT][PHONE][MD_Pre-Sanity][C2K][SIM1:CTC]fail to establish ppp link
+*
+* : session restore stream2/RTM personality set
+*
+* 02 21 2017 tom.wu
+* [MOLY00229931] [6293][C2K] merge session restore feature modify
+*
+* .
+*
+* 12 01 2016 sue.zhong
+* [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+* Update C2K source
+*
+* 11 09 2016 sue.zhong
+* [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+* Update C2K PS code (2/2)
+*
+* 11 09 2016 sue.zhong
+* [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+* Update C2K PS code (2/2)
+*****************************************************************************/
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif /*_SLCSMP_H_*/
+
+