[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_*/
+
+