[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/l2_c2k/common/hlpdef.h b/mcu/interface/protocol/l2_c2k/common/hlpdef.h
new file mode 100644
index 0000000..c3c8da1
--- /dev/null
+++ b/mcu/interface/protocol/l2_c2k/common/hlpdef.h
@@ -0,0 +1,858 @@
+/*****************************************************************************
+*  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) 1998-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _HLPDEF_H_
+#define _HLPDEF_H_
+/*****************************************************************************
+*
+* FILE NAME   : hlpdef.h
+*
+* DESCRIPTION :
+*
+*     This include file provides unit wide regional type declarations and
+*     constants
+*
+* HISTORY     :
+*     See Log at end of file.
+*
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "valapi.h"
+#include "hlpcam.h"
+#include "do_rcpapi.h"
+#include "reg_base.h"
+#include "cssapi.h"
+#include "do_almpapi.h"
+#include "hlpem.h"
+#include "sim_exported_enum.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define MAX_SIZE_REVERSE_BUFFER   512
+#define MAX_NUM_DATA_PAGE         2
+#define MAX_NUMBER_OF_TIMERS      20
+#define MAX_NUM_DECODE_RESULTS    20
+#define WFR_HAND_OFF_HYST_TMR     10000
+
+#define START_DECODER_OPERATION   0x0001
+#define DEFAULT_DECODER_CONFIG    0x0350
+#define START_ENCODER_OPERATION   0x0001
+#define DEFAULT_ENCODER_CONFIG    0x0350
+
+#define PPPReMap(data)            ((kal_uint32)(data))
+#define PPP_MAX_ENC0_SRC          75       /* 75  entries max. */
+#define PPP_MAX_ENC1_SRC          150      /* 150 entries max. */
+#define PPP_MAX_RESULT0           75       /* 75  entries max. */
+#define PPP_MAX_RESULT1           150      /* 150 entries max. */
+#define PPP_MAX_LLD0              480      /* 480 entries max. */
+#define PPP_MAX_LLD1              480      /* 480 entries max. */
+
+#define PPP_MAX_DEST0             0x8000   /* 32K bytes.       */
+#define PPP_MAX_DEST1             0x4000   /* 64K bytes.       */
+
+/*---------------------------------
+Foward path : ENC0 & DEC0
+Reverse path: ENC1 & DEC1
+----------------------------------*/
+#define PPPHA_BASE_ADDR           BASE_MADDR_MDINFRA_PPPHA
+#define PPP_ENC0_SRC_ADR          (PPPHA_BASE_ADDR + 0x0000)
+#define PPP_ENC0_DST_ADR          (PPPHA_BASE_ADDR + 0x0004)
+#define PPP_ENC0_TRNSCNT          (PPPHA_BASE_ADDR + 0x0008)
+#define PPP_ENC0_CNFG             (PPPHA_BASE_ADDR + 0x000C)
+#define PPP_ENC0_CNTL             (PPPHA_BASE_ADDR + 0x0010)
+#define PPP_ENC0_ACCM             (PPPHA_BASE_ADDR + 0x0014)
+#define PPP_ENC0_BYTECNT          (PPPHA_BASE_ADDR + 0x0018)
+#define PPP_ENC0_BYTES_TOT        (PPPHA_BASE_ADDR + 0x001C)
+
+#define PPP_ENC1_SRC_ADR          (PPPHA_BASE_ADDR + 0x0040)
+#define PPP_ENC1_DST_ADR          (PPPHA_BASE_ADDR + 0x0044)
+#define PPP_ENC1_TRNSCNT          (PPPHA_BASE_ADDR + 0x0048)
+#define PPP_ENC1_CNFG             (PPPHA_BASE_ADDR + 0x004C)
+#define PPP_ENC1_CNTL             (PPPHA_BASE_ADDR + 0x0050)
+#define PPP_ENC1_ACCM             (PPPHA_BASE_ADDR + 0x0054)
+#define PPP_ENC1_BYTECNT          (PPPHA_BASE_ADDR + 0x0058)
+#define PPP_ENC1_BYTES_TOT        (PPPHA_BASE_ADDR + 0x005C)
+
+#define PPP_DEC0_LLD_ADR          (PPPHA_BASE_ADDR + 0x0080)
+#define PPP_DEC0_DST_ADR          (PPPHA_BASE_ADDR + 0x0084)
+#define PPP_DEC0_TRNSCNT          (PPPHA_BASE_ADDR + 0x0088)
+#define PPP_DEC0_CNFG             (PPPHA_BASE_ADDR + 0x008C)
+#define PPP_DEC0_CNTL             (PPPHA_BASE_ADDR + 0x0090)
+#define PPP_DEC0_RES_ADR          (PPPHA_BASE_ADDR + 0x0094)
+#define PPP_DEC0_MAX_ADR          (PPPHA_BASE_ADDR + 0x0098)
+#define PPP_DEC0_CRT_ADR          (PPPHA_BASE_ADDR + 0x009C)
+
+#define PPP_DEC1_LLD_ADR          (PPPHA_BASE_ADDR + 0x00C0)
+#define PPP_DEC1_DST_ADR          (PPPHA_BASE_ADDR + 0x00C4)
+#define PPP_DEC1_TRNSCNT          (PPPHA_BASE_ADDR + 0x00C8)
+#define PPP_DEC1_CNFG             (PPPHA_BASE_ADDR + 0x00CC)
+#define PPP_DEC1_CNTL             (PPPHA_BASE_ADDR + 0x00D0)
+#define PPP_DEC1_RES_ADR          (PPPHA_BASE_ADDR + 0x00D4)
+#define PPP_DEC1_MAX_ADR          (PPPHA_BASE_ADDR + 0x00D8)
+#define PPP_DEC1_CRT_ADR          (PPPHA_BASE_ADDR + 0x00DC)
+
+#define PPP_DMA_SUSPEND           (PPPHA_BASE_ADDR + 0x00E0)
+
+/* #define PPP_SRAM_ACCESS  0xABC0001C */
+
+#define HLP_DEFAULT_ACCM          0xFFFFFFFF
+
+#define HLP_BURST_LENGTH_4
+#define HLP_HA_DEC_DST_BURST_LEN_MASK 0xFF3F
+
+#if defined(HLP_BURST_LENGTH_8)   /* burst length 8 */
+#define HLP_DEFAULT_HA_ENC_CFG    0x03a0
+#define HLP_HA_32BIT_ENC_CFG      0x03a2
+#define HLP_HA_16BIT_ENC_CFG      0x03a1
+
+#define HLP_DEFAULT_HA_DEC_CFG    0x07a0
+#define HLP_HA_32BIT_DEC_CFG      0x07a2
+#define HLP_HA_16BIT_DEC_CFG      0x07a1
+
+#elif defined(HLP_BURST_LENGTH_4) /* burst length 4 */
+#define HLP_DEFAULT_HA_ENC_CFG    0x0350
+#define HLP_HA_16BIT_ENC_CFG      0x0351
+
+#define HLP_HA_32BIT_ENC_CFG      0x0368
+
+#define HLP_DEFAULT_HA_DEC_CFG    0x07a0
+#define HLP_HA_32BIT_DEC_CFG      0x07a2
+#define HLP_HA_16BIT_DEC_CFG      0x07a1
+
+#else                             /* non-burst 1 */
+#define HLP_DEFAULT_HA_CFG        0x0300
+#define HLP_HA_32BIT_CFG          0x0302
+#define HLP_HA_16BIT_CFG          0x0301
+#endif
+
+#define TCP_TAG_NOT_PURE_ACK      38
+#define TCP_TAG_PURE_ACK          49
+#define TCP_TAG_RETRANSMIT        50
+
+
+/* Define Macros that manages the PPP_DMA_SUSPEND register (This feature is not used) */
+#define PppDmaSuspend() HwdWrite(PPP_DMA_SUSPEND, 0x0001)
+#define PppDmaResume()  HwdWrite(PPP_DMA_SUSPEND, 0x0000)
+
+#define HLP_UIM_MAX_PROFILE_NUM         16
+#define HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM 16
+
+#define WFR_PPP_RSP_TM      20000  /* 250 seconds, seems too long. changed to 10 seconds by Fenix */
+#define WFR_NWK_RSP_TM      15000
+#define WFR_USER_RSP_TM     60000 /*1 minute for call setup*/
+
+/* memory size occupied by ppp header, 2B as its data type is kal_uint16 */
+#define HLP_PPP_HEADER_DATA_TYPE_SIZE   sizeof(kal_uint16)
+
+extern kal_spinlockid chlp_spinlock;
+
+#if defined (__SMP_ARCH__)
+#define CHLP_TAKE_SPINLOCK()  kal_take_spinlock(chlp_spinlock, KAL_INFINITE_WAIT)
+#define CHLP_GIVE_SPINLOCK()  kal_give_spinlock(chlp_spinlock)
+#else
+#define CHLP_TAKE_SPINLOCK()
+#define CHLP_GIVE_SPINLOCK()
+#endif  /* __SMP_ARCH__ */
+
+enum
+{
+   HO_NULL,
+   HO_TO_DO,
+   HO_TO_1X,
+   HO_TO_EHRPD
+};
+
+typedef enum
+{
+   CAM_SYS_HSPD,
+   CAM_SYS_HRPD,
+   CAM_SYS_EHRPD,
+   CAM_SYS_MAX
+} CamSysTypeT;
+
+typedef enum
+{
+   PPPHA_NOT_INITIALIZED,
+   PPPHA_CLOSE_TO_END_DEC0,
+   PPPHA_CLOSE_TO_END_DEC1,
+   PPPHA_FLOW_CTRL_TURNED_ON,
+   PPPHA_BUF_FAIL,
+   PPPHA_CRC_FAIL,
+   PPPHA_DEST_ADDR_NULL,
+   PPPHA_STATUS_MAX
+} PpphaStatusT;
+
+typedef enum
+{
+   PPPHA_ENC0,/*Rev Encode*/
+   PPPHA_DEC0,/*Fwd Decode*/
+   PPPHA_ENC1,/*Fwd Encode*/
+   PPPHA_DEC1 /*Rev Decode*/
+} PpphaPhaseT;
+
+typedef enum
+{
+   DATA_SERVICE_SIP,
+   DATA_SERVICE_MIP,
+   DATA_SERVICE_HRPD,
+   DATA_SERVICE_3GPDEXT,
+   DATA_SERVICE_IPv6,
+   DATA_SERVICE_UST_ACL,
+   DATA_SERVICE_EST_ACL
+} DataServiceTypeT;
+
+typedef enum
+{
+    HLP_DATA_DIR_UL,
+    HLP_DATA_DIR_DL,
+    HLP_DATA_DIR_MAX
+}HlpDataDirEnum;
+
+typedef enum
+{
+    HLP_NV_IP_COUNTER_ERR,
+    HLP_NV_IP_COUNTER_LEN_ERR,
+    HLP_NV_HSPD_DATA_ERR,
+    HLP_NV_HSPD_DATA_LEN_ERR,
+    HLP_NV_HSPD_SECURE_ERR,
+    HLP_NV_HSPD_SECURE_LEN_ERR,
+    HLP_NV_EHRPD_DATA_ERR,
+    HLP_NV_EHRPD_DATA_LEN_ERR,
+    HLP_NV_DMU_PUBKEY_ERR,
+    HLP_NV_DMU_PUBKEY_LEN_ERR,
+    HLP_NV_ERR_MAX
+} HlpNvRdWtErrT;
+
+typedef enum
+{
+   NO_SILENTLY_RETRY, /*don't retry by modem, directly notify AP*/
+   SILENTLY_AFRESH_CONN,/*re-establish connection*/
+   SILENTLY_AFRESH_PS,/*re-establish connection and re-nego ppp*/
+   SILENTLY_PPP_RENEGO  /*re-establish PPP*/
+} HlpRecoverFlagT;
+
+typedef enum
+{
+    HLP_PROTOCOL_COMPRESSION,        /* Protocol Compression */
+    HLP_ADDRESS_CONTROL_COMPRESSION, /* Address/Control Compression */ 
+    HLP_PPP_HEADER_ENC_GETBUFF_NULL
+}HlpPppHeaderEncWarningT;
+
+typedef struct
+{
+   kal_uint16 tcpTag;
+   kal_uint32 tcpPort;
+   kal_uint32 srcIpAddr;
+   kal_uint32 dstIpAddr;
+}socketInfoT;
+
+typedef struct
+{
+   CpBufferT*           sourceAddr;
+   CpBufferT*           destAddr;
+   kal_uint8*               directSrcAddr;
+   kal_uint32               xferCount;
+   kal_uint32               configReg;
+#ifdef SYS_OPTION_PPPHA_ENC_ENH
+   kal_uint8                leadingPad;
+   kal_uint8                tailingPad;
+#endif
+   kal_uint32               accmInUse;
+   kal_uint16               encodedLen;
+   kal_uint16               sourceOffset;
+   kal_bool                 isCpBufPtr;
+   AppSubTypeT          AppSubType;
+   socketInfoT          dstSocket;
+} HlpPPPHaEncTableT;
+
+typedef struct
+{
+   ExeRspMsgT  RspInfo;
+} HlpGetIPServiceTypeMsgT;
+
+typedef struct
+{
+   kal_uint8 pureAckTagRateTD;
+   kal_uint8 pureAckTagRate;
+} HlpEtsPureAckRateMsgT;
+
+typedef struct
+{
+   kal_uint32 tmrStatusHspd;
+   kal_uint32 tmrSysIdHspd[MAX_NUM_SYS_TMR_ENTRY];
+   kal_uint32 tmrStatusHrpd;
+   kal_uint32 tmrSysIdHrpd[MAX_NUM_SYS_TMR_ENTRY];
+   kal_uint32 tmrStatusEhrpd;
+   kal_uint32 tmrSysIdEhrpd[MAX_NUM_SYS_TMR_ENTRY];
+} HlpEtsThrottlingTmrStatusMsgT;
+
+#define HLP_UIM_MAX_PROFILE_NUM         16
+#define HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM 16
+typedef struct
+{
+   kal_uint8 MaxNumNAI;
+   kal_uint8 MaxNAILen;
+   kal_uint8 MaxSSLen;
+   kal_uint8 AuthAlgo;
+} HlpUim3GPDSipCapT;
+
+typedef struct
+{
+   kal_uint8 MaxNumNAI;
+   kal_uint8 MaxNAILen;
+   kal_uint8 MaxMNAAASSLen;
+   kal_uint8 MNAAAAuthAlgo;
+   kal_uint8 MaxMNHASSLen;
+   kal_uint8 MNHAAuthAlgo;
+} HlpUim3GPDMipCapT;
+
+typedef struct
+{
+   kal_uint8 NAIEntryIndex;
+   kal_uint8 NAILen;
+   kal_uint8 NAI[MN_NAI_MAX_SIZE];
+   kal_uint8 AuthAlgo;
+} HlpSipUserProfileT;
+
+typedef struct
+{
+   kal_uint8 NumNAI;
+   HlpSipUserProfileT SipUserProfile[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDSipUserProfileT;
+
+typedef struct
+{
+   kal_uint8 NAIEntryIndex;
+   kal_uint8 NAILen;
+   kal_uint8 NAI[MN_NAI_MAX_SIZE];
+   kal_bool TBit;
+   kal_uint32 HomeAddress;
+   kal_uint32 PrimaryHomeAgent;
+   kal_uint32 SecondaryHomeAgent;
+   kal_uint8 MNAAAAuthAlgo;
+   kal_bool MNAAASpiInd;
+   kal_uint32 MNAAASpi;
+   kal_uint8  MNHAAuthAlgo;
+   kal_bool MNHASpiInd;
+   kal_uint32 MNHASpi;
+} HlpMipUserProfileT;
+
+typedef struct
+{
+   kal_bool RetryInfoIncluded;
+   kal_uint8 MaxNumRetry;
+   kal_uint8 FirstRetryTimeOut;
+   kal_uint8 ReregThreshold;
+   kal_uint8 NumNAI;
+   HlpMipUserProfileT MipUserProfile[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDMipUserProfileT;
+
+typedef struct
+{
+   kal_uint8 ActNAIEntryIndex;
+   kal_uint8 NumAddActNAI;
+   kal_uint8 AddActNaiEntryIndex[HLP_UIM_MAX_MIP_ADD_ACT_NAI_NUM];
+} HlpUim3GPDMipStatusT;
+
+typedef struct
+{
+   kal_uint8 ActNAIEntryIndex;
+   kal_uint8 SSLen;
+   kal_uint8 SS[32];
+} HlpSipPapSSParmsT;
+
+typedef struct
+{
+   kal_uint8 NumNAI;
+   HlpSipPapSSParmsT SipPapSSParms[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDSipPapSSParmsT;
+
+typedef struct
+{
+   kal_uint8  NAIEntryIndex;
+   kal_uint32 Application;
+   kal_uint8  Priority;
+   kal_uint8  DataRateMode;
+   kal_uint8  DataBearer;
+} HlpUserProfileExtParamsT;
+
+typedef struct
+{
+   kal_uint8 NumNAI;
+   HlpUserProfileExtParamsT UppExtParams[HLP_UIM_MAX_PROFILE_NUM];
+} HlpUim3GPDUserProfileExtT;
+
+typedef struct
+{
+   kal_uint16 InitNeighborSolicitDelayTime;
+   kal_uint16 SolicitInterval;
+   kal_uint16 ReSolicitInterval;
+   kal_uint16 MaxSolicitAttempt;
+   kal_uint16 MaxReSolicitAttempt;
+   kal_uint16 PreRAExpiryReSolicitTime;
+   kal_uint8  IidInfo[8];
+   kal_uint8  Flags;
+} HlpUim3GPDIpv6capT;
+
+typedef struct
+{
+   kal_uint8 Flags;
+   kal_uint8 KeepAliveIdleTimer;
+} HlpUim3GPDTcpConfigT;
+
+typedef struct
+{
+   kal_uint8 DataDormTimer;
+   kal_uint8 EpzidTypeInfo;
+   kal_uint8 HystActTime;
+} HlpUim3GPDDgcT;
+
+typedef struct
+{
+   kal_uint8 MaxNaiLen;
+   kal_uint8 MaxSsLen;
+   kal_uint8 AuthAlgo;
+} HlpUimHrpdAccessAuthCapT;
+
+typedef struct
+{
+   kal_uint8 NaiLen;
+   kal_uint8 Nai[HLP_MAX_USRID_LEN];
+   kal_uint8 AuthAlgo;
+} HlpUimHrpdAccessAuthUppT;
+
+typedef struct
+{
+   /* this field indicates the EFcst, EFust, EFest file be used or not
+    * used only for UIM file test critical checking
+    * KAL_FALSE, not use the files
+    * KAL_TRUE,  use the files
+    * default value should be KAL_FALSE
+    */
+   kal_bool  TurnOnCheck;
+   kal_bool  SipEnabled;
+   kal_bool  MipEnabled;
+   kal_bool  HrpdEnabled;
+   kal_bool  Msg3gpdExtEnabled;
+   kal_bool  Ipv6Enabled;
+   /* EFust, 6F38, byte5.bit3 */
+   kal_bool  UstAclEnabled;
+   /* EFest, 6F56, byte1.bit3 */
+   kal_bool  EstAclEnabled;
+} HlpUimServiceTableT;
+
+typedef struct
+{
+   kal_bool Flag;
+   kal_uint16 FileId[2];
+   kal_bool IsNeededForCTCard;
+} HlpUimFileTableT;
+
+typedef struct
+{
+  /*-------------card status----------------*/
+  kal_uint8                          CardStatus;
+  /*-------------card index----------------*/
+  sim_interface_enum                 sim_index;
+  /*-------------card type-----------------*/
+  kal_bool                           is_uicc_card;
+  kal_bool                           is_omh_card;
+  kal_bool                           is_ct_card;
+  /*-------------file read flag-------------*/
+  /* read index point to next file index */
+  kal_uint8                          ReadIndex;
+  kal_bool                           ReadDone;
+  /* this flag is ugly! to solve the duplicated 0x6F56 EF ID
+   * in RUIM/CSIM, it's EFhrpdcap, in USIM, it's EFest
+   * in HLP_UIM_FILE_CHANGED_MSG, if 0x6F56 received, both files are read
+   * EFhrpdcap will always be handled before EFest
+   * default value is KAL_FALSE, once EFhrpdcap is handled, this flag is set to KAL_TRUE
+   * after the whole read procedure is finished, this flag is reset to KAL_FALSE
+   */
+  kal_bool                           Cur6F56IsUsimFile;
+
+  /*-------------service table--------------*/
+  HlpUimServiceTableT            srvtbl;
+
+  /*-------------operation mode-------------*/
+  /* EFme3gpdopc */
+  kal_uint8                          opc;
+  /* EF3gpdopm */
+  kal_uint8                          opm;
+
+  /*----------------simpe IP----------------*/
+  /* EFsipsp */
+  kal_uint8                          sipsp;
+  /* EFsipcap */
+  HlpUim3GPDSipCapT              sipcap;
+  /* EFsipupp */
+  HlpUim3GPDSipUserProfileT      sipupp;
+  /* EFsippapss */
+  HlpUim3GPDSipPapSSParmsT       sippapss;
+
+  /*----------------mobile IP----------------*/
+  /* EFmipsp */
+  HlpUim3GPDMipStatusT           mipsp;
+  /* EFmipcap */
+  HlpUim3GPDMipCapT              mipcap;
+  /* EFmipupp */
+  HlpUim3GPDMipUserProfileT      mipupp;
+
+  /*-------------extension files-------------*/
+  /* EFmipflags */
+  kal_uint8                          mipflags;
+  /* EF3gpduppext */
+  HlpUim3GPDUserProfileExtT      uppext;
+  /* EFtcpconfig */
+  HlpUim3GPDTcpConfigT           tcpcfg;
+  /* EFdgc */
+  HlpUim3GPDDgcT                 dgc;
+  /* EFipv6cap */
+  HlpUim3GPDIpv6capT             ipv6cap;
+
+  /*---------HRPD Access Auth files---------*/
+  /* EFhrpdcap */
+  HlpUimHrpdAccessAuthCapT       hrpdcap;
+  /* EFhrpdupp */
+  HlpUimHrpdAccessAuthUppT       hrpdupp;
+  /* EFimsi */
+  IMSIType                       imsi;
+  kal_bool                       bUSIMIMSINeedUpdate;
+  /* EFad */
+  kal_uint8                      MncLen;
+} HlpUimFilesT;
+
+typedef void (*hlp_timer_expiry_func)(hlp_timer_enum timer_id);
+
+typedef struct
+{
+    eventid                  id;
+	hlp_timer_enum           timer_id;
+    kal_bool                 pending;
+    kal_uint32               duration_ms;
+    hlp_timer_expiry_func    expiry_func;
+}hlp_es_struct;
+
+typedef struct
+{
+    peer_buff_struct *head;
+    peer_buff_struct *tail;
+}hlp_sll_ul_queue_struct;
+
+typedef struct
+{
+    peer_buff_struct *head;
+    peer_buff_struct *tail;
+    kal_uint8        pdn_id;
+}hlp_sll_dl_queue_struct;
+
+/*----------------------------------------------------------------------------
+ Global Variable Declarations
+----------------------------------------------------------------------------*/
+extern kal_bool     PppRenego;
+
+/*----------------------------------------------------------------------------
+ Function Declarations
+----------------------------------------------------------------------------*/
+void HlpConnectionIndMsg(void *MsgDataP, kal_bool atDONetwork);
+void Hlp1XMTConnInNullStIndMsg(void *MsgDataP);
+void HlpConnectionReleasedIndMsg(void *MsgDataP);
+void HlpConnectionFailedIndMsg(void *MsgDataP);
+void HlpPppConnectReqMsg(void *MsgDataP);
+void HlpPppDisconnectReqMsg(void *MsgDataP);
+void HlpPppUpdateReqMsg(void *MsgDataP);
+void HlpPppReleaseReqMsg(void *MsgDataP);
+void HlpPppStatusMsg(void *MsgDataP);
+void HlpUmAppInstance(void * MsgDataPtr);
+void HlpPppAnswerReqMsg(void *MsgDataP);
+void HlpRlpResetIndMsg(void *MsgDataP);
+void HlpFwdDataIndSig(void);
+void HlpRevDataIndSig(void);
+void HlpRlpRevDataRspMsg(void *MsgDataP);
+void HlpRlpIdleIndMsg(void *MsgDataP);
+void HlpRlpOpenFailedMsg(void *MsgDataP);
+void HlpRlpRevDataRspMsg(void *MsgDataP);
+void HlpUpbConnStatusMsg(void *MsgDataP);
+void HlpUpbConnReqMsg(void* MsgDataP);
+void HlpAiwBeginUdpMsg(void* MsgDataP);
+void HlpUpbEndMsg(void* MsgDataP);
+void HlpUpbSendDataMsg(void* MsgDataP);
+void HlpUpbDormantReq(void *MsgDataP);
+void HlpUpbRecvDataRspMsg(void *MsgDataP);
+void HlpRmPppBeginMsg(void* MsgDataP);
+void HlpRmDisconnectInd(void *MsgDataP);
+void HlpRmConnectStatusMsg(void *MsgDataP);
+void HlpServiceStatusMsg(void *MsgDataPtr);
+void HlpUmPppBeginMsg(void* MsgDataP);
+void HlpUmRestartRlpMsg(void* MsgDataP);
+void HlpUmDisconnMsg(void* MagDataP);
+void HlpDormantReconnectReqMsg(void* MagDataP);
+void HlpUmAbortReqMsg(void* MagDataP);
+void HlpMipUmPppStatusMsg(void * MsgDataP);
+void HlpPktZoneIdMsg(void* MagDataP);
+void HlpTimerExpiredMsg(void* MsgDataP);
+void HlpTestBrowserConnectMsg(void* MsgDataP);
+void HlpTcpbConnReqMsg(void* MsgDataP);
+void HlpTcpbConnEndMsg(void* MsgDataP);
+void HlpTcpbDataSendReqMsg(void* MsgDataP);
+void HlpTcpbDataRecvRspMsg(void *MsgDataP);
+void HlpSocketCreateMsg(void *MsgDataP);
+void HlpSocketBindMsg(void *MsgDataP);
+void HlpSocketConnectMsg(void *MsgDataP);
+void HlpSocketCloseMsg(void *MsgDataP);
+void HlpSocketSendReqMsg(void *MsgDataP);
+void HlpSocketListenMsg(void *MsgDataP);
+void HlpSocketOptionMsg(void *MsgDataP);
+void HlpSocketShutDownMsg(void *MsgDataP);
+void HlpSocketLingerMsg(void *MsgDataP);
+void HlpUartReadyMsg(void *MsgDataP);
+void HlpMipInit(void);
+void HlpMipRrpMsg(void *MsgDataP);
+void HlpMipAgentAdvMsg(void *MsgDataP);
+void HlpMipUmPppStatusMsg(void *MsgDataP);
+void HlpOosaIndMsg(void *MsgDataPtr);
+void HlpSystemQueryRspMsg(void* MsgDataPtr);
+void HlpSysSelPrefSetMsg(void* MsgDataPtr);
+void HlpUmPppReNegotiationMsg(void *MsgDataPtr);
+void HlpSetNetworkOrRelayModeMsg(void *MsgDataPtr);
+void HlpAlmpConnReleased(void);
+void HlpAlmpConnFailed(void);
+void HlpXoffRspRcvdMsg(void);
+#ifdef KDDI_EXTENSIONS
+extern void HlpDORetryTmrExp(void);
+#endif
+void HlpDormantReqMsg(void);
+void HlpValCtaUpdateReqMsg(HlpValCtaUpdateReqMsgT* MsgDataPtr);
+void HlpSetHoFlag(kal_uint8 direction);
+kal_uint8 HlpGetHoFlag(void);
+extern void HlpVoiceCallReleaseIndMsg(void);
+#ifdef MTK_DEV_C2K_IRAT
+void HlpSetHO21xFlag(kal_bool bHO21xEnabledFlag);
+kal_bool HlpGetHO21xFlag(void);
+void HlpSetByPassThresholdCheckFlag(kal_bool bNewFlag);
+kal_bool HlpGetByPassThresholdCheckFlag(void);
+#endif /* MTK_DEV_C2K_IRAT */
+void HlpValDMUVSetMsg(void *MsgDataPtr);
+void HlpDOInactivityExprMsg(void);
+#ifdef MTK_DEV_C2K_IRAT
+void HlpSendPppMtu2Val(void);
+#endif
+HlpDataChRetStatus HlpWrite(RmDataCpBuffDescT *Buff);
+HlpDataChRetStatus HlpRead(RmDataCpBuffDescT *Buff);
+kal_uint16 GetRevHlpDataSize(void);
+kal_uint16 HlpCheckRxReadyStatus(void);
+void HlpAccessStreamStart(void);
+void HlpGetPPPConnParams(PppConnParamsT *connPtr);
+
+/* System ID Change message function prototypes */
+void HlpSidNidChangeIndMsg(void *MsgDataPtr);
+void HlpPktZoneIdChangeIndMsg(void *MsgDataPtr);
+void HlpSubnetIdChangeIndMsg(void *MsgDataPtr);
+void HlpColorCodeIndMsg(void *MsgDataP);
+
+/* Hlpdbm function prototypes */
+void HlpDbmHspdSegInitReq(void);
+void HlpNvHspdSegDataReadHandler(void);
+void HlpParmSetMsg(void *MsgDataPtr);
+void hlp_elt_set_parm_msg(ilm_struct* ilm_ptr, HlpParmOperationId ParmId);
+
+void HlpNvSecureDataReadHandler(void);
+void HlpParmGetMsg(void *MsgDataPtr);
+void hlp_elt_get_parm_msg(ilm_struct* ilm_ptr, HlpParmOperationId ParmId);
+void HlpDbmGetEsnMeidRspMsg(void *MsgDataPtr);
+void HlpDmuSecureDataChangedMsg(void *MsgDataP);
+void HlpPswMDNUpdatedMsg(void *MsgDataPtr);
+void HlpSetMipPasswordMsg(void *MsgDataPtr);
+kal_uint8 HlpDbmGetMipMode(void);
+kal_uint8 HlpDbmGetHaAuthMode(void);
+kal_uint8 HlpDbmGetVJCompressionEnabled(void);
+void HlpDbmGetPppUmCfg(HlpPppUmCfg_APIStruct *HlpPppUmCfg);
+void HlpDbmGetPppRmCfg(HlpPppRmCfg_APIStruct *HlpPppRmCfg);
+void HlpDbmGetTcpCfg(HlpTcpCfg_APIStruct *HlpTcpCfg);
+kal_bool HlpDbmGetHspdLocked(void);
+void HlpNvEHrpdDataReadHandler(void);
+
+void HlpDormancyTimersSetMsg(void *MsgDataPtr);
+void HlpDORetryTimersSetMsg(void *MsgDataPtr);
+
+/* Timer expiration function prototypes */
+void HlpTimerStartReq(hlp_timer_enum timer_id);
+void HlpTimerKillReq(hlp_timer_enum timer_id);
+void HlpTimerSetDuration(hlp_timer_enum timer_id, kal_uint32 duration);
+void HlpTimerSetPending(hlp_timer_enum timer_id, kal_bool pending);
+kal_bool HlpTimerIsActive(hlp_timer_enum timer_id);
+kal_bool HlpTimerIsPending(hlp_timer_enum timer_id);
+kal_uint32 HlpTimerGetDuration(hlp_timer_enum timer_id);
+void WfrFastConnTimeUp(hlp_timer_enum timer_id);
+void HlpWfsSysRspTimeup(hlp_timer_enum timer_id);
+void HlpWfrUimAuthRspTimeup(hlp_timer_enum timer_id);
+void WfrRmConnectionTimeUp(hlp_timer_enum timer_id);
+void DataRetryTimeUp(hlp_timer_enum timer_id);
+void DoRetryTimeUp(hlp_timer_enum timer_id);
+void HlpWaitForIratReleaseTimerExp(hlp_timer_enum timer_id);
+void HlpWfrFallBack1XConnectTimeUp(hlp_timer_enum timer_id);
+void HlpSetC109LowExp(hlp_timer_enum timer_id);
+void HlpProcThrottlingTmrExp(hlp_timer_enum timer_id);
+void DormantReconnectBackOffTimerUp(hlp_timer_enum timer_id);
+void HlpPppConnectBackOffTimerExp (hlp_timer_enum timer_id);
+void HlpFiveMinsTimeOut(hlp_timer_enum timer_id);
+void HlpForceCpIdle(hlp_timer_enum timer_id);
+void HlpCloseConnAtDO(hlp_timer_enum timer_id);
+void HlpMipTimerRrpRegTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerRrpDeregTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerRrqRegTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerAgentAdvTimeUp(hlp_timer_enum timer_id);
+void HlpMipTimerLifetimeTimeUp(hlp_timer_enum timer_id);
+void HlpIp6TestTmrExp(hlp_timer_enum timer_id);
+void natTimerExpire(hlp_timer_enum timer_id);
+void HlpPendingRedailA12TmrExp(hlp_timer_enum timer_id);
+void HlpSetPendingRedailA12Flag(kal_bool flag);
+kal_bool HlpGetPendingRedailA12Flag(void);
+void HlpRsvasAbortReqTimeUp(hlp_timer_enum timer_id);
+
+/* Throttling function prototypes */
+void HlpThrottSetEnable(kal_bool enable);
+kal_bool HlpThrottGetEnable(void);
+void HlpThrottSetCurrSys(CamSysTypeT system);
+CamSysTypeT HlpThrottGetCurrSys(void);
+kal_bool HlpThrottIsActive(CamSysTypeT SystemType);
+void HlpThrottLogSysId(CamSysTypeT SystemType);
+void HlpThrottInit(void);
+void HlpThrottResetAll(void);
+void HlpThrottStop(CamSysTypeT SystemType);
+void HlpThrottStart(void);
+
+/* IPv6 function prototypes */
+#ifdef CBP7_EHRPD
+kal_bool EapAkaFailureByNwkRejFlagGet(void);
+void EapAkaFailureByNwkRejFlagSet(kal_bool bRejByNetworkNotification);
+#endif
+
+void HlpFwdPktDataIndSig( void );
+
+/* PPP free mode support */
+void HLPRouteTypeSet(HlpPppRouteTypeE type);
+HlpPppRouteTypeE HLPRouteTypeGet(void);
+/* TCP/IP filter-mux function prototypes */
+void IP_Add_TCP_FilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port);
+void IP_Delete_TCP_FilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port);
+kal_bool CheckTcpPacketWithTcpFilterMux(MuxInfo *Info, kal_uint32 address, kal_uint16 port, kal_bool fragmentIpPkt);
+void IP_Init_TCP_FilterMux(MuxInfo *Info);
+
+/* UIM function prototypes */
+void HlpUimNotifyRegisterMsg(void *MsgDataPtr);
+void HlpDbmPowerCycleMsg(void);
+void HlpUim3GPDDataUpdate(void);
+void HlpUimGet3GPDOpcRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDOpcRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDOpmRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDOpmRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipCapRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDMipCapRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipUPPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDMipUPPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipSPRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDSipSPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDMipSPRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDMipSPRspMsg(void *MsgDataPtr);
+void HlpUimGet3GPDSipPapSSRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDSipPapSSRspMsg(void *MsgDataPtr);
+void HlpUimUpdate3GPDImsiRspMsg(void *MsgDataPtr, kal_bool NeedToReadOtherFile);
+void HlpUimUpdate3GPDAdRspMsg(void *MsgDataPtr);
+kal_uint8 HlpUimGetMipMnHaAuthAlgorithm(void);
+
+/* System ID function prototypes */
+void   HlpSetCurrentSidNid(kal_uint16 sid, kal_uint16 nid);
+void   HlpSetCurrentPid(kal_uint8 pid);
+kal_uint8 *HlpGetCurrentSidPid(void);
+void   HlpSetCurrentSubnetId(kal_uint8 *pSubnetId);
+kal_uint8 *HlpGetCurrentSubnetId(void);
+void   HlpColorCodeIndMsg(void *MsgDataP);
+kal_uint16 HlpGetDormancyTimer(kal_bool bForRDUD);
+IMSIType HlpGetImsiInfoInUimCntx(void);
+kal_uint8 HlpGetMncLenInUimCntx(void);
+kal_bool HlpCheckImsiInfoNeedUpdate(void);
+void HlpWaitForExtMsg(kal_uint32 expMsgId, ilm_struct *ilm);
+#ifdef CBP7_EHRPD
+void HlpGetImsiFromUsim(void);
+#endif
+void HlpSendTchSetupStatusToCss(CssTchSetupStatusT status);
+void HlpSendConnStatusMsg2Val(ValWmcConnStatusT connStatus);
+void HlpSendPppConnStatusMsg2Val(ValHlpPppConnStatusMsgT *ConnStatus);
+void HlpSendPppConnStatusMsg2ValAtc(ValHlpPppConnStatusMsgT *ConnStatus);
+
+void hlp_nvram_read_cnf_handler(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+void hlp_nvram_write_cnf_handler(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+void HlpProcessRevDataFromHIF(void* MsgDataP);
+AlmpStateT HlpGetAlmpState(void);
+void HlpTcpPacketTagPureAck(kal_uint8 *pIpPacket, socketInfoT *dstSocketPtr);
+kal_uint16 PPP_HeaderEncode_CopyFree(kal_uint16 prot, kal_uint8 *data, kal_bool acomp, kal_bool pcomp, kal_uint8 pdn_id);
+void HlpHandleDnsQueryNoNwRsp(kal_uint8 *pIpPacket, kal_bool *pToRelPpp);
+HlpRecoverFlagT HlpGetRecoverFlag(void);
+void HlpSetRecoverFlag(HlpRecoverFlagT value);
+kal_bool HlpTransferToLower(char* pStrIn, char* pStrOut, kal_uint32 nLen);
+DialingInfoT* HlpCallInfoGet(void);
+void HlpSendXonXoffToFcp(kal_bool bXOnOff, StreamType StreamID);
+kal_uint8 HlpGetPPPConnParamsCid(void);
+kal_bool HlpUimIsUiccCard(void);
+kal_bool HlpUimIsOmhCard(void);
+void HlpConnectionSuspendCmd(void);
+void HlpConnectionResumeCmd(void);
+void HlpConnectionDisableCmd(void);
+void HlpConnectionResetCmd(void);
+void HlpConnectionFallbackCmd(void);
+
+void HlpSetHOEHRPDEnableFlag(kal_bool bEnable);
+kal_bool HlpGetHOEHRPDEnableFlag(void);
+sim_interface_enum HlpUimGetCurSimIndex(void);
+kal_uint16 HlpRmCheckRxReadyStatus(void);
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+