[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
+