[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