[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/protocol/as_c2k/common/c2k_defs.h b/mcu/interface/protocol/as_c2k/common/c2k_defs.h
new file mode 100644
index 0000000..f43bcee
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/c2k_defs.h
@@ -0,0 +1,568 @@
+/*****************************************************************************
+*  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) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+* 
+* FILE NAME   : c2k_defs.h
+*
+* DESCRIPTION : C2K common definitions.
+*
+* HISTORY     :
+*****************************************************************************/
+#ifndef C2K_DEFS_H
+#define C2K_DEFS_H
+
+/*----------------------------------------------------------------------------
+* System Wide Definitions
+*   The definitions below are those that are shared across all CP software.
+*   By defining them in this file, each unit and/or API will not need to make
+*   their own definition of these.
+*
+*   In order to be included in this list, the entity must have a well-defined
+*   system definition.  For example, they can be drawn from IS-2000 standard
+*   documents.
+*----------------------------------------------------------------------------*/
+
+/* Definition of the active air interface */
+typedef enum
+{
+   SYS_MODE_1xRTT  = 0,
+   SYS_MODE_EVDO,
+   SYS_MODE_MAX
+} SysAirInterfaceT;
+
+#define SYS_NUM_APPS   (SYS_MODE_EVDO+1)
+#define SYS_MODE_1xRTT_BM   (1<<SYS_MODE_1xRTT)
+#define SYS_MODE_EVDO_BM    (1<<SYS_MODE_EVDO)
+#define SYS_MODE_ANY_SYSTEM (SYS_MODE_1xRTT_BM | SYS_MODE_EVDO_BM)
+
+/*
+** Definition of CDMA system time
+**   Kept in terms of a 20 msec frame count.
+*/
+typedef kal_uint32 SysSystemTimeT;
+
+/* define Cdma Band type */
+typedef enum
+{
+  SYS_BAND_CLASS_0 = 0,   /* 800 MHz cellular band       */
+  SYS_BAND_CLASS_1,       /* 1.8 to 2.0 GHz band     */
+  SYS_BAND_CLASS_2,       /* 872 to 960 MHz TACS band    */
+  SYS_BAND_CLASS_3,       /* 832 to 925 MHz JTACS band   */
+  SYS_BAND_CLASS_4,       /* 1.75 to 1.87 GHz Korean PCS */
+  SYS_BAND_CLASS_5,       /* 450 MHz NMT band            */
+  SYS_BAND_CLASS_6,       /* 2 GHz IMT-2000 band         */
+  SYS_BAND_CLASS_7,       /* 700 MHz band                */
+  SYS_BAND_CLASS_8,       /* 1800 MHz band               */
+  SYS_BAND_CLASS_9,       /* 900 MHz band                */
+  SYS_BAND_CLASS_10,      /* Secondary 800 MHz NMT band  */
+  SYS_BAND_CLASS_11,      /* 400 MHz European PARM band  */
+  SYS_BAND_CLASS_12,      /* 800 MHz PAMR band           */
+  SYS_BAND_CLASS_13,      /* 2.5 GHz IMT-2000            */
+  SYS_BAND_CLASS_14,      /* US PCS 1.9 GHz band         */
+  SYS_BAND_CLASS_15,      /* AWS band                    */
+  SYS_BAND_CLASS_16,      /* US 2.5 GHz band             */
+  SYS_BAND_CLASS_17,      /* US 2.5GHz Forward Link Only Band */
+  SYS_BAND_CLASS_18,      /* 700 MHz Public Safety Band  */
+  SYS_BAND_CLASS_19,      /* Lower 700 MHz Band */
+  SYS_BAND_CLASS_20,      /* L-Band */
+  SYS_BAND_CLASS_MAX,
+  SYS_BAND_CLASS_NOT_USED = SYS_BAND_CLASS_MAX,
+  SYS_BAND_CLASS_UNSUPPORTED /* MUST be DIFFERENT than SYS_BAND_CLASS_MAX / SYS_BAND_CLASS_NOT_USED */
+} SysCdmaBandT;
+
+/* BANDCHANNEL - CDMA channel designator */
+typedef struct
+{
+  SysCdmaBandT   band;                /* CDMA band */
+  kal_uint16     cdmaCh;              /* CDMA_CH - the frequency */
+  kal_uint16     potentialCdmaCh;    /* POTENTIAL_CDMACHs */
+} SysBandChannelT;
+
+
+/* define Multiplex Options for the MAC Multiplex Layer */
+typedef enum
+{
+   SYS_MUX_NULL     = 0,
+   SYS_MUX_OPTION1  = 1,
+   SYS_MUX_OPTION2,
+   SYS_MUX_OPTION3,
+   SYS_MUX_OPTION4,
+   SYS_MUX_OPTION5,
+   SYS_MUX_OPTION6,
+   SYS_MUX_OPTION7,
+   SYS_MUX_OPTION8,
+   SYS_MUX_OPTION9,
+   SYS_MUX_OPTION10,
+   SYS_MUX_OPTION11,
+   SYS_MUX_OPTION12,
+   SYS_MUX_OPTION13,
+   SYS_MUX_OPTION14,
+   SYS_MUX_OPTION15,
+   SYS_MUX_OPTION16,
+   SYS_MUX_OPTION809 = 0x809,
+   SYS_MUX_OPTION80A,
+   SYS_MUX_OPTION811 = 0x811,
+   SYS_MUX_OPTION812,
+   SYS_MUX_OPTION821 = 0x821,
+   SYS_MUX_OPTION822,
+   SYS_MUX_OPTION905 = 0x905,
+   SYS_MUX_OPTION906,
+   SYS_MUX_OPTION909 = 0x909,
+   SYS_MUX_OPTION90A,
+   SYS_MUX_OPTION911 = 0x911,
+   SYS_MUX_OPTION912,
+   SYS_MUX_OPTION921 = 0x921,
+   SYS_MUX_OPTION922
+} SysMultiplexOptionT;
+
+
+typedef enum
+{
+   NULL_SERVICE_OPTION    = 0,
+
+   SERVICE_OPTION_1       = 1,
+   SERVICE_OPTION_2       = 2,
+   SERVICE_OPTION_3       = 3,
+   SERVICE_OPTION_4       = 4,
+   SERVICE_OPTION_5       = 5,
+   SERVICE_OPTION_6       = 6,
+   SERVICE_OPTION_7       = 7,
+   SERVICE_OPTION_8       = 8,
+   SERVICE_OPTION_9       = 9,
+   SERVICE_OPTION_10      = 10,
+   SERVICE_OPTION_11      = 11,
+   SERVICE_OPTION_12      = 12,
+   SERVICE_OPTION_13      = 13,
+   SERVICE_OPTION_14      = 14,
+   SERVICE_OPTION_15      = 15,
+   SERVICE_OPTION_16      = 16,
+   SERVICE_OPTION_17      = 17,
+   SERVICE_OPTION_18      = 18,
+   SERVICE_OPTION_19      = 19,
+   SERVICE_OPTION_20      = 20,
+   SERVICE_OPTION_21      = 21,
+   SERVICE_OPTION_22      = 22,
+   SERVICE_OPTION_23      = 23,
+   SERVICE_OPTION_24      = 24,
+   SERVICE_OPTION_25      = 25,
+   SERVICE_OPTION_26      = 26,
+   SERVICE_OPTION_27      = 27,
+   SERVICE_OPTION_28      = 28,
+   SERVICE_OPTION_29      = 29,
+   SERVICE_OPTION_30      = 30,
+   SERVICE_OPTION_31      = 31,
+   SERVICE_OPTION_32      = 32,
+   SERVICE_OPTION_33      = 33,
+   SERVICE_OPTION_34      = 34,
+   SERVICE_OPTION_35      = 35,
+   SERVICE_OPTION_36      = 36,
+   SERVICE_OPTION_54      = 54,
+   SERVICE_OPTION_55      = 55,
+   SERVICE_OPTION_56      = 56,
+   SERVICE_OPTION_59      = 59,
+   SERVICE_OPTION_62      = 62,
+   SERVICE_OPTION_63      = 63,
+   SERVICE_OPTION_68      = 68,
+   SERVICE_OPTION_69      = 69,
+   SERVICE_OPTION_70      = 70,
+   SERVICE_OPTION_73      = 73,
+   SERVICE_OPTION_75      = 75,
+   SERVICE_OPTION_4100    = 4100,
+   SERVICE_OPTION_4101    = 4101,
+   SERVICE_OPTION_4102    = 4102,
+   SERVICE_OPTION_4103    = 4103,
+   SERVICE_OPTION_4104    = 4104,
+   SERVICE_OPTION_32768   = 32768,
+   SERVICE_OPTION_32770   = 32770,
+   SERVICE_OPTION_32798   = 32798,
+   SERVICE_OPTION_32799   = 32799,
+   SERVICE_OPTION_32858   = 32858,
+   SERVICE_OPTION_32859   = 32859,   
+#ifdef MTK_CBP_ENCRYPT_VOICE
+   SERVICE_OPTION_32944	  = 32944,/*SO80b0 for Voice Encryption*/
+#endif   
+   NUM_SERVICE_OPTIONS,
+
+   SERVICE_AMPS           = 0xFFFF,
+}SysServiceOptionT, PswServiceOptionT, LmdServiceOptionT;
+
+typedef enum {
+  UNKNOWN_SVC,
+  VOICE,            /* Voice Services (SCC VS)       */
+  CIRCUIT_DATA,     /* Cicuit Data Services (SCC DS) */
+  PACKET_DATA,      /* Packet Data Services (SCC PS) */
+  LOOPBACK_TEST,    /* Loopback Services (SCC LS)    */
+  MESSAGING,        /* Messaging Services (SCC MS)   */
+  OTA_ADMIN,        /* OTA Admin Services (SCC OS)   */
+  LOCATION          /* Location Services (SCC CS)    */
+} SysServiceTypeT;
+
+typedef enum
+{
+    FSM_UNEXPECTED_EVENT,
+    FSM_CHANGED_STATE_EVENT,
+    FSM_UNCHANGED_STATE_EVENT,
+    FSM_NO_EVENT
+} FsmEventTypeT;
+
+/* Service Controller Module Ids */
+typedef enum
+{    
+  SCC_CPC  = 1,
+  SCC_NEG, 
+  SCC_DBC, 
+  SCC_OSC, 
+  SCC_MSC, 
+  SCC_VSC, 
+  SCC_DSC, 
+  SCC_PSC, 
+  SCC_LSC, 
+  SCC_BIOS, 
+  SCC_API,
+  SCC_TC, 
+  SCC_CSC, 
+  MAX_MODULE /* used by the token parser */  
+} SccModuleId;
+
+typedef enum
+{    
+  CSS_1X_CPSM,
+  CSS_DO_CPSM,
+} CssModuleId;
+
+typedef enum {
+  LS_UNKNOWN,
+  LS_IS126_LPBK, /* IS-126 type Loopback      */
+  LS_MARKOV,     /* Markov                    */
+  LS_SUPCH_LPBK, /* Suppl Code channel Loopbk */
+  LS_TDSO        /* TDSO                    */
+} SysLoopbackSvcTypeT;
+
+typedef enum {
+  DS_UNKNOWN,
+  DS_ASYNC,       /* ASYNC Data               */
+  DS_FAX          /* FAX                      */
+} SysCircuitDataSvcTypeT;
+
+typedef enum {
+  PS_UNKNOWN,
+  PS_LSPD,       /* Low Speed Packed Data     */
+  PS_MSPD,       /* Medium Speed Packed Data  */
+  PS_HSPD         /* High Speed Packed Data    */
+} SysPacketDataSvcTypeT;
+
+
+/*define So Group,refer to C.R1001-C_v1.0 TableTable 3.3-1. Service Option Group Assignments. */
+typedef enum {
+  VOICE_GRP,                                  /* Voice Services  */
+  ASYNC_DATA_GRP,                       /* Cicuit Data Services */
+  DIGIT_FAX_GRP,                          /*Digit Fax*/
+  ANALOG_FAX_GRP,                       /* Analog Fax*/
+  NON_CDPD_PACKET_DATA_GRP,   /* Non CDPD Packet Data Services  */
+  CDPD_PACKET_DATA_GRP,          /* CDPD Packet Data Services    */
+  SMS_GRP,                                     /* Messaging Services    */
+  OTAPA_GRP,                                /* OTAPAervices  */
+  LOCATION_GRP,                           /* Location Services */
+  MAX_SO_GRP
+} SysSoGrpT;
+/* define types used in Service Config msgs from PSW to L1D and LMD */
+typedef enum
+{
+  FCH_20MS_FRAME_SIZE,
+  FCH_5_AND_20MS_FRAME_SIZE
+} SysFchFrameSizeT;
+
+typedef enum
+{
+  DCCH_FRAME_SIZE_RESERVED,
+  DCCH_20MS_FRAME_SIZE,
+  DCCH_5MS_FRAME_SIZE,
+  DCCH_5_AND_20MS_FRAME_SIZE
+} SysDcchFrameSizeT;
+
+typedef enum
+{
+   CL1D_DPD_DISABLE,
+   CL1D_DPD_ENABLE
+} CL1D_DPD_ENABLE_E;
+
+
+/* define types for default 1x advanced Radio Config parms used at PS and L1D */
+#define RC_PARM_FOR_FCH_ACK_MASK_RL_BLANKING_DEFAULT      0x1998 /* FOR_FCH_ACK_MASK_RL_BLANKINGs to ?001 1001 1001 1000?*/
+#define RC_PARM_FOR_FCH_ACK_MASK_NO_RL_BLANKING_DEFAULT   0x0aaa /* FOR_FCH_ACK_MASK_NO_RL_BLANKINGs to ?000 1010 1010 1010?*/
+#define RC_PARM_REV_FCH_ACK_MASK_DEFAULT                  0x0aaa /* REV_FCH_ACK_MASKs to ?000 1010 1010 1010?*/
+#define RC_PARM_FOR_SCH_ACK_MASK_RL_BLANKING_DEFAULT      0x0018 /* FOR_SCH_ACK_MASK_RL_BLANKINGs to ?000 0000 0001 1000?*/
+#define RC_PARM_FOR_SCH_ACK_MASK_NO_RL_BLANKING_DEFAULT   0x0028 /* FOR_SCH_ACK_MASK_NO_RL_BLANKINGs to ?000 0000 0010 1000?*/
+#define RC_PARM_REV_SCH_ACK_MASK_DEFAULT                  0x002a /* REV_SCH_ACK_MASKs to ?000 0000 0010 1010?*/
+#define RC_PARM_FOR_N2M_IND_DEFAULT                            1 /* FOR_N2M_INDs to ?01?(4 bad frames) */
+#define RC_PARM_FPC_MODE_DEFAULT                               0
+#define RC_PARM_RPC_MODE_DEFAULT                               0 /* RPC_MODEs to ?0?(200 to 400 bps) */
+#define RC_PARM_PWR_CNTL_STEP_DEFAULT                          0 /* PWR_CNTL_STEPs to ?00?(1 dB) */
+#define RC_PARM_FOR_FCH_BLANKING_DUTYCYCLE_DEFAULT             0 /* FOR_FCH_BLANKING_DUTYCYCLEs to ?00?*/
+#define RC_PARM_REV_FCH_BLANKING_DUTYCYCLE_DEFAULT             0 /* REV_FCH_BLANKING_DUTYCYCLEs to ?00?*/
+#define RC_PARM_REV_ACK_CHAN_GAIN_ADJ_ACS_1_DEFAULT            0
+#define RC_PARM_REV_ACK_CHAN_GAIN_ADJ_ACS_2PLUS_DEFAULT        0
+#define RC_PARM_NUM_RC_PARM_RECS_DEFAULT                       0
+
+
+/* define array sizes for pilot lists */
+#define SYS_CP_MAX_CANDIDATE_FREQ_LIST      20   /* array size for used and unused PN lists */
+#define SYS_CP_MAX_ACTIVE_LIST_PILOTS        6   /* array size for active pilot list */
+#define SYS_CP_MAX_CANDIDATE_LIST_PILOTS    10   /* array size for candidate list */
+#ifdef MTK_CBP
+#define SYS_CP_MAX_NEIGHBOR_LIST_PILOTS     44   /* array size for neighbor pilot list */
+#else
+#define SYS_CP_MAX_NEIGHBOR_LIST_PILOTS     40   /* array size for neighbor pilot list */
+#endif
+#define SYS_CP_MAX_REMAINING_LIST_PILOTS    20   /* array size for Remaining pilot list */
+#define SYS_CP_MAX_IDLE_PRIORITY_PILOTS     40   /* max number of pilot pn's in idle priority message */
+#define SYS_CP_MAX_NUM_TC_ACTIVE_PILOTS      6   /* array size for active set list */
+#define SYS_CP_MAX_ANALOG_FREQ_SEARCH        7   /* array size for analog candidate freq search list */
+/* Amala K. 03/01/02 - AFLT */
+#define SYS_CP_MAX_AFLT_LIST_PILOTS         40   /* max number of pilot pn's in position determination msg */
+#define SYS_CP_MAX_RTT_NEIGHBOR_LIST_PILOTS 44 /* max number of pilot pn's in neighbor list  */                                               /* array size for AFLT neighbor pilot list */
+
+
+/* define maximum number of SCH supported by the physical layer */
+#define SYS_MAX_FSCH 1  /* Maximum number of forward SCH */
+#define SYS_MAX_RSCH 1  /* Maximum number of reverse SCH */
+
+
+#define CP_VERSION_SIZE         4
+#define CP_BUILDTIME_SIZE       5
+
+/*************************************************************************
+  defined types for RLP and LMD layers
+**************************************************************************/
+
+/*
+   Valid is2000 sr_ids range from 0 to 7.  The additional sr_ids are for
+   internal use only. The null sr_id identifies there is no associated
+   rlp channel. The lmd sr_id is used by lmd during is95 calls.
+*/
+#define SYS_SR_ID_MAX         9
+#define SYS_SR_ID_NULL        SYS_SR_ID_MAX
+
+#if 1
+#define SYS_SR_ID_IS95_LMD    1
+#else
+/* under construction !*/
+#endif
+#define SYS_SR_ID_IS2000_MAX  SYS_SR_ID_MAX - 2
+#define SYS_SR_ID_IS95_PRIM   1
+#define SYS_SR_ID_IS95_SEC    2
+
+/*************************************************************************
+  defined types for PSW and MMI
+**************************************************************************/
+#define SYS_SYSTIME_SIZE         5     /* # bytes to hold 36 bits  */
+
+/*************************************************************************
+  defined types for PSW and LMD
+**************************************************************************/
+
+#define MAX_STAT_ELEMENT         64 /* max stat element is PCG_FOR_FCH
+                                       MAX_STAT_ELEMENT is 64       */
+#define FWD_FCH_RATE_CATEGORY   4
+#define PCG_PER_FRAME           16
+#define LMD_EACH_ON             1
+
+typedef enum
+{
+   MUX1_REV_FCH   = 0,
+   MUX1_FOR_FCH,
+   PAG,
+   ACC,
+   LAYER2_RTC,
+   MUX2_REV_FCH,
+   MUX2_FOR_FCH,
+   SCCH_REV,
+   SCCH_FOR,
+   MUX1_REV_DCCH,
+   MUX1_FOR_DCCH,
+   MUX2_REV_DCCH,
+   MUX2_FOR_DCCH,
+   SCH0_REV,
+   SCH1_REV,
+   SCH0_FOR,
+   SCH1_FOR,
+   PCG_FOR_FCH,//decode forward fch on PCG0~15
+   PCG_FOR_SCH,//not use 
+   ACK_TX_PCG_FCH,//TX ACK for FCH reception on PCG0~15
+   ACK_TX_PCG_SCH,//not use 
+   ACK_RX_PCG_FCH,//RX ACK for FCH transmision on PCG1~15   
+   ACK_RX_PCG_SCH,//not use   
+   BCCH_TYPE,
+   FCCCH_TYPE,
+#ifdef LMD_EACH_ON
+   EACH_BA,
+#endif
+   END_OF_GROUP_LIST
+} StatCounterT;
+
+
+#define SYS_TIME_MULTIPLE_TYPES
+
+#ifdef SYS_TIME_MULTIPLE_TYPES
+enum
+{
+   MON_SYS_TIME_TYPE_1X,
+   MON_SYS_TIME_TYPE_DO,
+   /* MON_SYS_TIME_TYPE_LTE, */
+#ifdef SYS_OPTION_GSM
+   MON_SYS_TIME_TYPE_GSM,
+#endif
+   MON_SYS_TIME_TYPE_FRC,
+   MON_SYS_TIME_TYPE_MAX
+};
+#endif
+
+/* Define Sys Time structure */
+typedef struct
+{
+#ifndef SYS_TIME_MULTIPLE_TYPES
+   kal_uint32      SysTime;
+#else
+   kal_uint32      NumOfSysTime;
+   kal_uint64      SysTime[MON_SYS_TIME_TYPE_MAX];
+#endif
+} MonSysTimeT;
+
+#define M_Q2(vALUE)       ((kal_int16)((vALUE) * (1 << 2)))
+#define M_Q5(vALUE)       ((kal_int16)((vALUE) * (1 << 5)))
+#define M_Q6(vALUE)       ((kal_int16)((vALUE) * (1 << 6)))
+#define M_Q5ToQ6(vALUE)   ((vALUE) * (1 << 1))
+#define M_Q5ToQ7(vALUE)   ((vALUE) * (1 << 2))
+#define M_Q7ToQ5(vALUE)   ((vALUE) >> 2)
+
+/** uS and nS to C2K chips: 1 c2k chip = 1/1.228 uS */
+#define M_UsToChips(uS)          (((uS) * 1228 + 1000 - 1) / 1000)
+#define M_NsToChips(nS)          (((nS) * 1228 * 1000 + 1000 * 1000 - 1) / 1000 * 1000)
+#define M_ChipsToUs(cHIPS)       (((cHIPS) * 1000 + 1228 - 1) / 1228)
+#define M_UsToChips8x(uS)        (((uS) * 1228)*8 / 1000)
+
+typedef kal_uint32 RegAddrT;
+typedef kal_uint32 RegDataT;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/* define Check Point Lists */
+typedef enum
+{
+    /* In copy.s */
+    CP_RUNNING_START     = 0x01,
+    MEM_RELOCATION_DONE  = 0x02,
+
+    /* In platform_porting.s */
+    SWITCH_MODE_DONE     = 0x03,
+    DISABLE_CPI_DONE     = 0x04,
+    ENABLE_ICACHE_DONE   = 0x05,
+    SWITCH_VEC_TO_H_DONE = 0x06,
+    SETUP_STACKP_DONE    = 0x07,
+    INIT_HW_MEM_DONE     = 0x08,
+    INIT_C_MEM_DONE      = 0x09,
+    INIT_TARGET_DONE     = 0x0A,
+    INIT_TLB_TABLE_DONE  = 0x0B,
+    ENABLE_MMU_DONE      = 0x0C,
+    INIT_NU_SYSTEM_DONE  = 0x0D,
+    ENABLE_FIQ_DONE      = 0x0E,
+    INC_INITIALIZE_START = 0x0F,
+
+    /* In exepowr.c */
+    APPLICATION_INIT_START = 0x10,
+    INIT_UART_DONE         = 0x11,
+    INIT_CPI_DONE          = 0x12,
+    INIT_CLOCK_DONE        = 0x13,
+    
+    /* CCIF handshake  phase 1*/
+    CCIF_HDSKP1_START                 = 0x14,
+    CCIF_HDSKP1_WAIT_AP_ACK_BOOT_DONE = 0x15,
+    CCIF_HDSKP1_WAIT_AP_RTDATA_DONE   = 0x16,
+    CCIF_HDSKP1_SET_MMU_PROTECT_DONE  = 0x17,
+    CCIF_HDSKP1_SET_RTDATA_DONE       = 0x18,
+    /* CCIF handshake phase 1 done */
+
+    
+    CREATE_TASKS_DONE                 = 0x19,
+    ENABLE_RTOS_TIMER_DONE            = 0x20,
+    INIT_GPIO_DONE                    = 0x21,
+    INIT_WDT_TIMER_DONE               = 0x22,
+    INIT_EXE_SYS_DONE                 = 0x23,
+    INIT_CP_BUF_DONE                  = 0x24,
+    INIT_FSM_DONE                     = 0x25,
+    APPLICATION_INIT_END              = 0x26,
+    
+    SYS_CHECK_POINT_MAX               = 0xFF
+
+} SysCheckPoiontT;
+
+extern SysCheckPoiontT SysCheckPoint;
+
+/* the first 4 bytes indicate the last check point, the following bytes are step pointer, next are fail args  */
+#define BOOT_TRACE_MAX_SIZE           128
+#ifdef SYS_OPTION_IOP_CCIF
+#define BOOT_TRACE_ADR                (HWD_MDCCIF_CHDATA + HWD_CCIF_SRAM_SIZE - BOOT_TRACE_MAX_SIZE)
+#else
+#define BOOT_TRACE_ADR                (HWD_IRAM_BASE_ADDR + HWD_IRAM_SIZE - BOOT_TRACE_MAX_SIZE)
+#endif
+#define BOOT_LAST_POINT_ADR           (BOOT_TRACE_ADR)
+#define BOOT_RECORD_TIMESAMP_ADR      (BOOT_LAST_POINT_ADR + 4)
+#define BOOT_TIMESTAMP_BASE           (BOOT_RECORD_TIMESAMP_ADR + 4)
+#define BOOT_TIMESTAMP_NUM            20
+#define BOOT_TIMESTAP_END             (BOOT_TIMESTAMP_BASE + (BOOT_TIMESTAMP_NUM * 4))
+/* We can record most 10 parameters, we should not exceed this, otherwise we will discard  */
+#define BOOT_ASSERT_INFO_BASE         (BOOT_TIMESTAP_END)
+
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/common/c2k_irat_msg_struct.h b/mcu/interface/protocol/as_c2k/common/c2k_irat_msg_struct.h
new file mode 100644
index 0000000..1858ce9
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/c2k_irat_msg_struct.h
@@ -0,0 +1,2794 @@
+/*****************************************************************************
+*  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) 2013
+*
+*  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).
+*
+*****************************************************************************/
+
+/** \file
+ *
+ * Filename:
+ * ---------
+ *   c2k_irat_msg_struct.h
+ *
+ * Project:
+ * --------
+ *   C2K
+ *
+ * Description:
+ * ------------
+ * This file defines the structures of messages between MD1 and MD3.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * $Log$
+ *
+ * 11 09 2020 sean.han
+ * [MOLY00587817] [Rose][Palmer][R0][BSP+]The MO call will can't dial out successfully.(1/10)
+ * 	
+ * 	.
+ *
+ * 11 09 2020 sean.han
+ * [MOLY00587817] [Rose][Palmer][R0][BSP+]The MO call will can't dial out successfully.(1/10)
+ * 	
+ * 	.
+ *
+ * 09 10 2020 zero.zhang
+ * [MOLY00549022] [PRE SMC][NACDMA][A21 LRA][CCAT] 5.8 REFRESH, CSIM Initialization and File Change Notification
+ * 	
+ * 	Fix fdn enable status for non-(c only) card.
+ * 	Report FDN status in STK refresh procedure
+ * 	Change C2K ADN file ID
+ * 	Send FILE_CHANGE_IND for CSIM REFRESH in non-C only card.
+ *
+ * 06 30 2020 prime.xiao
+ * [MOLY00537022] [EE] Device still connected to vowifi when rejected by ¡§Illegal ME¡¨ in LTE attach procedure.(VMOLY)
+ * 	
+ * 	.
+ *
+ * 06 16 2020 prime.xiao
+ * [MOLY00537022] [EE] Device still connected to vowifi when rejected by ¡§Illegal ME¡¨ in LTE attach procedure.(VMOLY)
+ * 	
+ * 	.
+ *
+ * 04 08 2020 derek.yang
+ * [MOLY00509524] [MT6873][Margaux][Q0][MP3][SQC][China][5GMM][SIMIOT][TCID: Normal_SIM_IOT_002]: UE doesnot show new added ANR numbers after sim hot swap
+ * 	
+ * 	.
+ *
+ * 12 27 2019 jiayong.zhang
+ * [MOLY00465954] [CT CCP][MT6885][Petrus][Q0][MP1][SI2][SQC][China][Shanghai][HW][IMS][CTC][FT][Operator FT][LTE IOT]SIM2-CT still not camp on LTE after be moved from no service coverage to LTE coverage
+ * 	
+ * 	.
+ *
+ * 12 09 2019 jiayong.zhang
+ * [MOLY00464630] Gen97 Elevator Mode feature
+ * 	
+ * 	.
+ *
+ * 12 09 2019 raphael.tsai
+ * [MOLY00462947] [CODE_SYNC][VMOLY] patch back.
+ * - hVoLTE to add new VOPS mode for NR case
+ *
+ * 12 06 2019 prime.xiao
+ * [MOLY00381008] [Gen97][GMSS] 5G related feature
+ * 	
+ * 	. sim2 SRLTE (OA domain)
+ *
+ * 11 27 2019 pradeep.thanneeru
+ * [MOLY00461731] [MT6885][Petrus][Alpha phone][MP1][SQC][Chengdu][5GMM][Static][CU+CT][MDST][SWIFT][S]  Externel (EE),mcu/l1/mml1/mml1_rxdfe/md97/src/mml1_rxdfe_api.c line:3666
+ * Added  connected Mode Gap Flag for C2K gap Notify
+ *
+ * 07 12 2019 pradeep.thanneeru
+ * [MOLY00412345] [Top Issue][MT6297][Apollo][MP1][SI2][SQC][LTE][FT][MDST][Static][China][SH][ZTE][Assert]Assert fail: mll1_main.c 18973 - MLL1
+ * NLWCG support in connected Mode
+ *
+ * 06 12 2019 jiayong.zhang
+ * [MOLY00410820] [Copy from 95]ÇëÌṩP80 µçÌÝģʽÏà¹ØµÄ˵Ã÷ÎĵµºÍpatch
+ * 	
+ * 	.
+ *
+ * 10 30 2018 raphael.tsai
+ * [MOLY00346713] [VMOLY] Merge code from CBr to VMOLY - GMSS.
+ * interface folder
+ *
+ * 10 16 2018 jiayong.zhang
+ * [MOLY00357789] [Gen97][Unified Trace]C2K UIM part
+ * 	
+ * 	merge from 95 to VMOLY
+ *
+ * 09 17 2018 pradeep.thanneeru
+ * [MOLY00352874] NR Mll1 Changes
+ * NR ENDC changes for VMOLY
+ *
+ * 06 14 2018 qiming.li
+ * [MOLY00332990] [Rose][Cervino][O1][BSP+][Pure]EE " md1:(MCU_core1.vpe0.tc0(VPE2)) [Fatal error(WATCH)] err_code1:0x00000017 err_code2:0x909B6E29 err_code3:0x909B6E19 CaDeFa Support"pop up after SIM switch to SIMA.
+ * 	
+ * 	<saved by Perforce>
+ *
+ * 06 12 2018 qiming.li
+ * [MOLY00332770] DSBP reconfig modification and SIM trans_id addition for DSBP
+ * 	
+ * 	.
+ *
+ * 05 15 2018 tina.ma
+ * [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ * 	
+ * 	MSPM feature merge to UMOLYE
+ *
+ * 04 23 2018 yilun.yang
+ * [MOLY00321868] [Rose][EIGER][O1][BSP+]can not remove contact
+ * Remove SFI build options from UIM-PHB interfaces.
+ *
+ * 04 08 2018 derek.yang
+ * [MOLY00318601] [Eiger][E1][RDIT] After sim refresh, there is no dialog to notify "success"
+ * 	
+ * 	.
+ *
+ * 03 13 2018 danny.kuo
+ * [MOLY00312598] [DSBP] patch back "D-SBP enhancment for all modem" to UMOLYE and TC01.R3.DEV
+ * .
+ *
+ * 11 20 2017 derek.yang
+ * [MOLY00290394] [Gen93][DSS_NO_RESET] not do CSM/PHB/SMSAL reinit during DSS
+ * 	
+ * 	.
+ *
+ * 11 14 2017 derek.yang
+ * UIM part.
+ *
+ * 11 02 2017 raphael.tsai
+ * [MOLY00286282] [Gen93][Network Search+CDMA-less+plmn-loss Optimization] Code merge from LR12 to LR12A.R3. GMSS part
+ *
+ * 09 25 2017 aric.chiu
+ * [MOLY00279906] [Low Power]
+ * [mll1-xl1] add cell_list_status_bitmap in measure_done_ind_struct.
+ *
+ * 08 31 2017 raphael.tsai
+ * [MOLY00274693] [Gen93][Network Search Optimization] Code Merge from LR11 to UMOLYA TRUNK - GMSS part
+ *
+ * 08 07 2017 raphael.tsai
+ * [MOLY00267809] [Known Issue][Bianco][MP1][E2][N1] Bianco Normal mode suspend current: 7.35 ma >  Kibo+  Normal mode suspend current: 3.54mA - Header.
+ *
+ * 07 20 2017 sean.han
+ * [MOLY00265339] [Bianco][N1][SRLTE][CT 5M A][LTE IOT][FT][GZ][ZTE][CAT]System API Dump,308,23848,99,/data/core/,2,,Android log much: 6300. 5225.detect time 1.level 4000.[RTC_DAC[-1]]
+ *
+ * 	.
+ *
+ * 06 14 2017 raphael.tsai
+ * [MOLY00257259] [copy MOLY00250179][TCL] [VZW][Phase1][hVoLTE][TC2.2.16]Fail: ?UE failed to send 3rd RACH attempts at step 9.
+ *
+ * 03 10 2017 sean.han
+ * [MOLY00226199] [Gen93] CSS IRAT Code Integration to UMOLYA TRUNK
+ *
+ * 	.
+ *
+ * 03 07 2017 tnt.ning
+ * [MOLY00230402] [UMOLYA TRUNK 93] porting M2 CL to UMOLYA TRUNK
+ *
+ * 	1.porting phb init about uim only card.
+ * 	2.proting stkcall
+ *
+ * 02 20 2017 allan.ke
+ * [MOLY00223960] [93][GMSS] 3G dual mode SIM IR
+ * .
+ *
+ * 02 20 2017 tnt.ning
+ * [MOLY00230402] [UMOLYA TRUNK 93] porting M2 CL to UMOLYA TRUNK
+ *
+ * 	porting CL from M2 temp CBr to UMOLYA.
+ *
+ * 02 15 2017 zero.zhang
+ * [MOLY00229625] [6293][C2K]fix power on/off structure for NWSIM
+ *
+ * 	fix NWSIM issue
+ *
+ * 01 19 2017 julian.zhang
+ * [MOLY00224435] [NewFeature][EVL1]GKI/DHL based nwsim platform porting
+ *
+ * 01 17 2017 allan.ke
+ * [MOLY00225286] [copy MOLY00221320][Whitney][N0][E1][SRLTE][LTE IOT][CT 5M A][FT][GZ][HW][Extend_15]Whitney cost about 71s to camp on 3G after power on
+ * .
+ *
+ * 01 13 2017 aric.chiu
+ * [MOLY00177768] [UMOLYA][TRUNK][UMOLYA][MLL1]
+ * [mll1] specific gap for SCH sharing between UL1 & CL1. (temporary disable)
+ *
+ * 12 28 2016 morning.lee
+ * [MOLY00210674] [MT6293] C2K L4 Integration SET RAT FLOW
+ *
+ * 	.
+ *
+ * 12 01 2016 sue.zhong
+ * [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
+ * Update C2K interface
+ *
+ * 11 23 2016 allan.ke
+ * [MOLY00214323] revise EVDO mcc search
+ * .
+ *
+ * 11 11 2016 shih-che.chou
+ * [MOLY00201089] [Gen92][L4C] New EPOF flow, MD1 turn off MD3
+ * .
+ *
+ * 11 09 2016 xiaofang.xu
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * .
+ *
+ * 11 09 2016 aric.chiu
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * [mll1] add interface for SCH sharing.
+ *
+ * 11 02 2016 allan.ke
+ * [MOLY00211069] [copy MOLY00207115]revise L2C IRAT fail conflict with 1x SUSPEND procedure
+ * .
+ *
+ * 10 24 2016 dennis.weng
+ * [MOLY00208768] [MT6293] [B66] Band66 porting (ERRC part)
+ * .
+ *
+ * 10 06 2016 allan.ke
+ * [MOLY00196075] [UMOLA] GMSS Regular Sync from UMOLY
+ * .
+ *
+ * 09 26 2016 aric.chiu
+ * [MOLY00204936] [6293][C2K]PS.DEV merge back to UMOLYA
+ * mll1 modification for c2k integration into md1.
+ *
+ * 09 26 2016 jason.wu
+ * [MOLY00204857] [MT6293][EMM CALL] code merge from UMOLYA PS DEV to UMOLYA
+ * [OA Doamin] Merged from UMOLYA PS DEV
+ *
+ * 08 10 2016 sue.zhong
+ * [MOLY00196360] [6293][C2K Integration] Code Merge from C2K Integration CBr to PS DEV
+ * .
+ *
+ * 08 09 2016 allan.ke
+ * [MOLY00196075] [UMOLA][PS.DEV] GMSS Regular Sync from UMOLY
+ * .
+ *
+ *
+ * 06 27 2016 allan.ke
+ * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA
+ * .
+ *
+ * 06 27 2016 allan.ke
+ * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA
+ * .mod l4 code to fix build error
+ *
+ * 06 27 2016 max.mo
+ * [MOLY00186735] [L4C-PS][NAS] Sync code from UMOLY to UMOLYA
+ * update MOLY00171278
+ *
+ * 06 23 2016 allan.ke
+ * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA
+ * .move enum to correct file
+ *
+ * 06 22 2016 allan.ke
+ * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA
+ * .GMSS cross core part
+ *
+ * 03 14 2016 ian-yw.chen
+ * [MOLY00168557] [SMS][TC01] inform MD3 for TK or BSP
+ * cross-core interface
+ *
+ *
+ *
+ * 03 01 2016 ali.su
+ * [MOLY00159792] [LR11][TRUNK] VzW: LTE-C2K time sync with SIB8
+ * (UMOLY_TRUNK) LTE-C2K time sync with SIB8.
+ *
+ * 03 01 2016 ian-yw.chen
+ * [MOLY00147454] VZW 3GPP2 SMS over IMS
+ *  SDM and interfaces
+ *
+ * 01 14 2016 bart.liang
+ * [MOLY00155898] [MP2 FPB][Remote SIM switch] Add interface for mdstatus control flow
+ *
+ * 01 11 2016 ali.su
+ * [MOLY00159681] [MT6755][VzW][chipset][RDIT][LGE_LAB] GMSS_TC_12.2  Assert fail mll1_main.c 7777 - MLL1
+ * (UMOLY) LWCG mode fix: support standby C CS in W/G active.
+ *
+ * 11 09 2015 bart.liang
+ * [MOLY00138245] [JADE][SRLTE] SW Power off flow
+ *
+ * 10 22 2015 ali.su
+ * [MOLY00144447] Operator Feature/Requirement
+ * (UMOLY) LWCG mode: MLL1 revise.
+ *
+ * 10 21 2015 tim.huang
+ * [MOLY00146073] [JADE][SRLTE][PS][SH]sim
+ * .
+ *
+ * 10 10 2015 tim.huang
+ * [MOLY00144755] [WW FT][MT6755][E2][FULL_VER][4G FDD CA][Jade][UK-London][Vodafone]Externel (EE),0,0,99,/data/core/,1,modem,md3: [Lockup]
+ * .
+ *
+ * 10 06 2015 ali.su
+ * [MOLY00143141] [RRM][Anritsu][2.21.02][EE]:Assert?file:l1core/modem/gl1/l1c/m11501.c line:1758
+ * (UMOLY) add tid for gap_service_req/gap_pattern_ind (only check for EL1 active).
+ *
+ * 09 22 2015 raphael.tsai
+ * [MOLY00138326] [GMSS] Add trx_id to prevent unexpcted message received from MD3.
+ *
+ * 08 27 2015 ali.su
+ * [MOLY00139432] [Jade-L][SRLTE][LTE IOT][FT][SH][ZTE][TC-4GFT-05003]md1:(MCU_L1CORE)[ASSERT] file:l1core/modem/lte_sec/el1/common/src/rf_conflict_check.c line:153 [FOCUS ISSUE]
+ * (UMOLY) adjust TDD & C2K RF tail margin in LTE IDLE/CONNECT_DRX to avoid RF conflict..
+ *
+ * 07 23 2015 robert.wu
+ * [MOLY00125850] [UMOLY]GMSS patch sync for JADE_SRLTE_DEV
+ * .
+ *
+ * 07 17 2015 wynne.chu
+ * [MOLY00129629] [L4C] refactor - srcid_cid_action table/reporter/indicator/misc revision
+ * 	.
+ *
+ * 07 14 2015 ali.su
+ * [MOLY00124751] [UMOLY] [EL1][MLL1] SRLTE merge
+ * (UMOLY) MLL1 c2k gap margin value.
+ *
+ * 07 05 2015 ali.su
+ * [MOLY00124751] [UMOLY] [EL1][MLL1] SRLTE merge
+ * (UMOLY_TRUNK) SRLTE feature.
+ *
+ * 07 03 2015 tim.huang
+ * [MOLY00125845] [JADE] SRLTE related design
+ * .
+ *
+ * 07 03 2015 doug.shih
+ * [MOLY00122048] [6795] Request new feature to improve registration time of roaming case
+ * Sync C2K AS IRAT PreIT code.
+ *
+ * 07 03 2015 doug.shih
+ * [MOLY00092508] [MT6291][LTE-C2K] AS Inter RAT feature
+ * Sync C2K AS IRAT PreIT code.
+ *
+ * 06 18 2015 robert.wu
+ * [MOLY00122503] Sync C2K IRAT code to UMOLY trunk
+ * 	.
+ *
+ * 04 16 2015 tim.huang
+ * [MOLY00107801] NAS 6291 DEV
+ * .
+ *
+ * 04 16 2015 tim.huang
+ * [MOLY00107801] NAS 6291 DEV
+ * .
+ *
+ * 04 16 2015 tim.huang
+ * [MOLY00107801] NAS 6291 DEV
+ * .
+ *
+ * 04 16 2015 robert.wu
+ * [MOLY00083874] [UMOLY][R10][R11] EMM MTC sync code from 6291_DEV to UMOLY trunk
+ * sync code from Peng-An UBIN CBR.
+ *
+ * 01 20 2015 dennis.weng
+ * [MOLY00091526] Merge back MD1 AP IRAT features
+ * c2k sync to moly (oa)
+ *
+ * 12 04 2014 max.mo
+ * [MOLY00081330] [Denali] LTE/C2K IRAT Code Sync
+ * . change binding_id from kal_uint8 to kal_uint32 in pdn_info_struct
+ *
+ * 12 01 2014 ralf.chen
+ * [MOLY00079247] LTE/C2K IRAT GMSS development
+ * Add MD3 debug trace
+ *
+ * 11 10 2014 yuming.hsu
+ * [MOLY00080240] [L4C][Denali] SVLTE implementation
+ * .
+ *
+ * 11 07 2014 max.mo
+ * [MOLY00081330] [Denali] LTE/C2K IRAT Code Sync
+ * . change fallback from kal_bool to enum, change C2K cause structure.
+ *
+ * 11 06 2014 jiayong.zhang
+ * [MOLY00079087] [Change feature]change PS IRAT interface shared file between MD1 and MD3 IRAT development
+ * <saved by Perforce>
+ *
+ * 11 03 2014 max.mo
+ * [MOLY00081330] [Denali] LTE/C2K IRAT Code Sync
+ * . update deact_retry interface in pdn_info_struct
+ *
+ * 10 22 2014 max.mo
+ * [MOLY00081330] [Denali] LTE/C2K IRAT Code Sync
+ * . Sync Interface
+ *
+ * 10 20 2014 ralf.chen
+ * [MOLY00079247] LTE/C2K IRAT GMSS development
+ * Modify VAL-RAC SAP
+ *
+ * 10 20 2014 ralf.chen
+ * [MOLY00079247] LTE/C2K IRAT GMSS development
+ * Modify VAL-RAC SAP
+ *
+ * 10 20 2014 ralf.chen
+ * [MOLY00079247] LTE/C2K IRAT GMSS development
+ * Modify VAL-RAC SAP
+ *
+ * 10 20 2014 max.mo
+ * [MOLY00081330] [Denali] LTE/C2K IRAT Code Sync
+ * [L4C] Sync c2k_lte_rat_chage_req_struct
+ * 	c2k_lte_rat_chage_cnf_struct
+ * 	lte_c2k_rat_chage_req_struct
+ * 	lte_c2K_rat_chage_cnf_struct
+ *
+ * 10 16 2014 jiayong.zhang
+ * [MOLY00079087] [Change feature]change PS IRAT interface shared file between MD1 and MD3 IRAT development
+ * [SIXTH00001201] [New feature][PS][CSS/VAL]IRAT code development
+ * 	IRAT development
+ *
+ * 10 15 2014 ralf.chen
+ * [MOLY00079247] LTE/C2K IRAT GMSS development
+ * Back out changelist 814142
+ *
+ * 10 10 2014 tnt.ning
+ * [MOLY00079445] [Change feature][IRAT] change PS IRAT interface shared file between MD1 and MD3, modify c2k_irat_message_struct.h according to the SAP defined between SIM task and UIM task
+ * update UIM-SIM SAT interface according to the UIM-SIM SAT SAP document
+ *
+ * 10 09 2014 chuan.jiang
+ * [MOLY00080547] [Change Feature] update PS IRAT interface shared file between MD1 and MD3
+ * update MD1 & MD3 interface file. 1: remove message id used by MD3 into its internal file. 2: add c2k_irat_result_enum define
+ *
+ * 09 30 2014 tnt.ning
+ * [MOLY00079445] [Change feature][IRAT] change PS IRAT interface shared file between MD1 and MD3, modify c2k_irat_message_struct.h according to the SAP defined between SIM task and UIM task
+ * update SIM-UIM sap:message id and message struct between MD3 and MD1
+ *
+ * 09 30 2014 yuming.hsu
+ * [MOLY00080020] [SIM][Denali] SIM part check-in for CDMA MD(MD3) cross access
+ * check-in struct
+ *
+ * 09 30 2014 aaron.cai
+ * [MOLY00080008] Add Message enum id value for PC IT simulation
+ * Add interface message id enum value for C2K IRAT PC IT
+ *
+ * 09 24 2014 tnt.ning
+ * [MOLY00079445] [Change feature][IRAT] change PS IRAT interface shared file between MD1 and MD3, modify c2k_irat_message_struct.h according to the SAP defined between SIM task and UIM task
+ * modify c2k_irat_msg_struct for SIM_APDU_ACCESS_REQ/SIM_APDU_ACCESS_CNF
+ *
+ * 09 21 2014 ralf.chen
+ * [MOLY00079247] LTE/C2K IRAT GMSS development
+ * 	Sync cross_core folder
+ *
+ * 09 19 2014 jiayong.zhang
+ * [MOLY00079087] [Change feature]change PS IRAT interface shared file between MD1 and MD3 IRAT development
+ * modify c2k_irat_message_struct.h according to the modification oof GMSS_CSS_SAP
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _C2K_IRAT_MSG_STRUCT_H
+#define _C2K_IRAT_MSG_STRUCT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* make the c2k irat message sturcture 1 byte alignment in PC IT
+ * For NWSIM project is 1 byte strucuter member aligment
+ */
+#if 0
+#ifdef MTK_PLT_ON_PC_IT
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif
+
+#include "ps_public_enum_public.h"
+#include "tcm_context_public.h"
+#include "mmi_sm_enums_public.h"
+#include "mmi_l3_enums_public.h"
+#include "l4c_common_enum_public.h"
+#include "irat_common_enums_public.h"
+#include "c2k_api_public.h"
+//#include "sim_public_enum_public.h"
+//#include "sim_ps_struct_public.h"
+#include "l3_inc_enums_public.h"
+#include "c2k_rsva_struct.h"
+#include "c2k_rsva_enums.h"
+#include "cas_eas_enum.h"
+#include "cas_eas_struct.h"
+#include "as_inter_core_enum.h"
+#include "as_inter_core_struct.h"
+#include "mmss_def.h"
+#include "c2k_sms_struct.h"
+#include "mspm_public_api.h"
+#include "ps_public_enum.h"
+
+/** \defgroup c2k_irat_macros C2K_IRAT Macros
+ * \ingroup SigC2kIrat
+ *
+ * Enumeration definitions used in C2K_IRAT interface.
+ *
+ * @{
+ */
+
+/** max PDN number */
+#define MAX_PDN_NUM                       (5)
+
+
+/** 2 bytes status word SW1 and SW2 */
+#define STATUS_WORD_LEN                   (2)
+
+/** proactive command data */
+#define SAT_PROACTIVE_CMD_LEN             (260)
+
+/** Max debug trace length from MD3 */
+#define MAX_MD3_DEBUG_TRACE_LEN            (256)
+
+/** @} */ /* End of c2k_irat_macros group */
+
+
+/** \defgroup c2k_irat_enumerations C2K_IRAT Enumerations
+ * \ingroup SigC2kIrat
+ *
+ * Enumeration definitions used in C2K_IRAT interface.
+ *
+ * @{
+ */
+
+
+/** System type */
+typedef enum
+{
+    SYS_TYPE_CDMA2000_AI,          /**< All 3GPP2 access technology */
+    SYS_TYPE_3GPP_AI,              /**< All 3GPP access technology */
+    SYS_TYPE_CDMA2000_1x,          /**< CDMA2000 1xRTT */
+    SYS_TYPE_CDMA2000_HRPD,        /**< CDMA2000 HRPD (1xEV-DO) */
+    SYS_TYPE_GERAN,                /**< GSM */
+    SYS_TYPE_UTRAN,                /**< UMTS */
+    SYS_TYPE_EUTRAN,               /**< LTE */
+
+}sys_type_enum;
+
+/** PS service type */
+typedef enum
+{
+    IRAT_PS_NO,                     /**< PS service has not established or network released the current PS */
+    IRAT_PS_1X,                     /**< PS service is on 1X */
+    IRAT_PS_HRPD,                   /**< PS service is on HRPD */
+    IRAT_PS_EHRPD,                  /**< PS service is on EHRPD */
+    IRAT_PS_LTE,                    /**< PS service is on LTE */
+    IRAT_PS_UMTS,                   /**< PS service is on UMTS */
+    IRAT_PS_GSM,                    /**< PS service is on GSM */
+}irat_ps_type_enum;
+
+
+/** IRAT priority class */
+typedef enum
+{
+    IRAT_HOME,                      /**< priority is HOME */
+    IRAT_PREF,                      /**< priority is PREFER */
+    IRAT_ANY,                       /**< priority is ANY */
+    IRAT_PRIO_NONE                  /**< priority is invalid */
+}irat_priority_class_enum;
+
+/** CSS failure cause code */
+typedef enum
+{
+    CSS_CAUSE_NONE,                 /**< none */
+    CSS_CAUSE_NOT_CACHABLE,         /**< not cachable */
+    CSS_CAUSE_WRONG_MODE,           /**< wrong mode */
+    CSS_CAUSE_1X_CONNECTION,        /**< in 1xRTT connection */
+    CSS_CAUSE_PWR_DOWN,             /**< in power down */
+    CSS_CAUSE_NO_ASSO_CH,           /**< no associated channel */
+    CSS_CAUSE_EXAULST,              /**< exhausted */
+    CSS_CAUSE_SESSION_FAIL,         /**< session fail */
+    CSS_CAUSE_SYS_LOST,             /**< system lost */
+    CSS_CAUSE_EMERGENCY_CALL_BACK_MODE, /**< MD3 is in emergency call back mode */
+    CSS_CAUSE_SIM_ERROR,            /**< SIM error */
+    CSS_CAUSE_PS_ON_SIM2,           /**< PS service is on SIM2 */
+    CSS_CAUSE_RSVAS_SUSPEND,         /**< Suspend mode */
+    CSS_CAUSE_RSVAS_VIRTUAL_SUSPEND, /**< Virtual mode */
+    CSS_CAUSE_ABORT_BY_GMSS,        /**< Prempt by GMSS operation */
+    CSS_CAUSE_TIME_OUT,             /**< Time out */
+    CSS_CAUSE_1X_PS_DELAY_TIMER,    /**< timer t_1xRTT is started */
+    CSS_CAUSE_1X_NOT_AVAILABLE,     /**< 1x not available */
+    CSS_CAUSE_CSIM_REFRESH,         /**< C2K is doing CSIM REFRESH */
+    CSS_CAUSE_EMERGENCY_MODE,       /**< C2K is in emergency mode */
+}css_cause_code_enum;
+
+/** C2K error code */
+typedef enum
+{
+    IRAT_GENERAL_ERROR,                         /**<    IratGeneralError                       */
+    IRAT_UNAUTHORIZED_APN,                      /**<    IratUnauthorizedAPN                    */
+    IRAT_PDN_LIMIT_EXCEEDED,                    /**<    IratPDNLimitExceeded                   */
+    IRAT_NO_PGW_AVAILABLE,                      /**<    IratNoPGWAvailable                     */
+    IRAT_PGW_UNREACHABLE,                       /**<    IratPGWUnreachable                     */
+    IRAT_PGW_REJECT,                            /**<    IratPGWReject                          */
+    IRAT_INSUFFICIENT_PARAMETERS,               /**<    IratInsufficientParameters             */
+    IRAT_RESOURCE_UNAVAILABLE,                  /**<    IratResourceUnavailable                */
+    IRAT_ADMIN_PROHIBITED,                      /**<    IratAdminProhibited                    */
+    IRAT_PDNID_ALREADY_INUSE,                   /**<    IratPDNIDAlreadyInUse                  */
+    IRAT_SUBSCRIPTION_LIMITATION,               /**<    IratSubScriptionLimitation             */
+    IRAT_PDN_CONN_ALREADY_EXIST_FOR_PDN,        /**<    IratPDNConnAlreadyExistForPDN          */
+    IRAT_EMERGENCY_NOT_SUPPORTED,               /**<    IratEmergencyNotSupported              */
+    IRAT_RECONNECT_NOT_ALLOWED,
+                                                /**<    IratReconnectNotAllowed                */
+    IRAT_EAPAKA_FAILURE = 0x80,                 /**<    IratEAPAKAfailure                      */
+    IRAT_RETRY_TMR_THROTTLING,                  /**<    IratRetryTmrThrottling                 */
+    IRAT_NETWORK_NO_RESPONSE,                   /**<    IratNetworkNoResponse                  */
+    IRAT_PDN_ATTACH_ABORT,                      /**<    IratPDNAttachAbort                     */
+    IRAT_PDN_LIMIT_EXCEEDED_IN_UE_SIDE,         /**<    IratPDNLimitExceededInUESide           */
+    IRAT_PDNID_ALREADY_INUSE_IN_UE_SIDE,        /**<    IratPDNIDAlreadyInUseInUESide          */
+    IRAT_INVALID_PDN_ATTACH_REQ,                /**<    IratInvalidPDNAttachReq                */
+    IRAT_PDN_REC_FAILURE,                       /**<    IratPdnRecFailure                      */
+    IRAT_MAIN_CONN_SETUP_FAILURE,               /**<    IratMainConnSetupFailure               */
+    IRAT_BEARER_RESOURCE_UNAVAILABLE,           /**<    IratBearerResourceUnAvailable          */
+    IRAT_OP_ABORT_BY_USER,                      /**<    IratOpAbortByUser                      */
+    IRAT_1XDATA_CONNECTED,                      /**<    Irat1xDataConnected                    */
+    IRAT_EAPAKA_REJECT,                         /**<    IratEAPAKAReject                       */
+    IRAT_LCP_NEGOTIATE_FAILURE,                 /**<    IratLCPNegotiateFailure                */
+    IRAT_TCH_SETUP_FAILURE,                     /**<    IratTchSetupFailure                    */
+    IRAT_NW_NO_RSP_IN_LCP,                      /**<    IratNwNoRspInLCP                       */
+    IRAT_NW_NO_RSP_IN_AUTH,                     /**<    IratNwNoRspInAuth                      */
+    IRAT_1XRTT_IN_CALL,                         /**<    Irat1xRTTInCall                        */
+    IRAT_FREQ_UNSUPPORTED,                      /**<    IratFreqUnSupported                    */
+    IRAT_SECT_NOT_FOUND,                        /**<    IratSectNotFound                       */
+    IRAT_SESSION_NEGO_FAIL,                     /**<    IratSessionNegoFail                    */
+    IRAT_REG_FAIL,                              /**<    IratRegFail                            */
+    IRAT_CSS_REJECT_C2L,                        /**<    MD3 reject C2L MPSR                    */
+    IRAT_SUSPEND_BY_1X_FAIL,                    /**<    IRAT fail by 1x activies SUSPEND       */
+
+    IRAT_NO_ERROR = 0xff                        /**<    IratNoError                            */
+}c2k_irat_result_enum;
+
+/** deactivate css cause */
+typedef enum
+{
+    DEAC_CAUSE_RAT_MODE_NO_C2K = 0,              /* RAT mode or reported rat does not contain C2K */
+    DEAC_CAUSE_MCC_SEARCH = 1 ,                  /* Deactivate C2K for MD1 MCC search */
+    DEAC_CAUSE_HVOLTE_LTE_ONLY_MODE =2,          /* Deactivate C2K because hVoLTE is LTE ONLY mode*/
+    DEAC_CAUSE_IR_TYPE_SEARCH = 3,               /* LWCG mode and need to search LTE */
+    DEAC_CAUSE_ENTER_SLEEP_MODE = 4,             /* GMSS is going to enter sleep mode */
+    DEAC_CAUSE_C2K_TO_GLOBAL = 5,                /* RAT mode is change from C2K only to Global */
+    DEAC_CAUSE_UIM_ERROR = 6,                    /* UIM is not ready */
+    DEAC_CAUSE_3GPP_LIMIT_SERV_FOUND = 7,        /* Deactivate C2K for limited service on 3GPP, only when early control take effect */
+    DEAC_CAUSE_EMC_SEARCH = 8,                   /* Deactivate C2K for limited searching on 3GPP to prevent from preemption RF resource */
+    DEAC_CAUSE_HVOLTE_VOPS_MODE = 9,             /* Deactivate C2K because hVoLTE is VOPS mode*/
+    DEAC_CAUSE_ENTER_SLEEP_FOR_LVI = 10,         /* Deactviate C2K for entering sleep mode under limited virtual idle mode */
+}css_deactivate_cause_enum;
+
+/** MMSS file ID */
+typedef enum
+{
+    FILE_MLPL,                      /**< MMSS file EFmlpl */
+    FILE_MSPL,                      /**< MMSS file EFmspl */
+    FILE_MMSSMODE,                  /**< MMSS file EFmmssmode */
+    FILE_ALL                        /**< MMSS file EFmlpl and EFmspl */
+}css_mmss_updated_file_id_enum;
+
+/** card type */
+enum
+{
+  IRAT_NO_CARD    = 0x00,   /**< no card */
+  IRAT_UIM_CARD   = 0x01,   /**< UIM card */
+  IRAT_SIM_CARD   = 0x02,   /**< SIM card */
+  IRAT_UICC_CARD  = 0x04,   /**< UICC card */
+  IRAT_CSIM_CARD  = 0x10,   /**< CSIM card */
+  IRAT_USIM_CARD  = 0x20,   /**< USIM card */
+  IRAT_ISIM_CARD  = 0x40,   /**< ISIM card */
+  IRAT_UNKNOWN_CARD = 0x80  /**< unknown card */
+};
+
+/** remote sim access option
+   * 0 - MD3 UIM task access local UIM(include non-RUIM configuration),maybe C2K modem will not be switched on
+   * 1 - MD3  UIM task will remote access SIM card through SIM task1 in MD1;
+   * 2 - MD3 UIM task will remote access SIM card through SIM task2 in MD1; */
+typedef enum
+{
+  UIM_IRAT_ACCESS_LOCAL_CARD,   /**< MD3 access local card */
+  UIM_IRAT_ACCESS_REMOTE_SIM1,  /**< MD3 access remote SIM task1 */
+  UIM_IRAT_ACCESS_REMOTE_SIM2,  /**< MD3 access remote SIM task2 */
+  UIM_IRAT_ACCESS_NUM,          /**< number of the access option */
+  UIM_IRAT_ACCESS_INVALID = 0xff /* invalid access option, only for initialisation */
+}uim_access_option_enum;
+
+/** C2K suspend status */
+typedef enum
+{
+    C2K_NORMAL_MODE = 0,
+    C2K_IN_SUSPEND_MODE = 1,
+    C2K_IN_VIRTUAL_SUSPEND_MODE = 2,
+} c2k_suspend_mode_enum;
+
+typedef enum
+{
+    C2K_LTE_CSFB_REQ_TYPE_INVALID    = 0,
+    C2K_LTE_CSFB_REQ_TYPE_NORMAL_CALL_MO,
+    C2K_LTE_CSFB_REQ_TYPE_NORMAL_CALL_MT,
+    C2K_LTE_CSFB_REQ_TYPE_EMERGENCY_CALL,
+    C2K_LTE_CSFB_REQ_TYPE_SILENT_REDIAL_MO,
+    C2K_LTE_CSFB_REQ_TYPE_RESERVED
+} c2k_lte_csfb_req_type_enum;
+
+typedef enum
+{
+    C2K_LTE_CSFB_SUCCESS    = 0,
+    C2K_LTE_CSFB_FAILURE
+} c2k_lte_csfb_result_enum;
+
+typedef enum
+{
+    C2K_LTE_CSFB_CALL_FINISHED = 0,
+    C2K_LTE_CSFB_CALL_TIMEOUT
+} c2k_lte_csfb_stop_req_type_enum;
+
+
+
+/** @} */ /* End of c2k_irat_enumerations group */
+
+typedef struct {
+    kal_uint8 mcc1;
+    kal_uint8 mcc2;
+    kal_uint8 mcc3;
+    kal_uint8 mnc1;
+    kal_uint8 mnc2;
+    kal_uint8 mnc3;
+} lte_c2k_pco_plmn_id_struct;
+
+/** \defgroup c2k_irat_structures C2K_IRAT Structures
+ * \ingroup SigC2kIrat
+ * Structures used in C2K_IRAT interface
+ * @{
+ */
+
+/** This struct defines PDN information
+ */
+typedef struct
+{
+    /** Context identifier (cid). */
+    kal_uint8 context_id;
+
+    /** AT commands defined(set) by user so far. using bitmap */
+    kal_uint8 AT_definition;
+
+    /** Context type identifier (primary/secondary). */
+    pdp_context_type_enum context_type;
+
+    /**
+     * Indicates the associated cid of this context.
+     *
+     * - Initially, primary_context_id would be set to context_id (cid).
+     * - It would be altered when receiving AT+CGDSCONT.
+     *
+     */
+    kal_uint8 primary_context_id;
+
+    /** Type of pdp address. */
+    pdp_addr_type_enum user_defined_pdp_type;
+    pdp_addr_type_enum nw_applied_pdp_type;
+
+    /** Length of pdp address. */
+    pdp_addr_len_enum user_defined_pdp_len;
+    pdp_addr_len_enum nw_applied_pdp_len;
+
+    /** The pdp address itself.
+     *  the former 4 bytes are for IPv4, the latter 16 bytes are for IPv6
+     */
+    kal_uint8 user_defined_pdp_addr[IPV4V6_ADDR_LEN];
+    kal_uint8 nw_applied_pdp_addr[IPV4V6_ADDR_LEN];
+
+    /** User defined APN */
+    kal_uint8 user_defined_apn_len;
+    kal_uint8 user_defined_apn[MAX_APN_LEN];
+
+    /** NW applied APN */
+    kal_uint8 nw_applied_apn_len;
+    kal_uint8 nw_applied_apn[MAX_APN_LEN];
+
+    /** Protocol compression algorithm to be used in SNDCP. */
+    snd_pcomp_algo_enum pcomp_algo;
+
+    /** Data compression algorithm to be used in SNDCP. */
+    snd_dcomp_algo_enum dcomp_algo;
+
+    /**
+     * Store MODIFYs (TFT or QOS) user set before/after activated:
+     * - Cleared only if receiving: ACT_CNF, SEC_ACT_CNF, DEACT_CNF, and DEACT_IND;
+     * - Otherwise, it keeps the MODIFYs info set by user.
+     *
+     *    TCM simply accepts it by returning OK to L4C.
+     * 3. This mod_type only stores user's request. DO NOT store mod_type from SM in MODIFY-CNF/-IND here.
+     * .
+     */
+
+    kal_uint32 binding_id;
+
+    /** Used to know whether the sib is free or in use. */
+    kal_uint8 auth_type;
+    kal_uint8 user_name[TCM_MAX_GPRS_USER_NAME_LEN];
+    kal_uint8 password[TCM_MAX_GPRS_PASSWORD_LEN];
+
+    /** Use +CGPROC to set whether including PCO of requesting DNSv4 in PDP ACT.
+     *  # Note #
+     *  To avoid compatibility-issues in legacy 23G NW, this PCO would be included only if:
+     *  (1) current RAT is 4G (since the PCO is added along with 4G spec.) or
+     *  (2) MSQ uses R8 QOS (i.e. PLMN is on the list or Test mode is ON)
+     *
+     *  See tcm_fill_config_options() for the implementations.
+     */
+    l4c_tcm_activate_pdp_request_ipv4_dns_enum act_pdp_with_pco_req_v4_dns ;
+
+    /** Poying: For IPv6 smartphone, AT+CGPRCO is used to set req_IPv6_DNS flag. */
+    l4c_tcm_activate_pdp_request_ipv6_dns_enum act_pdp_with_pco_req_v6_dns;
+
+    tcm_request_type_enum request_type;
+
+    tcm_p_cscf_discovery_enum p_cscf_discovery;
+    tcm_im_cn_signalling_enum user_defined_im_cn_signalling_flag;
+    /** 24.229, Annex B:
+     *  If the flag is not received, the UE shall consider the PDP context as a general-purpose PDP context.
+     */
+    kal_uint8 initial_attach;
+
+    /** Use to inform Target MD this PDN need to do deact retry (AP deact fail in source MD)*/
+    kal_bool deact_retry;
+
+    /** roaming IP type */
+    pdp_addr_type_enum roaming_ip_type;
+
+    /** the rest inactivity timer time (second), 0 means infinite
+     *  ex: inactivity_timer_time = 3 (180s), timer go for 20s, rest_inactivity_time = 160s
+     */
+    kal_uint32 rest_inactivity_time;
+
+    /** request IPv4 MTU in PCO */
+    lte_c2k_activate_pdp_request_ipv4_mtu_enum act_pdp_with_pco_req_v4_mtu;
+
+    /** VZW requirement : PCO ID of PCO*/
+    kal_uint32 op_pco_id;
+
+    /** VZW requirement : PLMN ID in PCO*/
+    lte_c2k_pco_plmn_id_struct op_pco_plmn_id;
+
+    /* VZW requirement : request MSISDN */
+    kal_bool req_msisdn;
+
+    /* VZW requirement : indicate P-CSCF reselection support */
+    kal_bool pcscf_reselection_support;
+}pdn_info_struct;
+
+typedef struct
+{
+    /** The band class of the target sector */
+    kal_uint8                          band;
+    /** ARFCN of the target sector range 0~2047 */
+    kal_uint16                         channel;
+    /** indicate whether PS is included or not. It should be set to true when rat type is "RESELECTION"*/
+    kal_bool                           pn_include;
+    /** PN of the target reselected sector */
+    kal_uint16                         pn;
+} c2k_rat_info_struct;
+
+typedef struct
+{
+    /** TBD: to be filled */
+    kal_uint8 dummy;
+} lte_rat_info_struct;
+
+/** @} */ /* End of c2k_irat_structures group*/
+
+
+/** \defgroup SigGmssCss GMSS_CSS Signalling Interface
+ * \ingroup SigC2kIrat
+ *
+ * This section defines all the primitives exchanged between the GMSS and CSS modules.
+ *
+ * @{
+ */
+
+/** CSS MCC Search Request.
+ *  This primitive is sent from GMSS to CSS to start an MCC search
+ *  Message is MSG_ID_GMSS_CSS_MCC_SEARCH_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** PS system type */
+    irat_system_type_enum               sys_type;
+
+    /** notify CSS that if it is hVoLTE LTE only mode, stop CSS CS service after MCC search */
+    kal_bool is_LTE_only_mode;
+
+    /** quick search or not */
+    kal_bool                            is_quick_search;
+
+    /** stored list search or not */
+    kal_bool                            is_stored_search;
+
+}gmss_css_mcc_search_req_struct;
+
+/** CSS Elevator Mode Request.
+ *  This primitive is sent from GMSS to CSS to inform CSS elevator mode
+ *  Message is MSG_ID_GMSS_CSS_ELEVATOR_MODE_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR    
+	/**  elevator ode */
+    elevator_mode_enum           elevator_mode;
+}gmss_css_elevator_mode_req_struct;
+
+/** CSS MCC Search Confirm.
+ *  This primitive is sent from CSS to GMSS to confirm an MCC search
+ *  Message is MSG_ID_GMSS_CSS_MCC_SEARCH_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR    
+    /**  elevator Mode */
+    elevator_mode_enum           elevator_mode;
+}gmss_css_elevator_mode_ind_struct;
+
+
+/** CSS MCC Search Confirm.
+ *  This primitive is sent from CSS to GMSS to confirm an MCC search
+ *  Message is MSG_ID_GMSS_CSS_MCC_SEARCH_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /* trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** result of MCC search */
+    kal_bool                        result;
+    /** cause of failure */
+    css_cause_code_enum             css_cause;
+    /** MCC value, avaiable only when result is KAL_TRUE */
+    kal_uint8                       mcc1;
+    /** MCC value, avaiable only when result is KAL_TRUE */
+    kal_uint8                       mcc2;
+    /** MCC value, avaiable only when result is KAL_TRUE */
+    kal_uint8                       mcc3;
+}gmss_css_mcc_search_cnf_struct;
+
+/** CSS System Acquire Request.
+ *  This primitive is sent from GMSS to CSS to start a system accquire
+ *  Message is MSG_ID_GMSS_CSS_SYS_ACQUIRE_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /* trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** PS system type */
+    irat_system_type_enum           sys_type;
+
+    /** priority class required by GMSS */
+    irat_priority_class_enum        prio_class;
+
+    /** MSPL 1x to EVDO reselect priority class */
+    irat_priority_class_enum        c2k_1x_to_evdo_prio_class;
+
+}gmss_css_sys_acquire_req_struct;
+
+/** CSS System Accquire Confirm.
+ *  This primitive is sent from CSS to GMSS to confirm a system accquire
+ *  Message is MSG_ID_GMSS_CSS_SYS_ACQUIRE_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /* trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** result of system acquire */
+    kal_bool                        result;
+    /** cause of failure */
+    css_cause_code_enum             css_cause;
+    /** PS system type */
+    irat_system_type_enum           sys_type;
+    /** priority class required by GMSS */
+    irat_priority_class_enum        prio_class;
+}gmss_css_sys_acquire_cnf_struct;
+
+/** CSS CS Register Request.
+ *  This primitive is sent from GMSS to CSS to start a CS Register
+ *  Message is MSG_ID_GMSS_CSS_CS_REG_REQ.
+ *  this message carries no buffer data, comment out for MD3 compile, MD1 need define it locally
+ */
+typedef struct
+{
+     /** ILM specific header. */
+     LOCAL_PARA_HDR
+
+     /* trx_id between GMSS and MD3*/
+     kal_uint8 trx_id;
+
+     /** mmss search feature. */
+     mmss_search_type_enum   mmss_search_type;
+
+     /** priority class to register required by GMSS */
+     irat_priority_class_enum        prio_class;
+
+     /**< 1x MMSS list */
+     mmss_3gpp2_list_struct  mmss_list;
+
+     /** indicate the mode change due to VoLTE call fail then silent redial 1xRTT */
+     kal_bool  is_for_silent_redial;
+
+     /** indicate the cause of CS_REG_REQ */
+     cs_reg_cause_enum  cause;
+
+}gmss_css_cs_reg_req_struct;
+
+
+/** CSS CS Register Confirm.
+ *  This primitive is sent from CSS to GMSS to confirm a CS Register
+ *  Message is MSG_ID_GMSS_CSS_CS_REG_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /* trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** result of system acquire */
+    kal_bool                        result;
+
+    /** cause of failure */
+    css_cause_code_enum             css_cause;
+
+    /** registered system required by GMSS */
+    irat_priority_class_enum        prio_class;
+}gmss_css_cs_reg_cnf_struct;
+
+
+/** CSS PS Register Request.
+ *  This primitive is sent from GMSS to CSS to start a PS Register
+ *  Message is MSG_ID_GMSS_CSS_PS_REG_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /* trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** PS system type */
+    irat_system_type_enum           sys_type;
+
+    /** priority class to register required by GMSS */
+    irat_priority_class_enum        prio_class;
+
+    /** mmss search feature. */
+    mmss_search_type_enum           mmss_search_type;
+
+    /** MRU list or RAL list */
+    mmss_3gpp2_list_struct          mmss_list;
+
+    /** MSPL 1x to EVDO reselect priority class */
+    irat_priority_class_enum        c2k_1x_to_evdo_prio_class;
+
+    /** range from 0~255, identifier for css to recognize is the same round of search. Return cache result if it's the same round */
+    kal_uint8                       mspl_search_cycle_id;
+}gmss_css_ps_reg_req_struct;
+
+/** CSS PS Register Confirm.
+ *  This primitive is sent from CSS to GMSS to confirm a PS Register
+ *  Message is MSG_ID_GMSS_CSS_PS_REG_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /* trx_id between GMSS and MD3*/
+    kal_uint8 trx_id;
+
+    /** result of system acquire */
+    kal_bool                        result;
+    /** cause of failure */
+    css_cause_code_enum             css_cause;
+    /** PS system type */
+    irat_ps_type_enum               ps_type;
+    /** priority class to register required by GMSS */
+    irat_priority_class_enum        prio_class;
+}gmss_css_ps_reg_cnf_struct;
+
+/** CSS Deactivate Request.
+ *  This primitive is sent from GMSS to CSS to make C2K modem enter deep sleep
+ *  Message is MSG_ID_GMSS_CSS_DEACTIVATE_REQ.
+ *  this message carries no buffer data, comment out for MD3 compile, MD1 need define it locally
+*/
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** notify CSS deactivate cause */
+    css_deactivate_cause_enum  css_deactive_cause;
+
+   /** notify CSS if to deactivate C2K CS service */
+   kal_bool is_to_deactivate_c2k_cs_service;
+
+}gmss_css_deactivate_req_struct;
+
+
+/** CSS Deactivate Confirm.
+ *  This primitive is sent from CSS to GMSS to confirm a deactivate
+ *  Message is MSG_ID_GMSS_CSS_DEACTIVATE_CNF.
+ *  this message carries no buffer data, comment out for MD3 compile, MD1 need define it locally
+ *  typedef struct
+ *  {
+ *    LOCAL_PARA_HDR
+ *
+ *  }gmss_css_deactivate_cnf_struct;
+*/
+
+/** CSS RAT Change Request.
+ *  This primitive is sent from GMSS to CSS to start a RAT change
+ *  Message is MSG_ID_GMSS_CSS_RAT_CHANGE_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** RAT change type */
+    irat_type_enum      irat_type;
+}gmss_css_rat_change_req_struct;
+
+/** CSS 1x voice call status Indication.
+ *  This primitive is sent from CSS to GMSS to indicate C2K 1X enter or exit a voice call
+ *  Message is GMSS_CSS_1X_CONN_STATUS_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** C2K 1x voice call enter or exit */
+    kal_bool            conn_start;
+
+    /** indicate CS voice call connection status or not */
+    kal_bool            is_cs_conn;
+
+}gmss_css_1x_conn_status_ind_struct;
+
+
+/** CSS System Lost Indication.
+ *  This primitive is sent from CSS to GMSS to indication a C2K system lost indication
+ *  Message is MSG_ID_GMSS_CSS_SYS_LOST_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** PS system type */
+    irat_system_type_enum               sys_type;
+}gmss_css_sys_lost_ind_struct;
+
+/** CSS System Recovery Indication.
+ *  This primitive is sent from CSS to GMSS to indication a C2K system has recovered
+ *  Message is MSG_ID_GMSS_CSS_SYS_RECOVERY_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** PS system type */
+    irat_system_type_enum               sys_type;
+    /** priority class to register required by GMSS */
+    irat_priority_class_enum            prio_class;
+}gmss_css_sys_recovery_ind_struct;
+
+/** CSS Ready Indication.
+ *  This primitive is sent from CSS to GMSS that after reading PRL, CSS is ready and GMSS can start running the algo now
+ *  Message is MSG_ID_GMSS_CSS_SYS_READY_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** CSIM/UIM IMSI MCC/MNC */
+    kal_uint8 mcc[3];     // e.g. 0x34 0x36 0x30
+    kal_uint8 mnc[3];
+}gmss_css_ready_ind_struct;
+
+/** CSS MMSS File Update Indication.
+ *  This primitive is sent from CSS to GMSS to notify MMSS file has been updated
+ *  Message is MSG_ID_GMSS_CSS_MMSS_FILE_UPDATE_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** file ID updated by OTA */
+    css_mmss_updated_file_id_enum   file_id;
+}gmss_css_mmss_file_update_ind_struct;
+
+/** CSS PS Change Indication.
+ *  This primitive is sent from CSS to GMSS to notify PS system has been changed
+ *  Message is MSG_ID_GMSS_CSS_PS_CHANGE_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** PS system type */
+    irat_ps_type_enum               ps_type;
+    /** priority class to register required by GMSS */
+    irat_priority_class_enum        prio_class;
+}gmss_css_ps_change_ind_struct;
+
+/** CSS PS service entered or exit connected state.
+ *  This primitive is sent from CSS to GMSS to indicate C2K PS enter or exit connected state
+ *  Message is MSG_ID_GMSS_CSS_PS_CONN_STATUS_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+    /** PS system type */
+    irat_ps_type_enum               ps_type;
+    /** C2K ps service enter or exit */
+    kal_bool                        conn_start;
+}gmss_css_ps_conn_status_ind_struct;
+
+/** CSS MCC Change Indication.
+ *  This primitive is sent from CSS to GMSS to notify MCC has been changed
+ *  Message is MSG_ID_GMSS_CSS_MCC_CHANGE_IND.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** MCC value, avaiable only when result is KAL_TRUE */
+    kal_uint8                       mcc1;
+    /** MCC value, avaiable only when result is KAL_TRUE */
+    kal_uint8                       mcc2;
+    /** MCC value, avaiable only when result is KAL_TRUE */
+    kal_uint8                       mcc3;
+}gmss_css_mcc_change_ind_struct;
+
+/** CSS suspend status Indication.
+ *  This primitive is sent from CSS to GMSS to notify C2K modem SUSPEND status has changed
+ *  Message is MSG_ID_GMSS_CSS_SUSPEND_STATUS_IND.
+ */
+typedef struct {
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** C2K modem 1x suspend status */
+    c2k_suspend_mode_enum c2k_1x_status;
+
+    /** C2K modem hrpd suspend status */
+    c2k_suspend_mode_enum c2k_hrpd_status;
+
+} gmss_css_suspend_status_ind_struct;
+
+/** Active SIM ifno request.
+ *  This primitive is sent from GMSS to CSS to notify the current active SIM for PS service
+ *  Message is MSG_ID_GMSS_CSS_ACTIVE_SIM_INFO_REQ
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** Active SIM for PS service */
+    act_sim_enum  active_sim;
+} gmss_css_active_sim_info_req_struct;
+
+/** CSS not ready indication.
+ *  This primitive is sent from CSS to GMSS to notify CSS is not ready with provided cause
+ *  Message is MSG_ID_GMSS_CSS_NOT_READY_IND
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** Cause of CSS not ready */
+    css_cause_code_enum css_cause;
+} gmss_css_not_ready_ind_struct;
+
+/** sync MRU info request.
+ *  This primitive is sent from GMSS to CSS to sync MMSS LIST
+ *  Message is MSG_ID_GMSS_CSS_MMSS_LIST_SYNC_REQ
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /**< indicate the first MRU is C2K or not */
+    kal_bool    c2k_first;
+
+    /**< MMSS list */
+    mmss_3gpp2_list_struct    mmss_list;
+
+    /** Source protocol stack of MD1. Start from 0 */
+    kal_uint8 sim_interface;
+
+}gmss_css_mmss_list_sync_req_struct;
+
+
+/** MRU info indication.
+ *  This primitive is sent from CSS to GMSS to notify last camping RAT/band/frequency
+ *  Message is MSG_ID_GMSS_CSS_CAMPING_INFO_IND
+ *  NOTE: MD3 will report this primitive even in CDMA only mode
+ */
+typedef struct {
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+   /**< the last camping record */
+   mmss_cdma_rec_type        new_rec;
+
+   /**< indicate the system record registered */
+   kal_bool                  is_registered;
+
+} gmss_css_camping_info_ind_struct;
+
+
+/** Set RAT mode request
+ *  This primitive is sent from GMSS to CSS to notify current RAT mode & reported RAT settings
+ *  Message is MSG_ID_GMSS_CSS_SET_RAT_MODE_REQ
+ */
+typedef struct {
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** Current RAT mode */
+    rat_enum rat_mode;
+
+    /** Reported RAT derived from MSPL */
+    rat_enum reported_rat;
+
+    /** Available when rat_mode = RAT_C2K (CDMA only) */
+    irat_system_type_enum c2k_mode;
+
+    /** Source protocol stack of MD1. Start from 0 */
+    kal_uint8 sim_interface;
+
+} gmss_css_set_rat_mode_req_struct;
+
+/** 3GPP normal service request
+ *  This primitive is sent from GMSS to CSS to notify LTE is in service
+ *  Message is MSG_ID_GMSS_CSS_3GPP_NORMAL_SERVICE_REQ
+ */
+typedef struct {
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+} gmss_css_3gpp_normal_service_req_struct;
+
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** transaction id */
+    kal_uint8 susp_id;
+
+}gmss_css_cs_suspend_ind_struct;
+
+
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** transaction id */
+    kal_uint8 susp_id;
+
+}gmss_css_cs_resume_req_struct;
+
+
+/** @} */ /* End of SigGmssCss group*/
+
+/** \defgroup SigL4cCpsdm L4C_VAL Signalling Interface
+ * \ingroup SigC2kIrat
+ *
+ * This section defines all the primitives exchanged between the L4C and VAL(CPSDM) modules.
+ *
+ * @{
+ */
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/** LTE to C2K Initial Attach PDN Query Confirm
+ *  This primitive is sent from VAL to L4C to respond the query of initial attach PDN.
+ *  Message is MSG_ID_LTE_C2K_IA_PDN_QUERY_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** used to indicate there's IA PDN in C2K or not */
+    kal_bool exist_ia_pdn;
+
+    /** IA PDN information if exist_ia_pdn == KAL_TRUE */
+    pdn_info_struct ia_pdn;        /**< Initial attach PDN information */
+}lte_c2k_ia_pdn_query_cnf_struct;
+
+/** LTE to C2K PDN context transfer reqeust
+ *  This primitive is sent from MD1_L4C to MD3_VAL to transfer PDN contexts
+ *  used in LWCG mode and AT+EPDNCTRANS=1 (Support context transfer in LWCG mode)
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    kal_uint8 pdn_num; /**< PDN No. */
+    pdn_info_struct pdn[MAX_PDN_NUM]; /**< PDN information */
+}lte_c2k_pdn_context_transfer_req_struct;
+
+/** C2K to LTE PDN context transfer reqeust
+ *  This primitive is sent from MD3_VAL to MD1_L4C to transfer PDN contexts
+ *  used in LWCG mode and AT+EPDNCTRANS=1 (Support context transfer in LWCG mode)
+ */
+typedef struct
+{
+
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    kal_uint8 pdn_num;                 /**< PDN No. */
+    pdn_info_struct pdn[MAX_PDN_NUM];        /**< PDN information */
+}c2k_lte_pdn_context_transfer_req_struct;
+
+/** LTE to C2K RAT Change Request.
+ *  This primitive is sent from L4C to VAL to start an RAT change.
+ *  Message is MSG_ID_LTE_C2K_RAT_CHANGE_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    kal_uint8                          tid;                     /**< transaction ID */
+    irat_type_enum                     irat_type;               /**< RAT change type */
+    kal_uint8                          pdn_num;                 /**< PDN No. */
+    pdn_info_struct                    pdn[MAX_PDN_NUM];        /**< PDN information */
+    eas_cas_activate_ccell_req_struct  as_irat_info;            /* C2K SRLTE AS IRAT info */
+}lte_c2k_rat_change_req_struct;
+
+/** LTE to C2K RAT Change Confirm.
+ *  This primitive is sent from VAL to L4C to confirm an RAT change.
+ *  Message is MSG_ID_LTE_C2K_RAT_CHANGE_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** transaction ID */
+    kal_uint8                          tid;
+    /** KAL_TRUE: success; KAL_FALSE: failure */
+    kal_bool                           is_irat_success;
+    /** in case of IRAT failure, indicate if original RAT should perform PDN resync operation
+     *  KAL_TRUE:  yes
+     *  KAL_FALSE: no, set as default value
+     *  avaiable only when status is 1
+     */
+    kal_bool                           resync;
+    /** C2K error code */
+    c2k_irat_result_enum               err_code;
+    /** eHRPD fallback enum */
+    irat_ps_type_enum                  fallback_target_rat;
+    /**< RAT change type */
+    irat_type_enum                     irat_type;
+    eas_cas_activate_ccell_cnf_struct  as_irat_info;     /* C2K SRLTE AS IRAT info */
+}lte_c2k_rat_change_cnf_struct;
+
+/** C2K to LTE RAT Change Request.
+ *  This primitive is sent from VAL to L4C to confirm an RAT change.
+ *  Message is MSG_ID_C2K_LTE_RAT_CHANGE_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    kal_uint8                          tid;                     /**< transaction ID */
+    irat_type_enum                     irat_type;               /**< RAT change type */
+    irat_ps_type_enum                  src_rat;                 /**< Source RAT type */
+    kal_uint8                          pdn_num;                 /**< PDN No. */
+    pdn_info_struct                    pdn[MAX_PDN_NUM];        /**< PDN information */
+    cas_eas_activate_ecell_req_struct  as_irat_info;            /* C2K SRLTE AS IRAT info */
+}c2k_lte_rat_change_req_struct;
+
+/** C2K to LTE RAT Change Confirm.
+ *  This primitive is sent from L4C to VAL to confirm an RAT change.
+ *  Message is MSG_ID_C2K_LTE_RAT_CHANGE_CNF.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+
+    /** transaction ID */
+    kal_uint8                          tid;
+    /** KAL_TRUE: success; KAL_FALSE: failure */
+    kal_bool                           is_irat_success;
+    /** in case of IRAT failure, indicate if original RAT should perform PDN resync operation
+     *  KAL_TRUE:  yes
+     *  KAL_FALSE: no, set as default value
+     *  avaiable only when status is 1
+     */
+    kal_bool                           resync;
+    /** LTE error code */
+    kal_uint8                          err_code;
+    cas_eas_activate_ecell_cnf_struct  as_irat_info;      /* C2K SRLTE AS IRAT info */
+}c2k_lte_rat_change_cnf_struct;
+
+/** @} */ /* End of SigL4cCpsdm group*/
+
+/** \defgroup SigRacCpsdm RAC_VAL Signalling Interface
+ * \ingroup SigC2kIrat
+ *
+ * This section defines all the primitives exchanged between the RAC and VAL(CPSDM) modules.
+ *
+ * @{
+ */
+
+/** VAL to RAC RAT Change Start Request.
+ *  This primitive is sent from VAL to RAC to notify an RAT change has been started
+ *  Message is MSG_ID_VAL_RAC_RAT_CHANGE_START_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+    irat_type_enum                  irat_type;               /**< RAT change type */
+}val_rac_rat_change_start_req_struct;
+
+/** VAL to RAC RAT Change Finish Request.
+ *  This primitive is sent from VAL to RAC to notify an RAT change has been finished
+ *  Message is MSG_ID_VAL_RAC_RAT_CHANGE_FINISH_REQ.
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+    irat_type_enum                  irat_type;               /**< RAT change type */
+    kal_bool                        result;                  /**< RAT change result. TRUE: success; FALSE: failure */
+    c2k_irat_result_enum            err_code;
+}val_rac_rat_change_finish_req_struct;
+
+
+typedef struct
+{
+        /** ILM specific header. */
+    LOCAL_PARA_HDR
+     rat_enum rat_mode;
+     rat_enum reported_rat;
+     irat_system_type_enum c2k_mode;
+     kal_uint8 protocol_id;
+
+}rac_val_set_rat_mode_req_struct;
+
+
+typedef struct
+{
+        /** ILM specific header. */
+    LOCAL_PARA_HDR
+     rat_enum rat_mode;
+     rat_enum reported_rat;
+     irat_system_type_enum c2k_mode;
+     kal_uint8 protocol_id;
+}rac_val_init_req_struct;
+
+
+
+typedef enum
+{
+    CVAL_NO_STATUS = 1,
+    CVAL_PROC_STARTED,
+    CVAL_PROC_SUCCESSFUL,
+    CVAL_PROC_FAILED,
+    CVAL_PROC_REJECTED,
+    CVAL_PROC_NEED_RETRY
+}cval_proc_status_enum;
+
+
+typedef struct
+{
+        /** ILM specific header. */
+    LOCAL_PARA_HDR
+    cval_proc_status_enum status;
+}rac_val_set_rat_mode_cnf_struct;
+
+
+/** @} */ /* End of SigRacCpsdm group*/
+
+/** MD3 debug trace indication
+ *  This primitive is sent from MD3 to MD1 for debugging trace
+ *  Message is MSG_ID_MD3_DEBUG_TRACE_IND
+ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+    kal_uint8                       debug_trace[MAX_MD3_DEBUG_TRACE_LEN];               /**< Debug trace */
+} md3_debug_trace_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   earfcn_num;                                  /**< Number of EARFCN to be passed to EAS */
+    EARFCN      earfcn[MAX_NUM_OF_EARFCN];                   /**< EARFCN list to be passed to EAS */
+} clc_eas_earfcn_list_update_req_struct;
+
+#if 1
+
+/* MSG_ID_GMSS_CSS_SIM_PLMN_INFO_IND local param Structure.
+** Shall be the same as gmss_nwsel_plmn_info_ind_struct
+*/
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_bool              is_sim_ready;
+    kal_uint8             trx_id;
+
+   /* HOME+EHOME PLMN */
+    kal_bool                        is_remaining_ehplmn;
+    kal_uint16                      num_of_ehplmn;
+    gmss_plmn_id_rat_struct         ehplmn[PLMN_INFO_MAX_NUM_HPLMN];
+    /* If num_of_ehplmn > MAX_NUM_HPLMN, fill MAX_NUM_HPLMN at most
+     * num_of_ehplmn will be the number in this message.
+     * is_remaining_ehplmn indicates the last ehplmn or not.
+     */
+
+   /* PREFER PLMN */
+    kal_bool                        is_remaining_uplmn;
+    kal_uint16                      num_of_uplmn;
+    gmss_plmn_id_rat_struct         uplmn[NWSEL_MAX_NUM_PLMNS];
+    /* If num_of_uplmn > 32(NWSEL_MAX_NUM_PLMNS), fill NWSEL_MAX_NUM_PLMNS PLMN at most.
+     * num_of_uplmn will be the number in this message.
+     * is_remaining_uplmn indicates the last uplmn or not.
+     */
+
+    kal_bool                        is_remaining_oplmn;
+    kal_uint16                      num_of_oplmn;
+    gmss_plmn_id_rat_struct         oplmn[NWSEL_MAX_NUM_PLMNS];
+    /* If num_of_oplmn > 32(NWSEL_MAX_NUM_PLMNS), fill NWSEL_MAX_NUM_PLMNS PLMN at most.
+     * num_of_oplmn will be the number in this message.
+     * is_remaining_oplmn indicates the last oplmn or not.
+     */
+
+} gmss_css_sim_plmn_info_ind_struct;
+
+/* MSG_ID_GMSS_CSS_SIM_PLMN_INFO_RSP local param Structure.
+** Shall be the same as gmss_nwsel_plmn_info_rsp_struct
+*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8  trx_id;
+    kal_uint16 last_idx_of_ehplmn;
+    kal_uint16 last_idx_of_oplmn;
+    kal_uint16 last_idx_of_uplmn;
+} gmss_css_sim_plmn_info_rsp_struct;
+
+
+/* MSG_ID_GMSS_CSS_CELL_INFO_IND local param Structure.
+** Shall be the same as gmss_nwsel_plmn_info_rsp_struct
+*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    irat_ps_type_enum  access_type;    // PS register status
+    kal_uint16         sid;
+    kal_uint16         nid;
+    kal_uint8          pzid;
+    kal_uint16         base_id;
+    kal_uint32         sector_id[4];
+    kal_uint8          subnet_length;
+    kal_uint8          carrier_id[6];
+    sys_type_enum      sys_type;       // only 1x or HRPD is valid
+} gmss_css_cell_info_ind_struct;
+
+/* MSG_ID_GMSS_CSS_C2K_SERVICE_IND local param Structure.
+** Shall be the same as rac_gmss_c2k_service_ind_struct
+*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool            is_1x_service_available; /** indicate if service_domain is available */
+}gmss_css_c2k_service_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool            is_invalid;
+    kal_uint8 carrier_id[6];    
+}gmss_css_illegal_me_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    //kal_uint8                   req_id; //MD3 can only allow one 1XCSFB session
+    c2k_lte_csfb_req_type_enum  csfb_req_type;
+}c2k_lte_csfb_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    //kal_uint8                   req_id; //MD3 can only allow one 1XCSFB session
+    c2k_lte_csfb_result_enum    result;
+} c2k_lte_csfb_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    c2k_lte_csfb_stop_req_type_enum    cause;
+}c2k_lte_csfb_stop_req_struct;
+
+#endif
+
+#if 0
+/* under construction !*/
+#ifdef MTK_PLT_ON_PC_IT
+/* under construction !*/
+#endif
+#endif
+
+/*[20150629 Ali] SRLTE: for C2K_LL1 use */
+
+#define C2K_SESSION_IN_PERIOD          8 /* align gsm, LTE only need 6 for gp0/gp1 */
+
+// GAP margin define
+
+#define RF_MARGIN_C2K_IDLE_C2K_HEAD_USC                   267     // C2K RF OFF in C2K_IDLE   [To be decided by CL1]
+#define RF_MARGIN_C2K_IDLE_C2K_TAIL_USC                   117     // C2K RF ON  in C2K_IDLE [To be decided by CL1]
+#define RF_MARGIN_C2K_IDLE_EUTRA_HEAD_SAMPLES             0     // LTE RF ON in C2K_IDLE
+#define RF_MARGIN_C2K_IDLE_EUTRA_TAIL_SAMPLES             3072  // LTE RF OFF in C2K_IDLE
+#define RF_MARGIN_C2K_IDLE_GSM_HEAD_SAMPLES               0       // GSM RF ON in C2K_IDLE
+#define RF_MARGIN_C2K_IDLE_GSM_TAIL_SAMPLES               21667   // GSM RF OFF in C2K_IDLE (10ms)
+#define RF_MARGIN_C2K_IDLE_FDD_HEAD_SAMPLES               0       // UMTS_FDD RF ON in C2K_IDLE
+#define RF_MARGIN_C2K_IDLE_FDD_TAIL_SAMPLES               307200  // UMTS_FDD RF OFF in C2K_IDLE (10ms)
+#define RF_MARGIN_C2K_IDLE_NGRAN_HEAD_NSAMPLES            0     // NR RF ON in C2K_IDLE
+#define RF_MARGIN_C2K_IDLE_NGRAN_TAIL_NSAMPLES            24576  // NR RF OFF in C2K_IDLE
+
+// TODO: [20151119 Ali] LTE MMO feature.
+#define RF_MARGIN_C2K_HRPD_CONNECT_C2K_HEAD_USC           267     // C2K RF OFF in C2K_HRPD_CONNECT   [To be decided by CL1]
+#define RF_MARGIN_C2K_HRPD_CONNECT_C2K_TAIL_USC           117     // C2K RF ON  in C2K_HRPD_CONNECT  [To be decided by CL1]
+#define RF_MARGIN_C2K_HRPD_CONNECT_EUTRA_HEAD_SAMPLES     0       // LTE RF ON in C2K_HRPD_CONNECT
+#define RF_MARGIN_C2K_HRPD_CONNECT_EUTRA_TAIL_SAMPLES     3072    // LTE RF OFF in C2K_HRPD_CONNECT
+#define RF_MARGIN_C2K_HRPD_CONNECT_NGRAN_HEAD_NSAMPLES    0       // NRRF ON in C2K_HRPD_CONNECT
+#define RF_MARGIN_C2K_HRPD_CONNECT_NGRAN_TAIL_NSAMPLES    24576    // NR RF OFF in C2K_HRPD_CONNECT
+
+#define RF_MARGIN_C2K_1XRTT_CONNECT_C2K_HEAD_USC          267     // C2K RF OFF in C2K_1XRTT_CONNECT   [To be decided by CL1]
+#define RF_MARGIN_C2K_1XRTT_CONNECT_C2K_TAIL_USC          117     // C2K RF ON  in C2K_1XRTT_CONNECT  [To be decided by CL1]
+#define RF_MARGIN_C2K_1XRTT_CONNECT_EUTRA_HEAD_SAMPLES    0       // LTE RF ON in C2K_1XRTT_CONNECT
+#define RF_MARGIN_C2K_1XRTT_CONNECT_EUTRA_TAIL_SAMPLES    3072    // LTE RF OFF in C2K_1XRTT_CONNECT
+#define RF_MARGIN_C2K_1XRTT_CONNECT_NGRAN_HEAD_NSAMPLES    0       // LTE RF ON in C2K_1XRTT_CONNECT
+#define RF_MARGIN_C2K_1XRTT_CONNECT_NGRAN_TAIL_NSAMPLES    24576    // LTE RF OFF in C2K_1XRTT_CONNECT
+
+
+#define RF_MARGIN_C2K_AUTO_GAP_C2K_HEAD_USC               267     // C2K RF ON when C2K request for auto_gap in LTE_CONNECT [To be decided by CL1]
+#define RF_MARGIN_C2K_AUTO_GAP_C2K_TAIL_USC               117     // C2K RF OFF when C2K request for auto_gap in LTE_CONNECT [To be decided by CL1]
+
+
+#define RF_MARGIN_C2K_AUTO_MORE_GAP_C2K_HEAD_USC          0  // no need now.
+
+#define RF_MARGIN_C2K_AUTO_GAP_EUTRAN_HEAD_SAMPLES        3072  //3072
+#define RF_MARGIN_C2K_AUTO_GAP_EUTRAN_TAIL_SAMPLES        11059 //(180us = 11059, 200us = 12288)//11059
+
+#define RF_MARGIN_C2K_AUTO_GAP_NGRAN_HEAD_NSAMPLES        24576  //3072
+#define RF_MARGIN_C2K_AUTO_GAP_NGRAN_TAIL_NSAMPLES        88472 //(180us = 11059, 200us = 12288)//11059
+
+#define RF_MARGIN_C2K_AUTO_GAP_GSM_HEAD_EBITS             40
+#if defined (ESIM_BUILD_CONFIG)
+#define RF_MARGIN_C2K_AUTO_GAP_GSM_TAIL_EBITS             462   //use MT6280RF as the upper bound
+#else
+#define RF_MARGIN_C2K_AUTO_GAP_GSM_TAIL_EBITS             376
+#endif
+
+#define RF_MARGIN_C2K_AUTO_GAP_FDD_HEAD_ECHIP            10846
+#define RF_MARGIN_C2K_AUTO_GAP_FDD_TAIL_ECHIP            18998
+
+#define RF_MARGIN_C2K_AUTO_GAP_TDD_HEAD_ECHIP             1250
+#define RF_MARGIN_C2K_AUTO_GAP_TDD_TAIL_ECHIP             104
+
+#define RF_MARGIN_C2K_AUTO_GAP_NGRAN_HEAD_NSAMPLES        24576
+#define RF_MARGIN_C2K_AUTO_GAP_NGRAN_TAIL_NSAMPLES        88472
+
+#define C2K_IDLE_GAP_MIN_LENGTH                           (20000)   // 20ms = 20000 usc
+
+#define RF_MARGIN_GSM_IDLE_C2K_HEAD_USC                   267   // C2K RF ON in LTE_IDLE   [To be decided by CL1]
+#define RF_MARGIN_GSM_IDLE_C2K_TAIL_USC                   10000 // C2K RF OFF in LTE_IDLE   [To be decided by CL1]
+
+#define RF_MARGIN_FDD_IDLE_C2K_HEAD_USC                   267   // C2K RF ON in LTE_IDLE   [To be decided by CL1]
+#define RF_MARGIN_FDD_IDLE_C2K_TAIL_USC                   10000 // C2K RF OFF in LTE_IDLE   [To be decided by CL1]
+
+#define RF_MARGIN_EUTRA_IDLE_C2K_HEAD_USC                 267   // C2K RF ON in LTE_IDLE   [To be decided by CL1]
+#define RF_MARGIN_EUTRA_IDLE_C2K_TAIL_USC                 10000 // C2K RF OFF in LTE_IDLE   [To be decided by CL1]         //[20150827 Ali] ALPS02276528: set as 10ms to avoid RF conflict.
+#define RF_MARGIN_EUTRA_CONNECT_C2K_HEAD_USC              267   // C2K RF ON in LTE_CONNECT   [To be decided by CL1]
+#define RF_MARGIN_EUTRA_CONNECT_C2K_TAIL_USC              117   // C2K RF OFF in LTE_CONNECT   [To be decided by CL1]
+#define RF_MARGIN_EUTRA_CONNECT_DRX_C2K_HEAD_USC          267   // C2K RF ON in LTE_CONNECT_DRX   [To be decided by CL1]
+#define RF_MARGIN_EUTRA_CONNECT_DRX_C2K_TAIL_USC          10000 // C2K RF OFF in LTE_CONNECT_DRX   [To be decided by CL1]  //[20150827 Ali] ALPS02276528: set as 10ms to avoid RF conflict.
+
+#define RF_MARGIN_NGRAN_IDLE_C2K_HEAD_USC                 267   // C2K RF ON in LTE_IDLE   [To be decided by CL1]
+#define RF_MARGIN_NGRAN_IDLE_C2K_TAIL_USC                 10000 // C2K RF OFF in LTE_IDLE   [To be decided by CL1]         //[20150827 Ali] ALPS02276528: set as 10ms to avoid RF conflict.
+#define RF_MARGIN_NGRAN_CONNECT_C2K_HEAD_USC              267   // C2K RF ON in LTE_CONNECT   [To be decided by CL1]
+#define RF_MARGIN_NGRAN_CONNECT_C2K_TAIL_USC              117   // C2K RF OFF in LTE_CONNECT   [To be decided by CL1]
+#define RF_MARGIN_NGRAN_CONNECT_DRX_C2K_HEAD_USC          267   // C2K RF ON in LTE_CONNECT_DRX   [To be decided by CL1]
+#define RF_MARGIN_NGRAN_CONNECT_DRX_C2K_TAIL_USC          10000 // C2K RF OFF in LTE_CONNECT_DRX   [To be decided by CL1]  //[20150827 Ali] ALPS02276528: set as 10ms to avoid RF conflict.
+
+/*****************************************************************************
+*                                    ENUMERATIONS
+*****************************************************************************/
+
+/*****************************************************************************
+* ENUMERATION
+*   cl1_ll1_rat_status_enum
+*
+* DESCRIPTIONS
+*   Used to identify the status in C2K.
+* NOTE
+*   any modification should sync. with ll1_rat_status_enum
+*****************************************************************************/
+typedef enum
+{
+  CL1_LL1_RAT_FLIGHT =0,
+  CL1_LL1_RAT_STANDBY,
+  CL1_LL1_RAT_ACTIVE,
+  CL1_LL1_RAT_NUM
+} cl1_ll1_rat_status_enum;
+
+/*****************************************************************************
+* ENUMERATION
+*   cl1_specific_gap_ind_status_enum
+*
+* DESCRIPTIONS
+*   The enum indicates the specific gap status of CL1.
+* NOTE
+*
+*****************************************************************************/
+typedef enum
+{
+   CL1_SPECIFIC_GAP_NO_REQ, /* CL1 doesn't ask for long gap service. */
+   CL1_SPECIFIC_GAP_REQ,    /* CL1 asks for long gap service. */
+   CL1_SPECIFIC_GAP_GIVEN   /* CL1 asks for long gap service and the gap has already given to CL1. */
+} cl1_specific_gap_status_enum;
+
+/*****************************************************************************
+*                                    STRUCTURES
+*****************************************************************************/
+/*****************************************************************************
+* STRUCT
+*   c2k_time_struct
+*
+* DESCRIPTIONS
+*   CDMA2000 system timing base
+*
+* PARAMETERS
+*   kal_uint32  - usc (CL1 always sync with current USC)
+*****************************************************************************/
+typedef struct
+{
+  kal_uint32 usc;
+}c2k_time_struct;
+
+/*****************************************************************************
+* STRUCT
+*   c2k_idle_gap_struct
+*
+* DESCRIPTIONS
+*   C2K idle gap structure.
+*
+* PARAMETERS
+*   start_time  - start time of the gap session
+*   length      - length of the gap session (in sub_frame)
+*   is_drx_tick   - KAL_TRUE : First tick in this DRX period
+*                   KAL_FALSE: Not the first free interval in this DRX period
+*****************************************************************************/
+typedef struct
+{
+   c2k_time_struct    start_time;
+   kal_int32          length;
+   kal_bool           is_drx_tick;
+}c2k_idle_gap_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_c2k_standby_gap_struct
+*
+* DESCRIPTIONS
+*   C2K standby gap pattern structure.
+*
+* PARAMETERS
+*   start_time - start time of the gap session
+*   length     - length of the gap session (in echip)
+*****************************************************************************/
+typedef struct
+{
+   c2k_time_struct  start_time;
+   kal_int32            length;
+}ll1_c2k_standby_gap_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_active_measure_status_ind_struct
+*
+* DESCRIPTIONS
+*   CL1 informs LL1 that how many higher priority inter-frequencies in CL1 when high priority search is turned on
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   freq_num      - The number of higher priority inter-freq. in CL1.(0~16)
+*                   When HPS off, the freq_num is equal to zero.
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint8     freq_num;
+}cl1_ll1_active_measure_status_ind_struct;
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_auto_gap_req_struct
+*
+* DESCRIPTIONS
+*   CL1 sends this message to request LL1 that CL1 wants to use the auto gap  from  (time: USC).
+*   CL1 could use this auto gap after getting the successful confirm
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   auto_time  - Start time of auto gap in CL1
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   c2k_time_struct auto_time;
+}cl1_ll1_auto_gap_req_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_gap_pattern_ind_struct
+*
+* DESCRIPTIONS
+*   CL1 sends this message to inform LL1 that the free RF period in CL1 as gap pattern.
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   c2k_current_time  - CL1 current time
+*   c2k_idle_gap      - No matter the length is bigger than zero or not, CL1 should send
+*                       this message and sets is_drx_tick = KAL_TRUE in one DRX period once.
+*   tid               - fill in the tid carried in LL1_XL1_GAP_SERVICE_REQ.
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   c2k_time_struct            cl1_current_time;
+   c2k_idle_gap_struct         idle_gap;
+   kal_uint8                  tid;
+}cl1_ll1_gap_pattern_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_gap_stop_cnf_struct
+*
+* DESCRIPTIONS
+*   CL1 uses this primitive to confirm LL1_CL1_GAP_STOP_REQ when there is no gap usage in C2K.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   current_time  - current time in CL1
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+    c2k_time_struct current_time;
+}cl1_ll1_gap_stop_cnf_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_measure_req_struct
+*
+* DESCRIPTIONS
+*   This message is sent from CL1 to inform LL1 that how many C2K frequencies are required to be
+*   measured and the measurement purposes both in C2K Standby. Note that since C2K will not provide gap pattern in connected mode
+*   when CL1 is active RAT, and thus this message needs not to be sent in C2K Active.
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   meas_purpose_bitmap - bit 0 for measurement, bit 1 for cell search, bit 2 for BCCH
+*   tid                 - tid for lastest meas_req on (should only change when off)
+*   tick_bitmap         - bit 0 for ranking search, bit 1 for priority search
+*   freq_num            - high priority freqencies when HPS ON, measurement frequencies when HPS OFF
+*   t_hps               - basic period of high priority search (25s,60s,70s)
+*   is_period_reset_bmp - bit 0 for rank period, 1 means to reset
+*                       - bit 1 for prio period, 0 means not to reset
+*                       - when freq. num is same as before, ll1 will check this flag to reset period or not
+*                       - KAL_TRUE : reset hps period, KAL_FALSE : doesnt reset hps period.
+*   current_time        - current in CL1
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint8           meas_purpose_bitmap;
+   kal_uint8           tid;
+   kal_uint8           tick_bitmap;
+   kal_uint8           freq_num;
+   kal_uint16          t_hps;
+   kal_int32           is_period_reset_bmp;
+   c2k_time_struct     current_time;
+}cl1_ll1_measure_req_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_cl1_auto_gap_cnf_struct
+*
+* DESCRIPTIONS
+*   LL1 sends this message to confirm CL1 auto gap request.
+*   After receiving this message, CL1 could use required auto gap.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   success       - KAL_TRUE : CL1 could use auto gap to search
+*                   KAL_FALSE: CL1 could not use auto gap to search.
+*                              And GL1 should not request auto gap until AUTO_GAP_AVAILABLE_IND
+*   valid_period  - The length of  autonomous gap allowed by active RAT
+*                   The value is valid when success = KAL_TRUE
+*                   Unit : usc
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_bool  success;
+   kal_int64 valid_period;
+}ll1_cl1_auto_gap_cnf_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_cl1_auto_gap_ind_struct
+*
+* DESCRIPTIONS
+*   LL1 sends this message to inform CL1 stopping using RF in this auto gap from (FRC).
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   auto_time  - Start time of auto gap
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   c2k_time_struct auto_time;
+}ll1_cl1_auto_gap_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_auto_gap_res_struct
+*
+* DESCRIPTIONS
+*   CL1 sends this message to response LL1 that CL1 will/won't use RF from
+*   the start timing of auto gap which is informed by LL1_CL1_auto_GAP_IND.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   success       - KAL_TRUE : CL1 will not use RF from the starting time of LL1_CL1_AUTO_GAP_IND
+*                   KAL_FALSE: CL1 may use RF after starting time of LL1_CL1_AUTO_GAP_IND.
+*   valid_period  - The length of  autonomous gap allowed in CL1
+*                   The value is valid when CL1 is active rat and success = KAL_TRUE
+*                   Unit : frc
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_bool  success;
+   kal_int64 valid_period;
+}cl1_ll1_auto_gap_res_struct;
+
+
+/*****************************************************************************
+* STRUCT
+*   ll1_cl1_expand_gap_pattern_struct
+*
+* DESCRIPTIONS
+*   LL1 expands gap pattern for CL1
+*
+* PARAMETERS
+*   session_num  - Indicate how many gap session
+*   session[]    - Standby gap session.
+*   measure_tid  - Transition id for RANK tick./Valid when active RAT is in DRX mode./And bit 0 in tick_bitmap is "1"
+*   hps_tid      - Transition id for HPS tick./Valid when active RAT is in DRX mode./And bit 1 in tick_bitmap is "1"
+*   tick_bitmap  - Bit 0 : Rank search , Bit 1 : Priority search
+*   is_conn_gap  - KAL_TRUE, Gap Notify when Active RAT In connected Mode
+                   KAL_FALSE, Gap Notify when Active RAT In Idle Mode or Connected DRX Mode 
+*****************************************************************************/
+typedef struct
+{
+   kal_uint8                       session_num;
+   ll1_c2k_standby_gap_struct      session[C2K_SESSION_IN_PERIOD];
+   kal_uint8                       measure_tid;
+   kal_uint8                       hps_tid;
+   kal_uint8                       tick_bitmap;
+   kal_bool                        is_conn_gap; 
+}ll1_cl1_expand_gap_pattern_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_cl1_gap_service_req_struct
+*
+* DESCRIPTIONS
+*   LL1 uses this primitive to enable (disable) active RAT gap service to get (release)
+*   the free radio frequency period in C2K.When LL1 disables active RAT gap service,
+*   it means that C2K could use all RF time already.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   enable        - KAL_TRUE  : request gap service
+*                   KAL_FALSE : stop gap service
+*   tid           - Only valid when enable=TRUE.
+*                   used when active RAT sends GAP_PATTERN_IND, active RAT should
+*                   fill in this tid along with each GAP_PATTERN_IND.
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_bool      enable;
+   kal_uint8     tid;
+}ll1_cl1_gap_service_req_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_gap_stop_req_struct
+*   ll1_cl1_gap_stop_cnf_struct
+*   ll1_cl1_gap_stop_req_struct
+*   cl1_ll1_gap_stop_cnf_struct
+*   ll1_cl1_gap_suspend_req_struct
+*   cl1_ll1_gap_suspend_cnf_struct
+*   cl1_ll1_gap_resume_ind_struct
+*   ll1_cl1_gap_resume_ind_struct
+*   ll1_cl1_auto_gap_stop_ind_struct
+*   cl1_ll1_auto_gap_stop_res_struct
+*   cl1_ll1_auto_gap_end_ind_struct
+*   ll1_cl1_auto_gap_end_ind_struct
+*   ll1_cl1_auto_gap_available_ind_struct
+*   ll1_cl1_auto_gap_unavailable_ind_struct
+*
+* DESCRIPTIONS
+*
+*   cl1_ll1_gap_stop_req_struct
+*     CL1 uses this primitive to inform LL1 to stop all gap usage in standby
+*     RAT when C2K wants to change configuration or other purposes.
+*
+*   ll1_cl1_gap_stop_cnf_struct
+*     LL1 uses this primitive to confirm CL1 that LL1 has already stopped
+*     all gap usages in standby RAT and CL1 could use all RF time.
+*
+*   ll1_cl1_gap_stop_req_struct
+*     LL1 uses this primitive to stop gap usage in C2K when C2K is standby RAT.
+*
+*   cl1_ll1_gap_stop_cnf_struct
+*     CL1 uses this primitive to confirm LL1_CL1_GAP_STOP_REQ when there is no gap usage in C2K.
+*
+*   cl1_ll1_gap_suspend_req_struct
+*     CL1 uses this primitive to temporal suspend gap usage in standby RAT for higher priority
+*     task and doesn't need to give new gap configuration in connection mode when resumed.
+*
+*   ll1_cl1_gap_suspend_cnf_struct
+*     LL1 sends this confirm message to CL1 after all standby RAT gap usage are suspended.
+*
+*   ll1_cl1_gap_suspend_req_struct
+*     LL1 sends this message to CL1 to request that CL1 suspends RF usage immediately.
+*
+*   cl1_ll1_gap_suspend_cnf_struct
+*     CL1 sends this message to confirm LL1 that CL1 will not use gap from
+*     now to receiving resume indicator
+*
+*   cl1_ll1_gap_resume_ind_struct
+*     CL1 sends this message to inform LL1 that CL1 has already finished
+*     higher priority task, and standby RAT could use gap normally.
+*
+*   ll1_cl1_gap_resume_ind_struct
+*     LL1 sends this message to CL1 to resume CL1's gap usage.
+*     After receiving this message, CL1 could  use gap pattern normally.
+*
+*   ll1_cl1_auto_gap_stop_ind_struct
+*     LL1 sends this message to inform CL1 of stopping using RF
+*     during auto gap period.
+*
+*   cl1_ll1_auto_gap_stop_res_struct
+*     CL1 sends this message to response LL1 that CL1 stops
+*     auto gap usage.
+*
+*   cl1_ll1_auto_gap_end_ind_struct
+*     CL1 sends this message to inform LL1 that auto gap usage is finished.
+*
+*   ll1_cl1_auto_gap_end_ind_struct
+*     LL1 sends this message to inform CL1 that auto gap usage is finished.
+*
+*   ll1_cl1_auto_gap_available_ind_struct
+*     LL1 sends this message to inform CL1 that auto gap
+*     is available now. CL1 could request auto gap now.
+*
+*   ll1_cl1_auto_gap_unavailable_ind_struct
+*     LL1 sends this message to inform CL1 that auto gap is unavailable now.
+*     CL1 could not request auto gap now.
+*
+*   this message carries no buffer data, comment out for MD3 compile, MD1 need define it locally
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*****************************************************************************/
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+    kal_uint8      dummy;
+}cl1_ll1_gap_stop_req_struct,
+ ll1_cl1_gap_stop_cnf_struct,
+ ll1_cl1_gap_stop_req_struct,
+ ll1_cl1_gap_suspend_req_struct,
+ cl1_ll1_gap_suspend_cnf_struct,
+ cl1_ll1_gap_resume_ind_struct,
+ ll1_cl1_gap_resume_ind_struct,
+ ll1_cl1_auto_gap_stop_ind_struct,
+ cl1_ll1_auto_gap_stop_res_struct,
+ cl1_ll1_auto_gap_end_ind_struct,
+ ll1_cl1_auto_gap_end_ind_struct,
+ ll1_cl1_auto_gap_available_ind_struct,
+ ll1_cl1_auto_gap_unavailable_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_cl1_gap_notify_ind_struct
+*
+* DESCRIPTIONS
+*   LL1 sends this message to inform UL1 that the starting time and length of gap pattern when CL1 is standby RAT.
+*   LL1 sends this message to inform UL1 the gap pattern configuration when CL1 is active RAT.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   standby_gap   - standby gap pattern
+*   active_gap    - N/A (since C2K will not provide gap in connected mode, there is no case for mLL1 to notify gap to C2K when it is active)
+*   tid           - tid for lastest meas_req on
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ll1_cl1_expand_gap_pattern_struct standby_gap;
+   kal_uint8                         tid;        /* Tid for lastest meas_req on, LL1 will expand gap notify ind with this tid*/
+}ll1_cl1_gap_notify_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_mode_status_ind_struct
+*
+* DESCRIPTIONS
+*   This message is sent from CL1 to LL1 for informing that CL1 mode status when CL1 is active RAT.
+*   This message should be sent when CL1 mode status changed.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   eutran_mode_status - current mode in CL1 when C2K is active RAT
+*   drx_cycle_length   - valid when eutran_mode_status = EL1_LL1_IDLE_MODE
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ll1_active_rat_mode_status_enum c2k_mode_status;
+   kal_uint16                      drx_cycle_length;
+}cl1_ll1_mode_status_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_rat_status_ind_struct
+*
+* DESCRIPTIONS
+*   This message is sent from CL1 to LL1 for informing current CL1 RAT status.
+*   This message should be sent when CL1 RAT status changed.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   rat_status - RAT status in UL1
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   cl1_ll1_rat_status_enum rat_status;
+}cl1_ll1_rat_status_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_standby_measure_done_ind_struct
+*
+* DESCRIPTIONS
+*   For low power optimization, CL1 informs LL1 which measurement purpose is
+*   measured done in its period. If all measurement purposes are measured done,
+*   LL1 will not tick CL1 anymore in shortest measurement period.
+*   *NOTE: for current L+C project, CL1 is the only standby RAT.
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   tid           - For LL1 to know this tid is mapped to which gap pattern period sent before
+*   tick_bitmap   - bit 0 for ranking search, bit 1 for priority search. Only one bit will be set in one message
+*   cell_list_status_bitmap   - bit 0 is set to 1, if there is no any cell can be measured (or detected) in neighbor cell list (or measurement list) from higher layer.
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint8      tid;
+   kal_uint8      tick_bitmap;
+   kal_uint8      cell_list_status_bitmap;
+}cl1_ll1_standby_measure_done_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_specific_gap_ind_struct
+*
+* DESCRIPTIONS
+*   CL1 needs gap with specific gap length
+*
+* PARAMETERS
+*   enable      - TRUE: CL1 needs specific gap with length >= gap_length.   FALSE: CL1 doesn't need specific gap anymore.
+*   gap_length  - unit: ms   (Currently, CL1 will only fill in 480ms) ,   this field is valid only when enable=TRUE.
+*****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool        enable;
+    kal_uint16      gap_length;
+}cl1_ll1_specific_gap_ind_struct;
+
+/*****************************************************************************
+* STRUCT
+*   mll1_cl1_info_database_struct
+*
+* DESCRIPTIONS
+*   CL1 information structure.
+*
+* PARAMETERS
+*
+*****************************************************************************/
+typedef struct
+{  /* measure req*/
+   kal_uint8                           tick_bmp;            /* use to record tick bitmap*/
+   kal_uint8                           rank_tick_tid;       /* tid for rank tick*/
+   kal_uint8                           prio_tick_tid;       /* tid for prio tick*/
+   kal_uint8                           meas_done_bmp;       /* measurement done ind bitmap*/
+   kal_bool                            is_meas_done_useful; /* umts fdd uses meas_done or not by checking meas_purpose_bmp*/
+   kal_uint8                           meas_purpose_bitmap; /* record the measure purpose bitmap*/
+   c2k_time_struct                     current_time;        /* umts fdd current time when request gap service*/
+   /* Paging period in active RAT */
+   kal_int32                           drx_cycle;           /* 32,64,128,256,768,1536,3072,6144,12288 Unit : c2k slots*/
+   /* Burst length for eFACH DRX*/
+   kal_int32                           burst_length;        /* 10,20,40,80,160 Unit : ms*/
+   /* auto gap para*/
+   c2k_time_struct                     auto_time;           /* auto gap time*/
+   /* Mode status*/
+   ll1_active_rat_mode_status_enum     mode_status;         /* mode status*/
+   /* GAP pattern*/
+   cl1_ll1_gap_pattern_ind_struct      gap_pattern;         /* Gap pattern */
+   /* Gap request from standby rat should do sync in connection*/
+   kal_bool                            valid_timing;        /* KAL_TRUE  : with valid timing */
+                                                            /* KAL_FALSE : with invalid timing */
+   kal_uint8                           meas_req_tid;        /* Tid for lastest meas_req on, LL1 will expand gap notify ind with this tid*/
+   kal_uint8                           gap_service_tid;     /* Tid for latest gap_service_req(enable), LL1 will check this tid carried in GAP_PATTERN_IND*/
+
+   kal_uint64                          sib8_C2KTime;        // record the C2K system in SIB8. (transfer to unit: chips, 1.2288Mchips/s)
+   kal_bool                            sib8_isSync;         // record if C2K-LTE is sync in SIB8.  not used now.
+   cl1_specific_gap_status_enum        specific_gap_status; /* Enum of specific gap status */
+   kal_uint16                          specific_gap_length; /* Gap length of specific gap */
+}mll1_cl1_info_database_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_   cl1_mode_status_update_ind_struct
+*
+* DESCRIPTIONS
+*   This message is sent to UL1 for informing that mode status of active RAT when CL1 is standby RAT.
+*   This message should be updated for CL1 in standby when any mode status changed in active RAT.
+*   Also when UL1 enters into standby RAT from FLIGHT, LL1 will update current mode state in active RAT to CL1.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   active_rat_mode_status - current mode status in active RAT
+*****************************************************************************/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ll1_active_rat_mode_status_enum active_rat_mode_status;
+}ll1_cl1_mode_status_update_ind_struct;
+
+
+
+/*****************************************************************************
+* STRUCT
+*   cl1_ll1_sib8_timing_sync_req_struct
+*
+* DESCRIPTIONS
+*   This message is sent sib8 timing sync req to MD1.
+*
+* PARAMETERS
+*****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                     is_valid; /* Indicate if the following parameter in this message is valid or not. */
+    sys_time_info_c2k_struct sib8_sys_time_info; /*Includes CDMA system time in SIB8, LTE absolute time and LTE serving cell info. */
+}cl1_ll1_sib8_timing_sync_req_struct;
+
+/*****************************************************************************
+* STRUCT
+*   ll1_cl1_sib8_timing_sync_cnf_struct
+*
+* DESCRIPTIONS
+*   This message is sent sib8 timing sync cnf to MD3 from MD1.
+*
+* PARAMETERS
+*****************************************************************************/
+typedef struct
+{
+     LOCAL_PARA_HDR
+     kal_bool          result;   /*Indicate the time sync info in this message is valid or not.  */
+     kal_uint32        currFRC;     /*  The current FRC time */
+     kal_uint32        currC2kSystemTime_l32; /* The current c2k system time corresponding to the currFRC */
+     kal_uint32        currC2kSystemTime_h32; /* The current c2k system time corresponding to the currFRC */
+}ll1_cl1_sib8_timing_sync_cnf_struct;
+/*****************************************************************************
+* STRUCT
+*   l4c_c2k_power_off_req_struct
+*
+* DESCRIPTIONS
+*   This message is sent power_off_req to MD3.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   src_id - source id
+*****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+	kal_uint8	  src_id;
+#ifdef MTK_PLT_ON_PC_IT
+    kal_uint8   padding;
+#endif
+}l4c_c2k_power_off_req_struct;
+
+/*****************************************************************************
+* STRUCT
+*   l4c_c2k_power_off_cnf_struct
+*
+* DESCRIPTIONS
+*   This message is send power_off_cnf to L4C.
+*
+* PARAMETERS
+*   LOCAL_PARA_HDR
+*   src_id - piggy back the src_id from l4c_c2k_power_off_req_struct
+*   result - power off result
+*****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+	kal_uint8	  src_id;
+    kal_bool    result;
+}l4c_c2k_power_off_cnf_struct;
+
+typedef enum
+{
+   C2K_SERVICE_NOT_SUPPORT,
+   C2K_SERVICE_SUPPORT,
+   C2K_SERVICE_ALLOCATE,
+   C2K_SERVICE_UNDEFINED
+}c2k_service_state_enum;
+
+typedef enum
+{
+   C2K_SERVICE_CHV_DISABLE_FUNCTION=1,
+   C2K_SERVICE_ADN,
+   C2K_SERVICE_FDN,
+   C2K_SERVICE_SMS,
+   C2K_SERVICE_HRPD,// 5
+   C2K_SERVICE_ENH_PHB,
+   C2K_SERVICE_MMD,
+   C2K_SERVICE_SF_EUIMID,
+   C2K_SERVICE_MEID,
+   C2K_SERVICE_EXT1,//10
+   C2K_SERVICE_EXT2,
+   C2K_SERVICE_SMSP,
+   C2K_SERVICE_LND,
+   C2K_SERVICE_SCP_BC_SMS,
+   C2K_SERVICE_3GPD_EXT,//15
+   C2K_SERVICE_RC,
+   C2K_SERVICE_SPN,
+   C2K_SERVICE_SDN,
+   C2K_SERVICE_EXT3,
+   C2K_SERVICE_3GPD_SIP,//20
+   C2K_SERVICE_WAP_BROW,
+   C2K_SERVICE_JAVA,
+   C2K_SERVICE_RFU_CDG,
+   C2K_SERVICE_RFU_CDG1,
+   C2K_SERVICE_DATA_DOWNLOAD_SMS_CB,//25
+   C2K_SERVICE_DATA_DOWNLOAD_SMS_PP,
+   C2K_SERVICE_MENU_SELECTION,
+   C2K_SERVICE_CALL_CONTROL,
+   C2K_SERVICE_PROACTIVE_RUIM,
+   C2K_SERVICE_AKA,//30
+   C2K_SERVICE_IPV6,
+   C2K_SERVICE_RFU1,
+   C2K_SERVICE_RFU2,
+   C2K_SERVICE_RFU3,
+   C2K_SERVICE_RFU4,//35
+   C2K_SERVICE_RFU5,
+   C2K_SERVICE_RFU6,
+   C2K_SERVICE_3GPD_MIP,
+   C2K_SERVICE_BCMCS,
+   C2K_SERVICE_MMS,//40
+   C2K_SERVICE_EXT8,
+   C2K_SERVICE_MMSUCP,
+   C2K_SERVICE_APP_AUTH,
+   C2K_SERVICE_GID1,
+   C2K_SERVICE_GID2,//45
+   C2K_SERVICE_DCK,
+   C2K_SERVICE_COO_NETWOKR_LIST,
+   C2K_SERVICE_END,
+
+   C2K_SERVICE_C_LOCAL_PHB,  // 1
+   C2K_SERVICE_C_FDN,
+   C2K_SERVICE_C_EXT2,
+   C2K_SERVICE_C_SDN,
+   C2K_SERVICE_C_EXT3,//5
+   C2K_SERVICE_C_SMS,
+   C2K_SERVICE_C_SMSP,
+   C2K_SERVICE_C_HRPD,
+   C2K_SERVICE_C_SCP_BC_SMS,
+   C2K_SERVICE_C_SPN,  // 10
+   C2K_SERVICE_C_DATA_DOWNLOAD_SMS_CB,
+   C2K_SERVICE_C_DATA_DOWNLOAD_SMS_PP,
+   C2K_SERVICE_C_CALL_CONTROL,
+   C2K_SERVICE_C_3GPD_SIP,
+   C2K_SERVICE_C_3GPD_MIP,//15
+   C2K_SERVICE_C_AKA,
+   C2K_SERVICE_C_IP_LCS,
+   C2K_SERVICE_C_BCMCS,
+   C2K_SERVICE_C_MMS,
+   C2K_SERVICE_C_EXT8,  // 20
+   C2K_SERVICE_C_MMSUCP,
+   C2K_SERVICE_C_APP_AUTH,
+   C2K_SERVICE_C_GID1,
+   C2K_SERVICE_C_GID2,
+   C2K_SERVICE_C_DCK,//25
+   C2K_SERVICE_C_COO_NETWOKR_LIST,
+   C2K_SERVICE_C_OCI,
+   C2K_SERVICE_C_ICI,
+   C2K_SERVICE_C_EXT5,
+   C2K_SERVICE_C_MUL_STORAGE,  // 30
+   C2K_SERVICE_C_IMAGE,
+   C2K_SERVICE_C_RFU1,
+   C2K_SERVICE_C_RFU2,
+   C2K_SERVICE_C_SF_EUIMID,
+   C2K_SERVICE_C_3GPD_EXT,//35
+   C2K_SERVICE_C_RC,
+   C2K_SERVICE_C_WAP_BROW,
+   C2K_SERVICE_C_JAVA,
+   C2K_SERVICE_C_RFU1_FOR_CDG,
+   C2K_SERVICE_C_RFU2_FOR_CDG,  // 40
+   C2K_SERVICE_C_IPV6,
+   C2K_SERVICE_C_CALL_CONTROL_FOR_DATA,
+   C2K_SERVICE_C_CALL_CONTROL_FOR_MO_SMS,
+   C2K_SERVICE_C_CARD_SUPPORT_ENVELOPE,
+   C2K_SERVICE_C_END
+}c2k_service_id_enum;
+
+typedef enum
+{
+    UTK_FILE_CHANGE_GENERAL_ERROR,
+    UTK_FILE_CHANGE_FILE_READ_FAIL,
+    UTK_FILE_CHANGE_ABORT_BY_NEW_REQUEST,
+    UTK_FILE_CHANGE_ABORT_BY_SIM_SWITCH
+} utk_file_change_error_cause_enum;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 slot_id;
+    kal_bool is_full_changed;
+    kal_uint8 refresh_type; /* Add for SIM REFRESH type */
+    kal_uint8 num_of_file;
+    kal_uint16 file_list[120];  /* [MAUI_01716279] mtk02374 20090706 change to kal_uint16 due to file number is larger than 256*/
+    kal_uint8 size_of_plmn;
+    kal_uint8 *plmn_list;       /*only used when refresh_type is TYPE_STEERING_OF_ROAMING and MOD_NWSEL SHOULD free this created ctrl buffer */        
+} uim_utk_file_change_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 slot_id;
+    kal_uint8 is_successful;
+    utk_file_change_error_cause_enum error_cause;    
+} uim_utk_file_change_res_struct;
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+    kal_uint16 file_idx;
+    kal_uint8 path[6];
+    kal_uint8 info_type;
+    kal_uint8 channel_id;
+    kal_uint16 length; /*[MAUI_01702417] mtk01612: WinMo_GEMINI : +crsm*/
+} uim_file_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+    kal_uint8 file_type;
+    kal_uint16 file_idx;
+    kal_uint8 info_type;
+    kal_uint16 length;
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint16 file_size;
+    kal_uint8 num_of_rec;
+    kal_uint8 res_data[256];
+    kal_uint8 sfi;
+} uim_file_info_cnf_struct;
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 access_id;
+    kal_uint8 path[6];
+    kal_uint8 src_id;
+    kal_uint8 channel_id;
+    kal_uint8 sfi;
+} uim_read_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 data[258]; // 256 + 2 for driver usage in T=1
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+} uim_read_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint8 data[260]; // 255 + 5 for command header space
+    kal_uint8 access_id;
+    kal_uint8 channel_id;
+    kal_uint8 path[6];
+    kal_uint8 src_id;
+    kal_uint8 sfi;
+} uim_write_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 file_idx;
+    kal_uint16 para;
+    kal_uint16 length;
+    kal_uint16 result;
+    kal_uint16 status_word;
+    kal_uint8 access_id;
+    kal_uint8 src_id;
+} uim_write_cnf_struct;
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint16 file_idx;
+   kal_uint16 para; /* Low byte(P1) is record index. High byte(P2) indicate search mode but now it's RFU, only support search forward from index P1 */
+   kal_uint8 access_id;
+   kal_uint8 path[6];
+   kal_uint8 src_id;
+   kal_uint8 pattern_len; /* pattern data size is MAX_SUPPORT_RECORD_SIZE at most */
+   kal_uint8 data[261];  /* max pattern data size + 6 bytes space for command header */
+   kal_uint8 sfi;
+} uim_search_record_req_struct;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_uint16 file_idx;
+   kal_uint16 para;
+   kal_uint8 access_id;
+   kal_uint8 src_id;
+   kal_uint16 result;
+   kal_uint16 status_word;
+   kal_uint8 record_num;  /* number of pattern matched records. MAX_SUPPORT_RECORD_NUM at most */
+   kal_uint8 record[258]; /* max APDU response data size 256 + 2 bytes preserved for SIM dirver */
+} uim_search_record_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 dn_type; /* Dial number type*/
+    kal_bool is_fdn_change;
+} uim_phb_startup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    phb_errno_enum result; /* phb_errno_enum;Operation result*/
+}uim_phb_startup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mcc[4];         //ASCII encoding
+    kal_uint8 mnc[4];         //ASCII encoding
+    kal_uint8 iccid[21];      //ASCII encoding
+    kal_uint8 trans_id;       /* Used by DSBP_RECONFIG's users. Use 1~255 in order for each SIM task. */    
+} uim_l4bsbp_ready_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool csim_fdn_enabled;
+} uim_phb_csim_fdn_state_ind_struct;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _C2K_IRAT_MSG_STRUCT_H */
+
diff --git a/mcu/interface/protocol/as_c2k/common/c2k_poc_msg_struct.h b/mcu/interface/protocol/as_c2k/common/c2k_poc_msg_struct.h
new file mode 100644
index 0000000..b800e7b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/c2k_poc_msg_struct.h
@@ -0,0 +1,236 @@
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *   c2k_poc_msg_struct.h
+ *
+ * Project:
+ * --------
+ *   TK6291
+ *
+ * Description:
+ * ------------
+ *   Message structure of MD1/MD3 CC-ILM in Power on calibration 
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _C2K_POC_MSG_STRUCT_H_
+#define _C2K_POC_MSG_STRUCT_H_
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+/* Test Macro for POC interface between MD1 and MD3 intergration only. 
+   NOTE: Undef by default
+*/
+//#define C2K_POC_MD1_MD3_IF_TEST
+
+/* the max byte number of payload in one POC message, it's limited by CCIF */
+#define C2K_RF_SELF_CAL_PAYLOAD_MAX_BYTE_SIZE            (2000)
+
+#define C2K_MMRF_C2K_RAT_ID          (0x4) /* C2K RAT ID */
+
+/* the total portion number of POC result */
+#define C2K_RF_SELF_CAL_RESULT_TOTAL_PORTION_NUM     (4)
+
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+
+/*******************************************************************************
+ * Enumeration
+ ******************************************************************************/
+typedef enum
+{
+   C2K_TEST_CMD_SET_C2K_RF_SELF_CAL_DATABASE    = 0,
+
+   C2K_TEST_CMD_START_RF_SELF_CAL               = 1,
+   C2K_TEST_CMD_GET_RF_SELF_CAL_RESULT          = 2,
+
+   C2K_TEST_CMD_START_POST_RF_SELF_CAL          = 3, // reserved 
+   C2K_TEST_CMD_GET_POST_RF_SELF_CAL_RESULT     = 4, // reserved
+
+   C2K_TEST_CMD_END,
+   C2K_TEST_CMD_MAX                             = 0x7FFFFFFF
+} C2kTestCmdType;
+
+/*******************************************************************************
+ * Header of local parameter
+ ******************************************************************************/
+
+
+/*******************************************************************************
+ * RF self-K Set DataBase Command (C2K_TEST_CMD_SET_C2K_RF_SELF_CAL_DATABASE)
+ ******************************************************************************/
+// Payload of local parameter within request ILM message  (C2K task --> MMRF task)
+typedef struct
+{
+   kal_uint16  rat_idx;            // bitmap: (0|0|0|L|W|C|T|G), C2K = 0x4
+   kal_uint8   total_transm_num;   // the total portion number needed for sending the whole POC data base
+   kal_uint8   transm_idx;         // the portion index
+   kal_uint16  payload_size;       // the portion payload size, in byte
+   kal_uint8   result[C2K_RF_SELF_CAL_PAYLOAD_MAX_BYTE_SIZE];  // the portion payload
+} C2kTestCmdSetC2kRfSelfCalDb;
+
+// Payload of local parameter within confirm ILM message  (MMRF task --> C2K task)
+typedef struct
+{
+   kal_uint16  rat_idx;       // bitmap: (0|0|0|L|W|C|T|G), C2K = 0x4
+   kal_uint8   transm_idx;    // the portion index
+} C2kTestResultSetC2kRfSelfCalDb;
+
+
+/*******************************************************************************
+ * RF self-K Start Command (C2K_TEST_CMD_START_RF_SELF_CAL)
+ ******************************************************************************/
+// Payload of local parameter within request ILM message  (C2K task --> MMRF task)
+typedef struct
+{
+   kal_uint16  rat_idx;       // bitmap: (0|0|0|L|W|C|T|G), C2K = 0x4
+   kal_uint16  do_self_k;     // 0: get total LID num, bypass cal; 1: get total LID num and do cal
+} C2kTestCmdStartRfSelfK;
+
+// Payload of local parameter within confirm ILM message  (MMRF task --> C2K task)
+typedef struct
+{
+   kal_uint16  rat_idx;            // bitmap: (0|0|0|L|W|C|T|G), C2K = 0x4
+   kal_uint16  total_transm_num;   // the total portion number needed for sending the whole POC result
+} C2kTestResultStartRfSelfK;
+
+
+/*******************************************************************************
+ * RF self-K Get Command (C2K_TEST_CMD_GET_RF_SELF_CAL_RESULT)
+ ******************************************************************************/
+// Payload of local parameter within request ILM message  (C2K task --> MMRF task)
+ typedef struct
+{
+   kal_uint16  rat_idx;       // bitmap: (0|0|0|L|W|C|T|G), C2K = 0x4
+   kal_uint8   transm_idx;    // the portion index
+} C2kTestCmdGetRfSelfK;
+
+// Payload of local parameter within confirm ILM message  (MMRF task --> C2K task)
+typedef  struct
+{
+   kal_uint16  rat_idx;            // bitmap: (0|0|0|L|W|C|T|G), C2K = 0x4
+   kal_uint8   total_transm_num;   // the total portion number needed for sending the whole POC result
+   kal_uint8   transm_idx;         // the portion index
+   kal_uint16  payload_size;       // the portion payload size, in byte
+   kal_uint8   result[C2K_RF_SELF_CAL_PAYLOAD_MAX_BYTE_SIZE];  // the portion payload
+} C2kTestResultGetRfSelfK;
+
+
+/*******************************************************************************
+ * MMRFTST request/confirm command (local parameters of ILM message)
+ ******************************************************************************/
+typedef union
+{
+   C2kTestCmdSetC2kRfSelfCalDb    setC2kRfSelfCalDb;     // for C2K_TEST_CMD_SET_C2K_RF_SELF_CAL_DATABASE = 0
+   C2kTestCmdStartRfSelfK         startRfSelfKparam;     // for C2K_TEST_CMD_START_RF_SELF_CAL            = 1
+   C2kTestCmdGetRfSelfK           getRfSelfKResult;      // for C2K_TEST_CMD_GET_RF_SELF_CAL_RESULT       = 2
+} C2kTestCmdParam;
+
+typedef union
+{
+   C2kTestResultSetC2kRfSelfCalDb setC2kRfSelfCalDb;     // for C2K_TEST_CMD_SET_C2K_RF_SELF_CAL_DATABASE = 0
+   C2kTestResultStartRfSelfK      rfSelfKStatus;         // for C2K_TEST_CMD_START_RF_SELF_CAL            = 1
+   C2kTestResultGetRfSelfK        getRfSelfKResult;      // for C2K_TEST_CMD_GET_RF_SELF_CAL_RESULT       = 2
+} C2kTestResultParam;
+
+
+// Local parameter of request ILM message  (C2K task --> MMRF task)
+typedef struct
+{
+   LOCAL_PARA_HDR        // Header of ILM message's local parameters
+   C2kTestCmdType      type;        // for RF self-K only (enum = 0~2)
+   C2kTestCmdParam     param;
+} c2ktest_req_struct;
+  
+// Local parameter of confirm ILM message  (MMRF task --> C2K task)
+typedef struct
+{
+   LOCAL_PARA_HDR               // Header of ILM message's local parameters
+   C2kTestCmdType      type;        // for RF self-K only (enum = 0~2)
+   kal_uint32          result;      // 0: confirm fail; 1: confirm ok
+   C2kTestResultParam  param;
+} c2ktest_cnf_struct;  
+
+
+
+//temp define here for IF UT
+/*******************************************************************************
+ * MMRFTST POC data base
+ ******************************************************************************/
+typedef struct
+{
+   kal_uint16 db_Buffer[1200];
+}HwdRfC2kPocDataBase_UT_T;
+
+typedef struct
+{
+  kal_uint16 c2k_result[3200];  
+} MMRFC_C2K_POC_RESULT_UT_T;
+
+/*----------------------------------------------------------------------------
+ Global Data
+----------------------------------------------------------------------------*/
+
+
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/common/c2k_por_data_struct_mt6179.h b/mcu/interface/protocol/as_c2k/common/c2k_por_data_struct_mt6179.h
new file mode 100644
index 0000000..2264030
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/c2k_por_data_struct_mt6179.h
@@ -0,0 +1,146 @@
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef _C2K_POR_DATA_STRUCT_MT6179_H_
+#define _C2K_POR_DATA_STRUCT_MT6179_H_
+/*****************************************************************************
+* 
+* FILE NAME   : c2k_por_data_struct_mt6179.h
+*
+* DESCRIPTION : Hardware Driver Test Modes Interface. All message structures
+*               and Ids are defined in etsicd.doc.
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+              
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+
+/*******************************************************************************
+ * MMRFTST POR shared parameter
+ ******************************************************************************/
+#if defined(MT6763)
+#define C2K_POR_CA_SUPPORT_NUM                        4
+#else
+#error "Unexpected BB Chip was defined in cross core file"
+#endif
+#define S_CURVE_COEF_NUM                              4
+#define TEMPER_SECTION_NUM                            8
+#define MAX_RF_CHIP_NUM                               2
+
+#if defined(MT6763)
+typedef enum
+{
+   CCIRQ_RF_HEADER = 0,
+   CCIRQ_ABB_HEADER,
+   CCIRQ_IQ_HEADER,
+   CCIRQ_DCXO_HEADER,
+   CCIRQ_DRDI_HEADER,
+   CCIRQ_MISC_HEADER,
+   CCIRQ_MAX_NUM = 0xFFFF
+} CCIRQ_HEADER_E;
+
+typedef struct
+{
+   CCIRQ_HEADER_E       header;
+   kal_uint32           rf_chip_ver;
+   kal_uint16           temper_dac[MAX_RF_CHIP_NUM][TEMPER_SECTION_NUM];
+   kal_uint16           temper_val[TEMPER_SECTION_NUM];
+} CCIRQ_RF_BUFFER_T;
+
+typedef struct
+{
+   CCIRQ_HEADER_E       header;
+   kal_uint16           md1_abb_rccal_result;
+   kal_uint16           md3_abb_rccal_offset;
+} CCIRQ_ABB_BUFFER_T;
+
+typedef struct
+{
+   CCIRQ_HEADER_E       header;
+   kal_uint16           prx_iq_swap_en[C2K_POR_CA_SUPPORT_NUM];
+   kal_uint16           drx_iq_swap_en[C2K_POR_CA_SUPPORT_NUM];
+} CCIRQ_IQ_BUFFER_T;
+
+typedef struct
+{
+   CCIRQ_HEADER_E       header;
+   kal_int32            cload_freq_offset;
+   kal_uint16           afcdac;
+   kal_uint32           capid;
+   kal_int32            slope_inv;
+   kal_uint32           s_curve_coef[S_CURVE_COEF_NUM];
+} CCIRQ_DCXO_BUFFER_T;
+
+typedef struct
+{
+   CCIRQ_HEADER_E       header;
+   kal_uint16           drdi_enable;
+   kal_uint16           drdi_combined_idx;
+   kal_uint32           drdi_set_number;
+} CCIRQ_DRDI_BUFFER_T;
+
+typedef struct
+{
+   CCIRQ_HEADER_E       header;
+} CCIRQ_MISC_BUFFER_T;
+
+typedef struct
+{  //CCIRQ max 60 bytes : if support 4CA it will exceed this limitation
+   CCIRQ_RF_BUFFER_T    ccirq_rf_buffer;
+   CCIRQ_ABB_BUFFER_T   ccirq_abb_buffer;
+   CCIRQ_IQ_BUFFER_T    ccirq_iq_buffer;
+   CCIRQ_DCXO_BUFFER_T  ccirq_dcxo_buffer;
+   CCIRQ_DRDI_BUFFER_T  ccirq_drdi_buffer;
+   CCIRQ_MISC_BUFFER_T  ccirq_misc_buffer;
+} HwdRfC2kPorInitShareParamT;
+#else 
+#error "Unexpected BB Chip was defined in cross core file"
+#endif
+
+/*=============================================================================
+ Global Data
+===============================================================================*/
+
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/common/c2k_por_data_struct_orionplus.h b/mcu/interface/protocol/as_c2k/common/c2k_por_data_struct_orionplus.h
new file mode 100644
index 0000000..57dfab7
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/c2k_por_data_struct_orionplus.h
@@ -0,0 +1,157 @@
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+#ifndef _C2K_POR_DATA_STRUCT_ORIONPLUS_H_
+#define _C2K_POR_DATA_STRUCT_ORIONPLUS_H_
+/*****************************************************************************
+* 
+* FILE NAME   : c2k_por_data_struct_orionplus.h
+*
+* DESCRIPTION : Hardware Driver Test Modes Interface. All message structures
+*               and Ids are defined in etsicd.doc.
+*
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************/
+              
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+
+
+/*******************************************************************************
+ * MMRFTST POR shared parameter
+ ******************************************************************************/
+#if defined(MT6763)
+#define C2K_POR_CA_SUPPORT_NUM                        4
+#else
+#error "Unexpected BB Chip was defined in cross core file"
+#endif
+#define S_CURVE_COEF_NUM                              4
+#define TEMPER_SECTION_NUM                            8
+#define MAX_RF_CHIP_NUM                               1
+   
+#if defined(MT6763)
+   typedef enum
+   {
+      CCIRQ_RF_HEADER = 0,
+      CCIRQ_ABB_HEADER,
+      CCIRQ_IQ_HEADER,
+      CCIRQ_DCXO_HEADER,
+      CCIRQ_DRDI_HEADER,
+      CCIRQ_MISC_HEADER,
+      CCIRQ_MAX_NUM = 0xFFFF
+   } CCIRQ_HEADER_E;
+   
+   typedef struct
+   {
+      CCIRQ_HEADER_E       header;
+      kal_uint32           rf_chip_ver;
+      kal_uint16           temper_dac[MAX_RF_CHIP_NUM][TEMPER_SECTION_NUM];
+      kal_uint16           temper_val[TEMPER_SECTION_NUM];
+   } CCIRQ_RF_BUFFER_T;
+   
+   typedef struct
+   {
+      CCIRQ_HEADER_E       header;
+      kal_uint16           md1_abb_rccal_result;
+      kal_uint16           md3_abb_rccal_offset;
+   } CCIRQ_ABB_BUFFER_T;
+   
+   typedef struct
+   {
+      CCIRQ_HEADER_E       header;
+      kal_uint16           prx_iq_swap_en[C2K_POR_CA_SUPPORT_NUM];
+      kal_uint16           drx_iq_swap_en[C2K_POR_CA_SUPPORT_NUM];
+   } CCIRQ_IQ_BUFFER_T;
+   
+   typedef struct
+   {
+      CCIRQ_HEADER_E       header;
+      kal_int32            cload_freq_offset;
+      kal_uint16           afcdac;
+      kal_uint32           capid;
+      kal_int32            slope_inv;
+      kal_uint32           s_curve_coef[S_CURVE_COEF_NUM];
+   } CCIRQ_DCXO_BUFFER_T;
+   
+   typedef struct
+   {
+      CCIRQ_HEADER_E       header;
+      kal_uint16           drdi_enable;
+      kal_uint16           drdi_combined_idx;
+      kal_uint32           drdi_set_number;
+   } CCIRQ_DRDI_BUFFER_T;
+
+   typedef struct
+   {
+      CCIRQ_HEADER_E       header;
+   } CCIRQ_MISC_BUFFER_T;
+   
+   typedef struct
+   {  //CCIRQ max 60 bytes : if support 4CA it will exceed this limitation
+      CCIRQ_RF_BUFFER_T    ccirq_rf_buffer;
+      CCIRQ_ABB_BUFFER_T   ccirq_abb_buffer;
+      CCIRQ_IQ_BUFFER_T    ccirq_iq_buffer;
+      CCIRQ_DCXO_BUFFER_T  ccirq_dcxo_buffer;
+      CCIRQ_DRDI_BUFFER_T  ccirq_drdi_buffer;
+      CCIRQ_MISC_BUFFER_T  ccirq_misc_buffer;
+   } HwdRfC2kPorInitShareParamT;
+#else
+   #error "Unexpected BB Chip was defined in cross core file"
+#endif
+
+typedef struct
+{
+   kal_uint32          C2K_tableIdx;
+} SWTP_T;
+
+typedef struct
+{
+   SWTP_T              swtp;
+} L12MD3ShmForMmrfFeatureT;
+
+
+/*=============================================================================
+ Global Data
+===============================================================================*/
+
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif
+
diff --git a/mcu/interface/protocol/as_c2k/common/cas_eas_enum.h b/mcu/interface/protocol/as_c2k/common/cas_eas_enum.h
new file mode 100644
index 0000000..138efb0
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/cas_eas_enum.h
@@ -0,0 +1,156 @@
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *   cas_eas_enum.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ * ----------------------------------------------------------------------------
+ * $Log:$
+ *
+ * 09 25 2018 yi-han.chung
+ * [MOLY00355158] [B180703-331]¡i¥«?§ë?¡j[FT-ªe«n°Ó¥C]¥¼«Ø?¡G¤âÉ󴡤J?«H4G¥d¡A±¼¸¨3GÊI?¡]1¦¸/10-20s¡^
+ * 	
+ * 	sync MOLY00346673, CL6200380+CL6251115
+ *
+ * 11 25 2016 tsung-ming.lee
+ * [MOLY00214552] [MT6293][C2K] C2K cell measurement enhancement & support band re-arch
+ * 	
+ * 	.
+ *
+ * 11 09 2016 xiaofang.xu
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * .
+ *
+ * 02 15 2016 ryan.ou
+ * [MOLY00159902] [ERRC][CEL] 2015 Q4 code sync from LR11 to UMOLY
+ * MD3 related (OA domain).
+ * 	
+ * 	CL1760622
+ *
+ * 07 23 2015 henry.lai
+ * [MOLY00113082] [MT6291] ERRC CEL development
+ * .
+ *
+ *
+ ******************************************************************************/
+
+#ifndef __CAS_EAS_ENUM_H__
+#define __CAS_EAS_ENUM_H__
+
+/* MACROS ******************************************************************/
+#define MAX_NUM_MEAS_C2K_BAND  (5)   /* maximum supported CDMA band class for IRAT measurement.
+                                        note: 36.331 ASN.1 define 21, but reduce it to 2 because only band 0, band 1 are planned to support */
+
+#define MAX_NUM_MEAS_C2K_FREQ  (8)   /* maximum supported CDMA channels for IRAT measurement */
+                                     /* note: 36.331 ASN.1 define 16, but reduce it to 8 because CC IRQ ILM cannot exceed 4K bytes and 
+                                      * no more 8 frequencies in real network. If 8 frequencies are not enough, we need remove phase 
+                                      * in cas_meas_sector_rslt_struct and increase this definition to resolve this issue. */
+
+#define MAX_NUM_MEAS_C2K_BAND_IND  (1)   /* maximum supported CDMA band class for IRAT measurement.
+                                            for EAS_CAS_MEASUREMENT_IND */
+
+
+#define MAX_NUM_MEAS_C2K_FREQ_IND  (8)   /* maximum supported CDMA channels for IRAT measurement
+                                            for EAS_CAS_MEASUREMENT_IND */
+
+#define MAX_NUM_PN  (40)  /* maximum number of the PN in the PN list */
+
+#define MAX_BYTE_OF_SECTOR_ID  (16)  /* maximum number of bytes to represent sector ID of C2K cell */
+
+#define MAX_BYTE_OF_C2K_SYS_TIME  (7)  /* maximum number of bytes contains CDMA system time bit string (sync: 39 bits, async: 49 bits) */
+
+#define MAX_NUM_C2K_NBR_CELL_LIST_BAND  (5)  /* maximum number of neighbor cell bands in the SIB8 CDMA2000 neighbor cell list (36.331 ASN.1 defined in R9: 1, in R11: 16) in the cell reselection parameters */
+                                             /* note: 36.331 ASN.1 define 16, but reduce it to 5 since CDMA2000 supported band is up to 3 at maximum currently and also save message size because CC IRQ ILM cannot exceed 4K bytes */
+
+#define MAX_NUM_C2K_NBR_CELL_FREQ_LIST_PER_BAND  (16)  /* maximum number of neighbor cells per band in the SIB8 CDMA2000 neighbor cell list */
+
+#define MAX_NUM_OF_DEPRIORITIZATION_INFO  (8)  /* maximum number of deprioritization EUTRAN frequencies */
+
+#define MAX_NUM_OF_CAS_PLMN_ID_LIST  (8)  /* maximum number of PLMN ID list sent from CAS to EAS */
+
+#define MAX_UE_POWER_CLASS_OUTPUT_POWER  (23)  /* UE transmit power on all EUTRAN bands should be UE power class 3 which corresponding UE maximum output power is always 23 dBm.
+                                                  (according to 36.101 table 6.2.2-1), the unit is in dBm
+                                                  note: this MACRO is not used in interface structure, but only be referenced by CAS while calculating ETURA cell S-criteria formula
+                                                        if future 3GPP spec is updated, need to confirm if the "all EUTRAN bands having the same UE output power" assumption is broken! */
+
+#define EAS_CAS_IRAT_PARAM_INVALID_THD         0x7FFF
+
+/* define EAS_CAS_PARAM_UPDATE_IND update type bitmask (16 bits max) */
+#define EAS_CAS_PARAM_UPDATE_TYPE_SIB8         0x0001
+#define EAS_CAS_PARAM_UPDATE_TYPE_TIME_INFO    0x0002
+#define EAS_CAS_PARAM_UPDATE_TYPE_RESEL_PARAMS 0x0004
+
+/* new update type define here */
+#define EAS_CAS_PARAM_UPDATE_TYPE_RESEVED      0x8000
+#define EAS_CAS_PARAM_UPDATE_TYPE_MASK         0xFFFF
+
+#define EAS_CAS_PARAM_UPDATE_TYPE_SET(validity, type_bitmask)      (validity |= type_bitmask)
+#define EAS_CAS_PARAM_UPDATE_TYPE_CLEAR(validity, type_bitmask)    (validity &= ~type_bitmask)
+#define EAS_CAS_PARAM_UPDATE_TYPE_CHECK(validity, type_bitmask)    (validity & type_bitmask) ? KAL_TRUE : KAL_FALSE
+
+
+/* TYPES DEFINITIONS ********************************************************/
+typedef enum
+{
+    CAS_MEAS_TYPE_HP_MODE   = 0,    /* high priority CAS cell measurement */
+    CAS_MEAS_TYPE_LP_MODE   = 1,    /* all priority CAS cell measurement */
+    CAS_MEAS_TYPE_RESEL     = 2,    /* previously measured CAS cell sectors */
+    CAS_MEAS_TYPE_CONNECTED = 3,    /* LTE connected mode CAS cell measurement */
+    CAS_MEAS_TYPE_INVALID   = 0xFF
+} cas_meas_type_enum;
+
+
+typedef enum
+{
+    CDMA_SYS_TIME_TYPE_SYNC  = 0,  /* the enumeration is used when the sys_time_string is interpreted as synchronous system time, bit length = 39 */
+    CDMA_SYS_TIME_TYPE_ASYNC = 1   /* the enumeration is used when the sys_time_string is interpreted as asynchronous system time, bit length = 49 */
+} cdma_sys_time_type_enum;
+
+
+#endif /* __CAS_EAS_ENUM_H__ */
diff --git a/mcu/interface/protocol/as_c2k/common/cas_eas_struct.h b/mcu/interface/protocol/as_c2k/common/cas_eas_struct.h
new file mode 100644
index 0000000..ec41f27
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/cas_eas_struct.h
@@ -0,0 +1,564 @@
+/*****************************************************************************
+*  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) 2015
+*
+*  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).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *   cas_eas_struct.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ * ----------------------------------------------------------------------------
+ * $Log:$
+ *
+ * 09 25 2018 yi-han.chung
+ * [MOLY00355158] [B180703-331]¡i¥«?§ë?¡j[FT-ªe«n°Ó¥C]¥¼«Ø?¡G¤âÉ󴡤J?«H4G¥d¡A±¼¸¨3GÊI?¡]1¦¸/10-20s¡^
+ * 	
+ * 	sync MOLY00346673, CL6200380+CL6251115
+ *
+ * 11 16 2016 tsung-ming.lee
+ * [MOLY00210784] [MT6293] code sync form UMOLY
+ * 	
+ * 	array size sync.
+ *
+ * 11 09 2016 xiaofang.xu
+ * [MOLY00208435] [6293][C2K]Sync C2K code to UMOLYA TRUNK
+ * .
+ *
+ * 06 28 2016 cookie.chen
+ * [MOLY00185901] UMOLYA errc relevant latest code sync from UMOLY
+ * .
+ *
+ * 02 17 2016 sam.tsai
+ * [MOLY00156025] MOB/LMOB code sync from LR11 to UMOLY
+ *
+ * 02 17 2016 sam.tsai
+ * [MOLY00156025] MOB/LMOB code sync from LR11 to UMOLY
+ * .[MOLY00146633] [MD1] MD1/MD3 Power Down problem
+ * .MD1/MD3 interface check-in.
+ *
+ * 02 15 2016 ryan.ou
+ * [MOLY00159902] [ERRC][CEL] 2015 Q4 code sync from LR11 to UMOLY
+ * MD3 related (OA domain).
+ * 	
+ * 	CL1760622
+ *
+ * 07 03 2015 doug.shih
+ * [MOLY00092508] [MT6291][LTE-C2K] AS Inter RAT feature
+ * Sync C2K AS IRAT PreIT code.
+ *
+ * 03 20 2015 henry.lai
+ * [Henry] Fix typo.
+ *
+ * 03 20 2015 henry.lai
+ * [Henry] Add strength in REPORT_CGI_CFN and meas_ind_ms_diff in EAS_CAS_CELL_MEAS_IND for UT case implementation.
+ *
+ *
+ ******************************************************************************/
+
+#ifndef __CAS_EAS_STRUCT_H__
+#define __CAS_EAS_STRUCT_H__
+
+#include "as_inter_core_enum.h"
+#include "as_inter_core_struct.h"
+#include "cas_eas_enum.h"
+
+/* ERRC-CLC Message (EAS Standby) */
+
+/* measurement request/result related: CAS to/from EAS */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  tid;                       /* tid is used for CAS to filter the measurement report from EAS, range: 0..255
+                                                             the LTE_MEASUREMENT_IND corresponding to this LTE_MEASUREMENT_REQ should return the same tid */
+    kal_bool                   hps_flag;                  /* indicate higher priority search ON or OFF */
+    kal_uint8                  prio_meas_period;          /* indicate the measurement period for higher priority search, represent in 'seconds', valid if hps_flag = TRUE */
+    kal_uint8                  freq_num;                  /* indicate the number of measurement frequencies, range: 0..MAX_MEAS_IRAT_FREQ, freq_num=0, EAS stops measurement
+                                                             the sequence of the frequencies in the array (from 0 to MAX_MEAS_IRAT_FREQ) is the search sequence where CAS will decide by itself.
+                                                             LTE layer1 will start the measurement from the 1st frequency in the array */
+    eas_meas_freq_info_struct  freq[MAX_MEAS_IRAT_FREQ];  /* indicate the measurement information */
+} cas_eas_lte_measurement_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  dummy;                       /* to prevent compiling error */
+} cas_eas_lte_measurement_cnf_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  tid;                       /* tid is used for CAS to filter the measurement report from EAS, range: 0..255
+                                                             the LTE_MEASUREMENT_IND corresponding to this LTE_MEASUREMENT_REQ should return the same tid */
+    kal_uint8                  freq_num;                  /* indicate the number of frequency measurement results, range: 1..MAX_MEAS_IRAT_FREQ */
+    eas_meas_freq_rslt_struct  freq[MAX_MEAS_IRAT_FREQ];  /* indicate the frequency measurement result */
+} cas_eas_lte_measurement_ind_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               freq_num;                  /* indicate the number of frequency measurement results included in the report.
+                                                          the measurement result may contain more than one frequency, range: 0..MAX_MEAS_IRAT_FREQ.
+                                                          if active RAT want to modify the high quality measurement list (e.g., remove certain cells),
+                                                          it can just send a new indication containing new measurement list
+                                                          note: freq_num = 0 means all cells do not fulfill HPS criteria */
+    eas_hps_qualify_struct  freq[MAX_MEAS_IRAT_FREQ];  /* specify the EARFCN and those PCIs of the cells which fulfill the cell reselection criteria in last report */
+} cas_eas_lte_hps_qualify_cell_ind_struct;
+
+
+/* evaluation/activation request/result related: CAS to/from EAS */
+typedef struct
+{
+    /* Refer to C.S0087:
+         The access network shall set this field to the PLMN-ID. The 12 most significant bits of the field are the 3-digit MCC in BCD format.
+         The next 12 bits are defined for the MNC. For a 3-digit MNC, it takes all 12 bits in 3-digit BCD format.
+         For 2-digit MNC, it is encoded as the 1st 2 digits in the first 8 bits, and then the last 4 bit shall be set to 0xF. */
+    /* CAS will do 4-bit BCD to decimal conversion before send to EAS,
+       that is: first 12 MSB bits PLMN ID received from C2K will filled into mcc1~mcc3, and next 12 bits PLMN ID will filled into mnc1~mnc3 */
+    kal_uint8  mcc1;
+    kal_uint8  mcc2;
+    kal_uint8  mcc3;
+    kal_uint8  mnc1;
+    kal_uint8  mnc2;
+    kal_uint8  mnc3;
+} cas_eas_plmn_id_struct;
+
+typedef struct
+{
+/*
+    Possible value setting from CAS:
+    1.CAS use Srxlev(RSRP)IRCR evaluation.
+      thresh_x : Valid Value.
+      thresh_xq: Invalid value(EAS_CAS_IRAT_PARAM_INVALID_THD=0x7FFF)
+    2.CAS use Squal(RSRQ) IRCR evaluation.
+      thresh_x : Valid Value.
+      thresh_xq: Valid value.
+
+    NOTE: thresh_x  is in unit of dBm(converted RSRP value)
+          thresh_xq is in unit of dB (converted RSRQ value)      
+*/	
+	  kal_int16   thresh_x;   
+	  kal_int16   thresh_xq;
+} cas_eas_irat_param_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    eas_target_cell_info    target_cell;                             /* indicate the PCI and EARFCN of IRCR candidate cell */
+    kal_uint8               plmn_num;                                /* indicated the number of desired PLMN ID list from C2K */
+    cas_eas_plmn_id_struct  plmn_list[MAX_NUM_OF_CAS_PLMN_ID_LIST];  /* indicate desired PLMN ID list */
+    cas_eas_irat_param_struct irat_param;
+} cas_eas_evaluate_ecell_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    te_ir_cell_reselection_status  eval_status;                /* indicate the result of the LTE target cell evaluation */
+    ts_eval_activate_fail_handle   eval_activate_fail_handle;  /* indicate what kind of evaluation failure for the LTE target cell */
+} cas_eas_evaluate_ecell_cnf_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  dummy;                       /* to prevent compiling error */
+} cas_eas_evaluate_ecell_stop_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    /* EAS will not send this primitive until L1 CNF (close BCCH) is received but CAS will not wait EAS CNF,
+       active L1 is responsible to wait standby L1 stop completely. */
+       
+    /* to handle racing condition (EVALUATE_ECELL_CNF and EVALUTE_ECELL_STOP_REQ race condition),
+       EAS will NOT response CAS_EAS_EVALUATE_ECELL_STOP_CNF if EAS is not performing evaluation procedure */
+    kal_uint8                  dummy;                       /* to prevent compiling error */
+} cas_eas_evaluate_ecell_stop_cnf_struct;
+
+
+typedef struct
+{
+    /* unfold MACRO LOCAL_PARA_HDR for MD1/MD3 cross-core structure alignment for RAT CHANGE */
+    kal_uint8                  ref_count;
+    kal_uint8                  lp_reserved;
+    kal_uint16                 msg_len;
+
+    te_ir_cell_change_trigger  trigger;                                 /* indicate IR trigger type, for C2K, it is IRCR only, no IR redirection from CAS to EAS */
+    eas_target_cell_info       target_cell;                             /* indicate PCI and EARFCN of target cell */
+    kal_uint8                  plmn_num;                                /* indicated the number of desired PLMN ID list from C2K */
+    cas_eas_plmn_id_struct     plmn_list[MAX_NUM_OF_CAS_PLMN_ID_LIST];  /* indicate desired PLMN ID list */
+} cas_eas_activate_ecell_req_struct;
+
+
+typedef struct
+{
+    /* unfold MACRO LOCAL_PARA_HDR for MD1/MD3 cross-core structure alignment for RAT CHANGE */
+    kal_uint8                      ref_count;
+    kal_uint8                      lp_reserved;
+    kal_uint16                     msg_len;
+
+    te_ir_cell_reselection_status  active_status;              /* indicate the result of the LTE target cell activation */
+    ts_eval_activate_fail_handle   eval_activate_fail_handle;  /* indicate what kind of activation failure for the LTE target cell */
+} cas_eas_activate_ecell_cnf_struct;
+
+
+/* ERRC-CLC Message (CAS Standby) */
+
+/* measurement request/result related: EAS to/from CAS */
+typedef struct
+{
+    kal_uint16  channel;                   /* indicate the ARFCN of the measured frequency, range: 0..2047 */
+    kal_bool    is_search_win_size_valid;  /* indicate if search window size is present */
+    kal_uint8   search_win_size;           /* indicate the search window size used by CDMA for the measurement, range: 0..15
+                                              it should be set according to the value defined in SIB8 or MeasObjectCDMA2000 */
+    kal_uint8   num_pn;                    /* indicate the number of CDMA PNs included, range: 0..MAX_NUM_PN */
+    kal_uint16  pn_list[MAX_NUM_PN];       /* list of CDMA PNs included. it shall be set to the 'physCellId' received from SIB8 or MeasObjectCDMA2000, range: 0..511 */
+    kal_bool    is_detected_cell_meas;     /* indicate whether detected cell measurement for this ARFCN is required.
+                                              CL1 should try to find the strongest cell on this ARFCN so that EAS can perform reselection in idle mode or
+                                              report this cell for SON in connected mode */
+} cas_meas_freq_info_struct;
+
+
+typedef struct
+{
+    kal_uint8                  band;                              /* indicate the band class of the measured frequency list, range: 0..21 */
+    kal_uint8                  freq_num;                          /* indicate the number of measurement frequencies, range: 0..MAX_NUM_MEAS_C2K_FREQ */
+    cas_meas_freq_info_struct  freq_list[MAX_NUM_MEAS_C2K_FREQ];  /* indicate the measurement information */
+} cas_meas_band_info_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  tid;          /* tid is used by EAS to filter the measurement report from CAS, range: 0..255
+                                                the CCELL_MEAS_IND corresponding to this CCELL_MEAS_REQ should return the same tid 
+                                                Note that (1)	ERRC will maintain two tid. One is for HP_MODE. The other one is for LP_MODE/RESEL/CONNECTED.
+                                                          (2)	CAS also needs to maintain two tid like ERRC. */
+    cas_meas_type_enum         meas_type;    /* indicate the measurement type of this CCELL_MEAS_REQ
+                                                - if 'RESEL' type is selected, the set of sectors indicated in this primitive should be a subset of the previously measured sectors
+                                                - if 'CONNECTED' type is selected, it means EAS is in connected mode and requests CAS to do measurement
+                                                  (in order to distinguish from HP/LP/RESEL modes which used in idle mode)
+                                                - when this primitive is used to stop measurement, EAS should choose correct type to inform CAS which type of measurement should be stopped */
+    kal_uint8                  meas_period;  /* indicate the absolute measurement period used by C2K to report the measurement results to LTE
+                                                this field is only valid if 'meas_type' = HP_MODE, represent in 'seconds' */
+    kal_uint8                  band_num;     /* indicate the number of measurement bands, range: 0..MAX_NUM_MEAS_C2K_BAND
+                                                if band_num=0, CAS should stop the measurement specified in the 'meas_type' */
+    cas_meas_band_info_struct  band_list[MAX_NUM_MEAS_C2K_BAND];  /* indicate the measurement information */
+} eas_cas_config_ccell_meas_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8           tid;        /* tid is used by EAS to filter the measurement report from CAS, range: 0..255 
+                                       this tid should be the same as that in CONFIG_CCELL_MEAS_REQ */
+    cas_meas_type_enum  meas_type;  /* indicate the measurement type of the current message
+                                       this meas_type should be the same as that in CONFIG_CCELL_MEAS_REQ */
+} eas_cas_config_ccell_meas_cnf_struct;
+
+
+typedef struct
+{
+    kal_uint16  pn;  /* indicate the pilot number the measurement result belonged, range: 0..511 */
+    kal_int16   phase;  /* indicate CDMA pilot phase, represent in chips */
+    kal_uint8   strength;  /* indicate CDMA pilot strength, in -0.5db format
+                              note: CAS will send the strength value calculated by formula [FLOOR(-2 x 10 x log10 Ec/Io)]
+                                    without adding negative sign, and EAS needs to multiply the strength value by (-1)
+                                    when it evaluates reselection criteria if fulfill: Srxlev > ThreshxHighP, ThreshxLowP */
+} cas_meas_sector_rslt_struct;
+
+
+typedef struct
+{
+    kal_uint16                   channel;  /* indicate ARFCN of the measured frequency, range: 0..2047 */
+    kal_uint8                    num_pn;   /* indicate the number of CDMA PNs included, rnage: 0..MAX_NUM_PN */
+    cas_meas_sector_rslt_struct  pn_list[MAX_NUM_PN];  /* list of CDMA PNs measured */
+} cas_meas_freq_rslt_struct;
+
+typedef struct
+{
+    kal_uint8                  band;                                  /* indicate band class of the measured frequency list, range: 0..21 */
+    kal_uint8                  freq_num;                              /* indicate the number of measurement frequencies, range: 0..MAX_NUM_MEAS_C2K_FREQ */
+    cas_meas_freq_rslt_struct  freq_list[MAX_NUM_MEAS_C2K_FREQ_IND];  /* indicate the measurement information */
+} cas_meas_band_rslt_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  tid;                               /* tid is used by EAS to filter the measurement report from CAS, range: 0..255
+                                                                     the CCELL_MEAS_IND corresponding to this CCELL_MEAS_REQ should return the same tid
+                                                                     Note that CAS needs to maintain two tid. One is for HP_MODE. The other one is for 
+                                                                     LP_MODE, RESEL, or CONNECTED. When CAS receives measurement results from CL1 for HP_MODE, 
+                                                                     CAS should use tid stored for HP_MODE in this field. If CAS receives measurement results 
+                                                                     from CL1 for LP_MODE, RESEL, or CONNECTED, CAS should use tid stored for these modes 
+                                                                     in this field. */
+    kal_bool                   is_hps_meas;                       /* When CAS receives measurement result from CL1 for HP_MODE, this field should set as TRUE. 
+                                                                     Otherwise (i.e., measurement results for LP_MODE, RESEL, or CONNECTED), this field should 
+                                                                     set as FALSE. */                                                                 
+    kal_uint8                  band_num;                          /* indicate the number of measurement bands, range: 1..MAX_NUM_MEAS_C2K_BAND */
+    cas_meas_band_rslt_struct  band_list[MAX_NUM_MEAS_C2K_BAND_IND];                         /* indicate the band measurement result,include only one band and one frequency */
+#ifdef UNIT_TEST
+    kal_uint32                 meas_ind_ms_diff;                  /* This variable is only used by EAS to make UT case in MoDIS environment.
+                                                                   * In target, EAS will get timing information from system service.
+                                                                   */
+#endif /* UNIT_TEST */    
+} eas_cas_ccell_meas_ind_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                 tid;                       /* tid is used for EAS to filter the corresponding CNF from CAS, range: 0..255
+                                                            the EAS_REPORT_CGI_CNF corresponding to this EAS_REPORT_CGI_REQ should return the same tid */
+    report_cgi_req_type_enum  report_cgi_req_type;       /* identify the request for CGI report is started or stopped */
+    kal_uint8                 band;                      /* indicate the band class of the measured frequency, range: 0..21 */
+    kal_uint16                channel;                   /* indicate the ARFCN of the measured frequency, range: 0..2047 */
+    kal_bool                  is_search_win_size_valid;  /* indicate if search window size is present */
+    kal_uint8                 search_win_size;           /* the search window size used by CDMA for the measurement, range: 0..15
+                                                            it should be set according to the value defined in MeasObjectCDMA2000 */
+    kal_uint16                pn;                        /* indicate the C2K cell which needs to acquire CGI */
+} eas_cas_report_cgi_req_struct;
+
+
+typedef struct
+{
+    cgi_info_status_enum  cgi_info_status;             /* identify whether the CGI information for the C2K cell collected successfully,
+                                                          not collected, or collected failed */
+    kal_uint8             strength;                    /* indicate CDMA pilot strength, in 0.5db format.
+                                                        * Note that only when cgi_info_status is ACQ_CGI_SUCCESS or ACQ_CGI_FAIL_CELL_FOUND,
+                                                        * EAS can use strength for this request C2K cell.
+                                                        */
+    kal_uint8             CGI[MAX_BYTE_OF_SECTOR_ID];  /* indicates the sector ID of the target HRPD sector, max length: 128 bits
+                                                          it is only valid when 'cgi_info_status' == ACQ _CGI _SUCCESS */
+} ccell_cgi_info_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8              tid;             /* tid is used for EAS to filter the corresponding CNF from CAS, range: 0..255
+                                               the EAS_REPORT_CGI_CNF corresponding to this EAS_REPORT_CGI_REQ should return the same tid */
+    kal_uint8              band;            /* indicate the band class of the measured frequency, range: 0..21 */
+    kal_uint16             channel;         /* indicate the ARFCN of the measured frequency, range: 0..2047 */
+    kal_uint16             pn;              /* indicate the C2K cell which needs to acquire CGI */
+    ccell_cgi_info_struct  ccell_cgi_info;  /* identify the information of C2K cell that is required to get CGI information */
+} eas_cas_report_cgi_cnf_struct;
+
+
+typedef struct
+{
+    kal_uint8   band;                      /* indicate the band class of the target HRPD sector frequency, range: 0..21 */
+    kal_uint16  channel;                   /* indicate the ARFCN of the target HRPD sector frequency, range: 0..2047 */
+    kal_bool    is_search_win_size_valid;  /* indicate if search window size is present */
+    kal_uint8   search_win_size;           /* indicate the search window size used by CDMA for the measurement. It is only set when in IRCR. It should be set according to the value defined in MeasObjectCDMA2000. */
+    kal_bool    pn_included;               /* indicate whether target HRPD sector PN is included or no, it is only set to TRUE when in IRCR and set to FALSE for IR Redirection */
+    kal_uint16  pn;                        /* indicate the PN for the target HRPD sector */
+} cas_target_cell_info;
+
+
+typedef struct
+{
+    kal_uint8   freq_num;         /* indicate the number of frequencies containing in deprioritization info, range: 0..MAX_NUM_OF_DEPRIORITIZATION_INFO */
+    /* indicate the deprioritization frequency list 
+       note: 
+       (1) the deprioritized frequency is added into deprioritization list upon EAS receiving one RRCConnectionReject with deprioritization info
+       (2) if EAS received several RRCConnectionRejects with deprioritization info on different frequencies, the number of elements will be accumulated
+       (3) once one RRCConnectionReject with deprioritization info is to deprioritize all EUTRA (not specific frequency), EAS will add one element with frequency value 0xFFFFFFFF
+       (4) when CAS processes the deprioritization info list, if CAS finds one element which frequency value is 0xFFFFFFFF, CAS should treat all EUTRA frequencies are deprioritized */
+    EARFCN      freq_list[MAX_NUM_OF_DEPRIORITIZATION_INFO];
+    kal_uint32  timer_tick_left;  /* indicate the remaining period of T325 deprioritization timer for which frequency list or entire EUTRA is deprioritized, represent in milliseconds */
+} eas_deprioritization_info_struct;
+
+
+typedef struct
+{
+    /* unfold MACRO LOCAL_PARA_HDR for MD1/MD3 cross-core structure alignment for RAT CHANGE */
+    kal_uint8                         ref_count;
+    kal_uint8                         lp_reserved;
+    kal_uint16                        msg_len;
+
+    te_ir_cell_change_trigger         trigger;                    /* indicate IR trigger type, for C2K, IR trigger type will only be IRCR or IR_REDIRECT from EAS to CAS */
+    cas_target_cell_info              target_sector;              /* indicate the band/channel/pn of target sector (but pn is only valid when IRCR) */
+    eas_deprioritization_info_struct  eas_deprioritization_info;  /* transfer the remaining time and frequency list of deprioritization info to CAS,
+                                                                     CAS will take these EUTRA frequencies as lowest priority when C2K is active RAT until the deprioritization timer expiry */
+} eas_cas_activate_ccell_req_struct;
+
+
+typedef struct
+{
+    /* unfold MACRO LOCAL_PARA_HDR for MD1/MD3 cross-core structure alignment for RAT CHANGE */
+    kal_uint8                      ref_count;
+    kal_uint8                      lp_reserved;
+    kal_uint16                     msg_len;
+
+    te_ir_cell_reselection_status  active_status;  /* indicate the result of the C2K target cell activation */
+    ts_eval_activate_fail_handle   eval_activate_fail_handle;  /* indicate what kind of activation failure for the C2K target cell */
+} eas_cas_activate_ccell_cnf_struct;
+
+
+/* parameter update: EAS to CAS */
+
+typedef struct
+{
+    kal_bool                 is_cdma_eutra_sync;  /* TRUE indicates that there is no drift in the timing between E-UTRA and CDMA2000. FALSE indicates that the timing between E-UTRA and CDMA2000 can drift. */
+    cdma_sys_time_type_enum  cdma_sys_time_type;  /* indicate which type of C2K system time information is used */
+    kal_uint8                cdma_sys_time_string[MAX_BYTE_OF_C2K_SYS_TIME];  /* to align 36.331 ASN.1 design, we put first MSB bit string of system time starting from first MSB bit of sys_time_string[0],
+                                                                                 and receiver (CAS) should truncate rest bits with correct bitmask according to cdma_sys_time_type enum value:
+                                                                                 for synchronous system time, it is filled with 39 MSB bits; for asynchronous system time, it is filled with 49 MSB bits */
+    eas_target_cell_info     cell_inf;           /* LTE serving cell info when we got valid sys_time_info_c2k_struct */
+    kal_uint32               h_abs_time;         /* abs_time when we got valid sys_time_info_c2k_struct in SIB8 */
+    kal_uint32               l_abs_time;         
+} sys_time_info_c2k_struct;
+
+
+typedef struct
+{
+    kal_uint16  arfcn_c2k;  /* indicate the ARFCN (frequency) of the CDMA2000 neighbor cell, range: 0..2047 */
+} nbr_cell_freq_info_c2k_struct;
+
+
+typedef struct
+{
+    kal_uint8                      nbr_cell_band;      /* indicate the band class of this CDMA2000 neighbor cell, range: 0..21 */
+    kal_uint8                      nbr_cell_freq_num;  /* indicate the number of CDMA2000 neighbor cell list in this band, range 0..MAX_NUM_C2K_NBR_CELL_FREQ_LIST_PER_BAND */
+    nbr_cell_freq_info_c2k_struct  nbr_cell_freq[MAX_NUM_C2K_NBR_CELL_FREQ_LIST_PER_BAND];  /* indicate the CDMA2000 neighbor cell frequency info list */
+} nbr_cell_band_info_c2k_struct;
+
+
+typedef struct
+{
+    kal_uint8                      nbr_cell_band_num;                              /* indicate the number of bands in the CDMA2000 neighbor cell info list, range: 0..MAX_NUM_C2K_NBR_CELL_LIST_BAND */
+    nbr_cell_band_info_c2k_struct  nbr_cell_band[MAX_NUM_C2K_NBR_CELL_LIST_BAND];  /* indicate the CDMA2000 neighbor cell info list by bands */
+} nbr_cell_list_c2k_struct;
+
+
+typedef struct
+{
+    kal_bool                  is_valid;       /* indicate if the CDMA2000 neighbor cell reselection parameter is valid */
+    nbr_cell_list_c2k_struct  nbr_cell_list;  /* indicate the CDMA2000 neighbor cell reselection parameters */
+} cell_resel_param_c2k_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                validity;             /* indicate what types of parameter update containing in PARAM_UPDATE_IND which could have multiple types, represent as EAS_CAS_PARAM_UPDATE_TYPE_* 
+                                                       validity value is manipulated by MACRO EAS_CAS_PARAM_UPDATE_TYPE_SET/CLEAR/CHECK */
+    /* SIB8 parameters update */
+    /* only system time info, and 1xRTT cell reselection param are used currently */
+    kal_bool                  is_sib8_update;       /* indicate if it is SIB8 update or SIB8 clear indication: TRUE means SIB8 update;  FALSE means SIB8 clear */
+    sys_time_info_c2k_struct  sib8_sys_time_info;   /* indicate the CDMA2000 system time information in SIB8 received from EAS.
+                                                       only valid when is_sib8_valid is TRUE */
+
+    cell_resel_param_c2k_struct  sib8_cell_resel_param_1xrtt;  /* indicate the CDMA2000 1xRTT cell reselection parameters: band class and corresponding ARFCN in the neighbor cell list */
+
+    /* new parameters update add here */
+    /* reserved */
+} eas_cas_param_update_ind_struct;
+    
+
+/* CAS_EAS_C2K_POWER_ON_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 dummy;                       /* to prevent compiling error */
+} cas_eas_c2k_power_on_ind_struct;
+
+/* CAS_EAS_C2K_POWER_OFF_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 dummy;                       /* to prevent compiling error */
+} cas_eas_c2k_power_off_ind_struct;
+
+/* EAS_CAS_LTE_POWER_ON_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 dummy;                       /* to prevent compiling error */
+} eas_cas_lte_power_on_ind_struct;
+
+/* EAS_CAS_LTE_POWER_OFF_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 dummy;                       /* to prevent compiling error */
+} eas_cas_lte_power_off_ind_struct;
+    
+
+/* [VZ_REQ_LTE_MMO_38695] VzW LTE scanning enhancement (From CLC/PSW to ERRC) */
+/* MSG_ID_CLC_ERRC_EVDO_PS_CONNECTION_STATUS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool  bEvdoEnterConnection;  /* TRUE, means EVDO has been in PS connection state; else, EVDO has been in idle state. */
+} clc_errc_evdo_ps_connection_status_ind_struct;
+
+
+/* PSW_ERRC_1XRTT_PS_CONNECTION_STATUS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool  b1xRttEnterConnection;  /* TRUE, means 1xRTT has been in PS connection state; else, 1xRTT has been in idle state. */
+} psw_errc_1xrtt_ps_connection_status_ind_struct;
+
+
+/* [VZ_REQ_LTE_MMO_38695] VzW LTE scanning enhancement (From ERRC to CLC/PSW) */
+/* MSG_ID_ERRC_CLC_LTE_SCAN_C2K_ACTIVE_PARAMS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16    LTE_scan_active_duration_1xRTT;  /* unit in milisecond, value range [1..10000], 0xFFFF means invalid (feature off) */
+    kal_uint16    LTE_scan_active_duration_DO;     /* unit in milisecond, value range [1..1000], 0xFFFF means invalid (feature off) */
+} errc_clc_lte_scan_c2k_active_params_ind_struct;
+
+
+#endif /* __CAS_EAS_STRUCT_H__ */
diff --git a/mcu/interface/protocol/as_c2k/common/irat_common_enums_public.h b/mcu/interface/protocol/as_c2k/common/irat_common_enums_public.h
new file mode 100644
index 0000000..6251b4b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/irat_common_enums_public.h
@@ -0,0 +1,102 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+#ifndef _IRAT_COMMON_ENUMS_PUBLIC_H
+#define _IRAT_COMMON_ENUMS_PUBLIC_H
+
+typedef enum
+{
+    IR_TYPE_HO          = 0x00, //Indicates the inter-RAT procedure is handover procedure
+    IR_TYPE_CCO         = 0x01, //Indicates the inter-RAT procedure is cell change order procedure. Note that this enumeration is only used between 2G and 4G.
+    IR_TYPE_CCO_STAGE1  = 0x02, //Indicates the inter-RAT procedure is cell change order procedure before NAS starts to perform LU/RAU procedure for stage 2 contention phase. Note that this enumeration is only used between 2G and 4G.
+    IR_TYPE_CCO_STAGE2  = 0x03, //Indicates the inter-RAT procedure is cell change order procedure for stage 2 contention phase. Note that this enumeration is only used between 2G and 4G.
+    IR_TYPE_REDIRECT    = 0x04, //Indicates the inter-RAT procedure is redirection procedure
+    IR_TYPE_CR          = 0x05, //Indicates the inter-RAT procedure is autonomous cell reselection procedure
+    IR_TYPE_SEARCH      = 0x06, //This enumeration is only used by NAS to trigger search procedure. AS will not receive this enumeration.
+    IR_TYPE_MPSR        = 0x07, //More preferred system reselection. Only for C2K
+    IR_TYPE_SYS_LOSS    = 0x08  //System loss system reselection. Only for C2K
+
+} irat_type_enum;
+
+#define MAX_NUM_OF_EARFCN 8
+
+#define LTE_C2K_RF_CONFLICT_CAUSE  99  //[20151120 Ali] define the CCIQR assert cause to trigger MD3 assert if LTE RF conflict with C2K.
+
+//[20150629 Ali] SRLTE: LL1-XL1 modes status enum
+typedef enum
+{
+  LL1_MODE_STATUS_INIT = 0,
+  LL1_GSM_MODE_BEGIN,
+  LL1_GSM_NULL_MODE,
+  LL1_GSM_IDLE_MODE,
+  LL1_GSM_SDCCH_MODE,
+  LL1_GSM_DCH_MODE,
+  LL1_GSM_PKT_MODE,
+  LL1_GSM_MODE_END,
+  LL1_FDD_MODE_BEGIN,
+  LL1_FDD_NULL_MODE,
+  LL1_FDD_IDLE_MODE,
+  LL1_FDD_EFACH_DRX_MODE,
+  LL1_FDD_FACH_MODE,
+  LL1_FDD_DCH_MODE,
+  LL1_FDD_MODE_END,
+  LL1_TDD_MODE_BEGIN,
+  LL1_TDD_NULL_MODE,
+  LL1_TDD_IDLE_MODE,
+  LL1_TDD_FACH_MODE,
+  LL1_TDD_DCH_MODE,
+  LL1_TDD_HSPA_MODE,
+  LL1_TDD_MODE_END,
+  LL1_C2K_MODE_BEGIN,
+  LL1_C2K_NULL_MODE,
+  LL1_C2K_IDLE_MODE,
+  LL1_C2K_CONNECT_MODE,          //[20151119 Ali] LTE MMO feature: EVDO CONN.
+  LL1_C2K_MODE_END,
+  LL1_LTE_MODE_BEGIN,
+  LL1_LTE_NULL_MODE,
+  LL1_LTE_IDLE_MODE,
+  LL1_LTE_CONNECT_MODE,
+  LL1_LTE_CONNECT_DRX_MODE,
+  LL1_LTE_MODE_END,
+  LL1_NR_MODE_BEGIN,
+  LL1_NR_NULL_MODE,
+  LL1_NR_IDLE_MODE,
+  LL1_NR_CONNECT_MODE,
+  LL1_NR_CONNECT_DRX_MODE,
+  LL1_NR_MODE_END,
+  LL1_C2K_1XRTT_CONNECT_MODE    //[20151119 Ali] LTE MMO feature: 1XRTT CONN. for corss-core file, always add enum at the end.
+} ll1_active_rat_mode_status_enum;
+
+
+#endif // _IRAT_COMMON_ENUMS_PUBLIC_H
diff --git a/mcu/interface/protocol/as_c2k/common/iratapi.h b/mcu/interface/protocol/as_c2k/common/iratapi.h
new file mode 100644
index 0000000..07297ee
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/iratapi.h
@@ -0,0 +1,594 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*****************************************************************************
+*  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) 2013
+*
+*  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).
+*
+*****************************************************************************/
+
+/** \file
+ *
+ * Filename:
+ * ---------
+ *   iratapi.h
+ *
+ * Project:
+ * --------
+ *   C2K
+ *
+ * Description:
+ * ------------
+ * This file defines the structures of messages between MD1 and MD3.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * $Log$
+ *
+ * 12 09 2019 jiayong.zhang
+ * [MOLY00464630] Gen97 Elevator Mode feature
+ * 	
+ * 	.
+ *
+ * 06 12 2019 jiayong.zhang
+ * [MOLY00410820] [Copy from 95]ÇëÌṩP80 µçÌÝģʽÏà¹ØµÄ˵Ã÷ÎĵµºÍpatch
+ * 	
+ * 	.
+ *
+ * 03 15 2019 jiayong.zhang
+ * [MOLY00392132] [Gen97]delete the un-used code
+ * 	
+ * 	<saved by Perforce>
+ *
+ * 02 18 2019 yanfeng.xu
+ * [MOLY00366192] [MT6297] PSW need send RESUME_CNF and VIRTUAL_RESUME_CNF to RSVAS
+ * 	
+ * 	.
+ *
+ * 08 17 2018 emily.dai
+ * [MOLY00346708] [MT6297]CSS checkin
+ * 	
+ * 	.
+ *
+ * 08 17 2018 james-chi-ju.chang
+ * [MOLY00306148] [NAS] pangu giant CR
+ * interface
+ *
+ * 05 15 2018 tina.ma
+ * [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ * 	
+ * 	MSPM feature merge to UMOLYE
+ *
+ * 01 09 2018 sue.zhong
+ * [MOLY00300743] [MT6763][SMO][C2K]Remove relative include path in source and header file
+ *
+ * 10 24 2017 sue.zhong
+ * [MOLY00284146] [MT6763][SMO][C2K]Remove relative include path in source and header file
+ * .Roll back for on PC build
+ *
+ * 08 17 2017 jiayong.zhang
+ * [MOLY00265972] [Gen93]Merge code from R1 to TRUNK
+ * 	
+ * 	umolya
+ *
+ * 03 06 2017 dayang.liu
+ * [MOLY00233405] [BUG][Bianco UmolyA trunk][PS][EVDO] add ELT_RMC_TEST_DO_SET_DFS_CHCNT_CMD_MSG
+ * 	
+ * 	Add MSG_ID_ELT_RMC_TEST_DO_SET_DFS_CHCNT_CMD_MSG UMOLYA\TRUNK.
+ *
+ * 02 23 2017 hairong.wang
+ * [MOLY00225438] C2K LL1A code update for UMOLYA trunk
+ * modify ll1a/ll1stub code for new ELT struct
+ *
+ * 01 22 2017 derrick.qiang
+ * [MOLY00226021] [Change Feature] RTBA RBS Scenario Control Feature
+ * 	
+ * 	.RBS Scenario Control Code
+ *
+ * 01 19 2017 julian.zhang
+ * [MOLY00224435] [NewFeature][EVL1]GKI/DHL based nwsim platform porting
+ *
+ * 01 13 2017 meiwei.zhu
+ * [MOLY00224704] merge NWSIM Dual mode L1 IT related code to Trunk
+ * 	
+ * 	merge umolya trunk: do conn rel and sleep
+ *
+ * 01 09 2017 olive.wang
+ * [MOLY00223610] [6293][C2K]Merge AFLT meas function CL from T0
+ * 1x traffic AFLT case on Umolya Trunk branch.
+ *
+ * 01 05 2017 sue.zhong
+ * [MOLY00218409] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W1701)
+ * merge c2k source
+ *
+ * 12 28 2016 ziquan.yu
+ * [MOLY00221554] [Gen93] CVAL PSDM design
+ *
+ * 12 15 2016 sue.zhong
+ * [MOLY00217270] [6293][C2K]Sync C2K code to UMOLYA TRUNK from C2K CBr (W51)
+ * c2k source
+ *
+ * 12 09 2016 jeely.wang
+ * modify dfs related code
+ *
+ * 12 09 2016 arlene.wang
+ * nslt DFS.
+ *
+ * 12 08 2016 elon.zhang
+ * evl1: add rf_tst IT cases
+ *
+ * 12 01 2016 hairong.wang
+ * ll1stub for rsva suspend/resume msg handle
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+#ifndef _IRATAPI_H
+#define _IRATAPI_H
+
+#ifdef MTK_DEV_C2K_IRAT
+#include "module_msg_range.h"
+#include "val_msgid.h"
+#include "stub_msgid.h"
+#include "elt_msgid.h"
+#include "css_msgid.h"
+#include "errc_msgid.h"
+#include "do_clc_msgid.h"
+#include "rsva_msgid.h"
+#include "psw_msgid.h"
+#include "gmss_msgid.h"
+#include "eval_msgid.h"
+#include "mll1_msgid.h"
+#include "val_msgid.h"
+#include "l4_msgid.h"
+#include "sim_ps_msgid.h"
+#include "rsva_msgid.h"
+#include "do_rcp_msgid.h"
+#include "l1d_msgid.h"
+#include "nas_sv_msgid.h"
+#include "mspm_msgid.h"
+
+#define MAX_ELT_TRACE_LENGTH 100
+typedef enum
+{
+    FLIGHT_MODE        = 0,
+    ACTIVE_RAT_MODE    = 1,
+    STANDBY_RAT_MODE   = 2,
+    RAT_MODE_INVALID   = 0xFF
+}srlteRatTypeT;
+
+typedef enum
+{
+    IRAT_EVENT_DO_POWERUP,           /*0*/
+    IRAT_EVENT_1X_POWERUP,           /*1*/
+    IRAT_EVENT_DO_POWERDOWN,         /*2*/
+    IRAT_EVENT_1X_POWERDOWN,         /*3*/
+    IRAT_EVENT_DO_IDLE,              /*4*/
+    IRAT_EVENT_1X_IDLE,              /*5*/
+    IRAT_EVENT_DO_WAKEUP,            /*6*/
+    IRAT_EVENT_1X_WAKEUP,            /*7*/
+    IRAT_EVENT_DO_EXHAUST,           /*8*/
+    IRAT_EVENT_1X_EXHAUST,           /*9*/
+    IRAT_EVENT_DO_NO_ASSO,           /*10*/
+    IRAT_EVENT_DO_SYSTEM_LOST,       /*11*/
+    IRAT_EVENT_DO_VALIDATE_FAIL,     /*12*/
+    IRAT_EVENT_DO_VALIDATE_SUCC,     /*13*/
+    IRAT_EVENT_SESSION_OPEN,         /*14*/
+    IRAT_EVENT_SESSION_CLOSE,        /*15*/
+    IRAT_EVENT_DO_TURNOFF_DONE,      /*16*/
+    IRAT_EVENT_1X_TURNOFF_DONE,      /*17*/
+    IRAT_EVENT_TIMEOUT,              /*18*/
+    IRAT_EVENT_ABORT,                /*19*/
+    IRAT_EVENT_FAST_ABORT,           /*20*/
+    IRAT_EVENT_REJECT,               /*21*/
+    IRAT_EVENT_LLA_PREEMPT,          /*22*/
+    IRAT_EVENT_LLA_UPDATE_IND,       /*23*/
+    IRAT_EVENT_1X_PS_RES_RELEASED,   /*24*/
+    IRAT_EVENT_MODE_CHANGE_DONE,     /*25*/
+}IratEvent;
+
+//#define LOCAL_PARA_HDR
+
+// To Be removed
+/** across core interface message ID
+ *  this enum is used only by C2K.
+ *  as the internal message ID used in MD1 is transprently passed through to MD3,
+ *  MD3 should know the ID values.
+ *  this enum should sync with the global message ID value in the shared files
+ */
+typedef enum
+{
+    GMSS_CSS_SYS_ACQUIRE_REQ            =    MSG_ID_GMSS_CSS_SYS_ACQUIRE_REQ,
+    GMSS_CSS_SYS_ACQUIRE_CNF            =    MSG_ID_GMSS_CSS_SYS_ACQUIRE_CNF,
+    GMSS_CSS_RAT_CHANGE_REQ             =    MSG_ID_GMSS_CSS_RAT_CHANGE_REQ,
+    GMSS_CSS_SYS_LOST_IND               =    MSG_ID_GMSS_CSS_SYS_LOST_IND,
+    GMSS_CSS_SYS_RECOVERY_IND           =    MSG_ID_GMSS_CSS_SYS_RECOVERY_IND,
+    GMSS_CSS_READY_IND                  =    MSG_ID_GMSS_CSS_READY_IND,
+    GMSS_CSS_1X_CONN_STATUS_IND         =    MSG_ID_GMSS_CSS_1X_CONN_STATUS_IND,
+    GMSS_CSS_MMSS_FILE_UPDATE_IND       =    MSG_ID_GMSS_CSS_MMSS_FILE_UPDATE_IND,
+    GMSS_CSS_PS_CHANGE_IND              =    MSG_ID_GMSS_CSS_PS_CHANGE_IND,
+    GMSS_CSS_PS_CONN_STATUS_IND         =    MSG_ID_GMSS_CSS_PS_CONN_STATUS_IND,
+    GMSS_CSS_MCC_CHANGE_IND             =    MSG_ID_GMSS_CSS_MCC_CHANGE_IND,
+    LTE_C2K_RAT_CHANGE_REQ              =    MSG_ID_LTE_C2K_RAT_CHANGE_REQ,
+    LTE_C2K_RAT_CHANGE_CNF              =    MSG_ID_LTE_C2K_RAT_CHANGE_CNF,
+    C2K_LTE_RAT_CHANGE_REQ              =    MSG_ID_C2K_LTE_RAT_CHANGE_REQ,
+    C2K_LTE_RAT_CHANGE_CNF              =    MSG_ID_C2K_LTE_RAT_CHANGE_CNF,
+    VAL_RAC_RAT_CHANGE_START_REQ        =    MSG_ID_VAL_RAC_RAT_CHANGE_START_REQ,
+    VAL_RAC_RAT_CHANGE_FINISH_REQ       =    MSG_ID_VAL_RAC_RAT_CHANGE_FINISH_REQ,
+    
+    GMSS_CSS_NOT_READY_IND              =    MSG_ID_GMSS_CSS_NOT_READY_IND,
+    NAS_SV_CSS_PS_DEREG_REQ               =    MSG_ID_NAS_SV_CSS_PS_DEREG_REQ,
+    GMSS_CSS_ACTIVE_SIM_INFO_REQ        =    MSG_ID_GMSS_CSS_ACTIVE_SIM_INFO_REQ,
+    NAS_SV_CSS_PS_DEREG_CNF               =    MSG_ID_NAS_SV_CSS_PS_DEREG_CNF,
+    GMSS_CSS_MSPL_SEARCH_EXHAUSTED      =    MSG_ID_GMSS_CSS_MSPL_SEARCH_EXHAUSTED,
+    GMSS_CSS_ELEVATOR_MODE_REQ          =    MSG_ID_GMSS_CSS_ELEVATOR_MODE_REQ,
+    GMSS_CSS_ELEVATOR_MODE_IND          =    MSG_ID_GMSS_CSS_ELEVATOR_MODE_IND,
+
+    NAS_SV_CSS_DEACTIVATE_REQ            =    MSG_ID_NAS_SV_CSS_DEACTIVATE_REQ,
+    NAS_SV_CSS_DEACTIVATE_CNF            =    MSG_ID_NAS_SV_CSS_DEACTIVATE_CNF,
+    NAS_SV_CSS_CS_REG_REQ                =    MSG_ID_NAS_SV_CSS_CS_REG_REQ,
+    NAS_SV_CSS_CS_REG_CNF                =    MSG_ID_NAS_SV_CSS_CS_REG_CNF,
+    NAS_SV_CSS_PS_REG_REQ                =    MSG_ID_NAS_SV_CSS_PS_REG_REQ,
+    NAS_SV_CSS_PS_REG_CNF                =    MSG_ID_NAS_SV_CSS_PS_REG_CNF,
+    NAS_SV_CSS_MCC_SEARCH_REQ            =    MSG_ID_NAS_SV_CSS_MCC_SEARCH_REQ,
+    NAS_SV_CSS_MCC_SEARCH_CNF            =    MSG_ID_NAS_SV_CSS_MCC_SEARCH_CNF,
+    NAS_SV_CSS_CHECK_ACTIVE_RAT_REQ      =    MSG_ID_NAS_SV_CSS_CHECK_ACTIVE_RAT_REQ,
+    NAS_SV_CSS_CHECK_ACTIVE_RAT_CNF      =    MSG_ID_NAS_SV_CSS_CHECK_ACTIVE_RAT_CNF,
+    NAS_SV_CSS_SET_ACTIVE_RAT_REQ        =    MSG_ID_NAS_SV_CSS_SET_ACTIVE_RAT_REQ,
+    NAS_SV_CSS_SET_ACTIVE_RAT_CNF        =    MSG_ID_NAS_SV_CSS_SET_ACTIVE_RAT_CNF,
+    
+#if defined (MTK_DEV_C2K_SRLTE_BASE) && !defined (MTK_DEV_DENALI_SRLTE_PRE_IT)
+    L4C_C2K_EFUN_STATE_IND             =    MSG_ID_L4C_C2K_EFUN_STATE_IND,
+    L4C_C2K_PWROFF_START_IND           =    MSG_ID_L4C_C2K_PWROFF_START_IND,
+    L4C_VAL_EMDSTATUS_FLOW_VERSION_IND =    MSG_ID_L4C_VAL_MDSTATUS_FLOW_VERSION_IND,
+#endif
+    L4C_C2K_MDSTATUS_UPDATE_IND        =    MSG_ID_C2K_L4C_MDSTATUS_UPDATE_IND,
+    L4C_C2K_TXRX_ACTIVE_TIME_REQ       =    MSG_ID_L4C_C2K_TXRX_ACTIVE_TIME_REQ,
+    L4C_C2K_TXRX_ACTIVE_TIME_CNF       =    MSG_ID_L4C_C2K_TXRX_ACTIVE_TIME_CNF,
+
+    GMSS_CSS_SUSPEND_STATUS_IND         =    MSG_ID_GMSS_CSS_SUSPEND_STATUS_IND,
+    GMSS_CSS_SIM_PLMN_INFO_IND          =    MSG_ID_GMSS_CSS_SIM_PLMN_INFO_IND,
+    GMSS_CSS_SIM_PLMN_INFO_RSP          =    MSG_ID_GMSS_CSS_SIM_PLMN_INFO_RSP,
+
+    RSVAS_CAS_SUSPEND_SERVICE_CNF    = MSG_ID_RSVAS_CAS_SUSPEND_SERVICE_CNF,
+    RSVAS_CAS_ABORT_SERVICE_CNF      = MSG_ID_RSVAS_CAS_ABORT_SERVICE_CNF,
+    RSVAS_CAS_VIRTUAL_SUSPEND_SERVICE_CNF = MSG_ID_RSVAS_CAS_VIRTUAL_SUSPEND_SERVICE_CNF,
+    RSVAS_CAS_RESUME_SERVICE_CNF     = MSG_ID_RSVAS_CAS_RESUME_SERVICE_CNF,
+    RSVAS_CAS_VIRTUAL_RESUME_SERVICE_CNF  = MSG_ID_RSVAS_CAS_VIRTUAL_RESUME_SERVICE_CNF,
+
+    /* PSW_RSVAS_SAP */
+    PSW_ERRC_1XRTT_PS_CONNECTION_STATUS_IND = MSG_ID_PSW_ERRC_1XRTT_PS_CONNECTION_STATUS_IND,
+    
+    MSPM_SESSION_START_NTF                  = MSG_ID_MSPM_SESSION_START_NTF,
+    MSPM_SESSION_END_NTF                    = MSG_ID_MSPM_SESSION_END_NTF,
+    MSPM_AS_SESSION_START_REQ               = MSG_ID_MSPM_AS_SESSION_START_REQ,
+    MSPM_AS_SESSION_START_CNF               = MSG_ID_MSPM_AS_SESSION_START_CNF,
+    MSPM_AS_SESSION_END_NTF                 = MSG_ID_MSPM_AS_SESSION_END_NTF,
+    MSPM_RF_OWNER_PRIORITY_CHANGE_NTF       = MSG_ID_MSPM_RF_OWNER_PRIORITY_CHANGE_NTF,
+
+    /* CSS_RSVAC_SAP */
+    CSS_RSVAC_FREQUENCY_SCAN_START_REQ   = MSG_ID_CSS_RSVAC_FREQUENCY_SCAN_START_REQ,
+    CSS_RSVAC_FREQUENCY_SCAN_MODIFY_REQ  = MSG_ID_CSS_RSVAC_FREQUENCY_SCAN_MODIFY_REQ,
+    CSS_RSVAC_FREQUENCY_SCAN_STOP_REQ    = MSG_ID_CSS_RSVAC_FREQUENCY_SCAN_STOP_REQ,
+    RSVAC_CSS_FREQUENCY_SCAN_ACCEPT_IND  = MSG_ID_RSVAC_CSS_FREQUENCY_SCAN_ACCEPT_IND,
+    RSVAC_CSS_FREQUENCY_SCAN_PREEMPT_IND = MSG_ID_RSVAC_CSS_FREQUENCY_SCAN_PREEMPT_IND,
+
+    C2K_LTE_CSFB_REQ                  = MSG_ID_C2K_LTE_CSFB_REQ,
+    C2K_LTE_CSFB_STOP_REQ             = MSG_ID_C2K_LTE_CSFB_STOP_REQ,
+
+#ifdef MTK_DEV_C2K_SRLTE_BASE
+    /* LL1 Message */
+    CL1_LL1_RAT_STATUS_IND            = MSG_ID_CL1_LL1_RAT_STATUS_IND,
+    CL1_LL1_MODE_STATUS_IND           = MSG_ID_CL1_LL1_MODE_STATUS_IND,
+    LL1_CL1_MODE_STATUS_UPDATE_IND    = MSG_ID_LL1_CL1_MODE_STATUS_UPDATE_IND,
+    CL1_LL1_ACTIVE_MEASURE_STATUS_IND = MSG_ID_CL1_LL1_ACTIVE_MEASURE_STATUS_IND,
+    CL1_LL1_MEASURE_REQ               = MSG_ID_CL1_LL1_MEASURE_REQ,
+    CL1_LL1_STANDBY_MEASURE_DONE_IND  = MSG_ID_CL1_LL1_STANDBY_MEASURE_DONE_IND,
+    LL1_CL1_GAP_SERVICE_REQ           = MSG_ID_LL1_CL1_GAP_SERVICE_REQ,
+    CL1_LL1_GAP_STOP_REQ              = MSG_ID_CL1_LL1_GAP_STOP_REQ,
+    LL1_CL1_GAP_STOP_CNF              = MSG_ID_LL1_CL1_GAP_STOP_CNF,
+    LL1_CL1_GAP_STOP_REQ              = MSG_ID_LL1_CL1_GAP_STOP_REQ,
+    CL1_LL1_GAP_STOP_CNF              = MSG_ID_CL1_LL1_GAP_STOP_CNF,
+    LL1_CL1_GAP_SUSPEND_REQ           = MSG_ID_LL1_CL1_GAP_SUSPEND_REQ,
+    CL1_LL1_GAP_SUSPEND_CNF           = MSG_ID_CL1_LL1_GAP_SUSPEND_CNF,
+    LL1_CL1_GAP_RESUME_IND            = MSG_ID_LL1_CL1_GAP_RESUME_IND,
+    CL1_LL1_AUTO_GAP_REQ              = MSG_ID_CL1_LL1_AUTO_GAP_REQ,
+    LL1_CL1_AUTO_GAP_CNF              = MSG_ID_LL1_CL1_AUTO_GAP_CNF,
+    LL1_CL1_AUTO_GAP_STOP_IND         = MSG_ID_LL1_CL1_AUTO_GAP_STOP_IND,
+    CL1_LL1_AUTO_GAP_STOP_RES         = MSG_ID_CL1_LL1_AUTO_GAP_STOP_RES,
+    CL1_LL1_AUTO_GAP_END_IND          = MSG_ID_CL1_LL1_AUTO_GAP_END_IND,
+    LL1_CL1_AUTO_GAP_AVAILABLE_IND    = MSG_ID_LL1_CL1_AUTO_GAP_AVAILABLE_IND,
+    LL1_CL1_AUTO_GAP_UNAVAILABLE_IND  = MSG_ID_LL1_CL1_AUTO_GAP_UNAVAILABLE_IND,
+    LL1_CL1_GAP_NOTIFY_IND            = MSG_ID_LL1_CL1_GAP_NOTIFY_IND,
+    CL1_LL1_GAP_PATTERN_IND           = MSG_ID_CL1_LL1_GAP_PATTERN_IND,
+
+    CL1_LL1_SIB8_TIMING_SYNC_REQ      = MSG_ID_CL1_LL1_SIB8_TIMING_SYNC_REQ,
+    LL1_CL1_SIB8_TIMING_SYNC_CNF      = MSG_ID_LL1_CL1_SIB8_TIMING_SYNC_CNF,
+    CL1_LL1_SPECIFIC_GAP_IND		  = MSG_ID_CL1_LL1_SPECIFIC_GAP_IND,
+
+
+    /*L1*/
+    CBS_RAT_MODE_STATUS_IND                 = MSG_ID_CBS_RAT_MODE_STATUS_IND,  /* script send this msg to CBS */
+    CBS_CHANNEL_CONFIG_IND                  = MSG_ID_CBS_CHANNEL_CONFIG_IND,
+    EL1_RAT_MODE_STATUS_IND                 = MSG_ID_EL1_RAT_MODE_STATUS_IND, /* script send this msg to Ll1stub */
+    EL1_ACTIVE_MEASURE_INFO_IND             = MSG_ID_EL1_ACTIVE_MEASURE_INFO_IND,
+    EL1_STANDBY_MEASURE_REQ                 = MSG_ID_EL1_STANDBY_MEASURE_REQ,
+    EL1_AUTO_GAP_AVAILABLE_IND              = MSG_ID_EL1_AUTO_GAP_AVAILABLE_IND,
+    EL1_AUTO_GAP_FAIL                       = MSG_ID_EL1_AUTO_GAP_FAIL,
+    EL1_STOP_GAP_IND                        = MSG_ID_EL1_STOP_GAP_IND,
+    EL1_SUSPEND_GAP_IND                     = MSG_ID_EL1_SUSPEND_GAP_IND,
+    EL1_RESUME_GAP_IND                      = MSG_ID_EL1_RESUME_GAP_IND,      /* script send this msg to Ll1stub */
+    EL1_MMO_GAP_LENGTH_IND                  = MSG_ID_EL1_MMO_GAP_LENGTH_IND,                  /* script send this msg to HSC task */
+    STUB_LL1A_RMC_RAT_STATUS_IND_MSG        = MSG_ID_STUB_LL1A_RMC_RAT_STATUS_IND_MSG,        /* script send this msg to HSC task */
+    STUB_LL1A_IDP_SIGNAL_PROTECT_STATUS_IND = MSG_ID_STUB_LL1A_IDP_SIGNAL_PROTECT_STATUS_IND , /* script send this msg to HSC task */
+    STUB_LL1A_PSW_SIGNAL_PROTECT_STATUS_IND = MSG_ID_STUB_LL1A_PSW_SIGNAL_PROTECT_STATUS_IND , /* script send this msg to HSC task */
+    EVDO_ACTIVE_MODE_STATUS_IND             = MSG_ID_EVDO_ACTIVE_MODE_STATUS_IND ,    /* Ll1stub send this msg to script */
+    LL1STUB_CBS_CHANNEL_NOTIFY_IND          = MSG_ID_LL1STUB_CBS_CHANNEL_NOTIFY_IND , /* CBS send this msg to Ll1stub */
+
+    /* for L1 temp use */
+    EVSTANDBY_SCRIPT_CELL_MEAS_REQ             = MSG_ID_EVSTANDBY_SCRIPT_CELL_MEAS_REQ,
+    EVSTANDBY_SCRIPT_ACQ_CGI_REQ               = MSG_ID_EVSTANDBY_SCRIPT_ACQ_CGI_REQ,
+
+#endif
+    GMSS_CSS_MMSS_LIST_SYNC_REQ         =   MSG_ID_GMSS_CSS_MMSS_LIST_SYNC_REQ,
+    GMSS_CSS_CAMPING_INFO_IND           =   MSG_ID_GMSS_CSS_CAMPING_INFO_IND,
+    GMSS_CSS_3GPP_NORMAL_SERVICE_REQ    =   MSG_ID_GMSS_CSS_3GPP_NORMAL_SERVICE_REQ,
+    GMSS_CSS_SET_RAT_MODE_REQ           =   MSG_ID_GMSS_CSS_SET_RAT_MODE_REQ,
+    GMSS_CSS_SET_RAT_MODE_CNF           =   MSG_ID_GMSS_CSS_SET_RAT_MODE_CNF,
+    GMSS_CSS_EMC_SESSION_START_REQ      =   MSG_ID_GMSS_CSS_EMC_SESSION_START_REQ,
+    GMSS_CSS_EMC_SESSION_STOP_REQ       =   MSG_ID_GMSS_CSS_EMC_SESSION_STOP_REQ,
+    GMSS_CSS_EMC_LOCAL_DETACH_REQ       =   MSG_ID_GMSS_CSS_EMC_LOCAL_DETACH_REQ,
+    GMSS_CSS_CELL_INFO_IND              =   MSG_ID_GMSS_CSS_CELL_INFO_IND,
+    IMCSMS_CVAL_C2K_SMS_SEND_REQ        =   MSG_ID_IMCSMS_CVAL_C2K_SMS_SEND_REQ,
+    IMCSMS_CVAL_C2K_SMS_SEND_CNF        =   MSG_ID_IMCSMS_CVAL_C2K_SMS_SEND_CNF,
+    L4C_VAL_MDSTATUS_TK_BSP_IND         =   MSG_ID_L4C_VAL_MDSTATUS_TK_BSP_IND,
+    GMSS_CSS_CS_SUSPEND_IND             =   MSG_ID_GMSS_CSS_CS_SUSPEND_IND,
+    GMSS_CSS_CS_RESUME_REQ              =   MSG_ID_GMSS_CSS_CS_RESUME_REQ,
+    GMSS_CSS_C2K_SERVICE_IND            =   MSG_ID_GMSS_CSS_C2K_SERVICE_IND,
+    IMCSMS_VAL_C2K_SMS_RECV_REQ         =   MSG_ID_IMCSMS_VAL_C2K_SMS_RECV_REQ,
+    IMCSMS_VAL_C2K_SMS_RECV_CNF         =   MSG_ID_IMCSMS_VAL_C2K_SMS_RECV_CNF,
+
+    /* ON_PC_UT */
+    /* LLA */
+    C2K_MRS_CAS_OCCUPY_LLA_REQ = MSG_ID_C2K_MRS_CAS_OCCUPY_LLA_REQ,
+    C2K_MRS_CAS_RELEASE_LLA_REQ = MSG_ID_C2K_MRS_CAS_RELEASE_LLA_REQ,
+    C2K_MRS_CAS_GET_LLA_OCCUPY_RAT_REQ = MSG_ID_C2K_MRS_CAS_GET_LLA_OCCUPY_RAT_REQ,
+    RSVAS_CAS_OCCUPY_SERVICE_REQ = MSG_ID_RSVAS_CAS_OCCUPY_SERVICE_REQ,
+    RSVAS_CAS_RELEASE_SERVICE_REQ = MSG_ID_RSVAS_CAS_RELEASE_SERVICE_REQ,
+    RSVAS_CAS_TRANSFER_SERVICE_REQ = MSG_ID_RSVAS_CAS_TRANSFER_SERVICE_REQ,
+
+    /* ON_PC_IT */
+    STUB_HSC_SIB8_TIMING_CONFIG_REQ = MSG_ID_STUB_HSC_SIB8_TIMING_CONFIG_REQ,
+    STUB_HSC_SIB8_TIMING_SYNC_REQ = MSG_ID_STUB_HSC_SIB8_TIMING_SYNC_REQ,
+    STUB_HSC_SIB8_TIMING_SYNC_CNF = MSG_ID_STUB_HSC_SIB8_TIMING_SYNC_CNF,
+
+    LTE_ACTIVE_GAP_STOP_IND_CHECK = MSG_ID_LTE_ACTIVE_GAP_STOP_IND_CHECK,  /* Ll1stub send this msg to script */
+    EL1_STANDBY_SRCIPT_MEAS_REPORT=MSG_ID_EL1_STANDBY_SRCIPT_MEAS_REPORT, /* Ll1stub send this msg to script */
+    EVDO_ACTIVE_GAP_OFFER=MSG_ID_EVDO_ACTIVE_GAP_OFFER,          /* Ll1stub send this msg to script */
+    EVDO_ACTIVE_GAP_STOP_REQ=MSG_ID_EVDO_ACTIVE_GAP_STOP_REQ,       /* Ll1stub send this msg to script */
+    EVDO_SLEEP_IND=MSG_ID_EVDO_SLEEP_IND,                 /* HSC send this msg to script */
+    EVDO_WAKEUP_IND=MSG_ID_EVDO_WAKEUP_IND,                /* HSC send this msg to script */
+    RTT_SLEEP_IND=MSG_ID_RTT_SLEEP_IND,                  /* HSC send this msg to script */
+    RTT_WAKEUP_IND=MSG_ID_RTT_WAKEUP_IND,                 /* HSC send this msg to script */
+    EVDO_ACTIVE_SLT_PCH_DENIED=MSG_ID_EVDO_ACTIVE_SLT_PCH_DENIED,     /* Rtbstub send this msg to script */
+    EVDO_RTB_DENY_IND=MSG_ID_EVDO_RTB_DENY_IND,              /*RTB send this msg to script*/
+    EVDO_RTB_PREMPT_IND=MSG_ID_EVDO_RTB_PREMPT_IND,            /*RTB send this msg to script*/
+    EVDO_RTB_RESUME_IND=MSG_ID_EVDO_RTB_RESUME_IND,            /*RTB send this msg to script*/
+    EVDO_HSC_PREMPT_IND=MSG_ID_EVDO_HSC_PREMPT_IND,            /*HSC send this msg to script*/
+    EVDO_HSC_RESUME_IND=MSG_ID_EVDO_HSC_RESUME_IND,            /*HSC send this msg to script*/
+    EVDO_CELL_SWITH_IND=MSG_ID_EVDO_CELL_SWITH_IND,            /*RMC send this msg to script*/
+    EVDO_ICS_INITACQ_REGCHANEL_WITH_AFC_IND=MSG_ID_EVDO_ICS_INITACQ_REGCHANEL_WITH_AFC_IND,  /*RMC send this msg to script*/
+    EVDO_ICS_INITACQ_REGCHANEL_WITHOUT_AFC_IND=MSG_ID_EVDO_ICS_INITACQ_REGCHANEL_WITHOUT_AFC_IND,  /*RMC send this msg to script*/
+    EVDO_CGI_ACQ_START_IND=MSG_ID_EVDO_CGI_ACQ_START_IND,
+    EVDO_MPSR_START_IND=MSG_ID_EVDO_MPSR_START_IND,
+    EVDO_MPSR_END_IND=MSG_ID_EVDO_MPSR_END_IND,
+
+    MSG_CL1_FR_UT_TRIG = MSG_ID_MSG_CL1_FR_UT_TRIG,             /* script send this msg to frtest */
+    FR_UT_CASE_PASS_REPORT = MSG_ID_FR_UT_CASE_PASS_REPORT,         /* frtest send this msg to script */
+    CL1_NWSIM_UT_TEST_TRIG = MSG_ID_CL1_NWSIM_UT_TEST_TRIG,
+    CL1_NWSIM_UT_TEST_REPORT = MSG_ID_CL1_NWSIM_UT_TEST_REPORT,
+    CL1_UT_TRIG = MSG_ID_CL1_UT_TRIG,
+    CL1_UT_RLT_RPT = MSG_ID_CL1_UT_RLT_RPT,
+    L1_IT_STEP_PASS =  MSG_ID_L1_IT_STEP_PASS,
+    L1_IT_1XSYNC_PASS =  MSG_ID_L1_IT_1XSYNC_PASS,
+    L1_IT_ACCESS_MEAS_PASS =  MSG_ID_L1_IT_ACCESS_MEAS_PASS,
+    L1_IT_PCH_REC_PASS =  MSG_ID_L1_IT_PCH_REC_PASS,
+    L1_IT_IDLE_MEAS_PASS =  MSG_ID_L1_IT_IDLE_MEAS_PASS,
+    L1_IT_TRAFFIC_MEAS_PASS =  MSG_ID_L1_IT_TRAFFIC_MEAS_PASS,
+    L1_IT_IDLE_DFS_PASS = MSG_ID_L1_IT_IDLE_DFS_PASS,
+    L1_IT_MINI_ACQ_PASS = MSG_ID_L1_IT_MINI_ACQ_PASS,
+    L1_IT_DFS_MEAS_DONE = MSG_ID_L1_IT_DFS_MEAS_DONE,
+    XL1_SCRIPT_L1D_TEST_CASE_MSG = MSG_ID_XL1_SCRIPT_L1D_TEST_CASE_MSG,
+    LL1A_SCRIPT_LTE_SCAN_C2K_ACTIVE_PARAMS_IND = MSG_ID_LL1A_SCRIPT_LTE_SCAN_C2K_ACTIVE_PARAMS_IND,
+    LL1A_SCRIPT_PS_MMO_SIGNAL_PROTECT_IND = MSG_ID_LL1A_SCRIPT_PS_MMO_SIGNAL_PROTECT_IND,
+    LL1STUB_SCRIPT_RSVAS_SUSPEND_RESUME_IND = MSG_ID_LL1STUB_SCRIPT_RSVAS_SUSPEND_RESUME_IND,
+
+    ELT_RMC_POWER_MODE_TEST_MODE_RSP_MSG = MSG_ID_ELT_RMC_POWER_MODE_TEST_MODE_RSP_MSG,
+    ELT_RMC_RSSI_POWER_MODE_QUERY_RSP_MSG = MSG_ID_ELT_RMC_RSSI_POWER_MODE_QUERY_RSP_MSG,
+    ELT_RMC_MODIFY_FOE_RSP_MSG = MSG_ID_ELT_RMC_MODIFY_FOE_RSP_MSG,
+    ELT_RMC_FOE_QUERY_RSP_MSG = MSG_ID_ELT_RMC_FOE_QUERY_RSP_MSG,
+    ELT_CLC_IDP_SLOTTED_MODE_SET_RSP_MSG = MSG_ID_ELT_CLC_IDP_SLOTTED_MODE_SET_RSP_MSG,
+    ELT_CLC_GET_L3_STATUS_RSP_MSG = MSG_ID_ELT_CLC_GET_L3_STATUS_RSP_MSG,
+    ELT_CLC_ALMP_REL_CONN_RSP_MSG = MSG_ID_ELT_CLC_ALMP_REL_CONN_RSP_MSG,
+    ELT_RMC_DO_DFS_SERVCH_RSP_MSG = MSG_ID_ELT_RMC_DO_DFS_SERVCH_RSP_MSG,
+    ELT_RMC_TEST_DO_SET_DFS_CHCNT_RSP_MSG = MSG_ID_ELT_RMC_TEST_DO_SET_DFS_CHCNT_RSP_MSG,
+    ELT_RMC_DO_INTRA_MEAS_RSP_MSG = MSG_ID_ELT_RMC_DO_INTRA_MEAS_RSP_MSG,
+    ELT_RMC_MMAFC_STATE_QUERY_RSP_MSG = MSG_ID_ELT_RMC_MMAFC_STATE_QUERY_RSP_MSG,
+
+    ELT_GET_RF_PLAT_INFO_RSP_MSG = MSG_ID_ELT_GET_RF_PLAT_INFO_RSP_MSG,
+    ELT_RFD_TEST_MODE_REQ_RSP_MSG = MSG_ID_ELT_RFD_TEST_MODE_REQ_RSP_MSG,
+    ELT_SET_MIPI_CW_RSP_MSG = MSG_ID_ELT_SET_MIPI_CW_RSP_MSG,
+    ELT_GET_MIPI_CW_RSP_MSG = MSG_ID_ELT_GET_MIPI_CW_RSP_MSG,
+    ELT_SET_SPI_DATA_RSP_MSG = MSG_ID_ELT_SET_SPI_DATA_RSP_MSG,
+    ELT_GET_SPI_DATA_RSP_MSG = MSG_ID_ELT_GET_SPI_DATA_RSP_MSG,
+    ELT_TRANSMIT_CTRL_RSP_MSG = MSG_ID_ELT_TRANSMIT_CTRL_RSP_MSG,
+    ELT_RECEIVE_CTRL_RSP_MSG = MSG_ID_ELT_RECEIVE_CTRL_RSP_MSG,
+    ELT_AFC_CONFIG_RSP_MSG = MSG_ID_ELT_AFC_CONFIG_RSP_MSG,
+    ELT_TX_AGC_CONFIG_RSP_MSG = MSG_ID_ELT_TX_AGC_CONFIG_RSP_MSG,
+    ELT_TX_POWER_QUERY_RSP_MSG = MSG_ID_ELT_TX_POWER_QUERY_RSP_MSG,
+    ELT_RX_AGC_CONFIG_RSP_MSG = MSG_ID_ELT_RX_AGC_CONFIG_RSP_MSG,
+    ELT_RX_RSSI_QUERY_RSP_MSG = MSG_ID_ELT_RX_RSSI_QUERY_RSP_MSG,
+    ELT_RX_SNR_QUERY_RSP_MSG = MSG_ID_ELT_RX_SNR_QUERY_RSP_MSG,
+    ELT_RX_EC_IO_QUERY_RSP_MSG = MSG_ID_ELT_RX_EC_IO_QUERY_RSP_MSG,
+    ELT_AFC_CAL_DATA_SET_RSP_MSG = MSG_ID_ELT_AFC_CAL_DATA_SET_RSP_MSG,
+    ELT_AFC_CAL_DATA_GET_RSP_MSG = MSG_ID_ELT_AFC_CAL_DATA_GET_RSP_MSG,
+    ELT_RX_CAL_DATA_SET_RSP_MSG = MSG_ID_ELT_RX_CAL_DATA_SET_RSP_MSG,
+    ELT_RX_CAL_DATA_GET_RSP_MSG = MSG_ID_ELT_RX_CAL_DATA_GET_RSP_MSG,
+    ELT_TX_CAL_DATA_SET_RSP_MSG = MSG_ID_ELT_TX_CAL_DATA_SET_RSP_MSG,
+    ELT_TX_CAL_DATA_GET_RSP_MSG = MSG_ID_ELT_TX_CAL_DATA_GET_RSP_MSG,
+    ELT_FHC_START_RSP_MSG = MSG_ID_ELT_FHC_START_RSP_MSG,
+    ELT_TEMP_BACKOFF_SET_RSP_MSG = MSG_ID_ELT_TEMP_BACKOFF_SET_RSP_MSG,
+    ELT_TEMP_BACKOFF_GET_RSP_MSG = MSG_ID_ELT_TEMP_BACKOFF_GET_RSP_MSG,
+    ELT_RCP_TX_AGC_CTRL_RSP_MSG = MSG_ID_ELT_RCP_TX_AGC_CTRL_RSP_MSG,
+    ELT_RCP_ACC_RTB_RSP_MSG = MSG_ID_ELT_RCP_ACC_RTB_RSP_MSG,
+    RCP_TXAGC_RTC_PWR_REF_PARAM_MSG = MSG_ID_RCP_TXAGC_RTC_PWR_REF_PARAM_MSG,
+    ELT_DO_ICS_TST_CHECK_RPT_MSG = MSG_ID_ELT_RMC_ICS_TST_CHECKRPT_MSG,
+    ELT_RMC_RX_TX_ACT_SLOT_QUERY_RSP_MSG = MSG_ID_ELT_RMC_RX_TX_ACT_SLOT_QUERY_RSP_MSG,
+    ELT_TST_RX_ANTENNA_TESTMODE_SET_RSP_MSG = MSG_ID_ELT_TST_RX_ANTENNA_TESTMODE_SET_RSP_MSG,
+    ELT_TST_AT_SIM_RX_RSSI_RSP_MSG = MSG_ID_ELT_TST_AT_SIM_RX_RSSI_RSP_MSG,
+    ELT_TST_TEMP_READ_RSP_MSG = MSG_ID_ELT_TST_TEMP_READ_RSP_MSG,
+#if (defined(MTK_PLT_ON_PC_IT))||(defined(MTK_C2K_L1_TST))    
+    ELT_C2K_PHYUT_RPT_MSG       = MSG_ID_ELT_C2K_PHYUT_RPT_MSG,
+#endif    
+	ELT_L1D_TX_RESULTS_MSG = MSG_ID_UTS_L1D_TX_RESULTS_MSG,
+    ELT_RESULT_CHECK_RESP_MSG = MSG_ID_ELT_RESULT_CHECK_RESP_MSG,
+    ELT_RBS_SCENARIO_CONTROL_CONFIG_IND_MSG    = MSG_ID_ELT_RBS_SCENARIO_CONTROL_CONFIG_IND_MSG,
+    ELT_RBS_SCENARIO_CONTROL_TRIGGERED_IND_MSG = MSG_ID_ELT_RBS_SCENARIO_CONTROL_TRIGGERED_IND_MSG,
+    ELT_RBS_SCENARIO_CONTROL_RPT_IND_MSG = MSG_ID_ELT_RBS_SCENARIO_CONTROL_RPT_IND_MSG, 
+    ELT_CLC_ALMP_REL_CONN_SHDR_RSP_MSG = MSG_ID_ELT_CLC_ALMP_REL_CONN_SHDR_RSP_MSG
+
+}irat_itf_msg_id_enum;
+
+#include "c2k_irat_msg_struct.h"
+
+/* make the c2k irat message sturcture 1 byte alignment in PC IT
+ * For NWSIM project is 1 byte strucuter member aligment
+ */
+#if 0
+#ifdef MTK_PLT_ON_PC_IT
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif
+
+#include "mrs_as_irat_enums.h"  
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_bool result;
+} mrs_cas_occupy_lla_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   MRS_RAT_MODE_TYPE rat;
+} mrs_cas_get_lla_occupy_rat_cnf_struct;
+
+#if defined(MTK_PLT_ON_PC_UT)
+typedef struct {
+   LOCAL_PARA_HDR
+   MRS_SIM_INDEX    sim_index;
+   MRS_RAT_MODE_TYPE    rat;
+   MRS_OCCUPY_PROCEDURE procedure;
+} c2k_mrs_cas_occupy_lla_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   MRS_SIM_INDEX    sim_index;
+   MRS_RAT_MODE_TYPE    rat;
+} c2k_mrs_cas_release_lla_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   MRS_SIM_INDEX sim_index;
+} c2k_mrs_cas_get_lla_occupy_rat_req_struct;
+/*LLA temp solution end*/
+#endif
+
+#ifdef MTK_PLT_ON_PC_IT
+/* include vmmi_struct in NWSIM SigDb */
+#include "vmmi_msg_struct.h"
+#include "elt_msgid.h"
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif
+
+/* NOTE!!!!! please add inlcude target specific header files above in #else branch
+ * DONOT add here
+ */
+
+#endif /* MTK_DEV_C2K_IRAT */
+
+#endif /* _IRATAPI_H */
+
+
diff --git a/mcu/interface/protocol/as_c2k/common/l3_inc_enums_public.h b/mcu/interface/protocol/as_c2k/common/l3_inc_enums_public.h
new file mode 100644
index 0000000..39fd4dd
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/l3_inc_enums_public.h
@@ -0,0 +1,263 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+#ifndef _L3_INC_ENUMS_PUBLIC_H
+#define _L3_INC_ENUMS_PUBLIC_H
+
+/* Phase out MAX_NUM_HPLMN since MD1 always uses MD1_MAX_NUM_HPLMN */
+#if 0
+/* under construction !*/
+/* under construction !*/
+#ifdef __R7_EHPLMN__
+/* under construction !*/
+#else
+/* under construction !*/
+#endif
+#endif
+/* PLMN_INFO_MAX_NUM_HPLMN should be MAX_NUM_HPLMN when __R7_EHPLMN__ is ON*/
+/* Cross-Core API cannot support compile option, MD3 cannot get correct MAX_NUM_HPLMN when __R7_EHPLMN__ is ON */
+/* Remain PLMN_INFO_MAX_NUM_HPLMN as 4 since MD1<->MD3 can sends EHPLMNs multiple times. */
+#define PLMN_INFO_MAX_NUM_HPLMN 4
+
+/* PLMN info TRX_ID = 0~15 */
+#define PLMN_INFO_MAX_TRX_ID_NUM 16
+
+/* Gibran 20090525: Added for Network Sharing multiple PLMN and DSAC */
+#define MAX_NUM_MULTI_PLMN    12
+
+/** Max OPLMN,UPLMN length */
+#ifndef NWSEL_MAX_NUM_PLMNS
+#define NWSEL_MAX_NUM_PLMNS               (128)
+#endif
+
+typedef enum
+{
+    ACT_SIM_NONE = 0,
+    ACT_SIM_SIM1,
+    ACT_SIM_SIM2,
+    ACT_SIM_ANY = 0xFF
+} act_sim_enum;
+
+
+typedef enum{
+    RAT_NONE                = 0,
+    RAT_GSM                 = 1,
+    RAT_UMTS                = 2,
+    RAT_GSM_UMTS            = RAT_GSM | RAT_UMTS,
+    RAT_LTE                 = 4,
+    RAT_GSM_LTE             = RAT_GSM | RAT_LTE,
+    RAT_UMTS_LTE            = RAT_UMTS | RAT_LTE,
+    RAT_GSM_UMTS_LTE        = RAT_GSM_UMTS | RAT_LTE,
+    RAT_COM_GSM             = 8,
+    RAT_C2K                 = 16,
+    RAT_GSM_C2K             = RAT_GSM | RAT_C2K,
+    RAT_UMTS_C2K            = RAT_UMTS | RAT_C2K,
+    RAT_LTE_C2K             = RAT_LTE | RAT_C2K,
+    RAT_GSM_UMTS_C2K        = RAT_GSM_UMTS | RAT_C2K,
+    RAT_GSM_LTE_C2K         = RAT_GSM_LTE | RAT_C2K,
+    RAT_UMTS_LTE_C2K        = RAT_UMTS_LTE | RAT_C2K,
+    RAT_GSM_UMTS_LTE_C2K    = RAT_GSM_UMTS_LTE | RAT_C2K,
+    RAT_1xRTT               = 32,
+    RAT_HRPD                = 64,
+    RAT_1xRTT_HRPD = RAT_1xRTT | RAT_HRPD,
+
+    RAT_NR                  = 128,
+    RAT_GSM_NR              = RAT_GSM | RAT_NR,             // RESERVED but may not use ??
+    RAT_UMTS_NR             = RAT_UMTS | RAT_NR,            // RESERVED but may not use ??
+    RAT_GSM_UMTS_NR         = RAT_GSM_UMTS | RAT_NR,        // RESERVED but may not use ??
+    RAT_LTE_NR              = RAT_LTE | RAT_NR,             // 4+5
+    RAT_GSM_LTE_NR          = RAT_GSM_LTE | RAT_NR,         // will use because of l4c_rat_mode_validator()??
+    RAT_UMTS_LTE_NR         = RAT_UMTS_LTE | RAT_NR,        // 3+4+5
+    RAT_GSM_UMTS_LTE_NR     = RAT_GSM_UMTS_LTE | RAT_NR,    // 2+3+4+5
+    RAT_NR_C2K              = RAT_C2K | RAT_NR,             // 5+c
+    RAT_GSM_NR_C2K          = RAT_GSM_C2K | RAT_NR,         // RESERVED but may not use ??
+    RAT_UMTS_NR_C2K         = RAT_UMTS_C2K | RAT_NR,        // RESERVED but may not use ??
+    RAT_LTE_NR_C2K          = RAT_LTE_C2K | RAT_NR,         // 4+5+c
+    RAT_GSM_UMTS_NR_C2K     = RAT_GSM_UMTS_C2K | RAT_NR,    // RESERVED but may not use ??
+    RAT_GSM_LTE_NR_C2K      = RAT_GSM_LTE_C2K | RAT_NR,     // will use because of l4c_rat_mode_validator()??
+    RAT_UMTS_LTE_NR_C2K     = RAT_UMTS_LTE_C2K | RAT_NR,    // 3+4+5+c
+    RAT_GSM_UMTS_LTE_NR_C2K  = RAT_GSM_UMTS_LTE_C2K | RAT_NR,   // 2+3+4+5+c
+}rat_enum;
+
+
+typedef enum {
+    NWSEL_RAT_NONE = 0, /* Indicate the End Point, means "Do not search other RATs" */
+    NWSEL_GSM      = 0x01,
+    NWSEL_UMTS     = 0x02, /* FDD, WCDMA */
+    NWSEL_GSM_UMTS = NWSEL_GSM | NWSEL_UMTS, /* 0x03 */
+    NWSEL_FDD_LTE   = 0x04,
+    NWSEL_RAT_GSM_FDDLTE  = NWSEL_GSM | NWSEL_FDD_LTE,
+    NWSEL_RAT_UMTS_FDDLTE = NWSEL_UMTS | NWSEL_FDD_LTE,
+    NWSEL_RAT_GSM_UMTS_FDDLTE = NWSEL_GSM | NWSEL_UMTS | NWSEL_FDD_LTE,
+
+    NWSEL_TD_SCDMA = 0x20,
+    NWSEL_TD_LTE  = 0x40,
+    NWSEL_TD_FDD_LTE = NWSEL_FDD_LTE | NWSEL_TD_LTE,   /* 0x44, TD-LTE and FDD-LTE have same priority */
+    NWSEL_RAT_GSM_UMTS_LTE = NWSEL_RAT_GSM_UMTS_FDDLTE | NWSEL_TD_LTE,
+    NWSEL_RAT_ANY = 0xFF     /* Indicate the End Point, means "Other RATs search order are not specified" */
+}nwsel_rat_enum;
+
+/** PS service type */
+typedef enum
+{
+    IRAT_C2K_AI   = 0,          /**< SYSTEM type defined in MSPL: C2K_AI */
+    IRAT_3GPP_AI,               /**< SYSTEM type defined in MSPL: 3GPP_AI */
+    IRAT_C2K_1X,                /**< SYSTEM type defined in MSPL: C2K_1X */
+    IRAT_C2K_HRPD,              /**< SYSTEM type defined in MSPL: C2K_HRPD */
+    IRAT_GERAN,             /**< SYSTEM type defined in MSPL: GSM */
+    IRAT_UTRAN,             /**< SYSTEM type defined in MSPL: WCDMA */
+    IRAT_EUTRAN,            /**< SYSTEM type defined in MSPL: LTE */
+    IRAT_NONE     = 7,      /**< SYSTEM type defined in MSPL: INVALID */
+    IRAT_NR,
+}irat_system_type_enum;
+typedef enum
+{
+   INTO_ELEVATOR,
+   OUT_ELEVATOR,
+   OPEN_DOOR,
+   CLOSE_DOOR,
+   ELEVATOR_UP,
+   ELEVATOR_DOWN,
+   ELEVATOR_STOP,
+   ELEVATOR_MAX  //please add new enum value befor this one
+} elevator_mode_enum;
+
+/** MMSS list feature */
+
+/* Max MMSS record size in system */
+#define SYS_MAX_MMSS_REC_NUM   12
+
+/* Max MMSS record size for GMSS internal used.
+** the value must be greater than SYS_MAX_MMSS_REC_NUM.
+*/
+#define GMSS_MAX_MMSS_REC_NUM  20
+
+typedef enum {
+    MMSS_LIST_RAL = 0,
+    MMSS_LIST_MRU,
+    MMSS_LIST_MAX
+} mmss_list_type_enum;
+
+typedef enum {
+    tele_mpsr_mode_para = 0,
+    tele_mpsr_mode_array = 1,
+} mmss_tele_mpsr_mode_enum;
+
+typedef enum {
+
+    /* Normal MMSS search by MSPL (gmss_class, rat, mcc) and MRU list */
+    MMSS_SEARCH_NORMAL = 0,
+
+    /* Normal MMSS search by MRU list only (not considering gmss_class, rat, mcc)  */
+    MMSS_SEARCH_NORMAL_MRU_ONLY,
+
+    /* Limited search (not considering gmss_class, rat, mcc)
+    **  if carry MMSS_LIST, NWSEL would search MMSS_LIST only
+    **	if not carry MMSS_LIST, NWSEL would search limited service on all RAT
+    */
+    MMSS_SEARCH_LIMITED,
+
+    /* limit search within MMSS list */
+    MMSS_SEARCH_LIMITED_LIST_ONLY,
+
+    /* Better system reselection for C2L IRAT */
+    MMSS_SEARCH_BETTER_SYSTEM_RESELECTION,
+
+    /* Used when UE registered on C2K and end 1xRTT call, try to find LTE back quickly */
+    MMSS_SEARCH_LTE_STORED_ONLY,
+
+} mmss_search_type_enum;
+
+
+typedef enum
+{
+    EMM_PLMN_BASED_T3402,
+    EMM_PLMN_BASED_T3346,
+    EMM_PLMN_BASED_THROTTLING,
+    EMM_PLMN_BASED_T3325,
+    VGMM_PLMN_BASED_T3346,
+    VGMM_PLMN_BASED_T3502,
+    VGMM_PLMN_BASED_T3525,
+    VGMM_PLMN_BASED_SR_THROTTLING    
+} plmn_based_timer_enum;
+
+typedef enum
+{
+    EMM_TIMER_STATUS_START,
+    EMM_TIMER_STATUS_STOP,
+    EMM_TIMER_STATUS_EXPIRY,
+
+    // compiler workaround: defined equal to EMM values because all enum values
+    // must be consided in switch case in gmss code! Otherwice target compiler
+    // fails.
+    VGMM_TIMER_STATUS_START = EMM_TIMER_STATUS_START,
+    VGMM_TIMER_STATUS_STOP= EMM_TIMER_STATUS_STOP,
+    VGMM_TIMER_STATUS_EXPIRY = EMM_TIMER_STATUS_EXPIRY
+} timer_status_enum;
+
+typedef enum
+{
+    /* for normal SRLTE power on case  */
+    CS_REG_CAUSE_NONE = 0,
+
+    /* hVOLTE mode change to SRLTE  */
+    CS_REG_CAUSE_HVOLTE_MODE_LTE_TO_SRLTE = 1,
+
+    /* for international roaming search  */
+    CS_REG_CAUSE_INTERNATIONAL_ROAMING = 2,
+
+    /* MD sarch limited search by itself */
+    CS_REG_CAUSE_LIMITED_SEARCH = 3,
+
+    /* GMSS internally changes from LTE only to SRLTE mode */
+    CS_REG_CAUSE_IMS_TO_1X_REG = 4
+} cs_reg_cause_enum;
+
+/* upperLayerIndication-r15 in SIB2 */
+typedef enum
+{
+    ENDC_SIB_STATUS_UNKNOWN      = 0,
+    ENDC_SIB_STATUS_NOT_SUPPORT  = 1,
+    ENDC_SIB_STATUS_SUPPORT      = 2
+} endc_sib_status_enum;
+
+typedef enum
+{
+    ENDC_SEARCH_DEFAULT    = 0, /* Search both ENDC/Non-ENDC cell. */
+    ENDC_SEARCH_ENDC_ONLY  = 1, /* Search ENDC cell only. */
+    ENDC_SEARCH_NON_ENDC   = 2  /* Search Non-ENDC cell only. */
+} endc_search_enum;
+
+
+#endif /*_L3_INC_ENUMS_PUBLIC_H*/
diff --git a/mcu/interface/protocol/as_c2k/common/mmi_l3_enums_public.h b/mcu/interface/protocol/as_c2k/common/mmi_l3_enums_public.h
new file mode 100644
index 0000000..e9e665b
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/mmi_l3_enums_public.h
@@ -0,0 +1,57 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+#ifndef _MMI_L3_ENUMS_PUBLIC_H
+#define _MMI_L3_ENUMS_PUBLIC_H
+
+/* The following definitions have been packed in enumeration for future
+ * increase of compression algorithms */
+
+typedef enum
+{
+    SND_RFC_1144,
+    SND_NUM_OF_PCOMP_ALGOS,
+    SND_NO_PCOMP,
+    SND_PCOMP_TOTAL_NUM
+}snd_pcomp_algo_enum;
+
+typedef enum
+{
+    SND_V42_BIS,
+    SND_NUM_OF_DCOMP_ALGOS,
+    SND_NO_DCOMP,
+    SND_DCOMP_TOTAL_NUM
+}snd_dcomp_algo_enum;
+
+#endif //_MMI_L3_ENUMS_PUBLIC_H
diff --git a/mcu/interface/protocol/as_c2k/common/ps_custom.h b/mcu/interface/protocol/as_c2k/common/ps_custom.h
new file mode 100644
index 0000000..c9a8e1e
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/ps_custom.h
@@ -0,0 +1,83 @@
+/*************************************************************
+*
+* 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) 2015
+*
+*  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).
+*
+*************************************************************/
+
+/*****************************************************************************
+
+	FILE NAME:
+		ps_custom.h
+	DESCRIPTION:
+		Contains compile macro switch: Disable voice call
+
+*****************************************************************************/
+
+#ifndef _PS_CUSTOM_H_
+#define _PS_CUSTOM_H_
+
+/* Description:
+ *   voice call switch
+ * Option Values:
+ *   KAL_TRUE:  Disable voice call
+ *   KAL_FALSE: Enable voice call
+ */
+#define PS_CUSTOM_VOICE_CALL_DISABLE (KAL_FALSE)
+
+kal_bool psCustomVoiceCallDisabled (void);
+
+
+/* Description:
+ *   MOB_FIRM_REVp default value in code is PSW_DEFAULT_MOB_FIRM_REV (0).
+ *   If want to customize the value, should change this macro value.
+ * Notes:
+ *   If customized the value, MOB_FIRM_REVp will may not be changed by ETS or Nv tools.
+ */
+#define PSW_DEFAULT_MOB_FIRM_REV_FOR_CUSTOM ((kal_uint16)(0))
+
+kal_uint16 psCustomGetMobFirmRev (void);
+
+
+/* Description:
+ *   MOB_MODELp default value in code is PSW_DEFAULT_MOB_MODEL (0).
+ *   If want to customize the value, should change this macro value.
+ * Notes:
+ *   If customized the value, MOB_MODELp will may not be changed by ETS or Nv tools.
+ */
+#define PSW_DEFAULT_MOB_MODEL_FOR_CUSTOM ((kal_uint8)(0))
+
+kal_uint8 psCustomGetMobModel (void);
+
+
+#endif  /* _PS_CUSTOM_H_ */
+
diff --git a/mcu/interface/protocol/as_c2k/common/ps_public_enum_public.h b/mcu/interface/protocol/as_c2k/common/ps_public_enum_public.h
new file mode 100644
index 0000000..ee8b22c
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/ps_public_enum_public.h
@@ -0,0 +1,119 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+#ifndef _PS_PUBLIC_ENUM_PUBLIC_H_
+#define _PS_PUBLIC_ENUM_PUBLIC_H_
+
+//#define MAX_NUM_OF_SUPPORTED_EPSB               15
+
+#define MAX_NUM_OF_SUPPORTED_PDUS               15
+#define MAX_NUM_OF_SUPPORTED_QOS_FLOW           50
+#define MAX_NUM_OF_SUPPORTED_QOS_RULE_PER_PDUS  21       // = 128/16
+#define MAX_NUM_OF_SUPPORTED_QOS_RULE           120     // = 8*15
+#define MAX_NUM_OF_SUPPORTED_PF_PER_PDUS        128
+#define MAX_NUM_OF_SUPPORTED_RQOS_RULE          32      // 16(IPFCore) + 16(IPCore)
+
+#define MAX_APN_LEN             100
+#ifdef __IPC_ADAPTER__
+#define MAX_GPRS_USER_NAME_LEN  101
+#define MAX_GPRS_PASSWORD_LEN   101
+#else // __IPC_ADAPTER__
+#define MAX_GPRS_USER_NAME_LEN 65
+#define MAX_GPRS_PASSWORD_LEN  65
+#endif // __IPC_ADAPTER__
+#define MAX_GPRS_APN_LEN       100
+#define MAX_OPERATOR_SPECIFIC_PCO_CONTENT_LEN 20
+#define MAX_MSISDN_LEN 41 // Refer: MAX_CC_ADDR_BCD_LEN
+
+#define MAX_L4_PS_CID_NUM   MAX_NUM_OF_SUPPORTED_PDUS       // max cid number supported in AT command (bearer/flow level) 
+#define MAX_L4_PS_PDN_NUM   MAX_NUM_OF_SUPPORTED_PDUS       // max pdn counts supported in AT command (PDN/PDUS level)
+#define MAX_L4_PS_EBI_NUM 11   // max pdn counts supported in AT command (PDN/PDUS level)
+
+#define MAX_NUM_OF_SUPPORTED_PF 128
+
+#define L4_PS_NULL_CID 0xFF
+#define L4_PS_NULL_PSI 0 
+#define L4_PS_NULL_EBI 0xFF 
+
+#define L4_PS_MIN_CID 0
+#define L4_PS_MAX_CID (MAX_L4_PS_CID_NUM - 1)
+#define L4_PS_MIN_PSI 1
+#define L4_PS_MAX_PSI (MAX_L4_PS_PDN_NUM) 
+#define L4_PS_MIN_EBI 5
+#define L4_PS_MAX_EBI (L4_PS_MIN_EBI+MAX_L4_PS_EBI_NUM-1) 
+
+#define L4_PS_IS_VALID_CID(id) ((L4_PS_MIN_CID <= id) && (id <= L4_PS_MAX_CID))
+#define L4_PS_IS_VAILD_PSI(id) ((L4_PS_MIN_PSI <= id) && (id <= L4_PS_MAX_PSI))
+#define L4_PS_IS_VAILD_EBI(id) ((L4_PS_MIN_EBI <= id) && (id <= L4_PS_MAX_EBI))
+
+
+typedef enum
+{
+     IPV4_ADDR_TYPE      = 0X21,
+     IPV6_ADDR_TYPE      = 0X57,
+     IPV4V6_ADDR_TYPE    = 0X8D, 
+     PPP_ADDR_TYPE       = 0X01,
+     NON_IP_ADDR_TYPE    = 0X02,
+//     OSP_IHOSS_ADDR_TYPE = 0X02, /* obsolete */
+     NULL_PDP_ADDR_TYPE  = 0X03,  /* This is added incase if no pdpaddrtype is specified */
+     ETHERNET_ADDR_TYPE  = 0x04,
+     UNSTRUCTURED_ADDR_TYPE = 0x05,
+}pdp_addr_type_enum;
+
+typedef enum
+{
+    CLASS_A_START_IP_ADDR = 1,
+    CLASS_A_LAST_IP_ADDR  = 126,    
+    CLASS_B_START_IP_ADDR = 128,
+    CLASS_B_LAST_IP_ADDR  = 191,
+    CLASS_C_START_IP_ADDR = 192,
+    CLASS_C_LAST_IP_ADDR  = 223,        
+}ip_addr_class_enum;
+
+typedef enum
+{
+    IPV4_ADDR_LEN = 0X04,
+    IPV6_ADDR_LEN = 0X10,
+    IPV4V6_ADDR_LEN = 0X14, 
+    PPP_ADDR_LEN  = 0X0,
+    OSP_IHOSS_ADDR_LEN = 0X0,
+    /* NULL_PDP_ADDR_LEN = 0X02  Incase if no pdpaddr is specified then this
+                                 length will be null */
+    NON_IP_ADDR_LEN = 0x0, /* for NON_IP, Ethernet, Unstructured */
+    NULL_PDP_ADDR_LEN = 0X01,
+    MAXIMUM_POSSIBLE_ADDR_LEN = IPV4V6_ADDR_LEN
+}pdp_addr_len_enum;
+
+
+#endif // _PS_PUBLIC_ENUM_PUBLIC_H_
diff --git a/mcu/interface/protocol/as_c2k/common/secapi.h b/mcu/interface/protocol/as_c2k/common/secapi.h
new file mode 100644
index 0000000..94779bc
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/secapi.h
@@ -0,0 +1,243 @@
+/*****************************************************************************
+*  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) 2002-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+* 
+* FILE NAME   : secapi.h
+*
+* DESCRIPTION : API definition for SEC  task.
+*
+* HISTORY     :
+*****************************************************************************/
+#ifndef _SECAPI_H_
+#define _SECAPI_H_
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "syscommon.h"
+#include "hlpapi.h"
+#ifdef CBP7_EHRPD
+#define EAP_AKA_PRIME 1
+#endif
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ Mailbox IDs
+----------------------------------------------------------------------------*/
+#define SEC_CMD_MAILBOX         EXE_MAILBOX_1_ID
+
+/*----------------------------------------------------------------------------
+     Command Message IDs, for SEC task, for SEC_CMD_MAILBOX, EXE_MAILBOX_1_ID
+     The messages IDs for components shall also be put in here.     
+----------------------------------------------------------------------------*/
+#include "secmsg.h"
+
+#ifdef CBP7_EHRPD
+typedef struct {
+   kal_uint8 *key;
+   kal_uint8 keyLen;
+   kal_uint8 *rand;
+   kal_uint16 randLen;
+   kal_uint8 *autn;
+   kal_uint16 autnLen;
+   kal_uint8 *res;
+   kal_uint16 resLen;
+   kal_uint8 *ik;
+   kal_uint16 ikLen;
+   kal_uint8 *ck;
+   kal_uint16 ckLen;
+   kal_uint8 *auts;
+   kal_uint16 autsLen;
+#if EAP_AKA_PRIME
+   kal_uint16 kdf[1];
+   kal_uint16 bidding;
+#endif
+  ExeRspMsgT RspInfo;
+}SecAkaAuthReqMsgT;
+
+typedef struct {
+   kal_uint8 *identity;
+   kal_uint16 identityLen;
+   kal_uint8 *autn;
+   kal_uint16 autnLen;
+   kal_uint8 *ck;
+   kal_uint16 ckLen;
+   kal_uint8 *ik;
+   kal_uint16 ikLen; 
+   kal_uint8 *mk;
+   kal_uint16 mkLen;
+   kal_bool bNeedCKIKDerive;
+   ExeRspMsgT RspInfo;
+}SecAkaDeriveMKReqMsgT;
+
+typedef struct {
+   kal_uint8 *identity;
+   kal_uint16 identityLen;
+   kal_uint8 *counter;
+   kal_uint16 counterLen;
+   kal_uint8 *nonces;
+   kal_uint16 noncesLen; 
+   kal_uint8 *mk;
+   kal_uint16 mkLen;
+   kal_uint8 *Xkey;
+   kal_uint16 XKeyLen;
+   ExeRspMsgT RspInfo;
+}SecAkaDeriveReauthXKeyReqMsgT;
+
+#if EAP_AKA_PRIME
+typedef struct {
+   kal_uint8 *identity;
+   kal_uint16 identityLen;
+   kal_uint8 *counter;
+   kal_uint16 counterLen;
+   kal_uint8 *nonces;
+   kal_uint16 noncesLen; 
+   kal_uint8 *k_re;
+   kal_uint16 k_reLen;
+   kal_uint8 *mk;
+   kal_uint16 mkLen;
+   ExeRspMsgT RspInfo;
+}SecAkaPrimeDeriveReauthMkReqMsgT;
+#endif
+
+typedef struct {
+   kal_uint8 *Key;
+   kal_uint8 *xOut;
+   kal_uint16 xOutLen;
+   ExeRspMsgT RspInfo;
+}SecAkaDeriveMskReqMsgT;
+
+typedef struct {
+   kal_uint8 *key;
+   kal_uint8 *addr1;
+   kal_uint8 *addr2;
+   kal_uint8 *mac;
+   kal_uint8 keyLen; 
+   kal_uint8 addrLen1;
+   kal_uint8 addrLen2;
+   kal_uint8 macLen;
+   ExeRspMsgT RspInfo;
+} SecAkaDeriveMacReqMsgT;
+
+typedef struct {
+   kal_uint8  *msk;
+   kal_uint16 mskLen;
+   kal_uint8 *key;
+   kal_uint16 keyLen;
+   kal_uint8 *pmk;
+   kal_uint16 pmkLen;
+   ExeRspMsgT RspInfo;
+} SecAkaDerivePmkReqMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_uint8 rand[HLP_AKA_RAND_LEN];
+   kal_uint8 autn[HLP_AKA_AUTN_LEN];
+} SecAkaAuthReqTestMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_uint8 identity[HLP_MN_NAI_MAX_SIZE];
+   kal_uint8 ck[EAP_AKA_CK_LEN];
+   kal_uint8 ik[EAP_AKA_IK_LEN];
+} SecAkaDeriveMkReqTestMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_uint8 identity[HLP_MN_NAI_MAX_SIZE];
+   kal_uint8 counter[2];
+   kal_uint8 nonces[EAP_AKA_NONCE_S_LEN];
+   kal_uint8 mk[EAP_AKA_MK_LEN];
+}SecAkaDeriveReauthXKeyReqTestMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_uint8 mk[EAP_AKA_MK_LEN]; 
+} SecAkaDeriveMskReqTestMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_uint8 key[EAP_AKA_K_AUT_LEN];
+   kal_uint8 MsgBodyLen;
+   kal_uint8 MsgBody[100];
+   kal_uint8 ExtraMsgBodyLen;
+   kal_uint8 ExtraMsgBody[100];
+} SecAkaDeriveMacReqTestMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_uint8 key[EAP_AKA_K_AUT_LEN];
+   kal_uint8  msk[EAP_AKA_K_AUT_LEN];
+} SecAkaDerivePmkReqTestMsgT;
+
+typedef struct {
+   ExeRspMsgT RspInfo;
+   kal_bool  bEncrypt;   /*0 - encrypt, 1 - decrypt*/
+   kal_uint8 key[EAP_AKA_K_ENCR_LEN]; 
+   kal_uint8 iv[EAP_AKA_IV_LEN]; 
+} SecAkaAesCryptReqTestMsgT;
+
+typedef struct {
+   kal_uint8 authkey[16];
+   kal_uint8 op[16];
+} SecAkaEtsSetAuthKeyMsgT;
+#endif
+
+typedef struct {
+   kal_bool  bEncrypt;   /*KAL_TRUE - encrypt, KAL_FALSE - decrypt*/
+   kal_uint8 *key; 
+   kal_uint8 *iv; 
+   kal_uint8 *data; 
+   kal_uint16 dataLen;
+   ExeRspMsgT RspInfo;
+}SecAkaAesCryptReqMsgT;
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif 
+
+
diff --git a/mcu/interface/protocol/as_c2k/common/secmsg.h b/mcu/interface/protocol/as_c2k/common/secmsg.h
new file mode 100644
index 0000000..c0dddc1
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/secmsg.h
@@ -0,0 +1,126 @@
+/*****************************************************************************
+*  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-2011 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/*****************************************************************************
+ 
+  FILE NAME:  secmsg.h
+
+  DESCRIPTION:
+
+    This file contains the defenitions of all the SEC msg id's.
+
+*****************************************************************************/
+
+
+/*----------------------------------------------------------------------------
+     Command Message IDs, for SEC task, for SEC_CMD_MAILBOX, EXE_MAILBOX_1_ID
+     The messages IDs for components shall also be put in here.     
+----------------------------------------------------------------------------*/
+#include "module_msg_range.h"
+#undef MSGID_SET 
+#undef MSGID_NEXT 
+#undef MSG_IDS
+#undef SEC_MSG_IDS_NAME  
+
+#ifndef MSG_ID_MISMATCH_DETECT
+
+
+// regular msg id's enum
+#define MSGID_SET(name, val) name = val
+#define MSGID_NEXT(name) name
+#define MSG_IDS typedef enum
+#define SEC_MSG_IDS_NAME SecMsgIdT
+
+extern const kal_uint32 SecValidMsgIdList[];
+extern kal_uint32 SecValidMsgIdListSizeOf(void);
+
+
+#else
+
+
+#ifdef  HWD_MSG_ID_MISMATCH_DETECT
+#define  SECValidMsgIdList HwdSecValidMsgIdList
+#else
+#define  SECValidMsgIdList SecValidMsgIdList
+#endif
+
+
+#define MSGID_SET(name, val) name 
+#define MSGID_NEXT(name) name
+#define MSG_IDS const kal_uint32 SECValidMsgIdList[] =
+#define SEC_MSG_IDS_NAME  
+#endif
+
+
+MSG_IDS
+{
+   /* SEC AKA segment*/
+   MSGID_SET(SEC_AKA_AUTH_REQ_MSG, MSG_ID_SEC_CODE_BEGIN),
+   MSGID_NEXT(SEC_AKA_DERIVEMK_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEREAUTHXKEY_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEMSK_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEMAC_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEPMK_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_AESCRYPT_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_AUTH_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEMK_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEREAUTHXKEY_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEMSK_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEMAC_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_DERIVEPMK_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_AESCRYPT_REQ_TEST_MSG),
+   MSGID_NEXT(SEC_AKA_PRIME_SQN_INIT_MSG),
+
+   /* SEC AKA PRIME MSg */
+   MSGID_NEXT(SEC_AKA_PRIME_DERIVEMK_REQ_MSG),
+   MSGID_NEXT(SEC_AKA_PRIME_DERIVEREAUTHMK_REQ_MSG),
+
+   MSGID_NEXT(SEC_VAL_AESCRYPT_REQ_MSG),
+
+   MSGID_NEXT(SEC_CMD_MSGID_NUM)
+    
+} SEC_MSG_IDS_NAME;
+
+
+
+
diff --git a/mcu/interface/protocol/as_c2k/common/sysKeydef.h b/mcu/interface/protocol/as_c2k/common/sysKeydef.h
new file mode 100644
index 0000000..9be46b6
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/sysKeydef.h
Binary files differ
diff --git a/mcu/interface/protocol/as_c2k/common/sysdefs.h b/mcu/interface/protocol/as_c2k/common/sysdefs.h
new file mode 100644
index 0000000..d53c4f3
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/sysdefs.h
@@ -0,0 +1,418 @@
+/*****************************************************************************
+*  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 SYSDEFS_H
+#define SYSDEFS_H
+#include "kal_public_defs.h"
+#include "c2k_defs.h"
+#include "svc_sap.h"
+/*****************************************************************************
+
+  FILE NAME:  sysdefs.h
+
+  DESCRIPTION:
+
+    This include file provides system wide global type declarations and
+    constants.
+
+*****************************************************************************/
+
+/*---------------------------------------------------------------------
+* The structure ExeRspMsgT is used in the command-response paradigm
+* for many of the tasks.
+*---------------------------------------------------------------------*/
+
+
+#define HWD_RF_SUB_CLASS_0_SUPPORTED (1<<31)
+#define HWD_RF_SUB_CLASS_1_SUPPORTED (1<<30)
+#define HWD_RF_SUB_CLASS_2_SUPPORTED (1<<29)
+#define HWD_RF_SUB_CLASS_3_SUPPORTED (1<<28)
+#define HWD_RF_SUB_CLASS_4_SUPPORTED (1<<27)
+#define HWD_RF_SUB_CLASS_5_SUPPORTED (1<<26)
+#define HWD_RF_SUB_CLASS_6_SUPPORTED (1<<25)
+#define HWD_RF_SUB_CLASS_7_SUPPORTED (1<<24)
+#define HWD_RF_SUB_CLASS_8_SUPPORTED (1<<23)
+#define HWD_RF_SUB_CLASS_9_SUPPORTED (1<<22)
+#define HWD_RF_SUB_CLASS_10_SUPPORTED (1<<21)
+#define HWD_RF_SUB_CLASS_11_SUPPORTED (1<<20)
+#define HWD_RF_SUB_CLASS_12_SUPPORTED (1<<19)
+#define HWD_RF_SUB_CLASS_13_SUPPORTED (1<<18)
+#define HWD_RF_SUB_CLASS_14_SUPPORTED (1<<17)
+#define HWD_RF_SUB_CLASS_15_SUPPORTED (1<<16)
+
+#define HWD_RF_SUB_CLASS_0_UNSUPPORTED (0<<31)
+#define HWD_RF_SUB_CLASS_1_UNSUPPORTED (0<<30)
+#define HWD_RF_SUB_CLASS_2_UNSUPPORTED (0<<29)
+#define HWD_RF_SUB_CLASS_3_UNSUPPORTED (0<<28)
+#define HWD_RF_SUB_CLASS_4_UNSUPPORTED (0<<27)
+#define HWD_RF_SUB_CLASS_5_UNSUPPORTED (0<<26)
+#define HWD_RF_SUB_CLASS_6_UNSUPPORTED (0<<25)
+#define HWD_RF_SUB_CLASS_7_UNSUPPORTED (0<<24)
+#define HWD_RF_SUB_CLASS_8_UNSUPPORTED (0<<23)
+#define HWD_RF_SUB_CLASS_9_UNSUPPORTED (0<<22)
+#define HWD_RF_SUB_CLASS_10_UNSUPPORTED (0<<21)
+#define HWD_RF_SUB_CLASS_11_UNSUPPORTED (0<<20)
+#define HWD_RF_SUB_CLASS_12_UNSUPPORTED (0<<19)
+#define HWD_RF_SUB_CLASS_13_UNSUPPORTED (0<<18)
+#define HWD_RF_SUB_CLASS_14_UNSUPPORTED (0<<17)
+#define HWD_RF_SUB_CLASS_15_UNSUPPORTED (0<<16)
+
+
+#define HWD_ST_SYMB_NUM_MASK_26MS       0x000001FF
+#define HWD_ST_SYMB_NUM_MASK            0x000007FF
+
+/* System time interrupt mask definitions */
+#define HWD_FRAME_CNT_INT_MASK      0x0001 /* Frame counter mask */
+
+#ifdef MTK_PLT_ON_PC
+#ifdef MTK_DEV_93M_PREIT
+#define HWD_R_MDGPTM_CODA_VERSION (0xBF2A0000)
+#define HWD_R_MDGPTM_CNT_VALUE1   (0xBF2A0010)
+#define HWD_R_MDGPTM_PRESCALE1    (0xBF2A0014)
+#define HWD_R_MDGPTM_CTRL1        (0xBF2A0018)
+#define HWD_R_MDGPTM_DATA1        (0xBF2A001C)
+#define HWD_R_MDGPTM_CNT_VALUE2   (0xBF2A0020)
+#define HWD_R_MDGPTM_PRESCALE2    (0xBF2A0024)
+#define HWD_R_MDGPTM_CTRL2        (0xBF2A0028)
+#define HWD_R_MDGPTM_DATA2        (0xBF2A002C)
+#define HWD_R_DELAY_TIMER1_CTRL   (0xAAAA0000)
+#define HWD_R_DELAY_TIMER1_DELAY  (0xAAAA0004)
+#define HWD_R_DELAY_TIMER2_CTRL   (0xAAAA0008)
+#define HWD_R_DELAY_TIMER2_DELAY  (0xAAAA000C)
+#define HWD_R_DELAY_TIMER3_CTRL   (0xAAAA0010)
+#define HWD_R_DELAY_TIMER3_DELAY  (0xAAAA0014)
+#define HWD_R_DELAY_TIMER4_CTRL   (0xAAAA0018)
+#define HWD_R_DELAY_TIMER4_DELAY  (0xAAAA001C)
+#define HWD_R_DELAY_TIMER5_CTRL   (0xAAAA0020)
+#define HWD_R_DELAY_TIMER5_DELAY  (0xAAAA0024)
+
+/* Bit0: FR_FH_SWI,
+   Bit1: DO_CRP_SWI,
+   Bit2: BACKUP_SWI */
+#define HWD_SWI_TRIGGER           (0xBFFF0000)
+
+#define FR_FH_SWI_ENABLE          (1U << 0)
+#define DO_RCP_SWI_ENABLE         (1U << 1)
+#define BACKUP_SWI_ENABLE         (1U << 2)
+
+#define FRC_VAL_R                 (0xA00D0830)
+#define FRC_VAL_R_H               (0xA00D0834)
+
+#endif
+#endif
+
+
+typedef struct
+{
+    module_type    dest_mod_id;  /* Destination module ID of response message */
+    kal_uint32     MsgId;
+}ExeRspMsgT;
+
+typedef kal_uint32 HwdRegT;
+/*-----------------**
+** Register Access **
+**-----------------*/
+#if defined (SIM_MT6280) && defined (MTK_PLT_ON_PC_IT) && !defined (GEN_FOR_PC)
+#include "simul_public.h"
+#elif defined (MTK_PLT_ON_PC)
+// Include the software model
+// Note: Included here as the HwdRegT type above needs to be defined.
+#include "c2k_dma_model_api.h"
+#endif
+
+#ifdef MTK_PLT_ON_PC
+#if defined (MTK_PLT_ON_PC_IT) && defined (SIM_MT6280)
+    #define HwdWrite(REG, VAL) HW_WRITE(((volatile int*)REG),VAL)
+    #define HW_WRITE(ptr,data) RegSimSimulateWrite( (int)(ptr), (data), sizeof(*(ptr)), __FILE__, __LINE__ )
+#else
+    #define HwdWrite(Reg, Data) hwd_write((HwdRegT)(Reg), Data)
+#endif
+#else
+    #define HwdWrite(Reg, Data) \
+                   *((volatile HwdRegT*) (Reg)) = (Data)
+#endif
+
+
+#if defined MTK_PLT_ON_PC
+#if defined (MTK_PLT_ON_PC_IT) && defined (SIM_MT6280)
+    #define HwdRead(REG) HW_READ(((volatile int*)REG))
+    #define HW_READ(ptr) RegSimSimulateRead( (int)(ptr), sizeof(*(ptr)), __FILE__, __LINE__ )
+#else
+    #define HwdRead(Reg) hwd_read((HwdRegT)(Reg))
+#endif
+#else
+    #define HwdRead(Reg) \
+                    (*((volatile kal_uint16*) (Reg)))
+#endif
+
+#undef HwdClearBit32
+#ifdef MTK_PLT_ON_PC
+#define HwdClearBit32( Reg, BitMask ) hwd_clear_bit((HwdRegT)Reg, BitMask)
+#else
+#define    HwdClearBit32( Reg, BitMask ) \
+        *( (volatile kal_uint32 *)(Reg) ) = *((volatile kal_uint32 *)(Reg)) & ~((kal_uint32)(BitMask))
+#endif
+
+#undef HwdClearBit16
+#ifdef MTK_PLT_ON_PC
+#define HwdClearBit16( Reg, BitMask ) hwd_clear_bit(Reg, BitMask)
+#else
+#define    HwdClearBit16( Reg, BitMask ) \
+        *( (volatile kal_uint16 *)(Reg) ) = *((volatile kal_uint16 *)(Reg)) & ~((kal_uint16)(BitMask))
+#endif
+
+#undef HwdClearBit8
+#ifdef MTK_PLT_ON_PC
+#define HwdClearBit8( Reg, BitMask ) hwd_clear_bit(Reg, BitMask)
+#else
+#define    HwdClearBit8( Reg, BitMask ) \
+        *( (volatile kal_uint8 *)(Reg) ) = *((volatile kal_uint8 *)(Reg)) & ~((kal_uint8)(BitMask))
+#endif
+
+    /* 32-Bit Register MACROS - used by USB */
+#undef HwdWrite32
+#ifdef MTK_PLT_ON_PC
+#define HwdWrite32(Reg, Data) hwd_write_32((HwdRegT)(Reg), Data)
+#else
+#define HwdWrite32(Reg, Data) \
+        *((volatile kal_uint32*)(Reg)) = (kal_uint32)(Data)
+#endif
+
+#undef HwdRead32
+#if defined MTK_PLT_ON_PC
+#if defined (MTK_PLT_ON_PC_IT) && defined (SIM_MT6280)
+#define HwdRead32(REG) hwd_read_32((HwdRegT)(REG))
+#else
+#define HwdRead32(Reg) hwd_read_32((HwdRegT)(Reg))
+#endif
+#else
+#define HwdRead32(Reg) \
+               (*((volatile kal_uint32*) (Reg)))
+#endif
+
+#undef HwdSetBit32
+#ifdef MTK_PLT_ON_PC
+#define HwdSetBit32( Reg, BitMask ) hwd_set_bit_32((HwdRegT)Reg, BitMask)
+#else
+#define    HwdSetBit32( Reg, BitMask )    \
+        *( (volatile kal_uint32 *)(Reg) ) = *((volatile kal_uint32 *)(Reg)) | ((kal_uint32)(BitMask))
+#endif
+
+#undef HwdResetBit32
+#ifdef MTK_PLT_ON_PC
+#define HwdResetBit32( Reg, BitMask ) hwd_reset_bit_32(Reg, BitMask)
+#else
+#define    HwdResetBit32( Reg, BitMask ) \
+        *((volatile kal_uint32 *)(Reg)) = *((volatile kal_uint32 *)(Reg)) & ~((kal_uint32)(BitMask))
+#endif
+
+    /* 16-Bit Register MACROS  */
+#undef HwdWrite16
+#ifdef MTK_PLT_ON_PC
+#define HwdWrite16(Reg, Data) hwd_write_16(Reg, Data)
+#else
+#define HwdWrite16(Reg, Data) \
+                *((volatile kal_uint16*) (Reg)) = (Data)
+#endif
+
+#undef HwdRead16
+#ifdef MTK_PLT_ON_PC
+#if defined (MTK_PLT_ON_PC_IT) && defined (SIM_MT6280)
+#define HwdRead16(rEG) (kal_int16)(HW_READ((volatile kal_uint32*)rEG) & 0xffff)
+#else
+#define HwdRead16(rEG) hwd_read_16(rEG)
+#endif
+#else
+#define HwdRead16(Reg) \
+               (*((volatile kal_uint16*) (Reg)))
+#endif
+
+#undef HwdSetBit16
+#ifdef MTK_PLT_ON_PC
+#define HwdSetBit16( Reg, BitMask ) hwd_set_bit_16(Reg, BitMask)
+#else
+#define    HwdSetBit16( Reg, BitMask )    \
+               *( (volatile kal_uint16 *)(Reg) ) = *((volatile kal_uint16 *)(Reg)) | ((kal_uint16)(BitMask))
+#endif
+
+#undef HwdResetBit16
+#ifdef MTK_PLT_ON_PC
+#define HwdResetBit16( Reg, BitMask ) hwd_reset_bit_16(Reg, BitMask)
+#else
+#define    HwdResetBit16( Reg, BitMask ) \
+               *((volatile kal_uint16 *)(Reg)) = *((volatile kal_uint16 *)(Reg)) & ~((kal_uint16)(BitMask))
+#endif
+
+
+    /* 8-Bit Register MACROS - used by EBI */
+#undef HwdWrite8
+#ifdef MTK_PLT_ON_PC
+#define HwdWrite8(Reg, Data) hwd_write_8(Reg, Data)
+#else
+#define HwdWrite8(Reg, Data) \
+        *((volatile kal_uint8*) (Reg)) = (Data)
+#endif
+
+#undef HwdRead8
+#ifdef MTK_PLT_ON_PC
+#define HwdRead8(Reg) hwd_read_8(Reg)
+#else
+#define HwdRead8(Reg) \
+       (*((volatile kal_uint8*) (Reg)))
+#endif
+
+#undef HwdSetBit8
+#ifdef MTK_PLT_ON_PC
+#define HwdSetBit8( Reg, BitMask ) hwd_set_bit_8(Reg, BitMask)
+#else
+#define    HwdSetBit8( Reg, BitMask )    \
+        *( (volatile kal_uint8 *)(Reg) ) = *((volatile kal_uint8 *)(Reg)) | ((kal_uint8)(BitMask))
+#endif
+
+#undef HwdResetBit8
+#ifdef MTK_PLT_ON_PC
+#define HwdResetBit8( Reg, BitMask ) hwd_reset_bit_8(Reg, BitMask)
+#else
+#define    HwdResetBit8( Reg, BitMask ) \
+        *((volatile kal_uint8 *)(Reg)) = *((volatile kal_uint8 *)(Reg)) & ~((kal_uint8)(BitMask))
+#endif
+/*--------------------------------------------------------------------
+* Define system wide data types
+*--------------------------------------------------------------------*/
+
+#if defined (MTK_PLT_ON_PC)
+#define __func__ "func not known"
+#endif
+#define __MODULE__ __FILE__
+
+
+#include "ottsdefs.h"
+
+typedef double          DOUBLE;       /* Double precision IEEE */
+
+#define CONST const
+#define ROM
+
+#define YES     KAL_TRUE
+#define NO      KAL_FALSE
+
+#define PASS    1
+#define FAIL    0
+
+/* A NULL value is required such that it is not mistaken for a valid */
+/* value which includes values in the range of modulo 64. */
+#define NULL_VAL  0xFF
+
+#define ENABLED     KAL_TRUE
+#define DISABLED    KAL_FALSE
+
+#ifndef BIT0
+#define BIT0     0x01
+#define BIT1     0x02
+#define BIT2     0x04
+#define BIT3     0x08
+#define BIT4     0x10
+#define BIT5     0x20
+#define BIT6     0x40
+#define BIT7     0x80
+#define BIT8     0x100
+#define BIT9     0x200
+#define BIT10    0x400
+#define BIT11    0x800
+#define BIT12    0x1000
+#define BIT13    0x2000
+#define BIT14    0x4000
+#define BIT15    0x8000
+#define BIT16    0x10000UL
+#define BIT17    0x20000UL
+#define BIT18    0x40000UL
+#define BIT19    0x80000UL
+#define BIT20    0x100000UL
+#define BIT21    0x200000UL
+#define BIT22    0x400000UL
+#define BIT23    0x800000UL
+#define BIT24    0x1000000UL
+#define BIT25    0x2000000UL
+#define BIT26    0x4000000UL
+#define BIT27    0x8000000UL
+#define BIT28    0x10000000UL
+#define BIT29    0x20000000UL
+#define BIT30    0x40000000UL
+#define BIT31    0x80000000UL
+#endif
+
+typedef enum
+{
+   HWD_ENABLE = 0,
+   HWD_DISABLE,
+   HWD_LOAD
+} HwdCtrlModeT;
+
+/* Min and Max macros.
+ */
+#ifndef MTK_PLT_ON_PC
+#ifndef L1_SIM
+#ifndef max
+#define max(x,y)  (((x) > (y)) ? (x) : (y))
+#endif /* max */
+
+#ifndef min
+#define min(x,y)  (((x) > (y)) ? (y) : (x))
+#endif /* min */
+#endif
+#endif
+
+#ifndef MAX
+#define MAX(x,y)  (((x) > (y)) ? (x) : (y))
+#endif
+
+#ifndef MIN
+#define MIN(x,y)  (((x) < (y)) ? (x) : (y))
+#endif
+
+/* legacy SE1 HISRs */
+#define FMP_HW_SLOT_FOUND_HISR  DOSF_DO_SLOT_FOUND_HISR
+
+#endif
+/**Log information: \main\CBP80\cbp80_cshen_scbp10098\1 2012-07-26 06:27:47 GMT cshen
+** cbp80_cshen_scbp10098**/
diff --git a/mcu/interface/protocol/as_c2k/common/systyp.h b/mcu/interface/protocol/as_c2k/common/systyp.h
new file mode 100644
index 0000000..f9a652f
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/systyp.h
@@ -0,0 +1,301 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+#ifndef _SYSTYP_H_
+#define _SYSTYP_H_
+/*****************************************************************************
+
+  FILE NAME: systyp.h
+
+  DESCRIPTION:
+
+     This file contains all the routines used to support 1x and DO CDMA system time.
+
+*****************************************************************************/
+
+/*----------------------------------------------------------------------------
+ Include Files
+----------------------------------------------------------------------------*/
+#include "sysapi.h"
+#include "cphsystime.h"
+
+/*----------------------------------------------------------------------------
+ Global Defines and Macros
+----------------------------------------------------------------------------*/
+#define C2K_SYS_PROTECT_ITC   KAL_ITC_C2K_SYS_PROTECT
+#define C2K_SLEEP_ITC         KAL_ITC_C2K_SLEEP_L
+
+/* Subchip */
+#define ST_9M_CNTS_PER_1PT28S             0xC00000
+#define ST_9M_CNTS_PER_80MS               0xC0000
+#define ST_9M_CNTS_PER_20MS               0x30000
+#define ST_9M_CNTS_PER_26MS               0x40000
+#define ST_9M_CNTS_PER_26MS_BITMASK       0x3FFFFUL
+#define ST_9M_CNTS_TO_26MS_SHIFT          18
+#define ST_9M_CNTS_PER_1PT25MS            0x3000
+#define ST_9M_CNTS_PER_1PT67MS            0x4000
+#define ST_9M_CNTS_PER_1PT67MS_BITMASK    0x3FFFUL
+#define ST_9M_CNTS_TO_1PT67MS_SHIFT       14
+#define ST_9M_CNTS_PER_SUBFRAME           0x1000
+#define ST_9M_CNTS_PER_SUBFRAME_BITMASK   0x0FFFUL
+#define ST_9M_CNTS_TO_SUBFRAME_SHIFT      12
+#define ST_9M_CNTS_PER_SYMB               0x200
+#define ST_9M_CNTS_PER_SYMB_BITMASK       0x1FFUL
+#define ST_9M_CNTS_TO_SYMB_SHIFT          9
+#define ST_9M_CNTS_PER_CHIP               0x8
+#define ST_9M_CNTS_PER_CHIP_BITMASK       0x7UL
+#define ST_9M_CNTS_TO_CHIP_SHIFT          3
+#define ST_9M_CNTS_PER_32K                300
+#define ST_9M_CNTS_PER_300CHIP            0x960
+
+#define ST_9M_CNTS_PER_HALFCHIP           0x4
+#define ST_9M_CNTS_PER_HALFCHIP_BITMASK   0x3UL
+#define ST_9M_CNTS_TO_HALFCHIP_SHIFT      2
+
+
+/* Subframe: 1 subframe = 512 chips */
+#define ST_SUBFRAMES_PER_80MS             0xC0   /* Super frame has 192 subframe */
+#define ST_SUBFRAMES_PER_20MS             0x30   /* 20ms frame has 48 subframe */
+#define ST_SUBFRAMES_PER_26MS             0x40   /* 26.6ms frame has 64 subframe */
+#define ST_SUBFRAME_TO_26MS_FRAME_SHIFT   6
+#define ST_SUBFRAME_TO_SLOTS_SHIFT        2
+
+#define BIT31                          0x80000000UL
+#define BIT10                          0x400
+#define BIT5                           0x20
+#define LED_TOGGLE_COUNT               0x1F    /* LED blink rate */
+#define SLOT_PER_FRAME                 16  /* Slot/PCG numbers per Frame */
+#define ALL_SLOTS_MASK                 0xF  
+#define SIZE_SYS_TIME_REC              sizeof(SysTimeRecT) /* Size of System time record in bytes */
+#define NUM_SYS_TIME_REC               40  /* Number of entries in system time Q */
+#define SECS_PER_HOUR                  3600
+#define QUEUE_WRAP                     1
+#define ENTRY_NOT_FOUND                0xFF
+#define MODE_TYPE_MAX                  (SYS_MODE_EVDO+1)
+
+/* Tx signals are configured to occur at subframe boundaries */
+#define TX_SIGNAL_5MS_MASK      (ST_CPINT_0 | ST_CPINT_500 | ST_CPINT_1000 | ST_CPINT_1500)
+#define TX_SIGNAL_10MS_MASK     (ST_CPINT_0 | ST_CPINT_1000)
+#define TX_SIGNAL_20MS_MASK     (ST_CPINT_875)
+
+#define TX_SIGNAL_SUBFRAME_0_MASK    ST_CPINT_0
+#define TX_SIGNAL_SUBFRAME_1_MASK    ST_CPINT_500
+#define TX_SIGNAL_SUBFRAME_2_MASK    ST_CPINT_1000
+#define TX_SIGNAL_SUBFRAME_3_MASK    ST_CPINT_1500
+
+
+
+/*---------------------------------------------------------------
+*  Macro Define for sysdo timer
+*----------------------------------------------------------------*/
+#ifndef MTK_PLT_ON_PC
+#define IRQ_EVDO_SLOT_TIMER_CODE       IRQ_STDO_CPINT_CODE
+#define IRQ_1XRTT_SLOT_TIMER_CODE      IRQ_ST1X_CPINT_CODE
+#define IRQ_EV_HALF_SLOT_TIMER_CODE    IRQ_STDO_HALF_CPINT_CODE
+#define IRQ_RT_HALF_SLOT_TIMER_CODE    IRQ_ST1x_HALF_CPINT_CODE
+#else
+#define IRQ_EVDO_SLOT_TIMER_CODE       OSC_ISR_SRC_CUSTOM12
+#define IRQ_1XRTT_SLOT_TIMER_CODE      OSC_ISR_SRC_CUSTOM13
+#define IRQ_EV_HALF_SLOT_TIMER_CODE    OSC_ISR_SRC_CUSTOM14
+#define IRQ_RT_HALF_SLOT_TIMER_CODE    OSC_ISR_SRC_CUSTOM16
+#endif
+
+/*---------------------------------------------------------------
+* Debug Define in here 
+*----------------------------------------------------------------*/
+
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+/* Define System Time Queue Structure */
+typedef enum
+{
+   SLOT_QUEUE,                 /* Slot based callback register, Single or Periodic */
+   ACTION_QUEUE,               /* Action Time based callback register, Only Single */
+   ACTION_QUEUE_WRAP,          /* Action Time based callback register, Only Single */
+   SYS_QUEUE_TYPE_MAX 
+} SysQueueTypeT;
+
+#define NUM_SYS_TIME_TRIGS  2
+typedef struct StRecStruct
+{
+   struct StRecStruct *NextP;
+   kal_uint32 Trigger[NUM_SYS_TIME_TRIGS];/* Trigger[0] = SlotMask, Trigger[1] = ActionTime in 1/4 slot units */
+   void (*Routine) (kal_uint32);    /* Registered Callback Routine */
+   module_type module_id;           /* Requested Task ID */
+   msg_type message;           /* Registered Callback Signal */
+   SysEventTypeT Event;         /* Single or Periodic Shot */
+   SysTagTypeT Tag;             /* Flush or keep with AirInterface Type */
+} SysTimeRecT;
+
+
+typedef enum
+{
+   SYS_TIME_CB_NONE,
+   SYS_TIME_CB_QUEUE_WRAP,
+   SYS_TIME_CB_REGISTER,
+   SYS_TIME_CB_CANCEL,
+   SYS_TIME_CB_GROUP_CANCEL,
+   SYS_TIME_CB_CHANGE_FRAMEOFFSET
+} SysTimeCbOperationT;
+
+typedef struct
+{
+   SysAirInterfaceT AirInterface;
+} SysTimeCbQueWrapParamT;
+
+typedef struct
+{
+   kal_uint32     ActionTime;
+   kal_uint16     SlotNum;
+   SysTagTypeT    TagType;
+   SysEventTypeT  EventType;
+   module_type    module_id;
+   msg_type       message;
+   void           (*Routine) (kal_uint32);
+} SysTimeCbRegParamT;
+
+typedef struct
+{
+   kal_uint32     ActionTime;
+   kal_uint16     SlotNum;
+   SysTagTypeT    TagType;
+   SysEventTypeT  EventType;
+   module_type    module_id;
+   msg_type       message;
+   void           (*Routine) (kal_uint32);
+} SysTimeCbCancelParamT;
+
+typedef struct
+{
+   SysAirInterfaceT  AirInterface;
+   module_type       module_id;
+   msg_type          message;
+} SysTimeCbGroupCancelParamT;
+
+typedef struct
+{
+   SysAirInterfaceT  AirInterface;
+   kal_uint16        FrameOffset;
+} SysTimeCbChgFrmOftParamT;
+
+
+typedef union
+{   
+   SysTimeCbQueWrapParamT     QueWrapParam;
+   SysTimeCbRegParamT         RegParam;
+   SysTimeCbCancelParamT      CancelParam;
+   SysTimeCbGroupCancelParamT GroupCancelParam;
+   SysTimeCbChgFrmOftParamT   ChgFrmOftParam;
+} SysTimeCbParamT;
+
+typedef struct
+{
+   SysTimeCbOperationT  Operation;
+   SysTimeCbParamT      Param;
+} SysTimeHrtRecT;
+
+/* Define system time queue header format */
+typedef struct StQHeaderStruct
+{
+   kal_int8     TotalRegNum;                         /* Total number of registered callbacks */
+   kal_uint8    RegNum[SYS_QUEUE_TYPE_MAX];         /* Subtotal of registered callbacks in corresponding queue */ 
+   SysTimeRecT *FirstP[SYS_QUEUE_TYPE_MAX];  /* points to first element in corresponding queue */
+   kal_uint8    AssignedSlot[SLOT_PER_FRAME];       /* To set or clear the interrupts mask */
+} SysTimeQueueT;
+
+/* Define system time queue stats for Debugging purpose */
+typedef struct
+{
+   kal_uint16 Num[SYS_QUEUE_TYPE_MAX];  /* Current registered record number */
+   kal_uint16 MaxNum;                   /* Maximum used record number */
+} SysTimeQueueStatsT;
+
+/* Define Single System Time, 1/4 slot based unit e.g., 416usec */
+typedef struct
+{
+   FrameRecT   Frame;
+   kal_uint8   Slot;
+   kal_uint16  FineCnt;
+   kal_uint16  PrevCnt;
+   kal_uint16  FrameSize;      /* In 512chips*/
+   kal_uint16  FrameSizeEchip; /* In echip */
+   kal_uint16  Offset;
+} SysFrameRecT;
+
+/* For Transition from 1x to do or vise versa */
+typedef enum
+{
+   SYS_TIME_STATUS_RESET,
+   SYS_TIME_STATUS_RESYNC,
+   SYS_TIME_STATUS_CURRENT
+} SysTimeStatusT;
+
+typedef struct
+{
+  kal_uint32      AirInterfaceBM; /* air interface bit map */
+  kal_uint8       Status[MODE_TYPE_MAX];
+  kal_uint32      SystemTimeQtrSlot[SYS_MODE_MAX];
+  SysFrameRecT    Frame[MODE_TYPE_MAX];
+  kal_uint64      SuperFrame[MODE_TYPE_MAX];
+  SysTimeDataT    CalendarTime;
+  kal_int16       AfcPpb[SYS_MODE_MAX];
+} SysTimeT;
+
+ 
+
+/*---------------------------------------------------------------
+*  Declare Macro defines used in this file
+*----------------------------------------------------------------*/
+
+/*---------------------------------------------------------------
+*  SYS Debug
+*----------------------------------------------------------------*/
+
+
+
+/*****************************************************************************
+* $Log: systyp.h $
+* Initial revision
+*
+*
+*****************************************************************************/
+#endif
+/**Log information: \main\Trophy\Trophy_ylxiao_href22033\1 2013-03-18 14:18:14 GMT ylxiao
+** HREF#22033, merge 4.6.0**/
+/**Log information: \main\Trophy\1 2013-03-19 05:22:46 GMT hzhang
+** HREF#22033 to merge 0.4.6 code from SD.**/
+
+
diff --git a/mcu/interface/protocol/as_c2k/common/vmmi_msg_struct.h b/mcu/interface/protocol/as_c2k/common/vmmi_msg_struct.h
new file mode 100644
index 0000000..ccefe4e
--- /dev/null
+++ b/mcu/interface/protocol/as_c2k/common/vmmi_msg_struct.h
@@ -0,0 +1,2761 @@
+/*******************************************************************************
+ *  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) 2005
+ *
+ *  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).
+ *
+ ******************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ *   vmmi_msg_struct.h
+ *
+ *
+ * Description:
+ * ------------
+ *   This file defines messages that only used in IT
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+#ifndef VMMI_MSG_STRUCT_H
+#define VMMI_MSG_STRUCT_H
+
+#ifdef MTK_DEV_C2K_SRLTE_BASE
+/**********************************************STUB Interface Related*********************************/
+typedef struct
+{
+    kal_uint32            ChannelBitMap;        /*mapping C2K's channel type*/
+    kal_bool              IsPeriodic;           /*indicate the deny pattern is periodic or not*/
+    kal_uint16             PatternBitMap;        /*mapping deny pattern*/
+}RbsDenyPatternParaT_temp;
+
+/* script_rbs_deny_pattern_info*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+	RbsDenyPatternParaT_temp msg;
+}RbsDenyPatternMsg_struct_temp;
+
+/* HSC preempt trigger action type*/
+typedef enum
+{
+    Hybird_preempt_resume,
+    SHDR_preempt_resume,
+    Early_wakeup
+}HscActionTypeE;
+
+typedef struct
+{
+    kal_uint32            ChannelBitMap;         /* mapping C2K's channel type*/
+    kal_bool              GrantPreemptTrig;      /* Indicate RTBA grant or preempt to trigger Hsc preempt flow*/
+    kal_uint8             TimingBitMap;          /* mapping block num and then judge whether to trigger Hsc preempt flow*/
+    kal_uint8             PreemptTimeOffset;     /* preempt timing offset after trigger*/
+    kal_uint8             ResumeTimeOffset;      /* resume timing offset after trigger*/
+    HscActionTypeE        HscActionType;         /* indicate active type, hybrid,SHDR or early wakeup*/
+}HscPreemptTrigParaT_temp;
+
+/* script_hsc_preempt_trig_info*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    HscPreemptTrigParaT_temp msg;
+}HscPreemptTrigMsg_struct_temp;
+
+
+/* TEMP USE FOR EVL1 start*/
+/* RMC_IRATM_CCELL_MEAS_REQ */
+
+/* HSC_CLC_SIB8_INFO_CFG_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   kal_bool                is_update;               /* 0 = Clear,  1 = Update*/
+   sys_time_info_c2k_struct       sib8_sys_time_info;
+} stub_HscClcSib8InfoCfgMsgT_struct;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   SysAirInterfaceT Mode;               /* 0 = 1xRTT,  1 = EvDO*/
+} stub_HscSib8TimingSyncReqMsgT_struct;
+
+/* UT case related definition moved to cl1_elt_msg_struct.h */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                  tid;          /* tid is used by EAS to filter the measurement report from CAS, range: 0..255
+                                                the CCELL_MEAS_IND corresponding to this CCELL_MEAS_REQ should return the same tid */
+    cas_meas_type_enum     measType;    /* indicate the measurement type of this CCELL_MEAS_REQ
+                                                - if 'RESEL' type is selected, the set of sectors indicated in this primitive should be a subset of the previously measured sectors
+                                                - if 'CONNECTED' type is selected, it means EAS is in connected mode and requests CAS to do measurement
+                                                  (in order to distinguish from HP/LP/RESEL modes which used in idle mode)
+                                                - when this primitive is used to stop measurement, EAS should choose correct type to inform CAS which type of measurement should be stopped */
+    kal_uint8                  measPeriod;  /* indicate the absolute measurement period used by C2K to report the measurement results to LTE
+                                                this field is only valid if 'meas_type' = HP_MODE, represent in 'seconds' */
+    kal_uint8                  bandNum;     /* indicate the number of measurement bands, range: 0..MAX_NUM_MEAS_C2K_BAND
+                                                if band_num=0, CAS should stop the measurement specified in the 'meas_type' */
+    cas_meas_band_info_struct  bandList[MAX_NUM_MEAS_C2K_BAND];  /* indicate the measurement information */
+
+} //RmcIratmCcellMeasReqT;
+evstandby_script_cell_meas_req_struct;
+
+/*RMC_IRATM_ACQ_CGI_REQ*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                 tid;                  /* tid is used for EAS to filter the corresponding CNF from CAS, range: 0..255
+                                                       the EAS_REPORT_CGI_CNF corresponding to this EAS_REPORT_CGI_REQ should return the same tid */
+    report_cgi_req_type_enum  reportCgiReqType;  /* identify the request for CGI report is started or stopped */
+    kal_uint8                 band;                 /* indicate the band class of the measured frequency, range: 0..21 */
+    kal_uint16                channel;              /* indicate the ARFCN of the measured frequency, range: 0..2047 */
+    kal_uint8                 searchWinSize;      /* the search window size used by CDMA for the measurement, range: 0..15
+                                                       it should be set according to the value defined in MeasObjectCDMA2000 */
+    kal_uint16                pn;                   /* indicate the C2K cell which needs to acquire CGI */
+} //RmcIratmAcqCgiReqT;
+evstandby_script_acq_cgi_req_struct;
+
+typedef enum {
+    ATPAL_XL1_SEARCH_NULL,
+    ATPAL_XL1_SEARCH_SUCCESS,
+    ATPAL_XL1_SEARCH_NCOH_FAIL,
+    ATPAL_XL1_SEARCH_COH_FAIL,
+    ATPAL_XL1_SEARCH_FDS_FAIL_SUCCESS,
+    ATPAL_XL1_SEARCH_FDS_FAIL_FAIL,
+    ATPAL_XL1_AFLT_TEST_CASE_NSLT,
+    ATPAL_XL1_AFLT_TEST_CASE_TRFC,
+    ATPAL_XL1_SEARCH_NUM
+}
+atpal_xl1_search_case_enum;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    atpal_xl1_search_case_enum           SearchCase;
+    kal_uint32                           case_info[8];
+}
+xl1_script_l1d_test_case_msg_struct;
+
+#ifdef MTK_DEV_93M_PREIT
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool   AfltTstFlag;
+    kal_uint8  Aflt1xMode;
+    kal_uint8  AfltChCntTest;
+} 
+xl1_L1d_Tst_Aflt_msg_struct;
+
+#endif
+
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool   CfsTstFlag;
+} 
+xl1_L1d_Tst_Cfs_msg_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool   DfsTstFlag;
+} 
+xl1_L1d_Tst_Dfs_msg_struct;
+
+
+/*  ELT command temp */
+/* MSG_ID_ELT_CLC_NST_CMD_MSG */
+//#ifdef NWSIM_IT
+typedef struct
+{
+   kal_bool   NstEvdoRev0;  /* EVDO Rev.0 NST */
+   kal_bool   NstEvdoRevA;  /* EVDO Rev.A NST */
+} ClcNstTstMsgT_IT;
+
+
+/* MSG_ID_ELT_RUP_TCA_CMD_MSG */
+/* CDMA Channel Record */
+
+typedef struct
+{
+   kal_uint8             SysType;
+   kal_uint8             BandClass;
+   kal_uint16            Channel;
+}ChanRecGT_IT;
+//#endif
+
+typedef struct
+{
+    kal_uint16       PilotPN;
+    kal_uint8        SofterHandoff;
+    kal_uint8        MACIndexLSBs;
+    kal_uint8        DRCCover;
+    kal_uint8        RABLength;
+    kal_uint8        RABOffset;
+} RupTchPilotRecT_IT;
+
+typedef struct
+{
+    kal_uint8                  ChanInc;
+    ChanRecGT_IT               Chan;
+    kal_uint8                  FrameOffset;
+    kal_uint8                  DRCLength;
+    kal_uint8                  DRCChannelGainBase;
+    kal_uint8                  ACKChannelGain;
+    kal_uint8                  NumPilots;
+    kal_uint8                  RAChannelGainInc;
+    kal_uint8                  RAChannelGain[8];
+    kal_uint8                  MACIndexMSBInc;
+    kal_uint8                  MACIndexMSB[8];
+    kal_uint8                  DSCChannelGainBase;
+    kal_uint8                  DSC[8];
+    RupTchPilotRecT_IT         PilotRec[8];
+} EtsTcaMsgT_IT;
+
+
+/* temp elt command for IT */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} elt_clc_almp_rel_conn_cmd_msg_struct_it,elt_clc_almp_rel_conn_shdr_cmd_msg_struct_it;
+
+typedef struct {
+   kal_uint32 Reserved;
+} IdpSlottedModeSetRspT_it;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IdpSlottedModeSetRspT_it msg;
+} elt_clc_almp_rel_conn_rsp_msg_struct_it,elt_clc_almp_rel_conn_shdr_rsp_msg_struct_it;
+
+typedef struct
+{
+   kal_uint8    RxDiversityCtrl;
+} ClcDoRxDiversityCtrlMsgT_tmp;
+
+typedef struct
+{
+    kal_int16 TestPn;
+    kal_int8  DRCCover;          /* The target DRCCover */
+    kal_int8  DSC;          /* The target DSCCover */
+    kal_int8  PcgId;         /*The target PcgId*/  
+}RcpCsmTestSwtichParamT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ClcNstTstMsgT_IT msg;
+} elt_clc_nst_cmd_msg_struct_it;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} elt_clc_connreq_cmd_msg_struct_it;
+
+/* RMC RUP Related */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EtsTcaMsgT_IT msg;
+} elt_rup_tca_cmd_msg_struct_it;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ClcDoRxDiversityCtrlMsgT_tmp msg;
+} elt_rmc_rx_div_ctrl_msg_struct_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RcpCsmTestSwtichParamT_tmp msg;
+}elt_csm_test_cell_switch_msg_struct_tmp;
+
+
+/** define RF platform information getting command structure */
+typedef struct
+{
+    kal_uint32          Reserved;
+} Cl1TstGetRfPlatInfoCmdT_tmp;
+
+/** define RF platform information getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstGetRfPlatInfoRspT_tmp;
+
+/** define RFD test mode request structure */
+typedef struct
+{
+    /** [in] - bit0: RX test mode
+               bit1: TX test mode
+               bit2: TRX test mode
+    */
+    kal_uint8           TstModeBmp;
+
+    /* Reserved1 */
+    kal_uint8           Reserved1;
+    kal_uint16          Reserved2;
+
+} Cl1TstRfdTestModeReqCmdT_tmp;
+
+/** define RFD test mode confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstRfdTestModeReqRspT_tmp;
+
+/** define MIPI codeword setting command structure */
+typedef struct
+{
+    kal_uint16          MipiPort;
+    kal_uint16          Reserved;
+    kal_uint32          MipiUsid;
+    kal_uint32          MipiAddr;
+    kal_uint32          MipiData;
+} Cl1TstSetMipiCodeWordCmdT_tmp;
+
+/** define MIPI codeword setting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstSetMipiCodeWordRspT_tmp;
+
+/** define MIPI codeword getting command structure */
+typedef struct
+{
+    kal_uint16          MipiPort;
+    kal_uint16          Reserved;
+    kal_uint32          MipiUsid;
+    kal_uint32          MipiAddr;
+} Cl1TstGetMipiCodeWordCmdT_tmp;
+
+/** define MIPI codeword getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* MIPI data */
+    kal_uint32          MipiData;
+} Cl1TstGetMipiCodeWordRspT_tmp;
+
+/** define SPI data setting command structure */
+typedef struct
+{
+    kal_uint16          SpiId;
+    kal_uint16          Reserved;
+    kal_uint32          SpiAddr;
+    kal_uint32          SpiData;
+} Cl1TstSetSpiDataCmdT_tmp;
+
+/** define SPI data setting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstSetSpiDataRspT_tmp;
+
+/** define SPI data getting command structure */
+typedef struct
+{
+    kal_uint16          SpiId;
+    kal_uint16          Reserved;
+    kal_uint32          SpiAddr;
+} Cl1TstGetSpiDataCmdT_tmp;
+
+/** define SPI data getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* SPI data */
+    kal_uint32          SpiData;
+} Cl1TstGetSpiDataRspT_tmp;
+
+/** define RF transmitter control command structure */
+typedef struct
+{
+    /* EVDO or 1xRTT*/
+    kal_uint8           RfMode;
+
+    /* Turn on or off action*/
+    kal_uint8           Action;
+
+    /* 0: signal tone for 1xRTT and EVDO
+       1: reverse 1xRTT signal for 1xRTT
+       2: reverse EVDO pilot only for EVDO
+       3: reverse EVDO subtype2 for EVDO */
+    kal_uint8           SigType;
+
+    /* CDMA Band Class to turn on*/
+    kal_uint8           BandClass;
+
+    /* Channel Number to turn on*/
+    kal_uint16          ChannelNum;
+
+    /* Reserved */
+    kal_uint16          Reserved1;
+
+    /* Frequency offset for tone transmission */
+    kal_uint32          FreqOffset;
+
+    /* Only for RTT */
+    kal_uint8           RevRc;
+
+    /* Only for RTT */
+    kal_uint8           ChnType;
+    /* Only for RTT */
+    kal_uint8           FchRate;
+    /* Only for RTT */
+    kal_uint8           SchRate;
+
+    /* Only for RTT */
+    kal_uint16          GatePat; //GateOn/Off pattern
+
+    /* Only for RTT */
+    kal_uint16          FpcPat;  //FPC pattern
+
+    /* Only for RTT */
+    kal_uint16          TxPreamble;
+
+    /* Only for RTT */
+    kal_uint16          LcmLow;
+
+    /* Only for RTT */
+    kal_uint16          SchWc;   //Walsh code for SCH channel
+
+    /* Only for RTT */
+    kal_uint16          RaDly;   //RA chip delay for access transmission
+
+    /* Only for RTT */
+    kal_uint16          TurboEn;  //Indicate Turbo or CC encode for SCH channel
+    kal_uint16          Reserved2;
+} Cl1TstTransmitCtrlCmdT_tmp;
+
+typedef struct
+{
+    Cl1TstTransmitCtrlCmdT_tmp Msg;
+    kal_uint16          EvChannelType;
+    kal_uint16          EvProtocolSubtype;
+    kal_uint16          EvAuxPilotMiniPayload;
+    kal_uint16          EvDrcGating;
+    kal_uint16          EvDrcBoostLength;
+    kal_uint16          EvDscBoostLength;
+    kal_uint16          EvDrcLength;
+    kal_uint16          EvFrameOffset;
+    /*subype0:0,0,1:9.6K,2:19.2k,3:38.4k,4:76.8k, 5:153.6 */
+    kal_uint16          EvDataRate;
+    kal_uint16          EvDRCCover;
+    kal_uint16          EvDRCCover1;
+    kal_uint16          EvDRCCover2;
+    kal_uint16          EvDRCValue;
+    kal_uint16          EvDRCValue1;
+    kal_uint16          EvDSCValue;
+    kal_uint16          EvDSCValue1;
+    kal_uint16          EvDSCValue2;
+    kal_uint16          EvAckEnalble;
+    kal_uint16          EvAckUserType;
+    kal_uint16          EvAckBits;
+    kal_uint16          EvAckBits1;
+    kal_uint16          EvAckSuScale;
+    kal_uint16          EvAckMuScale;
+    kal_uint16          EvPreSlot;
+    kal_uint16          EvCapFrame;
+
+    kal_uint16          Reserved2;
+} Cl1TstTransmitCtrlCmdPhyUT_tmp;
+
+/** define RF transmitter control confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstTransmitCtrlRspT_tmp;
+
+/** define RF receive control command structure */
+typedef struct
+{
+    /* EVDO or 1xRTT, EVDO for CAL*/
+    kal_uint8           RfMode;
+
+    /* Turn on/off Rx path*/
+    kal_uint8           Action;
+
+    /* bit0 for Main, bit1 for Div, bit2 for SHDR */
+    kal_uint8           PathBitmap;
+
+    /* Band Class to turn on*/
+    kal_uint8           BandClass;
+
+    /* Channel number to turn on*/
+    kal_uint16          ChannelNum;
+
+    /* Reserved */
+    kal_uint16          Reserved;
+
+} Cl1TstReceiveCtrlCmdT_tmp;
+
+/** define RF receive control confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstReceiveCtrlRspT_tmp;
+
+/** define AFC configure command structure */
+typedef struct
+{
+    /* Manual for auto mode*/
+    kal_uint8           CtrlMode;
+
+    /* Cap Id valid indication*/
+    kal_uint8           CapIdValid;
+
+    /* Cap Id*/
+    kal_uint16          CapId;
+
+    /* Reserved */
+    kal_uint8           Reserved;
+
+    /* AFC DAC valid indication*/
+    kal_uint8           DacValid;
+
+    /*AFC DAC value*/
+    kal_uint16          DacValue;
+} Cl1TstAfcConfigCmdT_tmp;
+
+/** define AFC configure confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstAfcConfigRspT_tmp;
+
+/** define Tx AGC configuration command structure for RF test and traditional calibration */
+typedef struct
+{
+    /* EVDO or 1xRTT*/
+    kal_uint8           RfMode;
+
+    /* 0: APT mode, 1: DPD mode */
+    kal_uint8           PaType;
+
+    /* 0: fix power 1: manual mode */
+    kal_uint8           CtrlMode;
+
+    /* ILPC enable or disable */
+    kal_uint8           IlpcEnable;
+
+    /* PA table index */
+    kal_uint8           PaTblIdx;
+
+    /* PA mode, 0: high, 1: middle, 2: low */
+    kal_uint8           PaMode;
+
+    /* Tx Power in dBm, Q5*/
+    kal_int16           TxPwr;
+
+    /* PA gain, Q5 dBm */
+    kal_int16           PaGain;
+
+    /* Coupler loss, Q5 dB */
+    kal_int16           CpLoss;
+
+    /* AM */
+    kal_int16           Am;
+
+    /* PM */
+    kal_int16           Pm;
+
+    /* 0/1*/
+    kal_uint8           Vm1;
+
+    /*0/1*/
+    kal_uint8           Vm2;
+
+    /* voltage, in unit of mV*/
+    kal_uint16          Vcc;
+
+} Cl1TstTxAgcConfigCmdT_tmp;
+
+/** define Tx AGC configuration confirm structure for RF test and traditional calibration */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstTxAgcConfigRspT_tmp;
+
+/** define DDPC result getting command structure */
+typedef struct
+{
+    kal_uint8           Reserved;
+} Cl1TstTxPowerQueryCmdT_tmp;
+
+/** define DDPC result getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Tx power, unit is Q5 dBm */
+    kal_int16           Power;
+    kal_int16           Reserved;
+} Cl1TstTxPowerQueryRspT_tmp;
+
+/** define Rx AGC configuration command structure for RF test and traditional calibration */
+typedef struct
+{
+    /* 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* Bit0: main antenna, Bit1: diversity antenna, Bit2: SHDR */
+    kal_uint8           PathBitMap;
+
+    /* 0: Auto, 1: Manual for calibration and test, 2: RSSI scan */
+    kal_uint8           CtrlMode;
+
+    /* 0: high power mode, 1: low power mode */
+    kal_uint8           PwrMode;
+
+    /* 0: stage 0, 1: stage 1....5: stage 5 */
+    kal_uint8           LnaMode;
+
+    /* Reserved */
+    kal_uint8           Reserved1;
+
+    /* Reserved */
+    kal_uint16          Reserved2;
+
+} Cl1TstRxAgcConfigCmdT_tmp;
+
+/** define Rx AGC configuration confirm structure for RF test and traditional calibration */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstRxAgcConfigRspT_tmp;
+
+/** define RSSI query command structure */
+typedef struct
+{
+    /* 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* Bit0: main antenna, Bit1: diversity antenna, Bit2: SHDR */
+    kal_uint8           PathBitMap;
+
+    /* Reserved */
+    kal_uint16          Reserved;
+} Cl1TstRxRssiQueryCmdT_tmp;
+
+/** define RSSI query confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Main antenna Rx power, unit is Q5 dBm */
+    kal_int16           RxMainPower;
+
+    /* Diversity antenna Rx power, unit is Q5 dBm */
+    kal_int16           RxDivPower;
+
+} Cl1TstRxRssiQueryRspT_tmp;
+
+/** define SNR query command structure */
+typedef struct
+{
+    /* 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* Bit0: main antenna, Bit1: diversity antenna, Bit2: SHDR */
+    kal_uint8           PathBitMap;
+} Cl1TstRxSnrQueryCmdT_tmp;
+
+/** define SNR query confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Main antenna Rx SNR, unit is Q5 dBm */
+    kal_int16           RxMainAntSnr;
+
+    /* Diversity antenna Rx Snr, unit is Q5 dBm */
+    kal_int16           RxDivAntSnr;
+
+} Cl1TstRxSnrQueryRspT_tmp;
+
+/** define Ec/Io query command structure */
+typedef struct
+{
+    /* 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* Bit0: main antenna, Bit1: diversity antenna, Bit2: SHDR */
+    kal_uint8           PathBitMap;
+} Cl1TstRxEcIoQueryCmdT_tmp;
+
+/** define Ec/Io query confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Main antenna Rx EcIo, unit is Q5 dBm */
+    kal_int16           RxMainAntEcIo;
+
+    /* Diversity antenna Rx EcIo, unit is Q5 dBm */
+    kal_int16           RxDivAntEcIo;
+
+} Cl1TstRxEcIoQueryRspT_tmp;
+
+/** define AFC calibration data structure */
+typedef struct
+{
+    kal_uint16  init_dac;
+    kal_int16  slope;
+    kal_uint16  cap_id;
+    kal_uint16  Reserved;
+    
+} Cl1TstAfcCalDataT_tmp;
+
+/** define AFC calibration data setting command structure */
+typedef struct
+{
+    /* update NVRAM flag, 0: do not update, 1: update */
+    kal_uint8           UpdateNvram;
+
+    /* Reserved */
+    kal_uint8           Reserved1;
+
+    /* Reserved */
+    kal_uint16          Reserved2;
+
+    /* AFC calibration data */
+    Cl1TstAfcCalDataT_tmp   AfcCalData;
+
+} Cl1TstAfcCalDataSetCmdT_tmp;
+
+/** define AFC calibration data setting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstAfcCalDataSetRspT_tmp;
+
+/** define AFC calibration data getting command structure */
+typedef struct
+{
+    kal_uint32          Reserved;
+} Cl1TstAfcCalDataGetCmdT_tmp;
+
+/** define AFC calibration data getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32              Status;
+
+    /* AFC calibration data */
+    Cl1TstAfcCalDataT_tmp   AfcCalData;
+
+} Cl1TstAfcCalDataGetRspT_tmp;
+
+/*temperature and frequency compensation parameter */
+typedef struct{
+    kal_int16 TemFreqComp[8][16];/*TEMP:8; FREQ:15 */
+}CL1D_RF_TEMP_FREQ_COMP_DATA_T_tmp;
+
+typedef struct{
+    kal_int8 TemCelsius[8];/*TEMP:8 */
+    kal_uint16 ChanNum[16];/*FREQ:15 */
+    CL1D_RF_TEMP_FREQ_COMP_DATA_T_tmp RxPathLossFreqComp[8];/*LNA:8 */
+}CL1D_RF_RX_PATH_LOSS_COMP_T_tmp;
+
+/** define Rx calibration data structure */
+typedef struct
+{
+    /* High power mode path loss */
+    /* LID NVRAM_EF_CL1_MAIN_RX_PATH_LOSS_HPM_BAND_X_LID */
+    CL1D_RF_RX_PATH_LOSS_COMP_T_tmp RxPLossHPM;
+
+    /* Low power mode path loss */
+    /* LID:NVRAM_EF_CL1_MAIN_RX_PATH_LOSS_LPM_BAND_X_LID */
+    CL1D_RF_RX_PATH_LOSS_COMP_T_tmp RxPLossLPM;
+} Cl1TstRxCalDataT_tmp;
+
+
+/** define Rx calibration data setting command structure */
+typedef struct
+{
+    /* update NVRAM flag, 0: do not update, 1: update */
+    kal_uint8           UpdateNvram;
+
+    /* CDMA Band Class to turn on */
+    kal_uint8           BandClass;
+
+    /* path bitmap, bit0--main, bit1--diversity, bit2--SHDR */
+    kal_uint8           PathBmp;
+
+    /* Reserved */
+    kal_uint8           Reserved;
+
+    /* Rx calibration data */
+    Cl1TstRxCalDataT_tmp  RxCalData;
+
+} Cl1TstRxCalDataSetCmdT_tmp;
+
+/** define Rx calibration data setting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstRxCalDataSetRspT_tmp;
+
+/** define Rx calibration data getting command structure */
+typedef struct
+{
+    /* CDMA Band Class to turn on*/
+    kal_uint8           BandClass;
+
+    /* path bitmap, bit0--main, bit1--diversity, bit2--SHDR */
+    kal_uint8           PathBmp;
+
+    /* Reserved */
+    kal_uint16          Reserved;
+
+} Cl1TstRxCalDataGetCmdT_tmp;
+
+/** define Rx calibration data getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Rx calibration data */
+    Cl1TstRxCalDataT_tmp    RxCalData;
+
+} Cl1TstRxCalDataGetRspT_tmp;
+
+/*PA Context Data */
+typedef struct{
+    /** The reference power, in 1/32 dBm. */
+    kal_int16       refPwr;
+    /** The reference power output PA without feq/temp compensation, in 1/32 dBm. */
+    kal_int16       paGain;
+    /** The PA mode info.*/
+    kal_uint16      paMode;
+    /** The PA control RFGPOs level */
+    ///TODO: Below 3 parameter not used
+    kal_uint16      paVm0;
+    kal_uint16      paVm1;
+    /** PA BUCK supply voltage level, unit is mv*/
+    kal_uint16      paVdd;
+}CL1D_RF_PA_CONTEXT_T_tmp;
+
+typedef struct{
+    kal_int16 HighSwitchThresh;/* Tx power for L2M or M2H, unit is 1/32dBm (Q5)*/
+    kal_int16 LowSwitchThresh;/* Tx power for H2M or M2L, unit is 1/32dBm (Q5)*/
+}CL1D_RF_TX_PA_HYST_DATA_T_tmp;
+
+typedef struct
+{
+    kal_int32 PaCalSectionNum;
+    CL1D_RF_PA_CONTEXT_T_tmp TxPwrPaContext[8];/*PA Gain:8 */
+    CL1D_RF_TX_PA_HYST_DATA_T_tmp TxHyst[3-1];/*Hyst Region */
+    kal_int16 paPhaseJumpComp[3];/*PA mode:3 */
+	kal_int16 reserve;
+}CL1D_RF_TX_APT_PA_CONTEXT_T_tmp;
+
+/*APT PA Gain Data */
+typedef struct{
+    kal_int8 TemCelsius[8];/*TEMP:8 */
+    kal_uint16 ChanNum[16];/*FREQ:15 */
+    CL1D_RF_TEMP_FREQ_COMP_DATA_T_tmp TxPwrPaGainComp[8];/*PA Gain:8 */
+}CL1D_RF_TX_APT_PA_GAIN_COMP_T_tmp;
+
+/*DET Compensation Data */
+typedef struct{
+    kal_int8 TemCelsius[8];/*TEMP:8 */
+    kal_uint16 ChanNum[16];/*FREQ:15 */
+    CL1D_RF_TEMP_FREQ_COMP_DATA_T_tmp TxPdetCouplerGainComp[3];/*PA mode:3 */
+}CL1D_RF_DET_COUPLE_LOSS_COMP_T_tmp;
+
+/*DET Couper Loss Data */
+typedef struct{
+    kal_int16 CouplerGain[3];/*PA mode:3 */
+}CL1D_RF_DET_COUPLE_LOSS_T_tmp;
+
+/** define Tx calibration data structure */
+typedef struct
+{
+    /* PA context */
+    /* LID:NVRAM_EF_CL1_TX_APT_PA_CONTEXT_XX_BAND_X_LID */
+    CL1D_RF_TX_APT_PA_CONTEXT_T_tmp     TxAptPaCtx;
+
+    /* PA gain temperature and frequency compensation, Q5 dB */
+    /* LID:NVRAM_EF_CL1_TX_APT_PA_GAIN_COMP_XX_BAND_X_LID */
+    CL1D_RF_TX_APT_PA_GAIN_COMP_T_tmp   TxAptPaGainComp;
+
+    /* Coupler loss temperature and frequency compensation, Q5 dB */
+    /* LID:NVRAM_EF_CL1_DET_COUPLE_LOSS_COMP_XX_BAND_X_LID */
+    CL1D_RF_DET_COUPLE_LOSS_COMP_T_tmp  CplLossComp;
+
+    /* Coupler loss, Q5 dB */
+    /* LID:NVRAM_EF_CL1_DET_COUPLE_LOSS_XX_BAND_X_LID */
+    CL1D_RF_DET_COUPLE_LOSS_T_tmp       CplLoss;
+
+    /* Reserved */
+    kal_uint16                      Reserved;
+
+} Cl1TstTxCalDataT_tmp;
+
+/** define Tx calibration data setting command structure */
+typedef struct
+{
+    /* update NVRAM flag, 0: do not update, 1: update */
+    kal_uint8           UpdateNvram;
+
+    /* RF mode, 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* CDMA Band Class to turn on*/
+    kal_uint8           BandClass;
+
+    /* Reserved */
+    kal_uint8           Reserved;
+
+    /* Tx calibration data */
+    Cl1TstTxCalDataT_tmp    TxCalData;
+
+} Cl1TstTxCalDataSetCmdT_tmp;
+
+/** define Tx calibration data setting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstTxCalDataSetRspT_tmp;
+
+/** define Tx calibration data getting command structure */
+typedef struct
+{
+    /* RF mode, 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* CDMA Band Class to turn on*/
+    kal_uint8           BandClass;
+
+    /* Reserved */
+    kal_uint16          Reserved;
+
+} Cl1TstTxCalDataGetCmdT_tmp;
+
+/** define Tx calibration data getting confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Tx calibration data */
+    Cl1TstTxCalDataT_tmp    TxCalData;
+
+} Cl1TstTxCalDataGetRspT_tmp;
+
+/** define FHC start common data structure */
+typedef struct
+{
+    /* Tx RX delay for FHC, unit us (> 10us) */
+    kal_uint16          TxRxDelay;
+
+    /* Tx step length, unit us (>= 1000us and <= 20000 us) */
+    kal_uint16          TxStepLength;
+
+    /* Tx retune length, unit us (>= 500us) */
+    kal_uint16          TxRetuLength;
+
+    /* RF mode switch length, unit us, the integer multiple of step length */
+    kal_uint16          RfMSwhLength;
+
+    /* Rx step length, unit us (>= 1000us and <= 20000 us) */
+    kal_uint16          RxStepLength;
+
+    /* Rx retune length, unit us (>= 500us) */
+    kal_uint16          RxRetuLength;
+
+} Cl1TstFhcCommonT_tmp;
+
+/** define Tx calibration element structure */
+typedef struct
+{
+    /* RF mode, 0: 1xRTT, 1: EVDO */
+    kal_uint8           RfMode;
+
+    /* Step indication, 0: next step is normal step,
+                        1: next step is retune step,
+                        2: the current step is the last step,
+                        3: next step is RF mode switch step
+    */
+    kal_uint8           StepInd;
+
+    /* CDMA band class */
+    kal_uint8           BandClass;
+
+    /* Reserved */
+    kal_uint8           Reserved;
+
+    /* CDMA channel */
+    kal_uint16          ChanNum;
+
+    /* RF calibration power points, dBm, Q5 */
+    kal_int16           TxPwr;
+
+} Cl1TstFhcTxElementT_tmp;
+
+/** define Rx calibration element structure */
+typedef struct
+{
+    /* Step indication, 0: next step is normal step,
+                        1: next step is retune step,
+                        2: the current step is the last step
+    */
+    kal_uint8           StepInd;
+
+    /* CDMA band class */
+    kal_uint8           BandClass;
+
+    /* CDMA channel */
+    kal_uint16          ChanNum;
+
+    /* Bit0: main antenna, Bit1: diversity antenna, Bit2: SHDR */
+    kal_uint8           PathBitmap;
+
+    /* Power mode, 0: high power mode, 1: low power mode */
+    kal_uint8           PwrMode;
+
+    /* LNA mode, 0~7 */
+    kal_uint8           LnaMode;
+
+    /* Reserved */
+    kal_uint8           Reserved;
+
+} Cl1TstFhcRxElementT_tmp;
+
+/** define FHC calibration start command structure */
+typedef struct
+{
+    /* FHC calibration common data */
+    Cl1TstFhcCommonT_tmp    CommonData;
+
+    /* Reserved */
+    kal_uint16          Reserved1;
+
+    /* Tx calibration elements number (1~1000) */
+    kal_uint16          TxElementNum;
+
+    /* Tx calibration elements */
+    Cl1TstFhcTxElementT_tmp TxElement[1000];
+
+    /* Reserved */
+    kal_uint16          Reserved2;
+
+    /* Rx calibration elements number (1~1000) */
+    kal_uint16          RxElementNum;
+
+    /* Rx calibration elements */
+    Cl1TstFhcRxElementT_tmp RxElement[1000];
+
+} Cl1TstFhcStartCmdT_tmp;
+
+/** define FHC report result structure */
+typedef struct
+{
+    /* power detect result number */
+    kal_uint16          PdetNum;
+
+    /* RSSI number */
+    kal_uint16          RssiNum;
+
+    /* power detect result, unit is Q5 dBm */
+    kal_int16           Pdet[1000];
+
+    /* Main antenna RSSI, unit is Q5 dBm */
+    kal_int16           RssiMain[1000];
+
+    /* Diversity antenna RSSI, unit is Q5 dBm */
+    kal_int16           RssiDiv[1000];
+} Cl1TstFhcRptDataT_tmp;
+
+/** define FHC calibration start confirm structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32              Status;
+
+    /* FHC report result */
+    Cl1TstFhcRptDataT_tmp   RptData;
+} Cl1TstFhcStartRspT_tmp;
+
+typedef struct
+{
+    kal_uint32       Result;
+}ResultCheckRespT_tmp;
+
+/** MSG_ID_ELT_RESULT_CHECK_RESP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ResultCheckRespT_tmp Msg;
+} elt_result_check_resp_msg_struct_tmp;
+
+typedef struct
+{
+    kal_uint32 TxCrpCrcRslt;
+}L1dTxResultsT_tmp;
+
+/* MSG_ID_UTS_L1D_TX_RESULTS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    L1dTxResultsT_tmp msg;
+} uts_l1d_tx_results_msg_struct_tmp;
+typedef enum
+{
+    CL1TST_REQ_SUCCESS_tmp,
+    CL1TST_REQ_FAILURE_tmp,
+    CL1TST_REQ_NOT_SUPPORT_tmp,
+    CL1TST_REQ_INVALID_tmp = 0xFFFFFFFF
+} Cl1TstReqStatusE_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    Cl1TstReqStatusE_tmp        Status;
+} Cl1TstRxAntennaTestModeRspT_tmp;
+
+/** define Get RF plat info command ELT msg */
+/** MSG_ID_ELT_GET_RF_PLAT_INFO_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstGetRfPlatInfoCmdT_tmp Msg;
+} elt_get_rf_plat_info_cmd_msg_struct_tmp;
+
+/** define Get RF plat info response ELT msg */
+/** MSG_ID_ELT_GET_RF_PLAT_INFO_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstGetRfPlatInfoRspT_tmp Msg;
+} elt_get_rf_plat_info_rsp_msg_struct_tmp;
+
+/** define RFD test mode req command ELT msg */
+/** MSG_ID_ELT_RFD_TEST_MODE_REQ_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRfdTestModeReqCmdT_tmp Msg;
+} elt_rfd_test_mode_req_cmd_msg_struct_tmp;
+
+/** define RFD test mode req response ELT msg */
+/** MSG_ID_ELT_RFD_TEST_MODE_REQ_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRfdTestModeReqRspT_tmp Msg;
+} elt_rfd_test_mode_req_rsp_msg_struct_tmp;
+
+/** define Set MIPI code word command ELT msg */
+/** MSG_ID_ELT_SET_MIPI_CW_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstSetMipiCodeWordCmdT_tmp Msg;
+} elt_set_mipi_cw_cmd_msg_struct_tmp;
+
+/** define Set MIPI code word response ELT msg */
+/** MSG_ID_ELT_SET_MIPI_CW_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstSetMipiCodeWordRspT_tmp Msg;
+} elt_set_mipi_cw_rsp_msg_struct_tmp;
+
+/** define Get MIPI code word command ELT msg */
+/** MSG_ID_ELT_GET_MIPI_CW_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstGetMipiCodeWordCmdT_tmp Msg;
+} elt_get_mipi_cw_cmd_msg_struct_tmp;
+
+/** define Get MIPI code word response ELT msg */
+/** MSG_ID_ELT_GET_MIPI_CW_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstGetMipiCodeWordRspT_tmp Msg;
+} elt_get_mipi_cw_rsp_msg_struct_tmp;
+
+/** define Set SPI data command ELT msg */
+/** MSG_ID_ELT_SET_SPI_DATA_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstSetSpiDataCmdT_tmp Msg;
+} elt_set_spi_data_cmd_msg_struct_tmp;
+
+/** define Set SPI data response ELT msg */
+/** MSG_ID_ELT_SET_SPI_DATA_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstSetSpiDataRspT_tmp Msg;
+} elt_set_spi_data_rsp_msg_struct_tmp;
+
+/** define Get SPI data command ELT msg */
+/** MSG_ID_ELT_GET_SPI_DATA_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstGetSpiDataCmdT_tmp Msg;
+} elt_get_spi_data_cmd_msg_struct_tmp;
+
+/** define Get SPI data response ELT msg */
+/** MSG_ID_ELT_GET_SPI_DATA_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstGetSpiDataRspT_tmp Msg;
+} elt_get_spi_data_rsp_msg_struct_tmp;
+
+/** define transmit ctrl command ELT msg */
+/** MSG_ID_ELT_TRANSMIT_CTRL_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTransmitCtrlCmdT_tmp Msg;
+} elt_transmit_ctrl_cmd_msg_struct_tmp;
+
+
+/** MSG_ID_ELT_TRANSMIT_CTRL_CMD_PHYUT_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTransmitCtrlCmdPhyUT_tmp MsgphyUT;
+} elt_transmit_ctrl_cmd_phyut_msg_struct_tmp;
+
+/** define transmit ctrl response ELT msg */
+/** MSG_ID_ELT_TRANSMIT_CTRL_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTransmitCtrlRspT_tmp Msg;
+} elt_transmit_ctrl_rsp_msg_struct_tmp;
+
+/** define receive ctrl command ELT msg */
+/** MSG_ID_ELT_RECEIVE_CTRL_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstReceiveCtrlCmdT_tmp Msg;
+} elt_receive_ctrl_cmd_msg_struct_tmp;
+
+/** define receive ctrl response ELT msg */
+/** MSG_ID_ELT_RECEIVE_CTRL_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstReceiveCtrlRspT_tmp Msg;
+} elt_receive_ctrl_rsp_msg_struct_tmp;
+
+/** define AFC config command ELT msg */
+/** MSG_ID_ELT_AFC_CONFIG_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstAfcConfigCmdT_tmp Msg;
+} elt_afc_config_cmd_msg_struct_tmp;
+
+/** define AFC config response ELT msg */
+/** MSG_ID_ELT_AFC_CONFIG_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstAfcConfigRspT_tmp Msg;
+} elt_afc_config_rsp_msg_struct_tmp;
+
+/** define Tx AGC config command ELT msg */
+/** MSG_ID_ELT_TX_AGC_CONFIG_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxAgcConfigCmdT_tmp Msg;
+} elt_tx_agc_config_cmd_msg_struct_tmp;
+
+/** define Tx AGC config response ELT msg */
+/** MSG_ID_ELT_TX_AGC_CONFIG_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxAgcConfigRspT_tmp Msg;
+} elt_tx_agc_config_rsp_msg_struct_tmp;
+
+/** define Get Tx power command ELT msg */
+/** MSG_ID_ELT_TX_POWER_QUERY_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxPowerQueryCmdT_tmp Msg;
+} elt_tx_power_query_cmd_msg_struct_tmp;
+
+/** define Get Tx power response ELT msg */
+/** MSG_ID_ELT_TX_POWER_QUERY_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxPowerQueryRspT_tmp Msg;
+} elt_tx_power_query_rsp_msg_struct_tmp;
+
+/** define Rx AGC config command ELT msg */
+/** MSG_ID_ELT_RX_AGC_CONFIG_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxAgcConfigCmdT_tmp Msg;
+} elt_rx_agc_config_cmd_msg_struct_tmp;
+
+/** define Rx AGC config response ELT msg */
+/** MSG_ID_ELT_RX_AGC_CONFIG_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxAgcConfigRspT_tmp Msg;
+} elt_rx_agc_config_rsp_msg_struct_tmp;
+
+/** define Get RSSI command ELT msg */
+/** MSG_ID_ELT_RX_RSSI_QUERY_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxRssiQueryCmdT_tmp Msg;
+} elt_rx_rssi_query_cmd_msg_struct_tmp;
+
+/** define Get RSSI response ELT msg */
+/** MSG_ID_ELT_RX_RSSI_QUERY_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxRssiQueryRspT_tmp Msg;
+} elt_rx_rssi_query_rsp_msg_struct_tmp;
+
+/** define Get SNR command ELT msg */
+/** MSG_ID_ELT_RX_SNR_QUERY_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxSnrQueryCmdT_tmp Msg;
+} elt_rx_snr_query_cmd_msg_struct_tmp;
+
+/** define Get SNR command ELT msg */
+/** MSG_ID_ELT_RX_SNR_QUERY_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxSnrQueryRspT_tmp Msg;
+} elt_rx_snr_query_rsp_msg_struct_tmp;
+
+/** define Get Ec/Io command ELT msg */
+/** MSG_ID_ELT_RX_EC_IO_QUERY_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxEcIoQueryCmdT_tmp Msg;
+} elt_rx_ec_io_query_cmd_msg_struct_tmp;
+
+/** define Get Ec/Io command ELT msg */
+/** MSG_ID_ELT_RX_EC_IO_QUERY_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxEcIoQueryRspT_tmp Msg;
+} elt_rx_ec_io_query_rsp_msg_struct_tmp;
+
+/** define Set AFC data command ELT msg */
+/** MSG_ID_ELT_AFC_CAL_DATA_SET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstAfcCalDataSetCmdT_tmp Msg;
+} elt_afc_cal_data_set_cmd_msg_struct_tmp;
+
+/** define Set AFC data response ELT msg */
+/** MSG_ID_ELT_AFC_CAL_DATA_SET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstAfcCalDataSetRspT_tmp Msg;
+} elt_afc_cal_data_set_rsp_msg_struct_tmp;
+
+/** define Get AFC data command ELT msg */
+/** MSG_ID_ELT_AFC_CAL_DATA_GET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstAfcCalDataGetCmdT_tmp Msg;
+} elt_afc_cal_data_get_cmd_msg_struct_tmp;
+
+/** define Get AFC data response ELT msg */
+/** MSG_ID_ELT_AFC_CAL_DATA_GET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstAfcCalDataGetRspT_tmp Msg;
+} elt_afc_cal_data_get_rsp_msg_struct_tmp;
+
+/** define Set RX calibration data command ELT msg */
+/** MSG_ID_ELT_RX_CAL_DATA_SET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxCalDataSetCmdT_tmp Msg;
+} elt_rx_cal_data_set_cmd_msg_struct_tmp;
+
+/** define Set RX calibration data response ELT msg */
+/** MSG_ID_ELT_RX_CAL_DATA_SET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxCalDataSetRspT_tmp Msg;
+} elt_rx_cal_data_set_rsp_msg_struct_tmp;
+
+/** define Get RX calibration data command ELT msg */
+/** MSG_ID_ELT_RX_CAL_DATA_GET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxCalDataGetCmdT_tmp Msg;
+} elt_rx_cal_data_get_cmd_msg_struct_tmp;
+
+/** define Get RX calibration data response ELT msg */
+/** MSG_ID_ELT_RX_CAL_DATA_GET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstRxCalDataGetRspT_tmp Msg;
+} elt_rx_cal_data_get_rsp_msg_struct_tmp;
+
+/** define Set TX calibration data command ELT msg */
+/** MSG_ID_ELT_TX_CAL_DATA_SET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxCalDataSetCmdT_tmp Msg;
+} elt_tx_cal_data_set_cmd_msg_struct_tmp;
+
+/** define Set TX calibration data response ELT msg */
+/** MSG_ID_ELT_TX_CAL_DATA_SET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxCalDataSetRspT_tmp Msg;
+} elt_tx_cal_data_set_rsp_msg_struct_tmp;
+
+/** define Get TX calibration data command ELT msg */
+/** MSG_ID_ELT_TX_CAL_DATA_GET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxCalDataGetCmdT_tmp Msg;
+} elt_tx_cal_data_get_cmd_msg_struct_tmp;
+
+/** define Get TX calibration data response ELT msg */
+/** MSG_ID_ELT_TX_CAL_DATA_GET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTxCalDataGetRspT_tmp Msg;
+} elt_tx_cal_data_get_rsp_msg_struct_tmp;
+
+/** define FHC command ELT msg */
+/** MSG_ID_ELT_FHC_START_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstFhcStartCmdT_tmp Msg;
+} elt_fhc_start_cmd_msg_struct_tmp;
+
+/** define FHC response ELT msg */
+/** MSG_ID_ELT_FHC_START_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstFhcStartRspT_tmp Msg;
+} elt_fhc_start_rsp_msg_struct_tmp;
+
+/** define temperature back off data structure */
+typedef struct
+{
+    kal_uint8           Band;
+    kal_int8            Temperature;
+    kal_int16           BackOff;
+} Cl1TstTempBackOffT_tmp;
+
+/** define temperature back off set command structure */
+typedef struct
+{
+    Cl1TstTempBackOffT_tmp  BackOffData;
+} Cl1TstTempBackOffSetCmdT_tmp;
+
+/** define temperature backoff set cmd ELT msg */
+/** MSG_ID_ELT_TEMP_BACKOFF_SET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTempBackOffSetCmdT_tmp Msg;
+} elt_temp_backoff_set_cmd_msg_struct_tmp;
+
+/** define temperature back off set response structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+} Cl1TstTempBackOffSetRspT_tmp;
+
+/** define temperature backoff set rsp ELT msg */
+/** MSG_ID_ELT_TEMP_BACKOFF_SET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTempBackOffSetRspT_tmp Msg;
+} elt_temp_backoff_set_rsp_msg_struct_tmp;
+
+/** define temperature back off get command structure */
+typedef struct
+{
+    /* band class */
+    kal_uint8           Band;
+    kal_uint8           Reserved1;
+    kal_uint16          Reserved2;
+} Cl1TstTempBackOffGetCmdT_tmp;
+
+/** define temperature backoff get cmd ELT msg */
+/** MSG_ID_ELT_TEMP_BACKOFF_GET_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTempBackOffGetCmdT_tmp Msg;
+} elt_temp_backoff_get_cmd_msg_struct_tmp;
+
+/** define temperature back off get response structure */
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32          Status;
+
+    /* Back off data */
+    Cl1TstTempBackOffT_tmp  BackOffData;
+} Cl1TstTempBackOffGetRspT_tmp;
+
+/** define temperature backoff get rsp ELT msg */
+/** MSG_ID_ELT_TEMP_BACKOFF_GET_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1TstTempBackOffGetRspT_tmp Msg;
+} elt_temp_backoff_get_rsp_msg_struct_tmp;
+
+typedef struct
+{
+    /* TX AGC control type,
+       0: stop sw txagc,
+       1: start sw txagc,
+       2: obtain current request power */
+    kal_uint8               CtrlType;
+
+    /* Tx slot */
+    kal_uint8               TxSlot;
+
+    /* Access/ Traffic channel */
+    kal_uint8               ChanType;
+
+    /* PHY subtype */
+    kal_uint8               PhySubType;
+
+    /* Power reference used for open loop estimation in 1/64dBm@S9.6 unit.*/
+    kal_int16               PowerBase; /* Q6 dB */
+
+    /* Bit0: trans ind TRUE/FALSE,
+       Bit4: Close loop parameters enable/disable */
+    kal_uint16              TestBmp;
+
+    /* close loop step up size in 1/64dB@S2.6 unit */
+    kal_int16               ClStepUp;
+
+    /* close loop step down size in 1/64dB@S2.6 unit */
+    kal_int16               ClStepDown;
+
+    /* close loop adjustment limited in 1/64dB@S8.6 unit */
+    kal_int16               ClAdjMax;
+
+    /* close loop adjustment limited in 1/64dB@S8.6 unit */
+    kal_int16               ClAdjMin;
+
+    /* maximum transmit power adjustment in 1/64dB@S5.6 unit, set zero
+    if not use it */
+    kal_int16               MaxPwrAdj;
+
+    /* RPC bit in SW mode with U2.0 unit*/
+    kal_uint16              RpcBitSw; /* Q6 dB */
+
+    /* KS value in SW mode with S6.6 unit*/
+    kal_int16               KsValueSw; /* Q6 dB */
+
+    /* Reserved */
+    kal_uint16              Reserved;
+
+} RcpTstTxAgcCtrlCmdT_tmp;
+
+/** define Tx AGC control command message */
+/** MSG_ID_ELT_RCP_TX_AGC_CTRL_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RcpTstTxAgcCtrlCmdT_tmp Msg;
+} elt_rcp_tx_agc_ctrl_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    kal_uint32              Status;
+    kal_int16               ReqPwr;    /* Q6 dBm */
+    kal_uint16              Reserved;
+} RcpTstTxAgcCtrlRspT_tmp;
+
+/** define Tx AGC control response message */
+/** MSG_ID_ELT_RCP_TX_AGC_CTRL_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RcpTstTxAgcCtrlRspT_tmp Msg;
+} elt_rcp_tx_agc_ctrl_rsp_msg_struct_tmp;
+
+/* define the power information report structure */
+typedef struct
+{
+    kal_int16   openLoopRxPwr; /* The RxPwr after each access probe */
+    kal_int16   TxPilotPwr;    /* The final "clipped" pilot pwr after each access probe */
+    kal_int16   KsAdj;
+} RcpRtcPwrRefParamMsgT_tmp;
+
+/** MSG_ID_RCP_TXAGC_RTC_PWR_REF_PARAM_MSG
+*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RcpRtcPwrRefParamMsgT_tmp Msg;
+} rcp_txagc_rtc_pwr_ref_param_msg_struct_tmp;
+
+typedef struct
+{
+   kal_uint8     PowerUp;           /* 1 power up, 0 power down */
+} ValPswPowerMsgT_tmp;
+
+/** define send random access rtb preemption command  ELT msg **/
+/** MSG_ID_ELT_RCP_ACC_RTB_CMD_MSG **/
+typedef struct
+{
+    /* Preemption type:, 
+       0: stop preemption, 
+       1: start RTB/HSC preemption,  */
+    kal_uint8    Preempt;
+} RcpTxSthRtbHscPreemptCtrlCmdT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RcpTxSthRtbHscPreemptCtrlCmdT_tmp Msg;
+} elt_rcp_acc_rtb_cmd_msg_struct_tmp;
+
+
+/*define MSG_ID_ELT_ACC_RTB_RSP_MSG */
+typedef struct
+{
+    kal_uint16 TxsthAcStatus;  /*0 txsth_status_Idle;1 txsth_status_access; 2 txsth_status_traffic ;3 txsth_status_FREEZE*/
+    kal_uint16 TxsthEventType; /*0 txsth_unfreeze; 1 txsth_freeze*/
+    kal_uint16 RaNum;
+} Evl1TxsthAccRtbPreemptionRspMsgT_tmp;
+
+/** define Get random access rtb preemption command  ELT msg **/
+/** MSG_ID_ELT_ACC_RTB_RSP_MSG **/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Evl1TxsthAccRtbPreemptionRspMsgT_tmp Msg;
+} elt_rcp_acc_rtb_rsp_msg_struct_tmp;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ValPswPowerMsgT_tmp  msg;
+} elt_val_power_ctrl_msg_struct_tmp;
+
+typedef struct
+{
+    kal_uint8        CtrlMode; /* HWD_ENABLE = 0, HWD_DISABLE = 1, HWD_LOAD = 2 */
+    kal_uint8        System;   /* 1x/DO */
+    kal_uint8        Band;
+    kal_uint16       Channel;
+} CssTstPllChannelMsgT_tmp;
+
+/* MSG_ID_CSS_TEST_MANUAL_BAND_CHNL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssTstPllChannelMsgT_tmp msg;
+} css_test_manual_band_chnl_msg_struct_tmp;
+
+typedef enum
+{
+   DO_PARM_SET_HYBRID_MODE_TMP = 1,
+   DO_PARM_SET_PREF_MODE_TMP =26,
+} DoParmOperationId_tmp;
+
+typedef enum
+{
+  PARM_MIN_VALUE_TMP,
+  PARM_MAX_VALUE_TMP,
+  PARM_DEFAULT_VALUE_TMP,
+  PARM_CUSTOM_VALUE_TMP
+} ParmOperationType_tmp;
+
+typedef struct
+{
+    DoParmOperationId_tmp parmId;
+    ParmOperationType_tmp opType;
+}clcDoParaCmdInfoT_tmp;
+
+typedef struct
+{
+   kal_uint32   HybridMode;
+} DoHybridModeData_APIStruct_tmp;
+
+typedef struct
+{
+    clcDoParaCmdInfoT_tmp paraInfo;
+    DoHybridModeData_APIStruct_tmp hybridModeSet;
+    /* Begin Enum,HybridMode:
+                        Non-Hybrid,
+                        Hybrid,
+            End
+         */
+}clcDoHybridSetT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    clcDoHybridSetT_tmp msg;
+} elt_clc_do_hybrid_mode_set_cmd_msg_struct_tmp;
+
+#if (defined(MTK_PLT_ON_PC_IT))||(defined(MTK_C2K_L1_TST))
+
+
+typedef enum
+{
+   CL1_PHYUT_MOD_EVL1_FLBSRP,
+   CL1_PHYUT_MOD_EVL1_SCH,
+   CL1_PHYUT_MOD_EVL1_RLBSRP,
+   CL1_PHYUT_MOD_1XL1_FLBSRP,
+   CL1_PHYUT_MOD_1XL1_SCH,
+   CL1_PHYUT_MOD_1XL1_RLBSRP,
+   CL1_PHYUT_MOD_EVL1_FRONTEND,
+   CL1_PHYUT_MOD_1XL1_FRONTEND,
+   CL1_PHYUT_MOD_DUAL_MODE,
+   CL1_PHYUT_MOD_RXTIMER,
+   CL1_PHYUT_MOD_SLPCTRL,
+   CL1_PHYUT_MOD_COSIM,
+   CL1_PHYUT_MOD_NUM
+} Cl1PhyUtModIdT;
+
+typedef enum
+{
+   CL1_PHYUT_MOD_CASE_01,
+   CL1_PHYUT_MOD_CASE_02,
+   CL1_PHYUT_MOD_CASE_03,
+   CL1_PHYUT_MOD_CASE_04,
+   CL1_PHYUT_MOD_CASE_05,
+   CL1_PHYUT_MOD_CASE_06,
+   CL1_PHYUT_MOD_CASE_07,
+   CL1_PHYUT_MOD_CASE_08,
+   CL1_PHYUT_MOD_CASE_09,
+   CL1_PHYUT_MOD_CASE_10,
+   CL1_PHYUT_MOD_CASE_11,
+   CL1_PHYUT_MOD_CASE_12,
+   CL1_PHYUT_MOD_CASE_13,
+   CL1_PHYUT_MOD_CASE_14,
+   CL1_PHYUT_MOD_CASE_15,
+   CL1_PHYUT_MOD_CASE_16,
+   CL1_PHYUT_MOD_CASE_17,
+   CL1_PHYUT_MOD_CASE_18,
+   CL1_PHYUT_MOD_CASE_19,
+   CL1_PHYUT_MOD_CASE_20,
+   CL1_PHYUT_MOD_CASE_21,
+   CL1_PHYUT_MOD_CASE_22,
+   CL1_PHYUT_MOD_CASE_23,
+   CL1_PHYUT_MOD_CASE_24,
+   CL1_PHYUT_MOD_CASE_25,
+   CL1_PHYUT_MOD_CASE_26,
+   CL1_PHYUT_MOD_CASE_27,
+   CL1_PHYUT_MOD_CASE_28,
+   CL1_PHYUT_MOD_CASE_29,
+   CL1_PHYUT_MOD_CASE_30,
+   CL1_PHYUT_MOD_CASE_NUM
+} Cl1PhyUtModCaseIdT;
+
+typedef struct
+{
+   kal_uint32 OperationType; /* 0: off   1: on */
+   kal_uint32 RfMode; /* 0: RTT  1: EVDO */
+   kal_uint32 PathBmp; /* bit0: main   bit1:div   bit2:sec */
+   kal_uint32 RxAgcState; /* 0:FAST  1:STEADY  2:ICS  3:FHC */
+   kal_uint32 PwrMode; /* 0:HPM  1:LPM */
+   kal_int32  InitRssidBmQ5[3];
+} Cl1PhyUtParamRxAgcT;
+
+typedef struct
+{
+    kal_uint32 OperationType; /* 0: off   1: on */
+    kal_uint32 RfMode; /* 0: RTT  1: EVDO */
+    kal_uint32 PathBmp; /* bit0: main   bit1:div   bit2:sec */
+    kal_uint32 RxAgcState; /* 0:FAST  1:STEADY  2:ICS  3:FHC */
+    kal_uint32 PwrMode; /* 0:HPM  1:LPM */
+    kal_int32  InitRssidBmQ5[3];
+    kal_int32  FoeHz;
+
+} Cl1PhyUtParamAfcNcoT;
+
+typedef struct
+{
+    kal_uint32 OperationType; /* 0: off   1: on */
+    kal_uint32 RfMode; /* 0: RTT  1: EVDO */
+    kal_uint32 PathBmp; /* bit0: main   bit1:div   bit2:sec */
+    kal_uint32 RxAgcState; /* 0:FAST  1:STEADY  2:ICS  3:FHC */
+    kal_uint32 PwrMode; /* 0:HPM  1:LPM */
+    kal_int32  InitRssidBmQ5[3];
+    kal_uint32 NbifBmp;
+    kal_int32  FoeHz[3];
+
+} Cl1PhyUtParamAfcNbifT;
+
+typedef struct
+{
+    kal_uint32 ModeBmp; /* Bit0: 1X; Bit1: EVDO
+                           1: 1X only; 2: DO only; 3: 1X and DO */
+    kal_uint32 CaseBmp[2]; /* [0]: 1X; [1]: DO */
+} Cl1PhyUtParamRxTimerT;
+
+typedef struct
+{
+    kal_uint32 ModeBmp; /* Bit0: 1X; Bit1: EVDO
+                           1: 1X only; 2: DO only; 3: 1X and DO */
+    kal_uint32 CaseBmp[2]; /* [0]: 1X; [1]: DO */
+} Cl1PhyUtParamSlpCtrlT;
+
+typedef union
+{
+    kal_uint32            Reserved; /* Reserved */
+    Cl1PhyUtParamRxAgcT   ParamRxAgc;
+    Cl1PhyUtParamAfcNcoT  ParamAfcNco;
+    Cl1PhyUtParamAfcNbifT ParamAfcNbif;
+    Cl1PhyUtParamRxTimerT ParamRxTimer;
+    Cl1PhyUtParamSlpCtrlT ParamSlpCtrl;
+} Cl1PhyUtParamU;
+
+typedef  struct
+{
+   Cl1PhyUtModIdT      ModId;
+
+   /** \assoc UNION \ref Param */
+   Cl1PhyUtModCaseIdT  CaseId;   /* Case ID in module */
+   Cl1PhyUtParamU      Param;
+} Cl1PhyUtTrigCmdT;
+
+#endif
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Cl1PhyUtTrigCmdT msg;
+} elt_cl1_phyut_trig_cmd_msg_struct_tmp;
+
+typedef struct
+{
+   kal_bool result;/* 1->Pass, 0->Fail */
+}EltC2kPhyUtTstRptTtmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltC2kPhyUtTstRptTtmp      msg;
+} elt_c2k_phyut_tst_rpt_msg_struct_tmp;
+
+typedef struct
+{
+   kal_uint32   PrefMode;
+} DoPrefModeData_APIStruct_tmp;
+
+typedef struct
+{
+    clcDoParaCmdInfoT_tmp paraInfo;
+    DoPrefModeData_APIStruct_tmp prefModeSet;
+    /*Begin Enum, PrefMode:
+                    Eng Pref Mode Analog, 0
+                    Eng Pref Mode Cdma, 1
+                    Eng Pref Mode Analog Only, 2
+                    Eng Pref Mode Cdma Only, 3
+                    Automatic, 4
+                    Emergency, 5
+                    Home Only, 6
+                    Cdma Only, 7
+                    HDR Only, 8
+                    Hybrid Only, 9
+                    SHDR Only, 10
+                    End
+        */
+
+}clcDoPrefModeSetT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    clcDoPrefModeSetT_tmp msg;
+} elt_clc_do_pref_mode_set_cmd_msg_struct_tmp;
+
+typedef enum
+{
+    RMCTST_REQ_SUCCESS_TMP,
+    RMCTST_REQ_FAILURE_TMP,
+    RMCTST_REQ_NOT_SUPPORT_TMP,
+    RMCTST_REQ_INVALID_TMP = 0xFFFFFFFF
+} RmcTstReqStatusE_tmp;
+
+typedef enum
+{
+    ETS_FIX_TXDRC_SET_TMP     = 0,
+    ETS_FIX_TXDRC_DISABLE_TMP = 1
+}FcpTestFixDrcValModeT_tmp;
+
+typedef struct
+{
+    FcpTestFixDrcValModeT_tmp  EtsFixDrcValMode;
+    kal_uint8                  EtsFixDrcVal;
+} FcpTestFixDrcValMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    FcpTestFixDrcValMsgT_tmp msg;
+} elt_fcp_fix_drcval_msg_struct_tmp;
+
+typedef struct
+{
+    kal_uint8  AdaptiveRxTestMode;
+    kal_uint8  PwrModeInTstMode;
+    kal_uint16 Reserved;
+
+} RmcRxAgcPwrModeTestModeCmdMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRxAgcPwrModeTestModeCmdMsgT_tmp Msg;
+} elt_rmc_power_mode_test_mode_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp   Status;
+
+} RmcRxAgcPwrModeTestModeRspMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRxAgcPwrModeTestModeRspMsgT_tmp Msg;
+
+} elt_rmc_power_mode_test_mode_rsp_msg_struct_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint32  Reserved;
+} elt_rmc_rssi_power_mode_query_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp   Status;
+
+    kal_int16          MainImmRssidBmQ5;
+    kal_int16          DivImmRssidBmQ5;
+    kal_int16          SecImmRssidBmQ5;
+    kal_uint16         Reserved1;
+    kal_uint8          MainPwrMode;
+    kal_uint8          DivPwrMode;
+    kal_uint8          SecPwrMode;
+    kal_uint8          Reserved2;
+
+} RmcRxAgcRssiPwrModeQueryRspMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRxAgcRssiPwrModeQueryRspMsgT_tmp Msg;
+
+} elt_rmc_rssi_power_mode_query_rsp_msg_struct_tmp;
+
+typedef enum
+{
+    RMC_AFC_MODIFY_FOE_INIT_TYPE_TMP   = 0, /* modify initial FOE */
+    RMC_AFC_MODIFY_FOE_NORMAL_TYPE_TMP = 0x00000001, /* modify FOE when rx is already on, 32 bits aligned */
+
+} RmcAfcModifyFoeTypeE_tmp;
+
+typedef enum
+{
+    EVL1_AFC_MODIFY_FOE_RELATIVE_METHOD_TMP = 0, /* FOE modification value is a relative offset */
+    EVL1_AFC_MODIFY_FOE_ABSOLUTE_METHOD_TMP = 0x00000001, /* FOE modification value is a absolute value, 32 bits aligned */
+
+} Evl1ShAfcModifyFoeMethodE_tmp;
+
+typedef struct
+{
+    kal_uint32                    ModifyFoeFlag;
+    RmcAfcModifyFoeTypeE_tmp      ModifyFoeType;
+    Evl1ShAfcModifyFoeMethodE_tmp ModifyFoeMethod;
+    kal_int16                     ModifyFoeHz;   /* FOE modification value, in Hz */
+    kal_uint16                    Reserved;
+
+} RmcAfcModifyFoeCmdMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcAfcModifyFoeCmdMsgT_tmp msg;
+} elt_rmc_modify_foe_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp    Status;
+
+} RmcAfcModifyFoeRspMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcAfcModifyFoeRspMsgT_tmp Msg;
+} elt_rmc_modify_foe_rsp_msg_struct_tmp;
+
+typedef enum
+{
+    RMC_AFC_FOE_QUERY_SCH_TYPE_TMP = 0,          /* query FOE calculated by searcher */
+    RMC_AFC_FOE_QUERY_FNG_TYPE_TMP = 0x00000001, /* query FOE calculated by finger, 32 bits aligned */
+
+} RmcAfcFoeQueryTypeE_tmp;
+
+typedef struct
+{
+    RmcAfcFoeQueryTypeE_tmp FoeQueryType;
+
+} RmcAfcFoeQueryCmdMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcAfcFoeQueryCmdMsgT_tmp Msg;
+} elt_rmc_foe_query_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp Status;
+    kal_int16            FoeHz;
+    kal_uint16           Reserved;
+
+} RmcAfcFoeQueryRspMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcAfcFoeQueryRspMsgT_tmp Msg;
+} elt_rmc_foe_query_rsp_msg_struct_tmp;
+
+typedef struct {
+   kal_uint32 bSlottedModeEnabled;
+} IdpSlottedModeSetMsgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IdpSlottedModeSetMsgT_tmp msg;
+    /*bSlottedModeEnabled::0->Disable;1->Enable.*/
+} elt_clc_idp_slotted_mode_set_cmd_msg_struct_tmp;
+
+typedef struct {
+   kal_uint32 Reserved;
+} IdpSlottedModeSetRspT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IdpSlottedModeSetRspT_tmp msg;
+} elt_clc_idp_slotted_mode_set_rsp_msg_struct_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} elt_clc_get_l3_status_cmd_msg_struct_tmp;
+
+typedef enum
+{
+  AT_PWROFF_TMP, /*Same as AT_INACTIVE, but can be used to check powerup */
+  AT_INACTIVE_TMP,
+  AT_PILOTACQ_TMP,
+  AT_SYNC_TMP,
+  AT_IDLE_TMP,
+  AT_ACCESS_TMP,
+  AT_CONNECTED_TMP
+}EEDOATStateEnumT_tmp;
+
+typedef struct
+{
+   EEDOATStateEnumT_tmp  ATState;
+   kal_uint8     AlmpState;
+   kal_uint8     InspState;
+   kal_uint8     IdpState;
+   kal_uint8     CspState;
+   kal_uint8     RupState;
+   kal_uint8     OmpState;
+   kal_bool      bHybridOn;
+}MonSpyL3StateT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    MonSpyL3StateT_tmp msg;
+    /* Begin Enum, AlmpState:Init,0; Idle,1; ConnectionSetup,2; Connected,3; End */
+    /* Begin Enum, InspState:Inactive,0; NetworkDetermination,1; PilotAcq,2;
+     *                       Sync,3; TimingChange,4; INSP_WFR_1XASSIST_SIG,5;
+     * End
+     */
+    /* Begin Enum, IdpState:Inactive,0; Monitor,1; Sleep,2; ConnectionSetup,3;
+     *                      FreezePending,4; Freeze,5; ConnFrozen,6; WaitFor1XAssistAcqSignal,7;
+     * End
+     */
+    /* Begin Enum, CspState:Inactive,0; Closing,1; Open,2; End */
+    /* Begin Enum, RupState:Inactive,0; Idle,1; Connected,2; IRAT_MEASURE,3; End */
+    /* Begin Enum, OmpState:Inactive,0; Active,1; End */
+    /* bHybridOn:0->Off, 1->On. */
+} elt_clc_get_l3_status_rsp_msg_struct_tmp;
+
+typedef struct {
+   kal_uint32    DfsTstServingFlag;
+} RmcDoDfsServChCmdMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_DO_DFS_SERVCH_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcDoDfsServChCmdMsgT_tmp Msg;
+} elt_rmc_do_dfs_servch_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp   Status;
+
+} RmcDoDfsServChRspMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_DO_DFS_SERVCH_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcDoDfsServChRspMsgT_tmp Msg;
+} elt_rmc_do_dfs_servch_rsp_msg_struct_tmp;
+
+/** Define sturcture of Setting DFS channel count */
+typedef struct
+{
+   /** Indicate whether to set DFS channel count manually */
+   Bool      DfsSetChCntInd;
+   /** Indicate the number of DFS channels to be set */
+   kal_uint8 DfsChCntTst;
+} RmcTstSetIdpDfsChCntMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_TEST_DO_SET_DFS_CHCNT_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcTstSetIdpDfsChCntMsgT_tmp Msg;
+} elt_rmc_test_do_set_dfs_chcnt_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp Status;
+} RmcTestDoSetDfsChCntRspMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_TEST_DO_SET_DFS_CHCNT_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcTestDoSetDfsChCntRspMsgT_tmp Msg;
+} elt_rmc_test_do_set_dfs_chcnt_rsp_msg_struct_tmp;
+
+/* SCH_RUP_PILOT_UPDATE_MSG */
+typedef  struct
+{
+   kal_int8          NumPilots;
+   kal_uint16        PilotPN[6];
+   kal_uint8         MACIndex[6];
+   kal_int16         PnPhase[6];
+   kal_uint8         SofterHandoff[6];             /*1 bit*/
+   kal_uint8         RABLength[6];                /* 2 bits*/
+   kal_uint8         RABOffset[6];                 /* 3 bits*/
+   kal_int8          RAChannelGain[6];          /*2bits, -1 means NULL*/ 
+   kal_uint8         DRCCover[6];
+   kal_uint8         DSC[6];   /* oxff means NULL */
+} RupActiveListT_tmp; 
+
+typedef  struct
+{
+   kal_int8             NumPilots;
+   kal_uint16           PilotPN[10];
+   kal_int16            PnPhase[10];
+} RupCandListT_tmp; 
+
+typedef  struct
+{
+   kal_int8             NumPilots;
+   kal_uint16           PilotPN[56];   
+   kal_uint8            SrhWinSize[56];   /* 255 is NULL, not mapped to PN chips*/
+   kal_uint8            SrhWinOffset[56]; /*255 is NULL, not mapped to PN chips*/    
+} RupNghbrListT_tmp;
+
+typedef  struct
+{
+   kal_int8             NumPilots;
+   kal_uint16           PilotPN[5];
+} RupRemListT_tmp; 
+
+typedef struct 
+{
+   kal_int16            PilotSeq;      /* Sequence number to match up with the measurement report */ 
+   kal_uint8            ConnSetupFlag; /*message sent  upon the receipt of TCHAssign in the Idle State*/
+   kal_uint8            TcaFlag;
+   RupActiveListT_tmp   Active;        /* Active set*/
+   RupCandListT_tmp     Candidate;     /* Candidate set */
+   RupNghbrListT_tmp    Neighbor;      /* Neighbor set */
+   RupRemListT_tmp      Remaining; 
+} SchPilotUpdateMsgT_tmp;
+
+typedef struct
+{
+    SchPilotUpdateMsgT_tmp SchUpdateMsg;
+} RmcSchPilotUpdateMsgT_tmp;
+
+/*MSG_ID_ELT_RMC_DO_INTRA_MEAS_CMD_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcSchPilotUpdateMsgT_tmp Msg;
+}elt_rmc_do_intra_meas_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp   Status;
+    kal_uint32  PilotPn;
+
+} RmcDoIntraMeasRspMsgT_tmp;
+
+/*MSG_ID_ELT_RMC_DO_INTRA_MEAS_RSP_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcDoIntraMeasRspMsgT_tmp Msg;
+}elt_rmc_do_intra_meas_rsp_msg_struct_tmp;
+
+typedef struct
+{
+   kal_uint8 reserve;
+
+} RmcRupDfsAbortMsgT_tmp;
+
+/*MSG_ID_ELT_RUP_CLC_DFS_SET_CMD_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRupDfsAbortMsgT_tmp Msg;
+}elt_rmc_rup_dfs_abort_msg_struct_tmp;
+
+/* CDMA Channel Record */
+typedef  struct
+{
+   kal_uint8             SysType;
+   kal_uint8             BandClass;
+   kal_uint16            Channel;
+}ChanRecGT_tmp;
+
+typedef struct
+{
+   ChanRecGT_tmp        DfsChannel;    /* Dfs channel */
+   RupCandListT_tmp     Candidate;     /* Candidate set belong to same dfs channel */
+   RupNghbrListT_tmp    Neighbor;      /* Neighbor set belong to same dfs channel */
+}RupDfsChannelCfgT_tmp;
+
+typedef struct
+{
+    kal_uint16             DfsCfgSeq;                                /* Sequence number to match up with the measurement report */
+    kal_uint8              NumChan;                                  /* Total Unique DFS Channels */
+    RupDfsChannelCfgT_tmp  ChanList[2];    /* Measured dfs frequency and neighbor info */
+}RmcRupDfsCfgMsgT_tmp;
+
+
+/*MSG_ID_ELT_RUP_IDP_DFS_START_CMD_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRupDfsCfgMsgT_tmp Msg;
+}elt_rmc_rup_dfs_start_cmd_msg_struct_tmp;
+
+
+typedef struct
+{
+    kal_uint32 Reserve;
+} RmcMmAfcStateQueryCmdMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_MMAFC_STATE_QUERY_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcMmAfcStateQueryCmdMsgT_tmp Msg;
+} elt_rmc_mmafc_state_query_cmd_msg_struct_tmp;
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp   Status;
+    kal_uint32             MmAfcState;
+
+} RmcMmAfcStateQueryRspMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_MMAFC_STATE_QUERY_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcMmAfcStateQueryRspMsgT_tmp Msg;
+} elt_rmc_mmafc_state_query_rsp_msg_struct_tmp;
+
+
+typedef struct
+{
+    kal_uint32 Reserve;
+} RmcRxTxActSlotQueryCmdMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_RX_TX_ACT_SLOT_QUERY_CMD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRxTxActSlotQueryCmdMsgT_tmp Msg;
+} elt_rmc_rx_tx_act_slot_query_cmd_msg_struct_tmp;
+
+
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp   Status;
+    kal_uint32             RxActiveSlot;
+    kal_uint32             TxActiveSlot[5];
+    
+} RmcRxTxActSlotQueryRspMsgT_tmp;
+
+/** MSG_ID_ELT_RMC_RX_TX_ACT_SLOT_QUERY_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    RmcRxTxActSlotQueryRspMsgT_tmp Msg;
+} elt_rmc_rx_tx_act_slot_query_rsp_msg_struct_tmp;
+
+typedef enum
+{
+    CL1_DISABLE_MODE_tmp = 0,
+    CL1_MAINRX_ONLY_MODE_tmp = 1,
+    CL1_DIVERSITYRX_ONLY_MODE_tmp,
+    CL1_DUAL_MODE_tmp,
+    CL1_TESTMODE_NUM_tmp
+} Cl1AntennaTestModeT_tmp;
+
+typedef struct
+{
+    Cl1AntennaTestModeT_tmp    AntTestMode;
+}Cl1TstRxAntennaTestModeT_tmp;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   Cl1TstRxAntennaTestModeT_tmp          Msg;
+} elt_tst_rx_antenna_testmode_set_msg_struct_tmp;
+
+
+
+typedef struct
+{
+    module_type    dest_mod_id_tmp;  /* Destination module ID of response message */
+    kal_uint32     MsgId_tmp; 
+}ExeRspMsgT_tmp;
+
+typedef enum
+{
+    VAL_Cl1TST_START_TX_TRANSMIT_tmp = 0,
+    VAL_CL1TST_STOP_TX_TRANSMIT_tmp,
+    VAL_CL1TST_START_RX_MEASURE_tmp,
+    VAL_CL1TST_TX_POWER_QUERY_tmp,
+    VAL_CL1TST_START_TX_POWER_MODU_SIGNAL_tmp,
+    VAL_CL1TST_STOP_TX_POWER_MODU_SIGNAL_tmp,
+    VAL_CL1TST_DETECT_RX_POWER_DBM_UNIT_tmp,
+    VAL_CL1TST_POWER_REDUCTION_LEVEL_tmp,
+    VAL_CL1TST_POWER_REDUCTION_LEVEL_BY_BAND_tmp
+}ValCl1tstReqModeT_tmp;
+
+typedef enum
+{
+    VAL_CL1TST_SIG_TX_TONE_tmp = 0,
+    VAL_CL1TST_SIG_TX_MODU_tmp,
+    VAL_CL1TST_SIG_INVALID_tmp = 255
+}ValCl1tstTxSigTypeT_tmp;
+
+typedef struct
+{
+    ValCl1tstReqModeT_tmp           Mode;
+    kal_uint16                      Channel;
+    kal_uint8                       Band;
+    kal_int8                        TxPower;/*Q0*/
+    ValCl1tstTxSigTypeT_tmp         TxSigType;
+}Cl1tstValRxTxPwrDetectMsgT_tmp;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   Cl1tstValRxTxPwrDetectMsgT_tmp          Msg;
+} elt_tst_rx_at_sim_rx_rssi_msg_struct_tmp;
+
+
+typedef struct
+{
+/*
+0: ics wo afc wo 1x
+1: ics wi afc wo 1x
+2: ics wo afc wi 1x
+3: ics wi afc wi 1x
+4: ics wo signal
+5: ics wi  strong signal
+6: ics foe
+7: ics preempt
+0xf----->valid(no test )*/
+  kal_uint8  caseId ;
+
+} EltTstIcsTstCaseIdCfgTtmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltTstIcsTstCaseIdCfgTtmp  msg;
+} elt_tst_ics_tst_caseId_cfg_msg_struct_tmp;
+
+typedef struct
+{
+    kal_bool RcpDbgEn;  /* 1->RCP subchannel in Debug mode, 0->normal mode */
+    kal_bool RcpDbgVal;
+    kal_bool ArqDbgEn;  /* 1->H/LARQ subchannel in Debug mode, 0->normal mode */
+    kal_bool ArqDbgVal;
+}EltTstMcdDebugMsgTtmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltTstMcdDebugMsgTtmp  msg;
+} elt_tst_mcd_debug_msg_struct_tmp;
+
+typedef struct
+{
+   kal_int16 CheckType;/*bit 0--->Chananl Register   bit1---->Rssi   bit2---->Ec/iO    bit3---->FOE   bit4----->Sync ok */
+   kal_int16 IcsRegisterChan;
+   kal_int16 IcsRssiRpt;
+   kal_int16  IcsEcIoPrt;
+   kal_int16  IcsFoePrt;
+   kal_int16 IcsSyncOk;
+}EltTstIcsCheckRptTtmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltTstIcsCheckRptTtmp      msg;
+} elt_tst_ics_check_rpt_msg_struct_tmp;
+
+typedef struct
+{
+   SysCdmaBandT   Band;
+   kal_uint16     Chan;
+   kal_uint8      TriggerSource; /* 0->IDP; 1->RUP */
+}EltRmcInterhoTstCfgTtmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltRmcInterhoTstCfgTtmp      msg;
+} elt_c2k_rmc_interho_tst_cfg_msg_struct_tmp;
+
+typedef struct
+{
+   kal_uint16     ResePilotPN;
+}EltRmcIntrahoTstCfgTtmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltRmcIntrahoTstCfgTtmp      msg;
+} elt_c2k_rmc_intraho_tst_cfg_msg_struct_tmp;
+
+typedef struct
+{
+    kal_uint8  DoSignalValidFlag;
+} EltTstStbDoSignalCfgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltTstStbDoSignalCfgT_tmp  Msg;
+} elt_tst_stb_dosignal_cfg_msg_struct_tmp;
+
+typedef struct
+{
+    kal_uint8  RttTimingValid;
+    kal_uint8  DoTimingValid;
+} EltTstStbTimingCfgT_tmp;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    EltTstStbTimingCfgT_tmp  Msg;
+} elt_tst_stb_timing_cfg_msg_struct_tmp;
+/** define Rx antenna mode response ELT msg */
+/** MSG_ID_ELT_TST_RX_ANTENNA_TESTMODE_SET_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   Cl1TstRxAntennaTestModeRspT_tmp          msg;
+} elt_tst_rx_antenna_testmode_set_rsp_msg_struct_tmp;
+
+/** define AT sim rx rssi rsp ELT msg */
+/** MSG_ID_ELT_TST_AT_SIM_RX_RSSI_RSP_MSG*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   Cl1TstRxRssiQueryRspT_tmp          msg;
+} elt_tst_at_sim_rx_rssi_rsp_msg_struct_tmp;
+
+typedef struct
+{
+    kal_uint8  temp_type;
+} EltTstReadTempT_tmp;
+
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   EltTstReadTempT_tmp          Msg;
+} elt_tst_read_temp_msg_struct_tmp;
+
+
+/** Ads structure to provide parameters to the CL1D_RF_Temperature_Query() function. */
+typedef struct
+{
+  /** [in] - 0: From RF for RF temperature compensation
+             1: From PMIC for AFC temperature compensation
+  */
+  kal_uint32  temp_type;
+  /** [out] - Temperature value in Celsius*/
+  kal_uint32 temperature;
+} CL1D_RF_TEMPERATURE_QUERY_T_tmp;
+
+
+/** define temperature get response structure */
+typedef struct
+{
+    /* Request execute status */
+    RmcTstReqStatusE_tmp        Status;
+
+    /* Get temperature*/
+    CL1D_RF_TEMPERATURE_QUERY_T_tmp  Temperature;
+} Cl1TstReadTempRspT_tmp;
+
+
+/** define read temperature response ELT msg */
+/** MSG_ID_ELT_TST_TEMP_READ_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   Cl1TstReadTempRspT_tmp          Msg;
+} elt_tst_read_temp_rsp_msg_struct_tmp;
+
+
+#endif
+
+#endif //VMMI_MSG_STRUCT_H