[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/as_c2k/evdo/tasktimer.h b/mcu/interface/protocol/as_c2k/evdo/tasktimer.h
new file mode 100644
index 0000000..ca51d86
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/evdo/tasktimer.h
@@ -0,0 +1,215 @@
+/*****************************************************************************
+* 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) 2007-2010 VIA Telecom, Inc. All rights reserved.
+*
+*************************************************************/
+#ifndef _TASKTIMER_H_
+#define _TASKTIMER_H_
+/*****************************************************************************
+*
+* FILE NAME : tasktimer.h
+*
+* DESCRIPTION : Timer Management interface
+*
+*
+*****************************************************************************/
+#include "monapi.h"
+
+/* RTOS timer expire message */
+typedef struct
+{
+ kal_uint32 TimerId; /* Expired timer Id */
+
+} TaskTimerExpiredMsgT;
+
+/*----------------------------------------------------------------------------
+ Timer Manager Global Defines
+----------------------------------------------------------------------------*/
+/* protocol timer expiration handler function */
+typedef void (*ProtocolTimerHandlerT)(void);
+typedef void (*TaskTimerCallBackT)(kal_uint32 TimerId);
+
+typedef struct {
+ event_scheduler *es;
+ eventid *pEventID;
+ kal_uint8 numRtosTimers; /* number of RTOS timer. max 255 RTOS timers */
+ kal_uint8 *rtosTimerUserIdTable; /* RTOS timer user Id array */
+ kal_uint16 *rtosTimerUserProtType;/* protocol currently using the RTOS timer */
+ kal_bool *rtosTimerPeriodicAttr;/* RTOS timer periodic attribute array */
+ kal_uint32 *rtosTimerPeriodicDura;/* RTOS timer periodic attribute timer duration array */
+
+ kal_uint8 numProtocolTimers; /* number of protocol defined timer */
+ kal_uint8 *protocolTimerStatusTable; /* protocol timer status array */
+ const ProtocolTimerHandlerT *protocolTimerHandlerTable; /* protocol timer handler pointer array */
+ TaskTimerCallBackT TaskTimerCallBack; /* RTOS timer callback function */
+ kal_uint32 ErrIdInvalidCallbackTimer; /*XXX_ERR_INVALID_CALLBACK_TIMER_ID*/
+ kal_uint32 ErrIdInsufficientTimer; /*XXX_ERR_INSUFFICIENT_TIMER_ID*/
+} TaskTimerObjT;
+
+/*----------------------------------------------------------------------------
+ Timer Manager Global Function Prototypes
+----------------------------------------------------------------------------*/
+
+void InitTaskTimerObj(TaskTimerObjT *taskTimerObj,
+ event_scheduler *es,
+ eventid *pEventId,
+ kal_uint8 numRtosTimers,
+ kal_uint8 *rtosTimerUserIdTable,
+ kal_uint16 *rtosTimerUserProtType,
+ kal_bool *rtosTimerPeriodicAttr,
+ kal_uint32 *rtosTimerPeriodicDura,
+ kal_uint8 numProtocolTimers,
+ kal_uint8 *protocolTimerStatusTable,
+ const ProtocolTimerHandlerT *protocolTimerHandlerTable,
+ kal_uint32 ErrIdInvalidCallbackTimer,
+ kal_uint32 ErrIdInsufficientTimer,
+ TaskTimerCallBackT TaskTimerCallBack);
+
+void ProcessTaskTimerExpiredMsg(TaskTimerObjT *taskTimerObj, kal_uint32 Input_timerId);
+void StartProtocolTimer(TaskTimerObjT *taskTimerObj, kal_uint8 protocolTimerId,
+ kal_uint32 duration, kal_bool periodic, kal_uint16 prot);
+void StopProtocolTimer(TaskTimerObjT *taskTimerObj, kal_uint8 protocolTimerId);
+void StopAllProtocolTimers(TaskTimerObjT *taskTimerObj);
+void StopProtProtocolTimers(TaskTimerObjT *taskTimerObj, kal_uint16 prot);
+kal_bool IsProtocolTimerActive(TaskTimerObjT *taskTimerObj, kal_uint8 protocolTimerId);
+void TaskTimerCallBack(kal_uint32 TimerId, module_type _dest_mod_id,
+ kal_uint32 TimerExpireMsgId);
+/*----------------------------------------------------------------------------
+ Timer Manager Global Macros
+
+ Note: 1. when calling the following Macros, no ; is needed at the line end.
+ 2. timer ID enum type shall use name of "xxxTimerIdT", where xxx is the
+ task name which muse be same as the "taskName" parameter of following
+ Macros.
+ 3. xxxTimerInit() function shall be called at task initialzation point.
+ 4. xxxProcessTimerExpiredMsg(void* MsgP) function shall be called as
+ the XXX_TIMER_EXPIRED_MSG handler in task message loop.
+ 5. before calling , it shall first define and initiate the protocol timer
+ handler table as:
+
+ static const ProtocolTimerHandlerT protocolTimerHandlerTable[NUM_SLCTMRs] = {
+ xxxtimerHandler,
+ ...
+ }
+ the order of the functions in the table shall correspond to the time ID enum.
+ ----------------------------------------------------------------------------*/
+#define TaskTimerObjDef(taskName, numRtosTimers, numProtocolTimers, \
+ ModuleId, MailboxId, TimerExpireMsgId, es, \
+ ErrIdInvalidCallbackTimer, ErrIdInsufficientTimer) \
+ static TaskTimerObjT taskTimerObj; \
+ static eventid pEventId[numRtosTimers]; \
+ static kal_uint8 rtosTimerUserIdTable[numRtosTimers]; \
+ static kal_uint16 rtosTimerUserProtType[numRtosTimers]; \
+ static kal_bool rtosTimerPeriodicAttr[numRtosTimers]; \
+ static kal_uint32 rtosTimerPeriodicDura[numRtosTimers]; \
+ static kal_uint8 protocolTimerStatusTable[numProtocolTimers]; \
+ \
+ void taskName##TaskTimerCallBack(kal_uint32 TimerId) \
+ { \
+ ProcessTaskTimerExpiredMsg(&taskTimerObj, TimerId); \
+ } \
+ \
+ void taskName##TimerInit(void) \
+ { \
+ InitTaskTimerObj( &taskTimerObj, \
+ es, \
+ pEventId, \
+ numRtosTimers, \
+ rtosTimerUserIdTable, \
+ rtosTimerUserProtType, \
+ rtosTimerPeriodicAttr, \
+ rtosTimerPeriodicDura, \
+ numProtocolTimers, \
+ protocolTimerStatusTable, \
+ protocolTimerHandlerTable, \
+ ErrIdInvalidCallbackTimer, \
+ ErrIdInsufficientTimer, \
+ taskName##TaskTimerCallBack); \
+ } \
+ \
+ void taskName##StartTimer(taskName##TimerIdT TimerId, kal_uint32 duration, kal_bool periodic, kal_uint16 prot) \
+ { \
+ StartProtocolTimer(&taskTimerObj, TimerId, duration, periodic, prot); \
+ } \
+ \
+ void taskName##StopTimer(taskName##TimerIdT TimerId) \
+ { \
+ StopProtocolTimer(&taskTimerObj, TimerId); \
+ } \
+ \
+ void taskName##StopAllProtocolTimers(void) \
+ { \
+ StopAllProtocolTimers(&taskTimerObj); \
+ } \
+ \
+ void taskName##StopProtProtocolTimers(kal_uint16 prot) \
+ { \
+ StopProtProtocolTimers(&taskTimerObj, prot); \
+ } \
+ \
+ kal_bool taskName##IsTimerActive(taskName##TimerIdT TimerId) \
+ { \
+ return IsProtocolTimerActive(&taskTimerObj, TimerId); \
+ } \
+ \
+ void taskName##ProcessTimerExpiredMsg(kal_uint32 TimerId) \
+ { \
+ ProcessTaskTimerExpiredMsg(&taskTimerObj, TimerId); \
+ }
+
+/*----------------------------------------------------------------------------*/
+#define TaskTimerAPIDef(taskName) \
+ \
+ void taskName##TaskTimerCallBack(kal_uint32 TimerId); \
+ void taskName##TimerInit(void); \
+ void taskName##StartTimer(taskName##TimerIdT TimerId, kal_uint32 duration, kal_bool periodic, kal_uint16 prot); \
+ void taskName##StopTimer(taskName##TimerIdT TimerId); \
+ void taskName##StopAllProtocolTimers(void); \
+ void taskName##StopProtProtocolTimers(kal_uint16 prot); \
+ kal_bool taskName##IsTimerActive(taskName##TimerIdT TimerId); \
+ void taskName##ProcessTimerExpiredMsg(kal_uint32 TimerId);
+
+/*----------------------------------------------------------------------------*/
+
+#endif /*_TASKTIMER_H_*/
+
+
+