[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6

MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF  modem version: NA

Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/protocol/nas_c2k/PREFROAM.H b/mcu/interface/protocol/nas_c2k/PREFROAM.H
new file mode 100644
index 0000000..0bf018e
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/PREFROAM.H
@@ -0,0 +1,349 @@
+/*************************************************************
+*
+* 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) 1999-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+/****************************************************************************
+ *
+ * Module:     prefroam.h
+ *
+ * Purpose:    Definitions for Preferred Roamer List updates from OTASP.
+ *
+ *             SNR 7/19/00 Updated the purpose: removed the 'NAM updates'
+ *             see Rev 1.2 comments
+ *
+ ****************************************************************************
+ *
+ *                          PVCS Header Information
+ *
+ *  $Workfile$
+ *  $Revision: 1.4 $
+ *  $Modtime$
+ *  $Author: mclee $
+ *
+ *  $Log: PREFROAM.H $
+ *
+ *  06 29 2017 sue.zhong
+ *  [MOLY00259241] [6293][C2K]Replace with KAL data type
+ *  ::KAL type - folder inc
+ *
+ *  05 18 2017 qiming.li
+ *  [MOLY00246713][UMOLYA] CSS Traces Re-organization and Re-format
+ *
+ *  05 17 2017 peijun.zheng
+ *  [MOLY00249027] [BIACNO][MT6763][New feature]C2K code release code modification
+ *  	
+ *  	C2k code release.
+ *
+ *  02 10 2017 jiayong.zhang
+ *  [MOLY00221596] [Gen93] L4 Integration M1 check in
+ *  	
+ *  	.
+ *  Revision 1.4  2006/03/29 12:13:26  mclee
+ *  - Add _ResetOosaCounters() prototype.
+ *  Revision 1.3  2005/03/18 10:24:43  bcolford
+ *  CBP4.05 [4.21] to CBP6.1 [2.9.0] CP Software Merge.
+ *  Revision 1.3  2004/12/01 08:26:21  mclee
+ *  Merged up to CP 12.0.2 changes from CBP 4.0 into the CBP 4.05 baseline.  Add #define CURRENT_SYSTEM 15.
+ *  Revision 1.2  2004/08/13 10:05:44  agontar
+ *  Removed T53 flag; added support for BC3; cleaned up logs
+ *  Revision 1.2  2004/03/25 12:08:58  fpeng
+ *  Updated from 6.0 CP 2.5.0
+ *  Revision 1.2  2004/02/10 12:50:13  bcolford
+ *  Merged CBP4.0 Release 8.05.0 changes.
+ *  Revision 1.9  2003/11/06 11:34:18  ameya
+ *  Added new indications to enter CSS, changed function names of cssCpUnpackPrl() and cssCpValidateSystem(). Also added prototypes for cssCpRedirectionEndTimeout() and cssCpMorePrefScanTimeout().
+ *  Revision 1.8  2002/07/31 17:22:35  hans
+ *  A, B and C frequency block added for Band Class 4 (cr726).
+ *  Revision 1.7  2002/06/06 13:14:15  chinh
+ *  Changed and Added Copyright
+ *  Revision 1.6  2002/02/25 08:47:35  AMALA
+ *  Corrected SS Re-Scan errors.
+ *  Revision 1.5  2002/01/10 17:11:06  AMALA
+ *  Added emergency mode processing for new system selection.
+ *  Revision 1.4  2002/01/02 10:08:52  AMALA
+ *  Added new system selection changes.
+ *  Added system re-scan functionality.
+ *  Revision 1.3  2001/11/08 12:20:50  AMALA
+ *  Deleted compiler switch SYS_SEL_1_CBP3_MERGE &
+ *  associated non-compiled code.
+ *  Revision 1.2  2001/09/17 14:10:54  AMALA
+ *  CBP3 System Selection port
+ *  Revision 1.1  2001/01/17 10:59:14  plabarbe
+ *  Initial revision
+ *  Revision 1.1  2000/10/24 14:11:24  fpeng
+ *  Initial revision
+ *  Revision 1.4  2000/09/23 02:38:24Z  rnookala
+ *  removed function prototype unpackSspr
+ *  Revision 1.3  2000/08/23 22:10:14Z  RSATTARI
+ *  Isotel release 2.8 plus LSI applicable IS-95B changes.
+ *  Revision 1.3  2000/02/18 23:03:59  gfrye
+ *  Added defines for PRL_HEADER_SIZE and PRL_CRC_SIZE.
+ *
+ *  Revision 1.2  2000/01/21 22:08:46  gfrye
+ *  Moved NAM parameters structures to wbios.h.
+ *  Added channel list and acquisition record list structures to help
+ *  separate "geo scan" list from initial power-up scan list.
+ *
+ *  Revision 1.1  1999/12/09 23:02:44  gfrye
+ *  Initial revision
+ *
+ *
+ ****************************************************************************
+ ****************************************************************************/
+
+#ifndef PREFROAM_H
+#define PREFROAM_H
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "cssapi.h"
+#include "pswnam.h"
+
+/*****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+/* Cellular System types */
+#define CP_SYSTEM_CDMA        1       /* Band 0 CDMA */
+#define CP_SYSTEM_ANALOG      2       /* Band 0 Analog */
+#define CP_SYSTEM_UNKNOWN     3
+
+/* max times to attempt CDMA acquisition from CDMA Available indication */
+/* from Analog mode */
+#define CP_SELECT_MAX_CDMA_AVAIL_TRIES    5
+
+/* Call Processing system determination indications */
+/* NOTE: If this list is changed, please update enum CssIndicationId in ps_trace.txt */
+
+
+/* NOTE: If this list is changed, please update enum CssIndicationId in css_trace.txt */
+
+/* system selection codes, see Table 1.4-1: System Selection Codes in 3GPP2 C.S0057-D v1.0 */
+
+#define BC0_A   0
+#define BC0_B   1
+
+#define BC1_A   2
+#define BC1_B   3
+#define BC1_C   4
+#define BC1_D   5
+#define BC1_E   6
+#define BC1_F   7
+
+#define BC2_A   8
+#define BC2_B   9
+
+/* Band Class 3: 830 to 925 MHz JTACS */
+#define BC3_A   10
+#define BC3_B   11
+
+#define BC4_A   12
+#define BC4_B   13
+#define BC4_C   14
+
+#define BC5_A   15
+#define BC5_B   16
+#define BC5_C   17
+#define BC5_D   18
+#define BC5_E   19
+#define BC5_F   20
+#define BC5_G   21
+#define BC5_H   22
+
+/* Band Class 6: 2GHz */
+#define BC6_A   23
+
+/* 3GPP2 C.S0057-D v1.0: Band Class 7: only C block is valid, with code=24 */
+#define BC7_C   24
+
+#define BC19_A  25
+#define BC19_B  26
+#define BC19_C  27
+
+#define BC8_A   28
+
+#define BC9_A   29
+
+#define BC10_A  30
+#define BC10_B  31
+#define BC10_C  32
+#define BC10_D  33
+#define BC10_E  34
+
+#define BC11_A  35
+#define BC11_B  36
+#define BC11_C  37
+#define BC11_D  38
+#define BC11_E  39
+#define BC11_F  40
+
+#define BC12_A  41
+#define BC12_B  42
+
+#define BC13_A  43
+#define BC13_B  44
+#define BC13_C  45
+#define BC13_D  46
+#define BC13_E  47
+#define BC13_F  48
+#define BC13_G  49
+#define BC13_H  50
+#define BC13_I  51
+#define BC13_J  52
+#define BC13_K  53
+#define BC13_L  54
+#define BC13_M  55
+#define BC13_N  56
+
+#define BC14_A  2
+#define BC14_B  3
+#define BC14_C  4
+#define BC14_D  5
+#define BC14_E  6
+#define BC14_F  7
+#define BC14_G  57
+
+#define BC15_A  58
+#define BC15_B  59
+#define BC15_C  60
+#define BC15_D  61
+#define BC15_E  62
+#define BC15_F  63
+
+#define BC16_A  64
+#define BC16_B  65
+#define BC16_C  66
+#define BC16_D  67
+
+#define BC18_D   68
+#define BC18_PSB 69
+
+#define BC20_A  70
+
+
+/* Used if desired system is unknown for OTASP "*228" */
+#define CURRENT_SYSTEM      100
+#define OTASP_NO_SYSTEM     255
+
+/* field widths, see IS-683-A, section 3.5.3 */
+#define PR_LIST_SIZE_WIDTH 16
+#define PR_LIST_ID_WIDTH   16
+#define CUR_SSPR_P_REV_WIDTH 8  /*as define in C.S0016.C for Extened PRL*/
+#define PREF_ONLY_WIDTH     1
+#define DEF_ROAM_IND_WIDTH  8
+#define NUM_ACQ_RECS_WIDTH  9
+#define NUM_COMMOM_SUBNET_REC_WIDTH 9 /*as define in C.S0016.C for Extened PRL*/
+#define NUM_SYS_RECS_WIDTH 14
+#define PRL_CRC_WIDTH      16
+/*                         --
+ *                         64 / 8 = 8 bytes */
+#define PRL_HEADER_SIZE     8
+#define PRL_CRC_SIZE        2
+
+/* acquisition record fields */
+#define ACQ_TYPE_WIDTH       4
+#define EXT_ACQ_TYPE_WIDTH   8
+#define EXT_ACQ_LENGTH_WIDTH 8   /*as define in C.S0016.C for Extened PRL*/
+#define SYSTEM_A_B_WIDTH     2
+#define SYSTEM_PRI_SEC_WIDTH 2
+#define NUM_CHANS_WIDTH      5
+#define BAND_WIDTH           5
+#define CHANNEL_WIDTH       11
+#define NUM_BLOCKS_WIDTH     3
+#define FREQ_BLOCK_WIDTH     3
+
+#define SUBNET_COMMON_LENGTH_WIDTH 4
+
+/* system record fields */
+#define SID_WIDTH       15
+#define NID_INCL_WIDTH   2
+#define NID_WIDTH       16 /* optional */
+#define PREF_NEG_WIDTH   1
+#define GEO_WIDTH        1
+#define PRIORITY_WIDTH   1 /* optional */
+#define ACQ_INDEX_WIDTH  9
+#define ROAM_IND_WIDTH   8 /* optional */
+#define SYS_RECORD_LEN_WIDTH  5
+#define SYS_RECORD_TYPE_WIDTH 4
+#define SUBNET_COMM_INC_WIDTH 1
+#define SUBNET_LSB_LEN_WIDTH  7
+#define SUBNET_COMM_OFFSET_WIDTH 12
+#define ASSOCIATION_INC_WIDTH 1
+#define ASSOCIATION_TAG_WIDTH 8
+#define PN_ASSOCIATION_WIDTH  1
+#define DATA_ASSOCIATION_WIDTH 1
+#define SUBTYPE_WIDTH 3
+#define MCC_WIDTH 12
+#define MNC_WIDTH 12
+#define NUM_SID_WIDTH 4
+#define MCC_OFFSET_WIDTH 4
+#define NUM_SID_NID_WIDTH 4
+#define NUM_SUBNET_WIDTH 4
+#define NUM_SUBNET_LEN_WIDTH 8
+#define MCC_SID_WIDTH 16
+#define MCC_NID_WIDTH 16
+#define SUBNET_OFFSET_WIDTH 4
+
+/* values for NID_INCL */
+#define NID_ALL_ONES  0
+#define NID_INCLUDED  1
+#define NID_ALL_ZEROS 2
+
+/* special values for nid */
+#define NID_WILDCARD 0xFFFF
+#define NID_PUBLIC   0x0000
+
+#define SID_WILDCARD 0x0000  /* 0x0 means wildcard SID for PRL */
+#ifdef MTK_CBP
+/* NAM home SID not programmed requirement in Verzion Reqs-ERI */
+#define SID_NOT_PROGRAMMED 0x0000 /* 0x0 means not programmed SID for home SID */
+
+#define MCC_INVALID 0xFFFF
+#define MNC_INVALID 0xFF
+#endif
+
+/* values for block, see table 3.5.5.2.1.5-1 */
+#define PCS_BLOCK_A 0
+#define PCS_BLOCK_B 1
+#define PCS_BLOCK_C 2
+#define PCS_BLOCK_D 3
+#define PCS_BLOCK_E 4
+#define PCS_BLOCK_F 5
+#define PCS_BLOCK_ANY 7
+
+
+/****************************************************************************
+ * PE => SSPR Interface Function Prototypes
+ ****************************************************************************/
+PRL_HEADER* cssCpGetPrlInfo(NamNumber namNumber);
+void cssCpEmergencyCallbackModeTimeout(void);
+void cssCpRescanTimeout(void);
+kal_bool cssCpRescanEnabled(void);
+void cssCpRedirectionEndTimeout(void);
+void cssCpMorePrefScanTimeout(void);
+void cssCpEprlEspmWaitTimeout(void);
+
+
+/*****************************************************************************
+ * System Re-Direction Prototypes
+ ****************************************************************************/
+
+void cpSystemSelectionReset(void);
+void cpSetRedirectionStatus(kal_bool status);
+kal_uint16 cpGetAnalogRedirectionSid(void);
+kal_uint16 cpGetRedirectionSid(void);
+kal_uint16 cpGetRedirectionNid(void);
+kal_bool cpGetRedirectionIgnoreCDMA(void);
+kal_bool cpIsReturnIfFail(void);
+void cssCpCustomSystemSelection(void);
+
+void namUpdate(kal_uint8 whatsChanged);
+void _ResetOosaCounters(void);
+
+#endif /* PREFROAM_H */
diff --git a/mcu/interface/protocol/nas_c2k/c2k_sms_enums.h b/mcu/interface/protocol/nas_c2k/c2k_sms_enums.h
new file mode 100644
index 0000000..f6c9e9f
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/c2k_sms_enums.h
@@ -0,0 +1,77 @@
+/*******************************************************************************
+*  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).
+*
+*******************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *    c2k_sms_enums.h
+ *
+ * Project:
+ * --------
+ *    
+ *
+ * Description:
+ * ------------
+ *    C2K SMS related enums between MD1/MD3
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ******************************************************************************/
+#ifndef _C2K_SMS_ENUMS_H_
+#define _C2K_SMS_ENUMS_H_
+
+
+/*----------------------------------------------------------------------------*/
+/*                       MD1 SDM/IMCSMS <--> MD3 VAL                          */
+/*----------------------------------------------------------------------------*/
+
+typedef enum {
+   C2K_SMS_OVER_IMS,
+   C2K_SMS_OVER_C2K
+} c2k_sms_rat_enum;
+
+typedef enum {
+   C2K_NORMAL_SMS,
+   C2K_ACKNOWLEDGE
+} c2k_sms_ind_enum;
+
+typedef enum {
+   C2K_NORMAL_MESSAGE,
+   C2K_PP_DOWNLOAD
+} c2k_mt_sms_type;
+
+#endif /* _C2K_SMS_ENUMS_H_ */
diff --git a/mcu/interface/protocol/nas_c2k/c2k_sms_struct.h b/mcu/interface/protocol/nas_c2k/c2k_sms_struct.h
new file mode 100644
index 0000000..78bbf6f
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/c2k_sms_struct.h
@@ -0,0 +1,153 @@
+/*******************************************************************************
+*  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:
+ * ---------
+ *    c2k_sms_struct.h
+ *
+ * Project:
+ * --------
+ *    SRLTE
+ *
+ * Description:
+ * ------------
+ *   Modem 1 sends C2K SMS to modem 3
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ******************************************************************************/
+#ifndef _C2K_SMS_STRUCT_H_
+#define _C2K_SMS_STRUCT_H_
+
+
+#include "c2k_sms_enums.h"
+#include "ps_public_enum.h"
+
+/*----------------------------------------------------------------------------*/
+/*                              MD1 SDM <--> MD3 VAL                                                                  */
+/*----------------------------------------------------------------------------*/
+#define MAX_C2K_SMS_PDU_LEN 255
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint16	     length;
+   kal_uint8         pdu[MAX_C2K_SMS_PDU_LEN];
+   c2k_sms_rat_enum  send_over_ims_cs;
+} sdm_cval_c2k_sms_send_req_struct;
+
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8	     error_class;
+   kal_uint16        cause_code;
+   kal_uint16        msg_id;
+   c2k_sms_rat_enum  send_over_ims_cs;  
+   kal_uint16	     length;
+   kal_uint8         pdu[MAX_C2K_SMS_PDU_LEN];
+} sdm_cval_c2k_sms_send_cnf_struct;
+
+
+typedef struct {
+   LOCAL_PARA_HDR
+   c2k_sms_ind_enum  format;  
+   kal_uint16        length;
+   kal_uint8         pdu[MAX_C2K_SMS_PDU_LEN];
+} sdm_cval_c2k_sms_ind_struct;
+
+
+typedef struct {
+   LOCAL_PARA_HDR
+   c2k_sms_rat_enum  send_over_ims_cs;  
+   kal_uint16        length;   
+   kal_uint8         pdu[MAX_C2K_SMS_PDU_LEN];
+   kal_bool          is_no_error; //TRUE: no error, FALSE: has error
+} sdm_cval_c2k_sms_rsp_struct;
+
+typedef struct 
+{ 
+    LOCAL_PARA_HDR 
+    scbm_rat_enum    rat;
+} sdm_cval_scbm_start_ind_struct;
+
+typedef struct 
+{ 
+    LOCAL_PARA_HDR 
+    scbm_rat_enum    rat;
+    exit_scbm_reason_enum       cause;
+} sdm_cval_scbm_stop_ind_struct;
+
+/*----------------------------------------------------------------------------*/
+/*                           MD1 IMCSMS <--> MD3 VAL                          */
+/*----------------------------------------------------------------------------*/
+/* MSG_ID_IMCSMS_CVAL_C2K_SMS_SEND_REQ */
+typedef struct{
+	LOCAL_PARA_HDR
+	kal_uint16  length;
+	kal_uint8   data[MAX_C2K_SMS_PDU_LEN];
+} imcsms_cval_c2k_sms_send_req_struct;
+
+/* MSG_ID_IMCSMS_CVAL_C2K_SMS_SEND_CNF */
+typedef struct{
+	LOCAL_PARA_HDR
+	kal_uint16  msg_id;  
+	kal_uint8   error_class;  
+	kal_bool    is_no_error; //TRUE: no error, FALSE: has error
+	kal_uint8   direction;  //1: MO_STATUS, 2: C2K_MT_MESSAGE, 3: C2K_MT_PP_DOWNLOAD
+	kal_uint16  length;
+	kal_uint8   data[MAX_C2K_SMS_PDU_LEN]; 
+} imcsms_cval_c2k_sms_send_cnf_struct;
+
+/************** for C2K MT SMS from IMS (non-TC01) ************/
+/* MSG_ID_IMCSMS_CVAL_C2K_SMS_RECV_REQ */
+typedef struct{
+	LOCAL_PARA_HDR
+	kal_uint16  length;
+	kal_uint8   data[MAX_C2K_SMS_PDU_LEN];
+} imcsms_cval_c2k_sms_recv_req_struct;
+
+/* MSG_ID_IMCSMS_CVAL_C2K_SMS_RECV_CNF */
+typedef struct{
+	LOCAL_PARA_HDR
+	kal_uint16  length;
+	kal_uint8   data[MAX_C2K_SMS_PDU_LEN]; //same content as data in REQ
+	c2k_mt_sms_type  type; 
+    kal_bool    result;  //MD3 handling result. TRUE: MD3 normal handling, FALSE: MD3 has problem
+} imcsms_cval_c2k_sms_recv_cnf_struct;
+/**************************************************************/
+
+#endif 
diff --git a/mcu/interface/protocol/nas_c2k/css_msg_struct.h b/mcu/interface/protocol/nas_c2k/css_msg_struct.h
new file mode 100644
index 0000000..b467b01
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/css_msg_struct.h
@@ -0,0 +1,878 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+*
+* FILE NAME   : css_msg_struct.h
+*
+* DESCRIPTION : Message structure definition for CSS task.
+*
+* HISTORY     :
+*****************************************************************************/
+#ifndef _CSS_MSG_STRUCT_H_
+#define _CSS_MSG_STRUCT_H_
+#include "cssapi.h"
+#include "valdbmapi.h"
+
+#ifdef MTK_DEV_C2K_IRAT
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css_L1d_Rssi_Scan_CnfT msg;
+} css_L1d_Rssi_Scan_Cnf_struct;
+
+/* MSG_ID_CSS_IRAT_EVENT_MSG*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssIratEventMsgT msg;
+} css_irat_event_msg_struct;
+
+/* MSG_ID_CSS_PSW_RSVAS_EVENT_REPORT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssRsvasEventReportMsgT msg;
+} css_psw_rsvas_event_report_msg_struct;
+
+/* MSG_ID_CSS_PSW_RSVAS_SUSPEND_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPswRsvasSuspendReqMsgT msg;
+} css_psw_rsvas_suspend_req_msg_struct;
+
+/* MSG_ID_CSS_PSW_RSVAS_DO_VRTL_SUSP_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPswRsvasDoVrtlSuspReqMsgT msg;
+} css_psw_rsvas_do_vrtl_susp_req_msg_struct;
+
+/* MSG_ID_CSS_PSW_RSVAS_DO_RESUME_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPswRsvasDoResumeReqMsgT msg;
+} css_psw_rsvas_do_resume_req_msg_struct;
+
+/* MSG_ID_CSS_PSW_RSVAS_VRTL_RESUME_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPswRsvasVrtlResumeReqMsgT msg;
+} css_psw_rsvas_vrtl_resume_req_msg_struct;
+
+/* MSG_ID_CSS_PSW_RSVAS_RESUME_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPswRsvasResumeReqMsgT msg;
+} css_psw_rsvas_resume_req_msg_struct;
+#endif
+#if defined(MTK_PLT_ON_PC_UT) && defined(MTK_DEV_C2K_IRAT)
+/* MSG_ID_IRATUT_CSS_CONFIGURE_REQ */
+typedef struct
+{
+    /** ILM specific header. */
+    LOCAL_PARA_HDR
+    css_configure_req_struct msg;
+}iratut_css_configure_req_struct;
+#endif
+
+/* MSG_ID_CSS_1X_SELECT_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1xSelectReqMsgT msg;
+} css_1x_select_req_msg_struct;
+
+/* MSG_ID_CSS_1X_VALIDATE_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1xValidateReqT msg;
+} css_1x_validate_req_msg_struct;
+
+/* MSG_ID_CSS_1X_E911MODE_START_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_1x_e911mode_start_msg_struct;
+
+/* MSG_ID_CSS_1X_E911MODE_STOP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_1x_e911mode_stop_msg_struct;
+
+/* MSG_ID_CSS_1X_UPDATE_ACTIVE_NAM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssUpdateActiveNamMsgT msg;
+} css_1x_update_active_nam_msg_struct;
+
+/* MSG_ID_CSS_1X_SET_RETURN_CHANNEL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssSetReturnChannelMsgT msg;
+} css_1x_set_return_channel_msg_struct;
+
+/* MSG_ID_CSS_1X_SET_CALL_PENDING_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1XSetCallPendingMsgT msg;
+} css_1x_set_call_pending_msg_struct;
+
+/* MSG_ID_CSS_1X_SYS_PARMS_UPDATE_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1XSysParmsUpdateMsgT msg;
+} css_1x_sys_parms_update_msg_struct;
+
+/* MSG_ID_CSS_1X_REPORT_CP_EVENT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssRptCpEventMsgT msg;
+} css_1x_report_cp_event_msg_struct;
+
+/* MSG_ID_CSS_1X_CLEAR_MRU_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_1x_clear_mru_msg_struct;
+
+/* MSG_ID_CSS_1X_SAVE_LAST_SYS_IN_MRU_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_1x_save_last_sys_in_mru_msg_struct;
+
+/* MSG_ID_CSS_1X_SAVE_CHANNEL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssSaveChannelMsgT msg;
+} css_1x_save_channel_msg_struct;
+
+/* MSG_ID_CSS_1X_MPSS_TIMEOUT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_1x_mpss_timeout_msg_struct;
+
+/* MSG_ID_CSS_DO_SELECT_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoSelectReqMsgT msg;
+} css_do_select_req_msg_struct;
+
+/* MSG_ID_CSS_DO_VALIDATE_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoValidateReqMsgT msg;
+} css_do_validate_req_msg_struct;
+
+/* MSG_ID_CSS_DO_REDIRECT_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_redirect_req_msg_struct;
+
+/* MSG_ID_CSS_DO_OOSA_WAKEUP_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_oosa_wakeup_ind_msg_struct;
+
+/* MSG_ID_CSS_DO_CONN_START_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoConnStartIndMsgT msg;
+} css_do_conn_start_ind_msg_struct;
+
+/* MSG_ID_CSS_DO_CONN_RELEASE_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_conn_release_ind_msg_struct;
+
+/* MSG_ID_CSS_DO_ACQ_ABORT_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_acq_abort_rsp_msg_struct;
+
+/* MSG_ID_CSS_DO1X_HANDOFF_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do1x_handoff_ind_msg_struct;
+
+/* MSG_ID_CSS_DO_MPSS_TIMEOUT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_mpss_timeout_msg_struct;
+
+/* MSG_ID_CSS_DO_REDIRECT_CHANNEL_LIST_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    SvcRedirDataDoT msg;
+} css_do_redirect_channel_list_msg_struct;
+
+/* MSG_ID_CSS_DO_NTWK_ACQD_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoNtwkAcqdMsgT msg;
+} css_do_ntwk_acqd_msg_struct;
+
+/* MSG_ID_CSS_DO_CHAN_CHANGED_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoChanChangedIndMsgT msg;
+} css_do_chan_changed_ind_msg_struct;
+
+/* MSG_ID_CSS_DO_SESSION_NEGO_MODE_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDOSessionNegoModeMsgT msg;
+} css_do_session_nego_mode_msg_struct;
+
+/* MSG_ID_CSS_DO_SESSION_OPENED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDOSessionOpenedMsgT msg;
+} css_do_session_opened_msg_struct;
+
+/* MSG_ID_CSS_DO_SESSION_CLOSED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_session_closed_msg_struct;
+
+/* MSG_ID_CSS_DO_CLEAR_MRU_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_clear_mru_msg_struct;
+
+/* MSG_ID_CSS_DO_REPORT_CP_EVENT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoRptCpEventMsgT msg;
+} css_do_report_cp_event_msg_struct;
+
+/* MSG_ID_CSS_CP_POWER_CTRL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssCpPowerCtrlMsgT msg;
+} css_cp_power_ctrl_msg_struct;
+
+/* MSG_ID_CSS_PERIODICAL_SEARCH_CYCLE_SET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPeriodicalSearchCycleSetMsgT msg;
+} css_periodical_search_cycle_set_msg_struct;
+
+/* MSG_ID_CSS_DO_DEFAULT_BAND_SET_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    DODefaultBandSetMsgT msg;
+} css_do_default_band_set_msg_struct;
+
+/* MSG_ID_CSS_DO_ACM_APERSIS_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssACMAPersistenceIndMsgT msg;
+} css_do_acm_apersis_ind_msg_struct;
+
+/* MSG_ID_CSS_DO_AUTH_FAIL_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_do_auth_fail_ind_struct;
+
+/* MSG_ID_CSS_UIM_STATUS_NOTIFY_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimNotifyMsgT msg;
+} css_uim_status_notify_msg_struct;
+
+/* MSG_ID_CSS_SVC_STATUS_REQ_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssSvcStatusReqMsgT msg;
+} css_svc_status_req_msg_struct;
+
+/* MSG_ID_CSS_VAL_DEEP_SLEEP_MODE_REQ_MSG*/
+typedef PACKED struct
+{
+    LOCAL_PARA_HDR
+    CssValDeepSleepModeMsgT msg;  /* KAL_TRUE: enter deep sleep mode; KAL_FALSE: exit deep sleep mode */
+} css_val_deep_sleep_mode_req_msg_struct;
+
+/* MSG_ID_CSS_VAL_ATTACH_STATE_IND_MSG */
+typedef PACKED struct
+{
+    LOCAL_PARA_HDR
+    CssValAttachStateIndMsgT msg;
+} css_val_attach_state_ind_msg_struct;
+
+/* MSG_ID_CSS_VAL_ELEVATOR_MODE_IND_MSG */
+typedef PACKED struct
+{
+    LOCAL_PARA_HDR
+    CssValElevatorModeIndMsgT msg;
+} css_val_elevator_mode_ind_msg_struct;
+
+/* MSG_ID_CSS_TEST_MANUAL_BAND_CHNL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssValVsRelIndMsgT  msg;
+} css_val_voice_call_rel_ind_msg_struct;
+
+/* MSG_ID_CSS_TEST_MANUAL_BAND_CHNL_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssTstPllChannelMsgT msg;
+} css_test_manual_band_chnl_msg_struct;
+
+/* MSG_ID_CSS_MARK_CURRENT_1X_SYSTEM_AS_NEGATIVE_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssMarkSystemMsgT msg;
+} css_mark_current_1x_system_as_negative_msg_struct;
+
+/* MSG_ID_CSS_1X_REDIR_IND_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1xRedirIndMsgT msg;
+} css_1x_redir_ind_msg_struct;
+
+#ifdef MTK_DEV_C2K_IRAT
+/* MSG_ID_CSS_MMSS_FILE_UPDATED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssMMSSFileUpdateMsgT msg;
+} css_mmss_file_updated_msg_struct;
+#endif
+
+/* MSG_ID_CSS_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssTimerExpiredMsgT msg;
+} css_timer_expired_msg_struct;
+
+/* MSG_ID_CSS_DO_ACCESS_STATUS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDOAccessStatusIndT msg;
+} css_do_access_status_ind_struct;
+
+/* MSG_ID_CSS_DO_ERR_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDoErrIndT msg;
+} css_do_err_ind_struct;
+
+/* MSG_ID_CSS_DATA_TCH_SETUP_STATUS_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDataTchSetupStatusMsgT msg;
+} css_data_tch_setup_status_msg_struct;
+
+/* MSG_ID_CSS_PSW_1X_REG_STATUS_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPsw1XRegStatusIndT msg;
+} css_psw_1x_reg_status_ind_struct;
+
+/* MSG_ID_CSS_PSW_1X_DO_OVERLAP_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssPsw1XDOOverlapIndT msg;
+} css_psw_1x_do_overlap_ind_struct;
+
+/* MSG_ID_CSS_1X_UPDATE_LAST_SAVED_ECIO_RXPWR_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1xUpdateLastSavedEcIoRxPwrT msg;
+} css_1x_update_last_saved_ecio_rxpwr_msg_struct;
+
+/* MSG_ID_CSS_DBM_INIT_NVRAM_TO_DEFAULT_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssDbmInitDBToDefaultMsgT msg;
+} css_dbm_init_nvram_to_default_msg_struct;
+
+/* MSG_ID_CSS_UIM_GET_NAM_DATA_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    UimGetNamDataRspMsgT msg;
+} css_uim_get_nam_data_msg_struct;
+
+/* MSG_ID_CSS_UIM_GET_PRL_RSP_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssGetPrlRspMsgT msg;
+} css_uim_get_prl_rsp_msg_struct;
+
+/* MSG_ID_CSS_UIM_GET_PRL_IND_MSG */
+typedef css_uim_get_prl_rsp_msg_struct css_uim_get_prl_ind_msg_struct;
+
+/* MSG_ID_CSS_1X_NAM_UPDATED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    Css1xNamUpdatedMsgT msg;
+} css_1x_nam_updated_msg_struct;
+
+/* MSG_ID_MSG_ID_CSS_SET_PARM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ValGenericSetParmMsgT msg;
+} css_set_parm_msg_struct;
+
+/* MSG_ID_CSS_GET_PARM_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ValGenericGetParmMsgT msg;
+} css_get_parm_msg_struct;
+
+#ifdef MTK_DEV_C2K_IRAT
+/* MSG_ID_CSS_HLP_NETWORK_REL_RSP */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssHlpNetwkRelRspMsgT msg;
+} css_hlp_network_rel_rsp_struct;
+
+/* MSG_ID_CSS_HLP_EPS_BEARER_DISCONN_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssHlpEpsBearerDisconnIndT msg;
+} css_hlp_eps_bearer_disconn_ind_struct;
+/* MSG_ID_CSS_VAL_IRAT_POWER_CTRL_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratCssValPowerCtrlReqT msg;
+} css_val_irat_power_ctrl_req_struct;
+
+/* MSG_ID_IRAT_OMP_RAT_UPDATED_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratOmpRATInfoIndT msg;
+} irat_omp_rat_updated_ind_struct;
+
+/* MSG_ID_IRAT_OMP_MCC_RSP */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratOmpMCCRspT msg;
+} irat_omp_mcc_rsp_struct;
+
+/* MSG_ID_IRAT_RCP_TX_PWR_RSP */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratRcpTxPwrRspT msg;
+} irat_rcp_tx_pwr_rsp_struct;
+
+/* MSG_ID_IRAT_PSW_RAT_INFO_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratPswRATInfoIndT msg;
+} irat_psw_rat_info_ind_struct;
+
+/* MSG_ID_IRAT_PSW_MCC_RSP */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratPswMCCRspT msg;
+} irat_psw_mcc_rsp_struct;
+
+/* MSG_ID_IRAT_OMP_MCC_CHANGE_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratOmpMccChangeIndT msg;
+} irat_omp_mcc_change_ind_struct;
+
+/* MSG_ID_IRAT_PSW_MCC_CHANGE_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratPswMccChangeIndT msg;
+} irat_psw_mcc_change_ind_struct;
+
+/* MSG_ID_IRAT_PSW_CUR_SYS_WEAK_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratRupCurSysWeakIndT msg;
+} irat_psw_cur_sys_weak_ind_struct;
+
+/* MSG_ID_IRAT_PSW_CUR_SYS_MEAS_RSP */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratPswCurSysMeasRspT msg;
+} irat_psw_cur_sys_meas_rsp_struct;
+
+/* MSG_ID_IRAT_OMP_CELLID_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratOmpCellIDIndT msg;
+} irat_omp_cellid_ind_struct;
+
+/*MSG_ID_IRAT_PSW_CELLID_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratPswCellIDIndT msg;
+} irat_psw_cellid_ind_struct;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratCssCpsdmReselReqT msg;
+} css_val_l2c_resel_req_struct;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratCssCpsdmRedirectReqT msg;
+} css_val_l2c_redirect_req_struct;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratCssCpsdmRatChangeCmpReqT msg;
+} css_val_l2c_cmp_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+   IratCpsdmCssReselToLteRspT msg;
+} css_val_c2l_resel_rsp_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    IratCpsdmCssDataDeactivateRspT msg;
+} css_val_data_deactivate_rsp_struct;
+
+#endif
+
+/* MSG_ID_CSS_IRATM_WAKEUP_FOR_IRAT_MEAS_IND*/
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_iratm_wakeup_for_irat_meas_ind_struct;
+
+#ifdef MTK_DEV_C2K_IRAT
+/* MSG_ID_CSS_IRATM_PLMN_LIST_UPDATE_RSP */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssIratmPlmnListUpdateRspT msg;
+} css_iratm_plmn_list_update_rsp_struct;
+
+/* MSG_ID_CSS_IRATM_TO_LTE_RESEL_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssIratmToLteReselIndT msg;
+} css_iratm_to_lte_resel_ind_struct;
+
+/* MSG_ID_CSS_IRATM_PARAM_UPDATE_IND */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssIratmParaUpdateIndT msg;
+} css_iratm_param_update_ind_struct;
+
+/* MSG_ID_CSS_IRATM_SUSPEND_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} css_iratm_suspend_cnf_struct;
+
+/* MSG_ID_CSS_IRATM_POWER_CTRL_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssIratmPowerCtrlCnfT msg; /*0: power off; 1: power on */
+}css_iratm_power_ctrl_cnf_struct;
+
+/* MSG_ID_CSS_IRATM_MEAS_CTRL_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssIratmMeasCtrlCnfT msg; /*0: measurement off; 1: measurement on */
+}css_iratm_to_lte_meas_ctrl_cnf_struct;
+
+/* MSG_ID_CSS_CLC_RELEASE_LLA_REQ */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   CssClcReleaseLlaReqT msg;
+}css_clc_release_lla_req_struct;
+
+/*  MSG_ID_IRAT_L1D_TX_PWR_RSP */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratL1dTxPwrRspT  msg;
+}irat_l1d_tx_pwr_rsp_struct;
+
+/*  MSG_ID_IRATUT_CSS_CPSDM_RESEL_REQ */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratCssCpsdmReselReqT msg;
+} iratut_css_cpsdm_resel_req_struct;
+
+/* MSG_ID_IRATUT_CSS_CPSDM_REDIRECT_REQ */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratCssCpsdmRedirectReqT msg;
+} iratut_css_cpsdm_redirect_req_struct;
+
+/* MSG_ID_IRATUT_CSS_CPSDM_RESEL_TO_LTE_RSP*/
+typedef struct
+{
+   LOCAL_PARA_HDR
+   IratCpsdmCssReselToLteRspT msg;
+} iratut_css_cpsdm_resel_to_lte_rsp_struct;
+
+/* MSG_ID_CSS_1X_OOSA_WAKEUP_IND_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_1x_oosa_wakeup_ind_msg_struct;
+
+/* MSG_ID_CSS_1X_ACQ_ABORT_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_1x_acq_abort_rsp_msg_struct;
+
+/* MSG_ID_CSS_1XDO_HANDOFF_IND_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_1xdo_handoff_ind_msg_struct;
+
+/* MSG_ID_CSS_1X_REG_ACCEPTED_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_1x_reg_accepted_msg_struct;
+
+/* MSG_ID_CSS_FORCE_DOSCAN_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_force_doscan_req_msg_struct;
+
+/*MSG_ID_CSS_CLEAR_MRU_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_clear_mru_msg_struct;
+
+/* MSG_ID_CSS_PRL_UPDATED_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_prl_updated_msg_struct;
+
+/* MSG_ID_CSS_1X_OVERHEAD_CURRENT_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_1x_overhead_current_msg_struct;
+
+/*  MSG_ID_CSS_UPDATE_SYS_SELECT_RSP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_update_sys_select_rsp_msg_struct;
+
+/* MSG_ID_CSS_HLP_SESS_VERIF_FAIL_IND */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_hlp_sess_verif_fail_ind_struct;
+
+/* MSG_ID_CSS_VAL_RAT_MODE_CHG_CNF_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+   ValRatModeChgCnfMsgT msg;
+} css_val_rat_mode_chg_cnf_msg_struct;
+
+/* MSG_ID_CSS_NVRAM_RSP_TIMEOUT */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_nvram_rsp_timeout_struct;
+
+/* MSG_ID_CSS_UIM_RSP_TIMEOUT */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_uim_rsp_timeout_struct;
+
+/* MSG_ID_CSS_UIM_NAM_GET_TIMEOUT */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_uim_nam_get_timeout_struct;
+
+/* MSG_ID_CSS_CPSM_1X_SCAN_TIMEOUT */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_cpsm_1x_scan_timeout_struct;
+
+/* MSG_ID_CSS_VAL_UIM_PRL_READ_REQ */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_val_uim_prl_read_req_struct;
+
+/* MSG_ID_CSS_CLC_MAJOR_OCCUPY_LLA_REQ */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_clc_major_occupy_lla_req_struct;
+
+/* MSG_ID_CSS_VAL_LTE_DISABLED_REQ_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_val_lte_disabled_req_msg_struct;
+
+/* MSG_ID_CSS_VAL_SIM_INFO_CHANGED_IND_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_val_sim_info_changed_ind_msg_struct;
+
+/* MSG_ID_CSS_PSW_OOSA_SLEEP_CNF_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_psw_oosa_sleep_cnf_msg_struct;
+
+/* MSG_ID_CSS_INSP_RSVAS_SUSPEND_COMP_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_insp_rsvas_suspend_comp_msg_struct;
+
+/* MSG_ID_CSS_IDP_RSVAS_VIRTUAL_SUSPEND_CNF_MSG */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_idp_rsvas_virtual_suspend_cnf_msg_struct;
+
+/* MSG_ID_CSS_IRATM_SET_RAT_CNF */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_iratm_set_rat_cnf_struct;
+
+/* MSG_ID_CSS_IRATM_VIRTUAL_SUSPEND_CNF */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} css_iratm_virtual_suspend_cnf_struct;
+
+/* MSG_ID_IRAT_OMP_RAT_INFO_IND */
+typedef struct
+{
+   LOCAL_PARA_HDR
+} irat_omp_rat_info_ind_struct;
+
+#endif/* MTK_DEV_C2K_IRAT */
+#endif
diff --git a/mcu/interface/protocol/nas_c2k/css_nvram.h b/mcu/interface/protocol/nas_c2k/css_nvram.h
new file mode 100644
index 0000000..3774e79
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/css_nvram.h
@@ -0,0 +1,178 @@
+/*****************************************************************************
+*  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 CONSKAL_TRUED 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 _CSS_NVRAM_H_
+#define _CSS_NVRAM_H_ 1
+
+/*****************************************************************************
+ * Includes
+ ****************************************************************************/
+#include "kal_general_types.h"
+
+#include "csscust.h"
+
+/*****************************/
+/*  CSS Nvram  definitions start         */
+/*****************************/
+#define PRL_MAX_SIZE        16384
+#define ERI_MAX_SIZE        4096  /* Assuming 30 ERI Table entries */
+
+#define MAX_MANUAL_AVOID_1XSYS          6
+#define MAX_ERI_HOME_VALUES             12
+#define MAX_ERI_INTERNATIONAL_VALUES    30
+
+#define DBM_CSS_1X_SIZE   256  /* storage for CSS 1X parameters */
+#define DBM_CSS_DO_SIZE   256  /* storage for CSS DO parameters */
+#define DBM_CSS_MISC_SIZE 128  /* storage for CSS Misc parameters */
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct
+{
+    kal_bool    b1xChnlLocked;
+    kal_uint16  rttChnl;
+    kal_bool    bDoChnlLocked;
+    kal_uint16  doChnl;
+} cssChannleLockInfo;
+#endif
+
+typedef enum {
+   CSS_1X_T_MAPE_HOME_AVOIDANCE,
+   CSS_1X_T_REDIR_AVOIDANCE,
+   CSS_1X_NUM_T_AVOIDANCE,
+   CSS_1X_NUM_T_AVOIDANCE_MAX = 6  /* enum shall not exceed this value */
+} Css1xAvoidanceTimerTypeT;
+
+typedef enum {
+   CSS_1X_T_BSR_1,
+   CSS_1X_T_BSR_2,
+   CSS_1X_T_BSR_NEWSYS,
+   CSS_1X_T_BSR_REDIR,
+   CSS_1X_T_BSR_CALL,
+#ifdef MTK_CBP
+   CSS_1X_T_BSR_HOLD,    /* Old MPSS_ADDITIONAL_TIME timer.*/
+                         /* For Sprint,this timer will be started when BSR is expired and reselection is not possible due to HDR activity.*/
+                         /*When the timer expires,UE looks for more preferred CDMA systems.*/
+#endif
+   CSS_1X_NUM_T_BSR,
+   CSS_1X_NUM_T_BSR_MAX = 10 /* enum shall not exceed this value */
+} Css1xBsrTimerTypeT;
+
+typedef enum {
+   CSS_DO_T_BSR_1,
+   CSS_DO_T_BSR_2,
+   CSS_DO_T_BSR_HYBRID,
+   CSS_DO_T_BSR_REDIR,
+   CSS_DO_T_BSR_CALL,
+   CSS_DO_T_BSR_HOLD,
+   CSS_DO_NUM_T_BSR,
+   CSS_DO_NUM_T_BSR_MAX = 10 /* enum shall not exceed this value */
+} CssDOBsrTimerTypeT;
+
+typedef enum {
+   CSS_DO_T_SYS_LOST_AVOIDANCE,
+   CSS_DO_T_REDIR_AVOIDANCE,
+   CSS_DO_NUM_T_AVOIDANCE,
+   CSS_DO_NUM_T_AVOIDANCE_MAX = 12  /* enum shall not exceed this value */
+} CssDOAvoidanceTimerTypeT;
+
+typedef struct
+{
+    kal_bool    valid;
+    kal_uint16  sid;
+    kal_uint16  nid;
+} cssSidNid;
+
+typedef struct
+{
+    kal_uint16      mpssPilotStrengthThresh;
+    kal_uint32      tBsr[CSS_1X_NUM_T_BSR];
+    kal_uint32      reservedTBsr[CSS_1X_NUM_T_BSR_MAX-CSS_1X_NUM_T_BSR]; /* reserved for possible expansion of TBsr; delete once max is reached */
+    kal_uint32      tAvoidance[CSS_1X_NUM_T_AVOIDANCE];
+    kal_uint32      reservedTAvoid[CSS_1X_NUM_T_AVOIDANCE_MAX-CSS_1X_NUM_T_AVOIDANCE]; /* reserved for possible expansion of TAvoidance; delete once max is reached */
+    kal_uint16      manualAvoid1XSys[MAX_MANUAL_AVOID_1XSYS];
+    kal_uint32      tPsDelay;
+    kal_uint32      tEmergencySysLostScan;
+    cssSidNid       operSidNid; /* Operator SID/NID of the first MRU entry */
+}  css1xDbmParameters;
+
+typedef struct
+{
+    kal_uint16   mpssPilotStrengthThresh; /* unused for now */
+    kal_uint32   tBsr[CSS_DO_NUM_T_BSR];
+    kal_uint32   reservedTBsr[CSS_DO_NUM_T_BSR_MAX-CSS_DO_NUM_T_BSR]; /* reserved for possible expansion of TBsr; delete once max is reached */
+    kal_uint32   tAvoidance[CSS_DO_NUM_T_AVOIDANCE];     /* unused for now */
+    kal_uint32   reservedTAvoid[CSS_DO_NUM_T_AVOIDANCE_MAX-CSS_DO_NUM_T_AVOIDANCE]; /* reserved for possible expansion of TAvoidance; delete once max is reached */
+}  cssDODbmParameters;
+
+typedef struct
+{
+#ifdef MTK_DEV_C2K_IRAT
+    cssChannleLockInfo   chnlInfo;
+#endif
+    kal_uint16      roamIndForNonPrlSysButHomeInNam;
+    kal_uint8       homeEriValNum;
+    kal_uint16      homeEriVals[MAX_ERI_HOME_VALUES];
+    kal_uint8       intlEriValNum;  /* international */
+    kal_uint16      intlEriVals[MAX_ERI_INTERNATIONAL_VALUES];
+}  cssMiscDbmParameters;
+
+/* do not modify segment definitions below. To add new parameters, use structures above */
+typedef struct
+{
+    css1xDbmParameters data;
+    kal_uint16             checksum;  /* checksum will be calculated on the data only. */
+    kal_uint8              padding[DBM_CSS_1X_SIZE - sizeof(kal_uint16) - sizeof(css1xDbmParameters)];
+}  css1xDbmSegment;
+
+typedef struct
+{
+    cssDODbmParameters data;
+    kal_uint16             checksum;  /* checksum will be calculated on the data only. */
+    kal_uint8              padding[DBM_CSS_DO_SIZE - sizeof(kal_uint16) - sizeof(cssDODbmParameters)];
+}  cssDODbmSegment;
+
+typedef struct
+{
+    kal_uint32           sbp_id;    /* SIM SBP ID */
+    cssMiscDbmParameters data;
+    kal_uint16               checksum;  /* checksum will be calculated on the data only. */
+    kal_uint8                padding[DBM_CSS_MISC_SIZE - sizeof(kal_uint16) - sizeof(cssMiscDbmParameters)];
+}  cssMiscDbmSegment;
+
+typedef struct
+{
+    SysCdmaBandT  CdmaBand[MAX_MRU_RECORDS];
+    kal_uint16    FreqChan[MAX_MRU_RECORDS];
+}  CssDbmDataT;
+#endif
diff --git a/mcu/interface/protocol/nas_c2k/cssapi.h b/mcu/interface/protocol/nas_c2k/cssapi.h
new file mode 100644
index 0000000..3540824
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/cssapi.h
@@ -0,0 +1,1605 @@
+/*****************************************************************************
+*  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) 2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _CSS_API_H_
+
+#define _CSS_API_H_  1
+
+#include "sysdefs.h"
+#ifdef MTK_DEV_C2K_IRAT
+#include "hlpapi.h"
+#include "uimapi.h"
+#include "do_ims.h"
+#include "valiratapi.h"
+#include "iratapi.h"
+#endif /* MTK_DEV_C2K_IRAT */
+#include "module_msg_range.h"
+#include "css_nvram.h"
+#include "css_msgid.h"
+#include "clc_nvram.h"
+#include "rsva_msgid.h"
+
+/*----------------------------------------------------------------------------
+* EXE Interfaces - Definition of Signals and Mailboxes
+*----------------------------------------------------------------------------*/
+#ifdef MTK_DEV_C2K_IRAT
+#define MAX_IRAT_OOSA_TIME  0xFFFF
+#define MAX_INFINITE_OOSA_TIME  0xFFFF
+#endif
+#define CSS_1X_CPSM_ID         0
+#define CSS_DO_CPSM_ID         1
+
+/* Subnet field length, in the unit of byte*/
+#define SUBNET_LENGTH          16
+
+#define CP_HRPD_MAX_NUM_REDIRECT_CHANNELS  10 /* can be more, just taken for now */
+
+#ifdef MTK_DEV_C2K_IRAT
+#define PDN_ADD_LEN            5
+#endif
+
+#define MAX_ERI_TEXT_LENGTH    32
+
+/* CDMA Blocks */
+#define A_BLOCK      0
+#define B_BLOCK      1
+#define C_BLOCK      2
+#define D_BLOCK      3
+#define E_BLOCK      4
+#define F_BLOCK      5
+#define G_BLOCK      6
+#define H_BLOCK      7
+#define I_BLOCK      8
+#define J_BLOCK      9
+#define K_BLOCK      10
+#define L_BLOCK      11
+#define M_BLOCK      12
+#define N_BLOCK      13
+#define PSB_BLOCK    27 /* Public Safety Broadband block */
+
+#define UNDEF_BLK    254
+#define ALL_BLOCKS   255
+
+#define MAX_BLOCKS   14
+
+/*----------------------------------------------------------------------------
+* Basic Types
+*----------------------------------------------------------------------------*/
+typedef enum
+{
+    CSS_RAT_DO,
+    CSS_RAT_1X,
+    CSS_RAT_1X_DO
+}CssRatModeT;
+
+typedef enum
+{
+    CSS_LIST_SMALL_SIZE = 20,
+    CSS_LIST_MEDIUM_RARE_SIZE = 30,
+    CSS_LIST_MEDIUM_SIZE = 60,
+    CSS_LIST_MEDIUM_WELL_SIZE = 150,
+    CSS_LIST_LARGE_SIZE = 200
+} CssChanListSizeE;
+
+typedef enum
+{
+    MRU,      /* Most recently used scan list  */
+    MPL,      /* Most preferred scan list      */
+    CRSL,     /* Channel release scan list     */
+    PRL,      /* PRL scan list                 */
+    DPCL,     /* Default band scan list        */
+    RSL,      /* Redirection scan list         */
+    OSL,      /* OTASP scan list               */
+    GSL,      /* GEO scan list                 */
+    ADOSL,    /* Associated DO scan list       */
+    SRSL,     /* Silent retry scan list        */
+    ASMPL,    /* DO Asso More Pref scan list   */
+    ADOLOSL,  /* DO Lost Asso scan list        */
+    PRLOSL,   /* DO Lost PRL MRU scan list     */
+    GLOSL,    /* DO Lost GEO scan list         */
+    EMERGENCYSL, /* Emergency call scan list   */
+    TEMPSL,
+    AVOIDL,   /* Avoidance list                     */
+    HSRSL,    /* hVoLte silent redial scan list     */
+    IGSL,     /* Idle GEO scan list                 */
+    PSREGRAL, /* Recently acquired list             */
+    RSSI,     /* Rssi Scan list                     */
+    EMCGMSSSL,/* Emergency call scan list from GMSS */
+    CSS_LIST_END
+} CssLists;
+
+typedef enum
+{
+	CP_SYS_DO,
+	CP_SYS_1X,
+	CP_SYS_BOTH,
+    CP_SYS_INVALID
+}CssCpSystemT;
+typedef PACKED_PREFIX struct _CHANNEL_DESC {
+    SysBandChannelT chan;
+
+    /* Association Tag, valid only for DO system, and assume they are valid only for
+     * associated DO scan list system */
+    kal_bool Pn_Association;
+    kal_bool Data_Association;
+} PACKED_POSTFIX  CHANNEL_DESC, PACKED_POSTFIX *pCHANNEL_DESC;
+
+#define CHAN_LIST_HDR \
+    CssLists ListType; \
+    CssChanListSizeE ListSize; \
+    kal_uint16  ChanListNumChans; \
+    kal_uint16  ChanListIndex;
+
+typedef struct {
+    CHAN_LIST_HDR
+} ChanListHdr, *pChanListHdr;
+
+typedef struct
+{
+    CHAN_LIST_HDR
+    CHANNEL_DESC    ChanList[CSS_LIST_LARGE_SIZE];
+    kal_uint16      AcqIndex[CSS_LIST_LARGE_SIZE];
+} ChannelList, *pChannelList;
+
+typedef struct
+{
+    CHAN_LIST_HDR
+    CHANNEL_DESC    ChanList[CSS_LIST_MEDIUM_SIZE];
+    kal_uint16      AcqIndex[CSS_LIST_MEDIUM_SIZE];
+} MediumChannelList, *pMediumChannelList;
+
+typedef struct
+{
+    CHAN_LIST_HDR
+    CHANNEL_DESC    ChanList[CSS_LIST_MEDIUM_WELL_SIZE];
+    kal_uint16      AcqIndex[CSS_LIST_MEDIUM_WELL_SIZE];
+} MediumWellChannelList, *pMediumWellChannelList;
+
+typedef struct
+{
+    CHAN_LIST_HDR
+    CHANNEL_DESC    ChanList[CSS_LIST_SMALL_SIZE];
+    kal_uint16      AcqIndex[CSS_LIST_SMALL_SIZE];
+} SmallChannelList, *pSmallChannelList;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ChannelList    *Rssi_ScanList_p;
+}Css_L1d_Rssi_Scan_ReqT;
+
+typedef struct
+{
+    SysBandChannelT chan;
+    kal_int16           rssiValue;
+} ChannelRssiValueT;
+
+typedef struct
+{
+    kal_uint16              ChanListNumChans;
+    ChannelRssiValueT   ChannelRssiValue[CSS_LIST_LARGE_SIZE];
+} RssiResultT;
+
+typedef struct
+{
+    RssiResultT    *RssiResult_p;
+}Css_L1d_Rssi_Scan_CnfT;
+
+typedef struct
+{
+    kal_uint8  blockId;
+    kal_uint16 FirstCh;
+    kal_uint8  NumCh;
+} _PrefCh;
+
+typedef struct
+{
+    kal_uint8   numBlocks;
+    kal_uint8   increment;
+    _PrefCh PrefCh[MAX_BLOCKS];
+} _BandBlockChannel;
+
+typedef enum
+{
+    HDM_1XVOICE,
+    HDM_DATAPREF,
+    HDM_VOIP
+}HybridPrefModeT;
+
+typedef enum
+{
+    MSPL_POWER_ON_SEARCHING,
+    MSPL_NORMAL_SERVICE,
+    MSPL_SEARCH_EXHAUSTED
+}MsplSearchStatusT;
+
+typedef enum
+{
+    CP_PREV_POWERUP = 1,
+    CP_PREV_ACQUISITION_FAILURE = 2,
+    CP_PREV_NEW_SYSTEM = 3,
+    CP_PREV_CDMA_AVAILABLE = 4,
+    CP_PREV_RESELECTION = 5,
+    CP_PREV_PROTOCOL_MISMATCH = 6,
+    CP_PREV_SYSTEM_LOST = 7,
+    CP_PREV_UNLOCK = 8,
+    CP_PREV_ACCESS_DENIED = 9,
+    CP_PREV_NDSS_OFF = 10,
+    CP_PREV_RELEASE = 11,
+    CP_PREV_ERROR = 12,
+    CP_PREV_REDIRECTION = 13,
+    CP_PREV_REGISTRATION_REJECT = 14,
+    CP_PREV_WRONG_SYSTEM = 15,
+    CP_PREV_WRONG_NETWORK = 16,
+    CP_PREV_RESCAN = 17,
+    CP_PREV_LOCK = 18,
+    CP_PREV_SYSTEM_LOST_ACCESS = 19,
+    CP_PREV_E911_CALL = 20,
+    CP_PREV_OTASP_CALL = 21,
+    CP_PREV_PERIODIC_RESCAN_OBSOLETE = 22,
+    CP_PREV_ADDITIONAL_CDMA = 23,
+    CP_PREV_SYSTEM_RESELECTION = 24,
+    CP_PREV_FORCE_BAND_MODE = 25,
+    CP_PREV_EXIT_E911_MODE = 26,
+    CP_PREV_SYSTEM_FOUND_NOT_BEST = 27,
+    CP_PREV_REDIRECTION_END_TIMER_EXPIRED = 28,
+    CP_PREV_FORCE_ANALOG_MODE = 29,
+    CP_PREV_MORE_PREF_SCAN_TIMER_EXPIRED = 30,
+    CP_PREV_ACCESS_FAILED_SILENT_RETRY = 31,
+    CP_PREV_ESPM_NOT_RECEIVED = 32,
+    CP_PREV_TIMING_CHANGE_FAILURE = 33,
+    CP_PREV_SYNCHRONIZATION_FAILURE = 34,
+    CP_PREV_REG_THROTTLING = 35,
+    CP_PREV_ACCESS_MAX_PROBES = 36,
+    CP_PREV_PAGING_MONITOR_TIMEOUT = 40,
+    CP_PREV_MODEM_FAILURE = 41,
+    CP_PREV_IRAT_RESET_1XCDMA = 42,
+    CP_PREV_MANUAL_AVOID_RESELECT = 43,
+    CP_PREV_1X_DO_COLLOCATED_BROKEN = 50,
+    CP_PREV_REINIT = 51,
+    CP_PREV_E911_TRAFF_CONV_FAIL = 52,
+    CP_GLOBALMODE_DO_ACQUISITION_FAILURE = 60,
+    CP_PREV_1X_RESUME_FROM_SUSPENDED = 61,
+    CP_PREV_1X_DATA_ACCESS_RELEASE = 62
+} SystemSelectIndE;
+
+/* CSS_NWK_RPT_CP_EVENT_MSG */
+typedef enum
+{
+    CSS_EV_DISCONNECT = 1,
+    CSS_EV_PAGE_RECEIVED,
+    CSS_EV_STOPALERT,
+    CSS_EV_ABBR_ALERT,
+    CSS_EV_NOSVC,
+    CSS_EV_CDMA_INSVC,
+    CSS_EV_CPENABLED,
+    CSS_EV_CPDISABLED,
+    CSS_EV_PDOWNACK,
+    CSS_EV_CONNANALOG,
+    CSS_EV_CONNDIGITAL,
+    CSS_EV_ASSIGNED,
+    CSS_EV_ORIG_FAIL,
+    CSS_EV_NDSS_ORIG_CANCEL,
+    CSS_EV_INTERCEPT,
+    CSS_EV_REORDER,
+    CSS_EV_CC_RELEASE,
+    CSS_EV_CC_RELEASE_SO_REJ,
+    CSS_EV_DIALING_COMPLETE,
+    CSS_EV_DILAING_CONTINUE,
+    CSS_EV_MAINTENANCE,
+    CSS_EV_VP_ON,
+    CSS_EV_VP_OFF,
+    CSS_EV_PSIST_FAIL,
+    CSS_EV_TC_RELEASE_MS,
+    CSS_EV_TC_RELEASE_PDOWN,
+    CSS_EV_TC_RELEASE_DISABLE,
+    CSS_EV_TC_RELEASE_BS,
+    CSS_EV_TC_RELEASE_SO_REJECT,
+    CSS_EV_TC_RELEASE_TIMEOUT,
+    CSS_EV_TC_RELEASE_ACK_FAIL,
+    CSS_EV_TC_RELEASE_FADE,
+    CSS_EV_TC_RELEASE_LOCK,
+    CSS_EV_PAGE_FAIL,
+    CSS_EV_RETRY_TIMER_ACTIVE,
+    CSS_EV_RETRY_TIMER_INACTIVE,
+    CSS_EV_AMPS_INSVC,
+    CSS_EV_ORIG_REJECTED,
+    CSS_EV_ORIG_REJECTED_SO_NOT_SUPPORTED,
+    CSS_EV_ORIG_BLOCKED_BY_IRAT,
+
+    CSS_EV_PKT_ACTIVE = 50,
+    CSS_EV_PKT_RELEASED,
+    CSS_EV_PKT_DORMANT,
+
+    CSS_EV_ORIG_USER_CANCEL = 60,
+    CSS_EV_ORIG_ACCESS_FAIL,
+    CSS_EV_ORIG_NO_SVC_FAIL,
+    CSS_EV_ORIG_RETRY_ORDER,
+    CSS_EV_SR_ENABLED,
+    CSS_EV_SR_DISABLED,
+    CSS_EV_ORIG_REQ_RECEIVED,
+    CSS_EV_PSW_POWER_UP,
+    CSS_EV_PSW_POWER_DOWN,
+
+    CSS_EV_FLASHFAIL = 80,
+    CSS_EV_ANALOG_PAGE_RECEIVED,
+    CSS_EV_AMPS_IDLE,
+
+    CSS_EV_ABBR_INTERCEPT,
+    CSS_EV_ABBR_REORDER,
+    CSS_EV_CONNCOMPLETE,
+    CSS_EV_ENTER_OOSA,
+    CSS_EV_FNM_RELEASE,
+    CSS_EV_MSID_UPDATED,
+    CSS_EV_BUSY_ORIG_FAIL,
+    CSS_EV_LOCKED_ORIG_FAIL,
+    CSS_EV_REG_MAX_PROBE,
+    CSS_EV_DOCONN_1XPREEMPT,
+    CSS_EV_ORIG_ACCT,
+    CSS_EV_REG_SYS_LOST,
+    CSS_EV_SMS_CANCEL_BY_PWRDOWN,
+    CSS_EV_RSVAS_SUSPEND_COMPLETE,
+    CSS_EV_SERVICE_SUCCESS,
+    CSS_EV_LOCKED,
+    CSS_EV_UNLOCKED,
+    CSS_RPT_CP_EVENT_INVALID
+} Css1xRptCpEventT;
+
+typedef enum
+{
+    IRAT_DEEPSLEEP = 0,     /* no system state after disabled by MMC */
+    IRAT_CSSOOSA,           /* css in OOSA sleep */
+    IRAT_INIT,              /* no system state while scanning channel */
+    IRAT_RESCAN,            /* conducting MPSS scan, ASSO scan,..*/
+    IRAT_SYSTEMLOST,        /* no system state while scanning channel or OOSA after sys lost */
+    IRAT_IDLE,
+    IRAT_CONNECTION,
+
+    /* the followings are used as event only */
+    IRAT_EXHAUST,           /* reach at the end of scan list */
+    IRAT_DO_NO_ASSO,        /* current 1X has no associated DO system */
+    IRAT_HANDOFF,           /* handoff to a new system */
+    IRAT_SCANNING,          /* scanning channels */
+    IRAT_WAKEUP,            /* wakeup from OOSA or DEEPSLEEP*/
+    IRAT_VALIDATE_FAIL,     /* Validate fail from scanning or idle*/
+    IRAT_VALIDATE_SUCC,     /* Validate success from scanning or idle*/
+    IRAT_1X_POWERUP,        /* 1xRTT Power up done. */
+    IRAT_DO_POWERUP,        /* EVDO Power up done. */
+    IRAT_1X_POWERDOWN,      /* 1xRTT Power down done. */
+    IRAT_DO_POWERDOWN,      /* EVDO Power down done. */
+    IRAT_1X_RSSI_SCAN_ABORTED,  /* 1xRTT RSSI Abort done */
+    IRAT_1X_IN_SERVICE,         /* 1xRTT is in service from PSW */
+} IRAT_CPStateT;
+
+typedef enum
+{
+    IRAT_STATE_INACTIVATE,         /*0*/
+    IRAT_STATE_MCC_SEARCH,         /*1*/
+    IRAT_STATE_SYS_ACQ,            /*2*/
+    IRAT_STATE_GMSS_CS_REG,        /*3*/
+    IRAT_STATE_GMSS_PS_REG,        /*4*/
+    IRAT_STATE_L2C_RESEL,          /*5*/
+    IRAT_STATE_L2C_REDIRECT,       /*6*/
+    IRAT_STATE_C2L_RESEL,          /*7*/
+    IRAT_STATE_SUSPEND,            /*8*/
+    IRAT_STATE_VIRTUAL_SUSPEND,    /*9*/
+    IRAT_STATE_RESUME,             /*10*/
+    IRAT_STATE_DO_RESUME,          /*11*/
+    IRAT_STATE_VIRTUAL_RESUME,     /*12*/
+    IRAT_STATE_CS_SERVICE_START,   /*13*/
+    IRAT_STATE_CS_SERVICE_FINISH,  /*14*/
+    IRAT_STATE_GMSS_PS_DEREG,      /*15*/
+    IRAT_STATE_DEACTIVATE,         /*16*/
+    IRAT_STATE_LTE_DISABLE,        /*17*/
+    IRAT_STATE_SET_RAT_MODE,       /*18*/
+    IRAT_STATE_EMC_START,          /*19*/
+    IRAT_STATE_EMC_STOP,           /*20*/
+    IRAT_STATE_POWER_OFF,          /*21*/
+    IRAT_STATE_CS_OCCUPY,          /*22*/
+    IRAT_STATE_POWER_UP_SET_RAT,   /*23*/
+    IRAT_STATE_POWER_DOWN_SET_RAT, /*24*/    
+    IRAT_STATE_RAT_MODE_CHG, /*25*/  
+    IRAT_STATE_NUM
+}IratMainStateE;
+
+typedef enum
+{
+    LLA_OCCUPY_OWNER_IRAT_LIST,
+    LLA_OCCUPY_OWNER_IRAT_MAJOR,
+    LLA_OCCUPY_OWNER_RSVAC,
+    LLA_OCCUPY_OWNER_NONE
+} LLAOccupyOwnerT, LLAReleaseOwnerT;
+
+typedef enum
+{
+    CSS_EV_DO_POWERUP,
+    CSS_EV_DO_POWERDOWN
+}CssDoRptCpEventT;
+
+typedef enum
+{
+    SUCC,
+    TCH_FAIL,
+    CONN_DENY,
+    RETRY_DELAY,
+    THROTTLING
+}CssTchSetupStatusT;
+
+typedef PACKED_PREFIX struct _RECORD_INDEX {
+    kal_uint8 *pByteOffset;
+    kal_uint32 bitOffset;
+    kal_uint16 recNum;
+    kal_uint16 recSize;
+} PACKED_POSTFIX  RECORD_INDEX, PACKED_POSTFIX *pRECORD_INDEX;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16 CPCA, CSCA;    /* CDMA CELL PRI CH, SEC CH, respectively, Sys A */
+    kal_uint16 CPCB, CSCB;    /* CDMA CELL PRI CH, SEC CH, respectively, Sys B */
+
+    kal_uint8 MAX_SID_NID;
+    kal_uint8 STORED_POS_SID_NID;
+    kal_uint16 SID[MAX_POSITIVE_SIDS];
+    kal_uint16 NID[MAX_POSITIVE_SIDS];
+
+    kal_uint8 STORED_NEG_SID_NID;
+    kal_uint16 NEG_SID[MAX_NEGATIVE_SIDS];
+    kal_uint16 NEG_NID[MAX_NEGATIVE_SIDS];
+
+    kal_uint8 SystemSelect;
+
+} PACKED_POSTFIX NAM_PREFERENCES, PACKED_POSTFIX *pNAM_PREFERENCES;
+
+typedef enum {
+    PRL_1X95 = 1,
+    RSVD,
+    PRL_EXT
+}PRL_PREV;
+
+typedef enum
+{
+    NORMAL_PRL = 0,
+    CONCATENATE_PRL =1
+}PRL_TYPE;
+
+#ifdef MTK_PLT_ON_PC_UT
+typedef enum
+{
+    CSS_CONF_LTE_IS_TURNED_OFF,        /**< LTE is turned on or not */
+    CSS_CONF_UIM_IS_DISABLE,           /**< UIM is disable or not */
+    CSS_CONF_UIM_STATE,                /**< UIM state (no card, UICC, ..) */
+    CSS_CONF_IRAT_MODE,                /**< C2K-LTE IRAT mode */
+    CSS_CONF_4G_SWITCH_OFF_BY_AT,      /**< 4G is switch off by AT command or not */
+    CSS_CONF_SIM_INDEX,                /**< SIM index of C2K modem */
+    CSS_CONF_PS_DATA_ATTACHED,         /**< PS data attached */
+    CSS_CONF_OPERATOR_SBP_ID,          /**< Opeartor SBP ID */
+    CSS_CONF_ECTM_MODE,                /**< UUT test mode */
+    CSS_CONF_REL_TO_IDLE,              /**< ReleaseToIdle is ture or false */
+    CSS_CONF_IDLE_GEO_LIST_SBP,        /**< idle GEO list feature SBP */
+    CSS_CONF_MRU_FIRST_ENTRY_OPER_SID_NID, /**< MRU first entry operational SID/NID */
+    CSS_CONF_1X_REG_ENABELD,          /**< 1x registration is allowed or not */
+    CSS_CONF_DATA_HOLD_SBP,           /**< T_data_hold before data call feature SBP */
+    CSS_CONF_PREF_ONLY,               /**< PREF_ONLY in PRL */
+    CSS_CONF_SYSTEM_SELECT_TYPE,      /**< system select type */
+    CSS_CONF_SBP_FEATURE_SET,         /**< set sbp feature */
+    CSS_CONF_INTL_ERI_VALUES_SET,     /**< set intlEriVals*/
+    CSS_CONF_CSS_NAM_ROAMING_SET,     /**< set _css_nam.RoamingSetting */
+    CSS_CONF_ACTIVE_BAND_BITMASK,     /**< set active band bitmask */
+    CSS_CONF_PREFMODE,                /**< set hybrid mode setting by AT+ PREFMODE */
+    CSS_CONF_GMSS_MRU_SBP,            /**< GMSS MRU feature SBP */
+    CSS_CONF_VZW_E911_SBP,            /**< VZW E911 SBP */
+    CSS_CONF_RAT_MODE,                /**< RAT MODE */
+    CSS_CONF_ERI_SBP,                 /**< ERI feature SBP */
+    CSS_CONF_SBP_STATUS_POWERUP_1X_SCAN, /**< SBP_STATUS_POWERUP_1X_SCAN */
+    CSS_CONF_SBP_STATUS_SYS_CSS_1X_USE_NAM_FOR_VALIDATION_FEATURE,/**< SBP_STATUS_SYS_CSS_1X_USE_NAM_FOR_VALIDATION_FEATURE*/
+    CSS_CONF_SBP_STATUS_GMSS_MRU,     /**< SBP_STATUS_GMSS_MRU*/
+    CSS_CONF_SBP_STATUS_VZW_E911,     /**< SBP_STATUS_VZW_E911 */
+    CSS_CONF_SBP_STATUS_PS_REG_SRCH_IN_SAME_CYCLE_OPTI, /**< SBP_STATUS_PS_REG_SRCH_IN_SAME_CYCLE_OPTI */
+    CSS_CONF_SBP_STATUS_SYS_CSS_1X_MAPE_HOME_SYS_AVOID_FEATURE, /**< SBP_STATUS_SYS_CSS_1X_MAPE_HOME_SYS_AVOID_FEATURE */
+    CSS_CONF_SBP_ASSIGN_MRU0_IF_EMPTY, /**< SBP_ASSIGN_MRU0_IF_EMPTY */
+    CSS_CONF_SBP_STATUS_SYS_ENH_SYSTEM_SELECT_FEATURE, /**< SBP_STATUS_SYS_ENH_SYSTEM_SELECT_FEATURE */
+    CSS_CONF_SBP_STATUS_VZW_TDO, /**< SBP_STATUS_VZW_TDO */
+    CSS_CONF_SBP_STATUS_1X_PS_DELAY, /**< SBP_STATUS_1X_PS_DELAY */
+    CSS_CONF_SBP_STATUS_CHINATELECOM_EXTENSIONS, /**< SBP_STATUS_CHINATELECOM_EXTENSIONS */
+    CSS_CONF_SBP_STATUS_CDG_AVOIDANCE, /**< SBP_STATUS_CDG_AVOIDANCE */
+    CSS_CONF_SBP_STATUS_CDG_BSR,  /**< SBP_STATUS_CDG_BSR */
+    CSS_CONF_SBP_STATUS_SYS_CSS_1X_RESTRICT_SILENTRETRY_TO_SAME_GEO_FEATURE, /**< SBP_STATUS_SYS_CSS_1X_RESTRICT_SILENTRETRY_TO_SAME_GEO_FEATURE */
+    CSS_CONF_INVALID = 0xff           /* invalid access option, only for initialisation */
+}css_configure_enum;
+#endif
+
+
+enum cpsm_1x_states
+{
+    CPSM_1X_POWERUP_ST,
+    CPSM_1X_SCANNING_ST,
+    CPSM_1X_IDLE_ST,
+    CPSM_1X_CONNECTION_ST,
+    CPSM_1X_SCANPAUSE_ST,
+    CPSM_1X_OOSA_ST,
+    CPSM_1X_NUM_STATES
+};
+typedef enum cpsm_1x_states CPSM_1X_STATES;
+
+enum cpsm_do_states
+{
+    CPSM_DO_POWERUP_ST,
+    CPSM_DO_SCANNING_ST,
+    CPSM_DO_IDLE_ST,
+    CPSM_DO_CONNECTION_ST,
+    CPSM_DO_SCANPAUSE_ST,
+    CPSM_DO_OOSA_ST,
+    CPSM_DO_NUM_STATES
+};
+typedef enum cpsm_do_states CPSM_DO_STATES;
+
+typedef enum
+{
+    CSS_NOT_IN_FORCE_INIT = 0,
+    CSS_FORCE_INIT_TO_PAUSE,
+    CSS_FORCE_INIT_TO_SCAN
+} CssForceToInitStatusE;
+
+typedef PACKED_PREFIX struct {
+    kal_bool valid;
+    kal_uint16 PR_LIST_SIZEs;
+    kal_uint16 PR_LIST_IDs;
+    PRL_PREV SSPR_P_REV;
+    kal_bool PREF_ONLYs;
+    kal_uint8 DEF_ROAM_INDs;
+    kal_uint16 NUM_ACQ_RECSs;
+    kal_uint16 NUM_COMMON_SUBNET_RECS;
+    kal_uint16 NUM_SYS_RECSs;
+    RECORD_INDEX acquireTableStart;
+    RECORD_INDEX commSubnetTableStart;
+    RECORD_INDEX systemTableStart;
+    kal_uint16 PR_LIST_CRCs;
+    kal_uint16 NUM_GEO_AREASs;
+} PACKED_POSTFIX  PRL_HEADER, PACKED_POSTFIX *pPRL_HEADER;
+
+typedef struct {
+    kal_bool valid;
+    kal_uint32 PRL_Length;
+    PRL_TYPE prl_type;
+    kal_uint16 IS683A_Length;
+    kal_uint16 IS683C_Length;
+    kal_uint16 PR_LIST_CRCs;
+
+    kal_uint16 PR_LIST_IDs;
+    kal_bool   isEPRL;
+} PRL_INFO, *pPRL_INFO;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool e911;
+} PACKED_POSTFIX  Css1xE911ModeSetMsgT;
+
+typedef PACKED_PREFIX struct _SYSTEM_INFO_1X {
+    kal_bool   foundSomeSys;
+    kal_uint16 sid;
+    kal_uint16 nid;
+    kal_uint16 oper_sid;
+    kal_uint16 oper_nid;
+    kal_uint16 roamInd;
+    kal_uint8  systemPref;
+    kal_uint16 acqIndex;
+    CHANNEL_DESC system;
+    kal_uint16  pilotStrength;
+    kal_int16   rxPower;
+    kal_uint8   sys1xPriority; /* IRAT Priority: 0 (HOME), 1 (PREF), 2 (ANY), 255 (INVALID) */
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+    kal_uint16  mcc;
+#endif
+} PACKED_POSTFIX  SYSTEM_INFO_1X, PACKED_POSTFIX *pSYSTEM_INFO_1X;
+
+typedef PACKED_PREFIX struct
+{
+    SYSTEM_INFO_1X Sys;
+} PACKED_POSTFIX  OtaspSelectParmsT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16 expectedSid;
+    kal_bool   ignoreCDMA;
+    kal_uint8  sysOrdering;
+    kal_uint8  maxRedirectDelay;  /* only applies to Global redirect */
+} PACKED_POSTFIX  SvcRedirAnalog;
+
+
+#define CSS_MAX_SERV_REDIR_NUM_CHANS 16 /* 4 bits */
+typedef PACKED_PREFIX struct
+{
+    kal_uint8  bandClass;
+    kal_uint16 expectedSid;
+    kal_uint16 expectedNid;
+    kal_uint8  numChans;
+    kal_uint16 cdmaChan[CSS_MAX_SERV_REDIR_NUM_CHANS];
+} PACKED_POSTFIX  SvcRedirCDMA;
+
+typedef PACKED_PREFIX union
+{
+    SvcRedirAnalog analog;
+    SvcRedirCDMA   cdma;
+} PACKED_POSTFIX  RedirType;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool   global;                   /* indicates a global redirection */
+    kal_uint16   redirectAccolc;
+    kal_bool   returnIfFail;
+    kal_bool   deleteTMSI;
+    kal_bool   exclPRevMs;
+    kal_bool   redirectType;
+    kal_uint8  recordType;
+    RedirType  type;
+} PACKED_POSTFIX  SvcRedirData1xT;
+
+typedef PACKED_PREFIX struct
+{
+    SvcRedirData1xT RediretionData;
+    kal_bool SysRedirectedToValid;
+} PACKED_POSTFIX  RedirectionSelectParmsT;
+
+typedef PACKED_PREFIX struct{
+    SystemSelectIndE indication;
+#ifdef MTK_DEV_C2K_IRAT
+    kal_bool  isIndHandled;
+#endif
+    PACKED_PREFIX union{
+        OtaspSelectParmsT OtaParms;
+        RedirectionSelectParmsT RedirectParms;
+    } PACKED_POSTFIX u;
+} PACKED_POSTFIX Css1xSelectReqMsgT;
+
+typedef enum
+{
+    CSS_1X_SID_NID_VALIDATION,
+    CSS_1X_MCC_MNC_VALIDATION,
+} Css1xValidationType;
+
+typedef PACKED_PREFIX struct {
+    kal_uint16 curChan;
+    SysCdmaBandT curBand;
+    kal_uint16  pilotStrength;
+    kal_int16   rxPower;
+    Css1xValidationType valType;
+    kal_uint16 sid;
+    kal_uint16 nid;
+    kal_uint16 mcc;  /* mcc */
+    kal_uint16 mnc;  /* mnc (i.e. imsi_11_12) */
+    kal_uint16 aiMcc;  /* mcc in ESPM */
+} PACKED_POSTFIX  Css1xValidateReqT;
+
+typedef PACKED_PREFIX struct {
+    kal_uint16  pilotStrength;
+    kal_int16   rxPower;
+} PACKED_POSTFIX  Css1xUpdateLastSavedEcIoRxPwrT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool pending;
+    kal_bool isVoice;
+} PACKED_POSTFIX  Css1XSetCallPendingMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16  sid;
+    kal_uint16  nid;
+    kal_uint16 curChan;
+    SysCdmaBandT curBand;
+} PACKED_POSTFIX  Css1XSysParmsUpdateMsgT;
+
+typedef struct
+{
+    PRL_INFO   PRLInfo;
+} CssGetPrlRspMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    PswIs95NamT  namData;
+} PACKED_POSTFIX  Css1xNamUpdatedMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8 nam;
+} PACKED_POSTFIX  CssUpdateActiveNamMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    SysBandChannelT channel;
+} PACKED_POSTFIX  CssSaveChannelMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    SysBandChannelT channel;
+    kal_bool withSyncCh;
+} PACKED_POSTFIX  CssSetReturnChannelMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16 eri_version_number;
+} PACKED_POSTFIX  CssEriVersionNumberRspMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool newSession;
+    kal_uint8 sysRev;
+} PACKED_POSTFIX  CssDOSessionOpenedMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool isAliveSession;
+} PACKED_POSTFIX  CssDOSessionNegoModeMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  Css1xRptCpEventT event;
+} PACKED_POSTFIX  CssRptCpEventMsgT;
+
+/* DO messages structure*/
+
+typedef PACKED_PREFIX struct{
+    SystemSelectIndE indication;
+#ifdef MTK_DEV_C2K_IRAT
+    kal_bool isIndHandled;
+#endif
+} PACKED_POSTFIX  CssDoSelectReqMsgT;
+
+typedef PACKED_PREFIX struct {
+  kal_uint8 subnet[SUBNET_LENGTH];
+  kal_uint16 curChan;
+  SysCdmaBandT curBand;
+  kal_uint16 mcc;
+} PACKED_POSTFIX  CssDoValidateReqMsgT;
+
+typedef PACKED_PREFIX struct {
+  CHANNEL_DESC Channel;
+} PACKED_POSTFIX  CssDoNtwkAcqdMsgT;
+
+typedef PACKED_PREFIX struct {
+  kal_bool SessOpened;
+} PACKED_POSTFIX  CssDoSessStatusIndT;
+
+typedef PACKED_PREFIX struct {
+  OperationModeT OpMode;
+  HybridPrefModeT HybridPrefMode;
+  kal_uint16 Mpss_Duration;
+} PACKED_POSTFIX  CssTestCfgT;
+
+/* CDMA Channel Record */
+typedef PACKED_PREFIX struct
+{
+   kal_uint8             SysType;
+   kal_uint8             BandClass;
+   kal_uint16            Channel;
+} PACKED_POSTFIX  ChanRecT;
+
+/* ALMP Redirect Message */
+typedef PACKED_PREFIX struct
+{
+   kal_uint8   NumChannel;       /* 8 bits */
+   ChanRecT  Channels[CP_HRPD_MAX_NUM_REDIRECT_CHANNELS]; /* 24 bits/channel */
+} PACKED_POSTFIX  SvcRedirDataDoT, PACKED_POSTFIX CssDoSvcRedirDataMsgT;
+
+typedef PACKED_PREFIX struct {
+  CHANNEL_DESC Channel;
+} PACKED_POSTFIX  CssDoChanChangedIndMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  CssDoRptCpEventT event;
+} PACKED_POSTFIX  CssDoRptCpEventMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_bool PwrUp;  /* KAL_TRUE-powerup; KAL_FALSE-powerdown */
+  CssCpSystemT Sys;   /* 0-DO, 1-1X, 2:both 1X and DO */
+} PACKED_POSTFIX  CssCpPowerCtrlMsgT;
+
+typedef PACKED struct
+{
+    kal_bool mode;  /* KAL_TRUE: enter deep sleep mode; KAL_FALSE: exit deep sleep mode */
+} CssValDeepSleepModeMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool  attachStatus;
+} PACKED_POSTFIX  CssValAttachStateIndMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    elevator_mode_enum  mode;
+} PACKED_POSTFIX  CssValElevatorModeIndMsgT;
+
+typedef PACKED_PREFIX struct {
+   kal_uint16 T_HRPD_Init;
+   kal_uint16 T_1x_Init;
+} PACKED_POSTFIX  CssPeriodicalSearchCycleSetMsgT;
+
+typedef PACKED_PREFIX struct {
+    kal_bool isMoCall;              /* to indicate the released call is MO call or MT call
+                                       TRUE: MO call
+                                       FALSE:MT call */
+} PACKED_POSTFIX  CssValVsRelIndMsgT;
+
+typedef PACKED_PREFIX struct
+{
+  kal_uint16 PRL_ID;
+} PACKED_POSTFIX  CssGetPrlIdRspMsgT;
+
+typedef PACKED_PREFIX struct {
+   CTDoDefaultBandDataT DOSystem[MAX_DO_DEFAULTBAND_SIZE];
+} PACKED_POSTFIX  DODefaultBandSetMsgT;
+
+typedef PACKED_PREFIX struct {
+   kal_uint8 APersistence;
+} PACKED_POSTFIX  CssACMAPersistenceIndMsgT;
+
+typedef PACKED_PREFIX struct {
+   kal_bool status; /*KAL_FALSE(0): max access probes failure, KAL_TRUE(1): access succeed*/
+} PACKED_POSTFIX  CssDOAccessStatusIndT;
+
+typedef PACKED_PREFIX struct {
+   kal_uint16 Type; /*high 8 bits are direction if current DO connection is for DO data call (1-AT initiated),
+                         low 8 bits are the connection type(for example, data call, SCP con)*/
+} PACKED_POSTFIX  CssDoConnStartIndMsgT;
+
+typedef PACKED_PREFIX struct {
+   kal_uint8 type;
+   kal_uint8 cause;
+} PACKED_POSTFIX  CssDoErrIndT;
+
+typedef enum
+{
+   CPSM_OOSA_SCAN_TIMER=0,
+   CPSM_OOSA_SCAN_LIST
+}CpsmOOSAScanMethod;
+
+typedef enum
+{
+   CSS_OOSA_POWER_UP = 0,
+   CSS_OOSA_SYSTEM_LOST
+}CpsmOOSAStage;
+
+typedef enum
+{
+   CSS_1X_SUB_MODULE = 0,
+   CSS_DO_SUB_MODULE
+}CssSubModule;
+
+typedef enum
+{
+  CSS_OOSA_PHASE_SUCCESS = 0,
+  CSS_OOSA_PHASE_FAIL_GENERAL_FAILURE,
+  CSS_OOSA_PHASE_FAIL_PHASE_NOT_EXIST,
+  CSS_OOSA_PHASE_FAIL_PHASE_INDEX_TOO_LARGE,
+  CSS_OOSA_PHASE_FAIL_SLEEP_OUT_OF_RANGE
+}CssOOSAPhaseRsp;
+
+typedef PACKED_PREFIX struct
+{
+  CpsmOOSAScanMethod   scanMethod;
+  kal_uint32               scanTime;
+  kal_uint8                cycles;
+  kal_uint32               delay;
+} PACKED_POSTFIX CpsmOOSAPhaseT;
+
+/*------------------------------------------------------*/
+/* Begin CSS Set/Get Parm definitions                   */
+/*------------------------------------------------------*/
+/* Bitmap (on kal_uint8) of all the CSS DBM segments */
+typedef enum
+{
+  CSS_DBM_1X    = 0x01,
+  CSS_DBM_DO    = 0x02,
+  CSS_DBM_MISC  = 0x04,
+  CSS_DBM_ALL   = CSS_DBM_1X | CSS_DBM_DO | CSS_DBM_MISC
+} CssDbmId;
+
+typedef PACKED_PREFIX struct
+{
+  SysCdmaBandT band;
+  kal_uint16       channel;
+} PACKED_POSTFIX MruBandChannelT;
+
+typedef PACKED_PREFIX struct
+{
+   CssDbmId DbmId;
+} PACKED_POSTFIX  CssDbmInitDBToDefaultMsgT;
+
+typedef enum
+{
+    CSS_PARM_SET_1X_T_BSR_DURATION,
+    CSS_PARM_GET_1X_T_BSR_DURATION,
+    CSS_PARM_SET_1X_AVOIDANCE_DURATION,
+    CSS_PARM_GET_1X_AVOIDANCE_DURATION,
+    CSS_PARM_SET_DO_T_BSR_DURATION,
+    CSS_PARM_GET_DO_T_BSR_DURATION,
+    CSS_PARM_SET_1X_MANUAL_AVOID_SID,
+    CSS_PARM_GET_1X_MANUAL_AVOID_SID,
+    CSS_PARM_SET_MRU_CHANNEL,
+    CSS_PARM_GET_MRU_CHANNEL,
+    CSS_PARM_SET_LOCK_CHANNEL,
+    CSS_PARM_GET_LOCK_CHANNEL,
+    CSS_PARM_SET_1X_PS_DELAY_TIMER_DURATION,
+    CSS_PARM_GET_1X_PS_DELAY_TIMER_DURATION,
+    CSS_PARM_SET_1X_DO_T_BSR_1_2_DURATION,
+    CSS_PARM_GET_1X_DO_T_BSR_1_2_DURATION,
+    /* IMPORTANT:
+     * when adding new parameters to the list, add BOTH SET and GET,
+     * even if one of them is not used/implemented */
+    CSS_PARM_OPERATION_ID_END_LIST
+} CssParmOperationId;
+
+typedef enum
+{
+    CSS_PARM_OPERATION_SUCCESS,
+    CSS_PARM_OPERATION_FAIL_PARM_ID_NOT_SUPPORTED,
+    CSS_PARM_OPERATION_FAIL_READ_NOT_ALLOWED,
+    CSS_PARM_OPERATION_FAIL_WRITE_NOT_ALLOWED,
+    CSS_PARM_OPERATION_FAIL_INVALID_PTR,
+    CSS_PARM_OPERATION_FAIL_INVALID_LENGTH,
+    CSS_PARM_OPERATION_GENERAL_FAILURE,
+    CSS_PARM_OPERATION_NO_CHANGE_IN_VALUE,
+    CSS_PARM_OPERATION_FAIL_VALUE_OUT_OF_RANGE,
+    CSS_PARM_OPERATION_FAIL_OP_TYPE_NOT_SUPPORTED,
+    CSS_PARM_OPERATION_FAIL_DEFAULT_NOT_DEFINED,
+    CSS_PARM_OPERATION_FAIL_DEFAULT_NOT_SUPPORTED_FOR_PARM,
+    CSS_PARM_OPERATION_FAIL_MISSING_PARAMETER,
+    CSS_PARM_OPERATION_RESULT_END_LIST
+}CssParmAccessResultCode;
+
+typedef enum
+{
+    CSS_PARM_MIN_VALUE,
+    CSS_PARM_MAX_VALUE,
+    CSS_PARM_DEFAULT_VALUE,
+    CSS_PARM_CUSTOM_VALUE,
+    CSS_PARM_OP_TYPE_LIST_END
+} CssParmOperationType;
+
+typedef enum
+{
+    CSS_TIMER_START = 0,
+    CSS_1X_TIMER_START = CSS_TIMER_START,
+    CSS_1X_MPSS_TIMER = CSS_1X_TIMER_START,
+    CSS_1X_EPRL_ESPM_WAIT_TIMER,
+    CSS_1X_SCANNING_TIMER,
+    CSS_1X_LOST_WHILE_DO_CONN_SCAN_TIMER,
+    CSS_1X_EMERGENCY_SCAN_PREV_SYSTEM_TIMER,
+    CSS_1X_HOMESYS_AVOIDANCE_TIMER,
+    CSS_1X_HOMESYS_AVOIDANCE_END_TIMER,
+    CSS_1X_REDIRECTION_AVOIDANCE_TIMER, /*143v1[1]  4.5.1 4.5.3*/
+    CSS_1X_PS_DELAY_TIMER, /* Verizon Reqs-LTE Multi Mode Operations */
+    CSS_1X_BSR_SCAN_TIMER, /* sprint feature: control BSR in 10s feature
+                              if Device is not able to scan all the channels during the first 10 secs,
+                              the Device MUST wait 10 extra secs before continuing scanning the remainder of the channels.
+                              the first 10 secs*/
+    CSS_1X_BSR_EXTRA_WAIT_TIMER, /* wait 10 extra secs*/
+    CSS_1X_BSR_DATA_HOLD_TIMER, /* sprint feature: device must wait T_data_hold before establishing a data call to allow BSR completion */
+    CSS_1X_REG_REJ_AVOIDANCE_TIMER, /* when registration reject continuously, need to bar it for some time */
+    CSS_1X_REG_REJ_AVOIDANCE_END_TIMER,
+    CSS_1X_RELEASE_REJ_AVOIDANCE_TIMER,   /* when registration reject continuously, need to bar it for some time */
+    CSS_1X_RELEASE_REJ_AVOIDANCE_END_TIMER,
+    CSS_1X_TIMER_END = CSS_1X_RELEASE_REJ_AVOIDANCE_END_TIMER,
+
+    CSS_DO_TIMER_START,
+    CSS_DO_MPSS_TIMER = CSS_DO_TIMER_START,
+    CSS_DO_REDIR_END_TIMER,
+    CSS_DO_SCANNING_TIMER,
+    CSS_DO_WTF_SESSION_OPEN_TIMER,
+    CSS_DO_AVOIDANCE_TIMER,
+    CSS_DO_SCAN_INTERRUPT_TIME_TIMER,
+    CSS_DO_MPSS_HOLD_TIMER, /*143v1[1]  5.4.3 T_dbsr_hold*/
+    CSS_DO_MPSS_CALL_TIMER, /*143v1[1]  5.4.5 T_dbsr_call*/
+    CSS_DO_CONSECUTIVE_DO_LOST_TIMER, /*143v1[1]  5.5.2*/
+    CSS_DO_AVOIDANCE_LOST_TIMER, /*143v1[1]  5.5.2*/
+    CSS_DO_REDIRECTION_AVOIDANCE_TIMER, /*143v1[1]  5.6.2*/
+    CSS_DO_ACM_PERSIS_TEST_FAIL_AVOIDANCE_TIMER, /*143v1[1]  5.7.1*/
+    CSS_DO_MAXACCESSFAIL_AVOIDANCE_TIMER, /*143v1[1]  5.7.2*/
+    CSS_DO_SESSIONEGO_TIMEOUT_AVOIDANCE_TIMER, /*143v1[1]  5.7.7*/
+    CSS_DO_SESSIONEGO_FAIL_AVOIDANCE_TIMER, /*143v1[1]  5.7.7*/
+    CSS_DO_CONNDENY_AUTH_AVOIDANCE_TIMER, /*143v1[1]  5.7.7*/
+    CSS_DO_CONNDENY_GENERAL_AVOIDANCE_TIMER, /*143v1[1]  5.7.4*/
+    CSS_DO_CH_AVOIDANCE_TICK_TIMER,
+    CSS_DO_SCANNING_DURATION_TIMER, /* Per KDDI's req, AT shall set the timer when start to scan,
+                                     * and stop the scan when the timer expires in the scenario of "1X&DO both OOSA" */
+    CSS_IRAT_PS_RAT_RPT_DELAY_TIMER,
+    CSS_IRAT_TDO_TIMER,
+    CSS_IRAT_DO_RESUME_TIMER,
+    CSS_IRAT_DEACTIVATE_RPT_DELAY_TIMER,
+    CSS_DO_TIMER_END = CSS_IRAT_DEACTIVATE_RPT_DELAY_TIMER,
+
+    CSS_IRAT_PROCEDURE_GUARD_TIMER_START,
+    CSS_IRAT_MCC_SEARCH_GUARD_TIMER = CSS_IRAT_PROCEDURE_GUARD_TIMER_START,
+    CSS_IRAT_PS_REG_GUARD_TIMER,
+    CSS_IRAT_SYS_ACQUIRE_GUARD_TIMER,
+    CSS_IRAT_RESEL_REDIR_GUARD_TIMER,
+    CSS_IRAT_DEREG_GUARD_TIMER,
+    CSS_IRAT_C2L_RESEL_GUARD_TIMER,
+    CSS_IRAT_PROCEDURE_GUARD_TIMER_END = CSS_IRAT_C2L_RESEL_GUARD_TIMER,
+    CSS_TIMER_END =CSS_IRAT_PROCEDURE_GUARD_TIMER_END,
+
+    CSS_MAX_NUMBER_OF_TIMER_TYPES
+} CssTimerTypeE;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16 pilotThresh;
+} PACKED_POSTFIX  Css1xMpssPilotStrengthThresh_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint32  duration;
+} PACKED_POSTFIX  CssTimerDuration_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    Css1xBsrTimerTypeT   tbsr;
+    kal_uint32               duration;
+} PACKED_POSTFIX  Css1xBsrTimerDuration_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    Css1xAvoidanceTimerTypeT   avoidance;
+    kal_uint32                     duration;
+} PACKED_POSTFIX  Css1xAvoidanceTimerDuration_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssDOBsrTimerTypeT   tbsr;
+    kal_uint32               duration;
+} PACKED_POSTFIX  CssDOBsrTimerDuration_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16 Sid[MAX_MANUAL_AVOID_1XSYS];
+} PACKED_POSTFIX Css1xManualAvoidSid_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8           subModule;
+    kal_uint8           index;
+    MruBandChannelT mruChannel;
+} PACKED_POSTFIX CssSetMruChannel_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8           subModule;
+    kal_uint8           index;
+    kal_uint8           num1x;
+    kal_uint8           numDO;
+    MruBandChannelT mru[MAX_MRU_RECORDS + MAX_MRU_RECORDS]; /* to contain 1x and/or DO MRU */
+} PACKED_POSTFIX CssGetMruChannel_APIStruct;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef PACKED_PREFIX struct
+{
+    kal_uint8   sysType;
+    kal_bool    b1xChnlLocked;
+    kal_uint16  rttChnl;
+    kal_bool    bDoChnlLocked;
+    kal_uint16  doChnl;
+} PACKED_POSTFIX CssSetChannleLockInfo_APIStruct;
+#endif
+
+/*------------------------------------------------------*/
+/* End CSS Parm Set/Get definitions                     */
+/*------------------------------------------------------*/
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    CpsmOOSAScanMethod   scanMethod;
+    kal_uint32               scanTime;
+    kal_uint8                cycles;
+    kal_uint32               delay;
+} PACKED_POSTFIX CssOOSASetPhaseParmsMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+} PACKED_POSTFIX CssOOSASetPhaseParmsRspMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    CpsmOOSAScanMethod   scanMethod;
+    kal_uint32               scanTime;
+    kal_uint8                cycles;
+    kal_uint32               delay;
+} PACKED_POSTFIX CssOOSAGetPhaseParmsMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    CpsmOOSAScanMethod   scanMethod;
+    kal_uint32               scanTime;
+    kal_uint8                cycles;
+    kal_uint32               delay;
+} PACKED_POSTFIX CssOOSAGetPhaseParmsRspMsgT;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef PACKED_PREFIX struct
+{
+    css_mmss_updated_file_id_enum file_id;
+} PACKED_POSTFIX CssMMSSFileUpdateMsgT;
+#endif
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+    kal_bool  Enable;
+} PACKED_POSTFIX CpsmOOSASetEnable_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    kal_bool  Enable;
+} PACKED_POSTFIX CpsmOOSASetEnableRsp_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+} PACKED_POSTFIX CpsmOOSAGetEnable_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    kal_bool  Enable;
+} PACKED_POSTFIX CpsmOOSAGetEnableRsp_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                numPhases;
+} PACKED_POSTFIX CpsmOOSASetNumPhases_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                numPhases;
+} PACKED_POSTFIX CpsmOOSASetNumPhasesRsp_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+} PACKED_POSTFIX CpsmOOSAGetNumPhases_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                numPhases;
+} PACKED_POSTFIX CpsmOOSAGetNumPhasesRsp_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    kal_uint8                cycle;
+} PACKED_POSTFIX CpsmOOSASetCurrentStage_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    kal_uint8                cycle;
+} PACKED_POSTFIX CpsmOOSASetCurrentStageRsp_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         subModule;
+} PACKED_POSTFIX CpsmOOSAGetCurrentStage_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp      result;
+    CssSubModule         subModule;
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    kal_uint8                cycle;
+} PACKED_POSTFIX CpsmOOSAGetCurrentStageRsp_APIStruct;
+
+typedef PACKED_PREFIX struct
+{
+    CpsmOOSAStage        stage;
+    kal_uint8                phase;
+    kal_uint8                cycle;
+} PACKED_POSTFIX CpsmOOSACurrentPhase;
+
+typedef PACKED_PREFIX struct
+{
+    CssSubModule         System;
+} PACKED_POSTFIX CpsmGetMccT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint16                Mcc;
+    CssSubModule          System;
+} PACKED_POSTFIX CpsmGetMcccRspT;
+
+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;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8  NetworkPreference;
+} PACKED_POSTFIX  CssSvcStatusReqMsgT;
+
+typedef enum
+{
+    CSS_1X_MARK_SYSTEM_AS_NEGATIVE,
+    CSS_1X_CLEAR_MARKED_SYSTEM_LIST
+} CssMarkSystemT;
+
+typedef PACKED_PREFIX struct
+{
+    CssMarkSystemT action;
+} PACKED_POSTFIX  CssMarkSystemMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_bool Redirection;
+} PACKED_POSTFIX  Css1xRedirIndMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint32 timer;
+} PACKED_POSTFIX  CssTimerExpiredMsgT;
+
+typedef struct
+{
+    kal_int16 TxPwr;      /* in Q7 format */
+} IratRcpTxPwrRspT, IratL1dTxPwrRspT;
+
+typedef PACKED_PREFIX struct
+{
+    CssTchSetupStatusT status;
+} PACKED_POSTFIX  CssDataTchSetupStatusMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    ExeRspMsgT            rspInfo;
+    CssSubModule          subModule;
+    kal_uint32                duration;
+} PACKED_POSTFIX CpsmOOSAScanTimeSetMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp     result;
+    CssSubModule        subModule;
+    kal_uint32              duration;
+} PACKED_POSTFIX CpsmOOSAScanTimeSetRspMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    ExeRspMsgT          rspInfo;
+    CssSubModule        subModule;
+    kal_uint32              duration;
+} PACKED_POSTFIX CpsmOOSAScanTimeGetMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    CssOOSAPhaseRsp     result;
+    CssSubModule        subModule;
+    kal_uint32              duration;
+} PACKED_POSTFIX CpsmOOSAScanTimeGetRspMsgT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8 RegStatus;   /* 0-1X reg succeed. 1-1X reg fail. others - reserved */
+} PACKED_POSTFIX  CssPsw1XRegStatusIndT;
+
+typedef PACKED_PREFIX struct
+{
+    kal_uint8 DOOverlap;  /* the value of the 3rd bit of BASE_ID in SPM of LGT 1X(sid=2190) */
+} PACKED_POSTFIX  CssPsw1XDOOverlapIndT;
+
+/*IRAT*/
+#ifdef MTK_DEV_C2K_IRAT
+/*CSS_IRATM_TO_LTE_RESEL_IND*/
+typedef struct
+{
+    cas_eas_activate_ecell_req_struct  ReselToLteInfo;
+} CssIratmToLteReselIndT;
+
+/*CSS_IRATM_PARAM_UPDATE_IND*/
+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 */
+} CssIratmParaUpdateIndT;
+
+/*IRATM_CSS_PLMN_LIST_UPDATE_RSP*/
+typedef struct
+{
+    gmss_css_sim_plmn_info_rsp_struct PlmnInfoRsp;
+}CssIratmPlmnListUpdateRspT;
+
+/*CSS_IRATM_POWER_CTRL_CNF*/
+typedef struct
+{
+    kal_bool powerStatus; /*0: power off; 1: power on */
+}CssIratmPowerCtrlCnfT;
+
+/*CSS_IRATM_MEAS_CTRL_CNF*/
+typedef struct
+{
+    kal_bool isMeasStart; /*0: measure off; 1: measure on */
+}CssIratmMeasCtrlCnfT;
+
+/* CSS_CLC_RELEASE_LLA_REQ */
+typedef struct
+{
+    kal_uint8 LLAReleaseOwner;
+}CssClcReleaseLlaReqT;
+
+typedef struct
+{
+    kal_bool  NeedResetConn; /* This field shall be filled with value of same field in corresponding HLP_CSS_NETWORK_REL_REQ message */
+    kal_bool  Is1xResReleased; /* True if HLP has notified PSW to release RSVAS*/
+} CssHlpNetwkRelRspMsgT;
+
+typedef struct
+{
+    kal_uint8  Pdn_Id;
+    kal_uint8  Bearer_Id;
+    kal_uint8  Reason;
+} CssHlpEpsBearerDisconnIndT;
+
+typedef struct
+{
+    kal_uint8 Band;          /* CDMA bandclass */
+    kal_uint16 Channel;      /* CDMA channel number */
+    IratCdmaPilotMeasResultT Pilot; /* CDMA pilot measure result */
+} IratRupCurSysMeasRspT, IratPswCurSysMeasRspT;
+
+typedef struct
+{
+    kal_uint8 available; /* 0-unavailale(msg not include RatInfo data); 1-available */
+    IratEUTRANMeasureInfoT RatInfo;
+    kal_uint8 ServingPriority; /* priority of current serving CDMA channel. 0xff means not provided */
+    kal_int8 ThreshServing;    /* CDMA serving pilot strength threshold trigger point for EUTRAN
+                              neighbor selection. 0xff means not provided */
+} IratOmpRATInfoIndT, IratPswRATInfoIndT;
+
+typedef struct
+{
+    kal_uint16 Mcc; /* 0xffff means not available */
+    kal_uint8 pRev; /* pRev of CDMA95 and 1X */
+    kal_bool  regenabled; /* 1 - MCC have changed and originale regenabled is TRUE, 0 - MCC not changed or  originale regenabled is FALSE*/
+    kal_bool  MccChanged; /* MCC changed or not */
+} IratOmpMCCRspT, IratPswMCCRspT;
+
+typedef struct
+{
+    kal_uint16 Mcc; /* 0xffff means not available */
+    kal_bool   regenabled; /* 1x register enabled or not*/
+} IratOmpMccChangeIndT, IratPswMccChangeIndT;
+
+typedef struct
+{
+    kal_uint8 Band;          /* CDMA bandclass */
+    kal_uint16 Channel;      /* CDMA channel number */
+    IratCdmaPilotMeasResultT Pilot; /* CDMA pilot measure result */
+} IratRupCurSysWeakIndT, IratPswCurSysWeakIndT; /* content same as xxxCurSysMeasRspT */
+
+typedef struct
+{
+    kal_uint16 sid;
+    kal_uint16 nid;
+    kal_uint16 baseId;
+    kal_uint16 mcc;
+    kal_uint16 mnc;
+    kal_uint8  pzid;
+#if defined (__TC10__) && defined (__TC10_IPC_CDMA_SUPPORT__)
+    kal_uint16 aiMcc;
+#endif
+} IratPswCellIDIndT;
+
+typedef struct
+{
+    kal_uint8 sectorId[16];
+    kal_uint8 subnetLength;
+} IratOmpCellIDIndT;
+
+typedef struct
+{
+    IratEvent event;
+    kal_uint32    eventParameter;
+} CssIratEventMsgT;
+
+typedef enum
+{
+    RSVAS_CSS_EVENT_CS_OCCUPY,
+    RSVAS_CSS_EVENT_CS_CANCEL,
+    RSVAS_CSS_EVENT_CS_OCCUPY_IND,
+    RSVAS_CSS_EVENT_CS_RELEASE,
+    RSVAS_CSS_EVENT_PS_OCCUPY,
+    RSVAS_CSS_EVENT_PS_CANCEL,
+    RSVAS_CSS_EVENT_PS_OCCUPY_IND,
+    RSVAS_CSS_EVENT_PS_RELEASE,
+} CssRsvasEventT;
+
+/* CSS_PSW_RSVAS_EVENT_REPORT_MSG */
+typedef PACKED_PREFIX struct
+{
+    CssRsvasEventT  cssRsvasEvent;
+    rsvas_sim_enum  servOwnerSimId;
+    rsvas_sim_enum  currC2kSimId;
+} PACKED_POSTFIX  CssRsvasEventReportMsgT;
+
+/* CSS_PSW_RSVAS_SUSPEND_REQ_MSG */
+typedef PACKED_PREFIX struct
+{
+    rsvas_sim_enum servOwnerSimId;
+    rsvas_sim_enum currC2kSimId;
+} PACKED_POSTFIX  CssPswRsvasSuspendReqMsgT;
+
+/* CSS_PSW_RSVAS_DO_VRTL_SUSP_REQ_MSG */
+typedef PACKED_PREFIX struct
+{
+    rsvas_sim_enum servOwnerSimId;
+    rsvas_sim_enum currC2kSimId;
+} PACKED_POSTFIX  CssPswRsvasDoVrtlSuspReqMsgT;
+
+/* CSS_PSW_RSVAS_DO_RESUME_REQ_MSG */
+typedef PACKED_PREFIX struct
+{
+    rsvas_sim_enum servOwnerSimId;
+    rsvas_sim_enum currC2kSimId;
+} PACKED_POSTFIX  CssPswRsvasDoResumeReqMsgT;
+
+/* CSS_PSW_RSVAS_VRTL_RESUME_REQ_MSG */
+typedef PACKED_PREFIX struct
+{
+    rsvas_sim_enum servOwnerSimId;
+    rsvas_sim_enum currC2kSimId;
+} PACKED_POSTFIX  CssPswRsvasVrtlResumeReqMsgT;
+
+/* CSS_PSW_RSVAS_RESUME_REQ_MSG */
+typedef PACKED_PREFIX struct
+{
+    rsvas_sim_enum servOwnerSimId;
+    rsvas_sim_enum currC2kSimId;
+} PACKED_POSTFIX  CssPswRsvasResumeReqMsgT;
+#endif /* MTK_DEV_C2K_IRAT */
+
+#ifdef MTK_PLT_ON_PC_UT
+typedef struct
+{
+    LOCAL_PARA_HDR
+    css_configure_enum	configure_id;
+    kal_uint8        	value;
+    kal_uint32        	valueArray[10];
+}css_configure_req_struct;
+
+/* msg struct of msg: CSS_SYS_UT_TIMER_START_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssTimerTypeE       timerId;
+    kal_uint16          index;
+    kal_uint32          duration;
+}css_sys_ut_timer_start_req_struct;
+
+/* msg struct of msg: CSS_SYS_UT_TIMER_STOP_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssTimerTypeE   timerId;
+    kal_uint16      index;
+}css_sys_ut_timer_stop_req_struct;
+
+/* msg struct of msg: CSS_SYS_UT_TIMER_EXPIRED_MSG */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    CssTimerTypeE   type;
+    kal_uint16      index;
+}css_sys_ut_timer_expired_ind_struct;
+#endif
+
+void CssReportDOUnavailToHlp(void);
+kal_uint8 cpCssGetNamSystemSelectType(void);
+void css1xSetOtaSystem(kal_uint8 mode);
+kal_uint8 css1xGetPilotAcqSensIndex(SysBandChannelT *system);
+kal_bool cssIsPrlValid(void);
+UiccCardStatusType cssGetUiccStatus(void);
+kal_bool cssIsUiccReady(void);
+kal_bool css1xIsSystemSelectSettingValid(SystemSelectType *sysSelect);
+kal_bool cssGetEmergencyMode(void);
+kal_uint8* cssGetPtrToPRL(void);
+kal_uint16 cssGetERIVersionNumber(void);
+
+CPSM_1X_STATES Cpsm1xGetState(void);
+CPSM_DO_STATES CpsmDoGetState(void);
+
+#ifdef MTK_DEV_C2K_IRAT
+kal_bool IRATIsPsDataOnC2K(void);
+IRAT_CPStateT IRATCpState(CssRatModeT rat);
+IratMainStateE IRATGetCurMainState(void);
+kal_bool IRATGet1XPSEnabled(void);
+kal_bool IRATIsCsRegPendedForSilentRedial(void);
+kal_bool IRATGet1XRegEnabled(void);
+void IRATSet1xRegEnabled(kal_bool val);
+srlteRatTypeT IRATGetDoRatType(void);
+kal_bool IsIratActingOnPsReg(void);
+kal_bool IRATIsC2KRatNotInvolvedInGlobalMode(void);
+kal_bool IRATIsC2KRatModeNotInvolved(void);
+#endif
+
+#ifdef MTK_DEV_SLT
+kal_uint16 cssGet1xPrlScanListNumber(void);
+#endif
+#if defined (MTK_DEV_C2K_IRAT) && defined (MTK_DEV_C2K_SRLTE_L1)
+extern kal_uint32 SysFrcCntGet(void);
+#endif
+#endif
+
diff --git a/mcu/interface/protocol/nas_c2k/csscust.h b/mcu/interface/protocol/nas_c2k/csscust.h
new file mode 100644
index 0000000..7472ca7
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/csscust.h
@@ -0,0 +1,913 @@
+/*****************************************************************************
+*  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 CONSKAL_TRUED 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) 2009-2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _CSSCUST_H_
+#define _CSSCUST_H_
+
+/****************************************************************************
+ *
+ * Module:    csscust.h
+ *
+ * Purpose:   CSS Customizations
+ *
+* HISTORY     :
+*     See Log at end of file
+*
+*****************************************************************************
+***************************************************************************/
+
+/*****************************************************************************
+ * CSS Customizations                                                        *
+ ****************************************************************************/
+
+/*-----------------------------------------------------------------------------*/
+/* Roaming indicator for Non-PRL system that is found in NAM Home SID/NID list */
+/* and Home and International Roam ERI definitions                             */
+/*-----------------------------------------------------------------------------*/
+/* Roaming Indicators */
+#define ROAMING_IND_ON                      0
+#define ROAMING_IND_OFF                     1
+#define ROAMING_IND_FLASHING                2
+#define ROAMING_IND_OUT_OF_NEIGHBORHOOD     3
+#define ROAMING_IND_OUT_OF_BUILDING         4
+#define ROAMING_IND_PREFERRED_SYSTEM        5
+#define ROAMING_IND_AVAILABLE_SYSTEM        6
+#define ROAMING_IND_ALLIANCE_PARTNER        7
+#define ROAMING_IND_PREMIUM_PARTNER         8
+#define ROAMING_IND_FULL_SERV_FUNC          9
+#define ROAMING_IND_PART_SERV_FUNC          10
+#define ROAMING_IND_BANNER_ON               11
+#define ROAMING_IND_BANNER_OFF              12
+#define ROAM_IND_UNKNOWN                    255
+
+#define NON_STANDARD_ENHANCED_ROAMING_IND_START  64
+
+#ifndef MTK_CBP
+#ifdef VERIZON_EXTENSIONS
+#define ROAM_IND_FOR_NON_PRL_SYS_BUT_HOME_IN_NAM     ROAMING_IND_FLASHING
+static const kal_uint16 Home_eriValues[] = {1, 64, 65, 76, 77, 78, 79, 80, 81, 82, 83};
+static const kal_uint16 International_eriValues[] = {65535}; /* i.e. none */
+
+#elif (defined(SPRINT_EXTENSIONS))
+#define ROAM_IND_FOR_NON_PRL_SYS_BUT_HOME_IN_NAM     ROAMING_IND_OFF
+static const kal_uint16 Home_eriValues[] = {1};
+static const kal_uint16 International_eriValues[] = {74,
+                                                 124, 125, 126,
+                                                 157, 158, 159,
+                                                 193, 194, 195, 196, 197, 198,
+                                                 228, 229, 230, 231, 232, 233, 234, 235};
+
+#else
+#define ROAM_IND_FOR_NON_PRL_SYS_BUT_HOME_IN_NAM     ROAMING_IND_OFF
+static const kal_uint16 Home_eriValues[] = {1};
+static const kal_uint16 International_eriValues[] = {65535}; /* i.e. none */
+#endif
+#endif
+
+/*-----------------------------------------------------------------------------*/
+/* Better service rescan timers (in seconds)                                   */
+/*-----------------------------------------------------------------------------*/
+#if 0 /* defined(VERIZON_EXTENSIONS) */
+#ifdef MTK_DEV_C2K_IRAT
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif /* MTK_DEV_C2K_IRAT */
+/* 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
+
+#if (defined(KDDI_EXTENSIONS))
+#define CSS_1X_T_BSR_1_DEFAULT         1800 /* 30 min */
+#define CSS_1X_T_BSR_2_DEFAULT         1800 /* 30 min */
+#define CSS_1X_T_BSR_NEWSYS_DEFAULT     125 /* 2 min 5 s */
+#define CSS_1X_T_BSR_CALL_DEFAULT       125 /* 2 min 5 s */
+#define CSS_1X_T_BSR_REDIR_DEFAULT    86340 /* 23 h 59 min */
+
+#define CSS_DO_T_BSR_1_DEFAULT         3600
+#define CSS_DO_T_BSR_2_DEFAULT          120
+#define CSS_DO_T_BSR_REDIR_DEFAULT        5
+#define CSS_DO_T_BSR_CALL_DEFAULT       190
+#define CSS_DO_T_BSR_HYBRID_DEFAULT     600
+#define CSS_DO_T_BSR_HOLD_DEFAULT        30
+
+#else // default (no carrier extension defined)
+#define CSS_1X_T_BSR_1_DEFAULT          180
+#ifdef MTK_DEV_C2K_IRAT
+#define CSS_1X_T_BSR_1_DEFAULT_VZW      120
+#else
+#define CSS_1X_T_BSR_1_DEFAULT_VZW      CSS_1X_T_BSR_1_DEFAULT
+#endif
+#define CSS_1X_T_BSR_2_DEFAULT          180
+#ifdef MTK_DEV_C2K_IRAT
+#define CSS_1X_T_BSR_2_DEFAULT_VZW      120
+#else
+#define CSS_1X_T_BSR_2_DEFAULT_VZW      CSS_1X_T_BSR_2_DEFAULT
+#endif
+#define CSS_1X_T_BSR_HOLD_DEFAULT        15 /*old MPSS_ADDITIONAL_TIME, default is 15s*/
+
+
+#define CSS_1X_T_BSR_1_DEFAULT_SPRINT           60
+#define CSS_1X_T_BSR_2_DEFAULT_SPRINT          120
+#define CSS_1X_T_BSR_NEWSYS_DEFAULT_SPRINT       5
+#define CSS_1X_T_BSR_CALL_DEFAULT_SPRINT         5
+#define CSS_1X_T_BSR_REDIR_DEFAULT_SPRINT        5
+#define CSS_1X_T_BSR_HOLD_DEFAULT_SPRINT         5
+
+#define CSS_DO_T_BSR_1_DEFAULT_SPRINT           60
+#define CSS_DO_T_BSR_2_DEFAULT_SPRINT          120
+#define CSS_DO_T_BSR_REDIR_DEFAULT_SPRINT        5
+#define CSS_DO_T_BSR_CALL_DEFAULT_SPRINT        30
+#define CSS_DO_T_BSR_HYBRID_DEFAULT_SPRINT     600
+#define CSS_DO_T_BSR_HOLD_DEFAULT_SPRINT        30
+
+
+
+#define CSS_1X_T_BSR_NEWSYS_DEFAULT       1
+#define CSS_1X_T_BSR_NEWSYS_DEFAULT_VZW   5
+#define CSS_1X_T_BSR_CALL_DEFAULT         5
+#define CSS_1X_T_BSR_REDIR_DEFAULT      180
+#define CSS_1X_T_BSR_REDIR_DEFAULT_VZW    5
+
+#define CSS_DO_T_BSR_1_DEFAULT          120
+#define CSS_DO_T_BSR_2_DEFAULT          120
+#define CSS_DO_T_BSR_REDIR_DEFAULT        5
+#define CSS_DO_T_BSR_CALL_DEFAULT        30
+#define CSS_DO_T_BSR_HYBRID_DEFAULT     600
+#define CSS_DO_T_BSR_HOLD_DEFAULT        30
+#define CSS_1X_HOME_MAPE_AVOIDANCE_DURATION_DEFAULT_SPRINT 600          /* default HOME Systeme Avoidance of Sprint is 10min */
+#endif
+
+#if (defined(KDDI_EXTENSIONS))
+#define CSS_1X_MPSS_PILOT_STRENGTH_THRESH_DEFAULT 4135 /* -12 dB*/
+#else
+#define CSS_1X_MPSS_PILOT_STRENGTH_THRESH_DEFAULT 0    /* no threshold */
+#endif
+
+#define CSS_1X_PS_DELAY_DEFAULT   22  /* in seconds */
+/*-----------------------------------------------------------------------------*/
+/* 1x Avoidance customization (timers in seconds)                              */
+/*-----------------------------------------------------------------------------*/
+#define CSS_1X_REDIR_AVOIDANCE_DURATION_DEFAULT      30   /* Avoidance time of system from which the MS was redirected */
+#if defined (KDDI_EXTENSIONS)
+#define CSS_1X_HOME_MAPE_AVOIDANCE_DURATION_DEFAULT  60          /* HOME Systeme Avoidance */
+#define MULTI_MAPE_EXIT  2
+#else
+#define CSS_1X_HOME_MAPE_AVOIDANCE_DURATION_DEFAULT 900          /* HOME Systeme Avoidance */
+#define MULTI_MAPE_EXIT  4
+#endif
+#define MULTI_REG_REJ_EXIT  3
+#define MAX_REG_REJ_TIME  (4 * 180000)
+#define MULTI_RELEASE_REJ_EXIT  9
+#define MAX_RELEASE_REJ_TIME  (4 * 180000)
+#define MAX_RELEASE_REJ_BLOCK_TIME  (2 *180000)
+
+#define MAX_MAPE_TIME  (MULTI_MAPE_EXIT * 180000)  /* Max Time (in ms) during which consecutive MAPE must occur, starting at first failure */
+
+/*-----------------------------------------------------------------------------*/
+/* Lost channel Ping frequency                                                 */
+/*-----------------------------------------------------------------------------*/
+
+#if 0 /* #ifdef SPRINT_EXTENSIONS system lost algorithm of Sprient is waived, obsolete it*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#define DEFAULT_CSS_GEO_SCAN_PING_FREQUENCY       5
+#define DEFAULT_CSS_NON_GEO_SCAN_PING_FREQUENCY   5
+#define DEFAULT_CSS_1X_LOSS_DO_CONN_SCAN_PING_FREQUENCY 3
+
+/*-----------------------------------------------------------------------------*/
+/* Emergency mode system lost scan time                                        */
+/*-----------------------------------------------------------------------------*/
+#define CSS_1X_EMERGENCY_SYS_LOST_SCAN_TIME     200L /* 200 ms; short so that MS will scan last channel only 1 time */
+#define CSS_1X_EMERGENCY_SYS_LOST_SCAN_TIME_VZW 15000L /* Will dwell on last channel for 15 seconds. */
+
+#define MAX_CYCLE 255 /*means from then on(including this phase), always keep the same scannign scheme and do fast acq for power saving*/
+/*#define SYS_OPTION_COMMIT_1XMRU 0 */
+
+
+/*-----------------------------------------------------------------------------*/
+/* 1x lost while DO connected scan parameters                                  */
+/*-----------------------------------------------------------------------------*/
+/* Initial interval between scans if 1X system is lost while DO is connected.  Units of mili-sec. */
+#ifdef MTK_CBP
+/*Shorten the timer to 1s to accelerate 1x system recovery.*/
+#define CPSM_1X_LOST_WHILE_DO_CONN_SCAN_TIME_INIT 1000
+#else
+#define CPSM_1X_LOST_WHILE_DO_CONN_SCAN_TIME_INIT 5000
+#endif
+/* Prolonged scan interval if initial 1X lost while DO connected scan is unsuccessful. Units of mili-sec */
+#define CPSM_1X_LOST_WHILE_DO_CONN_SCAN_TIME_DELAY 10000
+/* Number of channels to scan before transitioning from initial scan interval to prolonged scan interval. */
+#define CPSM_1X_LOST_WHILE_DO_CONN_NUM_INIT_CHANNELS 4
+
+
+/*-----------------------------------------------------------------------------*/
+/* 1x OOSA Parameter customization                                             */
+/*-----------------------------------------------------------------------------*/
+#if 0 /*#ifdef SPRINT_EXTENSIONS*/
+/* 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 !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+#if defined(LGT_EXTENSIONS)
+
+/*-----------------------------------*/
+/* LGT Power Up OOSA Scan pattern */
+/*-----------------------------------*/
+#define CPSM_1X_OOSA_POWER_UP_NUMPHASES 3
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_CYCLE 2  /*Scan twice, with no delay between scans*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_SCANMETHOD CPSM_OOSA_SCAN_TIMER
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_SCANTIME 180 /*3 Minutes in seconds*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_CYCLE 1
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_DELAY 60   /*Sleep for 1 minutes*/
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_SCANMETHOD CPSM_OOSA_SCAN_LIST /*Scan once*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_CYCLE 100
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_DELAY 60 /*Sleep for 1 minutes*/
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_DELAY 0
+
+/*------------------------------------*/
+/* LGT Sys Lost OOSA Scan pattern */
+/*------------------------------------*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_NUMPHASES 3
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_CYCLE 1         /*Scan once, with no delay before time-based scan*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_SCANMETHOD CPSM_OOSA_SCAN_TIMER
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_SCANTIME 180 /*Scan for 3 Minutes in seconds*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_CYCLE 1
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_DELAY 60    /*Sleep for 1 minutes */
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_SCANMETHOD CPSM_OOSA_SCAN_LIST /*Scan the list once*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_CYCLE 3
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_DELAY 60   /*Sleep for 1 minutes */
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_DELAY 0
+
+#else
+/*-----------------------------------*/
+/* Default Power Up OOSA Scan pattern */
+/*-----------------------------------*/
+#ifdef MTK_DEV_C2K_IRAT
+#define CPSM_1X_OOSA_POWER_UP_NUMPHASES 8
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_CYCLE 4  /*Scan twice, with no delay between scans*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_DELAY 2
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_SCANTIME 0 /*15 Minutes in seconds*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_CYCLE 4
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_DELAY 4   /*Sleep for 3 minutes*/
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_SCANMETHOD CPSM_OOSA_SCAN_LIST /*Scan once*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_CYCLE 4
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_DELAY 8 /*Sleep for 3 minutes*/
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_CYCLE 4
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_DELAY 10
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_CYCLE 2
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_DELAY 20
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_CYCLE 2
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_DELAY 30
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_CYCLE 30
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_DELAY 50
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_CYCLE 100
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_DELAY 180
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_DELAY 0
+
+/*------------------------------------*/
+/* Default Sys Lost OOSA Scan pattern */
+/*------------------------------------*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_NUMPHASES 8
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_CYCLE 4         /*Scan once, with no delay before time-based scan*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_DELAY 2
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_SCANTIME 0 /*Scan for 15 Minutes in seconds*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_CYCLE 4
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_DELAY 4    /*Sleep for 3 minutes */
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_SCANMETHOD CPSM_OOSA_SCAN_LIST /*Scan the list once*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_CYCLE 4
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_DELAY 8   /*Sleep for 3 minutes */
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_CYCLE 4
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_DELAY 10
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_CYCLE 2
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_DELAY 20
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_CYCLE 2
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_DELAY 30
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_CYCLE 100
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_DELAY 180
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_CYCLE 100
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_DELAY 180
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_DELAY 0
+
+#else /* if (defined(MTK_DEV_C2K_IRAT) && defined(MTK_DEV_C2K_SRLTE)) */
+#define CPSM_1X_OOSA_POWER_UP_NUMPHASES 2
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_CYCLE 15  /*Scan twice, with no delay between scans*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE0_DELAY 2
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_SCANTIME 0 /*15 Minutes in seconds*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_CYCLE 100
+#define CPSM_1X_OOSA_POWER_UP_PHASE1_DELAY 180   /*Sleep for 3 minutes*/
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_SCANMETHOD CPSM_OOSA_SCAN_LIST /*Scan once*/
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE2_DELAY 0 /*Sleep for 3 minutes*/
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE3_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE4_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE5_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE6_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE7_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE8_DELAY 0
+
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_SCANTIME 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_CYCLE 0
+#define CPSM_1X_OOSA_POWER_UP_PHASE9_DELAY 0
+
+/*------------------------------------*/
+/* Default Sys Lost OOSA Scan pattern */
+/*------------------------------------*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_NUMPHASES 2
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_CYCLE 15         /*Scan once, with no delay before time-based scan*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE0_DELAY 2
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_SCANTIME 0 /*Scan for 15 Minutes in seconds*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_CYCLE 100
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE1_DELAY 180    /*Sleep for 3 minutes */
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_SCANMETHOD CPSM_OOSA_SCAN_LIST /*Scan the list once*/
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE2_DELAY 0   /*Sleep for 3 minutes */
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE3_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE4_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE5_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE6_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE7_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE8_DELAY 0
+
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_SCANMETHOD CPSM_OOSA_SCAN_LIST
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_SCANTIME 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_CYCLE 0
+#define CPSM_1X_OOSA_SYSTEM_LOST_PHASE9_DELAY 0
+#endif /*#if ( defined(MTK_DEV_C2K_IRAT) && defined(MTK_DEV_C2K_SRLTE))*/
+
+#endif
+
+
+/*-----------------------------------------------------------------------------*/
+/* DO OOSA Parameter customization                                             */
+/*-----------------------------------------------------------------------------*/
+#ifdef MTK_DEV_C2K_IRAT
+/*begin: DO OOSA Scanning parameter while IxInit&DOInit*/
+#define CURRENT_DO_POWERUP_OOSA_PHASES     7
+
+#define CP_DO_SELECTION_PHASE0_DELAY         2     /* delay between phase 1 attempts, time = DELAY * TIME_SCALE */
+#define CP_DO_SELECTION_PHASE1_DELAY         4     /* delay between phase 2 attempts */
+#define CP_DO_SELECTION_PHASE2_DELAY         8     /* delay between phase 3 attempts */
+#define CP_DO_SELECTION_PHASE3_DELAY         10    /* delay between phase 4 attempts */
+#define CP_DO_SELECTION_PHASE4_DELAY         30    /* delay between phase 5 attempts */
+#define CP_DO_SELECTION_PHASE5_DELAY         60    /* delay between phase 6 attempts */
+#define CP_DO_SELECTION_PHASE6_DELAY         300   /* delay between phase 7 attempts */
+
+#define CP_DO_SELECTION_PHASE0_SCANTIME       0   /* Phase 1 time to scan per cycle, time = SCANTIME * TIME_SCALE */
+#define CP_DO_SELECTION_PHASE1_SCANTIME       0   /* Phase 2 scan time */
+#define CP_DO_SELECTION_PHASE2_SCANTIME       0   /* Phase 3 scan time */
+#define CP_DO_SELECTION_PHASE3_SCANTIME       0   /* Phase 4 scan time */
+#define CP_DO_SELECTION_PHASE4_SCANTIME       0   /* Phase 4 scan time */
+#define CP_DO_SELECTION_PHASE5_SCANTIME       0   /* Phase 4 scan time */
+#define CP_DO_SELECTION_PHASE6_SCANTIME      30   /* Phase 4 scan time */
+
+#define CP_DO_SELECTION_PHASE0_CYCLE        1   /* # of phase 1 tries which */
+#define CP_DO_SELECTION_PHASE1_CYCLE        3   /* # of phase 2 tries which */
+#define CP_DO_SELECTION_PHASE2_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_SELECTION_PHASE3_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_SELECTION_PHASE4_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_SELECTION_PHASE5_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_SELECTION_PHASE6_CYCLE        MAX_CYCLE   /* # of phase 3 tries which */
+
+#define CP_DO_SELECTION_PHASE0_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE1_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE2_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE3_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE4_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE5_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE6_METHOD CPSM_OOSA_SCAN_LIST
+
+/*end: DO OOSA Scanning parameter while IxInit&DOInit*/
+
+#else/*#if ( defined(MTK_DEV_C2K_IRAT) && defined(MTK_DEV_C2K_SRLTE))*/
+
+/*begin: DO OOSA Scanning parameter while IxInit&DOInit*/
+#define CURRENT_DO_POWERUP_OOSA_PHASES     5
+
+#define CP_DO_SELECTION_PHASE0_DELAY         480     /* delay between phase 1 attempts, time = DELAY * TIME_SCALE */
+#define CP_DO_SELECTION_PHASE1_DELAY         10     /* delay between phase 2 attempts */
+#define CP_DO_SELECTION_PHASE2_DELAY         30   /* delay between phase 3 attempts */
+#define CP_DO_SELECTION_PHASE3_DELAY         60   /* delay between phase 4 attempts */
+#define CP_DO_SELECTION_PHASE4_DELAY         300   /* delay between phase 4 attempts */
+
+#define CP_DO_SELECTION_PHASE0_SCANTIME      120   /* Phase 1 time to scan per cycle, time = SCANTIME * TIME_SCALE */
+#define CP_DO_SELECTION_PHASE1_SCANTIME       30   /* Phase 2 scan time */
+#define CP_DO_SELECTION_PHASE2_SCANTIME       30   /* Phase 3 scan time */
+#define CP_DO_SELECTION_PHASE3_SCANTIME       30   /* Phase 4 scan time */
+#define CP_DO_SELECTION_PHASE4_SCANTIME       30   /* Phase 4 scan time */
+
+
+#define CP_DO_SELECTION_PHASE0_CYCLE         1   /* # of phase 1 tries which */
+#define CP_DO_SELECTION_PHASE1_CYCLE        3   /* # of phase 2 tries which */
+#define CP_DO_SELECTION_PHASE2_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_SELECTION_PHASE3_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_SELECTION_PHASE4_CYCLE        MAX_CYCLE   /* # of phase 3 tries which */
+
+#define CP_DO_SELECTION_PHASE0_METHOD CPSM_OOSA_SCAN_TIMER
+#define CP_DO_SELECTION_PHASE1_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE2_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE3_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_SELECTION_PHASE4_METHOD CPSM_OOSA_SCAN_LIST
+/*end: DO OOSA Scanning parameter while IxInit&DOInit*/
+#endif /*#if ( defined(MTK_DEV_C2K_IRAT) && defined(MTK_DEV_C2K_SRLTE))*/
+
+
+
+#if 0 /*#ifdef SPRINT_EXTENSIONS*/
+/* 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
+/*begin: DO OOSA Scanning parameter while IxIdle&DOInit*/
+#define CURRENT_DO_LOST_OOSA_PHASES     7
+
+#define CP_DO_LOST_SELECTION_PHASE0_DELAY         0     /* delay between phase 1 attempts, time = DELAY * TIME_SCALE */
+#define CP_DO_LOST_SELECTION_PHASE1_DELAY         2     /* delay between phase 2 attempts */
+#define CP_DO_LOST_SELECTION_PHASE2_DELAY         4     /* delay between phase 3 attempts */
+#define CP_DO_LOST_SELECTION_PHASE3_DELAY         10    /* delay between phase 4 attempts */
+#define CP_DO_LOST_SELECTION_PHASE4_DELAY         30    /* delay between phase 4 attempts */
+#define CP_DO_LOST_SELECTION_PHASE5_DELAY         60    /* delay between phase 4 attempts */
+#define CP_DO_LOST_SELECTION_PHASE6_DELAY         300   /* delay between phase 4 attempts */
+
+#define CP_DO_LOST_SELECTION_PHASE0_SCANTIME      90   /* Phase 1 time to scan per cycle, time = SCANTIME * TIME_SCALE */
+#define CP_DO_LOST_SELECTION_PHASE1_SCANTIME       0   /* Phase 2 scan time */
+#define CP_DO_LOST_SELECTION_PHASE2_SCANTIME       0   /* Phase 3 scan time */
+#define CP_DO_LOST_SELECTION_PHASE3_SCANTIME       0   /* Phase 4 scan time */
+#define CP_DO_LOST_SELECTION_PHASE4_SCANTIME       0   /* Phase 4 scan time */
+#define CP_DO_LOST_SELECTION_PHASE5_SCANTIME       0   /* Phase 4 scan time */
+#define CP_DO_LOST_SELECTION_PHASE6_SCANTIME      30   /* Phase 4 scan time */
+
+
+#define CP_DO_LOST_SELECTION_PHASE0_CYCLE        1   /* # of phase 1 tries which */
+#define CP_DO_LOST_SELECTION_PHASE1_CYCLE        1   /* # of phase 2 tries which */
+#define CP_DO_LOST_SELECTION_PHASE2_CYCLE        1   /* # of phase 3 tries which */
+#define CP_DO_LOST_SELECTION_PHASE3_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_LOST_SELECTION_PHASE4_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_LOST_SELECTION_PHASE5_CYCLE        4   /* # of phase 3 tries which */
+#define CP_DO_LOST_SELECTION_PHASE6_CYCLE        MAX_CYCLE   /* # of phase 3 tries which */
+
+#define CP_DO_LOST_SELECTION_PHASE0_CYCLE_SPRINT        1   /* # of phase 1 tries which */
+#define CP_DO_LOST_SELECTION_PHASE1_CYCLE_SPRINT        3   /* # of phase 2 tries which */
+#define CP_DO_LOST_SELECTION_PHASE2_CYCLE_SPRINT        3   /* # of phase 3 tries which */
+#define CP_DO_LOST_SELECTION_PHASE6_CYCLE_SPRINT        MAX_CYCLE   /* # of phase 3 tries which */
+
+#define CP_DO_LOST_SELECTION_PHASE1_DELAY_SPRINT         20 
+#define CP_DO_LOST_SELECTION_PHASE2_DELAY_SPRINT         60 
+
+
+
+#define CP_DO_LOST_SELECTION_PHASE0_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_LOST_SELECTION_PHASE1_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_LOST_SELECTION_PHASE2_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_LOST_SELECTION_PHASE3_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_LOST_SELECTION_PHASE4_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_LOST_SELECTION_PHASE5_METHOD CPSM_OOSA_SCAN_LIST
+#define CP_DO_LOST_SELECTION_PHASE6_METHOD CPSM_OOSA_SCAN_LIST
+/*end: DO OOSA Scanning parameter while IxIdle&DOInit*/
+
+
+#endif
+/**Log information: \main\CBP80\cbp8_gdeng_scbp10126\1 2012-08-09 06:02:39 GMT gdeng
+** HREF#10126**/
+/**Log information: \main\Trophy\Trophy_yni_href22337\1 2013-12-23 02:56:20 GMT yni
+** HREF#22337 adjust OOSA strategy **/
+/**Log information: \main\Trophy\1 2013-12-23 03:08:19 GMT jzwang
+** href#22337**/
+
diff --git a/mcu/interface/protocol/nas_c2k/cssdefs.h b/mcu/interface/protocol/nas_c2k/cssdefs.h
new file mode 100644
index 0000000..b881668
--- /dev/null
+++ b/mcu/interface/protocol/nas_c2k/cssdefs.h
@@ -0,0 +1,580 @@
+/*****************************************************************************
+*  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) 2010 VIA Telecom, Inc.  All rights reserved.
+*
+*************************************************************/
+#ifndef _CSS_DEFS_H_
+
+#define _CSS_DEFS_H_  1
+
+#include "uimapi.h"
+/*****************************************************************************
+ * Local Definitions and Marcos
+ ****************************************************************************/
+#define CSS_SWAP(A, B, TMP)  {(TMP) = (A); (A) = (B); (B) = (TMP);}
+
+/*#define CSS_GENERIC_WARNING_TRACE(WARNING_TYPE, WARNING_VAL)  \
+    dhl_trace(TRACE_WARNING, DHL_USER_FLAG_NONE, DHL_CP_CSS_WARNING_TRACE_ID, WARNING_TYPE, WARNING_VAL, __FUNCTION__, __LINE__)*/
+
+/*#define CSS_INVALID_GMSS_DEST_MOD_TRACE()  \
+    dhl_trace(TRACE_WARNING, DHL_USER_FLAG_NONE, DHL_CP_CSS_WARNING_TRACE_ID, CSS_ERR_INVALID_GMSS_TASK, ValIratGetSimAccessIndex, __FUNCTION__, __LINE__)*/
+
+#define RTT_ASSOCIATED_SCAN_DISABLED
+#define RTT_AVAIL_SYS_SCAN_DISABLED
+#define DO_SILENT_RETRY_DISABLED
+#define DO_EMERGENCY_SCAN_DISABLED
+#define DO_OTASP_SCAN_DISABLED
+#define DO_AVAIL_SYS_SCAN_DISABLED
+
+#define INTERN_SIM_INDEX_OFFSET         0xA0
+
+#define MAX_ERI_ENTRIES     30
+#define CSS_MAX_SIM_NUM     MAX_SUPPORT_SIM_TOTAL
+
+/* maximum size based on NAM (non-PRL) available number of channels           */
+#define MAX_PCS_CHANS                   48 /* all PCS blocks have maximum = 48        */
+#define MAX_CELL_CDMA_CHANS              4 /* cell CDMA from NAM PRI A/B, SEC A/B = 4 */
+#define MAX_CELL_CUSTOM_CDMA_CHANS      32 /* cell CDMA custom channels maximum = 32  */
+#define MAX_MRU_CHANS                   MAX_MRU_RECORDS
+#ifdef MTK_DEV_C2K_IRAT
+#define MAX_SIB8_CHANS                  100
+#define MAX_PS_REG_RAL_RECORDS          10
+#endif
+#ifdef MTK_CBP
+#define MAX_1X_MAX_ACCESS_FAIL_AVOID_CHAN_NUM  4
+#define MAX_DO_MAX_ACCESS_FAIL_AVOID_CHAN_NUM  4
+#define ALL_ENTRIES_IN_AVOID_LIST              0xFE
+#define INVALID_INDEX_IN_AVOID_LIST            0xFF
+#define MAX_1X_MAX_REG_REJ_AVOID_CHAN_NUM      5
+#define MAX_1X_MAX_RELEASE_REJ_AVOID_CHAN_NUM  5
+#endif
+
+#define MAX_SYSTEM_LIST_SIZE        (90)
+#define MAX_EXT_SYSTEM_LIST_SIZE    (90)
+
+#define MAX_SMALL_SYSTEM_LIST_SIZE      20
+#define MAX_SMALL_EXT_SYSTEM_LIST_SIZE  20
+
+#define ACQUISITION_INDEX_NOT_KNOWN     512
+
+#define ACQUISITION_INDEX_NOT_KNOWN_DEFAULT_BAND    513
+
+/* maximum channels & blocks in PRL acq records */
+#ifdef MTK_CBP
+#define MAX_CUSTOM_CHANS    128  /* AR_GENERIC_ACQ_REC_HRPD with 121 band/channel combinations in Sprint card */
+#else
+#define MAX_CUSTOM_CHANS    31
+#endif
+
+#define BC0_BLOCK_CHANNEL_INCREMENT      0  /* Use PriA & PriB in the Nam */
+#define BC1_BLOCK_CHANNEL_INCREMENT      25
+#define BC2_BLOCK_CHANNEL_INCREMENT      0  /* Discrete channels */
+#define BC3_BLOCK_CHANNEL_INCREMENT      0  /* Discrete channels */
+#define BC4_BLOCK_CHANNEL_INCREMENT      25
+#define BC5_BLOCK_CHANNEL_INCREMENT      50
+#define BC6_BLOCK_CHANNEL_INCREMENT      25
+#define BC7_BLOCK_CHANNEL_INCREMENT      25
+#define BC8_BLOCK_CHANNEL_INCREMENT      25
+#define BC9_BLOCK_CHANNEL_INCREMENT      25
+#define BC10_BLOCK_CHANNEL_INCREMENT     50
+#define BC11_BLOCK_CHANNEL_INCREMENT     50
+#define BC12_BLOCK_CHANNEL_INCREMENT     25
+#define BC13_BLOCK_CHANNEL_INCREMENT     25
+#define BC14_BLOCK_CHANNEL_INCREMENT     25
+#define BC15_BLOCK_CHANNEL_INCREMENT     25
+#define BC16_BLOCK_CHANNEL_INCREMENT     25
+#define BC17_BLOCK_CHANNEL_INCREMENT      0
+#define BC18_BLOCK_CHANNEL_INCREMENT     25
+#define BC19_BLOCK_CHANNEL_INCREMENT     25
+#define BC20_BLOCK_CHANNEL_INCREMENT     25
+
+#define CSS_1X_EMERGENCY_CALLBACK_MODE_TIME 300000L
+
+/* E-PRL Defines */
+#define OPERATIONAL_SID_0      15904
+#define OPERATIONAL_SID_1      15905
+
+/* Maximum time to wait for ESPM to validate System Selection */
+#define CSS_1X_EPRL_ESPM_WAIT_TIME 12000L
+
+/* Arbitrary maximum number of times SelectChannel() can be called recursively before
+ * SVSM decides its in an infinite loop and throws MonFault
+ * CSS_ERR_SVSM_SELECT_CHANNEL_TOO_MANY_RECURSIONS */
+#define CSS_1X_SVSM_SELECT_CHANNEL_RECURSION_LIMIT 15
+
+#define MAX_OOSA_PHASES             10
+#define CSS_OOSA_MAX_SLEEP_SECS     510
+
+/* Scan duration is specified in seconds, stored in units of milliseconds */
+#define CP_SELECTION_TIME_SCALE     1000
+
+/*****************************************************************************
+ * Local Enums
+ ****************************************************************************/
+
+typedef enum
+{
+    CSS_UIM_PRL,
+    CSS_UIM_EPRL,
+    CSS_NV_PRL,
+    CSS_PRL_SRC_INVALID
+} CssPrlSourceType;
+
+typedef enum
+{
+    /* VR_ACCEPTED */
+    MOST_PREF_SYS_IN_PRL,
+    MOST_PREF_SYS_IN_PRL_WITH_ASSO,
+    HOME_SYS_IN_NAM_NOT_IN_PRL,
+    HOME_SYS_IN_NAM_NO_PRL,
+    DFLT_PREF_SYS_FOR_1X95_VER_PRL,
+    DFLT_PREF_SYS_NOT_IN_PRL_WITH_ASSO,
+    MRU_SYS_FOR_1X95_VER_PRL,
+    DFLT_PREF_SYS,
+    DFLT_PREF_SYS_NO_PRL,
+
+    /* VR_KEEP_SCAN */
+    PREF_SYS_IN_PRL,
+    PREF_SYS_IN_PRL_WITH_ASSO,
+ 
+    /* VR_NEGATIVE */
+    NEG_SYS_IN_PRL,
+    NEG_SYS_IN_PRL_WITH_ASSO,
+    NEG_SYS_IN_NAM_NOT_IN_PRL,
+    NEG_SYS_IN_NAM_NO_PRL,
+    PRI_LOCK_SYS,
+    SYS_NOT_IN_PRL_AND_NAM_AND_DFLT_BAND,
+    SYS_NOT_IN_MRU_AND_DFLT_BAND_FOR_1X95_VER_PRL,
+    NEG_SYS_FOR_1X95_VER_PRL,
+
+    /* VR_NON_SYS_TABLE */
+    DFLT_BAND_CHANNEL_SYS,
+    NOT_DFLT_BAND_CHANNEL_SYS,
+    NON_IN_SYS_TABLE,
+    NOT_IN_DFLT_PREF_SYS_NO_PRL,
+    NOT_IN_DFLT_PREF_AND_PRL_WITH_ASSO,
+
+    /* VR_UNKNOWN */
+    INTENATIONAL_ROAM_SYS_BARRED,
+    DOMESTIC_ROAM_SYS_BARRED,
+    ONLY_HOME_SYS_ALLOWED,
+
+    /* VR_EXTERNEL_ACCEPTED */
+    CHANNEL_LOCK_MODE,
+    HLP_IS_WAITING_FOR_SVC_MODE,
+
+    /* VR_EXTERNEL_REJECTED */
+    NOT_SUITABLE_SYS,
+    PILOT_STRENGTH_UNQUALIFIED_SYS,
+    MANUAL_SYS_AVOIDANCE,
+    MAPE_HOME_SYS_AVOIDANCE,
+    REGIST_REJECT_SYS_AVOIDANCE,
+    RELEASE_REJECT_SYS_AVOIDANCE,
+    ACCESS_MAX_PROBES_SYS_AVOIDANCE,
+    REDIRECTION_SYS_AVOIDANCE,
+    IRAT_PRIO_UNQUALIFIED_SYS
+} SELECT_VALIDATE_STATUS;
+
+enum cpsm_1x_events
+{
+    CPSM_1X_SELECT_REQ_EV,
+    CPSM_1X_VALIDATE_REQ_EV,
+    CPSM_1X_EXHAUST_SCANLIST_EV,
+    CPSM_1X_OOSA_WAKEUP_EV,
+    CPSM_1X_CONN_STATUS_IND_EV,
+    CPSM_1X_MPSS_TIMEOUT_EV,
+    CPSM_1X_RETRIEVE_RES_EV,
+    CPSM_1X_CP_DISABLED_EV,
+    CPSM_1X_NUM_EVENTS,
+    CPSM_1X_NO_EV
+};
+typedef enum cpsm_1x_events CPSM_1X_EVENTS;
+
+enum cpsm_do_events
+{
+    CPSM_DO_SELECT_REQ_EV,
+    CPSM_DO_VALIDATE_REQ_EV,
+    CPSM_DO_EXHAUST_SCANLIST_EV,
+    CPSM_DO_OOSA_WAKEUP_EV,
+    CPSM_DO_CONN_STATUS_IND_EV,
+    CPSM_DO_MPSS_TIMEOUT_EV,
+    CPSM_DO_RETRIEVE_RES_EV,
+    CPSM_DO_ASSO_SYS_SCAN_EV, /* RESCAN because the collocation between 1X and DO is broken */
+    CPSM_DO_DISABLE_EV,
+    CPSM_DO_NUM_EVENTS,
+    CPSM_DO_NO_EV
+};
+typedef enum cpsm_do_events CPSM_DO_EVENTS;
+
+typedef enum
+{
+    PRL_MRU_SCAN_1X_ST,
+    DFLT_PREF_CHAN_SCAN_1X_ST,
+    ACQD_NON_PRL_SYS_RESCAN_1X_ST,
+    ACQD_PRL_SYS_RESCAN_1X_ST,
+    SR_SCAN_1X_ST,
+    LAST_REG_SYS_SCAN_1X_ST,
+    GEO_SCAN_1X_ST,
+    MPSS_1X_ST,
+    AVAIL_SYS_SCAN_1X_ST, /* NOT USED */
+    EMGER_SCAN_1X_ST,
+    ASSOCIATED_DO_SCAN_1X_ST, /* NOT USED */
+    OTASP_CALL_SCAN_1X_ST,
+    REDIRECT_SCAN_1X_ST,
+    RE_ACQUIRE_1X_ST,
+    CALL_RELEASE_1X_ST,
+    PLL_CHAN_TEST_1X_ST,
+    RESET_1X_ST,
+#ifdef MTK_CBP
+    HVOLTE_SR_SIB8_SCAN_1X_ST, /* hVoLte silent redial on SIB8 */
+    IDLE_GEO_SCAN_1X_ST,
+#endif
+    NUM_1X_SVSM_STATES
+} Svsm_1X_States;
+
+typedef enum {
+    PRL_MRU_SCAN_DO_ST,                 /*0*/
+    DFLT_PREF_CHAN_SCAN_DO_ST,
+    ACQD_NON_PRL_SYS_RESCAN_DO_ST,
+    ACQD_PRL_SYS_RESCAN_DO_ST,
+    SR_SCAN_DO_ST,  /* NOT_USED */
+    LAST_REG_SYS_SCAN_DO_ST,            /*5*/
+    GEO_SCAN_DO_ST,
+    MPSS_DO_ST,
+    AVAIL_SYS_SCAN_DO_ST,  /* NOT_USED */
+    EMGER_SCAN_DO_ST,  /* NOT_USED */
+    ASSOCIATED_DO_SCAN_DO_ST,           /*10*/
+    OTASP_CALL_SCAN_DO_ST,  /* NOT_USED */
+    REDIRECT_SCAN_DO_ST,
+    RE_ACQUIRE_DO_ST, /*this DO SVSM is for acquiring last system one-time, now it's used for IRAT responding HLP case*/
+    ASSOCIATED_SYSLOST_SCAN_DO_ST,
+    ASSOCIATED_MPSS_SCAN_DO_ST,
+    PRL_MRU_SYSLOST_SCAN_DO_ST,
+    GEO_SYSLOST_SCAN_DO_ST,
+    PLL_CHAN_TEST_DO_ST,
+    RAT_CHANS_SCAN_DO_ST,
+    RESET_DO_ST,                        /*20*/
+    NUM_DO_SVSM_STATES
+}Svsm_DO_States;
+
+enum rsvac_1x_states
+{
+    RSVAC_1X_NULL_ST,
+    RSVAC_1X_WAITING_ST,
+    RSVAC_1X_PREEMPTING_ST,
+    RSVAC_1X_RUNNING_ST,
+    RSVAC_1X_NUM_STATES
+};
+typedef enum rsvac_1x_states RSVAC_1X_STATES;
+
+enum rsvac_do_states
+{
+    RSVAC_DO_NULL_ST,
+    RSVAC_DO_WAITING_ST,
+    RSVAC_DO_PREEMPTING_ST,
+    RSVAC_DO_RUNNING_ST,
+    RSVAC_DO_NUM_STATES
+};
+typedef enum rsvac_do_states RSVAC_DO_STATES;
+
+typedef enum
+{
+    SYS_1xRTT,
+    SYS_EVDO,
+    SYS_BOTH
+}C2K_SystemT;
+
+enum cpsm_do_session_states
+{
+    SESSION_CLOSED,
+    SESSION_SETUP,
+    SESSION_OPENED
+};
+typedef enum cpsm_do_session_states CPSM_DO_SESSION_STATES;
+
+typedef enum 
+{
+    /* go through the whole scan list. Only channels with PN association only
+       will be scaned by the PN list.  The other channels(Data association only,
+       or both association or Null association) will be scaned by the whole PN
+       space with small search window */
+    DO_ASSO_PHASE_1 = 0,
+    /* only scan one phase of AssoList, no need to scan Phase 1& Phase 2*/
+    DO_ASSO_PHASE_QUICK,
+    /* the 1st cycle found nothing, do a fallback Phase 2 scan cycle */
+    DO_ASSO_PHASE_2,
+    /* only scan the MRU saved channel in AssoList*/
+    DO_ASSO_PHASE_MRU,
+    /* stop current unfinised AssoScan, no need to go ahead*/
+    DO_ASSO_PHASE_INVALID = 0xFF
+} CssDoAssoPhaseE;
+
+typedef enum
+{
+    _1X_REDIRECTION_AVOIDANCE_SYS = 1,
+    _1X_MAXACCESSFAIL_AVOIDANCE_SYS,    
+    _1X_REGISTERREJECT_AVOIDANCE_SYS,
+    _1X_RELEASEREJECT_AVOIDANCE_SYS,
+} Avoid_1X_SysT;
+
+typedef enum
+{
+    DO_ABANDON_SYS,
+    DO_CONSECUTIVE_LOST_SYS,
+    DO_REDIRECTION_AVOIDANCE_SYS,
+    DO_ACM_PERSIS_TEST_FAIL_AVOIDANCE_SYS,
+    DO_MAXACCESSFAIL_AVOIDANCE_SYS,
+    DO_SESSIONEGO_TIMEOUT_AVOIDANCE_SYS,
+    DO_SESSIONEGO_FAIL_AVOIDANCE_SYS,
+    DO_CONNDENY_AUTH_AVOIDANCE_SYS,
+    DO_CONNDENY_GENERAL_AVOIDANCE_SYS,
+    DO_NOTCA_AVOIDANCE_SYS,
+    DO_TCHSETUP_FAIL_AVOIDANCE_SYS,
+    DO_AVOIDANCE_CHLIST
+} Avoid_DO_SysT;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef struct
+{
+    CHAN_LIST_HDR
+    CHANNEL_DESC    ChanList[CSS_LIST_SMALL_SIZE];
+    kal_uint16      AcqIndex[CSS_LIST_SMALL_SIZE];
+    kal_uint16      IratPri[CSS_LIST_SMALL_SIZE];
+} SmallRalChannelList, *pSmallRalChannelList;
+#endif
+
+typedef struct
+{
+    PACKED_PREFIX union{
+        RSVAC_1X_STATES rsvac1xState;
+        RSVAC_DO_STATES rsvacDoState;
+    } PACKED_POSTFIX u;
+    kal_bool isCurrFullBand;
+    kal_bool isNewFreqScanRequest;
+    kal_uint8 currSysIndication;
+    kal_bool isWaitModifyResult;
+}rsvacContext;
+
+#ifdef MTK_DEV_C2K_IRAT
+typedef enum
+{
+    NOT_KNOWN,
+    MOST_PREFERRED,
+    PREFERRED,
+    NEGATIVE,
+    NON_SYSTEM_TABLE,
+    SECOND_PREFERRED /* for LTE&DO interworing, second highest priority network in GEO */
+} SystemPreference;
+#else
+typedef enum
+{
+    NOT_KNOWN,
+    MOST_PREFERRED,
+    PREFERRED,
+    NEGATIVE,
+    NON_SYSTEM_TABLE
+} SystemPreference;
+#endif /* MTK_DEV_C2K_IRAT */
+
+typedef enum
+{
+    RSSI_SCAN_PHASE_INACTIVE,      /* no rssi scan filter */
+    RSSI_SCAN_PHASE_SCANNING,      /* rssi scan is running */
+    RSSI_SCAN_PHASE_ABORTING,      /* aborting rssi scan */
+    RSSI_SCAN_PHASE_I,             /* rssi scan filter phase 1*/
+    RSSI_SCAN_PHASE_II,            /* rssi scan filter phase 2*/    
+    RSSI_SCAN_PHASE_NOT_NEEDED     /* rssi scan phase not needed*/
+} FilterByRssiScanStateT;
+
+typedef enum
+{
+    VR_NON_SYS_TABLE,
+    VR_ACCEPTED,
+    VR_KEEP_SCAN,
+    VR_NEGATIVE,
+    VR_UNKNOWN,
+    VR_EXTERNEL_ACCEPTED, /* only for trace */  
+    VR_EXTERNEL_REJECTED, /* only for trace */
+}ValidateResult;
+
+#ifdef MTK_CBP
+#define CSS_MAX_NUMBER_OF_TIMER_IDS ((CSS_MAX_NUMBER_OF_TIMER_TYPES) + \
+                                     (MAX_1X_MAX_ACCESS_FAIL_AVOID_CHAN_NUM) - 1 + \
+                                     (MAX_1X_MAX_REG_REJ_AVOID_CHAN_NUM) - 1 + \
+                                     (MAX_1X_MAX_RELEASE_REJ_AVOID_CHAN_NUM) - 1 + \
+                                     (MAX_DO_MAX_ACCESS_FAIL_AVOID_CHAN_NUM) - 1)
+#endif
+
+typedef enum
+{
+    CPSM_1X_OOSA_SLEEP_REQUEST = 0,
+    CPSM_1X_OOSA_SCAN_TIME_SET,
+    CPSM_1X_OOSA_SCAN_TIME_EXPIRE,
+    CPSM_1X_OOSA_WAKEUP_INDICATOR,
+    CPSM_1X_OOSA_ENTER_NEW_CYCLE,
+    CPSM_1X_OOSA_NOT_ALLOWED_BY_SVSM_STATE,
+    CPSM_1X_OOSA_COUNTERS_RESET,
+    CPSM_1X_OOSA_ENTER_STAGE
+}CssOOSAEvent;
+
+/* IRAT state machine */
+typedef enum {
+    DONOTSCANPOWERUP,   /* wait for IRAT cmd to start scan after power up */
+    DONORMALSCAN        /* normal scan */
+} IRAT_DOStateT;
+
+typedef enum {
+    NOTSCANPOWERUP1X,   /* wait for IRAT cmd to start scan after power up */
+    NORMALSCAN1X        /* normal scan */
+} IRAT_1XStateT;
+
+typedef enum
+{
+    IRAT_TURNOFF_DO_INACTIVE,
+    IRAT_TURNOFF_DO_REL_PPP,
+    IRAT_TURNOFF_DO_REL_PPP_NEED_DEEPSLEEP,
+    IRAT_TURNOFF_DO_FORCE2INIT,
+    IRAT_TURNOFF_DO_FORCE2INIT_NEED_DEEPSLEEP,
+    IRAT_TURNOFF_DO_WAIT_DEEPSLEEP_CNF,
+}IratTurnOffDoStateE;
+
+typedef enum
+{
+    IRAT_TURNOFF_1X_INACTIVE,
+    IRAT_TURNOFF_1X_REL_PPP,
+    IRAT_TURNOFF_1X_FORCE2INIT,
+    IRAT_TURNOFF_1X_WAIT_DEEPSLEEP_CNF,
+    IRAT_TURNOFF_1X_WAIT_RSSI_SCAN_ABORT,
+}IratTurnOff1xStateE;
+
+typedef enum
+{
+    IRAT_NO_PS_RPT_REASON_START = 0,
+    IRAT_NO_PS_POWER_DOWN = IRAT_NO_PS_RPT_REASON_START,
+    IRAT_NO_PS_FLIGHT_MODE,
+    IRAT_NO_PS_AT_DETACHED,
+    IRAT_NO_PS_GMSS_DETACHED,
+    IRAT_NO_PS_RAT_CHG,
+    IRAT_NO_PS_OTHERS,
+    IRAT_NO_PS_1X_EXHAUST,
+    IRAT_NO_PS_EMERGENCY_MODE,
+    IRAT_NO_PS_SIM_ERROR,
+    IRAT_NO_PS_RPT_REASON_END = IRAT_NO_PS_SIM_ERROR,
+
+    IRAT_1X_PS_RPT_REASON_START = 50,
+    IRAT_1X_PS_DELAY_RPT = IRAT_1X_PS_RPT_REASON_START,
+    IRAT_1X_PS_REG_CNF,
+    IRAT_1X_PS_DO_AUTH_FAIL,
+    IRAT_1X_PS_RPT_REASON_END = IRAT_1X_PS_DO_AUTH_FAIL,
+
+    IRAT_DO_PS_RPT_REASON_START = 100,
+} IratPsRptReasonE;
+
+typedef enum
+{
+    CSS_ERR_UNEXPECTED_EVENT     = 0,
+    CSS_ERR_INVALID_SYS_PREFERENCE,
+    CSS_ERR_INVALID_SYS_TYPE,
+    CSS_ERR_INVALID_ACQUSITION_REC_TYPE,
+    CSS_ERR_INVALID_1X_SELECT_REQ_RCVD,
+    CSS_ERR_INVALID_DO_SELECT_REQ_RCVD,
+    CSS_ERR_INVALID_1X_VALIDATION_TYPE,
+    CSS_ERR_INVALID_OOSA_STAGE,
+    CSS_ERR_INVALID_TURNOFF_STATE,
+    CSS_ERR_SUBNET_NULL_POINTER,
+    CSS_ERR_EXT_PRL_P_REV_MISMATCH,
+    CSS_ERR_SCAN_LIST_EMPTY,
+    CSS_ERR_INVALID_NVRAM_PRL,
+    CSS_ERR_INVALID_UIM_PRL_LEN,
+    CSS_ERR_INVALID_MSG_ID,
+    CSS_ERR_NOT_1X_ONLY_IN_SIM2,
+    CSS_ERR_GET_NVRAM_PRL_RECVD_UNEXPECTED_MSG,
+    CSS_ERR_GET_UIM_PRL_RECVD_UNEXPECTED_MSG,
+    CSS_ERR_GET_UIM_PRL_RECVD_INVALID_MSG,
+    CSS_ERR_INVALID_PLL_CHAN_TEST_MODE_SYSTEM,
+    CSS_ERR_INVALID_BAND,
+    CSS_ERR_PRL_TOO_SMALL_SIZE,
+    CSS_ERR_EXT_PRL_ACQRECNUM_INVALID,
+    CSS_ERR_EXT_PRL_SYSRECNUM_INVALID,
+    CSS_ERR_EXT_PRL_BAD_ACQ_REC,
+    CSS_ERR_EXT_PRL_BAD_COMM_SUBNET,
+    CSS_ERR_EXT_PRL_BAD_SYS_REC,
+    CSS_ERR_EXT_PRL_HASH_TABLE_ERROR,
+    CSS_ERR_EXT_PRL_CRC_ERROR,
+    CSS_ERR_EXT_PRL_LEN_ERROR,
+    CSS_ERR_EXT_PRL_INVALID_SSPR,
+    CSS_ERR_DUPLICATE_SUBNET_OVERFLOW, 
+    CSS_ERR_BAND_BLOCK_CHANNEL_OUT_OF_RANGE,
+    CSS_ERR_SYS_NOT_FOUND_IN_LIST,
+    CSS_ERR_INVALID_ERI_TABLE,
+    CSS_ERR_NO_ERI_TABLE,
+    CSS_ERR_ERI_ENTRY_NOT_FOUND,
+    CSS_ERR_SVSM_SELECT_CHANNEL_TOO_MANY_RECURSIONS,
+    CSS_ERR_INVALID_ACTION_IN_1X_MARK_NEGATIVE_SYSTEMS,
+    CSS_ERR_PARM_INVALID_PTR,
+    CSS_ERR_PARM_INVALID_LENGTH,
+    CSS_ERR_PARM_GENERAL_FAILURE,
+    CSS_ERR_PARM_OPERATION_NOT_SUPPORTED,
+    CSS_ERR_NVRAM_DATA_READ_FAIL,
+    CSS_RECEIVED_UNEXPECTED_MSG,
+    CSS_ERR_MRS_LLA_MAJOR_OCCUPY_FAIL,
+    CSS_ERR_MRS_LLA_INVALID_LIST_OCCUPY_EVENT,
+    CSS_ERR_INVALID_REC_NUM,
+    CSS_ERR_NVRAM_READ_ERROR,
+    CSS_ERR_NULL_POINTER,
+    CSS_ERR_POWER_DOWN,
+    CSS_ERR_INVALID_GMSS_TASK,
+    CSS_ERR_BAND_NOT_SUPPORTED,
+    CSS_ERR_GET_MRU_REC_FAILURE,
+    CSS_ERR_INVALID_DO_OOSA_MSG_TYPE,
+    CSS_ERR_ADD_MRU_REC_FAIL_DUE_TO_SCAN_LIST_FULL,  
+    CSS_ERR_SET_1X_REG_DISABLE_WHEN_C2K_ONLY,
+    CSS_ERR_INVALID_RAT_TYPE,
+    CSS_ERR_INVALID_MCC,
+    CSS_ERR_INVALID_ACQ_INDEX,
+    CSS_ERR_EXCEED_CHAN_LIST_MAX_SIZE,
+    CSS_ERR_INVALID_SYS_FOR_OTASP,
+    CSS_ERR_INVALID_MOD_ID,
+    CSS_ERR_INVALID_PRL_POINTER
+} CssErrorCodeT;
+
+#endif
+