[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/protocol/interface/l4misc/atp_l4b_struct.h b/mcu/protocol/interface/l4misc/atp_l4b_struct.h
new file mode 100644
index 0000000..d148bcc
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_l4b_struct.h
@@ -0,0 +1,219 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l4b_atp_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _L4B_ATP_STRUCT_H
+#define _L4B_ATP_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+
+
+/* MSG_ID_ATP_L4B_AT_CMD_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+} atp_l4b_at_cmd_req_struct;
+
+/* MSG_ID_ATP_L4B_AT_CMD_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+        
+    atp_channel_enum ch_id;
+    proxy_cmd_result_enum result;
+    atp_err_id_enum cause;
+    kal_bool stuff;
+} atp_l4b_at_cmd_cnf_struct;
+
+/* MSG_ID_ATP_L4B_AT_URC_IND */
+typedef struct {
+    LOCAL_PARA_HDR    
+    kal_uint8 ch_id;
+    kal_bool stuff;
+} atp_l4b_at_urc_ind_struct; //align to l4b_atci_at_urc_ind_struct
+typedef struct {
+    LOCAL_PARA_HDR    
+    kal_uint8 lock_mode;//0:unlock;1:lock
+    kal_bool attach_type;//0: no attach/detach;1:attach when lcok/detach when unlock
+} atp_l4bnw_sim_lock_req_struct; //align to atp_l4bnw_sim_lock_req_struct
+/* MSG_ID_ATP_L4BNW_SIM_LOCK_CNF */
+typedef struct {
+    LOCAL_PARA_HDR    
+    kal_bool result;
+} atp_l4bnw_sim_lock_cnf_struct; //align to atp_l4bnw_sim_lock_cnf_struct
+
+//MSG_ID_ATP_L4BSBP_AT_CH_LOCK_REQ/ MSG_ID_ATP_L4BSBP_AT_CH_UNLOCK_REQ
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} atp_l4bsbp_at_ch_lock_req_struct, atp_l4bsbp_at_ch_unlock_req_struct, l5io_l4bsbp_at_ch_lock_req_struct, l5io_l4bsbp_at_ch_unlock_req_struct;
+
+//MSG_ID_ATP_L4BSBP_AT_CH_LOCK_CNF/ MSG_ID_ATP_L4BSBP_AT_CH_UNLOCK_CNF
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_bool result;                                // 0: fail, 1: success
+} atp_l4bsbp_at_ch_lock_cnf_struct, atp_l4bsbp_at_ch_unlock_cnf_struct, l5io_l4bsbp_at_ch_lock_cnf_struct, l5io_l4bsbp_at_ch_unlock_cnf_struct;
+
+//MSG_ID_L5IO_L4BSBP_SBP_ID_CHANGE_IND
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint32 sbp_id;
+} l5io_l4bsbp_sbp_id_change_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR    
+    atp_channel_enum ch_id;
+    atp_cmd_mode_enum cmd_mode;
+    kal_uint8 fun;
+    kal_uint8 cause;    
+} atp_l4bpwr_efun_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_efun_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR    
+    atp_channel_enum ch_id;
+    atp_cmd_mode_enum cmd_mode;
+    kal_uint8 fun;
+    kal_uint8 rst;
+} atp_l4bpwr_cfun_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_cfun_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR    
+    atp_channel_enum ch_id;
+} atp_l4bpwr_epof_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_epof_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+} atp_l4bpwr_get_nr_ps_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+    kal_uint8        target_nr_ps;         // bitmap for protocols which can connect NR
+} atp_l4bpwr_set_nr_ps_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_get_nr_ps_cnf_struct;
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_set_nr_ps_cnf_struct;
+
+#endif /* _L4B_ATP_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/atp_l4c_struct.h b/mcu/protocol/interface/l4misc/atp_l4c_struct.h
new file mode 100644
index 0000000..e8f11fa
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_l4c_struct.h
@@ -0,0 +1,193 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   atp_l4c_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _ATP_L4C_STRUCT_H
+#define _ATP_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+#if defined(__IMS_SUPPORT__) && (__WFC_SUPPORT__) && defined(__ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__) && defined(__GEMINI__)
+#include "ims_common_def.h"
+#endif
+
+
+/* MSG_ID_ATP_L4C_EN3GPECP_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_cmd_mode_enum cmd_mode;
+    kal_uint8 urc_report_mode;
+} atp_l4c_en3gpecp_req_struct;
+
+/* MSG_ID_ATP_L4C_EN3GPECP_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_cmd_mode_enum cmd_mode;
+    kal_uint8 n3en_indicator;
+    proxy_cmd_result_enum result;
+} atp_l4c_en3gpecp_cnf_struct;
+
+/* MSG_ID_ATP_L4C_ANBR_REQ */
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 ebi;
+	// over NR: when ebi = 0, refer to psi and qfi
+    kal_uint8 psi;
+    kal_uint8 qfi;	
+    kal_bool is_ul;
+    kal_uint32 bitrate;
+} atp_l4c_anbr_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+    vg_option_enum vg_option;
+    atp_cmd_mode_enum cmd_mode;
+    proxy_cmd_result_enum result;
+} atp_l4c_e5gopt_cnf_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+    kal_uint8 vg_option;
+    kal_uint8 act_operation;
+} atp_l4c_e5gopt_req_struct;
+
+/* MSG_ID_ATP_L4C_CSFB_PAGE_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 csfb_page_req;
+    kal_uint8 add_info; // if csfb_page_config is 3 or 4, add_info will be the new timer value
+} atp_l4c_csfb_page_req_struct;
+
+#if defined(__IMS_SUPPORT__) && (__WFC_SUPPORT__) && defined(__ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__) && defined(__GEMINI__)
+typedef struct
+{
+	LOCAL_PARA_HDR
+	ims_access_rat_enum target_rat;
+} atp_l4c_call_handover_ind_struct;
+#endif
+
+
+#endif /* _ATP_L4C_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/atp_sms_struct.h b/mcu/protocol/interface/l4misc/atp_sms_struct.h
new file mode 100644
index 0000000..af2642c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_sms_struct.h
@@ -0,0 +1,107 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   atp_sms_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _ATP_SMS_STRUCT_H
+#define _ATP_SMS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+
+
+
+/* MSG_ID_ATP_SMS_C5GUSMS_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+	atp_cmd_mode_enum cmd_mode;
+	kal_uint8 sms_requested;
+} atp_sms_status_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    atp_channel_enum ch_id;
+	atp_cmd_mode_enum cmd_mode;
+    proxy_cmd_result_enum result;
+	kal_uint8 sms_available;
+    kal_uint8 sms_allowed;
+} atp_sms_status_cnf_struct;
+
+
+/*
+ *  (only exist in non-IMS project)
+ *  MSG_ID_ATP_SMS_STATUS_URC_IND
+ *       +C5GUSMS: <sms_available>, <sms_allowed>
+ */
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint8  sms_available;    
+    kal_uint8  sms_allowed;
+} atp_sms_status_urc_ind_struct; 
+
+
+#endif /* _ATP_SMS_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/atp_smsal_struct.h b/mcu/protocol/interface/l4misc/atp_smsal_struct.h
new file mode 100644
index 0000000..56d6ff6
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_smsal_struct.h
@@ -0,0 +1,89 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   atp_smsal_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _ATP_SMSAL_STRUCT_H
+#define _ATP_SMSAL_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+
+
+/* MSG_ID_ATP_SMSAL_C5GSMS_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+	atp_channel_enum ch_id;
+	atp_cmd_mode_enum cmd_mode;
+	kal_uint8 service;
+} atp_smsal_c5gsms_req_struct;
+
+/* MSG_ID_ATP_SMSAL_C5GSMS_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+	atp_channel_enum ch_id;
+    atp_cmd_mode_enum cmd_mode;
+    proxy_cmd_result_enum result;
+    kal_uint8 service;
+} atp_smsal_c5gsms_cnf_struct;
+
+
+#endif /* _ATP_SMSAL_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/csmcc_atfunc.h b/mcu/protocol/interface/l4misc/csmcc_atfunc.h
new file mode 100644
index 0000000..2ead62b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/csmcc_atfunc.h
@@ -0,0 +1,438 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	csmcc_atfunc.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for exporting function declaration used by L4C module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * 				HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _CSMCC_ATFUNC_H
+#define _CSMCC_ATFUNC_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+typedef struct l4c_call_entry_struct
+{
+   kal_uint8 src_id;
+   kal_uint8 call_id;
+   kal_uint8 call_orig;
+   kal_uint8 call_state;
+   kal_uint8 call_mode;
+   kal_uint8 call_type;
+   kal_uint8 mpty;
+   l4_addr_bcd_struct number;
+   kal_uint8 priority;
+
+   kal_uint8 number_type;
+   kal_bool alpha_present;
+   kal_char alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+   kal_bool uri_present;
+   kal_char uri[MAX_SIP_URI_LEN];
+   kal_bool cli_present;
+   kal_uint8 cli;
+   kal_uint8 cli_validity;
+} l4c_call_entry_struct;
+
+extern kal_bool l4ccsm_cc_get_call_info (
+                       kal_uint8 call_id,
+                       l4c_call_entry_struct *call_info,
+                       kal_uint8 *next_call_id);
+                       
+extern kal_bool l4ccsm_cc_get_acm(
+                       kal_uint32 *acm,
+                       kal_uint32 *acmmax);
+                       
+extern kal_bool l4ccsm_cc_get_ccm(
+                       kal_uint8 call_id,
+                       kal_uint32 *ccm);
+
+extern kal_bool 
+l4ccsm_cc_get_data_rate(kal_uint32 *rate);
+
+extern kal_bool 
+l4ccsm_cc_get_data_call_info(kal_uint8 *data_call_type);
+
+extern kal_bool l4ccsm_cc_get_mt_call(
+                       kal_uint8 *call_id);
+
+extern kal_bool l4ccsm_cc_get_in_call(
+                       kal_uint8 *call_id);
+                                              
+extern kal_bool  l4ccsm_cc_get_outgoing_call(kal_uint8 *call_id);
+                                              
+extern kal_bool l4ccsm_cc_get_active_call(
+                       kal_uint8 *call_id);
+                      
+extern kal_bool l4ccsm_cc_set_addr_type(
+                       kal_uint8 addr_type);
+                       
+extern kal_bool l4ccsm_cc_get_addr_type(
+                       kal_uint8 *addr_type);
+                       
+#if 0 
+/* under construction !*/
+#endif //[MAUI_00736467]  
+
+extern kal_bool l4ccsm_cc_set_call_mode (
+                       kal_uint8 call_mode);
+                       
+extern kal_bool l4ccsm_cc_get_call_mode(
+                       kal_uint8 *call_mode);
+                       
+extern kal_bool l4ccsm_cc_test_call_mode(kal_uint8 const **supp_ptr);
+                       
+extern kal_bool csmcc_check_cbst_para_supported(
+                                   kal_uint8 bearer_speed,
+                                   kal_uint8 bearer_name,
+                                   kal_uint8 bearer_ce,
+                                   kal_bool need_check_fax);
+
+extern kal_bool l4ccsm_cc_set_bearer_service_type (
+                       kal_uint8 bearer_speed,
+                       kal_uint8 bearer_name,
+                       kal_uint8 bearer_ce);
+
+#if 0 /*mtk01602, 070606*/
+#ifdef __SATCE__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif /*mtk01602, 070606*/
+extern kal_bool l4ccsm_cc_get_bearer_service_type (
+                       kal_uint8 *bearer_speed,
+                       kal_uint8 *bearer_name,
+                       kal_uint8 *bearer_ce);
+
+extern kal_bool l4ccsm_cc_test_bearer_service_type(kal_uint8 const **supp_ptr);
+                       
+extern kal_bool l4ccsm_cc_set_sns_mode (
+                       kal_uint8 sns_mode);
+                       
+extern kal_bool l4ccsm_cc_get_sns_mode (
+                       kal_uint8 *sns_mode);
+                       
+extern kal_bool l4ccsm_cc_test_sns_mode(kal_uint8 const **supp_ptr);
+                       
+extern kal_bool l4ccsm_cc_set_char_framing (
+                       kal_uint8 cf_format,
+                       kal_uint8 cf_parity);
+
+extern kal_bool l4ccsm_cc_get_char_framing (
+                       kal_uint8 *cf_format,
+                       kal_uint8 *cf_parity);
+
+extern kal_bool l4ccsm_cc_test_char_framing(kal_uint8 const **supp_ptr);
+                      
+extern kal_bool l4ccsm_cc_set_v120_param (
+                      kal_uint8 v120_rah,
+                      kal_uint8 v120_mfm,
+                      kal_uint8 v120_mode,
+                      kal_uint8 v120_llineg,
+                      kal_uint8 v120_assign,
+                      kal_uint8 v120_negtype);
+                      
+extern kal_bool l4ccsm_cc_get_v120_param (
+                      kal_uint8 *v120_rah,
+                      kal_uint8 *v120_mfm,
+                      kal_uint8 *v120_mode,
+                      kal_uint8 *v120_llineg,
+                      kal_uint8 *v120_assign,
+                      kal_uint8 *v120_negtype);                      
+
+#if 0                        
+/* under construction !*/
+#endif //[MAUI_00736467]
+
+extern kal_bool l4ccsm_cc_set_rlp_param (
+                      kal_uint8 rlp_iws,
+                      kal_uint8 rlp_mws,
+                      kal_uint8 rlp_T1,
+                      kal_uint8 rlp_N2,
+                      kal_uint8 rlp_ver,
+                      kal_uint8 rlp_T4);
+
+extern kal_bool l4ccsm_cc_get_rlp_param (
+                      kal_uint8 *rlp_iws,
+                      kal_uint8 *rlp_mws,
+                      kal_uint16 *rlp_T1,
+                      kal_uint8 *rlp_N2,
+                      kal_uint8 *rlp_ver,
+                      kal_uint8 *rlp_T4);
+                      
+extern kal_bool l4ccsm_cc_test_rlp_param(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_set_data_compression_param (
+                      kal_uint8 dir,
+                      kal_uint8 negotiation,
+                      kal_uint16 max_dict,
+                      kal_uint8 max_string);
+                      
+extern kal_bool l4ccsm_cc_get_data_compression_mode(
+                      kal_uint8 *dir,
+                      kal_uint8 *negotiation,
+                      kal_uint16 *max_dict,
+                      kal_uint8 *max_string);
+
+extern kal_bool l4ccsm_cc_test_data_compression_param(kal_uint8 const **supp_ptr);
+                      
+extern kal_bool l4ccsm_cc_test_aoc_mode(kal_uint8 const **supp_ptr);
+                      
+extern kal_bool l4ccsm_cc_set_cug_param (
+                      kal_uint8 cug_temporary_mode,
+                      kal_uint8 cug_index,
+                      kal_uint8 cug_suppress);
+                      
+extern kal_bool l4ccsm_cc_get_cug_param (
+                      kal_uint8 *cug_temporary_mode,
+                      kal_uint8 *cug_index,
+                      kal_uint8 *cug_suppress);
+#if 0                       
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif //[MAUI_00736467]
+
+extern kal_bool l4ccsm_cc_set_fclass_mode(
+                      kal_uint8 fclass_mode);
+
+extern kal_bool l4ccsm_cc_get_fclass_mode(
+                      kal_uint8 *fclass_mode);
+                      
+extern kal_bool l4ccsm_cc_test_fclass_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_chld_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_vts_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_cpas_mode(kal_uint8 const **supp_ptr);
+
+extern kal_uint8 csmcc_get_line_id(void);
+
+extern kal_bool l4ccsm_cc_set_ctm_status(kal_uint8 ctm_status);
+
+extern kal_bool l4ccsm_cc_set_call_capability(kal_uint32 capability);
+
+extern kal_bool l4ccsm_cc_set_iwf(kal_uint8 iwf);
+
+extern kal_bool l4ccsm_cc_get_iwf(kal_uint8 * iwf);
+                      
+extern kal_bool l4ccsm_cc_get_hold_call(kal_uint8 *call_id);
+			
+extern kal_bool check_call_exist_in_either_SIM(kal_uint8 which_sim);
+
+extern kal_bool l4ccsm_cc_set_rat_mode(kal_uint8 rat_mode);
+
+extern kal_bool l4ccsm_cc_mt_call_not_approved(kal_uint8 call_id);
+
+/* MAUI_01618869 CSM provide l4ccsm_cc_get_CSM_call_id function */
+extern kal_bool l4ccsm_cc_get_CSM_call_id(kal_uint8* call_id_ptr);
+
+extern kal_uint8 csmcc_get_clcc_mode(kal_uint8 call_id);
+
+extern void csmcc_find_next_call(kal_uint8 call_id, kal_uint8 *next_call_id);
+
+kal_uint16 l4ccsm_cc_ctrl_by_sim_replace_cause(kal_uint8 call_id, kal_uint16 cause);
+
+extern void l4ccsm_cc_set_cli_validity(kal_uint8 call_id, kal_uint8 cli_validity);
+
+extern kal_uint8 l4ccsm_cc_get_emergency_call_id(void);
+
+extern kal_bool l4ccsm_check_SIM_interface_for_cs_call(kal_uint8 sim_index);
+
+#endif /* _CSMCC_EXT_FUNC_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/ddm_eval_struct.h b/mcu/protocol/interface/l4misc/ddm_eval_struct.h
new file mode 100644
index 0000000..3f0aa54
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_eval_struct.h
@@ -0,0 +1,126 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2012
+*
+*  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:
+ * ---------
+ *   ddm_eval_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ * 	
+ * 	.
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ * 	
+ * 	.
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ * .
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ * 	
+ * 	.
+ *
+ * 05 15 2018 dennis.tsai
+ * [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ * add MSPM feature for DDM.
+ *
+ * 02 13 2018 dennis.tsai
+ * [MOLY00307271] [UMOLYE][top]【彩信ã?‘设å?1为主卡,用电信卡2发彩信发不出åŽ?
+ * add ddm_eval mms pdn start/stop control.
+ *
+ * 01 15 2018 zanya.peng
+ * [MOLY00302408] [Zion][MT6739][O1][MP2][RDIT][VzW][LTE][DR][5.5_IMSRoam]RRCConnectionRequest TimeOut when T3417 10th expired.
+ * 	
+ * 	.
+ *
+ * 10 30 2017 dennis.tsai
+ * add t3346 feature.
+ * 
+ ****************************************************************************/
+
+#ifndef  _DDM_EVAL_STRUCT_H
+#define  _DDM_EVAL_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+
+#include "ps_public_struct.h"
+
+typedef enum
+{
+	T_T3346,
+	T_THROTTLING
+
+}ddm_eval_backoff_timer_id_enum;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    at_cabtsri_ind_struct cabtsri_ind;
+	ddm_eval_backoff_timer_id_enum backoff_timer_id;
+
+} ddm_eval_cabtsri_ind_struct ;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+} ddm_eval_paging_protected_timer_max_ind_struct ;
+
+
+#endif
diff --git a/mcu/protocol/interface/l4misc/ddm_l4aps_struct.h b/mcu/protocol/interface/l4misc/ddm_l4aps_struct.h
new file mode 100644
index 0000000..fd06696
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_l4aps_struct.h
@@ -0,0 +1,318 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   ddm_l4aps_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ ****************************************************************************/
+
+
+#ifndef  _DDM_L4APS_STRUCT_H
+#define  _DDM_L4APS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ddm_common_struct.h"
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+
+#include "ps_public_struct.h"
+#include "mcd_l3_inc_struct.h"
+
+#include "l4aps_l4bpdn_struct.h"
+#include "l4aps_public_enum.h"
+
+#if 1 /* MSG: DDM -> L4APS */
+/*********************************************************************************************************
+ *     MSG: DDM -> L4APS: Start                                                                         *
+ *********************************************************************************************************/
+
+typedef l4aps_l4bpdn_cmd_common_header_req_struct     ddm_l4aps_cmd_common_header_req_struct;
+
+typedef l4aps_l4bpdn_nw_applied_cache_data_notify_struct     ddm_l4aps_nw_applied_cache_data_notify_struct;
+
+typedef l4aps_l4bpdn_cgdcont_req_struct               ddm_l4aps_cgdcont_req_struct;
+
+typedef l4aps_l4bpdn_cgdscont_req_struct              ddm_l4aps_cgdscont_req_struct;
+
+typedef l4aps_l4bpdn_cgtft_req_struct                 ddm_l4aps_cgtft_req_struct;
+
+typedef l4aps_l4bpdn_cgqreq_req_struct                ddm_l4aps_cgqreq_req_struct;
+
+typedef l4aps_l4bpdn_cgqmin_req_struct                ddm_l4aps_cgqmin_req_struct;
+
+typedef l4aps_l4bpdn_cgeqreq_req_struct               ddm_l4aps_cgeqreq_req_struct;
+
+typedef l4aps_l4bpdn_cgeqmin_req_struct               ddm_l4aps_cgeqmin_req_struct;
+
+typedef l4aps_l4bpdn_cgeqneg_req_struct               ddm_l4aps_cgeqneg_req_struct;
+
+typedef l4aps_l4bpdn_cgact_req_struct                 ddm_l4aps_cgact_req_struct;
+
+typedef l4aps_l4bpdn_cgcmod_req_struct                ddm_l4aps_cgcmod_req_struct;
+
+typedef l4aps_l4bpdn_cgpaddr_req_struct               ddm_l4aps_cgpaddr_req_struct;
+
+typedef l4aps_l4bpdn_cgauto_req_struct                ddm_l4aps_cgauto_req_struct;
+
+typedef l4aps_l4bpdn_cgans_req_struct                 ddm_l4aps_cgans_req_struct;
+
+typedef l4aps_l4bpdn_cgerep_req_struct                ddm_l4aps_cgerep_req_struct;
+
+typedef l4aps_l4bpdn_cgcontrdp_req_struct             ddm_l4aps_cgcontrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgscontrdp_req_struct            ddm_l4aps_cgscontrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgtftrdp_req_struct              ddm_l4aps_cgtftrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgeqos_req_struct                ddm_l4aps_cgeqos_req_struct;
+
+typedef l4aps_l4bpdn_cgeqosrdp_req_struct             ddm_l4aps_cgeqosrdp_req_struct;
+
+typedef l4aps_l4bpdn_c5gqos_req_struct                ddm_l4aps_c5gqos_req_struct;
+
+typedef l4aps_l4bpdn_c5gqosrdp_req_struct             ddm_l4aps_c5gqosrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgdel_req_struct                 ddm_l4aps_cgdel_req_struct;
+
+typedef l4aps_l4bpdn_cgauth_req_struct                ddm_l4aps_cgauth_req_struct;
+
+typedef l4aps_l4bpdn_cladn_req_struct                 ddm_l4aps_cladn_req_struct;
+
+typedef l4aps_l4bpdn_ecncfg_req_struct                ddm_l4aps_ecncfg_req_struct;
+
+typedef l4aps_l4bpdn_egdcont_req_struct               ddm_l4aps_egdcont_req_struct;
+
+typedef l4aps_l4bpdn_vzwapnetmr_req_struct            ddm_l4aps_vzwapnetmr_req_struct;
+
+typedef l4aps_l4bpdn_vzwapne_req_struct               ddm_l4aps_vzwapne_req_struct;
+
+typedef l4aps_l4bpdn_egpau_req_struct                 ddm_l4aps_egpau_req_struct;
+
+typedef l4aps_l4bpdn_egact_req_struct                 ddm_l4aps_egact_req_struct;
+
+typedef l4aps_l4bpdn_cgsdata_req_struct               ddm_l4aps_cgsdata_req_struct;
+
+typedef l4aps_l4bpdn_acttest_req_struct               ddm_l4aps_acttest_req_struct;
+
+typedef l4aps_l4bpdn_psbearer_req_struct              ddm_l4aps_psbearer_req_struct;
+
+typedef l4aps_l4bpdn_egfb_req_struct                  ddm_l4aps_egfb_req_struct;
+
+typedef l4aps_l4bpdn_egdelpf_req_struct               ddm_l4aps_egdelpf_req_struct;
+
+typedef l4aps_l4bpdn_eglnkpf_req_struct               ddm_l4aps_eglnkpf_req_struct;
+
+typedef l4aps_l4bpdn_egpcordp_req_struct              ddm_l4aps_egpcordp_req_struct;
+
+typedef l4aps_l4bpdn_egpco_req_struct                 ddm_l4aps_egpco_req_struct;
+
+typedef l4aps_l4bpdn_cgdata_req_struct                ddm_l4aps_cgdata_req_struct;
+
+typedef l4aps_l4bpdn_egld_req_struct                  ddm_l4aps_egld_req_struct;
+
+typedef l4aps_l4bpdn_edallow_req_struct               ddm_l4aps_edallow_req_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_define_needed_rsp_struct     ddm_l4aps_lte_attach_pdn_define_needed_rsp_struct;
+
+typedef l4aps_l4bpdn_set_default_sim_ind_struct                  ddm_l4aps_set_default_sim_ind_struct;
+
+typedef l4aps_l4bpdn_set_eimsroam_config_value_req_struct        ddm_l4aps_set_eimsroam_config_value_req_struct;
+
+typedef l4aps_l4bpdn_cmd_not_yet_support_req_struct              ddm_l4aps_cmd_not_yet_support_req_struct;
+
+typedef l4aps_l4bpdn_eapnsync_req_struct                         ddm_l4aps_eapnsync_req_struct;
+
+typedef l4aps_l4bpdn_evzwapfcia_req_struct                       ddm_l4aps_evzwapfcia_req_struct;
+
+typedef l4aps_l4bpdn_eggrntrspt_req_struct                       ddm_l4aps_eggrntrspt_req_struct;
+
+typedef l4aps_l4bpdn_egpcap_req_struct                           ddm_l4aps_egpcap_req_struct;
+
+typedef l4aps_l4bpdn_notify_pdn_type_req_struct                  ddm_l4aps_notify_pdn_type_req_struct;
+
+typedef l4aps_l4bpdn_escontind_ind_struct                        ddm_l4aps_escontind_ind_struct;
+
+typedef l4aps_l4bpdn_escontind_req_struct                        ddm_l4aps_escontind_req_struct;
+
+typedef ia_apn_change_req_struct                                 ddm_l4aps_ia_apn_change_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 ap_cid;
+    kal_uint8 d2_cid;
+} ddm_l4aps_update_cid_mapping_req_struct;
+
+/*********************************************************************************************************
+ *     MSG: DDM -> L4APS: End                                                                           *
+ *********************************************************************************************************/
+#endif 
+
+#if 1 /* MSG: L4APS -> DDM */
+/*********************************************************************************************************
+ *     MSG: L4APS -> DDM: Start                                                                         *
+ *********************************************************************************************************/
+/* A general purpose AT-CMD confirm message */
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_cnf_struct cmd;
+
+    /* In the above field (cmd), 
+     * if cmd.is_success == KAL_FALSE, the cmd.err_cause is a converted cause according to 27.007. 
+     * The below original_cause is an "unconverted" counterpart for reference. */
+    kal_bool          is_original_cause_from_3gpp_present;  /* True: If (cmd.is_success == KAL_FALSE) AND (is from 3GPP MD) */
+    ps_cause_enum     original_cause_from_3gpp;             /* Valid if is_original_cause_from_3gpp_present == KAL_TRUE */
+
+    l4aps_retry_type_enum retry_type;
+} ddm_l4aps_cmd_cnf_struct;
+
+
+typedef l4aps_l4bpdn_cgev_ind_struct                          ddm_l4aps_cgev_ind_struct;
+
+typedef l4aps_l4bpdn_cgdcont_ind_struct                       ddm_l4aps_cgdcont_ind_struct;
+
+typedef l4aps_l4bpdn_cgdscont_ind_struct                      ddm_l4aps_cgdscont_ind_struct;
+
+typedef l4aps_l4bpdn_cgtft_ind_struct                         ddm_l4aps_cgtft_ind_struct;
+
+typedef l4aps_l4bpdn_cgqreq_ind_struct                        ddm_l4aps_cgqreq_ind_struct;
+
+typedef l4aps_l4bpdn_cgqmin_ind_struct                        ddm_l4aps_cgqmin_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqreq_ind_struct                       ddm_l4aps_cgeqreq_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqmin_ind_struct                       ddm_l4aps_cgeqmin_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqneg_ind_struct                       ddm_l4aps_cgeqneg_ind_struct;
+
+typedef l4aps_l4bpdn_cgact_ind_struct                         ddm_l4aps_cgact_ind_struct;
+
+typedef l4aps_l4bpdn_cgpaddr_ind_struct                       ddm_l4aps_cgpaddr_ind_struct;
+
+typedef l4aps_l4bpdn_cgauto_ind_struct                        ddm_l4aps_cgauto_ind_struct;
+
+typedef l4aps_l4bpdn_cgerep_ind_struct                        ddm_l4aps_cgerep_ind_struct;
+
+typedef l4aps_l4bpdn_cgcontrdp_ind_struct                     ddm_l4aps_cgcontrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgscontrdp_ind_struct                    ddm_l4aps_cgscontrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgtftrdp_ind_struct                      ddm_l4aps_cgtftrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqos_ind_struct                        ddm_l4aps_cgeqos_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqosrdp_ind_struct                     ddm_l4aps_cgeqosrdp_ind_struct;
+
+typedef l4aps_l4bpdn_c5gqos_ind_struct                        ddm_l4aps_c5gqos_ind_struct;
+
+typedef l4aps_l4bpdn_c5gqosrdp_ind_struct                     ddm_l4aps_c5gqosrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgdel_ind_struct                         ddm_l4aps_cgdel_ind_struct;
+
+typedef l4aps_l4bpdn_cgauth_ind_struct                        ddm_l4aps_cgauth_ind_struct;
+
+typedef l4aps_l4bpdn_cladn_ind_struct                         ddm_l4aps_cladn_ind_struct;
+
+typedef l4aps_l4bpdn_cladnu_ind_struct                        ddm_l4aps_cladnu_ind_struct;
+
+typedef l4aps_l4bpdn_psbearer_ind_struct                      ddm_l4aps_psbearer_ind_struct;
+
+typedef l4aps_l4bpdn_egfb_ind_struct                          ddm_l4aps_egfb_ind_struct;
+
+typedef l4aps_l4bpdn_egdelpf_ind_struct                       ddm_l4aps_egdelpf_ind_struct;
+
+typedef l4aps_l4bpdn_eglnkpf_ind_struct                       ddm_l4aps_eglnkpf_ind_struct;
+
+typedef l4aps_l4bpdn_egpcordp_ind_struct                      ddm_l4aps_egpcordp_ind_struct;
+
+typedef l4aps_l4bpdn_egpco_ind_struct                         ddm_l4aps_egpco_ind_struct;
+
+typedef l4aps_l4bpdn_cgdata_cnf_struct                        ddm_l4aps_cgdata_cnf_struct;
+
+typedef l4aps_l4bpdn_egld_cnf_struct                          ddm_l4aps_egld_cnf_struct;
+
+typedef l4aps_l4bpdn_egev_ind_struct                          ddm_l4aps_egev_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_needed_ind_struct                      ddm_l4aps_lte_attach_needed_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_define_needed_ind_struct           ddm_l4aps_lte_attach_pdn_define_needed_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_activate_success_ind_struct        ddm_l4aps_lte_attach_pdn_activate_success_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_activate_failure_ind_struct        ddm_l4aps_lte_attach_pdn_activate_failure_ind_struct;
+
+typedef l4aps_l4bpdn_vzwapne_ind_struct                  ddm_l4aps_vzwapne_ind_struct;
+
+typedef l4aps_l4bpdn_vzwapnetmr_ind_struct               ddm_l4aps_vzwapnetmr_ind_struct;
+
+typedef l4aps_l4bpdn_pdn_modify_ind_struct               ddm_l4aps_pdn_modify_ind_struct;
+
+typedef l4aps_l4bpdn_eapnsync_ind_struct                 ddm_l4aps_eapnsync_ind_struct;
+
+typedef l4aps_l4bpdn_evzwapfcia_ind_struct               ddm_l4aps_evzwapfcia_ind_struct;
+
+typedef l4aps_l4bpdn_eggrntrspt_ind_struct               ddm_l4aps_eggrntrspt_ind_struct;
+
+typedef l4aps_l4bpdn_egpcap_test_mode_ind_struct         ddm_l4aps_egpcap_test_mode_ind_struct;
+
+typedef l4aps_l4bpdn_backoff_timer_status_ind_struct     ddm_l4aps_backoff_timer_status_ind_struct;
+
+typedef l4aps_tcm_update_cid_mapping_cnf_struct          ddm_l4aps_update_cid_mapping_cnf_struct;
+ 
+/*********************************************************************************************************
+ *     MSG: L4APS -> DDM: End                                                                           *
+ *********************************************************************************************************/
+#endif 
+
+#endif /* _DDM_L4APS_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/ddm_l4bnw_struct.h b/mcu/protocol/interface/l4misc/ddm_l4bnw_struct.h
new file mode 100644
index 0000000..f0ba1fc
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_l4bnw_struct.h
@@ -0,0 +1,112 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   ddm_l4bnw_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ ****************************************************************************/
+
+
+#ifndef  _DDM_L4BNW_STRUCT_H
+#define  _DDM_L4BNW_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l3_inc_enums.h"
+#include "l4bnw_public_struct.h"
+#include "ps_public_enum.h"
+#include "nas_sv_struct.h"
+
+//typedef struct {
+//    LOCAL_PARA_HDR
+
+    /** Only expects the below values from rat_enum: 
+     *    RAT_NONE     = 0,
+     *    RAT_GSM      = 1,
+     *    RAT_UMTS     = 2,
+     *    RAT_LTE      = 4,    
+     *    RAT_C2K      = 16,
+     *    RAT_1xRTT    = 32,
+     *    RAT_HRPD     = 64,
+     */
+//    rat_enum currently_attached_rat;
+//    l4bnw_public_attached_network_info_struct attached_network_info;
+//} ddm_l4bnw_attached_rat_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4_ps_type_config_enum  ps_type;
+    kal_bool    follow_on_request;      // TS 24.008 -FOR, make GMM prolong an established PS signalling connection
+} ddm_l4bnw_ps_type_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4_ps_config_result_enum   result;
+} ddm_l4bnw_ps_type_config_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool    is_reattach;
+} ddm_l4bnw_ps_reattach_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16    cause;
+} ddm_l4bnw_ims_pdn_rej_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    mmi_event_enum event_id;  //mmi_event_enum
+} ddm_l4bnw_ps_event_report_ind_struct; // same as l4crac_ps_event_report_ind_struct
+
+typedef nas_sv_emm_t3402_stop_ind_struct ddm_l4bnw_t3402_stop_ind_struct;
+
+#endif /* _DDM_L4BNW_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/ddm_l4c_struct.h b/mcu/protocol/interface/l4misc/ddm_l4c_struct.h
new file mode 100644
index 0000000..a33edfe
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_l4c_struct.h
@@ -0,0 +1,75 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2013
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+* Filename:
+* ------------
+*   ddm_l4c_struct.h
+*
+* Project:
+* ------------
+*   VMOLY
+*
+* Description:
+* ------------
+*   This file is intends for L4C/DDM interface
+*
+* Author:
+* -----------
+ * -------
+*****************************************************************************/
+
+#ifndef _DDM_L4C_STRUCT_H
+#define _DDM_L4C_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+
+/* MSG_ID_DDM_L4C_UE_USAGE_SETTING_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+} ddm_l4c_ue_usage_setting_req_struct;
+
+/* MSG_ID_DDM_L4C_UE_USAGE_SETTING_CNF */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ue_usage_setting_enum   ue_usage_setting;
+} ddm_l4c_ue_usage_setting_cnf_struct;
+
+#endif /* _DDM_L4C_STRUCT_H */
\ No newline at end of file
diff --git a/mcu/protocol/interface/l4misc/iwlan_l4c_struct.h b/mcu/protocol/interface/l4misc/iwlan_l4c_struct.h
new file mode 100644
index 0000000..76a02b1
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/iwlan_l4c_struct.h
@@ -0,0 +1,189 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   iwlan_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 06 29 2020 star.kuo
+ * [MOLY00536845] AT&T CDR-WiFi-1510 (MD part) Cell measurement 500 ms in MP6MP7 precheckin
+ * Cell measurement 500ms in NR15.R3.MP
+ *
+ * 08 26 2019 jani.manninen
+ * [MOLY00433041] [Gen97][EPSFB] IT related issues
+ * 	
+ * 	VMOLY.APOLLO.SQC - IMS 5G Voice Support Changes
+ *
+ * 08 14 2019 jani.manninen
+ * [MOLY00431762] [VONR] IWLAN Changes for 5G Voice Support - IWLAN
+ * 	
+ * 	VMOLY.V.5GVOICE.DEV - IWLAN (Interface / ATP / IWLAN / UT)
+ *
+ * 07 12 2019 star.kuo
+ * [MOLY00421387] [VMOLY][Submarine] Merge code protocol IWLAN interface
+ * Merge code protocol IWLAN interface
+ *
+ * 10 16 2018 star.kuo
+ * [MOLY00353278] Cellular signaling power level config with flexible number of thresholds
+ * Cellular signaling power level config with flexible number of thresholds
+ *
+ * 07 24 2018 star.kuo
+ * [MOLY00338861] Phase out IMS_CAP_IND from IWLAN to L4C
+ * Phase out ! IWLAN gives IMS_CAP_IND to L4C
+ *
+ * 06 19 2018 star.kuo
+ * [MOLY00329730] Sprint needs to monitor 1x (C2K) signaling
+ * LR13.R0 sync Sprint monitoring 1x (C2K) signaling
+ *
+ * 05 21 2018 hsin-jun.tang
+ * [MOLY00325423] [IWLAN] Debug enhancement - A. IWLAN log enhancement, B. KAL legacy API DHL new API
+ * [IWLAN] log enhancemnet - 
+ * 	A. apply DHL new log API
+ * 	B. log enhancement - primitives number to enum 
+ * 	change:
+ * 	D2RM, L4C, SDM, ATP
+ * 	no change:
+ * 	WO, L4BNW, SIM, L4BPWR, IMC
+ * 	
+ * 	ATP:
+ * 	1. ESRVSTATE
+ * 	2. ECNCFG
+ * 	3. EWIFIEN
+ * 	4. EWFCPREF
+ * 	5. EWIFIASC
+ * 	6. Remove EPLWTH, EGREG
+ * 	7. EIWLPING
+ * 	8. EIRAT
+ *
+ * 03 14 2018 star.kuo
+ * [MOLY00313309] [WW FT][ZION][MT6739][O1][MP2][SQC][VzW][Internal FT][Irvine][V-SMS-008] VoLTE Function - SMS cannot be sent when Advanced Calling is turned OFF
+ * Manual sync. with R3
+ * New ILM - L4 IMSCFG
+ *
+ * 03 14 2018 star.kuo
+ * [MOLY00313309] [WW FT][ZION][MT6739][O1][MP2][SQC][VzW][Internal FT][Irvine][V-SMS-008] VoLTE Function - SMS cannot be sent when Advanced Calling is turned OFF
+ * Send ILM to L4 for sync. with IMC IMSCFG.
+ * NWSEL needs LTE IMS infomation to attach LTE.
+ *
+ * 03 02 2018 mt.tsai
+ * [MOLY00309820] [IWLAN][L4] SSAC information for VoWiFi requirement "VzW_2016Feb_VZ_REQ_VoWiFi_37627"
+ * [IF][IWLAN][L4] SSAC information for VoWiFi requirement "VzW_2016Feb_VZ_REQ_VoWiFi_37627"
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _IWLAN_L4C_STRUCT_H
+#define  _IWLAN_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l4c_eval_struct.h"
+#include "custom_iwlan_config.h"
+
+#define  IWLAN_L4C_MAX_THRES  8
+
+typedef enum {
+    IWLAN_L4C_GSM_RSSI = 0,
+    IWLAN_L4C_UTRAN_RSCP,
+    IWLAN_L4C_UTRAN_ECNO,
+    IWLAN_L4C_LTE_RSRP,
+    IWLAN_L4C_LTE_RSRQ,
+    IWLAN_L4C_LTE_RSSNR,
+    IWLAN_L4C_1X_RSSI   = 6,
+    IWLAN_L4C_1X_ECIO,
+    IWLAN_L4C_EVDO_RSSI,
+    IWLAN_L4C_EVDO_ECIO = 9,
+    IWLAN_L4C_NR_SS_RSRP,
+    IWLAN_L4C_NR_SS_RSRQ,
+    IWLAN_L4C_NR_SS_SINR,
+    IWLAN_L4C_NR_CSI_RSRP,
+    IWLAN_L4C_NR_CSI_RSRQ,
+    IWLAN_L4C_NR_CSI_SINR
+} iwlan_l4c_sig_type_enum;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    iwlan_l4c_sig_type_enum signal_type;
+    kal_bool  mode;               /* 0: Disable, 1: Enabled */
+    kal_uint8 num_thresholds;     // the number of thresholds
+    kal_int32 array_threshold[IWLAN_L4C_MAX_THRES];
+    kal_int32 upper_threshold;    // Need to phase out
+    kal_int32 lower_threshold;    // Need to phase out
+    kal_uint16 timer_ms;
+    iwlan_l4c_sig_meas_timer_level timer_level;
+} iwlan_l4c_set_pwl_thrhd_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool result;
+} iwlan_l4c_set_pwl_thrhd_cnf_struct;
+
+typedef enum {
+    SIGNAL_STATUS_BAD = 0,
+    SIGNAL_STATUS_GOOD = 1,
+    SIGNAL_STATUS_FAIR = 2,
+    SIGNAL_STATUS_INVALID = 3,
+    SIGNAL_STATUS_CNT,
+} iwlan_l4c_signal_status_enum;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    iwlan_l4c_sig_type_enum signal_type;
+    iwlan_l4c_signal_status_enum signal_status;
+	kal_int32 signal_value;
+} l4c_iwlan_pwr_level_ind_struct;
+
+typedef l4c_eval_ims_sys_info_ind_struct iwlan_l4c_ims_sys_info_ind_struct;
+
+#endif /* _IWLAN_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l3_inc_enums.h b/mcu/protocol/interface/l4misc/l3_inc_enums.h
new file mode 100644
index 0000000..a56e4b0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l3_inc_enums.h
@@ -0,0 +1,5824 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l3_inc_enums.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ 
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+#ifndef _l3_INC_ENUMS_H
+#define _l3_INC_ENUMS_H
+
+//------------------------------ suggest Add ------------------------------
+//#include "kal_non_specific_general_types.h"
+
+//#include "ps_public_enum.h"
+
+//------------------------------ suggest Add ------------------------------
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+
+/* Temp solution fro MM Pre-integration */
+#include "irat_common_enums.h"
+#include "l3_inc_enums_public.h"
+#include "as_inter_core_enum.h"
+
+/* UAS/GAS <-> RATCM begin */
+#define MAX_RECOVERY_TIMER_NUM  23 /* Should in range 1 ~ 256 */
+#define RECOVERY_TIMER_PERIOD_MULTIPLIER  1
+
+/* move to cross core */
+//#ifdef __R7_EHPLMN__
+//#define MAX_NUM_HPLMN 4
+//#else
+//#define MAX_NUM_HPLMN 1
+//#endif
+
+
+#define MAX_NUM_EMC_FPLMN 32
+
+#define MAX_NUM_SNIFFER_PLMN (MAX_NUM_EQ_PLMN + MD1_MAX_NUM_HPLMN - 1)
+
+/* Consider Share network for signal_appear_ind */
+#define MAX_NUM_SIGNAL_APPEAR_PLMN 12
+
+#ifdef __SEARCH_ALL_EHPLMN_TOGETHER__
+/* __SEARCH_ALL_EHPLMN_TOGETHER__ is dependent on __R7_EHPLMN__, so MAX_NUM_HPLMN == 4 here. */
+#define MAX_NUM_SEARCH_PLMN (MAX_NUM_EQ_PLMN + MD1_MAX_NUM_HPLMN - 1)
+#else
+#define MAX_NUM_SEARCH_PLMN (MAX_NUM_EQ_PLMN + 1)
+#endif
+
+#define EXTRA_INFO_BITMASK_DSAC  (0x01)
+#define EXTRA_INFO_BITMASK_DATA_SPEED_SUPPORT  (0x02)
+#define EXTRA_INFO_BITMASK_PPACR (0x04)
+#define EXTRA_INFO_BITMASK_CSG   (0x08)
+#define EXTRA_INFO_BITMASK_BAND_INFO   (0x10)
+
+
+#define MAX_NUM_PLMN_PER_RAT  16
+/* <CDR-FEM-620> CSG Aware UICC Configuration�XEF-Operator CSG Lists
+The device shall support at least 35 CSG ID's */
+#ifdef UNIT_TEST
+#define MAX_CSG_NUM 10
+#else
+#define MAX_CSG_NUM 50
+#endif
+
+#define MAX_LEN_OF_IMSI_LOCI_GLOCI (9+11+14)
+
+#define PS_INVALID_PLMN_SEARCH_TRX_ID 0xff /* Ripple */
+
+/* UAS/GAS <-> RATCM end */
+
+/* L4C <-> ENAS/EAS begin */
+#define EARFCN_RANGE_NUM     3
+#define PCI_RANGE_NUM        3
+#define MAX_NUM_FPLMNS       255
+/* L4C <-> ENAS/EAS end */
+
+/* ERAC <-> ENAS/EAS begin */
+#define SIZE_IMSI               9
+#define SIZE_IMEI               9
+#define SIZE_EPSLOCI            18
+#define SIZE_EPSNSC             54
+#define SIZE_DRX_DATA           2
+#define MAX_SUPPORTED_CODEC_LEN 8
+/* ERAC <-> ENAS/EAS end */
+
+/* VGRAC <-> VGMM begin */
+#define SIZE_OF_IMEISV          9
+
+#define LEN_OF_NSSAI_LIST_LONG                144 // Space for 16 S-NSSAI
+#define LEN_OF_NSSAI_LIST_SHORT               72 // Space for 8 S-NSSAI
+
+#define VGS_NSSAI_DEFAULT_CONFIGURED        0x01
+#define VGS_NSSAI_REJECTED                  0x02
+#define VGS_NSSAI_CONFIGURED                0x04
+#define VGS_NSSAI_ALLOWED                   0x08
+#define VGS_NSSAI_PREFERRED                 0x10
+
+#define NUM_NSSAI_PLMN_IDS                    16
+
+#define VGS_CLEAR_PREFERRED_NSSAI_3GPP      0x01
+#define VGS_CLEAR_PREFERRED_NSSAI_NON3GPP   0x02
+
+/* VGRAC <-> VGMM end */
+
+#define EMM_T3402_DEFAULT_VAL   720
+
+/* move to cross core */
+//#define NWSEL_MAX_NUM_PLMNS     (32)
+
+//0xAE(ActivE)
+#define NWSEL_TRX_ID_TO_SET_ACTIVE_RAT 0xAE
+
+/* GMSS <-> NWSEL */
+#define MAX_MCC_SEARCH_RAT_NUM 3
+
+/* NWSEL -> xAS */
+#define MAX_NUM_OF_MCC 12
+/* PAM <-> NWSEL */
+#define MAX_THROTTLING_APN_BLOCK_NUM    32
+
+/*NWSEL/RAC <-> EMM/GMM/MM*/
+#define DOS_ENHANCEMENT_MAX_RETRY_VALUE  3
+
+/* VGMM <-> VGSM/LPP */
+#define MAX_NUM_OF_OPT_IE_MULTI 4
+#define MAX_LEN_OF_OPT_IE_MULTI 260
+
+/* IEI used in MULTIPLE PAYLOAD */
+#define VGMM_REQ_TYPE_IEI                        0x08
+#define VGMM_PDU_SESSION_ID_IEI                  0x12
+#define VGMM_S_NSSAI_IEI                         0x22
+#define VGMM_ADDITIONAL_INFORMATION_IEI          0x24
+#define VGMM_DNN_IEI                             0x25
+#define VGMM_T_BACK_OFF_IEI                      0x37
+#define VGMM_CAUSE_IEI                           0x58
+#define VGMM_OLD_PDU_SESSION_ID_IEI              0x59
+
+/* Interworking Definitions */
+#define S1_N1_NAS_TRANSPARENT_CONTAINER_IE_LENGTH   8
+
+typedef enum
+{
+    CH_MODE_NONE = 0xff,
+    SIGNALLING_ONLY = 0x00,
+    SPEECH_FULL_OR_HALF_VER_1 = 0x01,
+    SPEECH_FULL_OR_HALF_VER_1_VAMOS = 0xc1,   /* SPEECH Ver3 in VAMOS */
+    SPEECH_FULL_OR_HALF_VER_2 = 0x21,
+    SPEECH_FULL_OR_HALF_VER_2_VAMOS = 0xc2,   /* SPEECH Ver3 in VAMOS */
+    SPEECH_FULL_OR_HALF_VER_3 = 0x41, /* is also referred as AMR */
+    SPEECH_FULL_OR_HALF_VER_3_VAMOS = 0xc3,   /* SPEECH Ver3 in VAMOS */
+    /*ZY: add for AMR-WB*/
+    SPEECH_FULL_OR_HALF_VER_4 = 0x81, /* OFR AMR-WB or OHR AMR-WB */
+    SPEECH_FULL_OR_HALF_VER_5 = 0x82, /* FR AMR-WB */
+    SPEECH_FULL_OR_HALF_VER_5_VAMOS = 0xc5,   /* SPEECH Ver5 in VAMOS */
+
+    DATA_43_5_DL_PLUS_14_5_UL = 0x61,
+    DATA_29_0_DL_PLUS_14_5_UL = 0x62,
+    DATA_43_5_DL_PLUS_29_0_UL = 0x64,
+    DATA_14_5_DL_PLUS_43_5_UL = 0x67,
+    DATA_14_5_DL_PLUS_29_0_UL = 0x65,
+    DATA_29_0_DL_PLUS_43_5_UL = 0x66,
+    DATA_43_5_RADIO_INTF_RATE = 0x27,
+    DATA_32_0_RADIO_INTF_RATE = 0x63,
+    DATA_29_0_RADIO_INTF_RATE = 0x43,
+    DATA_14_5_RADIO_INTF_RATE = 0x0f,
+    DATA_12_0_RADIO_INTF_RATE = 0x03,
+    DATA_06_0_RADIO_INTF_RATE = 0x0b,
+    DATA_03_6_RADIO_INTF_RATE = 0x13,
+
+/*
+ *  mtk02374 20110801 setting of channel mode in SLCE is as following table
+ * zwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{
+ * x                                                   CS Over HSPA                                                           x
+ * uwwwwwwwwwwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt
+ * x        YES           x                                                 NO                                               x
+ * uwwwwwwwwwwwqwwwwswwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt
+ * x                      x        x      x                                  TTI                                           x
+ * x                      uwwwwqwwwqwwwwwwwwwwwwwwswwwwwwwwwwwwwwswwwwwwwwwwt
+ * x                      x        x      x         10 or 20           x              40            x          80        x
+ * x        (R8)          uwwwwqwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwqwwwwwwwwwwt
+ * x UMTS_RAB_HSPA_SPEECH x        x<500  x      UMTS_RAB_SPEECH       xUMTS_RAB_CONVERSATIONAL_DATAx                    x
+ * x                      x        uwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwt                    x
+ * x                      x Max RLCx 576  xUMTS_RAB_CONVERSATIONAL_DATAx  UMTS_RAB_STREAMING_DATA   x                    x
+ * x                      x  size  uwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwtUMTS_RAB_UNSPECIFIEDx
+ * x                      x        x 640  xUMTS_RAB_CONVERSATIONAL_DATAx    UMTS_RAB_UNSPECIFIED    x                    x
+ * x                      x        uwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwt                    x
+ * x                      x        xothersx    UMTS_RAB_UNSPECIFIED    xUMTS_RAB_CONVERSATIONAL_DATAx                    x
+ * |wwwwwwwwwwwrwwwwrwwwrwwwwwwwwwwwwwwrwwwwwwwwwwwwwwrwwwwwwwwww}
+ */
+    UMTS_RAB_SPEECH          = 0x70,
+    UMTS_RAB_HSPA_SPEECH,
+    UMTS_RAB_CONVERSATIONAL_DATA,       /* Just for reference, it might be not precise */
+    UMTS_RAB_STREAMING_DATA,            /* Just for reference, it might be not precise */
+    UMTS_RAB_NON_DECIDED,
+    UMTS_RAB_UNSPECIFIED= 0xff
+} channel_mode_enum;
+
+#if 0
+#ifdef __APP_SECONDARY_PDP_SUPPORT__ //mtk00714 streaming
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif
+
+typedef enum {
+    SUBSCRIBED_PEAK_THROUGHPUT_CLASS = 0,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_1000_OCTET_PER_SEC = 1,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_2000_OCTET_PER_SEC = 2,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_4000_OCTET_PER_SEC = 3,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_8000_OCTET_PER_SEC = 4,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_16000_OCTET_PER_SEC = 5,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_32000_OCTET_PER_SEC = 6,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_64000_OCTET_PER_SEC = 7,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_128000_OCTET_PER_SEC = 8,
+    SM_QOS_PEAK_THROUGHPUT_UP_TO_256000_OCTET_PER_SEC = 9,
+    SM_QOS_RESERVED_PEAK_THROUGHPUT_CLASS = 15
+} sm_readable_peak_throughput_class_enum;
+
+typedef enum {
+    RADIO_PRIORITY_1 = 1,
+    RADIO_PRIORITY_2,
+    RADIO_PRIORITY_3,
+    RADIO_PRIORITY_4,
+    RADIO_PRIORITY_NOT_CHECK
+} rp_enum;
+
+typedef enum {
+    RP_1,
+    RP_2,
+    RP_3,
+    RP_4,
+    RP_INVALID
+} radio_priority;
+
+typedef enum {
+    RLC_SUSPEND,
+    RLC_RESUME,
+    RLC_FAILED,
+    RLC_RECEIVE_NOT_READY,
+    RLC_RECEIVE_READY
+} grr_cause_enum;
+
+typedef enum {
+    SUBSCRIBED_RELIABILITY_CLASS = 0,
+    SM_QOS_UNUSED_RELIABILITY_CLASS = 1,
+    SM_QOS_RELIABILITY_CLASS_2_GTP_UNACK_LLC_ACK_RLC_ACK_PROTECTED_DATA = 2,
+    SM_QOS_RELIABILITY_CLASS_3_GTP_UNACK_LLC_UNACK_RLC_ACK_PROTECTED_DATA = 3,
+    SM_QOS_RELIABILITY_CLASS_4_GTP_UNACK_LLC_UNACK_RLC_UNACK_PROTECTED_DATA = 4,
+    SM_QOS_RELIABILITY_CLASS_5_GTP_UNACK_LLC_UNACK_RLC_UNACK_UNPROTECTED_DATA = 5,
+    SM_QOS_RELIABILITY_CLASS_7_RESERVED = 7
+} sm_readable_reliability_class_enum;
+
+typedef enum {
+    SUBSCRIBED_PRECEDENCE_CLASS = 0,
+    SM_QOS_PRECEDENCE_CLASS1_HIGH_PRIORITY = 1,
+    SM_QOS_PRECEDENCE_CLASS2_NORMAL_PRIORITY = 2,
+    SM_QOS_PRECEDENCE_CLASS3_LOW_PRIORITY = 3,
+    SM_QOS_RESERVED_PRECEDENCE_CLASS = 7
+} sm_readable_precedence_class_enum;
+
+typedef enum {
+    SUBSCRIBED_MEAN_THROUGHPUT_ = 0,
+    SM_QOS_MEAN_THROUGHPUT_100_OCTET_PER_HOUR = 1,
+    SM_QOS_MEAN_THROUGHPUT_200_OCTET_PER_HOUR = 2,
+    SM_QOS_MEAN_THROUGHPUT_500_OCTET_PER_HOUR = 3,
+    SM_QOS_MEAN_THROUGHPUT_1000_OCTET_PER_HOUR = 4,
+    SM_QOS_MEAN_THROUGHPUT_2000_OCTET_PER_HOUR = 5,
+    SM_QOS_MEAN_THROUGHPUT_5000_OCTET_PER_HOUR = 6,
+    SM_QOS_MEAN_THROUGHPUT_10000_OCTET_PER_HOUR = 7,
+    SM_QOS_MEAN_THROUGHPUT_20000_OCTET_PER_HOUR = 8,
+    SM_QOS_MEAN_THROUGHPUT_50000_OCTET_PER_HOUR = 9,
+    SM_QOS_MEAN_THROUGHPUT_100000_OCTET_PER_HOUR = 10,
+    SM_QOS_MEAN_THROUGHPUT_200000_OCTET_PER_HOUR = 11,
+    SM_QOS_MEAN_THROUGHPUT_500000_OCTET_PER_HOUR = 12,
+    SM_QOS_MEAN_THROUGHPUT_1000000_OCTET_PER_HOUR = 13,
+    SM_QOS_MEAN_THROUGHPUT_2000000_OCTET_PER_HOUR = 14,
+    SM_QOS_MEAN_THROUGHPUT_5000000_OCTET_PER_HOUR = 15,
+    SM_QOS_MEAN_THROUGHPUT_10000000_OCTET_PER_HOUR = 16,
+    SM_QOS_MEAN_THROUGHPUT_20000000_OCTET_PER_HOUR = 17,
+    SM_QOS_MEAN_THROUGHPUT_50000000_OCTET_PER_HOUR = 18,
+    SM_QOS_RESERVEDMEAN_THROUGHPUT = 30,
+    SM_QOS_MEAN_THROUGHPUT_BEST_EFFORT = 31
+} sm_readable_mean_throughput_enum;
+
+/* SM RATDM common enum begin */
+typedef enum{
+    RATDM_TRAFFIC_CLASS_CONVERSATIONAL = 1,
+    RATDM_TRAFFIC_CLASS_STREAMING = 2,
+    RATDM_TRAFFIC_CLASS_INTERACTIVE = 3,
+    RATDM_TRAFFIC_CLASS_BACKGROUND = 4,
+    RATDM_TRAFFIC_CLASS_UNKNOWN = 0xFF
+}ratdm_traffic_class_enum;
+/* SM RATDM common enum end */
+
+typedef enum {
+    SUBSCRIBED_TRAFFIC_CLASS_ = 0,
+    SM_QOS_CONVERSATIONAL_CLASS = 1,
+    SM_QOS_STREAMING_CLASS = 2,
+    SM_QOS_INTERACTIVE_CLASS = 3,
+    SM_QOS_BACKGROUND_CLASS = 4,
+    SM_QOS_RESERVED_TRAFFIC_CLASS = 7
+} sm_readable_traffic_class_enum;
+
+typedef enum {
+    SUBSCRIBED_DELIVERY_ORDER_ = 0,
+    SM_QOS_DELIVERY_ORDER_YES = 1,
+    SM_QOS_DELIVERY_ORDER_NO = 2,
+    SM_QOS_RESERVED_DELIVERY_ORDER = 3
+} sm_readable_delivery_order_enum;
+
+typedef enum {
+    SUBSCRIBED_DELIVERY_OF_ERRONEOUS_SDU= 0,
+    SM_QOS_DELIVERY_OF_ERRONEOUS_SDU_NO_DETECT = 1,
+    SM_QOS_DELIVERY_OF_ERRONEOUS_SDU_YES = 2,
+    SM_QOS_DELIVERY_OF_ERRONEOUS_SDU_NO = 3,
+    SM_QOS_RESERVED_DELIVERY_OF_ERRONEOUS_SDU = 7
+} sm_readable_delivery_of_err_sdu_enum;
+
+typedef enum {
+    SUBSCRIBED_BIT_ERROR_RATE_ = 0,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_5_10_2 = 1,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_2 = 2,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_5_10_3 = 3,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_4_10_3 = 4,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_3 = 5,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_4 = 6,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_5 = 7,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_6 = 8,
+    SM_QOS_RESIBUAL_BIT_ERROR_RATE_6_10_8 = 9,
+    SM_QOS_RESERVED_RESIBUAL_BIT_ERROR_RATE = 15
+} sm_readable_residual_bit_error_rate_enum;
+
+typedef enum {
+    SUBSCRIBED_SDU_ERR_RATIO_ = 0,
+    SM_QOS_SDU_ERR_RATIO_1_10_2 = 1,
+    SM_QOS_SDU_ERR_RATIO_7_10_3 = 2,
+    SM_QOS_SDU_ERR_RATIO_1_10_3 = 3,
+    SM_QOS_SDU_ERR_RATIO_1_10_4 = 4,
+    SM_QOS_SDU_ERR_RATIO_1_10_5 = 5,
+    SM_QOS_SDU_ERR_RATIO_1_10_6= 6,
+    SM_QOS_SDU_ERR_RATIO_1_10_1 = 7,
+    SM_QOS_RESERVED_SDU_ERR_RATIO = 15
+} sm_readable_sdu_err_ratio_enum;
+
+typedef enum {
+    SUBSCRIBED_TRAFFIC_HANDLING_PRIORITY = 0,
+    SM_QOS_TRAFFIC_HANDLING_PRIORITY_1 = 1,
+    SM_QOS_TRAFFIC_HANDLING_PRIORITY_2 = 2,
+    SM_QOS_TRAFFIC_HANDLING_PRIORITY_3 = 3
+} sm_readable_traffic_hndl_priority_enum;
+
+//#ifdef __REL6__ // increase QoS Length from 11 to 12
+typedef enum {
+    SM_NOT_OPTIMISED_FOR_SIGNALING_TRAFFIC= 0,
+    SM_OPTIMISED_FOR_SIGNALING_TRAFFIC = 1
+} signaling_indication_enum;
+
+typedef enum {
+    SM_QOS_SIGNALING_INDICATION_NOT_OPTIMISED_FOR_SIGNALING_TRAFFIC= 0,
+    SM_QOS_SIGNALING_INDICATION_OPTIMISED_FOR_SIGNALING_TRAFFIC = 1
+} sm_readable_signaling_indication_enum;
+
+typedef enum {
+    SM_UNKNOWN_SOURCE_STATISTICS_DESCRIPTOR= 0,
+    SM_SPEECH_SOURCE_STATISTICS_DESCRIPTOR = 1
+} source_statistics_descriptor_enum;
+
+typedef enum {
+    SM_QOS_SOURCE_STATISTICS_DESCRIPTOR_UNKNOWN_SOURCE_STATISTICS_DESCRIPTOR= 0,
+    SM_QOS_SOURCE_STATISTICS_DESCRIPTOR_SPEECH_SOURCE_STATISTICS_DESCRIPTOR = 1
+} sm_readable_source_statistics_descriptor_enum;
+//#endif // ~ __REL6__ // increase QoS Length from 11 to 12
+
+typedef enum
+{
+    MANUAL_RESELECTION = 0,
+    AUTO_RESELECTION   = 1
+} plmn_reselection_enum;
+
+/*20130716, Bowu: MMDC B3&B39 Co_existing issue*/
+
+typedef enum
+{
+    PLMN_STATUS_NONE      = 0,
+    PLMN_STATUS_AVAILABLE = 1,
+    PLMN_STATUS_CURRENT   = 2,
+    PLMN_STATUS_FORBIDDEN = 3
+} plmn_status_enum;
+
+typedef enum{
+    GAS_EMERGENCY_CALL        = 0,
+    GAS_REGISTRATION          = 1,
+    GAS_DETACH                = 2,
+    GAS_LOW_PRIORITY_SIG      = 3,
+    GAS_CALL_RE_ESTABLISHMENT = 4,
+    GAS_SPEECH_CALL           = 5,
+    GAS_DATA_CALL             = 6,
+    GAS_PAGE_RESP             = 7,
+    GAS_SS_DATA               = 8
+}gas_est_cause_enum;
+
+
+typedef enum{
+    CSFB_SESSION_START   = 0,
+    CSFB_SESSION_END     = 1
+}cs_status_enum;
+
+typedef enum{
+    PLMN_LOSS_NORMAL            = 0,
+    PLMN_LOSS_IRRDT_FAIL        = 1
+}plmn_loss_reason_enum;
+
+/* Used for giving paging cause to MM and estab. cause to AS. Also
+ * used upto application */
+typedef enum
+{
+    ORIG_CONVER_CALL            = 0,
+    ORIG_STREAMING_CALL         = 1,
+    ORIG_INTERACTIVE_CALL       = 2,
+    ORIG_BACKGROUND_CALL        = 3,
+    ORIG_SUBSCRIBED_CALL        = 4,
+    TERM_CONVER_CALL            = 5,
+    TERM_STREAMING_CALL         = 6,
+    TERM_INTERACTIVE_CALL       = 7,
+    TERM_BACKGROUND_CALL        = 8,
+    EMERGENCY_CALL              = 9,
+    INTER_RAT_CELL_RESELECTION  = 10,
+    INTER_RAT_CELL_CHANGE_ORDER = 11,
+    REGISTRATE                  = 12,
+    DETACH                      = 13,
+    HIGH_PRIORITY_SIG           = 14,
+    LOW_PRIORITY_SIG            = 15,
+    CALL_RE_ESTABLISHMENT       = 16,
+    SPEECH_CALL                 = 17,
+    DATA_CALL                   = 18,
+    LOC_UPDATE                  = 19,
+    SMS_DATA                    = 20,
+    TCHF_OR_SDCCH_NEEDED        = 21,
+    PAGE_RESP                   = 22,
+    MEAS_REPORT                 = 23,
+    IMSI_DETACH_PROC            = 24,
+    MM_PROC                     = 25,
+    SS_DATA                     = 26,
+    VIDEO_CALL                  = 27 /* __REL6__ */
+} est_cause_enum;
+
+/*
+ *  the mm_cause_enum includes
+ *      1. MM, GMM, EMM causes
+ *      2. MTK defined internal causes
+ */
+typedef enum {
+    CAUSE_NONE                     =     0x00,
+    IMSI_UNKNOWN_IN_HLR            =     0x02,
+    ILLEGAL_MS                     =     0x03,
+    IMSI_UNKNOWN_IN_VLR            =     0x04,
+    IMEI_NOT_ACCEPTED              =     0x05,
+    ILLEGAL_ME                     =     0x06,
+    GPRS_NOT_ALLOWED               =     0x07,
+    GPRS_NON_GPRS_NOT_ALLOWED      =     0x08,
+    MS_ID_NOT_DERIVED_BY_NW        =     0x09,
+    IMPLICIT_DETACH                =     0x0a,
+    PLMN_NOT_ALLOWED               =     0x0b,
+    LOCATION_AREA_NOT_ALLOWED      =     0x0c,
+    ROAMING_AREA_NOT_ALLOWED       =     0x0d,
+    GPRS_NOT_ALLOWED_IN_PLMN       =     0x0e,
+    NO_SUITABLE_CELLS_IN_LA        =     0x0f,
+    MSC_TEMP_NOT_REACHABLE         =     0x10,
+    NETWORK_FAILURE                =     0x11,
+    CS_DOMAIN_NOT_AVAILABLE        =     0X12,  /* LTE specific */
+    ESM_FAILURE                    =     0x13,  /* LTE specific */
+    MAC_FAILURE                    =     0x14,
+    SYNC_FAILURE                   =     0x15,
+    CONGESTION                     =     0x16,
+    GSM_AUTHEN_UNACCEPTABLE        =     0x17,
+    UE_SECURITY_CAPA_MISMATCH      =     0x17,
+    SECURITY_REJECTED_UNSPECIFIED  =     0x18,  /* LTE specific */
+    NOT_AUTHORIZED_FOR_THIS_CSG    =     0x19,
+    NON_EPS_AUTHEN_UNACCEPTABLE    =     0x1a,  /* LTE specific */
+    N1_MODE_NOT_ALLOWED            =     0x1b,  /* NR specific */
+    RESTRICTED_SERVICE_AREA        =     0x1c,  /* NR specific */
+    SERV_OPTION_NOT_SUPPORTED      =     0x20,
+    REQ_SERV_OPTION_NOT_SUBSCRIBED =     0x21,
+    SERV_OPTION_TEMP_OUT_OF_ORDER  =     0x22,
+    REQ_SERV_OPTION_NOT_AUTH_IN_PLMN  =  0x23,
+    CALL_CANNOT_BE_IDENTIFIED      =     0x26,
+    CS_DOMAIN_TEMP_NOT_AVAILABLE   =     0x27,  /* LTE specific */
+    NO_PDP_CONTEXT_ACTIVATED       =     0x28,
+    SEVERE_NETWORK_FAILURE         =     0x2A,  /* LTE specific */
+    LADN_NOT_AVAILABLE             =     0x2b,
+    MAX_NUM_PDU_SESSIONS_REACHED   =     0x41,
+
+    RETRY_UPON_ENTRY_INTO_NEWCELL_MIN =  0x30,  /* 30..3f */
+    RETRY_UPON_ENTRY_INTO_NEWCELL_MAX =  0x3f,
+
+    INSUFF_RESOURCES_SLICE_AND_DNN 	  = 0x43,
+    INSUFF_RESOURCES_SLICE         	  = 0x45,
+    NGKSI_ALREADY_IN_USE              = 0x47,
+    N3GPP_ACCESS_TO_5GCN_NOT_ALLOWED  = 0x48,
+    SERVING_NETWORK_NOT_AUTHORIZED    =  0x49,  /* NR specific */
+    PAYLOAD_NOT_FORWARDED             = 0x5a,
+    DNN_NOT_SUP_SLICE                 = 0x5b,
+    INSUFF_UP_RES_FOR_PDU_SESSION     = 0x5c,
+
+    SEMANTICALLY_INCORRECT_MSG        =  0x5f,
+    INVALID_MM_MAND_INFO              =  0x60,
+    MSG_TYPE_NON_EXISTENT             =  0x61,
+    MSG_TYPE_NOT_IMPLEMENTED          =  0x61,
+    MSG_TYPE_INCOMPAT_WITH_PROTO_STATE = 0x62,
+    IE_NOT_IMPLEMENTED                 = 0x63,
+    CONDITIONAL_MM_IE_ERROR            = 0x64,
+    MSG_NOT_COMPAT_WITH_PROTO_STATE    = 0x65,  /* 65..6f */
+    PROTO_ERROR_UNSPECIFIED            = 0x6f,
+    /* Incase if any more standard cause values are to be added then
+     * the cause having the greatest value should be placed just before
+     * the internal cause values.
+     */
+    /* The following cause are internal to Tcm and Gmm */
+    FORBIDDEN_PLMN = 0x70,
+    MODEM_INTERNAL_CAUSE_START = FORBIDDEN_PLMN, /* 0x70 */
+    ACCESS_CLASS_BARRED,
+    NO_COVERAGE,
+    GPRS_SERV_NOT_ALLOWED,
+    TIMER_EXPIRY,
+    SIM_INSERTED,
+    SIM_REMOVED,
+    SIM_ABSENT,
+    SIM_INVALID_FOR_PS,
+    SIM_INVALID_FOR_CS,
+    SIM_INVALID_FOR_CS_AND_PS,
+    LOW_LAYER_FAIL,
+    MM_CONN_IN_PROGRESS, /* 0x7c */
+    MM_NOT_UPDATED,
+    RR_CONN_ESTAB_FAILURE,
+    RRC_CONN_ABORT, /* 0x7f */
+    MM_CONN_FAILURE, /* 0x80 */
+    MM_EMERGENCY_NOT_ALLOWED,
+    NO_GPRS_COVERAGE,
+    MM_ABNORMAL_LU,
+    MM_ABNORMAL_LU_LESS_THEN_4_TIMES,
+    /* 24.008 CR# 1791 Start */
+    MM_ABNORMAL_LU_CONGESSION_CONTROL,
+    /* 24.008 CR# 1791 End */
+    MM_DO_NOT_NEED_PLMN_SEARCH,
+    MM_SAME_LAI_IMSI_ATTACHING, //erica tier one
+    MM_RECOVERY_SEARCH, //mtk02475
+    SEARCH_FINISHED,
+    MM_WAIT_FOR_RELEASE,
+    MM_REJ_CUZ_RR_IN_SUSPEND_MODE, /* for ATTACH_REJ *///0x8a
+    MM_IDLE_OOS_IND,
+    GPRS_IN_LIMITED_SERVICE, /* 0x8c */
+    AUTH_FAIL,
+    GMM_T3346_RUNNING,
+    MM_ABNORMAL_LU_LESS_THEN_4_TIMES_AFR_NEEDED, /* ALPS01811710: When LU Abnormal during CSFB happened, notify RAC special cause to hide the LU abnormal from UI. */
+    SIM_INVALID_FOR_LTE_BECAUSE_NON_USIM_INSERTED,
+    MM_ABNORMAL_LU_REJ17_MANUAL_MODE,
+    GMM_IN_VIRTUAL_MODE,
+    NWSEL_IVSR_START,
+    PLMN_LOSS,    /* For report PLMN_LOSS when control by GMSS */
+    ABORTED_BY_UPPER_LAYER,
+    MM_IN_VIRTUAL_MODE,
+    MM_CAUSE_ENUM_END = MM_IN_VIRTUAL_MODE
+}mm_cause_enum;
+
+typedef enum
+{
+    MM_CAUSE_SOURCE_OTHER                     =0,
+    MM_CAUSE_SOURCE_LU_REJECT                 =1,
+    MM_CAUSE_SOURCE_CMSERVICE_REJECT          =2,
+    MM_CAUSE_SOURCE_ABORT                     =3,
+    MM_CAUSE_SOURCE_ATTACH_REJECT             =4,
+    MM_CAUSE_SOURCE_COMBINED_ATTACH_NON_GPRS  =5,
+    MM_CAUSE_SOURCE_RAU_REJECT                =6,
+    MM_CAUSE_SOURCE_COMBINED_RAU_NON_GPRS     =7,
+    MM_CAUSE_SOURCE_SERVICE_REJECT            =8,
+    MM_CAUSE_SOURCE_NW_DETACH                 =9,
+}mm_cause_source_enum;
+
+
+typedef enum
+{
+    isABSENT = 0,
+    isPRESENT = 1
+}isPresent_enum;
+
+typedef enum
+{
+    is_absent = 0,
+    is_present = 1
+}is_present_enum;
+
+typedef enum
+{
+    CS_SERVICE = 0,
+    PS_SERVICE,
+    CS_PS_SERVICE,
+    NONE_SERVICE
+}mm_user_regn_type_enum;
+
+typedef enum
+{
+    CS_SERVICE_DETACH = 0,
+    PS_SERVICE_DETACH,
+    CS_PS_SERVICE_DETACH
+}mm_user_srv_detach_enum;
+
+typedef enum
+{
+   MMI_SEARCH_ANY,
+   MMI_SEARCH_NORMAL,
+   MMI_SEARCH_NONE
+} mm_user_search_type_enum;
+
+typedef enum
+{
+   SEARCH_CAUSE_NONE=0,
+   SEARCH_CAUSE_UNBLOCK_ILLEGAL_ME, /*the search is triggered by illeagl sim unblock*/
+   SEARCH_CAUSE_COPS_AUTO
+} mm_user_search_cause_enum;
+
+typedef enum {
+  STORED_AND_FULL_BAND,
+  STORED_ONLY,
+  FULL_BAND,
+} scan_type_enum ;
+
+typedef enum {
+  FINISHED,
+  NOT_FINISHED,
+} fullband_result_enum ;
+
+typedef enum {
+  NOT_USED_SEARCH_PERIOD, // not switch
+  SHORT_SEARCH_PERIOD, // ECC or MCC search
+  NORMAL_SEARCH_PERIOD, // other fullband
+} search_period_enum;
+
+typedef enum {
+  CALL_STATUS_START, // start of user view call
+  CALL_STATUS_STOP // end of user view call
+} call_status_enum;
+
+typedef enum {
+  SMS_STATUS_START, // start of SMS session
+  SMS_STATUS_STOP, // end of SMS session
+  SMS_STATUS_NUM,
+} sms_status_enum;
+
+typedef enum {
+  IMCSMS_STATUS_START, // start of SMS session
+  IMCSMS_STATUS_STOP, // end of SMS session
+  IMCSMS_STATUS_NUM,
+} imcsms_status_enum;
+
+typedef enum {
+    SMS_MO = 0,
+    SMS_MT
+}sms_direction_enum;
+
+typedef enum {
+  CALL_TYPE_INDICATION_NORMAL, // the call is normal call
+  CALL_TYPE_INDICATION_EMERGENCY, // the call is emergency call
+  CALL_TYPE_INDICATION_NULL // NULL
+} call_type_indication_enum;
+
+typedef enum {
+  NO_ERROR_PLMN_LIST_RESULT = 0,
+  CANNOT_PROCESS_PLMN_LIST_RESULT = 1,
+} plmn_list_result_enum ;
+
+typedef enum {
+    AS_PLMN_LIST_RESULT_SUCCESS,
+    AS_PLMN_LIST_RESULT_FAILURE
+} as_plmn_list_result_enum;
+
+typedef enum {
+  NO_ACTION_FOR_PLMN_SEARCH = 0,
+  NO_ACTION_FOR_PLMN_LIST = 1
+} no_action_cause_enum;
+
+typedef enum
+{
+   CAPABILITY_DISABLED,
+   CAPABILITY_ENABLED,
+   CAPABILITY_INVALID, // For initialization
+} capability_switch_enum;
+
+typedef enum
+{
+   NAS_SV_CAP_GSM_FDD,
+   NAS_SV_CAP_UMTS,
+#ifdef __UMTS_TDD128_MODE__
+   NAS_SV_CAP_GSM_TDD,
+   NAS_SV_CAP_TDSCDMA,
+#endif
+   NAS_SV_CAP_LTE,
+   NAS_SV_CAP_NR,
+   NAS_SV_CAP_TOTAL,
+} nas_sv_capability_rat_enum;
+
+typedef enum
+{
+   NAS_SV_CAP_UPDATE_PROC_SYS_INFO,
+   NAS_SV_CAP_UPDATE_PROC_ATTACH,
+} nas_sv_capability_update_procedure_type_enum;
+
+typedef enum
+{
+    NAS_SV_LOCAL_REL_WAIT_TO_IDLE = 0,
+    NAS_SV_LOCAL_REL_FORCE_RELEASE = 0x1,
+    NAS_SV_LOCAL_REL_ENALBE_S1_N1_MODE = 0x2,
+    NAS_SV_LOCAL_REL_USER_TRIGGER = 0x4,
+} nas_sv_local_release_cause_enum;
+
+typedef enum {
+    NWSEL_IMS_NORMAL_SERVICE = 0, /* NAS registration success */
+    NWSEL_IMS_LIMITED_SERVICE,
+    NWSEL_IMS_NO_SERVICE   /* plmn loss/idle oos happen */
+} nwsel_ims_service_enum;
+
+typedef enum
+{
+    NWSEL_PLMN_LIST_INVALID = 0,
+    NWSEL_PLMN_LIST_AVAILABLE = 1,
+    NWSEL_PLMN_LIST_CURRENT = 2,
+    NWSEL_PLMN_LIST_FORBIDDEN = 3
+}nwsel_plmn_list_status_enum;
+
+typedef enum
+{
+    NWSEL_INTERNATIONAL_ROAMING_NOT_ALLOW = 1,
+    NWSEL_NATIONAL_ROAMING_NOT_ALLOW = 2,
+    NWSEL_FPLMN_NOT_ALLOW = 3,
+    NWSEL_NON_EXISING_NOT_ALLOW = 4,
+    NWSEL_FAILURE_NOT_ALLOW = 5,
+    NWSEL_CUSTOMER_FPLMN_NOT_ALLOW = 6,
+    NWSEL_CUSTOMER_TEST_MODE_FPLMN_NOT_ALLOW = 7,
+    NWSEL_SPRINT_INT_LTE_ROAMING_NOT_ALLOW = 8,
+    NWSEL_LTE_ROAMING_NOT_ALLOW = 9,
+    NWSEL_NR_ROAMING_NOT_ALLOW = 10,
+    NWSEL_MCC_NOT_IN_ALLOWED_MCC_LIST = 11
+}nwsel_plmn_not_allow_reason_enum;
+
+/* Define the search action after receiving specific reject cause in AUTO/MANUAL mode*/
+typedef enum
+{
+    NWSEL_SEARCH_ACTION_DEFAULT,
+
+    /* Reject 13 */
+    NWSEL_AUTO_SEARCH_NEXT_PLMN_RAT_AFTER_REJ13,
+    NWSEL_AUTO_SEARCH_NEXT_PLMN_AFTER_REJ13,
+    NWSEL_AUTO_SEARCH_CURR_PLMN_RAT_AFTER_REJ13,
+    NWSEL_MANUAL_SEARCH_NEXT_PLMN_RAT_AFTER_REJ13,
+    NWSEL_MANUAL_SEARCH_NEXT_PLMN_AFTER_REJ13,
+    NWSEL_MANUAL_SEARCH_CURR_PLMN_RAT_AFTER_REJ13,
+
+    /* Reject 15 */
+    NWSEL_AUTO_SEARCH_NEXT_PLMN_RAT_AFTER_REJ15,
+    NWSEL_AUTO_SEARCH_CURR_PLMN_RAT_AFTER_REJ15,
+    NWSEL_MANUAL_SEARCH_NEXT_PLMN_RAT_AFTER_REJ15,
+    NWSEL_MANUAL_SEARCH_CURR_PLMN_RAT_AFTER_REJ15,
+
+    NWSEL_SEARCH_ACTION_NUM_MAX
+} nwsel_search_action_for_reject_cause_enum;
+
+typedef enum
+{
+    NWSEL_PLMN_TIMER_REASON_NONE,
+    NWSEL_PLMN_TIMER_REASON_REJ_42,
+    NWSEL_PLMN_TIMER_ATNT_BACKOFF,
+    NWSEL_PLMN_TIMER_EUTRAN_NO_SUITABLE,
+    NWSEL_PLMN_TIMER_NO_PDN_AVAILABLE,
+#ifdef UNIT_TEST
+    NWSEL_PLMN_TIMER_UT_IMS_PDN_THROTTLING,
+#endif
+    /* For VzW CDMA-less, we need to start TPLMN_barring for PLMN where voice is not possible on EUTRAN */
+    NWSEL_PLMN_TIMER_VZW_EUTRAN_BARRING,
+
+    /* For VzW CDMA-less, we need to start T5GNRSA_barring timer for PLMN where voice is not possible on NR */
+    NWSEL_PLMN_TIMER_VZW_5GNRSA_BARRING,
+
+    /* TS 24.301 subclause 4.5
+     *    As an implementation option, the UE may start a timer for enabling E-UTRA  when the UE's attach attempt
+     *    counter or tracking area updating attempt counter reaches 5 and the UE disables E-UTRA capability for cases
+     *    described in subclauses 5.5.1.3.4.3, 5.5.1.3.6, 5.5.3.3.4.3 and 5.5.3.3.6.
+     */
+    NWSEL_PLMN_TIMER_EUTRAN_ABNORMAL,
+    /* TS 23.122 subclause 3.1
+     *    If MS that has disabled its E-UTRA capability re-enables it when PLMN selection is performed, then the MS
+     *    should, for duration of timer TD, memorize the PLMNs where E-UTRA capability was disabled as PLMNs where voice
+     *    service was not possible.
+     */
+    NWSEL_PLMN_TIMER_EUTRAN_VOICE_NOT_POSSIBLE,
+    /* TS 23.122 subclause 3.1
+     *    The MS should maintain a list of PLMNs where the N1 mode capability was disabled due to receipt of a reject
+     *    from the network with 5GMM cause #27, as PLMNs where N1 mode is not allowed...
+     *    the MS should add the identity of the PLMN to the list of PLMNs wherre N1 mode is not allowed and should
+     *    start timer TG if timer TG is not already running.
+     */
+    NWSEL_PLMN_TIMER_N1_MODE_NOT_ALLOW,
+    /* TS 24.501 subclause 4.9 R15
+          If the UE attempts to establish an emergency PDU session in a PLMN where N1 mode capability was disabled due
+          to the UE`s registration attempt counter have reached 5, the UE may enable N1 mode capability for that PLMN
+          memorized by the UE.
+
+          NOTE 2: the value of the timer for re-enabling N1 mode capability is recommended to be the same as the value
+          of T3502 which follows the handling specified in subclause 5.3.8.
+     */
+    NWSEL_PLMN_TIMER_N1_ABNORMAL,
+    /* TS 23.122 subclause 3.1 R15
+     *    When the MS disables its N1 mode capability due to IMS voice not available and the MS`s usage setting was
+     *    "voice centric":the MS should add the identity of the PLMN to the list of PLMNs where voice service was not
+     *     possible in N1 mode and should start timer TF if timer TF is not already running.
+     */
+    NWSEL_PLMN_TIMER_N1_VOICE_NOT_POSSIBLE,
+    NWSEL_PLMN_TIMER_HPLMN_REJ_14,
+    NWSEL_PLMN_TIMER_VZW_VGMM_T3502,
+    NWSEL_PLMN_TIMER_VZW_VGMM_T3525,
+    NWSEL_PLMN_TIMER_VZW_VGMM_SR_THROTTLING,
+
+    NWSEL_PLMN_TIMER_N1_MAX_PDU_EST_TIMEOUT_REACHED, /* ATT LTE-N37-1-3706 step 5 */
+	NWSEL_PLMN_TIMER_N1_DISABLE_4G5_IRAT_FAIL_FTA,
+}nwsel_plmn_timer_reason_enum;
+
+/* the enum is used in ICD, please append new added enum, not insert it */
+typedef enum
+{
+    NWSEL_REASON_NONE = 0,
+    NWSEL_GPRS_FPLMN,
+    NWSEL_ESM_FPLMN,
+    NWSEL_CUSTOM_EUTRAN_DISABLE,
+    NWSEL_CUSTOM_N1_DISABLE,
+    NWSEL_CUSTOM_ENDC_DISABLE,
+    NWSEL_ATNT_BACKOFF,
+    NWSEL_REJ_42,
+    NWSEL_VZW_HVOLTE_IMS_NOT_ROAMING_CS_18,
+    NWSEL_ATNT_DISABLE_LTE,
+    NWSEL_CS_PS_CAUSE,
+    NWSEL_DATA_OFF_IMS_OFF,
+    NWSEL_DATA_ROAMING_OFF_IMS_OFF,
+    NWSEL_ROAMING_NOT_ALLOW,
+    NWSEL_VOICE_CENTRIC_S1_DISABLED,
+    NWSEL_5G_SA_OPTION_2_NOT_ENABLED,
+    NWSEL_RAT_IS_NOT_ENABLED,
+    NWSEL_CANNOT_HAVE_PS_NORMAL_SERVICE,
+    NWSEL_DISABLE_PLMN_BASE_TIMER_RUNNING,
+
+    /* PLMN BASE TIMER start */
+    NWSEL_DISABLE_TIMER_REASON_REJ_42,
+    NWSEL_DISABLE_TIMER_ATNT_BACKOFF,
+    NWSEL_DISABLE_TIMER_NO_SUITABLE,
+    NWSEL_DISABLE_TIMER_NO_PDN_AVAILABLE,
+    NWSEL_DISABLE_TIMER_EUTRAN_VZW_BARRING,
+    NWSEL_DISABLE_TIMER_EUTRAN_ABNORMAL,
+    NWSEL_DISABLE_TIMER_EUTRAN_VOICE_NOT_POSSIABLE,
+    NWSEL_DISABLE_TIMER_N1_NOT_ALLOW,
+    NWSEL_DISABLE_TIMER_N1_ABNORMAL,
+    NWSEL_DISABLE_TIMER_N1_VOICE_NOT_POSSIABLE,
+    NWSEL_DISABLE_TIMER_5GNRSA_VZW_BARRING,
+    NWSEL_DISABLE_TIMER_EUTRAN_HPLMN_REJ_14,
+    NWSEL_DISABLE_TIMER_N1_DISABLE_4G5_IRAT_FAIL_FTA,
+
+    /* NAS not allow cause */
+    NWSEL_NAS_NOT_ALLOW_NO_PDN,
+    NWSEL_NAS_NOT_ALLOW_T3402,
+    NWSEL_NAS_NOT_ALLOW_THROTTLING_APN,
+    NWSEL_NAS_NOT_ALLOW_EMC_BS,
+
+    /* VzW VGMM NAS not allow cause */
+    NWSEL_NAS_NOT_ALLOW_VZW_VGMM_T3502,
+    NWSEL_NAS_NOT_ALLOW_VZW_VGMM_T3525,
+    NWSEL_NAS_NOT_ALLOW_VZW_VGMM_SR_THROTTLING,        
+    NWSEL_NAS_NOT_ALLOW_VZW_VGMM_N1_MODE_NOT_ALLOWED,
+	
+	/* PLMN BASE TIMER start */
+    NWSEL_DISABLE_TIMER_N1_ABNORMAL_IRAT_FAIL,
+
+	/* common reason*/
+    NWSEL_DISABLE_BASED_ON_MRS_CONFIG,
+    NWSEL_IMS_OFF_AND_CS_UNAVAILABLE,
+
+    NWSEL_DISABLE_TIMER_N1_MAX_PDU_EST_TIMEOUT_REACHED,
+
+    /* VzW VGMM NAS not allow cause */
+    NWSEL_NAS_NOT_ALLOW_VZW_VGMM_N1_MODE_NOT_ALLOWED_TG,
+} nwsel_capability_disabled_reason_enum;
+
+typedef enum {
+    COUNTRY_NOT_CAMPED,
+    COUNTRY_UNKNOWN,
+    COUNTRY_INDIA
+}nwsel_country_enum;
+
+typedef enum
+{
+    FOUND_IND_DURING_SEARCH = 0,
+    FOUND_IND_DURING_USER_LIST = 1,
+}found_ind_source_enum;
+
+typedef enum
+{
+    LIST_IND_SYS_INFO = 0,
+    LIST_IND_AVAILABLE = 1,
+    LIST_IND_USER = 2,
+    LIST_IND_FIRST_FOUND = 3,
+    LIST_IND_FOUND_IND = 4,
+}list_ind_source_enum;
+
+
+typedef enum
+{
+    USER_LIST_TYPE_NORMAL = 0,
+    USER_LIST_TYPE_FAST = 1,
+    USER_LIST_TYPE_GIVEN_TIMER_NUMBER = 3,
+    USER_LIST_TYPE_IPC_NW_SCAN = 4,
+    USER_LIST_TYPE_CELL_MEAS = 5,
+}user_list_type_enum;
+
+/* MM Peer to Peer Message type values */
+/* the general format of value if 0x-- ---- where x stands
+ * for send sequence number.The peer messages from n/w will set it to
+ * 0 see section 10.4 of GSM 04.08.In  the case of MO peer messages,RR
+ * will add send sequence number. The value filled by MM for x is
+ * zero. */
+
+typedef enum{
+    MM_PEER_MSG_BEGIN             = 0x01,      /* 1 */
+    MM_PEER_IMSI_DETACH_IND_MSG   = MM_PEER_MSG_BEGIN,
+    MM_PEER_LOC_UPDATING_ACC_MSG  = 0x02,      /* 2 */
+    MM_PEER_LOC_UPDATING_REJ_MSG  = 0x04,      /* 4 */
+    MM_PEER_LOC_UPDATING_REQ_MSG  = 0x08,      /* 8 */
+    MM_PEER_AUTHEN_REJ_MSG        = 0x11,      /* 17 */
+    MM_PEER_AUTHEN_REQ_MSG        = 0x12,      /* 18 */
+    MM_PEER_AUTHEN_RSP_MSG        = 0x14,      /* 20 */
+    MM_PEER_AUTHEN_FAIL_MSG       = 0x1C,      /* 28 */
+    MM_PEER_IDENTITY_REQ_MSG      = 0x18,      /* 24 */
+    MM_PEER_IDENTITY_RSP_MSG      = 0x19,      /* 25 */
+    MM_PEER_TMSI_REALLOC_CMD_MSG  = 0x1a,      /* 26 */
+    MM_PEER_TMSI_REALLOC_CMPL_MSG = 0x1b,      /* 27 */
+    MM_PEER_CM_SERVICE_ACC_MSG    = 0x21,      /* 33 */
+    MM_PEER_CM_SERVICE_REJ_MSG    = 0x22,      /* 34 */
+    MM_PEER_CM_SERVICE_ABRT_MSG   = 0x23,      /* 35 */
+    MM_PEER_CM_SERVICE_REQ_MSG    = 0x24,      /* 36 */
+    MM_PEER_CM_SERVICE_PRMPT_MSG  = 0x25,      /* 37 */
+    MM_PEER_PAGING_RSP_MSG        = 0x27,      /* 39 */
+    MM_PEER_CM_REEST_REQ_MSG      = 0x28,      /* 40 */
+    MM_PEER_ABORT_MSG             = 0x29,      /* 41 */
+    MM_PEER_MM_NULL_MSG           = 0x30,      /* 48 */
+    MM_PEER_MM_STATUS_MSG         = 0x31,      /* 49 */
+    MM_PEER_MM_INFORMATION_MSG    = 0x32,      /* 50 */
+    MM_TOT_PEER_MSG
+} mm_peer_msg_type_enum;
+
+#define MAX_VAL(VAL_A, VAL_B)   (((VAL_A) > (VAL_B)) ? (VAL_A):(VAL_B))
+
+/* Lanslo 20060621: modify type size for VC simulator environment */
+    #ifdef __MTK_TARGET__
+        #define RLC_UL_CTRL_HEADER_LENGTH 14 //sizeof rlc_peer_data_info_struct
+    #else
+        #define RLC_UL_CTRL_HEADER_LENGTH 32 //sizeof rlc_peer_data_info_struct
+    #endif
+/* eo Lanslo 20060621 */
+
+#define RLC_DL_CTRL_HEADER_LENGTH 3 //sizeof rlc_dl_blk_struct
+/* Claire 041116 change : Adapt EGPRS DL interface */
+#ifdef __EGPRS_MODE__
+#define RLC_DL_EGPRS_CTRL_HEADER_LENGTH 3 //sizeof rlc_dl_egprs_blk_struct
+#endif
+
+#define SND_DL_CTRL_HEADER_LENGTH 12  //The size of snd_nsapi_dl_snpdu_buff_struct
+#define LLC_HEADER_LENGTH   5
+#define LLC_TAIL_LENGTH     3
+
+//The size of (24, llsnd_unitdata_req_struct, llsnd_data_req_struct, LLC_HEADER_LENGTH+RLC_UL_CTRL_HEADER_LENGTH)
+/* #define SND_UL_FREE_HEADER_LENGTH 24  */
+#define SND_UL_FREE_HEADER_LENGTH MAX_VAL(24, (LLC_HEADER_LENGTH+RLC_UL_CTRL_HEADER_LENGTH))
+
+
+typedef enum
+{
+    LLC_SAPI_NOT_ASSIGNED = 0,
+    LLC_SAPI1  =  1,
+    LLC_SAPI2  =  2,
+    LLC_SAPI3  =  3,
+    LLC_SAPI5  =  5,
+    LLC_SAPI7  =  7,
+    LLC_SAPI8  =  8,
+    LLC_SAPI9  =  9,
+    LLC_SAPI11 =  11
+}llc_sapi_enum;
+
+typedef enum {
+    SUBSCRIBED_TRANSFER_DELAY = 0,
+    RESERVED_NW_TO_MS_TRANSFER_DELAY   = 0,
+    TRANSFER_DELAY1 = 1,
+    TRANSFER_DELAY2 = 15,
+    TRANSFER_DELAY3 = 16,
+    TRANSFER_DELAY4 = 31,
+    TRANSFER_DELAY5 = 32,
+    TRANSFER_DELAY6 = 62,
+    RESERVED_BIDIRECT_TRANSFER_DELAY = 63
+} transfer_delay_enum;
+
+typedef enum {
+    RESERVED_NW_TO_MS_MAX_SDU_SIZE   = 0,
+    SUBSCRIBED_MS_TO_NW_MAX_SDU_SIZE = 0,
+    SDU_SIZE_1502_OCTETS             = 151,
+    SDU_SIZE_1510_OCTETS             = 152,
+    SDU_SIZE_1520_OCTETS             = 153,
+    RESERVED_BIDIRECT_MIN_SDU_SIZE   = 154,
+    RESERVED_BIDIRECT_MAX_SDU_SIZE = 255
+} max_sdu_size_enum;
+
+typedef enum {
+    SUBSCRIBED_MAX_BIT_RATE_UPLINK = 0,
+    RESERVED_NW_TO_MS_MAX_BIT_RATE_UPLINK = 0,
+    MAX_BIT_RATE_UPLINK1 = 1,
+    MAX_BIT_RATE_UPLINK2 = 63,
+    MAX_BIT_RATE_UPLINK3 = 64,
+    MAX_BIT_RATE_UPLINK4 = 127,
+    MAX_BIT_RATE_UPLINK5 = 128,
+    MAX_BIT_RATE_UPLINK6 = 254,
+    MAX_BIT_RATE_UPLINK_ZERO = 255        // erica __SM_3G__
+    //RESERVED_BIDIRECT_MAX_BIT_RATE_UPLINK = 255 // meaning is changed in R99 according to 24.008
+} max_bit_rate_uplink_enum;
+
+typedef enum {
+    SUBSCRIBED_MAX_BIT_RATE_DOWNLINK= 0,
+    RESERVED_NW_TO_MS_MAX_BIT_RATE_DOWNLINK = 0,
+    MAX_BIT_RATE_DOWNLINK1 = 1,
+    MAX_BIT_RATE_DOWNLINK2 = 63,
+    MAX_BIT_RATE_DOWNLINK3 = 64,
+    MAX_BIT_RATE_DOWNLINK4 = 127,
+    MAX_BIT_RATE_DOWNLINK5 = 128,
+    MAX_BIT_RATE_DOWNLINK6 = 254,
+    MAX_BIT_RATE_DOWNLINK_ZERO = 255               // erica __SM_3G__
+    //RESERVED_BIDIRECT_MAX_BIT_RATE_DOWNLINK= 255 // meaning is changed in R99 according to 24.008
+} max_bit_rate_downlink_enum;
+
+typedef enum {
+    SUBSCRIBED_GUARANTD_BIT_RATE_UPLINK = 0,
+    RESERVED_NW_TO_MS_GUARANTD_BIT_RATE_UPLINK = 0,
+    GUARANTD_BIT_RATE_UPLINK1 = 1,
+    GUARANTD_BIT_RATE_UPLINK2 = 63,
+    GUARANTD_BIT_RATE_UPLINK3 = 64,
+    GUARANTD_BIT_RATE_UPLINK4 = 127,
+    GUARANTD_BIT_RATE_UPLINK5 = 128,
+    GUARANTD_BIT_RATE_UPLINK6 = 254,
+    RESERVED_BIDIRECT_GUARANTD_BIT_RATE_UPLINK = 255
+} guarantd_bit_rate_uplink_enum;
+
+typedef enum {
+    SUBSCRIBED_GUARANTD_BIT_RATE_DOWNLINK= 0,
+    RESERVED_NW_TO_MS_GUARANTD_BIT_RATE_DOWNLINK = 0,
+    GUARANTD_BIT_RATE_DOWNLINK1 = 1,
+    GUARANTD_BIT_RATE_DOWNLINK2 = 63,
+    GUARANTD_BIT_RATE_DOWNLINK3 = 64,
+    GUARANTD_BIT_RATE_DOWNLINK4 = 127,
+    GUARANTD_BIT_RATE_DOWNLINK5 = 128,
+    GUARANTD_BIT_RATE_DOWNLINK6 = 254,
+    RESERVED_BIDIRECT_GUARANTD_BIT_RATE_DOWNLINK= 255
+} guarantd_bit_rate_downlink_enum;
+
+
+typedef kal_uint8 band_selection_enum;
+#define BAND_P900   0x01
+#define BAND_E900   0x02
+#define BAND_R900   0x04
+#define BAND_1800 0x08
+#define BAND_1900 0x10
+#define BAND_DUAL (BAND_P900|BAND_E900|BAND_1800)
+#define BAND_850  0x80
+
+typedef enum
+{
+   CELL_CHANGED ,
+   LA_CHANGED,
+   PLMN_CHANGED,
+   NUM_OF_GS_CHANGED
+} cb_geography_enum;
+
+/* UAS/GAS <-> RATCM begin */
+
+typedef enum {
+    NM_1 = 0,
+    NM_2 = 1,
+    NM_3 = 2,
+    NM_NONE = 3
+}network_mode_enum;
+
+
+typedef enum {
+    PLMN_NOT_FOUND = 0,
+    PLMN_FOUND     = 1,
+    CANNOT_PROCESS = 2,
+    GEMINI_SUSPENDED_FAILURE = 3
+} plmn_search_result_enum;
+
+typedef enum {
+    CANT_PROC_REASON_NONE = 0,
+    CANT_PROC_REASON_SIM_NOT_VALID
+} plmn_search_cant_proc_reason_enum;
+
+typedef enum {
+    PLMN_SEARCH_UNRELATED = 0,
+    PLMN_SEARCH_FINISHED  = 1,
+    PLMN_SEARCH_STARTED   = 2,
+} plmn_search_status_enum;
+
+typedef enum {
+    DISABLE_INTERNATIONAL_ROAMING_SETTING = 0,
+    DISABLE_NATIONAL_ROAMING_SETTING = 1,
+    DISABLE_HPPLMN_SEARCH_SETTING = 2
+} roaming_setting_enum;
+
+typedef enum {
+    NWSEL_PAM_NO_AVAILABLE_PDN = 0,
+    NWSEL_PAM_HAS_AVAILABLE_PDN = 1
+} pdn_update_event_enum;
+
+typedef enum {
+    CELL_TYPE_SUITABLE       = 0,
+    CELL_TYPE_ACCEPTABLE     = 1,
+    CELL_TYPE_CAMPED_NOT_ALLOWED = 2,
+    CELL_TYPE_NOT_APPLICABLE = 3
+} as_cell_type_enum;
+
+
+typedef enum {
+    CELL_BAND_INFO_TYPE_NONE       = 0,
+    CELL_BAND_INFO_TYPE_MRU        = 1,
+    CELL_BAND_INFO_TYPE_RAL        = 2,
+} cell_band_info_type_enum;
+
+#if 0 /* move to cross core */
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+typedef enum {
+    NWSEL_MSG_PLMN_LOSS = 0,
+    NWSEL_MSG_PLMN_SEARCH_CNF = 1,
+    NWSEL_MSG_EUTRAN_DISABLE_INFO = 2
+}nwsel_interlayer_msg_enum;   //add for auto test tool
+
+typedef enum {
+    ADD_CSG = 0,
+    DEL_CSG = 1
+} csg_update_type_enum;
+
+typedef enum{
+    FORBID_LA_FOR_REG_PROV_SERVICE = 0,
+    FORBID_LA_FOR_ROAMING          = 1
+} forbidden_la_type_enum;
+
+typedef enum
+{
+    /* UTRAN has not used IE "Ciphering Info" in SECURITY MODE COMMAND to start controlling the ciphering. */
+    CipheringNotStarted = 0,
+    CipheringUEA0,   /* Use algorithm UEA0 for ciphering*/
+    CipheringUEA1   /* Use algorithm UEA1 for ciphering*/
+#ifdef __UMTS_R7__
+    ,
+    CipheringUEA2    /* Use algorithm UEA2 for ciphering*/
+#endif
+} Ciphering_Status;
+
+typedef enum{
+    PROC_STATUS_NONE          = 0,
+    ATTACH_PROCEDURE_START    = 1,
+    ATTACH_PROCEDURE_SUCCESS  = 2,
+    RAU_PROCEDURE_START       = 3,
+    RAU_PROCEDURE_SUCCESS     = 4,
+    SERVICE_PROCEDURE_START   = 5,
+    SERVICE_PROCEDURE_SUCCESS = 6,
+    ATTACH_PROCEDURE_FAILURE  = 7,
+    RAU_PROCEDURE_FAILURE     = 8,
+    SERVICE_PROCEDURE_FAILURE = 9,
+    NW_INIT_DETACH_PROCEDURE  = 10,
+    CS_DETACH_START           = 11,
+    PS_DETACH_START           = 12,
+    CS_PS_DETACH_START        = 13,
+    LU_PROCEDURE_SUCCESS      = 14,
+    LU_PROCEDURE_FAILURE      = 15,
+    CM_SERVICE_FAILURE        = 16,
+    CS_AUTH_REJ               = 17,
+    CS_AUTH_FAIL              = 18,
+    PS_AUTH_REJ               = 19,
+    PS_AUTH_FAIL              = 20,
+    CS_PS_POWER_OFF           = 21,
+    DETACH_PROCEDURE_END      = 22,
+    MS_IN_LIMITED_SERVICE     = 23, /* for FAST_RECOVERY */
+    MS_IN_NO_SERVICE          = 24, /* for FAST_RECOVERY */
+    MS_STATE_CHANGE           = 25,
+    LTE_REG_PROCEDURE_SUCCESS = 26,
+    ATTACH_PROCEDURE_FOR_PS_SWITCH_SUCCESS = 27, // for __SGLTE__ usage
+    MS_IN_GEMINI_SUSPEND      = 28, // for Gemini suspend state notify to 4G
+    MS_STOP_SNIFF             = 29,
+    MS_PLMN_LOSS              = 30, /* for report PLMN_LOSS when control by GMSS*/
+}regn_proc_status_enum;
+
+/* Ripple */
+typedef enum {
+    MMAS_NO_CHG_IN_REGN_STATUS = 0,
+    MMAS_CS_ATTACHED           = 1,
+    MMAS_PS_ATTACHED           = 2,
+    MMAS_CS_PS_ATTACHED        = 3,
+    MMAS_CS_DETACHED           = 4,
+    MMAS_PS_DETACHED           = 5,
+    MMAS_CS_PS_DETACHED        = 6
+}mmas_regn_status_enum;
+
+typedef enum {
+    AS_REL_SCOPE_SIGNALING,
+    AS_REL_SCOPE_CONNECTION,
+}as_rel_scope_enum;
+
+typedef enum {
+    AS_SNIFF_SERVICE_INVALID,
+    AS_SNIFF_FOR_PWS_AND_BETTER_SERVICE,
+    AS_SNIFF_FOR_LIMITED_AND_BETTER_SERVICE,
+    AS_SNIFF_FOR_NORMAL_SERVICE,
+}as_sniffer_req_service_enum;
+
+typedef enum {
+    AS_SNIFFER_TARGET_LIST,
+    AS_SNIFFER_TARGET_ANY_LIST,
+}as_sniffer_plmn_list_operate_type_enum;
+
+typedef enum {
+    CAUSE_AUTH_FAIL,
+#ifdef __GEMINI__
+    CAUSE_RSIM_ABORT,
+    CAUSE_LEAVE_VIRTUAL_CONNECTED,
+#endif
+    CAUSE_OTHERS
+}conn_rel_cause_enum;
+
+typedef enum
+{
+    IMSI_TYPE          = 0x01,
+    TMSI_TYPE          = 0x04,
+    PTMSI_TYPE         = 0x04,
+    INVALID_UE_ID_TYPE = 0xff
+} ue_id_type_enum;
+
+typedef enum
+{
+    AS_CONN_EST_SUCC           = 0,
+    ACCESS_BARRED              = 1,
+    IMM_ASSGN_REJECT_RCVD      = 2,
+    RAND_ACC_FAILURE           = 3,
+    RR_NO_SERVICE              = 4,
+    GIBI_TAG_MISMATCH          = 5,
+    UAS_CONN_EST_FAILURE       = 6,
+    RR_PLMN_SRCH_REJ_EMERGENCY = 7,
+    REDIRECT_SUCC              = 8,
+    /*Byron: 2007/05/08: Add reject cause for CCO activation timer is running*/
+    CCO_ACTIVATION_TIME_ONGOING= 9,
+    CONN_EST_ABORTED = 10
+#ifdef __GEMINI__ //20080922
+     ,
+     AS_IN_SUSPEND_MODE = 11 /* for AS suspend mode in dual RR task */
+#endif /* __GEMINI__ */
+    , CSFB_SEARCH_OTHER_RAT = 12,
+    CELL_CHANGE_START=13
+#ifdef __GEMINI__
+     ,
+     AS_IN_VIRTUAL_CONNECTED_MODE = 14, /* for AS virtual connected mode in dual RR task */
+     AS_MSPM_SESSION_NOT_ALLOWED = 15,  /* AS is not able to acquired MSPM AS session */
+	 AS_CONN_EST_ABORTED_DUE_TO_GEMINI = 16 /* AS connection aborted due to GEMINI scenario */
+#endif /* __GEMINI__ */
+} as_est_cnf_cause_enum; /* ps_cause_enum need modify, too. */
+
+/* ~ Ripple */
+
+/* ENUMERATED PagingCause */
+typedef enum
+{
+    PagingCause_terminatingConversationalCall   = 0,
+    PagingCause_terminatingStreamingCall    = 1,
+    PagingCause_terminatingInteractiveCall  = 2,
+    PagingCause_terminatingBackgroundCall   = 3,
+    PagingCause_terminatingHighPrioritySignalling  = 4,
+    PagingCause_terminatingLowPrioritySignalling = 5,
+    PagingCause_terminatingCauseUnknown  = 6
+}
+RATCM_RRC_PagingCause;
+
+/*2013/03/26, local release enhancement*/
+/* ENUMERATED LocalReleaseType */
+typedef enum
+{
+    LocalReleaseType_detect_macthed_utran_paging = 0,
+    LocalReleaseType_gemini_abort_ps_rab = 1,
+    LocalReleaseType_key_change_on_the_fly = 2
+}
+RATCM_RRC_LocalReleaseType;
+
+/* ENUMERATED ReleaseCause */
+typedef enum
+{
+    normalEvent = 0,
+    ReleaseCause_unspecified = 1,
+    pre_emptiveRelease = 2,
+    ReleaseCause_congestion = 3,
+    re_establishmentReject = 4,
+    directedsignallingconnectionre_establishment = 5,
+    userInactivity = 6,
+    IDT_notSent = 7
+}
+RATCM_RRC_ReleaseCause;
+
+typedef enum
+{
+    SAPI_0_High = 0,
+    SAPI_3_Low = 1
+} DC_Priority;
+
+typedef enum
+{
+    DC_Status_SUCCESS = 0,
+    /* NAS message is discarded because of GAS cell reselection */
+    DC_Status_GAS_CellResel_Discard = 1,
+    /* RRCE couldn't deliver this NAS message successfully to peer entity, e.g., InterRAT or OOS */
+    DC_Status_Normal_FAILURE = 2,
+    /* RLC reset, NAS message is discarded  */
+    DC_Status_RLC_Discard_FAILURE = 3,
+    /* NAS message is discarded because of gibi mismatch */
+    DC_Status_GIBI_TagMismatch = 4,
+    /* RLC release, NAS message is sent completely but not receive ack yet */
+    DC_Status_RLC_Release_Tx_Not_Acked = 5,
+    /* RLC release, NAS message is discarded */
+    DC_Status_RLC_Release_Discard = 6,
+    /* RB Reestablish, NAS message is sent completely but not receive ack yet */
+    DC_Status_RB_Reestablish_Tx_Not_Acked = 7,
+    /* RB Reestablish, NAS message is discarded */
+    DC_Status_RB_Reestablish_Discard = 8,
+    /* NAS message cannot be sent while 3G2 CCO activation time is ongoing */
+    DC_Status_RLC_CCO_Activation_Time_Ongoing = 9,
+    /* NAS message is discarded because of GAS suspend */
+    DC_Status_GAS_RLC_GPRS_Resume_Discard = 10,
+    /* RLC(2G only?) drop the NAS message due to no cell coverage, not sure if NW RLC have received this msg or not */
+    DC_Status_RLC_No_Cell_Coverage_Discard = 11,
+    /* GMM does not relay SM msg to lower layers due to PLMN search ongoing. NW must not receive this msg */
+    DC_Status_PLMN_Search_Ongoing_Discard = 12,
+    // Carlson 2013.07.22 please check the gmmsm_cause_enum and the DC_Status together
+    // 1. For suspend due to CM/MM/GMM procedure, GMM will send GMMSM_SUSPEND_REQ to SM, using only one of the 2 causes: PS_SUSPEND_LR / PS_SUSPEND_CM
+    // 2. For Gemini suspend, GMM will not relay UNITDATA_REQ if other SIM is busy, and GMM will send UNITDATA_CNF.DC_Status_Gemini_Suspend_Discard to SM
+    // 3. For gmmsm_cause_enum: GMMSM_INSUFFICIENT_RESOURCE, it is only used in GMMSM_ATTACH_REJ due to Gemini
+    /* GMM does not relay SM msg to lower layers due to Gemini suspension (ex. Suspended by CS call of another SIM). NW must not receive this msg */
+    DC_Status_Gemini_Suspend_Discard = 13,
+    /* GMM does not relay SM msg to lower layers due to no GPRS coverage. NW must not receive this msg */
+    DC_Status_GMM_No_Cell_Discard = 14,
+    /* GMM used to indicate SM that unitdata_req send fail because of GMM suspend */
+    DC_Status_GMM_Suspend = 15,
+    /* RLc/LLC will indicate TX failure if unable to aquire GEMINI PS high semaphore*/
+    DC_Status_Gemini_Fail = 16,
+/* GMM does not relay SM message to lower layer due to No FOP in ATTACH ACCEPT, hence wait for connection to be released*/
+	DC_Status_GMM_No_FOP_Discard = 17
+
+    #ifdef __GEMINI__
+	,
+	DC_Status_Gemini_Virtual_Connected_Fail = 18 /* for AS virtual connected mode in dual RR task */
+    #endif /* __GEMINI__ */
+
+} DC_Status;
+
+typedef enum{
+    READY_TMR_ACT   = 0,
+    READY_TMR_DEACT = 1
+}action_on_ready_timer_enum;
+
+typedef enum{
+    READY_TMR_EXPIRES = 0,
+    READY_TMR_REVIVE  = 1,
+    READY_TMR_DEACTIVED = 2
+}ready_timer_status_enum;
+
+typedef enum{
+    CIPHER_CMD      = 0,
+    TCH_ASSIGN      = 1,
+    CHMODE_MODIFY   = 2,
+    CHANNEL_RELEASE = 3,
+    UAS_RAB_MODIFY  = 4,
+    UAS_RAB_EST     = 5
+}sync_ind_cause_enum;
+
+/* UAS/GAS <-> RATCM end */
+
+typedef enum{
+    SIM_NORM_OP                          = 0x00,
+    SIM_TYPE_APPROV_OP                   = 0x80,
+    SIM_NORM_OP_AND_SPEC_FACILITY        = 0x01,
+    SIM_TYPE_APPROV_OP_AND_SPEC_FACILITY = 0x81,
+    SIM_MAINTENANCE                      = 0x02,
+    SIM_CELL_TEST_OP                     = 0x04,
+    SIM_INVALID_OP                       = 0xFF
+} sim_op_mode_enum;
+
+typedef enum
+{
+    SGSNR_0,
+    SGSNR_1,
+    SGSNR_NOT_PRESENT
+} rr_mm_sgsnr_flag_enum;
+
+
+#ifdef __GEMINI__
+
+typedef enum
+{
+    RR_IN_NORMAL_MODE              = 0, //for monza
+    RR_NOT_IN_SUSPEND_MODE         = RR_IN_NORMAL_MODE, //for maui
+    RR_IN_SUSPEND_MODE_FOR_CS_SIG  = 1,
+    RR_IN_SUSPEND_MODE_FOR_CS_CALL = 2,
+    RR_IN_SUSPEND_MODE_FOR_PS_SIG  = 3,
+    RR_IN_SUSPEND_MODE_FOR_PS_DATA = 4,
+    RR_IN_SUSPEND_MODE_UNSPECIFIED = 5 //for MM use
+} rr_suspend_mode_reason_enum;
+
+typedef enum
+{
+    AS_NORMAL_MODE = 0,
+    AS_IN_SUSPEND_MODE_FOR_CS_SIG  = 1,
+    AS_IN_SUSPEND_MODE_FOR_CS_CALL = 2,
+    AS_IN_SUSPEND_MODE_FOR_PS_SIG  = 3,
+    AS_IN_SUSPEND_MODE_FOR_PS_DATA = 4,
+    AS_IN_SUSPEND_MODE_UNSPECIFIED = 5 //for MM use
+} as_suspend_mode_reason_enum; //identical as rr_suspend_mode_reason_enum
+
+typedef enum
+{
+    AS_IN_IDLE = 0,
+    AS_IN_CONNECTED_TRANSIENT = 1,
+	AS_IN_VIRTUAL_CONNECTED = 2,
+	AS_IN_CONNECTED = 3,
+	AS_IN_VIRTUAL_IDLE = 4
+} as_gemini_status_enum;
+
+#if defined(__UMTS_RAT__) || defined(__LTE_RAT__)
+
+typedef enum {
+    GAS_USER_PLMN_SEARCH          = 0,
+    GAS_USER_NO_SERVICE_PLMN_LIST = 1,
+    GAS_USER_IN_SERVICE_PLMN_LIST = 2,
+    GAS_MM_PLMN_SEARCH            = 3,
+    GAS_AS_CELL_SELECTION         = 4,
+    GAS_MM_PLMN_LIST              = 5,
+    GAS_AS_REPORT_CGI             = 6,
+    GAS_FAST_RECOVERY             = 7,
+    GAS_MM_PLMN_SEARCH_POWER_ON   = 8,   //for CMCC case 5.1.1: is first search after power on
+    GAS_FREQ_SCAN_NULL            = 9,
+    GAS_CSG_FINGER_PRINT          = 10,
+    GAS_RSIM_VC_RESUME            = 11
+
+}gas_freq_scan_type_enum;
+
+typedef enum {
+    GAS_FREQ_SCAN_ACCEPT                  = 0,
+    GAS_FREQ_SCAN_WAIT                    = 1
+}gas_freq_scan_result_enum;
+
+typedef enum {
+    GAS_FREQ_SCAN_FINISHED      = 0,
+    GAS_FREQ_SCAN_PREEMPTED     = 1
+}gas_freq_scan_stop_cause_enum;
+
+#endif /* defined(__UMTS_RAT__) || defined(__LTE_RAT__) */
+
+#ifdef __LTE_RAT__
+typedef enum {
+    EAS_USER_NO_SERVICE_PLMN_LIST = 0x00000001,
+    EAS_USER_PLMN_SEARCH          = 0x00000002,
+    EAS_USER_IN_SERVICE_PLMN_LIST = 0x00000004,
+    EAS_MM_PLMN_SEARCH            = 0x00000008,
+    EAS_AS_AFR                    = 0x00000010,
+    EAS_AS_CELL_SELECTION         = 0x00000020,
+    EAS_AS_CSG_CELL_EVALUATION    = 0x00000040,
+    EAS_AS_BACKGROUND_SEARCH      = 0x00000080,
+    EAS_MM_PLMN_LIST              = 0x00000100,
+    EAS_AS_CSG_AUTONOMOUS_SEARCH  = 0x00000200,
+    EAS_AS_FINGERPRINT            = 0x00000400,
+    EAS_AS_MCC_LEARNING           = 0x00000800,
+    EAS_SIM_PROTECTION            = 0x00001000,
+    EAS_MM_PLMN_SEARCH_POWER_ON   = 0x00002000,
+    EAS_EMC_SESSION               = 0x00004000,
+    EAS_GEMINI_RESUME             = 0x00008000,
+    EAS_AS_CELL_SELECTION_CALL    = 0x00010000,
+    EAS_FREQ_SCAN_NULL            = 0x00020000
+}eas_freq_scan_type_enum;
+
+typedef enum {
+    EAS_FREQ_SCAN_FINISHED,
+    EAS_FREQ_SCAN_PREEMPTED
+}eas_freq_scan_stop_cause_enum;
+
+#endif /* __LTE_RAT__ */
+
+#endif /* __GEMINI__ */
+
+#ifdef __NR_RAT__
+typedef enum {
+    NRRC_AS_AFR,
+    NRRC_EMC_SESSION,
+    NRRC_USER_NO_SERVICE_PLMN_LIST,
+    NRRC_USER_PLMN_SEARCH,
+    NRRC_USER_IN_SERVICE_PLMN_LIST,
+    NRRC_MM_PLMN_SEARCH_POWER_ON,
+    NRRC_MM_PLMN_SEARCH,
+    NRRC_AS_CELL_SELECTION,
+    NRRC_AS_CELL_SELECTION_CALL, 
+    NRRC_AS_BACKGROUND_SEARCH,
+    NRRC_MM_PLMN_LIST,
+    NRRC_GEMINI_RESUME,
+    NRRC_AUTO_GAP,
+    NRRC_GEMINI_ABORT,
+    NRRC_FREQ_SCAN_NULL
+}nrrc_freq_scan_type_enum;
+
+typedef enum {
+    NRRC_FREQ_SCAN_FINISHED,
+    NRRC_FREQ_SCAN_PREEMPTED,
+    NRRC_FREQ_SCAN_INVALID
+}nrrc_freq_scan_stop_cause_enum;
+
+#endif /* __NR_RAT__ */
+
+typedef enum {
+    NRRC_AC1_SELECTION_ASSISTANCE_INFO_A,
+    NRRC_AC1_SELECTION_ASSISTANCE_INFO_B,
+    NRRC_AC1_SELECTION_ASSISTANCE_INFO_C,
+    NRRC_AC1_SELECTION_ASSISTANCE_INFO_INVALID
+} nrrc_ac1_selection_assistance_info_enum;
+
+#if (defined( __AGPS_CONTROL_PLANE__) || defined( __ETWS_SUPPORT__))
+typedef enum{
+    APP_CMD_OR_FINAL_RESP           = 0,
+    APP_NOT_CMD_OR_FINAL_RESP       = 1
+}app_data_cr_enum;
+
+#ifdef __AGPS_CONTROL_PLANE__
+typedef enum{
+   ABORT_CAUSE_CONN_RELEASE       =0,
+   ABORT_CAUSE_RR_MANAGE_MESG     =1
+
+}abort_rrlp_cause_enum;
+#endif /* __AGPS_CONTROL_PLANE__ */
+#endif /* ( __AGPS_CONTROL_PLANE__) || defined( __ETWS_SUPPORT__) */
+
+/* TCM, RAC Share with L4C */
+typedef enum
+{
+  NW_CONTEXT_REJ_EVENT = 1,
+  NW_CONTEXT_REACT_EVENT,
+  NW_CONTEXT_DEACT_EVENT,   // Replacd to NW_DEACT_EVENT (27.007 R9 CR0221)
+  ME_CONTEXT_DEACT_EVENT,   // Replacd to ME_DEACT_EVENT (27.007 R9 CR0221)
+  NW_DETACH_EVENT,
+  ME_DETACH_EVENT,
+  ME_PDN_ACT_EVENT,  //IPV6_TODO: add a new event type for "+CGEV: ME PDN ACT <cid>"
+
+  //Primary PDP Context, Merge to "+CGEV: NW/ME ACT/DEACT" enum s
+  //NW_PDN_ACT_EVENT,   //LTE: add a new event type for "+CGEV: NW PDN ACT <cid>"   <= EPS not applicable
+  //ME_PDN_ACT_EVENT,   //LTE: add a new event type for "+CGEV: ME PDN ACT <cid>"
+  //NW_PDN_DEACT_EVENT, //LTE: add a new event type for "+CGEV: NW PDN DEACT <cid>"
+  //ME_PDN_DEACT_EVENT, //LTE: add a new event type for "+CGEV: ME PDN DEACT <cid>"
+
+  //Secondary PDP Context
+  NW_ACT_EVENT,       //LTE: add a new event type for "+CGEV: NW ACT <p_cid>, <cid>, <event_type>
+  ME_ACT_EVENT,       //LTE: add a new event type for "+CGEV: ME ACT <p_cid>, <cid>, <event_type>
+  NW_DEACT_EVENT,     //LTE: add a new event type for "+CGEV: NW DEACT <p_cid>, <cid>, <event_type>
+  ME_DEACT_EVENT,     //LTE: add a new event type for "+CGEV: ME DEACT <p_cid>, <cid>, <event_type>
+
+  NW_MODIFY_EVENT,    //LTE: add a new event type for "+CGEV: NW MODIFY <cid>, <change_reason>, <event_type>
+  ME_MODIFY_EVENT,     //LTE: add a new event type for "+CGEV: ME MODIFY <cid>, <change_reason>, <event_type>
+  ME_REATTACH_EVENT    //SGLTE: After RAU_Reject with #10 and reattach succ, notify AP to active PDP ASAP.
+}mmi_event_enum;
+
+typedef enum
+{
+    PAM_EVENT_NOTIFY_CLEAR_VZW_APN_TABLE,
+    PAM_EVENT_NOTIFY_VZW_AP_FULLY_CONTROL_IA,
+    PAM_EVENT_NOTIFY_VZW_AP_NOT_FULLY_CONTROL_IA
+} pam_event_notify_enum;
+
+//#ifdef __PLMN_LIST_PREF_SUPPORT__
+typedef enum
+{
+    ACCURACY_PREFERED,
+    SPEED_PREFFERED
+} plmn_list_preference_enum;
+//#endif /* __PLMN_LIST_PREF_SUPPORT__ */
+
+typedef enum
+{
+    HSPA_OFF = 0,
+    HSDPA_ON = 1,
+    HSDPA_HSUPA_ON = 2,
+    HSPAPLUS_ON = 3
+} hspa_preference_enum;
+
+typedef enum
+{
+   PPAC_NOT_RESTRICTED,
+   PPAC_PAGING_ALLOWED,
+   PPAC_LR_ALLOWED
+}
+ppac_checked_type_enum;
+
+typedef enum
+{
+    PS_CBS0_GERMAN = 0,
+    PS_CBS0_ENGLISH,
+    PS_CBS0_ITALIAN,
+    PS_CBS0_FRENCH,
+    PS_CBS0_SPANISH,
+    PS_CBS0_DUTCH,
+    PS_CBS0_SWEDISH,
+    PS_CBS0_DANISH,
+    PS_CBS0_PORTUGUESE,
+    PS_CBS0_FINNISH,
+    PS_CBS0_NORWEGIAN,
+    PS_CBS0_GREEK,
+    PS_CBS0_TURKISH,
+    PS_CBS0_HUNGARIAN,
+    PS_CBS0_POLISH,
+    PS_CBS0_LANG_UNSPECIFIED,
+
+    PS_CBS1_CZECH = 16,
+    PS_CBS1_HEBREW,
+    PS_CBS1_ARABIC,
+    PS_CBS1_RUSSIAN,
+    PS_CBS1_ICELANDIC,
+
+    PS_CBS2_AA,    // AFAR, 20
+    PS_CBS2_AB,    // ABKHAZIAN
+    PS_CBS2_AF,    // AFRIKAANS
+    PS_CBS2_AM,    // AMHARIC
+    //CBS2_AR, // ARABIC
+    PS_CBS2_AS,    // ASSAMESE
+    PS_CBS2_AY,    // AYMARA
+    PS_CBS2_AZ,    // AZERBAIJANI
+
+    PS_CBS2_BA,    // BASHKIR
+    PS_CBS2_BE,    // BYELORUSSIAN
+    PS_CBS2_BG,    // BULGARIAN, 30
+    PS_CBS2_BH,    // BIHARI
+    PS_CBS2_BI,    // BISLAMA
+    PS_CBS2_BN,    // BENGALI; BANGLA
+    PS_CBS2_BO,    // TIBETAN
+    PS_CBS2_BR,    // BRETON
+
+    PS_CBS2_CA,    // CATALAN
+    PS_CBS2_CO,    // CORSICAN
+    //CBS2_CS, // CZECH
+    PS_CBS2_CY,    // WELSH
+
+    //CBS2_DA, // DANISH, 40
+    //CBS2_DE, // GERMAN
+    PS_CBS2_DZ,    // BHUTANI
+
+    //CBS2_EL, // GREEK
+    //CBS2_EN, // ENGLISH
+    PS_CBS2_EO,    // ESPERANTO
+    //CBS2_ES, // SPANISH
+    PS_CBS2_ET,    // ESTONIAN
+    PS_CBS2_EU,    // BASQUE
+
+    PS_CBS2_FA,    // PERSIAN
+    //CBS2_FI, // FINNISH, 50
+    PS_CBS2_FJ,    // FIJI
+    PS_CBS2_FO,    // FAROESE
+    //CBS2_FR, // FRENCH
+    PS_CBS2_FY,    // FRISIAN
+
+    PS_CBS2_GA,    // IRISH
+    PS_CBS2_GD,    // SCOTS GAELIC
+    PS_CBS2_GL,    // GALICIAN
+    PS_CBS2_GN,    // GUARANI
+    PS_CBS2_GU,    // GUJARATI
+
+    PS_CBS2_HA,    // HAUSA, 60
+    //CBS2_HE, // HEBREW (FORMERLY IW)
+    PS_CBS2_HI,    // HINDI
+    PS_CBS2_HR,    // CROATIAN
+    //CBS2_HU, // HUNGARIAN
+    PS_CBS2_HY,    // ARMENIAN
+
+    PS_CBS2_IA,    // INTERLINGUA
+    PS_CBS2_ID,    // INDONESIAN (FORMERLY IN)
+    PS_CBS2_IE,    // INTERLINGUE
+    PS_CBS2_IK,    // INUPIAK
+    PS_CBS2_IS,    // ICELANDIC, 70
+    //CBS2_IT, // ITALIAN
+    PS_CBS2_IU,    // INUKTITUT
+
+    PS_CBS2_JA,    // JAPANESE
+    PS_CBS2_JW,    // JAVANESE
+
+    PS_CBS2_KA,    // GEORGIAN
+    PS_CBS2_KK,    // KAZAKH
+    PS_CBS2_KL,    // GREENLANDIC
+    PS_CBS2_KM,    // CAMBODIAN
+    PS_CBS2_KN,    // KANNADA
+    PS_CBS2_KO,    // KOREAN, 80
+    PS_CBS2_KS,    // KASHMIRI
+    PS_CBS2_KU,    // KURDISH
+    PS_CBS2_KY,    // KIRGHIZ
+
+    PS_CBS2_LA,    // LATIN
+    PS_CBS2_LN,    // LINGALA
+    PS_CBS2_LO,    // LAOTHIAN
+    PS_CBS2_LT,    // LITHUANIAN
+    PS_CBS2_LV,    // LATVIAN, LETTISH
+
+    PS_CBS2_MG,    // MALAGASY
+    PS_CBS2_MI,    // MAORI, 90
+    PS_CBS2_MK,    // MACEDONIAN
+    PS_CBS2_ML,    // MALAYALAM
+    PS_CBS2_MN,    // MONGOLIAN
+    PS_CBS2_MO,    // MOLDAVIAN
+    PS_CBS2_MR,    // MARATHI
+    PS_CBS2_MS,    // MALAY
+    PS_CBS2_MT,    // MALTESE
+    PS_CBS2_MY,    // BURMESE
+
+    PS_CBS2_NA,    // NAURU
+    PS_CBS2_NE,    // NEPALI, 100
+    //CBS2_NL, // DUTCH
+    //CBS2_NO, // NORWEGIAN
+
+    PS_CBS2_OC,    // OCCITAN
+    PS_CBS2_OM,    // (AFAN) OROMO
+    PS_CBS2_OR,    // ORIYA
+
+    PS_CBS2_PA,    // PUNJABI
+    //CBS2_PL, // POLISH
+    PS_CBS2_PS,    // PASHTO, PUSHTO
+    //CBS2_PT, // PORTUGUESE
+
+    PS_CBS2_QU,    // QUECHUA, 110
+
+    PS_CBS2_RM,    // RHAETO-ROMANCE
+    PS_CBS2_RN,    // KIRUNDI
+    PS_CBS2_RO,    // ROMANIAN
+    //CBS2_RU, // RUSSIAN
+    PS_CBS2_RW,    // KINYARWANDA
+
+    PS_CBS2_SA,    // SANSKRIT
+    PS_CBS2_SD,    // SINDHI
+    PS_CBS2_SG,    // SANGHO
+    PS_CBS2_SH,    // SERBO-CROATIAN
+    PS_CBS2_SI,    // SINHALESE, 120
+    PS_CBS2_SK,    // SLOVAK
+    PS_CBS2_SL,    // SLOVENIAN
+    PS_CBS2_SM,    // SAMOAN
+    PS_CBS2_SN,    // SHONA
+    PS_CBS2_SO,    // SOMALI
+    PS_CBS2_SQ,    // ALBANIAN
+    PS_CBS2_SR,    // SERBIAN
+    PS_CBS2_SS,    // SISWATI
+    PS_CBS2_ST,    // SESOTHO
+    PS_CBS2_SU,    // SUNDANESE, 130
+    //CBS2_SV, // SWEDISH
+    PS_CBS2_SW,    // SWAHILI
+
+    PS_CBS2_TA,    // TAMIL
+    PS_CBS2_TE,    // TELUGU
+    PS_CBS2_TG,    // TAJIK
+    PS_CBS2_TH,    // THAI
+    PS_CBS2_TI,    // TIGRINYA
+    PS_CBS2_TK,    // TURKMEN
+    PS_CBS2_TL,    // TAGALOG
+    PS_CBS2_TN,    // SETSWANA, 140
+    PS_CBS2_TO,    // TONGA
+    //CBS2_TR, // TURKISH
+    PS_CBS2_TS,    // TSONGA
+    PS_CBS2_TT,    // TATAR
+    PS_CBS2_TW,    // TWI
+
+    PS_CBS2_UG,    // UIGHUR
+    PS_CBS2_UK,    // UKRAINIAN
+    PS_CBS2_UR,    // URDU
+    PS_CBS2_UZ,    // UZBEK
+
+    PS_CBS2_VI,    // VIETNAMESE, 150
+    PS_CBS2_VO,    // VOLAPUK
+
+    PS_CBS2_WO,    // WOLOF
+
+    PS_CBS2_XH,    // XHOSA
+
+    PS_CBS2_YI,    // YIDDISH (FORMERLY JI)
+    PS_CBS2_YO,    // YORUBA
+
+    PS_CBS2_ZA,    // ZHUANG
+    PS_CBS2_ZH,    // CHINESE
+    PS_CBS2_ZU,    // ZULU, 158
+    PS_CBS_INVALID = 255
+} cbs_language_enum;
+
+
+typedef enum
+{
+    CBS_GSM7_BIT = 0x00,            /* GSM 7-bit */
+    CBS_EIGHT_BIT = 0x04,           /* 8-bit */
+    CBS_UCS2 = 0x08,                /* UCS2 */
+    CBS_ALPHABET_RESERVED = 0x0C    /* RESERVED */
+} cbs_alphabet_enum;
+
+typedef enum
+{
+    CBS_CLASS0 = 0,
+    CBS_CLASS1,
+    CBS_CLASS2,
+    CBS_CLASS3,
+    CBS_CLASS_UNSPECIFIED
+} cbs_msgclass_enum;
+
+typedef enum
+{
+    PBCCH = 0,
+    PRACH = 1,
+    PCCCH = 2,
+    PDTCH = 3,
+    PACCH = 4,
+    BCCH = 5,
+    N_BCCH = 6,
+    E_BCCH = 7,
+    CCCH = 8,
+    PAG_CH = 9,
+    RACH = 10,
+    SDCCH4_0 = 11,
+    SDCCH4_1 = 12,
+    SDCCH4_2 = 13,
+    SDCCH4_3 = 14,
+    SDCCH8_0 = 15,
+    SDCCH8_1 = 16,
+    SDCCH8_2 = 17,
+    SDCCH8_3 = 18,
+    SDCCH8_4 = 19,
+    SDCCH8_5 = 20,
+    SDCCH8_6 = 21,
+    SDCCH8_7 = 22,
+    SDCCH = 23,
+    SACCH = 24,
+    FACCH = 25,
+    TCH_EF = 26,
+    TCH_F = 27,
+    TCH_H_0 = 28,
+    TCH_H_1 = 29,
+    TCH_H = 30,
+    CBCH = 31,
+    PPCH = 32
+} channel_type_enum;
+
+typedef enum
+{
+    ul_amr_rate_t0,
+    ul_amr_rate_t1,
+    ul_amr_rate_t2,
+    ul_amr_rate_t3,
+    ul_amr_rate_t4,
+    ul_amr_rate_t5,
+    ul_amr_rate_t6,
+    ul_amr_rate_t7,
+    ul_amr_rate_t8,
+    ul_amr_rate_default
+} ul_amr_rate_enum;
+
+/* Temp solution fro MM Pre-integration */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+    ON_OTHER_COUNTRY = 0,
+    ON_HPLMN = 1,
+    ON_HOME_COUNTRY = 2,
+    ON_HPLMN_HOME_COUNTRY = ON_HPLMN | ON_HOME_COUNTRY //3      //3
+} hplmn_status_enum;
+
+typedef enum
+{
+    FPLMN_NONE              = 0,
+    FPLMN                   = 1,                      /* #11 */
+    FPLMNGPRS               = 2,                      /* #14 */
+    FPLMN_FPLMNGPRS         = FPLMN | FPLMNGPRS,
+    FPLMNCS                 = 4,                      /* EMM cause #18 */
+    FPLMN_FPLMNCS           = FPLMN | FPLMNCS,
+    FPLMNGPRS_FPLMNCS       = FPLMNGPRS | FPLMNCS,
+    FPLMN_FPLMNGPRS_FPLMNCS = FPLMN | FPLMNGPRS | FPLMNCS
+} fplmn_status_enum;
+
+typedef enum
+{
+    NOT_ON_ABNORMAL_REGN_AREA = 0,
+    ON_ABNORMAL_LA            = 1,
+    ON_ABNORMAL_RA            = 2,
+    ON_ABNORMAL_LA_RA         = ON_ABNORMAL_LA | ON_ABNORMAL_RA,
+    ON_ABNORMAL_TA
+} abnormal_regn_area_enum;
+
+/* Temp solution fro MM Pre-integration */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+    LR_NOT_RELATED = 0,
+    LR_ACCEPT,
+    LR_REJECT,
+    LR_ABNORMAL,
+    LR_ACCEPT_PS_ONLY,
+    LR_NO_NEEDED, /* SGLTE DSDS: PS @SIM2, just perform search but do not attach */
+} lr_result_enum;
+
+typedef enum
+{
+    MM_EVENT_NONE = 0,
+    MM_EVENT_LU = 1,                // LU is initiated
+    MM_EVENT_CM_IND = 2,            // MT CM is established
+    MM_EVENT_CM_NORMAL_REQ = 3,     // MO CM except ECC is requested by user
+    MM_EVENT_CM_ECC_REQ = 4,        // MO ECC is requested by user
+    MM_EVENT_CM_ACC = 5,            // MO CM is accepted by NW
+    MM_EVENT_CM_ABORT = 6,          // MO CM is aborted by user
+    MM_EVENT_ACCESS_BARRED = 7,     // LR while access class barred
+    MM_EVENT_ECALL_TEST_CALL = 8,
+    MM_EVENT_GMM_READY_STATE_IND = 9, //for NWSEL R7 "2G ready state don't allowe HPPLMN search feature", switch ready_state status
+    MM_EVENT_T3246_RUNNING = 11,    // LR while T3246 running
+    MM_EVENT_T3346_RUNNING = 12,    // LR while T3346 running
+    MM_EVENT_SEARCH_OTHER_RAT_IND = 13, //CSFB REDIR REJ, SEARCH OTHER RAT TO FINISH CALL
+    MM_EVENT_RECEIVE_PDP_ACT_REJ_IND = 14,
+    MM_EVENT_CM_REJ_TO_CC_FOR_RETRY =15, /*MM_EVENT_CM_REJ_TO_CC_FOR_RETRY must be added by NWSEL or MM*/
+    MM_EVENT_MT_CSFB_SEARCH_ABORT = 16   /*MM sends to NWSEL to abort the plmn search for MT CSFB session*/
+} mm_event_type_enum;
+
+typedef enum
+{
+   MM_ECALL_ONLY,
+   MM_ECALL_ONLY_LU_ALLOWED,
+   MM_ECALL_ONLY_RESTRICTION_REMOVED,
+   MM_NOT_ECALL_ONLY
+} mm_check_ecall_status_enum;
+
+typedef enum {
+    LTE_DUPLEX_TYPE_FDD = 0x00,
+    LTE_DUPLEX_TYPE_TDD = 0x01,
+    LTE_DUPLEX_TYPE_UNKNOWN = 0xFE, /* if no cell, ERRC reports this value */
+    LTE_DUPLEX_TYPE_NO_RESTRICTION = 0xFF /* if no need to separate TD/FDD, NWSEL use this value in REQ msg */
+} lte_duplex_type_enum;
+
+typedef enum
+{
+   MM_GMM_ECALL_ONLY = 0,  // For when__NG_ECALL_SUPPORT__ is only enabled
+   MM_GMM_NOT_ECALL_ONLY
+} mm_gmm_check_ecall_status_enum;
+
+typedef enum {
+    DUPLEX_TYPE_FDD = 0x00,
+    DUPLEX_TYPE_TDD = 0x01,
+    DUPLEX_TYPE_UNKNOWN = 0xFE, /* if no cell, AS reports this value */
+    DUPLEX_TYPE_NO_RESTRICTION = 0xFF /* if no need to separate TDD/FDD, NWSEL use this value in REQ msg */
+} duplex_type_enum;
+
+typedef enum
+{
+    EVENT_TYPE_CSFB = 0x01,
+    EVENT_TYPE_UPDATE_EPLMN = 0x02,
+    EVENT_TYPE_RETURN_NORMAL = 0x04,
+    EVENT_TYPE_PROC_RESULT = 0x08,
+    EVENT_TYPE_UPDATE_STATE = 0x10,
+    EVENT_TYPE_RETURN_ABNORMAL = 0x20,
+    EVENT_TYPE_PROC_RESULT_WITH_EPLMN = EVENT_TYPE_UPDATE_EPLMN | EVENT_TYPE_PROC_RESULT, //0x0A, for MM use
+    EVENT_TYPE_PROC_RESULT_UPDATE_STATE = EVENT_TYPE_PROC_RESULT | EVENT_TYPE_UPDATE_STATE //0x18, for MM and EVAL use
+   ,EVENT_TYPE_CONGESTION_TIMER_ACTIVE = 0x80  // __REL10__: t3346
+   ,EVENT_TYPE_THROTTLING_TIMER_ACTIVE = 0x100 /* VZ_REQ_LTEDATARETRY_7735 */
+   ,EVENT_TYPE_NO_AVAILABLE_PDN = 0x200
+   ,EVENT_TYPE_CSFB_EMC = 0x400
+   ,EVENT_TYPE_AC_BAR = 0x800
+} event_type_enum;
+
+
+typedef enum
+{
+    TIN_DELETED    = 0,
+    TIN_PTMSI,
+    TIN_RAT_RELATED_TMSI,
+    TIN_GUTI
+} tin_enum;
+
+//__LTE__
+typedef enum
+{
+    GMM_RAT_STATE_IR_INVALID = 0,
+    GMM_RAT_STATE_IR_ONGOING,
+    GMM_RAT_STATE_IS_INACTIVE_NAS,
+    GMM_RAT_STATE_IS_ACTIVE_NAS
+} gmm_rat_state_enum;
+
+/* TS 24.008 */
+typedef enum
+{
+    CS_VOICE_ONLY = 0,
+    IMS_PS_VOICE_ONLY,
+    CS_VOICE_PREFERRED_IMS_PS_VOICE_AS_SECONDARY,       /* CS voice preferred, IMS PS Voice as secondary */
+    IMS_PS_VOICE_PREFERRED_CS_VOICE_AS_SECONDARY        /* IMS PS voice preferred, CS Voice as secondary */
+} voice_domain_preference_enum;
+/* ERAC <-> ENAS/EAS end */
+
+/* ERAC <-> NWSEL begin */
+typedef enum
+{
+    IMS_REG_STATUS_UNSPECIFIED = 0,
+    IMS_REG_STATUS_REGISTERED,
+    IMS_REG_STATUS_UNREGISTERED
+} ims_reg_status_enum;
+/* ERAC <-> NWSEL end */
+
+/* MM <-> EMM begin */
+typedef enum
+{
+    MM_EMM_TMSI_STATUS_INVALID    = 0,
+    MM_EMM_TMSI_STATUS_VALID
+} mm_emm_tmsi_status_enum;
+
+typedef enum {
+    MM_NO_CHANGE,
+    MM_CELL_CHANGE,
+    MM_RAI_CHANGE,
+    MM_LAI_CHANGE,
+    MM_PERIODIC_RA_CHANGE,
+    MM_REG_REQ
+}mm_cell_change_enum;
+
+
+#ifdef __CS_SERVICE__
+typedef enum
+{
+    MM_U1_UPDATED = 0,
+    MM_U2_NOT_UPDATED = 1,
+    MM_U3_ROAMING_NOT_ALLOWED = 3,
+    MM_U4_UPDATING_DISABLED = MM_U2_NOT_UPDATED,
+    MM_UPDATE_STATUS_INVALID = 4
+} gsm_update_status_enum;
+
+typedef enum {
+  MM_START_UP = 1,
+  MM_IMSI_ATTACH_INIT,
+  MM_IMSI_ATTACHED,
+  MM_LU_REJECT,
+  MM_IMSI_DETACH_INIT,
+  MM_IMSI_DETACHED
+} gsm_state_enum;
+#endif
+
+#ifdef __PS_SERVICE__
+typedef enum
+{
+    GU1_UPDATED              = 0,
+    GU2_NOT_UPDATED          = 1,
+    GU3_ROAMING_NOT_ALLOWED  = 2,
+    RA_NOT_ALLOWED           = 3  /* 3G Modify, not used */
+}gprs_update_status_enum;
+//typedef gprs_update_status_enum gmm_update_status_enum;
+
+typedef enum
+{
+     STARTUP = 1,
+     ATTACHED_INIT,
+     GMM_ATTACHED,
+     DETACHED,
+     DETACHED_INIT
+}gprs_state_enum; /* 3G Modify: gprs_state_enum */
+
+typedef enum
+{
+    GPRS_TRAFFIC_CHANNNEL_DORMANT = 0,
+    GPRS_TRAFFIC_CHANNNEL_ACTIVE
+} gprs_traffic_channel_status_enum;
+#endif
+
+typedef enum
+{
+    EMM_EU1_UPDATED              = 0,
+    EMM_EU2_NOT_UPDATED          = 1,
+    EMM_EU3_ROAMING_NOT_ALLOWED  = 2
+} eps_update_status_enum;
+
+typedef enum
+{
+    VGMM_UPDATED = 0,
+    VGMM_NOT_UPDATED = 1,
+    VGMM_ROAMING_NOT_ALLOWED = 2
+} vgmm_5g_update_status_enum;
+
+typedef enum
+{
+     EMM_STARTUP = 1,
+     EMM_ATTACHED_INIT,
+     EMM_ATTACHED,
+     EMM_DETACHED_INIT,
+     EMM_DETACHED
+} eps_state_enum;
+
+typedef enum
+{
+    GMM_MSG_ATTACH_REQUEST    = 1,
+    GMM_MSG_ATTACH_ACCEPT,
+    GMM_MSG_ATTACH_COMPLETE,
+    GMM_MSG_ATTACH_REJECT,
+    GMM_MSG_DETACH_REQUEST,
+    GMM_MSG_DETACH_ACCEPT,
+    GMM_MSG_RAU_REQUEST,
+    GMM_MSG_RAU_ACCEPT,
+    GMM_MSG_RAU_COMPLETE,
+    GMM_MSG_RAU_REJECT,
+    GMM_MSG_SERVICE_REQUEST,
+    GMM_MSG_SERVICE_ACCEPT,
+    GMM_MSG_SERVICE_REJECT,
+    GMM_MSG_PTMSI_REALLOC_COMMAND,
+    GMM_MSG_PTMSI_REALLOC_COMPLETE,
+    GMM_MSG_AUTH_AND_CIPHER_REQ,
+    GMM_MSG_AUTH_AND_CIPHER_RSP,
+    GMM_MSG_AUTH_AND_CIPHER_REJ,
+    GMM_MSG_AUTH_AND_CIPHER_FAIL,
+    GMM_MSG_IDENITY_REQ,
+    GMM_MSG_IDENITY_RSP,
+    GMM_MSG_GMM_STATUS,
+    GMM_MSG_GMM_INFORMATION,
+    GMM_MSG_INVALID
+} gmm_msg_type_enum;
+
+typedef enum
+{
+    GMM_ATTACH_TYPE_GPRS_ATTACH    = 1,
+    GMM_ATTACH_TYPE_COMBINED_ATTACH    = 3,
+    GMM_ATTACH_TYPE_EMERGENCY_ATTACH    = 4,
+
+    GMM_GPRS_ATTACH_ONLY = 1,
+    GPRS_ATTACH_WHILE_IMSI_ATTACH = 2,
+    COMBINED_ATTACH = 3,
+    GMM_ATTACH_TYPE_INVALID = 5
+} gmm_attach_type_enum;
+
+typedef enum
+{
+    GMM_UPDATE_TYPE_RAU    = 0,
+    GMM_UPDATE_TYPE_COMBINED_RAU,
+    GMM_UPDATE_TYPE_COMBINED_RAU_IMSI_ATTACH,
+    GMM_UPDATE_TYPE_PERIODIC_RAU,
+    GMM_UPDATE_TYPE_INVALID,
+
+    RAU_UPDATE = 0,
+    COMBINED_RAU_LAU = 1,
+    COMBINED_RAU_LAU_WITH_IMSI = 2,
+    PERIODIC_RAU_UPDATE = 3
+} gmm_update_type_enum;
+
+typedef enum
+{
+    GMM_ATTACH_RESULT_GPRS_ONLY_ATTACHED    = 1,
+    GMM_ATTACH_RESULT_COMBINED_ATTACHED    = 3,
+
+   MM_GPRS_ONLY_ATTACHED       = 1,
+   COMBINED_GPRS_IMSI_ATTACHED = 3,
+   GMM_ATTACH_RESULT_INVALID
+} gmm_attach_result_enum;
+
+typedef enum
+{
+    GMM_UPDATE_RESULT_RA_UPDATED                     = 0,
+    GMM_UPDATE_RESULT_COMBINED_UPDATED               = 1,
+    GMM_UPDATE_RESULT_RA_UPDATED_ISR_ACTIVATED       = 4,
+    GMM_UPDATE_RESULT_COMBINED_UPDATED_ISR_ACTIVATED = 5,
+    GMM_UPDATE_RESULT_INVALID
+} gmm_update_result_enum;
+
+typedef enum
+{
+    GMM_CAUSE_IMSI_UNKNOWN_IN_HLR    = 0x02,
+    GMM_CAUSE_ILLEGAL_MS    = 0x03,
+    GMM_CAUSE_IMEI_NOT_ACCEPTED    = 0x05,
+    GMM_CAUSE_ILLEGAL_ME    = 0x06,
+    GMM_CAUSE_GPRS_NOT_ALLOWED    = 0x07,
+    GMM_CAUSE_GPRS_NON_GPRS_NOT_ALLOWED    = 0x08,
+    GMM_CAUSE_MS_ID_NOT_DERIVED_BY_NW    = 0x09,
+    GMM_CAUSE_IMPLICIT_DETACH    = 0x0a,
+    GMM_CAUSE_PLMN_NOT_ALLOWED    = 0x0b,
+    GMM_CAUSE_LA_NOT_ALLOWED    = 0x0c,
+    GMM_CAUSE_ROAMING_NOT_ALLOWED_IN_LA    = 0x0d,
+    GMM_CAUSE_GPRS_NOT_ALLOWED_IN_PLMN    = 0x0e,
+    GMM_CAUSE_NO_SUITABLE_CELL_IN_LA    = 0x0f,
+    GMM_CAUSE_MSC_NOT_REACHABLE    = 0x10,
+    GMM_CAUSE_NW_FAILURE    = 0x11,
+    GMM_CAUSE_MAC_FAILURE    = 0x14,
+    GMM_CAUSE_SYNCH_FAILURE    = 0x15,
+    GMM_CAUSE_CONGESTION    = 0x16,
+    GMM_CAUSE_GSM_AUTH_UNACCEPTABLE    = 0x17,
+    GMM_CAUSE_NOT_AUTH_FOR_CSG    = 0x19,
+    GMM_CAUSE_NO_PDP_CTXT_ACT    = 0x28,
+    GMM_CAUSE_SEMANTIC_INCORRECT    = 0x5f,
+    GMM_CAUSE_INVALID_MANDATORY_INFO    = 0x60,
+    GMM_CAUSE_MSG_TYPE_NOT_EXIST    = 0x61,
+    GMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE    = 0x62,
+    GMM_CAUSE_IE_NOT_EXIST    = 0x63,
+    GMM_CAUSE_CONDITIONAL_IE_ERROR    = 0x64,
+    GMM_CAUSE_MESSAGE_NOT_COMPATIBLE    = 0x65,
+    GMM_CAUSE_PROTOCOL_ERROR    = 0x6f,
+} gmm_cause_enum;
+
+typedef enum
+{
+    MM_EMM_MT_CAUSE_UNSPECIFIED    = 0,
+    MM_EMM_MT_CAUSE_PS_PAGING_WITH_IMSI
+} mm_emm_mt_cause_enum;
+
+typedef enum
+{
+    GMM_DETACH_TYPE_MO_GPRS_DETACH    = 1,
+    GMM_DETACH_TYPE_MO_IMSI_DETACH,
+    GMM_DETACH_TYPE_MO_COMBINED_DETACH,
+    GMM_DETACH_TYPE_MT_REATTACH_REQUIRED,
+    GMM_DETACH_TYPE_MT_REATTACH_NOT_REQUIRED,
+    GMM_DETACH_TYPE_MO_POWEROFF_GPRS_DETACH,
+    GMM_DETACH_TYPE_MO_POWEROFF_COMBINED_DETACH,
+    GMM_DETACH_TYPE_INVALID
+} gmm_detach_type_enum;
+
+#ifdef __FIVEG_NAS__
+typedef enum
+{
+    VGMM_DETACH_TYPE_MO_GPRS_DETACH    = 1,
+    VGMM_DETACH_TYPE_MO_POWEROFF_DETACH,
+    VGMM_DETACH_TYPE_MT_REATTACH_REQUIRED,
+    VGMM_DETACH_TYPE_MT_REATTACH_NOT_REQUIRED,
+} vgmm_detach_type_enum;
+#endif
+
+typedef enum
+{
+    EMM_MSG_ATTACH_REQUEST              = 0x41,
+    EMM_MSG_ATTACH_ACCEPT               = 0x42,
+    EMM_MSG_ATTACH_COMPLETE             = 0x43,
+    EMM_MSG_ATTACH_REJECT               = 0x44,
+    EMM_MSG_DETACH_REQUEST              = 0x45,
+    EMM_MSG_DETACH_ACCEPT               = 0x46,
+    EMM_MSG_TAU_REQUEST                 = 0x48,
+    EMM_MSG_TAU_ACCEPT                  = 0x49,
+    EMM_MSG_TAU_COMPLETE                = 0x4A,
+    EMM_MSG_TAU_REJECT                  = 0x4B,
+    EMM_MSG_EXT_SERVICE_REQUEST         = 0x4C,
+    EMM_MSG_SERVICE_REJECT              = 0x4E,
+    EMM_MSG_GUTI_REALLOC_COMMAND        = 0x50,
+    EMM_MSG_GUTI_REALLOC_COMPLETE       = 0x51,
+    EMM_MSG_AUTH_REQ                    = 0x52,
+    EMM_MSG_AUTH_RSP                    = 0x53,
+    EMM_MSG_AUTH_REJ                    = 0x54,
+    EMM_MSG_AUTH_FAIL                   = 0x5C,
+    EMM_MSG_IDENTITY_REQ                = 0x55,
+    EMM_MSG_IDENTITY_RSP                = 0x56,
+    EMM_MSG_SEC_MODE_COMMAND            = 0x5D,
+    EMM_MSG_SEC_MODE_COMPLETE           = 0x5E,
+    EMM_MSG_SEC_MODE_REJECT             = 0x5F,
+    EMM_MSG_EMM_STATUS                  = 0x60,
+    EMM_MSG_EMM_INFORMATION             = 0x61,
+    EMM_MSG_DL_NAS_TRANSPORT            = 0x62,
+    EMM_MSG_UL_NAS_TRANSPORT            = 0x63,
+    EMM_MSG_CS_SERVICE_NOTIFY           = 0x64,
+    EMM_MSG_DL_NAS_GENERIC_TRANSPORT    = 0x68,
+    EMM_MSG_UL_NAS_GENERIC_TRANSPORT    = 0x69,
+    EMM_MSG_SERVICE_REQUEST             = 0xFE,
+    EMM_MSG_INVALID                     = 0xFF
+} emm_msg_type_enum;
+
+typedef enum
+{
+    EMM_ATTACH_TYPE_NONE = 0,
+    EMM_ATTACH_TYPE_EPS_ATTACH    = 1,
+    EMM_ATTACH_TYPE_COMBINED_ATTACH    = 2,
+    EMM_ATTACH_TYPE_EMERGENCY_ATTACH    = 6
+} emm_attach_type_enum;
+
+typedef enum
+{
+    EMM_UPDATE_TYPE_TAU    = 0,
+    EMM_UPDATE_TYPE_COMBINED_TAU,
+    EMM_UPDATE_TYPE_COMBINED_TAU_IMSI_ATTACH,
+    EMM_UPDATE_TYPE_PERIODIC_TAU,
+    EMM_UPDATE_TYPE_INVALID
+} emm_update_type_enum;
+
+typedef enum
+{
+    EMM_ATTACH_RESULT_NONE = 0,
+    EMM_ATTACH_RESULT_EPS_ONLY_ATTACHED,
+    EMM_ATTACH_RESULT_COMBINED_ATTACHED
+} emm_attach_result_enum;
+
+typedef enum
+{
+    EMM_UPDATE_RESULT_TA_UPDATED = 0,
+    EMM_UPDATE_RESULT_COMBINED_UPDATED = 1,
+    EMM_UPDATE_RESULT_TA_UPDATED_ISR_ACTIVATED = 4,
+    EMM_UPDATE_RESULT_COMBINED_UPDATED_ISR_ACTIVATED = 5,
+    EMM_UPDATE_RESULT_INVALID
+} emm_update_result_enum;
+
+typedef enum
+{
+    EMM_CAUSE_CAUSE_NONE = 0x00,
+    EMM_CAUSE_IMSI_UNKNOWN_IN_HSS    = 0x02,
+    EMM_CAUSE_ILLEGAL_UE    = 0x03,
+    EMM_CAUSE_IMEI_NOT_ACCEPTED    = 0x05,
+    EMM_CAUSE_ILLEGAL_ME    = 0x06,
+    EMM_CAUSE_EPS_NOT_ALLOWED    = 0x07,
+    EMM_CAUSE_EPS_NON_EPS_NOT_ALLOWED    = 0x08,
+    EMM_CAUSE_UE_ID_NOT_DERIVED_BY_NW    = 0x09,
+    EMM_CAUSE_IMPLICIT_DETACH    = 0x0a,
+    EMM_CAUSE_PLMN_NOT_ALLOWED    = 0x0b,
+    EMM_CAUSE_TA_NOT_ALLOWED    = 0x0c,
+    EMM_CAUSE_ROAMING_NOT_ALLOWED_IN_TA    = 0x0d,
+    EMM_CAUSE_EPS_NOT_ALLOWED_IN_PLMN    = 0x0e,
+    EMM_CAUSE_NO_SUITABLE_CELL_IN_TA    = 0x0f,
+    EMM_CAUSE_MSC_NOT_REACHABLE    = 0x10,
+    EMM_CAUSE_NW_FAILURE    = 0x11,
+    EMM_CAUSE_CS_NOT_AVAILABLE    = 0x12,
+    EMM_CAUSE_ESM_FAILURE    = 0x13,
+    EMM_CAUSE_MAC_FAILURE    = 0x14,
+    EMM_CAUSE_SYNCH_FAILURE    = 0x15,
+    EMM_CAUSE_CONGESTION    = 0x16,
+    EMM_CAUSE_UE_SEC_CAPA_MISMATCH    = 0x17,
+    EMM_CAUSE_SEC_MODE_REJ_UNSPECIFIED    = 0x18,
+    EMM_CAUSE_NOT_AUTH_FOR_CSG    = 0x19,
+    EMM_CAUSE_NON_EPS_AUTH_UNACCEPTABLE    = 0x1a,
+    EMM_CAUSE_REQUEST_SERVICE_OPTION_NOT_AUTHORIZED_IN_PLMN = 0x23,
+    EMM_CAUSE_CS_TEMP_NOT_AVAILABLE    = 0x27,
+    EMM_CAUSE_NO_EPS_CTXT_ACT    = 0x28,
+    EMM_CAUSE_SEVERE_NW_FAILURE    = 0x2a,            /* R11 CP#120594 CR#1473 */
+    EMM_CAUSE_SEMANTIC_INCORRECT    = 0x5f,
+    EMM_CAUSE_INVALID_MANDATORY_INFO    = 0x60,
+    EMM_CAUSE_MSG_TYPE_NOT_EXIST    = 0x61,
+    EMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE    = 0x62,
+    EMM_CAUSE_IE_NOT_EXIST    = 0x63,
+    EMM_CAUSE_CONDITIONAL_IE_ERROR    = 0x64,
+    EMM_CAUSE_MESSAGE_NOT_COMPATIBLE    = 0x65,
+    EMM_CAUSE_PROTOCOL_ERROR    = 0x6f,
+    /* Incase if any more standard cause values are to be added then
+     * the cause having the greatest value should be placed just before
+     * the internal cause values.
+     */
+    /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
+
+    EMM_CAUSE_FORBIDDEN_PLMN                    = FORBIDDEN_PLMN, /* 0x70 */
+    EMM_CAUSE_NO_COVERAGE                       = NO_COVERAGE,
+    EMM_CAUSE_EPS_SERV_NOT_ALLOWED              = GPRS_SERV_NOT_ALLOWED, /* for GEMINI, PS can NOT attach in SIM1 and SIM2 */
+    EMM_CAUSE_SIM_REMOVED                       = SIM_REMOVED,
+    EMM_CAUSE_SIM_INVALID_FOR_PS                = SIM_INVALID_FOR_PS,
+    EMM_CAUSE_SIM_INVALID_FOR_CS                = SIM_INVALID_FOR_CS,
+    EMM_CAUSE_SIM_INVALID_FOR_CS_AND_PS         = SIM_INVALID_FOR_CS_AND_PS,
+    EMM_CAUSE_EAS_IN_SUSPEND_MODE               = MM_REJ_CUZ_RR_IN_SUSPEND_MODE,
+    EMM_CAUSE_LIMITED_SERVICE                   = GPRS_IN_LIMITED_SERVICE,
+    EMM_CAUSE_SIM_INVALID_FOR_LTE_BECAUSE_NON_USIM_INSERTED = 0x8f,
+    EMM_CAUSE_OOS_IND   = 0x90,
+    EMM_CAUSE_ECALL_INACTIVE = 0x91
+} emm_cause_enum;
+
+typedef enum
+{
+    CSFB_INFO_EMM_CAUSE_CAUSE_NONE = 0x00,
+    CSFB_INFO_EMM_CAUSE_IMSI_UNKNOWN_IN_HSS    = 0x02,
+    CSFB_INFO_EMM_CAUSE_ILLEGAL_UE    = 0x03,
+    CSFB_INFO_EMM_CAUSE_IMEI_NOT_ACCEPTED    = 0x05,
+    CSFB_INFO_EMM_CAUSE_ILLEGAL_ME    = 0x06,
+    CSFB_INFO_EMM_CAUSE_EPS_NOT_ALLOWED    = 0x07,
+    CSFB_INFO_EMM_CAUSE_EPS_NON_EPS_NOT_ALLOWED    = 0x08,
+    CSFB_INFO_EMM_CAUSE_UE_ID_NOT_DERIVED_BY_NW    = 0x09,
+    CSFB_INFO_EMM_CAUSE_IMPLICIT_DETACH    = 0x0a,
+    CSFB_INFO_EMM_CAUSE_PLMN_NOT_ALLOWED    = 0x0b,
+    CSFB_INFO_EMM_CAUSE_TA_NOT_ALLOWED    = 0x0c,
+    CSFB_INFO_EMM_CAUSE_ROAMING_NOT_ALLOWED_IN_TA    = 0x0d,
+    CSFB_INFO_EMM_CAUSE_EPS_NOT_ALLOWED_IN_PLMN    = 0x0e,
+    CSFB_INFO_EMM_CAUSE_NO_SUITABLE_CELL_IN_TA    = 0x0f,
+    CSFB_INFO_EMM_CAUSE_MSC_NOT_REACHABLE    = 0x10,
+    CSFB_INFO_EMM_CAUSE_NW_FAILURE    = 0x11,
+    CSFB_INFO_EMM_CAUSE_CS_NOT_AVAILABLE    = 0x12,
+    CSFB_INFO_EMM_CAUSE_ESM_FAILURE    = 0x13,
+    CSFB_INFO_EMM_CAUSE_MAC_FAILURE    = 0x14,
+    CSFB_INFO_EMM_CAUSE_SYNCH_FAILURE    = 0x15,
+    CSFB_INFO_EMM_CAUSE_CONGESTION    = 0x16,
+    CSFB_INFO_EMM_CAUSE_UE_SEC_CAPA_MISMATCH    = 0x17,
+    CSFB_INFO_EMM_CAUSE_SEC_MODE_REJ_UNSPECIFIED    = 0x18,
+    CSFB_INFO_EMM_CAUSE_NOT_AUTH_FOR_CSG    = 0x19,
+    CSFB_INFO_EMM_CAUSE_NON_EPS_AUTH_UNACCEPTABLE    = 0x1a,
+    CSFB_INFO_EMM_CAUSE_CS_TEMP_NOT_AVAILABLE    = 0x27,
+    CSFB_INFO_EMM_CAUSE_NO_EPS_CTXT_ACT    = 0x28,
+    CSFB_INFO_EMM_CAUSE_SEMANTIC_INCORRECT    = 0x5f,
+    CSFB_INFO_EMM_CAUSE_INVALID_MANDATORY_INFO    = 0x60,
+    CSFB_INFO_EMM_CAUSE_MSG_TYPE_NOT_EXIST    = 0x61,
+    CSFB_INFO_EMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE    = 0x62,
+    CSFB_INFO_EMM_CAUSE_IE_NOT_EXIST    = 0x63,
+    CSFB_INFO_EMM_CAUSE_CONDITIONAL_IE_ERROR    = 0x64,
+    CSFB_INFO_EMM_CAUSE_MESSAGE_NOT_COMPATIBLE    = 0x65,
+    CSFB_INFO_EMM_CAUSE_PROTOCOL_ERROR    = 0x6f,
+    /* Incase if any more standard cause values are to be added then
+     * the cause having the greatest value should be placed just before
+     * the internal cause values.
+     */
+    /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
+
+    CSFB_INFO_EMM_CAUSE_FORBIDDEN_PLMN                    = FORBIDDEN_PLMN, /* 0x70 */
+    CSFB_INFO_EMM_CAUSE_NO_COVERAGE                       = NO_COVERAGE,
+    CSFB_INFO_EMM_CAUSE_EPS_SERV_NOT_ALLOWED              = GPRS_SERV_NOT_ALLOWED, /* for GEMINI, PS can NOT attach in SIM1 and SIM2 */
+    CSFB_INFO_EMM_CAUSE_SIM_REMOVED                       = SIM_REMOVED,
+    CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_PS                = SIM_INVALID_FOR_PS,
+    CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_CS                = SIM_INVALID_FOR_CS,
+    CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_CS_AND_PS         = SIM_INVALID_FOR_CS_AND_PS,
+    CSFB_INFO_EMM_CAUSE_EAS_IN_SUSPEND_MODE               = MM_REJ_CUZ_RR_IN_SUSPEND_MODE,
+    CSFB_INFO_EMM_CAUSE_LIMITED_SERVICE                   = GPRS_IN_LIMITED_SERVICE,
+	CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_LTE_BECAUSE_NON_USIM_INSERTED = 0x8f,
+	CSFB_INFO_EMM_T3442_IS_RUNNING,
+    CSFB_INFO_EMM_SS_EPS_ONLY_CAUSE_18
+} emm_csfb_failure_info_enum;
+
+typedef enum
+{
+    EMM_CAUSE_SOURCE_OTHER              = 0,
+    EMM_CAUSE_SOURCE_ATTACH_REJECT      = 1,
+    EMM_CAUSE_SOURCE_TAU_REJECT         = 2,
+    EMM_CAUSE_SOURCE_NW_DETACH          = 3,
+    EMM_CAUSE_SOURCE_SERVICE_REJECT     = 4,
+    EMM_CAUSE_SOURCE_AUTH_REJECT        = 5,
+}emm_cause_source_enum;
+
+typedef enum
+{
+    ESM_MSG_INVALID                                         = 0x00,
+    ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST     = 0xC1,
+    ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT      = 0xC2,
+    ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT      = 0xC3,
+    ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST   = 0xC5,
+    ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT    = 0xC6,
+    ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT    = 0xC7,
+    ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_REQUEST               = 0xC9,
+    ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_ACCEPT                = 0xCA,
+    ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_REJECT                = 0xCB,
+    ESM_MSG_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST           = 0xCD,
+    ESM_MSG_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT            = 0xCE,
+    ESM_MSG_PDN_CONNECTIVITY_REQUEST                        = 0xD0,
+    ESM_MSG_PDN_CONNECTIVITY_REJECT                         = 0xD1,
+    ESM_MSG_PDN_DISCONNECT_REQUEST                          = 0xD2,
+    ESM_MSG_PDN_DISCONNECT_REJECT                           = 0xD3,
+    ESM_MSG_BEARER_RESOURCE_ALLOCATION_REQUEST              = 0xD4,
+    ESM_MSG_BEARER_RESOURCE_ALLOCATION_REJECT               = 0xD5,
+    ESM_MSG_BEARER_RESOURCE_MODIFICATION_REQUEST            = 0xD6,
+    ESM_MSG_BEARER_RESOURCE_MODIFICATION_REJECT             = 0xD7,
+    ESM_MSG_ESM_INFORMATION_REQUEST                         = 0xD9,
+    ESM_MSG_ESM_INFORMATION_RESPONSE                        = 0xDA,
+    ESM_MSG_NOTIFICATION                                    = 0xDB,
+    ESM_MSG_ESM_STATUS                                      = 0xE8
+
+} esm_msg_type_enum;
+
+typedef enum
+{
+    EMM_SR_TYPE_SR,
+    EMM_SR_TYPE_EXSR
+} emm_sr_type_enum;
+
+typedef enum
+{
+    BCM_NONE  = 0,
+    BCM_MS_ONLY,
+    BCM_MS_NW
+
+} bcm_enum;
+
+typedef enum
+{
+    ETFT_NOT_SUPPORT = 0,
+    ETFT_SUPPORT
+
+} etft_enum;
+
+typedef enum
+{
+    EMM_DETACH_TYPE_MO_EPS_DETACH    = 1,
+    EMM_DETACH_TYPE_MO_IMSI_DETACH,
+    EMM_DETACH_TYPE_MO_COMBINED_DETACH,
+    EMM_DETACH_TYPE_MT_REATTACH_REQUIRED,
+    EMM_DETACH_TYPE_MT_REATTACH_NOT_REQUIRED,
+    EMM_DETACH_TYPE_MT_IMSI_DETACH,
+    EMM_DETACH_TYPE_MO_POWEROFF_EPS_DETACH,
+    EMM_DETACH_TYPE_MO_POWEROFF_COMBINED_DETACH
+} emm_detach_type_enum;
+
+typedef enum
+{
+    MM_MSG_IMSI_DETACH_IND    = 1,
+    MM_MSG_LU_ACCEPT,
+    MM_MSG_LU_REJECT,
+    MM_MSG_LU_REQUEST,
+    MM_MSG_AUTH_REJ,
+    MM_MSG_AUTH_REQ,
+    MM_MSG_AUTH_RSP,
+    MM_MSG_IDENITY_REQ,
+    MM_MSG_IDENITY_RSP,
+    MM_MSG_TMSI_REALLOC_COMMAND,
+    MM_MSG_TMSI_REALLOC_COMPLETE,
+    MM_MSG_CM_SERVICE_ACCEPT,
+    MM_MSG_CM_SERVICE_REJECT,
+    MM_MSG_CM_SERVICE_ABORT,
+    MM_MSG_CM_SERVICE_REQUEST,
+    MM_MSG_CM_SERVICE_PROMPT,
+    MM_MSG_CM_REEST_REQUEST,
+    MM_MSG_ABORT,
+    MM_MSG_MM_NULL,
+    MM_MSG_MM_STATUS,
+    MM_MSG_MM_INFORMATION,
+    MM_MSG_INVALID
+} mm_msg_type_enum;
+
+typedef enum
+{
+    MM_REJ_CAUSE_IMSI_UNKNOWN_IN_HLR    = 0x02,
+    MM_REJ_CAUSE_ILLEGAL_MS    = 0x03,
+    MM_REJ_CAUSE_IMEI_NOT_ACCEPTED    = 0x05,
+    MM_REJ_CAUSE_ILLEGAL_ME    = 0x06,
+    MM_REJ_CAUSE_PLMN_NOT_ALLOWED    = 0x0b,
+    MM_REJ_CAUSE_LA_NOT_ALLOWED    = 0x0c,
+    MM_REJ_CAUSE_ROAMING_NOT_ALLOWED_IN_LA    = 0x0d,
+    MM_REJ_CAUSE_GPRS_NOT_ALLOWED_IN_PLMN    = 0x0e,
+    MM_REJ_CAUSE_NO_SUITABLE_CELL_IN_LA    = 0x0f,
+    MM_REJ_CAUSE_NW_FAILURE    = 0x11,
+    MM_REJ_CAUSE_MAC_FAILURE    = 0x14,
+    MM_REJ_CAUSE_SYNCH_FAILURE    = 0x15,
+    MM_REJ_CAUSE_CONGESTION    = 0x16,
+    MM_REJ_CAUSE_GSM_AUTH_UNACCEPTABLE    = 0x17,
+    MM_REJ_CAUSE_NOT_AUTH_FOR_CSG    = 0x19,
+    MM_REJ_CAUSE_SERV_OPT_NOT_SUPPORT    = 0x20,
+    MM_REJ_CAUSE_SERV_OPT_NOT_SUBSCRIBE    = 0x21,
+    MM_REJ_CAUSE_SERV_OPT_TEMP_OUT_OF_ORDER    = 0x22,
+    MM_REJ_CAUSE_CALL_NOT_IDENTIFIED    = 0x26,
+    MM_CAUSE_SEMANTIC_INCORRECT    = 0x5f,
+    MM_CAUSE_INVALID_MANDATORY_INFO    = 0x60,
+    MM_CAUSE_MSG_TYPE_NOT_EXIST    = 0x61,
+    MM_CAUSE_MSG_TYPE_NOT_COMPATIBLE    = 0x62,
+    MM_CAUSE_IE_NOT_EXIST    = 0x63,
+    MM_CAUSE_CONDITIONAL_IE_ERROR    = 0x64,
+    MM_CAUSE_MESSAGE_NOT_COMPATIBLE    = 0x65,
+    MM_CAUSE_PROTOCOL_ERROR    = 0x6f
+} mm_rej_cause_enum;
+
+typedef enum
+{
+    MM_EMM_CSFB_REQ_TYPE_INVALID    = 0,
+    MM_EMM_CSFB_REQ_TYPE_NORMAL_CALL,
+    MM_EMM_CSFB_REQ_TYPE_EMERGENCY_CALL,
+    MM_EMM_CSFB_REQ_TYPE_SS,
+    MM_EMM_CSFB_REQ_TYPE_LCS,
+    MM_EMM_CSFB_REQ_TYPE_RESERVED
+} mm_emm_csfb_req_type_enum;
+
+typedef enum
+{
+    MM_EMM_CSFB_PAGING_ID_INVALID    = 0,
+    MM_EMM_CSFB_PAGING_ID_IMSI,
+    MM_EMM_CSFB_PAGING_ID_TMSI
+} mm_emm_csfb_paging_id_enum;
+
+typedef enum
+{
+    MM_EMM_CSFB_SUCCESS    = 0,
+    MM_EMM_CSFB_FAILURE
+} mm_emm_csfb_result_enum;
+
+typedef enum
+{
+    MM_EMM_EVENT_NONE    = 0,
+    MM_EMM_T3312_EXPIRATION,
+    MM_EMM_T3323_EXPIRATION,
+    MM_EMM_T3412_EXPIRATION,
+    MM_EMM_T3423_EXPIRATION
+} mm_emm_isr_event_enum;
+
+typedef enum
+{
+    MM_EMM_U1_UPDATED   = 0,
+    MM_EMM_U2_NOT_UPDATED,
+    MM_EMM_U3_ROAMING_NOT_ALLOWED,
+    MM_EMM_U4_UPDATING_DISABLED,
+    MM_EMM_UPDATE_STATUS_INVALID
+} mm_emm_update_status_enum;
+
+typedef enum
+{
+    MM_EMM_PROC_DIR_UE_INITIATED   = 0,
+    MM_EMM_PROC_DIR_NW_INITIATED,
+    MM_EMM_PROC_DIR_INVALID
+} gmm_proc_direction_enum;
+
+/* MM <-> EMM end */
+
+typedef enum {
+    ATTACH_DETACH_NOT_REQURED_BY_NW = 0,
+    ATTACH_DETACH_REQURED_BY_NW
+}att_flag_enum;
+
+/* Temp solution fro MM Pre-integration */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+    NO_ADDITIONAL_INFO  = 0,
+    CSFB_NOT_PREFERRED  = 1,
+    SMS_ONLY            = 2,
+    AUR_RESERVED
+} additional_update_result_enum;
+
+
+typedef enum
+{
+    NO_STATUS = 1,
+    PROC_STARTED,
+    PROC_SUCCESSFUL,
+    PROC_FAILED,
+    PROC_REJECTED,
+    PROC_NEED_RETRY
+}proc_status_enum;
+
+typedef enum
+{
+   UMTS_RRC_IDLE,
+   UMTS_RRC_CELL_FACH,
+   UMTS_RRC_CELL_PCH,
+   UMTS_RRC_URA_PCH,
+   UMTS_RRC_CELL_DCH,
+   UMTS_RRC_INACTIVE
+} umts_rrc_state_enum;
+
+typedef enum
+{
+   PS_DOMAIN_CONN_INACTIVE,
+   PS_DOMAIN_CONN_DORMANT,
+   PS_DOMAIN_CONN_ACTIVE
+} ps_conn_status_enum;
+
+typedef enum
+{
+   GSM_RRM_NULL,
+   GSM_RRM_INACTIVE,
+   GSM_RRM_SELECTION,
+   GSM_RRM_IDLE,
+   GSM_RRM_ACCESS,
+   GSM_RRM_PKT_TRANSFER,
+   GSM_RRM_DEDICATED,
+   GSM_RRM_RESELCTION,
+} gsm_rrm_state_enum;
+
+//#ifdef __VOLTE_SUPPORT__
+typedef enum
+{
+    EMC_STATUS_RELEASED = 0,
+    EMC_STATUS_REQUIRED = 1
+} emc_status_enum;
+
+typedef enum
+{
+    EMC_PDN_STATUS_NONE           = 0,
+    EMC_PDN_STATUS_EMC_ONLY       = 1,
+    EMC_PDN_STATUS_EMC_AND_NORMAL = 2
+} emc_pdn_status_enum;
+
+//#endif /* __VOLTE_SUPPORT__ */
+
+typedef enum
+{
+    RAT_DUPLEX_TYPE_UNKNOWN = 0,
+    RAT_DUPLEX_TYPE_FDD,
+    RAT_DUPLEX_TYPE_TDD
+} rat_duplex_type_enum;
+
+#if defined(__CDMA2000_RAT__)
+typedef enum
+{
+    MMDC_SEARCH_AP_TRIGGER = 0,
+    MMDC_SEARCH_2G_CELL_CHANGE,
+    MMDC_SEARCH_2G_HO,
+}mmdc_recovery_search_enum;
+
+typedef enum
+{
+    PLMN_SEARCH_ABORT_2G = 0,
+    PLMN_SEARCH_ABORT_3G = 1,
+    PLMN_SEARCH_ABORT_4G = 2
+}plmn_search_abort_cause_enum;
+
+typedef enum
+{
+    ABORT_STATUS_SUCCESS = 0,
+    ABORT_STATUS_FAIL,
+    ABORT_STATUS_UNKNOWN = 255
+} plmn_search_abort_proc_status_enum;
+
+typedef enum
+{
+    MMDC_SUITABLE_CELL = 0,
+    MMDC_ACCEPTABLE_CELL = 1,
+    MMDC_NO_CELL = 2
+} mmdc_camp_on_status_enum;
+
+typedef enum
+{
+    MMDC_PSD_SWITCH_CAUSE_PSDM = 0,
+    MMDC_PSD_SWITCH_CAUSE_MANUAL_SELECTION,
+    MMDC_PSD_SWITCH_CAUSE_AUTO_RESELECTION,
+    MMDC_PSD_SWITCH_CAUSE_NC0,
+    MMDC_PSD_SWITCH_CAUSE_QUERY_CURRENT,
+    MMDC_PSD_SWITCH_CAUSE_UNKNOWN = 255
+} mmdc_psd_switch_cause_enum;
+#endif /* __SGLTE__ */
+
+
+typedef enum
+{
+    AS_IND_CELL_CHANGE_IND = 0x01,
+    AS_IND_HO_CHANGE_IND = 0x02,
+    AS_IND_RR_STATE_CHANGE_IND = 0x04,
+    AS_IND_3G_SYS_IR_CRITERIA_IND = 0x08,
+    AS_IND_4G_SYS_IR_CRITERIA_IND = 0x10,
+    AS_IND_SRV_CELL_INFO_IND = 0x20,
+    AS_IND_NBR_INFO_IND = 0x40,
+    AS_IND_OOS_TRIGER_IND = 0x80,
+    AS_IND_2G_SYS_IR_CRITERIA_IND = 0x100
+} as_ind_type_enum;
+
+#define EMM_PROC_BASE (100)
+typedef enum
+{
+    NAS_PROC_NONE = 0,
+    MM_PROC_NONE = NAS_PROC_NONE,
+    MM_PROC_LU,
+    MM_PROC_CM_SERVICE,
+    MM_PROC_ATTACH,
+    MM_PROC_ATTACH_COMBINED,
+    MM_PROC_DETACH_MO_GPRS,
+    MM_PROC_DETACH_MO_IMSI,
+    MM_PROC_DETACH_MO_COMBINED,
+    MM_PROC_DETACH_MT_REATTACH_REQD,
+    MM_PROC_DETACH_MT_REATTACH_NOT_REQD,
+    MM_PROC_DETACH_MT_IMSI_DETACH_N_TO_MS,
+    MM_PROC_RAU,
+    MM_PROC_RAU_COMBINED,
+    MM_PROC_SERVICE_REQUEST,
+    MM_PROC_AUTH,
+    MM_PROC_ABORT,
+
+    EMM_PROC_NONE     = NAS_PROC_NONE,
+    EMM_ATTACH = EMM_PROC_BASE,
+    EMM_ATTACH_COMBINED,
+    EMM_ATTACH_EMERGENCY,
+    EMM_DETACH_MO_EPS,
+    EMM_DETACH_MO_IMSI,
+    EMM_DETACH_MO_COMBINED,
+    EMM_DETACH_MT_REATTACH_REQD,
+    EMM_DETACH_MT_REATTACH_NOT_REQD,
+    EMM_DETACH_MT_IMSI_DETACH,
+    EMM_TAU,
+    EMM_TAU_PERIODIC,
+    EMM_TAU_COMBINED,
+    EMM_SERVICE_REQUEST,
+    EMM_SERVICE_REQUEST_CSFB,
+    EMM_AUTH,
+
+    VGMM_REGISTRATION,
+    VGMM_PROC_BEGIN = VGMM_REGISTRATION,
+    VGMM_REGISTRATION_UPDATE,
+    VGMM_DEREGISTRATION,
+    VGMM_DEREGISTRATION_MT_RE_REGISTRATION_REQD,
+    VGMM_DEREGISTRATION_MT_RE_REGISTRATION_NOT_REQD,
+    VGMM_SERVICE_REQUEST,
+    VGMM_SERVICE_REQUEST_EMCFB,
+    VGMM_AUTH,
+    VGMM_EMC_REGISTRATION,
+    VGMM_PROC_END = VGMM_AUTH,
+}nas_proc_enum;
+
+typedef nas_proc_enum emm_proc_enum;
+typedef nas_proc_enum mm_proc_enum;
+
+typedef enum
+{
+    IMS_VOICE_OVER_PS_SESSION_IN_S1_MODE_NOT_SUPPORT = 0,
+    IMS_VOICE_OVER_PS_SESSION_IN_S1_MODE_SUPPORT
+} ims_ind_enum;
+
+typedef enum
+{
+    EMERGENCY_BEARER_SERVICE_IN_S1_MODE_NOT_SUPPORT = 0,
+    EMERGENCY_BEARER_SERVICE_IN_S1_MODE_SUPPORT
+} emergency_service_ind_enum;
+
+typedef enum
+{
+    LOCATION_SERVICE_VIA_EPS_NOT_SUPPORT = 0,
+    LOCATION_SERVICE_VIA_EPS_SUPPORT
+} location_service_epc_ind_enum;
+
+typedef enum
+{
+    NO_INFO_ABOUT_SUPPORT_OF_LOCATION_SERVICE_VIA_CS_DOMAIN = 0,
+    LOCATION_SERVICE_VIA_CS_DOMAIN_SUPPORT,
+    LOCATION_SERVICE_VIA_CS_DOMAIN_NOT_SUPPORT,
+    RESERVED
+} location_service_cs_ind_enum;
+
+typedef enum
+{
+    EXT_SERVICE_REQUEST_FOR_PS_NOT_SUPPORT = 0,
+    EXT_SERVICE_REQUEST_FOR_PS_SUPPORT
+} ext_service_request_for_ps_enum;
+
+typedef enum
+{
+    NAS_NW_EXT_PCO_NOT_SUPPORT = 0,
+    NAS_NW_EXT_PCO_SUPPORT = 1,
+    NAS_NW_EXT_PCO_UNKNOWN = 2
+} ext_pco_enum;
+
+typedef enum
+{
+    NAS_NW_DCNR_NOT_RESTRICT = 0,
+    NAS_NW_DCNR_RESTRICT     = 1,
+    NAS_NW_DCNR_UNKNOWN      = 2
+} restrict_dcnr_enum;
+
+typedef enum
+{
+    NAS_NW_IWK_WITHOUT_N26_NOT_SUPPORT = 0,
+    NAS_NW_IWK_WITHOUT_N26_SUPPORT = 1,
+    NAS_NW_IWK_WITHOUT_N26_UNKNOWN = 2
+} iwk_n26_enum;
+
+
+
+typedef enum
+{
+    Module_Invalid = 0x00,
+    Module_PSDM = 0x01,
+    Module_AP = 0x02,
+    Module_PSDM_AP = 0x03,
+} target_module_enum;
+
+
+
+/* LCS (CISS/LPP) between EMM */
+typedef enum
+{
+    LCS_EMM_STATUS_SUCCESS = 0,         /* PDU is sent or received successfully */
+    LCS_EMM_STATUS_ERR_CONN_FAIL,      /* EMM connection failure */
+    LCS_EMM_STATUS_ERR_NW_NO_LCS,      /* NW does not support LCS on 2G/3G/4G */
+    LCS_EMM_STATUS_ERR_CS_LCS_ONLY,     /* NW does not support LCS on 4G, may CSFB to 2G/3G */
+    LCS_EMM_STATUS_ERR_MCD_ENCODE_FAIL, /* MCD encode fail */
+    LCS_EMM_STATUS_ERR_MCD_DECODE_FAIL  /* MCD decode fail */
+} lcs_emm_status_enum;
+
+
+typedef enum
+{
+    LCS_VGMM_STATUS_SUCCESS = 0,            /* PDU is sent or received successfully */
+    LCS_VGMM_STATUS_ERR_CONN_FAIL,          /* VGMM connection failure */
+    LCS_VGMM_STATUS_ERR_MCD_ENCODE_FAIL,    /* MCD encode fail */
+    LCS_VGMM_STATUS_ERR_MCD_DECODE_FAIL,    /* MCD decode fail */
+    LCS_VGMM_DATA_CNF_FAIL_DUE_TO_PS_SUSPEND,
+} lcs_vgmm_status_enum;
+
+
+typedef enum
+{
+    TIMER_ID_T3246 = 1,
+    TIMER_ID_T3346,
+    TIMER_ID_T3246_AND_T3346
+} mm_emm_common_timer_id_enum, xmm_common_timer_id_enum;  // __REL10__: t3346
+
+typedef enum
+{
+    ADD_ARAL,
+    DEL_ARAL
+} aral_op_enum;
+
+#ifdef __LTE_RAT__
+typedef enum
+{
+    ERRC_SIM_PROTECT_PURPOSE_NONE,
+    ERRC_SIM_PROTECT_PURPOSE_POWER_ON,
+    ERRC_SIM_PROTECT_PURPOSE_CSFB_FR,
+    ERRC_SIM_PROTECT_PURPOSE_DUPLEX_MODE_CHG
+} errc_sim_protect_purpose_enum;
+#endif //__LTE_RAT__
+
+typedef enum
+{
+    IMS_VOICE_OVER_PS_IU_MODE_A_GB_MODE_NOT_SUPPORT = 0,
+    IMS_VOICE_OVER_PS_IU_MODE_SUPPORT_A_GB_MODE_NOT_SUPPORT
+} ug_ims_ind_enum;
+
+typedef enum
+{
+    EMERGENCY_BEARER_SERVICE_IN_IU_MODE_A_GB_MODE_NOT_SUPPORT = 0,
+    EMERGENCY_BEARER_SERVICE_IN_IU_MODE_SUPPORT_A_GB_MODE_NOT_SUPPORT
+} ug_emergency_service_ind_enum;
+
+typedef enum
+{
+    UMTS_PRIORITY_NORMAL = 0,
+    UMTS_PRIORITY_HIGH
+} umts_service_priority_enum;  // [Gemini][Two PS attach]
+
+// Priority class used by GMSS
+typedef enum
+{
+    PRIO_CLASS_NONE         = 0x00,    /* No priority class */
+    PRIO_CLASS_RPLMN        = 0x01,    /* Priority class RPLMN. Only for 3GPP */
+    PRIO_CLASS_HOME         = 0x02,    /* Priority class Home */
+    PRIO_CLASS_R_H          = 0x03,    /* 0011 =  3 */
+    PRIO_CLASS_PREF         = 0x04,    /* Priority class Home + Preferred */
+    PRIO_CLASS_R_P          = 0x05,    /* 0101 =  5 */
+    PRIO_CLASS_H_P          = 0x06,    /* 0110 =  6 */
+    PRIO_CLASS_R_H_P        = 0x07,    /* 0111 =  7 */
+    PRIO_CLASS_NOT_PREFERRED= 0x08,    /* Priority class Any */
+    PRIO_CLASS_R_NP         = 0x09,    /* 1001 =  9 */
+    PRIO_CLASS_H_NP         = 0x0A,    /* 1010 = 10 */
+    PRIO_CLASS_R_H_NP       = 0x0B,    /* 1011 = 11 */
+    PRIO_CLASS_P_NP         = 0x0C,    /* 1100 = 12 */
+    PRIO_CLASS_R_P_NP       = 0x0D,    /* 1101 = 13 */
+    PRIO_CLASS_H_P_NP       = 0x0E,    /* 1110 = 14 */
+    PRIO_CLASS_R_H_P_NP     = 0x0F,    /* 1111 = 15 */
+    PRIO_CLASS_LIMITED      = 0x10     /* Priority class limited. Only for 3GPP */
+
+} prio_class_enum;
+
+typedef enum
+{
+    GMSS_SELECTED_RAT  = 0,         /* means select such rat*/
+    GMSS_SELECTED_ATTACHED  = 1,    /* means result is attached*/
+    GMSS_SELECTED_LIMITED = 2       /* means result is a limited service */
+} gmss_selected_rat_status_enum;
+
+typedef enum
+{
+    EMDSTATUS_MD_CONFIG_MD1_ACTIVE,                 /*  only MD1 active */
+    EMDSTATUS_MD_CONFIG_MD1_REMOTE_SIM_ACCESS_ONLY, /* MD1s' RF is closed, but MD1's SIM task is still working only for MD3 SIM remote access and MD3 active  */
+    EMDSTATUS_MD_CONFIG_MD1_MD3_ACTIVE,             /* both MD1 and MD3 active  */
+
+} emdstatus_md_config_enum;
+
+typedef enum
+{
+    EMDSTATUS_SIM_CONFIG_NO_REMOTE_ACCESS,      /* MD3 access local card */
+    EMDSTATUS_SIM_CONFIG_REMOTE_ACCESS_SIM1,    /* MD3 access MD1's SIM task1 */
+    EMDSTATUS_SIM_CONFIG_REMOTE_ACCESS_SIM2     /* MD3 access MD1's SIM task2 */
+
+} emdstatus_sim_config_enum;
+
+typedef enum
+{
+    CT_MODE_SVLTE,
+    CT_MODE_TDD_DATA_ONLY,
+    CT_MODE_4G_SWITCH_OFF
+
+} ct_mode_enum;
+
+typedef enum
+{
+    MODE_SWITCH_NORMAL             = 0x00,
+    MODE_SWITCH_PLMN_CHANGE        = 0x01,
+    MODE_SWITCH_OUT_OF_SERVICE     = 0x02,
+    MODE_SWITCH_SIM_REFRESH        = 0x03,
+    MODE_SWITCH_MT_CSFB            = 0x04,
+    MODE_SWITCH_MCC_RESULT         = 0x05,
+    MODE_SWITCH_OTHER_SIM_LOC_LOSS = 0x06,  //GMSS internal usage, other SIM location loss
+    MODE_SWITCH_ECC_SEARCH         = 0x07,  //not used in Gen97
+    MODE_SWTICH_EMC_SEARCH_BY_VDM  = 0x08,  //duplex mode change for VDM trigged limited search
+    MODE_SWTICH_EMC_SEARCH_BY_GMSS = 0x09,  //duplex mode change for GMSS trigged limited search
+} mode_switch_cause_enum;
+
+typedef enum
+{
+    WM_POLICY_NONE      = 0,
+    WM_POLICY_OP01_A    = 1,
+    WM_POLICY_OP01_B    = 2,
+    WM_POLICY_OM        = 3,
+    WM_POLICY_OP02      = 4
+} wm_policy_enum;
+
+typedef enum
+{
+    SR_FAILURE_CAUSE_AC_BARRED      = 0,
+    SR_FAILURE_CAUSE_NW_REJ_CONN    = 1,
+    SR_FAILURE_CAUSE_T3346_START    = 2,
+    SR_FAILURE_CAUSE_T3346_STOP     = 3,
+    SR_FAILURE_CAUSE_T3346_EXPIRY   = 4,
+    SR_FAILURE_CAUSE_CONN_FAIL      = 5,
+    SR_FAILURE_CAUSE_T3525_START    = 6,
+    SR_FAILURE_CAUSE_T3540_START    = 7
+}sr_failure_cause_enum;
+
+typedef enum
+{
+    TAU_FAILURE_CAUSE_NONE = 0
+}tau_failure_cause_enum;
+
+typedef enum
+{
+    MRU_CMD_CLEAR,
+    MRU_CMD_EDIT,
+    MRU_CMD_QUERY,
+} mru_cmd_type_enum;
+
+typedef enum
+{
+    GMSS_C2K_SUPPORT_NONE,
+    GMSS_C2K_SUPPORT_SVLTE,
+    GMSS_C2K_SUPPORT_SRLTE,
+    GMSS_C2K_SUPPORT_UNKNOWN
+
+} gmss_c2k_support_enum;
+
+typedef enum
+{
+    NWSEL_EVENT_NONE                = 0,
+    NWSEL_EVENT_CM_NORMAL_REQ       = 1,
+    NWSEL_EVENT_CM_ECC_REQ          = 2,
+    NWSEL_EVENT_CM_ABORT            = 3,
+    NWSEL_EVENT_LR_ACCEPT           = 4,
+    NWSEL_EVENT_DUPLEX_CHANGE_IND   = 5,
+} nwsel_event_type_enum;
+
+typedef enum
+{
+    LTECA_BAND_CMD_QUERY,
+    LTECA_BAND_CMD_SET,
+} lteca_band_cmd_type_enum;
+
+typedef enum
+{
+    LTECA_MODE_CMD_QUERY,
+    LTECA_MODE_CMD_SET,
+} lteca_mode_cmd_type_enum;
+
+typedef enum {
+    LTECA_DISABLED              = 0x00,
+    LTECA_ENABLED               = 0x01
+} lteca_mode_enum;
+
+typedef enum
+{
+    EMM_NWSEL_EVENT_NONE            = 0,
+    EMM_NWSEL_EVENT_REDIRECT_L2C    = 1,
+} emm_nwsel_event_enum;
+
+typedef enum
+{
+    NWSEL_NV_CNF_NOT_WAIT                   = 0x00,
+    NWSEL_NV_CNF_WAIT_ACCESS_ID_START       = 0x10,
+    NWSEL_NV_CNF_WAIT_ACCESS_ID_END         = 0x1F
+} nwsel_report_nvram_write_cnf_trx_id_enum;
+
+typedef enum
+{
+    NAS_SV_NO_ACTIVE_AS,
+    NAS_SV_ACTIVE_2G,
+    NAS_SV_ACTIVE_3G,
+    NAS_SV_ACTIVE_4G,
+    NAS_SV_ACTIVE_1X_PS,
+    NAS_SV_ACTIVE_1X_CS,
+    NAS_SV_ACTIVE_5G,
+}nas_sv_active_as_enum;
+
+typedef enum
+{
+    NAS_SV_REASON_NO_REASON,
+    NAS_SV_REASON_SIM_ERROR,
+    NAS_SV_REASON_RFOFF,
+    NAS_SV_REASON_SET_RAT_MODE,
+    NAS_SV_REASON_IRAT,
+    NAS_SV_REASON_ABORT_BY_NWSEL,
+}nas_sv_cancel_reason_enum;
+
+typedef enum
+{
+   NAS_SV_EVENT_UPDATE_NONE = 0x0,
+   NAS_SV_EVENT_CS_LEAVE_IDLE,
+   NAS_SV_EVENT_CS_ENTER_IDLE,
+   NAS_SV_EVENT_PS_LEAVE_IDLE,
+   NAS_SV_EVENT_PS_ENTER_IDLE,
+   NAS_SV_EVENT_ENTER_HVOLTE_LTE_ONLY_MODE,//deactivate C2K CS/PS since LTE only mode
+   NAS_SV_EVENT_ENTER_HVOLTE_VOPS_MODE,    //deactivate C2K CS/PS since VOPS mode
+   NAS_SV_EVENT_ENTER_SLEEP_STATE_CS_PS,   //deactivate C2K CS/PS when SLEEP state
+   NAS_SV_EVENT_ENTER_SLEEP_STATE_PS_ONLY, //keep C2K CS is available when only CS doamin request
+   NAS_SV_EVENT_EMC_SERVICE_FOUND,         //only keep target rat active emergency service found
+   NAS_SV_EVENT_EMC_SEARCH_3GPP,           //deactivate C2K CS to prevent from searching preemption
+   NAS_SV_EVENT_LIST_START, // for nas_sv to cancel search
+   NAS_SV_EVENT_HPPLMN_LIST_END, // for nas_sv to dequeue, only send when HPPLMN list finish no further action shall be done.
+   NAS_SV_EVENT_CM_SERVICE_START,
+   NAS_SV_EVENT_CM_SERVICE_END,
+   NAS_SV_EVENT_EMM_CONN_IDLE,
+   NAS_SV_EVENT_EMM_CONN_NON_IDLE,
+   NAS_SV_EVENT_TYPE_CSFB,
+   NAS_SV_EVENT_TYPE_RETURN_NORMAL,
+   NAS_SV_EVENT_TYPE_RETURN_ABNORMAL,
+   NAS_SV_EVENT_TYPE_CONGESTION_TIMER_ACTIVE,
+   NAS_SV_EVENT_TYPE_THROTTLING_TIMER_ACTIVE,/* VZ_REQ_LTEDATARETRY_7735 */
+   NAS_SV_EVENT_EVENT_TYPE_NO_AVAILABLE_PDN,
+   NAS_SV_EVENT_TYPE_NO_AVAILABLE_PDN,
+   NAS_SV_EVENT_TYPE_CSFB_EMC,
+   NAS_SV_EVENT_TYPE_AC_BAR,
+   NAS_SV_EVENT_APN_DISABLED_CS_PS,  //deactivate C2K CS/PS since vzw apn disabled
+   NAS_SV_EVENT_RAT_MODE_NO_C2K,     //deactivate C2K CS/PS since rat mode did not contain C2K
+   NAS_SV_EVENT_VGMM_CONN_CONNECTED,
+   NAS_SV_EVENT_VGMM_CONN_IDLE,
+   NAS_SV_EVENT_VGMM_CONN_INACTIVE,
+   NAS_SV_EVENT_IR_REDIRECT_FROM_LTE_START,
+   NAS_SV_EVENT_LTE_REJECT_IR_REDIRECT_TO_UMTS_GSM,
+   NAS_SV_EVENT_ENTER_SLEEP_STATE_FOR_LVI, //deactivate C2K CS/PS when SLEEP state under limited virtual idle mode
+   NAS_SV_EVENT_EMM_DEACT_ERRC_FOR_RAT_MODE_CHANGE,
+}  nas_sv_any_event_update_ind_enum;
+
+typedef enum
+{
+   NAS_SV_BROADCAST_EVENT_UPDATE_NONE = 0x0,
+   NAS_SV_BROADCAST_EVENT_TYPE_CSFB,
+   NAS_SV_BROADCAST_EVENT_TYPE_RETURN_NORMAL,
+   NAS_SV_BROADCAST_EVENT_TYPE_RETURN_ABNORMAL,
+   NAS_SV_BROADCAST_EVENT_TYPE_CONGESTION_TIMER_ACTIVE,
+   NAS_SV_BROADCAST_EVENT_TYPE_THROTTLING_TIMER_ACTIVE,/* VZ_REQ_LTEDATARETRY_7735 */
+   NAS_SV_BROADCAST_EVENT_TYPE_NO_AVAILABLE_PDN,
+   NAS_SV_BROADCAST_EVENT_TYPE_CSFB_EMC,
+   NAS_SV_BROADCAST_EVENT_TYPE_AC_BAR,
+   NAS_SV_BROADCAST_EVENT_TYPE_EMM_IR_REDIRECT_FAILED, /* NAS_SV reject IRAT without informing RATCHG, need to send this event to change state */
+}  nas_sv_any_event_update_req_enum;
+
+
+typedef enum
+{
+    NAS_SV_TRACE_TYPE_REG_STATUS,
+}  nas_sv_trace_type;
+
+typedef enum
+{
+    NAS_SV_BOOL_IN_A_MEETING,
+    NAS_SV_BOOL_IS_PLMN_STATUS_IND_SENT,
+    NAS_SV_BOOL_IS_RESULT_IND_SENT,
+    NAS_SV_BOOL_IS_REG_STATUS_IND_SENT,
+}  nas_sv_bool_name;
+
+typedef enum
+{
+   NAS_SV_L4_EVENT_UPDATE_NONE = 0x0,
+   /* previous registered and plmn_loss, first requirement is L4 needs to inform UPCM data suspend. */
+   NAS_SV_L4_EVENT_AS_DEACTIVATED_START,
+   /* guarantee paired */
+   NAS_SV_L4_EVENT_AS_DEACTIVATED_END,
+}  nas_sv_l4_event_update_ind_enum;
+
+
+// REL12 feature SCM
+typedef enum
+{
+    IMS_SCM_MMTEL_VOICE = 0,
+    IMS_SCM_MMTEL_VIDEO,
+    IMS_SCM_SMSOIP,
+    IMS_SCM_REG,
+	IMS_SCM_MAX,
+} ims_scm_info_type_enum;
+
+typedef enum
+{
+    OMADM_CMD_GET,
+    OMADM_CMD_SET
+} omadm_cmd_type_enum;
+
+typedef enum
+{
+    AUTONOMOUS_GAP          = 0,
+    MPSR_DURATION           = 1,
+    SCAN_DURATION           = 2,
+    SLEEP_DURATION          = 3,
+    MPSR_MAX_DURATION       = 4,
+    LONG_MPSR_DURATION      = 5,
+    TPLMN_BARRING_TIMER     = 6,
+    LTE_HPUE                = 7,
+    T_WWAN_911_TIMER        = 8,
+    MPSR_MAX_STAGE          = 9,
+    LTE_DL256QAM            = 10,
+    LTE_UL64QAM             = 11,
+    LTE_TDD_TM9             = 12,
+    LTE_FDD_TM9             = 13,
+    LTE_B25_4x4MIMO         = 14,
+    LTE_B41_4x4MIMO         = 15,
+    T5GNRSA_BARRING_TIMER   = 16,
+    MAX_OMADM_NODE
+} omadm_node_type_enum;
+
+typedef enum
+{
+    IMS_SCM_ACTION_START = 1,
+    IMS_SCM_ACTION_END,
+} ims_scm_info_action_enum;
+
+typedef enum
+{
+    RAT_MODE_USER_CHANGE      = 0,
+    RAT_MODE_GMSS_MCC_SEARCH  = 1,
+    RAT_MODE_GMSS_PLMN_SEARCH = 2,
+    RAT_MODE_GMSS_HVOLTE_MODE_CHANGE = 3
+} rat_mode_change_cause_enum;
+
+typedef enum
+{
+    PLMN_RESTRICT_INFO_NONE    = 0,
+    PLMN_RESTRICT_MO_IMS_SR           = 1,
+    PLMN_RESTRICT_LR_ACCEPT_PS_ONLY   = 2
+} plmn_restrict_additional_information_enum;
+
+typedef enum
+{
+    LTE_MODULATION_CMD_QUERY,
+    LTE_MODULATION_CMD_SET,
+} lte_modulation_cmd_type_enum;
+
+typedef enum {
+    LTE_MODULATION_DISABLED              = 0x00,
+    LTE_MODULATION_ENABLED               = 0x01
+} lte_modulation_mode_enum;
+
+typedef enum {
+    LINK_DIRECTION_DOWNLINK      = 0x00,
+    LINK_DIRECTION_UPLINK        = 0x01
+} link_direction_enum;
+
+typedef enum
+{
+    CA_BAND_COMB_LIST_CMD_QUERY,
+    CA_BAND_COMB_LIST_CMD_SET,
+    CA_BAND_COMB_LIST_CMD_APPEND
+} ca_band_comb_list_cmd_type_enum;
+
+typedef enum {
+    CA_BAND_COMB_LIST_TYPE_WHITE    = 0x00,
+    CA_BAND_COMB_LIST_TYPE_BLACK    = 0x01,
+    ENDC_BAND_COMB_LIST_TYPE_WHITE  = 0x02,
+    ENDC_BAND_COMB_LIST_TYPE_BLACK  = 0x03,
+    SA_BAND_COMB_LIST_TYPE_WHITE    = 0x04,
+    SA_BAND_COMB_LIST_TYPE_BLACK    = 0x05
+} ca_band_comb_list_type_enum;
+
+
+typedef enum
+{
+    GMSS_OP01_MODE_CHECK_NONE =0,
+    GMSS_OP01_MODE_CHECK_TDSCDMA_MODE_ACTIVATED = 1,
+    GMSS_OP01_MODE_CHECK_CMCC_NETWORK = 2
+} gmss_op01_mode_type_enum;
+
+typedef enum
+{
+    OPERATOR_UNKNOWN    = 0,
+    OPERATOR_CT         = 1,
+    OPERATOR_VZW        = 2,
+    OPERATOR_SPRINT     = 3,
+    OPERATOR_CMCC       = 4,
+} network_operator_enum;
+
+typedef enum
+{
+    EMMCONN_EST_IND_FAIL_CAUSE_EST_SUCCESS,
+    EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED,
+    EMMCONN_EST_IND_FAIL_CAUSE_NW_REJ_CONN,
+    EMMCONN_EST_IND_FAIL_CAUSE_CONN_FAIL,
+    EMMCONN_EST_IND_FAIL_CAUSE_IRAT_CELL_RESEL,
+    EMMCONN_EST_IND_FAIL_CAUSE_CELL_RESEL,
+    EMMCONN_EST_IND_FAIL_CAUSE_NAS_REQUEST,
+    EMMCONN_EST_IND_FAIL_CAUSE_TRANSID_NOT_MATCH,
+    EMMCONN_EST_IND_FAIL_CAUSE_IDLE_OOS,
+    EMMCONN_EST_IND_FAIL_CAUSE_IRCCO_TIMER_EXPR,
+    EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_MO_DATA,
+    EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_MO_CSFB,
+    EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_EAB,
+    EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_ACDC,
+    EMMCONN_EST_IND_FAIL_CAUSE_GEMINI_FAIL,
+    EMMCONN_EST_IND_FAIL_CAUSE_CONGESTION
+
+} emm_est_ind_cause_enum;
+
+typedef enum
+{
+    DELETE_FPLMN,
+    ADD_FPLMN
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+    ,UPDATE_BLACKLIST_PLMN
+#endif
+} fplmn_action_enum;
+
+typedef enum
+{
+    CUSTOM_PREFER_OPLMN = 0,
+    CUSTOM_FORBIDDEN_PLMN = 1
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+    ,CUSTOM_BLACKLIST_PLMN = 2
+#endif
+}custom_plmn_type_enum;
+
+typedef enum
+{
+    INTEG_PROTECTED,
+    INTEG_NON_PROTECTED,
+    INTEG_PROTECTED_INSIGNIFICANT
+
+} integ_protect_status_enum;
+
+typedef enum
+{
+    TW_MODE_LG_WG       = 0
+} gmss_tw_mode_enum;
+
+
+typedef enum
+{
+    GMSS_SEARCH_TYPE_NORMAL                 = 0x00,  /* 0000        */
+    GMSS_SEARCH_TYPE_STORED                 = 0x01,  /* 0001        */
+    GMSS_SEARCH_TYPE_QUICK                  = 0x02,  /* 0010        */
+    GMSS_SEARCH_TYPE_STORED_QUICK           = 0x03   /* 0011        */
+
+} gmss_search_type_enum;
+
+typedef enum {
+    PAM_APN_TYPE_UNKNOWN    = 0x00000000,
+    PAM_APN_TYPE_DEFAULT    = 0x00000001,
+    PAM_APN_TYPE_IMS        = 0x00000002,
+    PAM_APN_TYPE_MMS        = 0x00000004,
+    PAM_APN_TYPE_SUPL       = 0x00000008,
+    PAM_APN_TYPE_DUN        = 0x00000010,
+    PAM_APN_TYPE_HIPRI      = 0x00000020,
+    PAM_APN_TYPE_FOTA       = 0x00000040,
+    PAM_APN_TYPE_CBS        = 0x00000080,
+    PAM_APN_TYPE_EMERGENCY  = 0x00000100,
+    PAM_APN_TYPE_IA         = 0x00000200,
+    PAM_APN_TYPE_DM         = 0x00000400,
+    PAM_APN_TYPE_WAP        = 0x00000800,
+    PAM_APN_TYPE_NET        = 0x00001000,
+    PAM_APN_TYPE_CMMAIL     = 0x00002000,
+    PAM_APN_TYPE_TETHERING  = 0x00004000,
+    PAM_APN_TYPE_RCSE       = 0x00008000,
+    PAM_APN_TYPE_XCAP       = 0x00010000,
+    PAM_APN_TYPE_RCS        = 0x00020000,
+} pam_nwsel_apn_type_enum;
+typedef enum
+{
+    RECOVER_CAUSE_T3245_EXPIRY = 0,
+    RECOVER_CAUSE_IVSR_START = 1,
+    RECOVER_CAUSE_VZW_PERMANENT_IVSR = 2,
+} recover_cause_enum;
+
+typedef enum
+{
+    DUPLEX_MODE_RESET_SIM_PARA_TO_AS = 0,
+    DUPLEX_MODE_SET_SIM_PARA_TO_AS   = 1
+} duplex_mode_change_action_enum;
+
+typedef enum
+{
+    SET_HVOLTE_MODE_CAUSE_IMS_REG_STATUS_CHANGE = 0,//default value
+    SET_HVOLTE_MODE_CAUSE_SILENT_REDIAL,
+} set_hvolte_mode_cause_enum;
+
+typedef enum
+{
+    HVOLTE_MODE_CHANGE_CAUSE_CS_REG_SENT = 0,
+    HVOLTE_MODE_CHANGE_CAUSE_L2C2L_WITH_C2K_CS_REGISTERRED,
+    HVOLTE_MODE_CHANGE_CAUSE_L2C2L_WITHOUT_C2K_CS_REGISTERRED
+} hvolte_mode_change_cause_enum;
+
+#ifdef __GEMINI__
+typedef enum {
+    RSIM_AUTH_FINISH_INVALID,
+    RSIM_AUTH_FINISH_COMPLETE,
+    RSIM_AUTH_FINISH_LOWER_LAYER_FAILURE,
+} rsim_auth_finish_result_enum;
+#endif /* __GEMINI__ */
+
+typedef enum
+{
+    ABORT_SEARCH_EMERGENCY = 0,  //equivalent to XXX_ABORT_EMERGENCY_PLMN_SEARCH_REQ
+    ABORT_SEARCH_TVZW_SEARCH_23G = 1
+}enwsel_search_abort_cause_enum;
+
+typedef enum {
+    ENASAS_SSAC_AC_BARRINGFACTOR_p00, // bar
+    ENASAS_SSAC_AC_BARRINGFACTOR_p05,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p10,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p15,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p20,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p25,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p30,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p40,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p50,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p60,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p70,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p75,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p80,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p85,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p90,
+    ENASAS_SSAC_AC_BARRINGFACTOR_p95,
+    ENASAS_SSAC_AC_BARRINGFACTOR_INVALID, // not bar
+} enasas_ssac_ac_barringfactor_enum;
+
+typedef enum
+{
+    LTE_TM9_CMD_QUERY           = 0,
+    LTE_TM9_CMD_SET             = 1,
+} lte_tm9_cmd_type_enum;
+
+typedef enum
+{
+    LTE_TM9_FDD_DISABLE         = 0,
+    LTE_TM9_FDD_ENABLE          = 1
+} lte_tm9_fdd_enum;
+
+typedef enum
+{
+    LTE_TM9_TDD_DISABLE         = 0,
+    LTE_TM9_TDD_ENABLE          = 1
+} lte_tm9_tdd_enum;
+
+typedef enum
+{
+    VGMM_MSG_BEGIN                       = 0x41,
+    VGMM_MSG_REG_REQUEST                 = VGMM_MSG_BEGIN,
+    VGMM_MSG_REG_ACCEPT                  = 0x42,
+    VGMM_MSG_REG_COMPLETE                = 0x43,
+    VGMM_MSG_REG_REJECT                  = 0x44,
+    VGMM_MSG_MO_DEREG_REQUEST            = 0x45,
+    VGMM_MSG_MO_DEREG_ACCEPT             = 0x46,
+    VGMM_MSG_MT_DEREG_REQUEST            = 0x47,
+    VGMM_MSG_MT_DEREG_ACCEPT             = 0x48,
+    VGMM_MSG_SERVICE_REQUEST             = 0x4C,
+    VGMM_MSG_SERVICE_REJECT              = 0x4D,
+    VGMM_MSG_SERVICE_ACCEPT              = 0x4E,
+    VGMM_MSG_CONFIG_UPDATE_COMMAND       = 0x54,
+    VGMM_MSG_CONFIG_UPDATE_COMPLETE      = 0x55,
+    VGMM_MSG_AUTH_REQ                    = 0x56,
+    VGMM_MSG_AUTH_RSP                    = 0x57,
+    VGMM_MSG_AUTH_REJ                    = 0x58,
+    VGMM_MSG_AUTH_FAIL                   = 0x59,
+    VGMM_MSG_AUTH_RESULT                 = 0x5A,
+    VGMM_MSG_IDENTITY_REQ                = 0x5B,
+    VGMM_MSG_IDENTITY_RSP                = 0x5C,
+    VGMM_MSG_SEC_MODE_COMMAND            = 0x5D,
+    VGMM_MSG_SEC_MODE_COMPLETE           = 0x5E,
+    VGMM_MSG_SEC_MODE_REJECT             = 0x5F,
+    VGMM_MSG_5GMM_STATUS                 = 0x64,
+    VGMM_MSG_5GMM_NOTIFICATION           = 0x65,
+    VGMM_MSG_5GMM_NOTIFICATION_RSP       = 0x66,
+    VGMM_MSG_UL_NAS_TRANSPORT            = 0x67,
+    VGMM_MSG_DL_NAS_TRANSPORT            = 0x68,
+    // WARNING: do not forget to update VGMM_MSG_END if last message is changed
+    VGMM_MSG_END                         = VGMM_MSG_DL_NAS_TRANSPORT,
+    VGMM_MSG_INVALID                     = 0xFF
+} vgmm_msg_type_enum;
+
+typedef enum
+{
+    VGMM_CAUSE_CAUSE_NONE                       = 0x00,
+    VGMM_CAUSE_ILLEGAL_UE                       = 0x03,
+    VGMM_CAUSE_PEI_NOT_ACCEPTED                 = 0x05,
+    VGMM_CAUSE_ILLEGAL_ME                       = 0x06,
+    VGMM_CAUSE_5GS_SERVICES_NOT_ALLOWED         = 0x07,
+    VGMM_CAUSE_UE_ID_NOT_DERIVED_BY_NW          = 0x09,
+    VGMM_CAUSE_IMPLICITLY_DEREGISTERED          = 0x0a,
+    VGMM_CAUSE_PLMN_NOT_ALLOWED                 = 0x0b,
+    VGMM_CAUSE_TA_NOT_ALLOWED                   = 0x0c,
+    VGMM_CAUSE_ROAMING_NOT_ALLOWED_IN_TA        = 0x0d,
+	VGMM_CAUSE_NO_SUITABLE_CELL_IN_TA           = 0x0f,
+    VGMM_CAUSE_MAC_FAILURE                      = 0x14,
+    VGMM_CAUSE_SYNCH_FAILURE                    = 0x15,
+	VGMM_CAUSE_CONGESTION                       = 0x16,
+    VGMM_CAUSE_SECURITY_CAPABILITIES_MISMATCH   = 0x17,
+    VGMM_CAUSE_SECURITY_MODE_REJECT_UNSPECIFIED = 0x18,
+    VGMM_CAUSE_NON_5G_AUTH_UNACCEPTABLE         = 0x1a,
+    VGMM_CAUSE_N1_MODE_NOT_ALLOWED              = 0x1b,
+    VGMM_CAUSE_RESTRICTED_SERVICE_AREA          = 0x1c,
+    VGMM_CAUSE_LADN_NOT_AVAILABLE               = 0x2b,
+    VGMM_CAUSE_MAX_NUM_PDU_SESSIONS_REACHED     = 0x41,
+    VGMM_CAUSE_INSUFF_RESOURCES_SLICE_AND_DNN   = 0x43,
+    VGMM_CAUSE_INSUFF_RESOURCES_SLICE           = 0x45,
+	VGMM_CAUSE_NGKSI_ALREADY_IN_USE             = 0x47,
+	VGMM_CAUSE_N3GPP_ACCESS_TO_5GCN_NOT_ALLOWED = 0x48,
+	VGMM_CAUSE_SERVING_NW_NOT_AUTHORIZED        = 0x49,
+    VGMM_CAUSE_PAYLOAD_NOT_FORWARDED            = 0x5a,
+    VGMM_CAUSE_DNN_NOT_SUP_SLICE                = 0x5b,
+	VGMM_CAUSE_INSUFF_UP_RES_FOR_PDU_SESSION    = 0x5c,
+    VGMM_CAUSE_SEMANTICALLY_INCORRECT_MSG       = 0x5f,
+    VGMM_CAUSE_INVALID_MANDATORY_INFO           = 0x60,
+    VGMM_CAUSE_MSG_TYPE_NON_EXISTENT            = 0x61,
+    VGMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE          = 0x62,
+    VGMM_CAUSE_IE_NON_EXISTENT                  = 0x63,
+    VGMM_CAUSE_CONDITIONAL_IE_ERROR             = 0x64,
+    VGMM_CAUSE_MESSAGE_NOT_COMPATIBLE           = 0x65,
+    VGMM_CAUSE_PROTOCOL_ERROR                   = 0x6f,
+
+
+    /* MTK internal-defined causes */
+    /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
+    VGMM_CAUSE_NO_COVERAGE                       = NO_COVERAGE,
+    VGMM_CAUSE_SIM_REMOVED                       = SIM_REMOVED,
+    VGMM_CAUSE_VGNAS_IN_SUSPEND_MODE             = MM_REJ_CUZ_RR_IN_SUSPEND_MODE,
+    VGMM_CAUSE_LIMITED_SERVICE                   = GPRS_IN_LIMITED_SERVICE,
+} vgmm_cause_enum;
+
+typedef enum
+{
+    VGMM_REGN_DEREGISTERED_UPDATE = 0,
+    VGMM_REGN_REGISTERED_UPDATE,
+    VGMM_REGN_INVLAID_ENUM
+}vgmm_bcast_regn_update_enum;
+
+typedef enum
+{
+    VGMM_REG_TYPE_INITIAL_REGISTRATION           = 1,
+    VGMM_REG_TYPE_MOBILITY_REGISTRATION_UPDATING = 2,
+    VGMM_REG_TYPE_PERIODIC_REGISTRATION_UPDATING = 3,
+    VGMM_REG_TYPE_EMERGENCY_REGISTRATION         = 4,
+    VGMM_REG_TYPE_VGS_REG_TYPE_RESERVED          = 7
+} vgmm_reg_type_enum;
+
+typedef enum
+{
+    EMM_REGN_DEREGISTERED_UPDATE = 0,
+    EMM_REGN_REGISTERED_UPDATE,
+    EMM_REGN_INVLAID_ENUM
+}emm_bcast_regn_update_enum;
+
+typedef enum
+{
+    D_VGS_MOBILE_ID_NO_ID = 0,
+    D_VGS_MOBILE_ID_SUCI = 1,
+#ifdef __MCD_VGNAS_24501_SPEC_2018SEP__
+    D_VGS_MOBILE_ID_GUTI = 6,
+#else
+    D_VGS_MOBILE_ID_GUTI = 2,
+#endif /* __MCD_VGNAS_24501_SPEC_2018SEP__ */
+    D_VGS_MOBILE_ID_IMEI = 3,
+    D_VGS_MOBILE_ID_S_TMSI = 4,
+    D_VGS_MOBILE_ID_IMEISVI = 5
+} vgs_mobile_id_type_enum;
+
+typedef enum
+{
+    VGMM_NSSAI_CMD_C5GNSSAI     = 0,
+    VGMM_NSSAI_CMD_C5GNSSAIRDP  = 1,
+    VGMM_NSSAI_CMD_C5GPNSSAI    = 2
+} vgs_nssai_cmd_type_enum;
+
+typedef enum {
+  NWSEL_LIST_TYPE_INVALID,
+  NWSEL_LIST_TYPE_MANUAL_LIST,
+  NWSEL_LIST_TYPE_HIGH_PRIORITY_LIST,
+  NWSEL_LIST_TYPE_MPSR_LIST
+} nwsel_list_type_enum;
+
+/*
+typedef enum
+{
+    N1_IMS_VOPS_NOT_SUPPORTED,
+    N1_IMS_VOPS_SUPPORTED_3GPP,
+    N1_IMS_VOPS_SUPPORTED_NON_3GPP,
+} vgmm_ims_vops_indicator_enum;
+
+typedef enum
+{
+    N1_EMC_NOT_SUPPORTED,
+    N1_EMC_SUPPORTED_NR_5GCN_ONLY,
+    N1_EMC_SUPPORTED_EUTRAN_5GCN_ONLY,
+    N1_EMC_SUPPORTED_NR_5GCN_EUTRAN_5GCN,
+} vgmm_emc_support_indicator_enum;
+
+typedef enum
+{
+    N1_EMC_FALLBACK_NOT_SUPPORTED,
+    N1_EMC_FALLBACK_SUPPORTED_NR_5GCN_ONLY,
+    N1_EMC_FALLBACK_SUPPORTED_EUTRAN_5GCN_ONLY,
+    N1_EMC_FALLBACK_SUPPORTED_NR_5GCN_EUTRAN_5GCN,
+} vgmm_emc_fallback_support_indicator_enum;
+*/
+
+typedef enum
+{
+    N1_IMS_VOPS_NOT_SUPPORT_OVER_3GPP_ACCESS = 0,
+    N1_IMS_VOPS_NOT_SUPPORTED = N1_IMS_VOPS_NOT_SUPPORT_OVER_3GPP_ACCESS,
+    N1_IMS_VOPS_SUPPORT_OVER_3GPP_ACCESS = 1,
+    N1_IMS_VOPS_SUPPORTED_3GPP = N1_IMS_VOPS_SUPPORT_OVER_3GPP_ACCESS,
+} vg_ims_3gpp_ind_enum;
+
+typedef enum
+{
+    N1_IMS_VOPS_NOT_SUPPORT_OVER_NON_3GPP_ACCESS = 0,
+    N1_IMS_VOPS_SUPPORT_OVER_NON_3GPP_ACCESS = 1,
+    N1_IMS_VOPS_SUPPORTED_NON_3GPP = N1_IMS_VOPS_SUPPORT_OVER_NON_3GPP_ACCESS
+} vg_ims_n3gpp_ind_enum;
+
+typedef enum
+{
+    N1_EMC_NOT_SUPPORT = 0,
+    N1_EMC_SUPPORT_NR_5GCN_ONLY = 1,
+    N1_EMC_SUPPORT_EUTRA_5GCN_ONLY = 2,
+    N1_EMC_SUPPORT_NR_5GCN_EUTRA_5GCN = 3
+} vg_emergency_service_ind_enum;
+
+typedef enum
+{
+    N1_EMC_FALLBACK_NOT_SUPPORT = 0,
+    N1_EMC_FALLBACK_SUPPORT_NR_5GCN_ONLY = 1,
+    N1_EMC_FALLBACK_SUPPORT_EUTRA_5GCN_ONLY = 2,
+    N1_EMC_FALLBACK_SUPPORT_NR_5GCN_EUTRA_5GCN = 3
+} vg_emergency_fallback_ind_enum;
+
+typedef enum
+{
+    ACCESS_IDENTITY_1_NOT_VALID_IN_RPLMN_EPLMN = 0,
+    ACCESS_IDENTITY_1_VALID_IN_RPLMN_EPLMN = 1
+} mps_ind_enum;
+
+typedef enum
+{
+    N1_EMC_NOT_SUPPORT_OVER_NON_3GPP_ACCESS = 0,
+    N1_EMC_SUPPORT_OVER_NON_3GPP_ACCESS = 1
+} vg_emergency_service_n3gpp_ind_enum;
+
+typedef enum
+{
+    ACCESS_IDENTITY_2_NOT_VALID_IN_RPLMN_EPLMN = 0,
+    ACCESS_IDENTITY_2_VALID_IN_RPLMN_EPLMN = 1
+} mcs_ind_enum;
+
+/* refer to AT+EICPG usage */
+typedef enum {
+    CSFB_PAGE_CONFIG_DISABLED =0,
+    CSFB_PAGE_CONFIG_ENABLE_REPORT_MANUAL,
+    CSFB_PAGE_CONFIG_ENABLE_REPORT_AUTO_REJECT,
+    CSFB_PAGE_CONFIG_T_CSFB_USER_RSP,
+    CSFB_PAGE_CONFIG_T_IGNORE_SAME_NUMBER_OF_CS_SERVICE_NOTIFICATION,
+    CSFB_PAGE_CONFIG_MAX
+} csfb_page_config_enum;
+
+typedef enum
+{
+    NAS_SV_ANY_OPERATION_INVALID = 0,
+    NAS_SV_ANY_OPERATION_LOCAL_RELEASE = 1,
+    NAS_SV_ANY_OPERATION_TRICK_RELEASE = 2,
+    NAS_SV_ANY_OPERATION_PLMN_SEARCH = 4, // Only for VGMM
+    NAS_SV_ANY_OPERATION_CAP_UPDATE = 8
+} nas_sv_any_operation_enum;
+
+typedef enum
+{
+	NAS_SV_MANIPULATE_CONNECTION_TRICK_RELEASE,
+    NAS_SV_MANIPULATE_CONNECTION_LOCAL_RELEASE,
+    NAS_SV_MANIPULATE_CONNECTION_LOCAL_RELEASE_MANUAL_LIST
+} nas_sv_manipulate_connection_enum;
+
+
+/********************************************
+ *      VGMM IW  DEBUG Facility             *
+ ********************************************/
+typedef enum {
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_UPDATE_TYPE   ,
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_MSG_TYPE      ,
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_REG_TYPE      ,
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_DETACH_TYPE   ,
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_CAUSE         ,
+    DEBUG_VGMM_IW_GET_BROADCAST_REGN_CAUSE         ,
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_ATTEMP_CNT    ,
+    DEBUG_VGMM_IW_SET_BROADCAST_REGN_VOPS_SUPPORT  ,
+    DEBUG_VGMM_IW_RESET_BROADCAST_REGN             ,
+    DEBUG_VGMM_IW_IS_POWER_OFF_DETACH              ,
+    DEBUG_VGMM_IW_IS_VALID_BROADCAST_NAS_PROC      ,
+    DEBUG_VGMM_IW_IS_MOBILITY_UPDATE_REQUIRED      ,
+    DEBUG_VGMM_IW_IS_FROM_LTE                      ,
+    DEBUG_VGMM_IW_IS_EPS_NAS_MESSAGE_REQUIRED
+} debug_vgmm_iw_type_enum;
+
+/* For interworking from LTE to NR, there is the same algorithm what used for NR. */
+typedef enum
+{
+    INT_EIA0=0,
+    INT_128_EIA1,
+    INT_128_EIA2,
+    INT_EIA3,
+    INT_EIA4,
+    INT_EIA5,
+    INT_EIA6,
+    INT_EIA7,
+    INT_EIA_NO_SET
+} emm_integrity_algorithm_enum;
+
+/* For interworking from LTE to NR, there is the same algorithm what used for NR. */
+typedef enum
+{
+    ENC_EEA0=0,
+    ENC_128_EEA1,
+    ENC_128_EEA2,
+    ENC_EEA3,
+    ENC_EEA4,
+    ENC_EEA5,
+    ENC_EEA6,
+    ENC_EEA7,
+    ENC_EEA_NO_SET
+} emm_ciphering_algorithm_enum;
+
+typedef enum {
+    PREFER_RAT_TYPE_MOST_PREFERRED,
+    PREFER_RAT_TYPE_RAT_ORDER
+} prefer_rat_type_enum;
+typedef enum {
+    MM_CALL_CAUSE_NONE,
+    MM_CALL_CAUSE_START,
+    MM_CALL_CAUSE_SUCCESS,
+    MM_CALL_CAUSE_FAILURE,
+    MM_CALL_CAUSE_PAGING_GUARD_TIMER_EXPIRED,
+    MM_CALL_CAUSE_T3240_TIMEOUT,
+    MM_CALL_CAUSE_AUTH_FAIL,
+    MM_CALL_CAUSE_AUTH_REJECT,
+    MM_CALL_CAUSE_CONN_EST_FAIL,
+    MM_CALL_CAUSE_LAU_REJECT,
+    MM_CALL_CAUSE_LAU_ACCEPT,
+    MM_CALL_CAUSE_PLMN_LOSS_IND_RECEIVED,
+    MM_CALL_CAUSE_SIM_ERROR_IND_RECEIVED,
+    MM_CALL_CAUSE_PAGING_RESPONSE_SENT,
+    MM_CALL_CAUSE_PAGING_BLOCKED_BY_ACCESS_BARRED,
+    MM_CALL_CAUSE_RR_REL_IND_RECEIVED,
+    MM_CALL_CAUSE_LU_ABNORMAL,
+    MM_CALL_CAUSE_CM_SERV_REJECT,
+    MM_CALL_CAUSE_ACCESS_CLASS_BARRED,
+    MM_CALL_CAUSE_T3230_TIMEOUT,
+} mm_cs_call_fail_cause_enum;
+
+typedef enum {
+    TRY_SWITCH_RAT_RESULT_INVALID,
+    TRY_SWITCH_RAT_RESULT_FAIL
+} try_switch_rat_result_enum;
+
+typedef enum
+{
+    VDM_GMSS_FAILURE_CAUSE_NONE                   = 0,
+    VDM_GMSS_FAILURE_CAUSE_RF_OFF                 = 1,
+    VDM_GMSS_FAILURE_CAUSE_NO_ALLOWED_DOMAIN      = 2,
+    VDM_GMSS_FAILURE_CAUSE_MAX
+} vdm_gmss_failure_cause_enum;
+
+typedef enum {
+	LTE_NO_LOSS = 0, //UE is in 4G normal service
+    LTE_ENTER_SEARCHING, //4G normal service change to searching state
+    LTE_NORMAL_SERVICE_LOSS_WITHOUT_SEARCHING, //4G normal service change to limited service
+    LTE_IRAT_GSM_UMTS, //4G normal service change to 23G normal service
+} lte_normal_service_loss_reason_enum;
+
+typedef enum {
+    NR_NO_LOSS = 0, //UE is in 5G normal service
+    NR_ENTER_SEARCHING, //5G normal service change to searching state
+    NR_NORMAL_SERVICE_LOSS_WITHOUT_SEARCHING, //5G normal service change to limited service
+    NR_IRAT_GSM_UMTS_LTE, //5G normal service change to 234G normal service
+} nr_normal_service_loss_reason_enum;
+
+typedef enum FDD_powerMonitorType
+{
+    FDD_MEME_CELL_POWER_MONITOR_RSCP,
+    FDD_MEME_CELL_POWER_MONITOR_ECNO,
+    FDD_MEME_CELL_POWER_MONITOR_NONE,
+    FDD_MEME_CELL_POWER_MONITOR_TYPE_MAX = FDD_MEME_CELL_POWER_MONITOR_NONE
+} FDD_powerMonitorType;
+
+typedef enum
+{
+	ESM_PRECHECK_PASS 										= 0,
+	ESM_PRECHECK_SIM_IDX_OUT_OF_RANGE 						= 1,
+	ESM_PRECHECK_SMIC_EPSB_CONTEXT_POINTER_SHOULD_NOT_NULL 	= 2,
+	ESM_PRECHECK_PDP_CTXT_PTR_SHOULD_NOT_NULL 				= 3,
+	ESM_PRECHECK_EBI_VALUE_SHOULD_BE_VALID			 		= 4,
+	ESM_PRECHECK_CURRENT_SIM_DPC_CTXT_PTR_SHOULD_NOT_NULL 	= 5,
+	ESM_PRECHECK_APN_LENGTH_SHOULD_NOT_NULL 				= 6,
+	ESM_PRECHECK_BEARER_SHOULD_MAPPING_RB_IDX				= 7,
+	ESM_PRECHECK_QOS_PARAMETER_SHOULD_BE_VALID				= 8,
+	ESM_PRECHECK_OTHER_FAILS 								= 9,
+    ESM_PRECHECK_EMM_IS_DEREGISTERD                         = 10,
+} esm_5g4_precheck_ret_value_enum;
+
+
+typedef enum {
+    PAM_ACCESS_GRANTED = 0,
+	PAM_ACCESS_REJECT_BACK_OFF_TIMER_RUNNING_WITH_VALUE,
+	PAM_ACCESS_REJECT_BACK_OFF_TIMER_DEACTIVATED,
+	PAM_ACCESS_REJECT_OTHERS // Back-off timer not existing but congested due to some other causes (ex. #46)
+} pam_access_check_result_enum;
+
+typedef enum {
+    IRAT_HANDOFF_SYSLOSS = 0,
+    IRAT_HANDOFF_REDIRECTION,
+    IRAT_HANDOFF_RESELECTION,
+    IRAT_HANDOFF_HIGH_PRIORITY_RESELECTION,
+    IRAT_HANDOFF_NONE = 0xFF
+} irat_handoff_cause_enum;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef enum {
+    ENTER_ECALL_INACTIVITY_PROCEDURE = 0,  // deregister from NW, enter the eCall inactivity procedure
+    LEAVE_ECALL_INACTIVITY_PROCEDURE       // register to NW, leave the eCall inactivity procedure (not support, reserved for future use)
+} ecall_registration_state_enum;
+#endif
+
+
+typedef enum {
+    NWSEL_EUTRAN_CAP_UPDATE_NONE = 0,
+    NWSEL_EUTRAN_CAP_UPDATE_WAIT
+}eutran_cap_update_wait_status_enum ;
+
+typedef enum {
+    TA_LIST_TYPE_00 = 0x00,
+    TA_LIST_TYPE_01 = 0x20,
+    TA_LIST_TYPE_10 = 0x40
+} vgs_ta_list_type_enum;
+#endif // ifndef _l3_INC_ENUMS_H
diff --git a/mcu/protocol/interface/l4misc/l3_inc_local.h b/mcu/protocol/interface/l4misc/l3_inc_local.h
new file mode 100644
index 0000000..fe07b38
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l3_inc_local.h
@@ -0,0 +1,1226 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * L3_INC_STRUCT.H
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file describes the common enums of L3.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L3_INC_LOCAL_H
+#define _L3_INC_LOCAL_H
+
+#include "kal_general_types.h"
+//#include "kal_non_specific_general_types.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum_public.h"
+#include "ps_public_enum.h"
+#include "irat_common_enums.h"
+#include "global_type.h" 
+#include "l3_inc_enums_public.h"
+#include "gmss_public.h"
+
+/*****************************************************************************
+ * Constant Definitions
+ *****************************************************************************/
+/* RAT capability configuration */
+#if defined (__GSM_RAT__)
+#define IS_GSM_RAT_SUPPORTED 1
+#else
+#define IS_GSM_RAT_SUPPORTED 0
+#endif
+
+#if defined (__UMTS_RAT__)
+#define IS_UMTS_RAT_SUPPORTED 1
+#else
+#define IS_UMTS_RAT_SUPPORTED 0
+#endif
+
+#if defined (__LTE_RAT__)
+#define IS_LTE_RAT_SUPPORTED 1
+#else
+#define IS_LTE_RAT_SUPPORTED 0
+#endif
+
+#if defined (__NR_RAT__)
+#define IS_NR_RAT_SUPPORTED 1
+#else
+#define IS_NR_RAT_SUPPORTED 0
+#endif
+
+#define MAX_SUPPORTED_RAT (IS_GSM_RAT_SUPPORTED+IS_UMTS_RAT_SUPPORTED+IS_LTE_RAT_SUPPORTED+IS_NR_RAT_SUPPORTED)
+
+#if MAX_SUPPORTED_RAT == 0
+#error "Shall at least define 1 valid RAT!"
+#endif /* RAT capability configuration */
+
+#define RAC_MAX_NUM_LISTED_PLMNS 16*MAX_SUPPORTED_RAT   
+
+#define SYS_MAX_MRU_LIST_NUM 12
+
+#define MAX_FORBIDDEN_NETWORK_NUM 32
+
+#define MAX_REDIRECT_FREQ_NUM 6
+
+#define GMSS_LTE_UNAVAIL_DB_SIZE 128
+
+#define MAX_PLMN_BAND_NUM 48
+
+#define NRRC_KAMF_LENGTH (32)
+
+/*****************************************************************************
+ * Type Definitions
+ *****************************************************************************/
+
+#define PACKET_FILTER_CONTENT_LEN   53  /* Poying: 29+(32-8) */
+
+// LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+#define NSAPI_STRUCT_HDR \
+   LOCAL_PARA_HDR \
+   kal_uint8 nsapi;
+
+#define MAX_LEN_OF_ALL_ALLOWED_NSSAI 144
+
+typedef struct {
+    kal_uint8 pfi;
+    kal_uint8 epi;
+    kal_uint8 contents_len; /* in bytes*/
+    kal_uint8 contents[PACKET_FILTER_CONTENT_LEN];
+} packet_filter_struct;
+
+typedef struct {
+    kal_uint8 tft_op_code;
+    kal_uint8 spare;
+    kal_uint8 num_packet_filters;
+    packet_filter_struct packet_list[8];
+} tft_struct;
+
+typedef struct {
+    kal_uint16      req_n201u; //erica 20070112
+} pdp_auxinfo_struct;
+
+
+typedef struct {
+    kal_uint8 length; /* LENGTH*/
+    kal_uint8 digit0; /* DIGIT 0*/
+    kal_uint8 odd_or_even; /* ODD OR EVEN*/
+    kal_uint8 identity_type; /* IDENTITY TYPE*/
+    kal_uint8 digit_byte[7];
+} imsi_struct;
+
+typedef struct {
+    kal_uint16 bcch_list[8];
+} bcchs_struct;
+
+
+typedef struct {
+    kal_uint8 length;
+    kal_uint8 digit0;
+    kal_uint8 odd_or_even;
+    kal_uint8 identity_type;
+    kal_uint8 digit_byte[7];
+} imei_struct;
+
+typedef struct {
+    plmn_id_struct plmn_id;
+    kal_uint8 la_code[2];
+    kal_uint8 ra_code;  /* RA CODE*/
+    kal_uint8 ta_code[3]; 
+    kal_uint32 cell_id; /* CELL ID*/
+    kal_uint16 bandwidth;
+    kal_bool is_csg_cell;
+    csg_info_struct csg_info;    
+#ifdef __VOLTE_SUPPORT__
+    kal_bool ims_emergency_support;
+#endif
+#ifdef __NG_ECALL_SUPPORT__
+    kal_bool ecall_over_ims_support;
+#endif
+} cell_info_struct;
+
+typedef struct {
+    kal_bool  is_cell_valid;
+    kal_uint32 cell_id;
+    kal_bool  is_la_valid;
+    kal_uint8 la_code[2]; 
+    plmn_id_struct plmn_id;
+} emc_forbidden_nw_list_struct;
+
+typedef struct
+{
+    kal_uint32 cell_id;
+    kal_uint8  la_code[2];
+    kal_uint8  ra_code;
+
+    /* Defined by IOT spec (reserved) */
+    kal_uint8  active_time;
+    kal_uint8  periodic_rau;
+} gsm_cell_struct;
+
+typedef struct
+{
+    kal_uint32 cell_id;
+    kal_uint8  la_code[2];
+    kal_uint8  ra_code;
+
+    /* Defined by IOT spec (reserved) */
+    kal_uint8  active_time;
+    kal_uint8  periodic_rau;
+} umts_cell_struct;
+
+typedef struct
+{
+    kal_uint32 cell_id;
+    kal_uint8  ta_code[2];
+
+    /* Defined by IOT spec (reserved) */
+    kal_uint8  active_time;
+    kal_uint8  periodic_tau;
+
+    kal_uint16 bandwidth;
+    kal_bool   ims_emergency_support;
+
+    /* ENDC usage for 5G within 4G */
+    endc_sib_status_enum   endc_sib_status;/* "endc_sib_status" will be set to "ENDC_SIB_STATUS_SUPPORT" if the corresponding 
+                                            * bit of selected PLMN in PLMN-InfoList-r15 from SIB2 is TRUE. 
+                                            */
+    kal_bool   endc_available;             /* "endc_available" wil be set to TRUE if any bit in PLMN-InfoList-r15 from SIB2 is TRUE */
+#ifdef __NG_ECALL_SUPPORT__
+    kal_bool ecall_over_ims_support;
+#endif /* __NG_ECALL_SUPPORT__ */
+} lte_cell_struct;
+
+typedef struct
+{
+    /* 5G extends the Cell ID to 36-bit */
+    kal_uint64 cell_id;
+    kal_uint8  ta_code[3];
+
+    kal_bool ims_emergency_support;
+} nr_cell_struct;
+
+typedef union {
+    gsm_cell_struct   gsm_cell;
+    umts_cell_struct  umts_cell;
+    lte_cell_struct   lte_cell;
+    nr_cell_struct    nr_cell;
+} cell_info_union;
+
+typedef struct {
+    rat_enum         rat;
+    cell_info_union  cell_info;
+    
+    kal_bool         is_csg_cell;
+    csg_info_struct  csg_info;
+    
+    rat_duplex_type_enum    duplex_type;
+
+    plmn_id_struct plmn_id;
+    kal_bool       is_on_hplmn;
+    kal_bool       is_home_country; //AT&T requirement CDR-WiFi-1560: WiFi need to know domestic roaming and international roaming
+} cell_info_and_rat_struct;
+
+typedef struct
+{    
+    integ_protect_status_enum        is_integ_protected;
+    kal_uint8                   invalid_cs_sim_counter;
+    kal_uint8                   invalid_ps_sim_counter;
+    kal_bool                    is_dos_enhance_enable; 
+}dos_enhance_info_struct;
+
+typedef enum
+{
+    MS_NULL_STATE = 0,
+    MS_READY_STATE,
+    MS_STANDBY_STATE,
+    MS_FORCED_TO_STANDBY_STATE
+}gmm_ms_state_enum;
+
+typedef enum {
+    CELL_CONNECTION_NONE = 0,           // Cell is not a serving cell.
+    CELL_CONNECTION_PRIMARY_SERVING,    // UE has connection to cell for signalling and possibly data (3GPP 36.331, 25.331).
+    CELL_CONNECTION_SECONDARY_SERVING,  // UE has connection to cell for data (3GPP 36.331, 25.331).
+} cell_connection_status_enum;
+
+/*5G Part*/
+typedef struct
+{
+    /* Cell Identity NR */
+    kal_uint16          pci;                // PCID
+
+    /**
+     * NR Cell Identity in range [0, 68719476735] (36 bits) described in 3GPP TS 38.331, which
+     * unambiguously identifies a cell within a PLMN. This value must be valid for registered or
+     * camped cells; LONG_MAX (2^63-1) means invalid/unreported.
+     */
+    kal_uint8           cell_id[5];         //CI
+    kal_bool            reg_status;         // 0 for non-serving cell; 1 for serving cell
+    cell_connection_status_enum  cell_connection_status;
+    NRARFCN             ssb_arfcn;
+
+    /* Signal Strength NR */
+    kal_int16           ss_rsrp_in_qdbm;    // RSRP, 0x8000 for invalid
+    kal_int16           ss_rsrq_in_qdb;     // RSRQ, 0x8000 for invalid
+    kal_int16           ss_sinr_in_qdb;     // SINR, 0x8000 for invalid
+
+    kal_int16           csi_rsrp_in_qdbm;   // not support, 0x8000
+    kal_int16           csi_rsrq_in_qdb;    // not support, 0x8000
+    kal_int16           csi_sinr_in_qdb;    // not support, 0x8000
+} cell_info_5g_output_struct;
+
+/*4G Part*/
+typedef struct
+{
+    /* Cell Identity LTE */
+    kal_uint16                   pci;               // PCID
+    kal_uint32                   cell_id;           // CI
+    kal_bool                     reg_status;        // 0 for non-serving cell; 1 for seving cell
+    cell_connection_status_enum  cell_connection_status;
+    EARFCN                       dl_arfcn;   
+    EARFCN                       ul_arfcn;   
+     /* Signal Strength LTE */
+    kal_int16                    rssi;              // RSSI
+    kal_int16                    rsrp;              // RSRP
+    kal_int16                    rsrq;              // RSRQ
+    kal_int16                    snr;               // SNR
+} cell_info_4g_output_struct;
+
+/*3G Part*/
+typedef struct 
+{
+    /* Cell Identity UMTS*/
+    kal_uint16                   psc;                 // PSC
+    kal_uint32                   cell_id;             // CI
+    kal_bool                     reg_status;          // Registration Status (Serving Cell/Non Serving cell)
+    cell_connection_status_enum  cell_connection_status;
+    umts_duplex_mode_type        umts_duplex_mode;    //  Duplex mode(UMTS_WCDMA_DUPLEX_MODE)
+    EARFCN                       dl_arfcn;   
+    EARFCN                       ul_arfcn;
+    /* Signal Strength UMTS*/ 
+    kal_int16                    rscp;                // rscp
+    kal_int16                    ecno;                // EcNO
+    kal_int32                    rssi;                // RSSI
+   
+} cell_info_3g_output_struct;
+
+/* 2G Part*/
+typedef struct
+{
+    /* Cell Identity 2G*/
+    kal_uint16                   cell_id;         // CI
+    kal_uint16                   gsm_bsic;   
+    kal_uint16                   gsm_arfcn; 
+    cell_connection_status_enum  cell_connection_status;
+    /* Signal Strength 2G */
+    kal_int16                    rssi;            //RSSI
+    kal_bool                     reg_status;      // 0: non-Serving cell; 1: Serving cell
+ 
+} cell_info_2g_output_struct;
+
+typedef union
+{
+    cell_info_2g_output_struct plmn_list_2g_output;
+    cell_info_3g_output_struct plmn_list_3g_output;
+    cell_info_4g_output_struct plmn_list_4g_output;
+    cell_info_5g_output_struct plmn_list_5g_output;
+} cell_info_output_union_type;
+
+/* UAS/GAS <-> RATCM begin */
+typedef struct {
+    plmn_id_struct   plmn_id;
+    kal_uint8        la_or_ta_code[3];
+    kal_int16        power_level;
+    kal_bool         may_suitable_cell_exist;   
+                     //TRUE(1) for suitable cell may exist;
+                     //FALSE(0) for no suitable cell exist.
+    kal_bool         may_suitable_cell_exist_higher_pri;
+    lte_duplex_type_enum    lte_type;
+#ifdef __VOLTE_SUPPORT__
+    kal_bool         ims_emergency_support;
+#endif
+#ifdef __NG_ECALL_SUPPORT__
+    kal_bool         ecall_over_ims_support;
+#endif /* __NG_ECALL_SUPPORT__ */
+    kal_bool         not_suitable_for_select;
+	                 // AS will report this flag according to SBP_DISPLAY_NOT_SELECTABLE_PLMN and cell status
+    kal_uint32       time_scan_start;
+    kal_uint32       time_scan_end;
+    kal_uint16       band_ind;
+    endc_sib_status_enum        endc_sib_status; /* upperLayerIndication-r15 in SIB2 */
+    cell_info_output_union_type plmn_list_output;
+} available_plmn_struct;
+
+typedef struct {
+    kal_uint8                       plmn_count;
+    plmn_id_rat_struct              plmn_id_rat[RAC_MAX_NUM_LISTED_PLMNS];
+    kal_uint8                       la_code[RAC_MAX_NUM_LISTED_PLMNS][3];
+    nwsel_plmn_list_status_enum     status[RAC_MAX_NUM_LISTED_PLMNS];
+	endc_sib_status_enum            endc_sib_status[RAC_MAX_NUM_LISTED_PLMNS]; /* upperLayerIndication-r15 in SIB2 */
+    kal_bool                        may_suitable_cell_exist[RAC_MAX_NUM_LISTED_PLMNS];
+    available_plmn_struct           available_list[RAC_MAX_NUM_LISTED_PLMNS];
+} rac_plmn_list_struct;
+
+typedef struct {
+    kal_uint8        plmn_count;
+    kal_uint8        high_quality_plmn_count;
+    available_plmn_struct available_plmn[MAX_NUM_PLMN_PER_RAT];
+} as_plmn_list_struct;
+
+typedef struct {
+    plmn_id_rat_struct plmn_id_rat;
+    kal_uint8 csg_count;
+    csg_info_struct *csg_info_list;
+} available_plmn_csg_struct;
+
+typedef struct {
+    kal_uint8 plmn_count;
+    available_plmn_csg_struct available_plmn_csg[MAX_NUM_PLMN_PER_RAT];
+} as_csg_list_struct;
+
+typedef struct
+{
+    kal_uint8 plmn_count;
+    available_plmn_csg_struct available_plmn_csg[MAX_NUM_PLMN_PER_RAT];
+    kal_uint8 sorted_csg_count;
+    available_plmn_csg_struct sorted_plmn_csg[MAX_CSG_NUM];
+} rac_csg_list_struct;
+
+typedef struct{
+    kal_uint8 ref_count;
+    kal_uint16 msg_len;
+    kal_bool is_cs_cipher_key_info_present;      /* if GSM CS cipher key present */
+    kal_uint8 cs_cipher_key_info[KC_LEN];        /* GSM CS domain cipher key (Kc) */
+    kal_bool is_cs_cipher_key128_info_present;   /* if GSM CS cipher key128 present */
+    kal_uint8 cs_cipher_key128_info[KC128_LEN];  /* GSM CS domain cipher key128 (Kc128) */
+    kal_uint8 cksn; /* cipher key sequence number */
+}ratcm_gas_security_mode_req_struct;
+
+typedef struct{
+    domain_id_enum	domain_id;  //The domain of security context
+    kal_uint8	umts_ciphering_key[CK_LEN]; //UMTS ciphering key
+    kal_uint8	umts_integrity_key[IK_LEN]; //UMTS integrity key
+}uas_security_context_struct;
+
+/* UAS/GAS <-> RATCM end */
+
+typedef struct {
+    domain_id_enum pag_resp_rest_ind;
+    domain_id_enum loc_reg_rest_ind;   
+    kal_uint16 loc_reg_ppacr;
+} ppacr_info_struct ;
+
+/* L4C <-> ENAS/EAS begin */
+
+/* Cell restriction related definitions */
+#define REST_CELL_ARRAY_SIZE    8
+#define REST_FREQ_ARRAY_SIZE    8
+
+typedef enum {
+    REST_MODE_NULL,
+    REST_MODE_RESTRICTED_LIST,
+    REST_MODE_PERMITTED_LIST
+} rest_mode_enum;
+
+typedef struct {
+    EARFCN                      earfcn;            /* EARFCN */
+    kal_uint16                  lower_cell_id;     /* Lower Physical Cell Identity */
+    kal_uint16                  higher_cell_id;    /* Higher Physical Cell Identity */
+} rest_cell_range_struct;
+
+typedef struct{
+    kal_uint16                  lower_earfcn;      /* Lower EARFCN */
+    kal_uint16                  higher_earfcn;     /* Higher EARFCN */
+} rest_freq_range_struct;
+
+typedef struct{
+    rest_mode_enum              mode;                                               /* Restricted list mode */
+    kal_uint8                   rest_cell_range_num;                                /* Number of restricted cell list */
+    kal_uint8                   rest_freq_range_num;                                /* Number of restricted frequency list */
+    rest_cell_range_struct      rest_cell_range_list[REST_CELL_ARRAY_SIZE];         /* Restricted cell list */
+    rest_freq_range_struct      rest_freq_range_list[REST_FREQ_ARRAY_SIZE];         /* Restricted frequency list */
+    kal_bool                    is_umts_rest;                                       /* If all umts cells are restricted */
+    kal_bool                    is_gsm_rest;                                        /* If all gsm cells are restricted */
+    kal_bool                    is_c2k_rest;                                        /* If all c2k cells are restricted */    
+} rest_command_struct;
+
+/* Monitor mode struct */
+typedef struct{
+    kal_bool                    is_monitor_mode_set;                                /* Is monitor mode is switched on or off */
+} monitor_mode_command_struct;
+
+/* L4C <-> ENAS/EAS end */
+
+/* ETCM <-> ENAS/EAS begin */
+#define MIN_APN_LEN                     1
+
+typedef struct
+{
+    kal_uint8                   length;
+    kal_uint8                   data[MAX_APN_LEN];
+
+} apn_struct;
+
+/* ETCM <-> ENAS/EAS end */
+
+/* NWSEL <-> ENAS/EAS begin */
+typedef struct
+{
+kal_uint8 addr_length;
+kal_uint8 addr_bcd[MAX_NW_ECC_NUM_LENGTH];
+} l3_addr_bcd_struct;
+
+typedef struct {
+	kal_uint8          category;
+	l3_addr_bcd_struct	tel_number;
+} ecc_number_struct;
+
+/* RATCM -> MM -> NWSEL */
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat;
+    kal_uint32 cell_id;
+    kal_bool  is_la_valid;
+    kal_uint8 la_code[2];
+    kal_bool  is_ra_valid;
+    kal_uint8 ra_code;
+    kal_uint8 multi_plmn_count;
+    plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+} mm_cell_global_identity_info_ind_struct;
+
+/* RATCM -> MM -> NWSEL */
+typedef struct
+{
+    kal_uint16 band;
+    plmn_id_struct plmn_id; /* chann */
+} cell_band_info_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 gibi_tag;
+    rat_enum rat;
+    kal_bool is_data_pending;
+    kal_bool is_sys_info_present;
+#if defined(__UMTS_FDD_MODE__) || defined(__TD_NETWORK_SHARING__) || defined (UNIT_TEST)
+    kal_uint8 multi_plmn_count;
+    plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+    as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
+#endif
+    plmn_id_struct plmn_id;
+    kal_uint8 la_code[2];
+    kal_uint8 ra_code;
+    kal_uint32 cell_id; //mtk02475: extended cell id in UMTS
+    kal_bool cell_support_cs;
+    kal_bool cell_support_ps; /* if FALSE, nmo and ra_code should not refer. */
+    kal_bool is_acc_class_present;
+    kal_uint16 acc_class;
+    kal_uint8 extra_info_bitmask; /* mtk02475: for DSAC/data_speed_support update in connected mode*/
+#if defined (__R6_DSAC__) || defined (UNIT_TEST)
+    kal_uint8 dsac_plmn_bitmask;
+    kal_uint16 cs_dsac[MAX_NUM_MULTI_PLMN];
+    kal_uint16 ps_dsac[MAX_NUM_MULTI_PLMN];
+#endif
+    kal_uint8 t3212_timer_val;
+    network_mode_enum nmo;
+    as_cell_type_enum cell_type;
+    att_flag_enum att_flag;
+    kal_bool mscr;
+    rr_mm_sgsnr_flag_enum sgsnr;
+#if defined (__PS_SERVICE__) || defined (UNIT_TEST)
+    data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */
+#endif
+
+#if defined (__PPACR_SUPPORT__) || defined (UNIT_TEST)
+    kal_uint8 ppacr_plmn_bitmask;
+    ppacr_info_struct ppacr_info_plmn_list[MAX_NUM_MULTI_PLMN];
+#endif
+
+    csg_access_mode_enum csg_access_mode;
+    csg_info_struct csg_info;
+    
+#ifdef __LTE_RAT__
+    kal_bool is_gprs_info_in_si13_deferred;
+#endif
+    kal_uint8 band;
+} mm_sys_info_ind_struct;
+
+typedef struct
+{
+    capability_switch_enum s1_cap;
+    capability_switch_enum n1_cap;  
+
+    /* gsm/umts not yet implement, put here for extension. Always set to ENABLE */
+    capability_switch_enum gsm_cap;
+    capability_switch_enum umts_cap;
+
+	vg_option_enum vg_option;
+} ue_capability_struct;
+
+typedef struct
+{
+    ue_capability_struct ue_cap;
+    kal_bool is_mrs_endc_supported;     // query result of "mrs_nras_is_endc_support()"
+    kal_bool is_nw_endc_disabled;       // is EN-DC disabled for specific SIM/network
+} nas_sv_ue_capability_struct;
+
+typedef struct
+{
+   kal_bool         wait_emc_pdn_status;
+   plmn_id_struct   rplmn;
+   kal_uint8        eq_plmn_byte_count;
+   kal_uint8        eq_plmn_id[MAX_NUM_EQ_PLMN*3];
+} update_eplmn_struct;
+
+/* NWSEL <-> ENAS/EAS end */
+
+typedef struct
+{
+    vg_ims_3gpp_ind_enum                vg_ims_3gpp_ind;
+    vg_ims_n3gpp_ind_enum               vg_ims_n3gpp_ind;
+    vg_emergency_service_ind_enum       vg_emergency_service_ind;
+    vg_emergency_fallback_ind_enum      vg_emergency_fallback_ind;
+    iwk_n26_enum                        iwk_n26_ind;
+    mps_ind_enum                        mps_ind;
+    vg_emergency_service_n3gpp_ind_enum vg_emergency_service_n3gpp_ind;
+    mcs_ind_enum                        mcs_ind;
+} vgmm_nw_feature_support_struct;
+
+typedef struct {
+    kal_uint8 ie_content[MAX_LEN_OF_OPT_IE_MULTI];
+} vgmm_payload_opt_ie_struct;
+
+typedef struct
+{
+    ims_ind_enum                    ims_ind;
+    emergency_service_ind_enum      emergency_service_ind;
+    location_service_epc_ind_enum   location_service_epc_ind;
+    location_service_cs_ind_enum    location_service_cs_ind;   
+    ext_service_request_for_ps_enum ext_service_request_for_ps_ind;
+    ext_pco_enum                    ext_pco_ind;
+    restrict_dcnr_enum              restrict_dcnr_ind;
+    iwk_n26_enum                    iwk_n26_ind;
+} emm_nw_feature_support_struct;
+
+typedef struct
+{
+    ug_ims_ind_enum                 ims_voice_over_ps_ind;
+    ug_emergency_service_ind_enum   emergency_service_ind;
+} gmm_nw_feature_support_struct;
+
+
+/* NWSEL <-> ENAS/EAS end */
+
+#ifdef __LTE_RAT__
+typedef struct {
+    LOCAL_PARA_HDR
+    errc_sim_protect_purpose_enum purpose;
+    kal_bool need_protect;
+} errc_sim_protect_req_struct;
+#endif //__LTE_RAT__
+
+typedef struct
+{
+    gmss_rat_enum rat;
+    plmn_id_struct loc;
+    prio_class_enum prio_class;
+
+} gmss_mru_info_struct;
+
+typedef struct {
+    kal_uint32 num_mcc;
+    plmn_id_struct mcc[MAX_NUM_OF_MCC];
+} found_mcc_info_struct;
+typedef struct
+{
+    kal_uint32 entry_index;
+    irat_system_type_enum rat;
+    kal_uint8 band;
+    plmn_id_struct plmn_id;
+    kal_uint16 channel;                     // There is no PLMN ID in C2K, only channel number
+} vzwmru_entry_struct;
+
+typedef struct 
+{
+    domain_id_enum  updated_domain;     /* The domain to be updated */
+
+    reg_state_enum  cs_state;
+    reg_state_enum  ps_state;
+
+    cell_info_and_rat_struct    cell_type;
+    data_speed_support_enum cell_data_speed_support;
+
+    kal_uint8       cause_type;           /* 0: defined by spec    1: internal cause, defined by manufacture */
+    mm_cause_enum   reject_cause;
+
+    /* Combined attach, CS/PS may register with different PLMN in NAS view 
+      Amid TMO network, if CS is in PLMN-A, PS in PLMN-B, and LTE does not support CS, that means
+      UE cannot perform CSFB but VoLTE */
+    lai_struct      cs_lai; 
+
+    kal_bool    is_skip;        /* Network display optimization (reserved) */
+    
+    kal_bool    dcnr_restricted;
+    kal_uint8 vgmm_allowed_nssai_length; /* Number of bytes in allowed NSSAI */
+    kal_uint8 vgmm_allowed_nssai[MAX_LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */
+} reg_state_ind_struct;
+
+typedef struct
+{
+    plmn_id_struct plmn_id;
+    kal_uint16 band;
+} plmn_band_struct;
+
+#define INVALID_CAMPING_INFO_ID 0xffff
+#define INVALID_CAMPING_INFO_MASK 0x0f
+
+typedef struct
+{
+    ue_capability_struct capability;  // new capability
+    rat_enum rat_mode;
+} ue_capability_update_params_struct;
+
+/*
+ * Structure represents the KAMF key.
+ */
+typedef struct {
+    /* KAMF for deriving new KgNB and NH when required by NRRC.
+     * MSB of key[0] is the first bit of key. */
+    kal_uint8   key[NRRC_KAMF_LENGTH];
+} nrrc_kamf_struct;
+
+
+
+#define D_MAX_MMEGID_SIZE           2
+#define D_MTMSI_LEN                 4
+
+typedef struct
+{
+    kal_uint8 value;
+    kal_uint8 tsc;
+} nas_ksi_struct;
+
+
+typedef struct {
+    kal_uint8                       length_of_guti;
+    kal_uint8                       type_of_identity;
+    plmn_id_struct                  plmn_id;
+    kal_uint8                       mme_gid[D_MAX_MMEGID_SIZE];
+    kal_uint8                       mme_code;
+    kal_uint8                       mtmsi[D_MTMSI_LEN];
+} guti_struct;
+
+
+#define VGNAS_TAC_LEN 3   /* 5G Tracking Area Code size */
+#define VGNAS_MAX_TAI_LIST 16 /* Max number of entries in TA list */
+#define MAX_LADN_INFO 8
+#define MAX_CRLADN_LEN 808
+#define MAX_LADN_INFO_LEN 1712
+
+/**
+  * TA structure to store tracking area identity
+  */
+typedef struct vgnas_tai_struct {
+    plmn_id_struct plmn_id;
+    kal_uint8 ta_code[VGNAS_TAC_LEN];
+} vgnas_tai_struct;
+
+
+/**
+* Structure to store different TA lists: registered TAs,
+* allowed TA list and non-allowed TA list.
+*/
+typedef struct vgnas_ta_list_struct {
+    kal_uint8 number_of_ta;
+    vgnas_tai_struct ta_list[VGNAS_MAX_TAI_LIST];
+
+} vgnas_ta_list_struct;
+
+/**
+* Structure to store LADN information
+*/
+typedef struct {
+    apn_struct dnn;
+    vgnas_ta_list_struct ta_list;    
+} ladn_info_struct;
+
+/**
+* Structure for LADN information primitive forwarding
+*/
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 num_of_ladn_info;
+    ladn_info_struct ladn_info[MAX_LADN_INFO];
+
+    kal_bool   is_ladn_raw_data_valid;
+    kal_uint16 ladn_raw_data_len;
+    kal_uint8  ladn_raw_data[MAX_LADN_INFO_LEN];
+
+} ladn_info_update_ind_struct;
+
+/*
+ * Structure for L4 Context
+ */
+typedef struct 
+{
+    kal_uint8 num_of_ladn_info;
+    ladn_info_struct ladn_info[MAX_LADN_INFO];
+
+    kal_bool   is_ladn_raw_data_valid;
+    kal_uint16 ladn_raw_data_len;
+    kal_uint8  ladn_raw_data[MAX_LADN_INFO_LEN];
+} l4ctcm_ladn_info_list_struct;
+
+#endif 
diff --git a/mcu/protocol/interface/l4misc/l4_defs.h b/mcu/protocol/interface/l4misc/l4_defs.h
new file mode 100644
index 0000000..fba0b72
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4_defs.h
@@ -0,0 +1,89 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4_defs.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for type definition used in CSM(CC) module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+
+#ifndef _L4_DEFS_H
+#define _L4_DEFS_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "stack_config.h"
+//#include "stack_msgs.h"
+//#include "app_ltlcom.h"
+
+#ifdef __L4_MAX_NAME_60__
+#define L4_MAX_NAME               (62)
+#else
+#define L4_MAX_NAME               (32)
+#endif
+
+#define MAX_MMI_NAME_LEN          (10)
+#define MAX_CALLED_BCD_NUM_LEN    (40)
+/*by Yuchuan*/
+#define L4_MAX_ADDR_BCD                    41
+
+
+#endif /* _L4_DEFS_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4_trc.h b/mcu/protocol/interface/l4misc/l4_trc.h
new file mode 100644
index 0000000..9bd3aca
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4_trc.h
@@ -0,0 +1,108 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4_trc.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This is trace map definition.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+#ifndef _L4_TRC_H
+#define _L4_TRC_H
+#if 0 //rhr
+#ifndef GEN_FOR_PC
+   #ifndef _STACK_CONFIG_H
+/* under construction !*/
+   #endif
+#else
+/* under construction !*/
+#endif /* GEN_FOR_PC */
+#ifndef _KAL_TRACE_H
+/* under construction !*/
+#endif
+#endif
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "kal_trace.h"
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+/* TRACE_GROUP_1 for CC/SS/CTM */
+#define L4C_CCSS_TRC TRACE_GROUP_1   
+#define L4C_CTM_TRC  TRACE_GROUP_1
+/* TRACE_GROUP_2 for GPRS */
+#define L4C_GPRS_TRC TRACE_GROUP_2   
+/* TRACE_GROUP_3 for EQ/EM */
+#define L4C_EQ_TRC   TRACE_GROUP_3   
+#define L4C_EM_TRC   TRACE_GROUP_3
+/* TRACE_GROUP_4 for SMS/PHB */
+#define L4C_SMS_TRC  TRACE_GROUP_4   
+#define L4C_PHB_TRC  TRACE_GROUP_4
+/* TRACE_GROUP_5 for NW/SMU/HomeZone */
+#define L4C_NW_TRC   TRACE_GROUP_5
+#define L4C_SMU_TRC  TRACE_GROUP_5
+#define L4C_HZ_TRC   TRACE_GROUP_5
+/* TRACE_GROUP_6 for Misc.*/  
+#define L4C_MISC_TRC TRACE_GROUP_6
+/* TRACE_GROUP_7 for CID and PORT. */
+#define L4C_CID_TRC  TRACE_GROUP_7
+/* TRACE_GROUP_8 for EONS */
+#ifdef __EONS_SUPPORT__
+#define L4C_EONS_TRC  TRACE_GROUP_8
+#endif
+#if !defined(GEN_FOR_PC)
+#include"l4_trc_mod_l4c_utmd.h"
+#endif
+#endif
diff --git a/mcu/protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json b/mcu/protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json
new file mode 100644
index 0000000..79b0d77
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json
@@ -0,0 +1,5146 @@
+{
+  "endGen": "-", 
+  "legacyParameters": {}, 
+  "module": "MOD_L4C", 
+  "startGen": "Legacy", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_INFO"
+        ], 
+        "traceType": "DesignInfo"
+      }
+    }, 
+    {
+      "TRACE_WARNING": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_WARNING"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_ERROR": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_ERROR"
+        ], 
+        "traceType": "Public"
+      }
+    }, 
+    {
+      "TRACE_FUNC": {
+        "debugLevel": "Low", 
+        "tag": [
+          "Baseline", 
+          "TRACE_FUNC"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_STATE": {
+        "debugLevel": "Medium", 
+        "tag": [
+          "Baseline", 
+          "TRACE_STATE"
+        ], 
+        "traceType": "DesignInfo"
+      }
+    }, 
+    {
+      "TRACE_GROUP_1": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_2": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_3": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_4": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_5": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_6": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_7": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_8": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_9": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "TRACE_GROUP_10": {
+        "debugLevel": "Ultra-Low", 
+        "tag": [
+          "Baseline"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    },
+    {
+      "TRACE_SENSITIVE_USIR": {
+        "debugLevel": "High", 
+        "tag": [
+          "Baseline",
+          "USIR"
+        ], 
+        "traceType": "Public"
+      }
+    }
+  ], 
+  "traceDefs": [
+    {
+      "FUNC_L4C_CC_HANDFREE_CALLHELD_RIND": {
+        "apiType": "index", 
+        "format": "l4c_cc_handfree_callheld_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_GET_PENDING_PASSWORD_ID_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_root_get_pending_password_id(),sim:%hd,%02X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_UPDATE_LOCK_STATUS_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_root_update_lock_status_ind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_LOCK_STATUS_IND": {
+        "apiType": "index", 
+        "format": "l4c_root_lock_status_ind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_LINK_SML_SUPER_VERIFY_REQ": {
+        "apiType": "index", 
+        "format": "l4c_root_sml_super_verify_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_LINK_SML_RESTORE_LOCK_REQ": {
+        "apiType": "index", 
+        "format": "l4c_root_sml_restore_lock_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_LINK_SML_SERVICE_LOCK_EXE": {
+        "apiType": "index", 
+        "format": "l4c_root_link_sml_service_lock_exe()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_L4C_ROOT_UPDATE_PENDING_PASSWORD_ID_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_root_update_sim_plugin_lock_status_ind(), SIM Slot: %hd, Password: %02X", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_L4C_SIM_SECURITY_CHECK": {
+        "apiType": "index", 
+        "format": "l4c_sim_security_check()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_L4C_MAIN_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_main()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_NVRAM_STARTUP_CNF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "nvram_startup_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_NVRAM_READ_CNF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "nvram_read_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_NVRAM_WRITE_CNF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "nvram_write_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_SIM_READ_CNF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "sim_read_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_SIM_WRITE_CNF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "sim_write_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_CSM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_csm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_CSM_CISS_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_csm_ciss()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_SMU_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_smu()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_RAC_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_rac()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_PSDM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_psdm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_SMSAL_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_smsal()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_UEM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_uem()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_PHB_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_phb()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_TCM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_tcm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_DHL_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_dhl()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_SM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_sm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_EVAL_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_eval()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_ESM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_esm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_PPP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_ppp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_WAP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_wap()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_NVM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_nvm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_SIM_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_sim()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_RSVAS_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_rsvas()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_MED_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_med()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_FD_CHECK_PDP_STATISTICS_ENTRY": {
+        "apiType": "index", 
+        "format": "[FD]l4c_fd_check_pdp_statistics()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NW_END_PS_DATA_SESSION_REQ_ENTRY": {
+        "apiType": "index", 
+        "format": "[FD]l4c_nw_end_ps_data_session_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PS_UPDATE_CURRENT_REG_RIND": {
+        "apiType": "index", 
+        "format": "l4c_ps_update_current_reg_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NOTIFY_RAC_CGACT_EVENT": {
+        "apiType": "index", 
+        "format": "l4c_notify_rac_cgact_event()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_POWER_OFF_NOTIFY_OTHERS": {
+        "apiType": "index", 
+        "format": "l4c_power_off_notify_others()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_RF_OFF_REQ": {
+        "apiType": "index", 
+        "format": "l4c_root_rf_off_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PS_SET_TFT_REQ": {
+        "apiType": "index", 
+        "format": "l4c_ps_set_tft_req(): %Mkal_bool", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PS_GET_TFT_REQ": {
+        "apiType": "index", 
+        "format": "l4c_ps_get_tft_req(): %Mkal_bool", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PSEUDO_BS_DETECT_IND_HDLR": {
+        "apiType": "index", 
+        "format": "l4c_rrm_rrms_pseudo_bs_detect_ind_hdlr()", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "FUNC_L4C_PSEUDO_BS_QUERY_CNF_HDLR": {
+        "apiType": "index", 
+        "format": "l4c_rrm_rrms_pseudo_bs_query_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PSEUDO_BS_LIST_RRSP_HDLR": {
+        "apiType": "index", 
+        "format": "l4c_nw_get_pseudo_bs_list_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "INFO_APC_EXE_CNF": {
+        "apiType": "index", 
+        "format": "receive apc exe cnf from as, expected cnf number:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "FUNC_L4C_INTERNAL_GMC_PROCESS": {
+        "apiType": "index", 
+        "format": "l4c_internal_gmc_process", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "FUNC_L4C_EGMC_SET_RRSP": {
+        "apiType": "index", 
+        "format": "l4c_egmc_set_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EGMC_QUERY_RRSP": {
+        "apiType": "index", 
+        "format": "l4c_egmc_query_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_T30_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_t30()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SEND_MSG_TO_IRDA_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_irda()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_STRING_PARSING_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_string_parsing()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_SIM_STRING_ENTRY": {
+        "apiType": "index", 
+        "format": "is_sim_string()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_SETUP_SIM_STRUCT_ENTRY": {
+        "apiType": "index", 
+        "format": "setup_sim_struct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_GPRS_STRING_ENTRY": {
+        "apiType": "index", 
+        "format": "is_gprs_string()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_SETUP_PDP_ACT_STRUCT_ENTRY": {
+        "apiType": "index", 
+        "format": "setup_pdp_act_struct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_SETUP_IP_PDP_ACT_STRUCT_ENTRY": {
+        "apiType": "index", 
+        "format": "setup_ip_pdp_act_struct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_CC_STRING_ENTRY": {
+        "apiType": "index", 
+        "format": "is_cc_string()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_SETUP_NUMBER_STRUCT_ENTRY": {
+        "apiType": "index", 
+        "format": "setup_number_struct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GET_INT_BEFORE_STAR_ENTRY": {
+        "apiType": "index", 
+        "format": "get_int_before_star()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GET_UINT32_BEFORE_STAR_ENTRY": {
+        "apiType": "index", 
+        "format": "get_uint32_before_star()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GET_STRING_BEFORE_STAR_ENTRY": {
+        "apiType": "index", 
+        "format": "get_string_before_star()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GET_DN_BEFORE_STAR_ENTRY": {
+        "apiType": "index", 
+        "format": "get_dn_before_star()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CONVERT_TO_BCD_ENTRY": {
+        "apiType": "index", 
+        "format": "convert_to_bcd()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CONVERT_TO_BCD_WILD_ENTRY": {
+        "apiType": "index", 
+        "format": "L4C: convert_to_bcd_wild()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CONVERT_TO_DIGIT_ENTRY": {
+        "apiType": "index", 
+        "format": "L4C: convert_to_digit()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CONVERT_TO_DIGIT_EXT_ENTRY": {
+        "apiType": "index", 
+        "format": "L4C: convert_to_digit_ext()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CONVERT_TO_DIGIT_24008_ENTRY": {
+        "apiType": "index", 
+        "format": "L4C: convert_to_digit_24008()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CONVERT_TO_DIGIT_WILD_ENTRY": {
+        "apiType": "index", 
+        "format": "L4C: convert_to_wild()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_PLMN_CONVERT_TO_BCD_ENTRY": {
+        "apiType": "index", 
+        "format": "plmn_convert_to_bcd()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_PLMN_CONVERT_TO_STRUCT_ENTRY": {
+        "apiType": "index", 
+        "format": "plmn_convert_to_struct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_PLMN_CONVERT_TO_DIGIT_ENTRY": {
+        "apiType": "index", 
+        "format": "plmn_convert_to_digit()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_PLMN_CONVERT_INT_TO_STRUCT_ENTRY": {
+        "apiType": "index", 
+        "format": "plmn_convert_int_to_struct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_CMD_CONFLICT_ENTRY": {
+        "apiType": "index", 
+        "format": "is_cmd_conflict()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_TST_INJECT_STRING_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "tst_injext_string_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EQ_FS_FILELIST_REQ_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eq_fs_filelist_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EQ_FS_ACCESS_REQ_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eq_fs_access_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EQ_FS_FOLDER_ACTION_REQ_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eq_fs_folder_action_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EQ_FS_AV_DISK_SIZE_REQ_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eq_fs_av_disk_size_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NW_BAND_INFO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "l4cps_nw_band_info_ind_hdlr", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_C2K_SEND_MSG_TO_VAL": {
+        "apiType": "index", 
+        "format": "l4c_send_msg_to_val()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_C2K_EGCONTRDP_RIND": {
+        "apiType": "index", 
+        "format": "l4c_egcontrdp_report_rind(), cid: %d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SET_DYNAMIC_SBP_ID": {
+        "apiType": "index", 
+        "format": "l4c_set_dynamic_sbp_id()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_ROOT_DYNAMIC_CFG_PROCESSING": {
+        "apiType": "index", 
+        "format": "l4c_root_dynamic_cfg_processing()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "INFO_ATH_NO_CALL_HANGUP": {
+        "apiType": "index", 
+        "format": "ath: no call to hangup", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ATH_REQ_ATD_ABORT": {
+        "apiType": "index", 
+        "format": "ath_req: ATD aborted!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_LOCAL_DISCONNECT": {
+        "apiType": "index", 
+        "format": "L4C local disconnect call:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_UCM_END_CSD_CALL_DISC": {
+        "apiType": "index", 
+        "format": "UCM might end all while previous CSD call disconnection is processing", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CHLD_CLEAR_RETRY": {
+        "apiType": "index", 
+        "format": "CHLD clear retry call,orignal cc_action[%Ml4c_source_id_enum]= %Ml4c_action_enum,further action=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NO_CALL_EXIST": {
+        "apiType": "index", 
+        "format": "ath_req: no call exist!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLEAR_QUEUED_CHLD": {
+        "apiType": "index", 
+        "format": "Clear queued chld if force release is received", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NOT_PRINT_NO_CARRIER": {
+        "apiType": "index", 
+        "format": "We don't have to print URC NO_CARRIER when ATH or +chld to hangup call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_UPDATE_MMI_CALL_ID": {
+        "apiType": "index", 
+        "format": "To update MMI call_id byl DIAL_IND with call_id =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RETRY_FLAG": {
+        "apiType": "index", 
+        "format": "retry_ss=%hd, retry_count=%hd, retry_src_id=%Ml4c_source_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_STOP_RETRY": {
+        "apiType": "index", 
+        "format": "stop retry & clear msg!, current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CELL_LOCK_CALL": {
+        "apiType": "index", 
+        "format": "is_cell_lock_call= %hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SHORT_STRING_IS_ECC_NUMBER": {
+        "apiType": "index", 
+        "format": "This short string is a ECC number", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CUSTOM_SHORT_STRING_AS_CALL_RETURN_TRUE": {
+        "apiType": "index", 
+        "format": "custom_short_string_as_call() return TRUE!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CUSTOM_IDLE_STRING_AS_CALL_RETURN_TRUE": {
+        "apiType": "index", 
+        "format": "custom_idle_string_as_call() return TRUE!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RETRY": {
+        "apiType": "index", 
+        "format": "retry!, src_id=%Ml4c_source_id_enum, current_action=%Ml4c_action_enum, retry_ss=%hd, retry_count=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_START_CHANGE_PHASE_RETRY_TIMER_HDLR_START_TIMER": {
+        "apiType": "index", 
+        "format": "l4c_start_change_phase_retry_timer_hdlr() start a timer with 2 sec", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_START_SAT_REDIAL_DURATION_TIMER": {
+        "apiType": "index", 
+        "format": "L4C start sat redial duration timer!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SET_SAT_REDIAL_FLAG": {
+        "apiType": "index", 
+        "format": "L4C set sat_redial_flag =%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ATD_MEMORY_DIAL": {
+        "apiType": "index", 
+        "format": "ATD memory dial : PHB return entry with empty number", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CONTINGOUS_CALL_DISC_REQUEST": {
+        "apiType": "index", 
+        "format": "Contingous disconnect request,call_id = %hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SWITCH_CSM_CONTEXT": {
+        "apiType": "index", 
+        "format": "Switch CSM context to SIM:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_MT_CALL_APPROVAL": {
+        "apiType": "index", 
+        "format": "mt_call_approval =%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ENABLE_MT_CALL_APPROVAL": {
+        "apiType": "index", 
+        "format": "MT call approval mechanism is activated", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLEAR_ROUTE_THRU_LMMI": {
+        "apiType": "index", 
+        "format": "Clear route_thru_lmmi", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ECALL_TYPE": {
+        "apiType": "index", 
+        "format": "eCall Type =%Mecall_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ECC_CALL_NO_RETRY": {
+        "apiType": "index", 
+        "format": "Do not do change RAT retry for cause:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PURE_ASCII": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_ussd_req(): pure_ascii=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLEAR_SAT_USSR_FLAG": {
+        "apiType": "index", 
+        "format": "clear  L4C_PTR->sat_ussr_flag", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ALPHABET_TYPE": {
+        "apiType": "index", 
+        "format": "SAT USSD: alphabet_type=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_SAT_USSR_FLAG": {
+        "apiType": "index", 
+        "format": "set L4C_PTR->sat_ussr_flag=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USSD_CONTAINS_SS": {
+        "apiType": "index", 
+        "format": "USSD req but contains SS string", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SAT_USSD": {
+        "apiType": "index", 
+        "format": "SAT USSR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SAT_USSD_INFORM_USER": {
+        "apiType": "index", 
+        "format": "[SAT] sat_ussd_need_inform_user: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_KT_TRANSFER_SS_STATUS": {
+        "apiType": "index", 
+        "format": "KT transfer SS stauts : %x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "L4C_PS_EXE_SEND_DATA": {
+        "apiType": "index", 
+        "format": "%Ml4c_tcm_em_pdp_cid_enum, cid=%hd, poolid=%d, size=%d, src_id=%Ml4c_source_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "L4C_PS_GET_MAX_HSPA_SUPPORT_MODE": {
+        "apiType": "index", 
+        "format": "l4c_nw_get_max_hspa_support_mode(), UL1_dpa_cat=%MFDD_HSDPA_CATEGORY_E, UL1_upa_cat=%MFDD_HSUPA_CATEGORY_E, return=%Ml4c_hspa_preference_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_NDIS_FDN_CHECK_RESULT_AND_ENABLE": {
+        "apiType": "index", 
+        "format": "PHB approve result=%hd; custom_l4c_ndis_fdn_enable()=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_ALREADY_1_ONGOING_ACTIVATION": {
+        "apiType": "index", 
+        "format": "[IPV4V6] already 1 ongoing IPV4V6 activation: cid=%hd, src_id=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_SRC_CID_CAUSE": {
+        "apiType": "index", 
+        "format": "[IPV4V6][ACT TABLE] src_id=%hd, init_cid=%hd, cause=%Mps_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_ENTRY": {
+        "apiType": "index", 
+        "format": "[IPV4V6][ACT TABLE][%d] Type=%Mpdp_addr_type_enum, Cid=%hd, State=%Ml4c_ipv4v6_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_CONSTRUCTION": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_act_table_construct(), init_cid=%hd, src_id=%hd, v4_first=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_FREE": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_act_table_free(), init_cid=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_CHECK_CID_IN_ACT_TABLE": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_check_cid_existence(), cid=%hd, return %hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+	{
+      "INFO_L4C_SIM_OPERATOR_CHECK": {
+        "apiType": "index", 
+        "format": "Check Operator Card (PS%d): %Msim_operator_type_enum - found:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SIM_ARREARAGE": {
+        "apiType": "index", 
+        "format": "SIM arrearage info (PS%d): sim_arrearage=%Ml4c_sim_card_arrears_enum, sim_arrearage_reported=%Ml4c_sim_card_arrears_enum, count=%d, arrearage_flag=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_GPRS_IPV4V6_GET_THE_OTHER_CID": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_get_the_other_cid(), cid=%hd, result cid=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_UPDATE_STATE_BY_PDP_TYPE": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_update_state_by_type(), type=%Mpdp_addr_type_enum, new_state=%Ml4c_ipv4v6_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_UPDATE_CID_BY_PDP_TYPE": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_update_cid_by_type(), type=%Mpdp_addr_type_enum, new_cid=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_PREPARE_NEW_CID_ENTRY": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_prepare_new_cid() for %Mpdp_addr_type_enum, init_cid=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_PREPARE_NEW_CID_COMPLETE": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_prepare_new_cid() completes, new_cid=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_RUN_ACTIVATION": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_gprs_ipv4v6_run_activation(), init_cid=%hd, max_activation_count=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_FALLBACK_OFF": {
+        "apiType": "index", 
+        "format": "[IPV4V6] fallback is disabled!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_IPV4V6_CHECK_IF_IPV4V6_FALLBACK_NEEDED": {
+        "apiType": "index", 
+        "format": "[IPV4V6] l4c_check_if_ipv4v6_fallback_needed(tcm_act_rej_cause:%Mps_cause_enum), result: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_DEBUG_SET_7_SEGMENT_LED": {
+        "apiType": "index", 
+        "format": "[TCM H Icon] Status:%Ml4c_rac_response_enum, FromRAC:%Ml4c_data_speed_support_enum, FromTCM:%Ml4c_data_bearer_capablility_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_SWITCH_ONGOING": {
+        "apiType": "index", 
+        "format": "[IPV4V6] Fallback disabled due to PS switch ongoing.", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GPRS_CHANGE_REQ_TYPE": {
+        "apiType": "index", 
+        "format": "Reset cid %d request_type from %Mtcm_request_type_enum to REQUEST_TYPE_INITIAL_REQUEST", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_T3396_DETECTED": {
+        "apiType": "index", 
+        "format": "tcm_pdp_activate_rej_hdlr(): T3396 detected.", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_USE_CID_ATTACH": {
+        "apiType": "index", 
+        "format": "[L4C] Use CID %d profile to establish attach PDN on CID %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_GET_ACTION_BY_CID_N_SRC": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_get_action_by_cid_n_src(): [cid:%d, src_id:%d] => action:%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_GET_ACTION_BY_CID": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_get_action_by_cid(): cid:%d => action:%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_GET_ACTION_BY_SRC": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_get_action_by_src(): src_id:%d => action:%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_GET_SRC_BY_CID_N_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_get_src_by_cid_n_action(): [cid:%d action:%Ml4c_action_enum] => src_id:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_GET_SRC_FOR_SET_CMD": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_get_src_for_set_cmd(): [cid:%d src_id:%d] => action:%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CHECK_IS_SRC_FREE": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_check_is_src_free(): src_id:%d => is_src_free:%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CHECK_IS_CID_FREE": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_check_is_cid_free(): cid:%d => is_src_free:%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CHECK_IS_TABLE_FREE": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_check_is_table_free(): is_table_free:%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_GET_STATE_BY_CID": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_get_state_by_cid(): cid:%d => state:%Ml4c_tcm_internal_cid_state", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_SET_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_set_action():[cid:%d, src_id:%d]: %Ml4c_action_enum >> %Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CLEAN_CID_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_clean_cid_action(): cid:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CLEAN_SRC_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] l4c_ps_clean_src_action(): src:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_PRINT_ACTION_TABLE": {
+        "apiType": "index", 
+        "format": "[L4C Action Table] [cid:%d, src_id:%d] => action:%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_PRINT_ACTION_TABLE_END": {
+        "apiType": "index", 
+        "format": "[L4C Action Table] print done.", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_UPDATE_STATUS_TO_SIM": {
+        "apiType": "index", 
+        "format": "l4c_ps_update_overall_pdp_status_to_sim(): %Ml4c_gprs_status_enum >> %Ml4c_gprs_status_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_PDN_ACTIVE_BUT_NOT_BIND": {
+        "apiType": "index", 
+        "format": "cid %d active but not bind, no need to transfer", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": " L4C_PS cmd conflict : %Ml4c_gprs_cmd_conflict_cause_enum, check:0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CHECK_NEED_TO_TRANSFER_PDN": {
+        "apiType": "index", 
+        "format": "l4c_ps_check_need_to_transfer_pdn_to_ehrpd : %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_SET_VZW_APN_ENABLE_BITMAP": {
+        "apiType": "index", 
+        "format": "l4c_ps_set_vzw_apn_enable_bitmap: class %d, is_enable %Mkal_bool, bitmap 0x%x -> 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CHECK_CLASS1_CLASS2_BOTH_ENABLE": {
+        "apiType": "index", 
+        "format": "l4c_ps_check_if_both_class_1_and_class_2_are_enable: bitmap 0x%x, return %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CLEAR_VZW_APN_ENABLE_BITMAP": {
+        "apiType": "index", 
+        "format": "l4c_ps_clear_vzw_apn_enable_bitmap: bitmap 0x%x -> 0xFFFFFFFF", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_INTERNET_CID_VALUE_SET_TO_CONTEXT_ID": {
+        "apiType": "index", 
+        "format": "[L4C] Internet APN activated is stored in INTERNET_CID: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_ACTIVATE_REJECT_HANDLER_FOR_ADDITIONAL_CID": {
+        "apiType": "index", 
+        "format": "[L4C] Activate reject handler for EPNWCAUSE when INTERNET CID is: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_ACTIVATE_REJECT_HANDLER_FOR_INTERNET_CID": {
+        "apiType": "index", 
+        "format": "[L4C] Activate reject,when INTERNET CID is: %d, EPNWCAUSE not reported here", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_DEACTIVATE_IND_HANDLER_FOR_INTERNET_CID": {
+        "apiType": "index", 
+        "format": "[L4C] Deact Indication handler for EPNWCAUSE when INTERNET CID is: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_ATTACH_REJECT_HANDLER_FOR_INTERNET_CID": {
+        "apiType": "index", 
+        "format": "[L4C] IA reject handler for EPNWCAUSE when INTERNET CID is: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_DEBUG_ENUM": {
+        "apiType": "index", 
+        "format": "%Ml4c_ps_debug_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_DEBUG_PARSE_RESULT_ERROR": {
+        "apiType": "index", 
+        "format": "L4C_PS_DEBUG %s_parse_result Error", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_MAP_L4C_SRC_ID_TO_DDM_SRC_ID": {
+        "apiType": "index", 
+        "format": "l4c_ps_map l4c_src_id: %d to ddm_src_id: %d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_MAP_DDM_SRC_ID_TO_L4C_SRC_ID": {
+        "apiType": "index", 
+        "format": "l4c_ps_map ddm_src_id: %d to l4c_src_id: %d", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_CMD_CNF_ERROR": {
+        "apiType": "index", 
+        "format": "AT Error:%d->%d, %Mps_cause_enum or %Mrmmi_err_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGACT_CMD_STATUS": {
+        "apiType": "index", 
+        "format": "[L4C] EGACT command status: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_SIM_SLOT_TO_PS_ID": {
+        "apiType": "index", 
+        "format": "sim slot id: %d ps id %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_ONGOING_IMS_PDN_ACTIVATION_NUM": {
+        "apiType": "index", 
+        "format": "l4c_ps_ongoing_ims_pdn_activation_num: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_CURRENT_PLMN_ID": {
+        "apiType": "index", 
+        "format": "[L4C] Current Plmn Id: mcc1: %x mcc2: %x mcc3: %x mnc1: %x mnc2: %x mnc3: %x ", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_ENPDCP_DATA_USAGE_NTF": {
+        "apiType": "index", 
+        "format": "l4c_ps_epdcp_data_usage_ntf() tx_bytes: %d  tx_packets: %d  rx_bytes: %d  rx_packets: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_IA_PDN_INFO": {
+        "apiType": "index", 
+        "format": "l4c_ps_send_ia_pdn_info_to_l4c_nw() : is_success : %Mkal_bool, cause : %Mps_cause_enum, is_ims_pdn : %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_IS_FDN_CHECK_NOT_NEEDED_SIM_PLMN": {
+        "apiType": "index", 
+        "format": "fdn_check attribute: sim-plmn: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_IS_FDN_CHECK_NOT_NEEDED_FOR_PLMN": {
+        "apiType": "index", 
+        "format": "fdn_check attribute: plmn in plmn_list: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_IS_FDN_CHECK_NOT_NEEDED_RESULT": {
+        "apiType": "index", 
+        "format": "l4c_ps_is_fdn_check_not_needed_for_plmn(): fdn_check_not_needed: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_IMS_PDN_ACTIVATION_SUCCESS": {
+        "apiType": "index", 
+        "format": "l4c_ps_send_ims_pdn_status_success", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_IMS_PDN_ACTIVATION_FAIL": {
+        "apiType": "index", 
+        "format": "l4c_ps_send_ims_pdn_status_fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_C2K_TRANSFER_INIT_ATTACH_PDN_CID": {
+        "apiType": "index", 
+        "format": "Transfer initial_attach PDN cid from %d to 0", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_TRANSFER_SECONDARY_LINKED_PDP_CID": {
+        "apiType": "index", 
+        "format": "Transfer secondary PDP[cid:%d]'s primary_context_id cid to %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_DEACT_RETRY": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config_deact_retry() deact_retry[%d] old %Mkal_bool -> new %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_WAIT_EI3GPPIRAT": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config_waiting_ei3gppirat() old %d -> new %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_TO_LTE_SRC_RAT": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config_c2k_to_lte_src_rat() old %Mirat_ps_type_enum -> new %Mirat_ps_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_IRAT_STATE": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config_irat_state() old %Ml4c_c2k_irat_state_enum -> new %Ml4c_c2k_irat_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_PDN_ESTABLISH_STATUS": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config_pdn_establishing_status(),action %Ml4c_c2k_func_action_enum, cid %d, c2k_irat_pdn_establishing_status %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_NORMAL_CONFLICT_CONDITION": {
+        "apiType": "index", 
+        "format": "[No Prolbem] under C2K to LTE inter-RAT initial attach procedure, we pass this conflict ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_ATTACHED_RAT": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config attached_rat from %Mirat_ps_type_enum to %Mirat_ps_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_NOW_SEARCHING_RAT": {
+        "apiType": "index", 
+        "format": "l4c_c2k_config now_searching_rat from %Mgmss_rat_enum to %Mgmss_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CONFIG_PDN_TRANSFER_STATE": {
+        "apiType": "index", 
+        "format": "Set pdn_transfer_state %Ml4c_c2k_lwcg_pdn_context_transfer_state_enum -> %Ml4c_c2k_lwcg_pdn_context_transfer_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_IA_PDN_QUERY_CNF_MOVE_CID": {
+        "apiType": "index", 
+        "format": "l4c_lte_c2k_ia_pdn_query_cnf_hdlr move IA context id %d to 0", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_CHECK_NOW_RAT_MODE": {
+        "apiType": "index", 
+        "format": "Current reported RAT: %Mrat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_SET_SUPPORT_EPDNCTRANS": {
+        "apiType": "index", 
+        "format": "Set enable_pdn_context_transfer_in_lwcg : %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_NEED_PDN_CONTEXT_TRANSFER_IN_LWCG": {
+        "apiType": "index", 
+        "format": "Need PDN context transfer in lwcg : %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_FIND_REPLACE_TARGET_CID": {
+        "apiType": "index", 
+        "format": "l4c_c2k_find_replace_target_cid : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_ADJUST_CONTENT_OF_TRANSFERRED_PDN": {
+        "apiType": "index", 
+        "format": "l4c_c2k_adjust_content_of_transferred_pdn : Hit condition %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_ALREADY_FETCH_IA": {
+        "apiType": "index", 
+        "format": "already_fetched_ia : %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_ALREADY_TRANSFERRED_PDN_TO_C2K": {
+        "apiType": "index", 
+        "format": "already_transferred_pdn_to_c2k : %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_LC_DEBUG_TRACE": {
+        "apiType": "index", 
+        "format": "[Debug Trace]: %Ml4c_c2k_lc_irat_debug_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_LC_FIND_USELESS_CID": {
+        "apiType": "index", 
+        "format": "FIND USELESS CID : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_C2K_LC_SET_CID_OF_RAT_CHANGE_REQ": {
+        "apiType": "index", 
+        "format": "Set c2k_lte_rat_change_req cid from %d to %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CAL_DATA_DL_STATUS": {
+        "apiType": "index", 
+        "format": "cal_data_valid:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_TX_POWER": {
+        "apiType": "index", 
+        "format": "[Thermal]tx_pwr:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_BOOT_MODE": {
+        "apiType": "index", 
+        "format": "[KAL] Boot mode = %Mboot_mode_type", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PS_CONF_TEST_MODE": {
+        "apiType": "index", 
+        "format": "[Test Mode] %Mps_conf_test_mode_enum, [Profile] 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_CB_INFO": {
+        "apiType": "index", 
+        "format": "[RMMI][CB]rmmi_cb_info, cb_on_off = %d, mid_num = %d, mir_num = %d, dcs_num = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USE_NEW_CBMI_CBMIR_CONFIG": {
+        "apiType": "index", 
+        "format": "[RMMI][CB]rmmi_ecscbcfg(), use new mid, mir config", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USE_OLD_CBMI_CBMIR_CONFIG": {
+        "apiType": "index", 
+        "format": "[RMMI][CB]rmmi_ecscbcfg(), use old mid, mir config", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USE_NEW_DCS_CONFIG": {
+        "apiType": "index", 
+        "format": "[RMMI][CB]rmmi_ecscbcfg(), use new dcs config", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USE_OLD_DCS_CONFIG": {
+        "apiType": "index", 
+        "format": "[RMMI][CB]rmmi_ecscbcfg(), use old dcs config", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SMS_REINIT_DSS": {
+        "apiType": "index", 
+        "format": "[L4C_SMS] re-init SMSAL after DSS(dynamic SIM switch)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SMS_CONTEXT_SWITCH": {
+        "apiType": "index", 
+        "format": "[L4C_SMS] l4c_sms_context_switch: reconfig_type: %Ml4c_me_reconfig_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+     {
+      "INFO_L4C_CUSTOM_SMSAL_GET_WEA_TEST_DATA": {
+        "apiType": "index", 
+        "format": "[WEA_TEST]There is no corresponding WAC data message in custom file for this mode = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+     {
+      "INFO_L4C_CUSTOM_SMSAL_GET_CB_TEST_DATA": {
+        "apiType": "index", 
+        "format": "[WEA_TEST]There is no corresponding CB message in custom file for this mode value = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PHB_REINIT_DSS": {
+        "apiType": "index", 
+        "format": "re-init L4C PHB after DSS(dynamic SIM switch)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PHB_SEND_READY": {
+        "apiType": "index", 
+        "format": "[L4C_PHB] check PHB ready indication: is_allowed:%Mkal_bool, rtn_value:%Mkal_bool, type:%Msmu_pending_password_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PHB_IS_CDMA_CARD": {
+        "apiType": "index", 
+        "format": "[L4C_PHB] is CDMA card:%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PHB_WAIT_CDMA_READY": {
+        "apiType": "index", 
+        "format": "[L4C_PHB] need wait CDMA card ready: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PHB_CONTEXT_SWITCH": {
+        "apiType": "index", 
+        "format": "[L4C_PHB] l4c_phb_context_switch: reconfig_type: %Ml4c_me_reconfig_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FD_START_MONITOR": {
+        "apiType": "index", 
+        "format": "[FD]start FD monitor", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FD_PDP_STATISTICS_CHANGE": {
+        "apiType": "index", 
+        "format": "[FD]PDP statistics changed, reset fd_timer:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FD_PDP_STATISTICS_UNCHANGED": {
+        "apiType": "index", 
+        "format": "[FD]PDP not changed! counter:%d, inactivity_time[%d]r:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_FD_INACTIVITY_TIMEOUT": {
+        "apiType": "index", 
+        "format": "[FD]Inactivity time-out, fd_mode:%hd, scri_sent:%hd, fd_counter:%d, pdp:%hd, bearer:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FD_BEARER_CAPABILITY_IND": {
+        "apiType": "index", 
+        "format": "[FD]bearer capability, status:%hd, fd:%hd, pre:%hd, next:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_BLOCK_PLMN_LIST_WHEN_RRC_STATE": {
+        "apiType": "index", 
+        "format": "PLMN list fail due to rrc state:%Mumts_rrc_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_BLOCK_PLMN_LIST_WHEN_ERRC_STATE": {
+        "apiType": "index", 
+        "format": "PLMN list fail due to errc state:%Mem_errc_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CHECK_MODEM_CAPABILITY": {
+        "apiType": "index", 
+        "format": "supported capability:0x%x , check capability:%Ml4c_modem_capability_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_EF_RAT_MODE": {
+        "apiType": "index", 
+        "format": "[L4C][NW] EF RAT valid:%d, ef_rat_mode:%d, rat_mode:%Ml4c_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DUAL_PS_ATTACH_CONFLICT": {
+        "apiType": "index", 
+        "format": "[L4C][Single PS] Another SIM PS detach action is not complete", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DUAL_ALWAYS_ATTACH_CONFLICT": {
+        "apiType": "index", 
+        "format": "[L4C][Single PS] Both SIM cannot do PS attach at the same time", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_UBIN_SAME_CSRA_PARAM": {
+        "apiType": "index", 
+        "format": "[UBIN]The same CSRA param", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_TIME_INFO": {
+        "apiType": "index", 
+        "format": "Time Info: utc(%d), daylight saving time (%d), leap seconds (%d), local time offset (%d), current tick (%d) ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ERAT_LOCKED": {
+        "apiType": "index", 
+        "format": "The +ERAT is locked (erat_lock:%d), sent AT+ERAT=<rat_mode>,,0 to unlock!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "INFO_L4C_ERAT_NO_SAVED": {
+        "apiType": "index", 
+        "format": " +ERAT :<is_no_saved>:%d, 1: Rat Mode no saved to NVRAM!", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_RAT_BALANCING": {
+        "apiType": "index", 
+        "format": "change RAT for RAT balancing, rat_mode:%Ml4c_rat_enum, l4crac_get_rat_mode():%Ml4c_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ENWBDINFO_MODE": {
+        "apiType": "index", 
+        "format": "RMMI_PTR->enwbdinfo_mode = 0;", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SELECT_AUTO_MODE_FROM_MANUAL": {
+        "apiType": "index", 
+        "format": "Select AUTO mode from MANUAL if Refresh type reset", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ROOT_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] root_action = %Ml4c_root_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OSTD_INFINITE_SLEEP_ONGOING": {
+        "apiType": "index", 
+        "format": "[L4C] OSTD_MD_Infinite_Sleep() is Ongoing", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OSTD_INFINITE_SLEEP_DONE": {
+        "apiType": "index", 
+        "format": "[L4C] OSTD_MD_Infinite_Sleep() Done", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_PARSE_PARAM_EMPTY": {
+        "apiType": "index", 
+        "format": "[EGMC] parse param %2d result: empty", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_PARSE_PARAM_INTEGER": {
+        "apiType": "index", 
+        "format": "[EGMC] parse param %2d result: unsign integer: %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_PARSE_PARAM_SIGN_INT": {
+        "apiType": "index", 
+        "format": "[EGMC] parse param %2d result: sign integer: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_PARSE_PARAM_STRING": {
+        "apiType": "index", 
+        "format": "[EGMC] parse param %2d result: small string: \\\"%s\\\"", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_PARSE_PARAM_UNKNOWN_STR": {
+        "apiType": "index", 
+        "format": "[EGMC] parse param %2d result: unknown string: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_CONSTRUCT_PARAM_EMPTY": {
+        "apiType": "index", 
+        "format": "[EGMC] construct param %2d: empty", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_CONSTRUCT_PARAM_INTEGER": {
+        "apiType": "index", 
+        "format": "[EGMC] construct param %2d: unsign integer: %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_CONSTRUCT_PARAM_SIGN_INT": {
+        "apiType": "index", 
+        "format": "[EGMC] construct param %2d: sign integer: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EGMC_CONSTRUCT_PARAM_STRING": {
+        "apiType": "index", 
+        "format": "[EGMC] construct param %2d: small string: \\\"%s\\\"", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_INTERNAL_GMC_PROCESS_MATCH_RLT": {
+        "apiType": "index", 
+        "format": "l4c_internal_gmc_process: %Ml4c_at_cmd_process_type_enum, match %d with MAX table size %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EPSNLTE_MRS_INFO": {
+        "apiType": "index", 
+        "format": "EPSNLTE: is_valid:%d, as_reason:%d, nas_reason:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_CS_PS_REG_STATE": {
+        "apiType": "index", 
+        "format": "CS reg state is : %Mrmmi_reg_state_enum, PS reg state is : %Mrmmi_reg_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OP01_SET_RAT_MODE_FAIL": {
+        "apiType": "index", 
+        "format": "l4c op01 set rat mode fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ENQUE_OP01_PENDING_ACTION_RESULT": {
+        "apiType": "index", 
+        "format": "l4c enque op01 pending action,action:%Ml4c_pending_action_enum,result:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OP01_LOCK_FILTER_ERAT_TO_GSM": {
+        "apiType": "index", 
+        "format": "l4c_op01_lock_filter_rat_to_gsm", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OP01_LOCK_FILTER_ERAT_TO_WG": {
+        "apiType": "index", 
+        "format": "l4c_op01_lock_filter_rat_to_wg", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OP01_LOCK_FILTER_RAT_MODE_TO_GSM": {
+        "apiType": "index", 
+        "format": "l4c_op01_filter_rat_mode_to_gsm,old:%Ml4c_rat_enum,new:%Ml4c_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OP01_LOCK_FILTER_RAT_MODE_TO_WG": {
+        "apiType": "index", 
+        "format": "l4c_op01_filter_rat_mode_to_wg,old:%Ml4c_rat_enum,new:%Ml4c_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OP01_LOCK_FILTER_ERAT": {
+        "apiType": "index", 
+        "format": "l4c_op01_lock_filter_erat,rat_mode:%Ml4c_rat_enum,prefer_rat:%Ml4c_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_BEARER_UPDATED": {
+        "apiType": "index", 
+        "format": "[L4C][PS] L4C PS bearer updated", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "L4C_PS_CLEAR_PLMN_LIST_BLOCK_APN": {
+        "apiType": "index", 
+        "format": "[L4C][PS] l4c ps clear plmn list block apn, cause = %Mps_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4CSMU_START_CNF_INFO": {
+        "apiType": "index", 
+        "format": "sim_power_state=%Ml4c_sim_state_enum, smu_activated=%d, sim_refresh=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4CSMU_VSIM_RAT_CONFLICT": {
+        "apiType": "index", 
+        "format": "[VSIM] VSIM(%s) can not enable in current RAT MODE: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PENDING_PASSWD_OF_OTHER": {
+        "apiType": "index", 
+        "format": "[SML] slot[%d] root pending password : %Msmu_pending_password_id_enum sim_inserted : %Ml4c_single_sim_inserted_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EPOF_AUDIO_WAITING": {
+        "apiType": "index", 
+        "format": "[L4C] Wait for AUDIO ACK", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EPOF_AUDIO_ACK": {
+        "apiType": "index", 
+        "format": "[L4C] AUDIO ACK for audio power-off done", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ERTTSTR_AUDIO_IND": {
+        "apiType": "index", 
+        "format": "AUDIO indication for rtt string", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_PS_ID": {
+        "apiType": "index", 
+        "format": "PS ID = %Mprotocol_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_ID_INFO": {
+        "apiType": "index", 
+        "format": "%Mprotocol_id_enum SBP ID = %d, SBP SubID= %d, MD CCCI SBP = %d, MD CCCI SubID = %d, OLD_SBP_ID = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_DSBP_ID_INFO": {
+        "apiType": "index", 
+        "format": "Current SIM SBP ID = %d, D-SBP Mode 1 SBP ID: %d, D-SBP Mode 2 SBP ID: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_ID_CURRENT": {
+        "apiType": "index", 
+        "format": "SBP ID [current] = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_ID_TO_CHANGE": {
+        "apiType": "index", 
+        "format": "SBP ID [to change] = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_MCC_MNC": {
+        "apiType": "index", 
+        "format": "SBP [MCC MNC] = %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_ID_FROM_MCC_MNC": {
+        "apiType": "index", 
+        "format": "SBP ID [from mcc mnc] = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_RECONGIGURE_REQ": {
+        "apiType": "index", 
+        "format": "Send REQ to SBP table[%d]=%Mmodule_type, gemini_check: 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_RECONGIGURE_CNF": {
+        "apiType": "index", 
+        "format": "Receive CNF from SBP table[%d]=%Mmodule_type, gemini_check: 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_WAIT_RECONGIGURE_CNF": {
+        "apiType": "index", 
+        "format": "Wait for CNF from SBP table[%d]=%Mmodule_type, gemini_check: 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_RECONFIGURE_TBL": {
+        "apiType": "index", 
+        "format": "[SBP] call custom function from SBP table[%d]=%Mmodule_type, reconfigure type: 0x%02x, gemini_check: 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_L4C_FEATURE": {
+        "apiType": "index", 
+        "format": "[SBP]%Msbp_md_feature_enum:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_L4C_DATA": {
+        "apiType": "index", 
+        "format": "[SBP data]%Msbp_md_feature_data_enum:%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_DSS_ONGOING": {
+        "apiType": "index", 
+        "format": "[SBP] DSS ongoing! Not allow DSBP", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_NOT_ALLOWED_RECONFIG_TYPE": {
+        "apiType": "index", 
+        "format": "[SBP] Unexpected Reconfig type! Not allow DSBP", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_DSBP_ONGOING": {
+        "apiType": "index", 
+        "format": "[SBP] DSBP of PS%d ongoing", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_TXID_L4C_SET": {
+        "apiType": "index", 
+        "format": "[SBP] set l4c trans_id %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SBP_UNEXPECTED_RECONFIG_TYPE": {
+        "apiType": "index", 
+        "format": "[SBP] Unexpected Reconfig type %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PARA": {
+        "apiType": "index", 
+        "format": "parameter[%Ml4c_source_id_enum].length=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_UART_CTRLDCD": {
+        "apiType": "index", 
+        "format": "UART_CtrlDCD(), port =%hd,value=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NO_GPRS_DIALUP_EXIST": {
+        "apiType": "index", 
+        "format": "Already no GPRS dialup exist", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RETURN_DUE_TO_UART_IN_DATA_MODE": {
+        "apiType": "index", 
+        "format": "rmmi_write_to_uart(): return due to uart in data mode", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_START_TIMER": {
+        "apiType": "index", 
+        "format": "[L4C] Start timer: %Ml4c_timer_id_enum, length:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_STOP_TIMER": {
+        "apiType": "index", 
+        "format": "[L4C] Stop timer: %Ml4c_timer_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_TIMER_EXPIRED": {
+        "apiType": "index", 
+        "format": "[L4C] timer expired: %Ml4c_timer_id_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CANCEL_EVENT": {
+        "apiType": "index", 
+        "format": "cancel L4C timer!, event_id=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_TIMEROUT_EVENT": {
+        "apiType": "index", 
+        "format": "L4C timer timeout!, event_id=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_START_EVENT": {
+        "apiType": "index", 
+        "format": "start L4C timer!, event_id=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_STARTUP": {
+        "apiType": "index", 
+        "format": "poweron, current action=%Ml4c_action_enum, smu_activated=%hd, is_rac_activated()=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SERVICE_MODE_CHANGE_EXE": {
+        "apiType": "index", 
+        "format": "[L4C][Service Mode Change] Skip PS %d at line %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_FUNCTION_NAME_AND_RETURN_LINE": {
+        "apiType": "index", 
+        "format": "[L4C] Function %s return %Mkal_bool at line %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ANTENNA_STATE_PENDING_RAT": {
+        "apiType": "index", 
+        "format": "[L4C] get_antenna_state_pending_rat: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "RMMI_PROCESS_MULTI_CMD_AFTER_PROCESS_MMI_MSG": {
+        "apiType": "index", 
+        "format": "Check multi-cmd after processing MMI message,is_ucm_action = %hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HVOLTE_MODE": {
+        "apiType": "index", 
+        "format": "hVoLTE_enable=%Mhvolte_enable_status_enum, hVoLTE_mode=%Mhvolte_mode_enum, ims_voice_rat=%Mims_cap_rat_enum, hVoLTE_enable_for_roaming=%Mhvolte_enable_status_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_IS_IMS_SUPPORT": {
+        "apiType": "index", 
+        "format": "is_ims_turned_on=%Mkal_bool, ims_voice_rat=%Mims_cap_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NOT_SEND_CIEV_DEFAULT": {
+        "apiType": "index", 
+        "format": "do not send +ciev:2,0 when crss_cnf, due to there is still hold call exist", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CALL_DISC_CNF_HDLR_ATD_ABORT": {
+        "apiType": "index", 
+        "format": "call_disc_cnf_hdlr: ATD aborted!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ATH_FOR_DATA_CALL": {
+        "apiType": "index", 
+        "format": "call_disc_cnf_hdlr: ATH for data call!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RETURN_NO_CARRIER": {
+        "apiType": "index", 
+        "format": "retrun NO CARRIER for ata when answering data call fail", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RETURN_OK_FOR_ATA": {
+        "apiType": "index", 
+        "format": "retrun OK for ata when answering data call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NOT_SEND_CIEV_STATUS": {
+        "apiType": "index", 
+        "format": "+ciev status should not be sent before final result of ATH or CHLD is given", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLEAR_FD": {
+        "apiType": "index", 
+        "format": "Clear previous fd[2]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_EIMG_EMDY_RETURN_OK": {
+        "apiType": "index", 
+        "format": "EIMG/EMDY return OK directly", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLEAR_PREVIOUS_PATH": {
+        "apiType": "index", 
+        "format": "clear previous path", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DISK": {
+        "apiType": "index", 
+        "format": "disk=%x,%c", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EQ_USBUART_SWITCH_PORT_REQ_CALL_UART_SWITCHPORT": {
+        "apiType": "index", 
+        "format": "l4c_eq_usbuart_switch_port_req() call UART_SwitchPort():PS_UART_PORT=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_EQ_USBUART2_TST_USAGE": {
+        "apiType": "index", 
+        "format": "TST_PORT=%d, TST_PORT_L1=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_FREE_CHANNEL_IS_FOUND": {
+        "apiType": "index", 
+        "format": "Free rmmi channel is found, cid=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_USBUART2_IS_FOUND_OR_NOT": {
+        "apiType": "index", 
+        "format": "uart_port_usb2 is found=%d, cid=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_POWER_ON_ALARM": {
+        "apiType": "index", 
+        "format": "POWER_ON_ALARM", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USB_CABLE_PLUGOUT": {
+        "apiType": "index", 
+        "format": "USB cable plugout when eimg/emdy", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_PENDING_ATTACH_SETTING": {
+        "apiType": "index", 
+        "format": "Set pending attach setting=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SMS_FDN_CHECK_DA_ADDRESS": {
+        "apiType": "index", 
+        "format": "SMS FDN check DA address only", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DISALLOW_DIALUP_DUT_TO_CAMERA_RUNUNG": {
+        "apiType": "index", 
+        "format": "Disallow dialup service due to camera runing,temp_src=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CPHS_LOCK_BLOCKED": {
+        "apiType": "index", 
+        "format": "CPHS lock blocked!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_IN_L4CSMSAL_DELETE_CNF_HDLR": {
+        "apiType": "index", 
+        "format": "ERROR:In l4csmsal_delete_cnf_hdlr ,index =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_INVALID_OA_ADDR_LENGTH": {
+        "apiType": "index", 
+        "format": "L4CSMSAL_NEW_MSG_INDEX: Invalid OA address length = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_IN_L4CSMSAL_STATUS_CNF_HDLR": {
+        "apiType": "index", 
+        "format": "ERROR:In l4csmsal_set_status_cnf_hdlr ,index =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_OBTAIN_UART_CONTROL_CALL_UART_SWITCHPORT": {
+        "apiType": "index", 
+        "format": "l4c_obtain_uart_control() call UART_SwitchPort():PS_UART_PORT=%d,uart_port_value=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DUAL_SIM_TO_FLIGHT_MODE": {
+        "apiType": "index", 
+        "format": "dual SIM to fligt mode when SIM2 is doing %Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PLMN_SELECTION_FOR_ECC_CALL_RETRY": {
+        "apiType": "index", 
+        "format": "PLMN SELECTION for ECC call retry", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RAC_CURRENT_ACTION_IS_COPS_TEST": {
+        "apiType": "index", 
+        "format": "l4c_previous_rac_action_rsp(), rac_current_action=COPS_TEST,rac_user=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DEVICE_AND_ON_OFF": {
+        "apiType": "index", 
+        "format": "device=%d, on_off=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_UPDATE_CALL_ID": {
+        "apiType": "index", 
+        "format": "To update call_id=%d for mo data call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FC": {
+        "apiType": "index", 
+        "format": "FC = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_TEMP_VALUE": {
+        "apiType": "index", 
+        "format": "temp_value=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NO_LENGH_INPUT": {
+        "apiType": "index", 
+        "format": "no length input", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_INVALID_LENGH_INPUT": {
+        "apiType": "index", 
+        "format": "invalid length input", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FINDCLOSE": {
+        "apiType": "index", 
+        "format": "FindClose", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_FINDFIRST": {
+        "apiType": "index", 
+        "format": "FindFirst", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ONLINE_STATE": {
+        "apiType": "index", 
+        "format": "online state", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLRTXBUFFER": {
+        "apiType": "index", 
+        "format": "ClrTxBuffer", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SEND_SEL_IND": {
+        "apiType": "index", 
+        "format": "send sel_ind", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_LMMI_STATE_AND_CURRENT_ACTION": {
+        "apiType": "index", 
+        "format": "LMMI: state = %hd, current_action = %hd\\n", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_STATE_AND_CURRENT_ACTION": {
+        "apiType": "index", 
+        "format": "RMMMI: state = %hd, current_action = %hd\\n", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_KEYPRESS": {
+        "apiType": "index", 
+        "format": "key press, keycode=%d, keycode idx = %d, windex = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_KEYRELEASE": {
+        "apiType": "index", 
+        "format": "key release, keycode=%d, keycode idx = %d, windex = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_KEYLONGPRESS": {
+        "apiType": "index", 
+        "format": "key long press, keycode=%d, keycode idx = %d, windex = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_KEYREPEAT": {
+        "apiType": "index", 
+        "format": "key repeat, keycode=%d, keycode idx = %d, windex = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_KBDGETKEY": {
+        "apiType": "index", 
+        "format": "l4c_kbd_getkeydata(), keyevent = %Mkbd_event, keycode=%d, rindex = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ABORT_PLMN_SEL": {
+        "apiType": "index", 
+        "format": "abort plmn sel!, opcode=%d, plmn_id=%d%d%d%d%d%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PREVENT_SEND_CPI_FOR_RETRY_CALL": {
+        "apiType": "index", 
+        "format": "Prevent to send CPI related to retry call(call_id=%d)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4CUEM_USBDETECT_IND": {
+        "apiType": "index", 
+        "format": "l4cuem_usbdetect_ind() ,action=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_USBUART_SWITCH_PORT": {
+        "apiType": "index", 
+        "format": "l4c_eq_usbuart_switch_port_req() ,src_id=%d,app=%d,new_port=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_START_SAT_REDIAL": {
+        "apiType": "index", 
+        "format": "L4C start sat redial!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_CURRENT_SIM_MAPPING_FOR_3G_SWITCH": {
+        "apiType": "index", 
+        "format": "cur_sim_map: %Msim_interface_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PS_IS_DATA_SIM": {
+        "apiType": "index", 
+        "format": "Current protocol is data sim: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ROOT_PENDING_PASSWD": {
+        "apiType": "index", 
+        "format": "[LINK_SML] pending_passwd[slot%d]:%Msmu_pending_password_id_enum, need_unlock_table:%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PREFER_PLMN_FILE": {
+        "apiType": "index", 
+        "format": "PLMN file: %Msim_file_index_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ACTIVE_RAT": {
+        "apiType": "index", 
+        "format": "Active RAT: %Mrat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ACTIVE_3GPP_RAT": {
+        "apiType": "index", 
+        "format": "Active 3GPP_RAT: %Mrat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SEND_IPC_MSG": {
+        "apiType": "index", 
+        "format": "Send IPC msg_id=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_REC_IPC_MSG": {
+        "apiType": "index", 
+        "format": "Receive IPC msg_id=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_MCCMNC_USIR": {
+        "apiType": "index", 
+        "format": "[Regional Phone]mcc_mnc: %S", 
+        "traceClass": "TRACE_SENSITIVE_USIR"
+      }
+    },
+    {
+      "INFO_REGIONAL_PHONE_MODE": {
+        "apiType": "index", 
+        "format": "[Regional Phone]mode:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DISALLOW_IRAT": {
+        "apiType": "index", 
+        "format": "Disallow IRAT due to RSVA suspend or abort service", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RECONGIGURE_REQ": {
+        "apiType": "index", 
+        "format": "Send REQ to module_tbl[%d], gemini_check: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RECONGIGURE_CNF": {
+        "apiType": "index", 
+        "format": "Receive CNF from module_tbl[%d] gemini_check: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_RESEND_AFR": {
+        "apiType": "index", 
+        "format": "Start to retry AFR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PWS_IGNORE_IN_HPLMN": {
+        "apiType": "index", 
+        "format": "[PWS] Ignore PWS messages in HPLMN", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_PWS_IGNORE_IN_VPLMN": {
+        "apiType": "index", 
+        "format": "[PWS] Ignore PWS messages in VPLMN", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_WORLD_MODE": {
+        "apiType": "index", 
+        "format": "WORLD_MODE: 0x%x (Format: 0|N|Lf|Lt|W|C|T|G)", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SAT_CUSATD_ERROR": {
+        "apiType": "index", 
+        "format": "[CUSATD ERROR] UICC STATE: %Mcusats_uicc_state_enum, UFC support: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_CURRENT_ROOT_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C][ROOT]Current root_action=%Ml4c_root_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_POWEROFF_STATE_CHANGED": {
+        "apiType": "index", 
+        "format": "[L4C] sim_power_state is changed from %Ml4c_sim_state_enum to %Ml4c_sim_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_POWEROFF_STATE": {
+        "apiType": "index", 
+        "format": "[L4C] mod id : %Mmodule_type, sim_power_state = %Ml4c_sim_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_POWEROFF_RELATED_STATUS": {
+        "apiType": "index", 
+        "format": "current mod: %Mmodule_type, sim_power_state related status: cfun_state : %u, poweron_mode = %Mpower_on_status_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_POWEROFF_RETRY_TIME": {
+        "apiType": "index", 
+        "format": "[L4C] poweroff_retry = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_POWEROFF_CLEAR_RETRY_TIME": {
+        "apiType": "index", 
+        "format": "[L4C] clear poweroff_retry = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_POWEROFF_NOT_READY": {
+        "apiType": "index", 
+        "format": "[L4C] SIM Power off not ready", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_STATUS_BITMASK": {
+        "apiType": "index", 
+        "format": "sim_status_bitmask: 0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_DSS_ONGOING": {
+        "apiType": "index", 
+        "format": "SIM switch ongoing! Ignore SIM_ERROR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_VERIFIED": {
+        "apiType": "index", 
+        "format": "SIM is ready", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_DELAY_SWITCH_TO_SRLTE": {
+        "apiType": "index", 
+        "format": "delay_switch_to_SRLTE_mode=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_DELAY_SWITCH_TO_VOPS": {
+        "apiType": "index", 
+        "format": "delay_switch_to_VOPS_mode=%Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_DIAL_C2K_STATE": {
+        "apiType": "index", 
+        "format": "l4c_ptr->l4c_dial_c2k_state = %Ml4c_dial_c2k_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_GLOBAL_RAT_MODE": {
+        "apiType": "index", 
+        "format": "AP global RAT mode=%Ml4c_rat_enum, Valid global RAT mode=%Ml4c_rat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_AKA_AUTH_ABORT_RECEIVED": {
+        "apiType": "index", 
+        "format": "AKA AUTH Abort received from RSIM Stack", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_RSIM_PENDING_ACTION": {
+        "apiType": "index", 
+        "format": "RSIM pending action =%Ml4c_rsim_pending_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SET_OP01_LOCK_STATE": {
+        "apiType": "index", 
+        "format": "l4c_set_op01_lock_state:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SET_OP12_LOCK_STATE": {
+        "apiType": "index", 
+        "format": " l4c_op12_lock_reg_by_vzw_adm_apn: %d -> %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SET_OP12_LOCK_STATE_RESET": {
+        "apiType": "index", 
+        "format": " sim_error_ind_hdlr: op12 reg unlock:%d by %Msim_error_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_CHANGE_RAT_MODE": {
+        "apiType": "index", 
+        "format": "Changing RAT MODE to 4G only", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_REVERT_RAT_MODE": {
+        "apiType": "index", 
+        "format": "Reverting RAT MODE from 4G only to AP RAT MODE", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_INVALID_RAT_MODE": {
+        "apiType": "index", 
+        "format": "Trying to set invalid RAT mode. Return ERROR", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_DUPLEX_MODE_RESET_STATE": {
+        "apiType": "index", 
+        "format": "[L4C] mod id : %Mmodule_type, duplex_mode_reset_state = %Ml4c_sim_duplex_mode_reset_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_CURRENT_DUPLEX_MODE_RESET_STATE": {
+        "apiType": "index", 
+        "format": "[L4C] duplex_mode_reset_state = %Ml4c_sim_duplex_mode_reset_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_DELETE_PENDING_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] Delete pending action: %Ml4c_pending_action_enum, index:[%u]", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ENQUEUE_PENDING_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] Enqueue pending action: %Ml4c_pending_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_DEQUEUE_PENDING_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] Dequeue pending action: %Ml4c_pending_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PENDING_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] Pending action[%d]: %Ml4c_pending_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_PENDING_ACTION_ALREADY_IN_QUEUE": {
+        "apiType": "index", 
+        "format": "[L4C] Warning: The pending action has already been in the queue", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_NO_L4SUB_INIT": {
+        "apiType": "index", 
+        "format": "[L4C] no re-init l4 submodule in %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SEND_ATTACH_RESULT": {
+        "apiType": "index", 
+        "format": "[L4C] Send PS attach request result = %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_IS_INVALID_SIM": {
+        "apiType": "index", 
+        "format": "[LINK_SML] Current SIM (slot%d) is not valid SIM, skip LINK SML update process", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_CUR_IS_CTRL_SIM": {
+        "apiType": "index", 
+        "format": "[LINK_SML] Current SIM (slot%d) is Ctrl SIM, run LINK SML update process", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_INVALID_SIM": {
+        "apiType": "index", 
+        "format": "[LINK_SML] SIM%d is valid SIM, no need to update SML status", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_VALID_SIM_IN_SRV": {
+        "apiType": "index", 
+        "format": "[LINK_SML] SIM%d is valid SIM and still in service, no need to upgrade/downgrade SML status", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_INVALID_TO_VALID_SIM": {
+        "apiType": "index", 
+        "format": "[LINK_SML] Detect SIM%d is invalid SIM but SUPER_VERIFIED", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_VALID_TO_INVALID_SIM": {
+        "apiType": "index", 
+        "format": "[LINK_SML] Detect SIM%d is valid SIM but SUPER_LOCKED", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS": {
+        "apiType": "index", 
+        "format": "[LINK_SML] Checking Result: No valid SIM in the slot, re-check and update SML status", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_TABLE": {
+        "apiType": "index", 
+        "format": "[LINK_SML] SIM%d : %Mlink_sml_valid_sim_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_REAL_SIM_VERIFY_STATE": {
+        "apiType": "index", 
+        "format": "[LINK_SML] real_sim_verify_state[slot%d]:%Mlink_sml_valid_sim_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_NOT_CTRL_SLOT": {
+        "apiType": "index", 
+        "format": "[LINK_SML] skip process, SIM%d is not ctrl slot", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_SKIP_UPGRADE_AND_DOWNGRADE_PROCESS": {
+        "apiType": "index", 
+        "format": "[LINK_SML] skip process, not valid sim or rule 9", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ROOT_SKIP_UPGRADE_AND_DOWNGRADE_PROCESS_UNKNOWN_OP": {
+        "apiType": "index", 
+        "format": "[LINK_SML] skip process, unknown operation", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "ERROR_L4C_EWSECMODE_NVM_FAIL_RAC": {
+        "apiType": "index", 
+        "format": "[L4C][EWSECMODE]NVRAM write to RAC failed !!!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "WARNING_L4C_EWSECMODE_CFUN_1": {
+        "apiType": "index", 
+        "format": "[L4C][EWSECMODE]Command failed due to RF ON. CFUN State = 1 !!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "INFO_EONS_SET_STATE": {
+        "apiType": "index", 
+        "format": "[EONS] set_state:%Meons_state_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_EONS_INIT": {
+        "apiType": "index", 
+        "format": "[EONS] EONS Init", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_EONS_DUMP_ACT_RAT": {
+        "apiType": "index", 
+        "format": "[EONS] act: %d rat: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_MRS_EBCELL_NUM": {
+        "apiType": "index", 
+        "format": "[L4C][EBCELL] num = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_EGMC_DETACH_REQ": {
+        "apiType": "index", 
+        "format": "VoLTE Element changed. Perform DETACH & REATTACH", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SAR_STATE_INDEX": {
+        "apiType": "index", 
+        "format": "[L4C][SAR] g_sar_sensor_state= %d, scenario_index =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SAR_ANT_CNF_PEND": {
+        "apiType": "index", 
+        "format": "[L4C][SAR] g_sar_tx_ant_cnf_pending = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SAR_TXAN_UPDATE_NEEDED": {
+        "apiType": "index", 
+        "format": "[L4C][SAR] g_sar_txant_update_needed = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SAR_MD_PRODUCT_ID": {
+        "apiType": "index", 
+        "format": "[L4C][SAR] md_product_model_id = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SAR_DATA_MD_to_AP": {
+        "apiType": "index", 
+        "format": "[L4C][SAR] DATA sent to TTY port from MODEM to AP need_sar_enable = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_CAMERA_URC_REPORTING": {
+        "apiType": "index", 
+        "format": "[L4C][CAMERA] URC: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_CAMERA_URC_REPORTING_STATE": {
+        "apiType": "index", 
+        "format": "Camera reporting: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_CHECK_EU_US_ZONE_WITH_SIM_SLOT": {
+        "apiType": "index", 
+        "format": "Check_EuropeZone called [%d], [%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_IS_EU_US_MCC_FOUND": {
+        "apiType": "index", 
+        "format": "Europe/US MCC found: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_POWER_ON_IMEI_VERIFY": {
+        "apiType": "index", 
+        "format": "Power on IMEI verification: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_IMEI_VERIFICATION_WHEN_ATTACH": {
+        "apiType": "index", 
+        "format": "Search ANY due to IMEI verification", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_NITZ_CALLBACK_RESULT": {
+        "apiType": "index", 
+        "format": "[L4C] NITZ CB result = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_POWER_LEVEL_THRESHOLDS_VALUE_CHANGE": {
+        "apiType": "index", 
+        "format": "Different thresholds. Stop timer", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_POWER_LEVEL_THRESHOLDS_NUMBER_CHANGE": {
+        "apiType": "index", 
+        "format": "Number of thresholds are different. Stop timer", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_POWER_LEVEL_THRESHOLDS_SINGNAL_RANGE": {
+        "apiType": "index", 
+        "format": "signal value range is = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_POWER_LEVEL_THRESHOLDS_SINGNAL_RANGE_WITH_PREVIOUS_RANGE": {
+        "apiType": "index", 
+        "format": "old range = %d, new range = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_POWER_LEVEL_THRESHOLDS_PREVIOUS_REPORT": {
+        "apiType": "index", 
+        "format": "previous reported range = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_NSSAI_DATA_IS_INVALID": {
+        "apiType": "index", 
+        "format": "NSSAI data format is invalid : %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ICD_FILTER_NOT_ENABLED": {
+        "apiType": "index", 
+        "format": "[L4C][ICD] filter is not enable, protocol: %d, event code: %Micd_event_code", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_ICD_SEND_EVENT_FAIL": {
+        "apiType": "index", 
+        "format": "[L4C][ICD] send fail, event code: %Micd_event_code, error code: %Micd_error_code", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_NWSEL_SUSP": {
+        "apiType": "index", 
+        "format": "nwsel suspended by L4C. Resume", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_RAT_CHANGE_DONE": {
+        "apiType": "index", 
+        "format": "L4C rat change complete", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_RAT_CHANGE_NEEDED": {
+        "apiType": "index", 
+        "format": "L4C NW - PLMN: %s, Is rat change needed %d, is lte set %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_RAT_MODE_NOT_REVERT_DUE_TO_INVALID_PLMN": {
+        "apiType": "index", 
+        "format": "[L4C NW]RAT mode not reverted to enable 2G because of invalid PLMN.", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_TITAN_L4C_UTIL_KOR_SETTING": {
+        "apiType": "index", 
+        "format": "[L4C][l4c_custom_rat_setting_needed]IMSI = %s, sim_card = %Ml4c_sim_oper_enum, is_kor_mcc = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_TITAN_L4C_UTIL_CUR_CUSTOM_SETTING": {
+        "apiType": "index", 
+        "format": "[L4C][l4c_custom_rat_setting_needed]l4c_ptr->rat_mode_setting = %Ml4c_rat_mode_custom_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_TITAN_L4C_UTIL_RAC_RAT_SETTING": {
+        "apiType": "index", 
+        "format": "[L4C][l4c_custom_rat_setting_needed]RAT mode settings NVRAM RAT mode = %Mrat_enum, Cur RAT mode = %Mrat_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_TITAN_SET_RAT_FAILED": {
+        "apiType": "index", 
+        "format": "[L4C]Set RAT mode Failed !!!!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_TITAN_SET_RAT_CUR_CUSTOM_SETTING": {
+        "apiType": "index", 
+        "format": "[L4C][TITAN][l4c_nw_set_rat_mode_ext_req]l4c_ptr->rat_mode_setting = %Ml4c_rat_mode_custom_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_CHANGE_RAT_MODE_FOR_DCM": {
+        "apiType": "index", 
+        "format": "DCM SBP enabled.Inside l4c_nw_check_rat_change_needed_for_docomo()", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_COMMAND_USIR": {
+        "apiType": "index", 
+        "format": "[L4C]command:%S", 
+        "traceClass": "TRACE_SENSITIVE_USIR"
+      }
+    },
+    {
+      "INFO_L4C_PARTIAL_SENSITIVE_CMD_USIR": {
+        "apiType": "index", 
+        "format": "[L4C]Sensitive command:%S", 
+        "traceClass": "TRACE_SENSITIVE_USIR"
+      }
+    },
+    {
+      "INFO_L4C_SIM_TRAY_INFO": {
+        "apiType": "index", 
+        "format": "[L4C]SIM tray info = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_NW_PHY_CFG_REPORT": {
+        "apiType": "index", 
+        "format": "[L4C][NW] report physical config info, 4x4MIMO: %d, DL256QAM: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_EMC_ONGOING": {
+        "apiType": "index", 
+        "format": "[L4C] EMC ongoing. ps_id=%d, emc=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_CHECK_VOPS_SETTING_FOR_SEARCH_TYPE_SKIP": {
+        "apiType": "index", 
+        "format": "[L4C] Skip VOPS setting check for search type", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SAT_TURN_FDN_OFF": {
+        "apiType": "index", 
+        "format": "[SAT] Next command should come from STK, no FDN needed", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SAT_CHECK_FOR_FDN": {
+        "apiType": "index", 
+        "format": "[SAT] Check if FDN not needed, expected STK cmd: %Msat_call_ctrl_type_noti_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SAT_NO_FDN": {
+        "apiType": "index", 
+        "format": "[SAT] No FDN needed", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SAT_ALREADY_CALL_CONTROL": {
+        "apiType": "index", 
+        "format": "[SAT] This request already controlled by SIM", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_CID_IS_NOT_PRIMARY": {
+        "apiType": "index", 
+        "format": "[L4C PS] CID is not primary", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SET_SMS_CAP_PARAM_TYPE_ERROR": {
+        "apiType": "index", 
+        "format": "[L4C] set SMS capability param type error: type1: %Ml4c_at_cmd_param_type, type2: %Ml4c_at_cmd_param_type", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SET_SMS_CAP_PARAM": {
+        "apiType": "index", 
+        "format": "[L4C] set SMS capability param: rat_mode: %Mrat_enum, sms_cap: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SET_SMS_CAP_PERFORM_REATTACH": {
+        "apiType": "index", 
+        "format": "[L4C] set SMS capability and perform re attach", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_QUERY_NR_BAND_COMB": {
+        "apiType": "index", 
+        "format": "[L4C] index: %d, data: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "STATE_L4C_CC_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_cc: src_id=%Ml4c_source_id_enum, state=%Ml4c_state_enum, cc_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_SS_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_ss: ss_user=%Ml4c_source_id_enum, ss_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_SMS": {
+        "apiType": "index", 
+        "format": "l4c_sms: src_id=%Ml4c_source_id_enum, sms_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_PS_ABM": {
+        "apiType": "index", 
+        "format": "l4c_ps_abm: current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_EQ_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_eq: eq_user=%Ml4c_source_id_enum, eq_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_RAC_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_rac: rac_user=%Ml4c_source_id_enum, rac_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_SMU_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_smu: smu_user=%Ml4c_source_id_enum, smu_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_TCM_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_tcm: tcm_user=%Ml4c_source_id_enum, tcm_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_TCM_CONTEXT_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_tcm: context_id=%d, tcm_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "STATE_L4C_PHB_ACTION": {
+        "apiType": "index", 
+        "format": "l4c_phb: phb_user=%Ml4c_source_id_enum, phb_current_action=%Ml4c_action_enum", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_L4C_CFUN_STATE": {
+        "apiType": "index", 
+        "format": "cfun_state: %d", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_C2K_CFUN_STATE": {
+        "apiType": "index", 
+        "format": "c2k_cfun_state: %d", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "STATE_ATH_DISC": {
+        "apiType": "index", 
+        "format": "ath disc", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "STATE_CLEAR_IS_UCM_ACTION": {
+        "apiType": "index", 
+        "format": "clear is_ucm_action", 
+        "traceClass": "TRACE_STATE"
+      }
+    }, 
+    {
+      "WARNING_INVALID_NUMBER": {
+        "apiType": "index", 
+        "format": "number containing invalid char %c", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ERROR_OUTGOING_CALL_FAIL": {
+        "apiType": "index", 
+        "format": "Warning: get_outgoing_call fail in l4c_cc_exe_ath_req", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_MO_CALL_FAIL_DUE_TO_IN_CALL": {
+        "apiType": "index", 
+        "format": "Warning: MO call fail due to in call", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CALLSETUP_FAIL_DUE_TO_PRESENT_CALL": {
+        "apiType": "index", 
+        "format": "Warning: MO callsetup fail due to a existing MT present call,call_id=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ATA_NOT_ALLOW_BEFORE_SEND_SETUP_IND": {
+        "apiType": "index", 
+        "format": "alerting~", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_USSD_USED_USSR_STAGE": {
+        "apiType": "index", 
+        "format": "Warning: USSD with dcs=UCS2 can only be used when USSR stage", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Error: cmd conflict error, current_action=%Ml4c_action_enum, new_action= %Ml4c_action_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SS_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: ss cmd conflict when action=PARSE_SS_EXE and src_id=RMMI_SRC !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SS_COMMAND_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: ss cmd conflict !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_IS_CTM_CONNECTED": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : action = ATD_APP , is_ctm_connected= TRUE", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_ACTIVE_CALL_TYPE": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : action = CHLD_EXE , active call type=CSMCC_CSD_CALL", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_RETRY_FLAG": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : action = ATD_APP , retry_flag= TRUE", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_MUTUAL_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : mutual conflict", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_CGDATA_DURING_CHANGE_RAT_RETRY": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : CGDATA_EXE during ECC change RAT Retry", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_NO_ECALL_NUMBER_AVAILABLE": {
+        "apiType": "index", 
+        "format": "Warning: SIM Ecall number not available use ATEMSDTNUM or ATEMSDRNUM to set number", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_PHB_APPROVE_FAIL": {
+        "apiType": "index", 
+        "format": "Warning: Phone book approve fail because %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_TCM_CMD_CONFLICT_DUE_TO_CFUN_STATE": {
+        "apiType": "index", 
+        "format": "Warning: tcm cmd conflict due to cfun_state!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_TCM_CMD_CONFLICT_DUE_TO_SET_RAT_MODE_DETACH": {
+        "apiType": "index", 
+        "format": "Warning: tcm cmd conflict due to SET_RAT_MODE_DETACH!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_TCM_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: tcm cmd conflict !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ABORT_PDP_ACTIVATION_WITH_CID": {
+        "apiType": "index", 
+        "format": "cid(%d) is activating, let CGACT=0 pass to abort it!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ABORT_PDP_ACTIVATION_STATE": {
+        "apiType": "index", 
+        "format": "cid(%d): ext_pdp_activating[]=%d, ext_pdp_src_id[]=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_GPRS_STRING_VALID_CMD_NOT_ALLOWED": {
+        "apiType": "index", 
+        "format": "Warning: gprs string valid ,but cmd not allowed", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4CUPS_PORT_ACTIVATE_CNF_FAILURE": {
+        "apiType": "index", 
+        "format": "l4cups_port_activate_cnf_hdlr - fail!!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4CUPS_PORT_MAYBE_NOT_AVALIABLE": {
+        "apiType": "index", 
+        "format": "port=%d is not owned by L4C, real_owner=%Mmodule_type, rmmi_current=%Mmodule_type, PS_UART_PORT=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_PHB_APPROVE_BY_MMI_FAILURE": {
+        "apiType": "index", 
+        "format": "custom_phb_xmgnt_approve_fdn(l4c_operation=d, cause=%d) return KAL_FALSE", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SPECIAL_CAUSE_HDLR": {
+        "apiType": "index", 
+        "format": "SPECIAL CAUSE HANDLER : cid:%d, cause: %Mps_cause_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_BINDING_ID": {
+        "apiType": "index", 
+        "format": "[WARNING] INVALID binding_id", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_OP_WHEN_FALLBACK": {
+        "apiType": "index", 
+        "format": "[WARNING] INVALID operation, IPv4v6 fallback is ongoing, can't deact fallback target %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_HIT_ERROR_HANDLING": {
+        "apiType": "index", 
+        "format": "[WARNING] Hit Error Handling Case, Please Check This !!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CID_IS_INACTIVE_OR_NOT_SECONDARY": {
+        "apiType": "index", 
+        "format": "[WARNING] CID is inactive or not secondary", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4CPS_CANNOT_GET_QCI_BY_CONTEXT_ID": {
+        "apiType": "index", 
+        "format": "[WARNING] L4C: l4c_ps_get_qci_by_context_id returns NULL, Please Check This", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_INVALID_IRAT_RESULT": {
+        "apiType": "index", 
+        "format": "[WARNING] INVALID I-RAT Result %Mirat_result_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_INVALID_CONTEXT_TYPE": {
+        "apiType": "index", 
+        "format": "[WARNING] C2K bring wrong context_type", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_WRONG_IP_ADDR_LEN": {
+        "apiType": "index", 
+        "format": "[WARNING] wrong IP_ADDR_LEN", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_EI3GPPIRAT_IN_WORNG_STATE": {
+        "apiType": "index", 
+        "format": "[WARNING] EI3GPPIRAT in non-iRAT state", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_FORCE_PERFORM_IRAT_WITHOUT_WAIT_EI3GPPIRAT": {
+        "apiType": "index", 
+        "format": "[WARNING] Force perform L2C IRAT without waiting AT+EI3GPPIRAT=1", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_GET_NW_APPLIED_PDP_ADDR_FAIL": {
+        "apiType": "index", 
+        "format": "[WARNING] l4ctcm_get_nw_applied_pdp_addr fail", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_GET_BINDING_CH_FAIL": {
+        "apiType": "index", 
+        "format": "[WARNING] l4ctcm_get_binding_channel fail", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_C2K_INVALID_CONTEXT_ID": {
+        "apiType": "index", 
+        "format": "[WARNING] L4C_CONTEXT_ID_IS_INVALID", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_C2K_IRAT": {
+        "apiType": "index", 
+        "format": "[WARNING] C2K <-> LTE inter-RAT ongoing ", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_EQ_FS_RETURN_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: EQ fs action: %d return: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SMSAL_UNEXPECTED_MTI": {
+        "apiType": "index", 
+        "format": "Warning: the MTI is not the expected value", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_FD_INVALID_INACTIVITY_TIMER_ID": {
+        "apiType": "index", 
+        "format": "[FD]Warning: Invalid Inactivity TID: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RF_ON_FAIL": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: RF on fail, RAC RAT: %Mrat_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ROOT_SRC_ID_INTERRUPT": {
+        "apiType": "index", 
+        "format": "[L4C][ROOT]Current root_src_id=%d, interrupt scr_id=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ROOT_ACTION_INTERRUPT": {
+        "apiType": "index", 
+        "format": "[L4C][ROOT]Current root_action=%Ml4c_root_action_enum, interrupt root_action=%Ml4c_root_action_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_DUPLEX_MODE_CHANGE_REQUEST": {
+        "apiType": "index", 
+        "format": "Warning: requested duplex mode is not supported! WORLD_MODE: 0x%x (Format: 0|0|Lf|Lt|W|C|T|G), request mode: 0x%x", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RF_ON_FAIL_DUE_TO_MD3_EPOF": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: RF on fail due to MD3 EPOF!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CFUN0_DURING_POWERON_EXE": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: CFUN=0 is processing during POWERON_EXE", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CSRA_CONFLICT": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: change cfun fail", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_NO_MATCH_CFUN_STATE": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: no match state", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CC_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: cc action not null", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RAT_MODE_NONE": {
+        "apiType": "index", 
+        "format": "[L4C][NW]Warning: RAT mode is none", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SIM_POWEROFF_RETRY_REACH_MAX": {
+        "apiType": "index", 
+        "format": "[L4C]Warning: poweroff_retry reach maximum, turn off modem directly", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CLEAR_PREVIOUS_RAC_ACTION": {
+        "apiType": "index", 
+        "format": "[L4C] Clear previous RAC action: %Ml4c_action_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RSIM_AUTH_ONGOING": {
+        "apiType": "index", 
+        "format": "[L4C][RSIM][NW]Warning: RSIM Authentication is ongoing", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_UPDATE_AUTO_ATTACH_FAIL": {
+        "apiType": "index", 
+        "format": "[L4C] Failed to update auto_attach flag", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SAT_CALL_CTRL_WRONG_STATE": {
+        "apiType": "index", 
+        "format": "[SAT] Call Control State Warning: %Msat_call_ctrl_type_noti_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CGDATA_GPRS_DIALUP_IS_NOT_ALLOWED": {
+        "apiType": "index", 
+        "format": "Warning: l4c cmd_conflict: CGDATA GPRS dialup is not allowed when RFOFF/RAT_MODE_DETACH", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CGDATA_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: l4c cmd_conflict: CGDATA tcm or rac cmd conflict", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_NO_GPRS_DIALUP_CAN_BE_DICONNECTED": {
+        "apiType": "index", 
+        "format": "Warning: No GPRS dialup can be disconnected from RMMI!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: error", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_USBUART2_IS_ALREADY_OPENED": {
+        "apiType": "index", 
+        "format": "uart_port_usb2 is already opened by AT, cid=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_NO_FREE_CHANNEL": {
+        "apiType": "index", 
+        "format": "No free rmmi channel is found!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_MMS_FOLDER_STATUS_OUTPUT_REQ_DROP_RESULT_CODE": {
+        "apiType": "index", 
+        "format": "Warning: l4c_mms_folder_status_output_req drop result code", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_MMS_UPLOAD_MSG_OUTPUT_REQ_DROP_RESULT_CODE": {
+        "apiType": "index", 
+        "format": "Warning: l4c_mms_upload_msg_output_req drop result code", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_MMS_DELETE_MSG_REQ_DROP_RESULT_CODE": {
+        "apiType": "index", 
+        "format": "Warning: l4c_mms_delete_msg_output_req drop result code", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_MMS_READ_MSG_PATH_REQ_DROP_RESULT_CODE": {
+        "apiType": "index", 
+        "format": "Warning: l4c_mms_read_msg_path_res_req drop result code", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_MMI_JAVA_LOCAL_INSTALL_RES_REQ_DROP_RESULT_CODE": {
+        "apiType": "index", 
+        "format": "Warning: l4c_mmi_java_local_install_res_req drop result code", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SOMETHING_STILL_IN_L4C_KBD_BUFFER": {
+        "apiType": "index", 
+        "format": "Warning: Something still in l4c_kbd_buffer. windex=%d ,rindex=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_UART_OWNER_IS_NOT_L4C": {
+        "apiType": "index", 
+        "format": "Warning: l4c_eq_usbuart_switch_port_req(): ERROR!! UART owner is not L4C ,owner is %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_KEY": {
+        "apiType": "index", 
+        "format": "Warning: invalid key", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ABORT_PLMN_LIST_REQ_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: abort_plmn_list_req cmd conflict", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_EFPUCT_IS_NOT_VALID": {
+        "apiType": "index", 
+        "format": "Warning: EFpuct is not valid", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_NOT_VALID_SIM_OPERATION_STRING": {
+        "apiType": "index", 
+        "format": "Warning: not a valid sim operation string", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_PHB_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: phb cmd conflict !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SMS_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: sms_cmd_conflict", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SMS_CMD_CONFLICT_SMS_ACTION_IS_NOT_ALLOWED": {
+        "apiType": "index", 
+        "format": "Warning: sms_cmd_conflict , sms action is not allowed while background action", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SMS_CMD_CONFLICT_CUFN_STATE_IS_NOT_EQUAL_TO_1": {
+        "apiType": "index", 
+        "format": "Warning: sms cmd conflict : cufn_state is not equal to 1", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RAC_CMD_CONFLICT_DUE_TO_CFUN_STATE": {
+        "apiType": "index", 
+        "format": "Warning: rac cmd conflict due to cfun_state!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RAC_CMD_CONFLICT_DUE_TO_CALL_EXIST": {
+        "apiType": "index", 
+        "format": "Warning: rac cmd conflict due to call exist!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RAC_CMD_CONFLICT_DUE_TO_IMS_CALL_EXIST": {
+        "apiType": "index", 
+        "format": "Warning: rac cmd conflict due to IMS call exist!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RAC_CMD_CONFLICT_DUE_TO_NOT_ACTIVATE": {
+        "apiType": "index", 
+        "format": "Warning: rac cmd conflict due to rac not activated!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RAC_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: rac cmd conflict !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_SMU_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: smu cmd conflict !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_RAC_CURRENT_ACTION": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : action = ABM_ACT_APP , rac_current_action= PWROFF_DETACH", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_ACFUN_STATE": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : cfun_state=%hd", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_SIM_REFRESH": {
+        "apiType": "index", 
+        "format": "Warning: comand conflict : sim_refresh= TRUE", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMD_CONFLICT_INCLUDE_CRSS_OPCODE_AND_SIM_REFRESH": {
+        "apiType": "index", 
+        "format": "Warning: command conlict : L4C_PTR->crss_opcode=%Mcsmcc_crss_req_enum , L4C_PTR->sim_refresh=%hd", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_FILE_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: file error", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_WRONG_FUNCTION": {
+        "apiType": "index", 
+        "format": "Warning: WRONG FUNCTION !!\\n", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_WRITE_FILE_FAIL": {
+        "apiType": "index", 
+        "format": "Warning: Write FILE Fail!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_UART_INPUT_QUEUE_FULL": {
+        "apiType": "index", 
+        "format": "Warning: RMMI uart_input_queue Full!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMUX_NOT_ENABLE_CURRENT_SRC_SHOULD_BE_RMMI_SRC": {
+        "apiType": "index", 
+        "format": "Warning: CMUX not enable, current_src should be RMMI_SRC", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_LG_DB_OPEN_FAIL": {
+        "apiType": "index", 
+        "format": "Warning: log.db open fail", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_TST_LOST_ONE_CMD": {
+        "apiType": "index", 
+        "format": "Warning: tst lost one command !!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_DATA_CALL_INVALID_CID": {
+        "apiType": "index", 
+        "format": "Warning: data call cid is invalid", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_EQ_CMD_CONFLICT": {
+        "apiType": "index", 
+        "format": "Warning: EQ cmd conflict! ", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_EQ_SRNTCH_FAILED": {
+        "apiType": "index", 
+        "format": "Warning: EQ screen touch return: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_EQ_SCRN_PARA_GET_FAILED": {
+        "apiType": "index", 
+        "format": "Warning: EQ screen parameter query return: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_PLUGOUT_SRCID_IS_NOT_MATCH": {
+        "apiType": "index", 
+        "format": "Warning: plugout_srcid(%d) is not match cid(%d) ", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ATCI_STATE_WRONG": {
+        "apiType": "index", 
+        "format": "Warning: state wrong, ATCI state=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ATCI2_STATE_WRONG": {
+        "apiType": "index", 
+        "format": "Warning: state wrong, ATCI2 state=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SCRI_REQ_NOT_SENT": {
+        "apiType": "index", 
+        "format": "Warning: End PS data senssion req not sent (debug idx: %d, AFR retry: %d)", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_CELL_INFO_UNREG": {
+        "apiType": "index", 
+        "format": "Warning: dereg non-reg module: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_NULL_POINTER_CHECK": {
+        "apiType": "index", 
+        "format": "Warning: get NULL pointer", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SIM_DOUBLE_POWEROFF": {
+        "apiType": "index", 
+        "format": "Trying to POWER OFF SIM while L4C is just turning off SIM", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SIM_START_IN_POWEROFF_STATE": {
+        "apiType": "index", 
+        "format": "SIM is started during L4C poweroff SIM, MSG is ignored", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_DROP_MSG_ON_WRONG_ACTION_STATE": {
+        "apiType": "index", 
+        "format": "MSG is droped due to inconsistency action", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_INVALID_SRCID_CHECK": {
+        "apiType": "index", 
+        "format": "Warning: L4C src_id check with an invalid value=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_VSIM_EF_META_OVERSIZE": {
+        "apiType": "index", 
+        "format": "Warning: the VSIM EF meta oversize", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_VSIM_EF_DATA_OVERSIZE": {
+        "apiType": "index", 
+        "format": "Warning: the VSIM EF meta oversize", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SIM_RESET_DURING_MODEM_POWEROFF": {
+        "apiType": "index", 
+        "format": "Warning: Skip SIM reset during modem poweroff", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SIM_CARD_TYPE_SWITCHING": {
+        "apiType": "index", 
+        "format": "Warning: SIM card type switching is running", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_SET_RAT_MODE_CONFLICT_DUE_TO_IRAT_NOT_FINISHED": {
+        "apiType": "index", 
+        "format": "Warning: set rat mode conflict due to IRAT is not finished!!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_IGNORE_REGIONAL_PHONE_REQ": {
+        "apiType": "index", 
+        "format": "Warning: Regional phone mode is updating", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_CHECK_AKA_AUTH_RESOURCE": {
+        "apiType": "index", 
+        "format": "Warning: check AKA AUTH state: auth_aka_state = %d, current action = %Ml4c_rsim_pending_action_enum, cfun_state=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_ENQUEUE_FAILED": {
+        "apiType": "index", 
+        "format": "Warning: L4C failed to enqueue pending action: %Ml4c_pending_action_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_OMIT_REPEAT_ACTION": {
+        "apiType": "index", 
+        "format": "Warning: omit repeated action", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_PROTOCOL_NOT_SUPPORTED": {
+        "apiType": "index", 
+        "format": "[L4C] Warning: PS %d is not supported", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_ABORT_SERVICE_MODE_CHANGE": {
+        "apiType": "index", 
+        "format": "[L4C] Abort service mode change because of current action: %Ml4c_action_enum, sim_status: %Msmu_sim_inserted_enum", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_CO_DECK_PRODUCT": {
+        "apiType": "index", 
+        "format": "Warning: co-deck product", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_L4C_APDU_LEN_ERROR": {
+        "apiType": "index", 
+        "format": "CMD DATA LENGTH Inconsistent curr_length = %d offset = %d total_length = %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+	{
+      "WARNING_L4C_UNEXPECTED_SIM_PARA_DATA": {
+        "apiType": "index", 
+        "format": "Unexpected SIM Parameter data", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_UE_CAPABILITY_IND_PROCEDURE_CONFLICT": {
+        "apiType": "index",
+        "format": "Warning: UE Capability Action conflict !!",
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_UE_CAPABILITY_IND_PROCEDURE_ONGOING": {
+        "apiType": "index",
+        "format": "Warning: UE Capability Action ongoing !!",
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_EONS_FREE_EXISTING_TABLE": {
+        "apiType": "index", 
+        "format": "[EONS]Existing EONS table (%Meons_file_idx_enum) free buffer!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_L4C_DOWNGRADE_SERVICE_START": {
+        "apiType": "index", 
+        "format": "[L4C] Launch downgrade service procedure", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_L4C_RECOVERY_SERVICE_START": {
+        "apiType": "index", 
+        "format": "[L4C] Launch recovery service procedure", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_L4C_NO_ECALL_NUMBER_AVAILABLE": {
+        "apiType": "index", 
+        "format": "[L4C] Warning: No eCall number available", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_EONS_START_ONGOING": {
+        "apiType": "index", 
+        "format": "[EONS] Start already Ongoing!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_EONS_INIT_ONGOING": {
+        "apiType": "index", 
+        "format": "[EONS]Init already Ongoing!", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "ERROR_L4_SNPRINTF_FAIL": {
+        "apiType": "index", 
+        "format": "[L4] l4_snprintf fail!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "ERROR_PHB_APPROVE_STRING_EXCEEDING": {
+        "apiType": "index", 
+        "format": "Error: Construct PHB approve string=%hd", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_PHB_STARTUP_FAIL": {
+        "apiType": "index", 
+        "format": "PHB startup FAIL! result cause: %Mphb_errno_enum", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_SET_PS_DIALUP_PORT_WITH_INVALID_CID": {
+        "apiType": "index", 
+        "format": "L4C ERROR!! l4c_ps_dialup_set_port2cid() with invalid cid=%hd", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_GET_PS_DIALUP_PORT_WITH_INVALID_CID": {
+        "apiType": "index", 
+        "format": "L4C ERROR!! l4c_ps_dialup_get_port() with invalid cid=%hd", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_FREE_PDP_CONTEXT_WITH_INVALID_CID": {
+        "apiType": "index", 
+        "format": "L4C ERROR!! l4c_free_pdp_context() with invalid cid=%hd", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "ERROR_L4C_EQ_NVRAM_NULL_POINTER": {
+        "apiType": "index", 
+        "format": "L4C ERROR!! Get null pointer", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_EQ_NVRAM_OVERFLOW": {
+        "apiType": "index", 
+        "format": "L4C ERROR!! Length overflow", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_SMS_SMSAL_INIT_FAIL": {
+        "apiType": "index", 
+        "format": "SMSAL init FAIL! result cause: %Msmsal_errno_enum, SMS function will have problems", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+	{
+      "ERROR_L4C_SMS_GENERAL_ERROR": {
+        "apiType": "index", 
+        "format": "L4C SMS ERROR!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_INVALID_PORT": {
+        "apiType": "index", 
+        "format": "Invalid port !", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_GET_SWITCHED_SIM_ID_INVALID": {
+        "apiType": "index", 
+        "format": "L4C ERROR!! l4c_gemini_get_switched_sim_id(simId=%d) got invalid ps_id=%d, caller=%Mmodule_type", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_NVRAM_STATE": {
+        "apiType": "index", 
+        "format": "Error: State error", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_RMMI_CC_NOT_STARTUP": {
+        "apiType": "index", 
+        "format": "Error: CSMCC not startup yet", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_CKPD_INPUT_FORMAT_ERROR": {
+        "apiType": "index", 
+        "format": "There are something wrong in the AT+CKPD input string", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_CMGL_NOT_END_BUT_ERROR": {
+        "apiType": "index", 
+        "format": "Error: cmgl not end but error", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_SBP_GUARD_TIMER_EXPIRED": {
+        "apiType": "index", 
+        "format": "Error: SBP guard timer is expired, force to next step !!!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_SBP_MOD_WITHOUT_CNF": {
+        "apiType": "index", 
+        "format": "Error: no L4C_ME_DSBP_RECONFIGURE_CNF from module %Mmodule_type !!!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_SBP_MOD_UNEXPECTED_CNF": {
+        "apiType": "index", 
+        "format": "Error: received unexpected L4C_ME_DSBP_RECONFIGURE_CNF from module %Mmodule_type !!!", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "L4C_CC_PARA": {
+        "apiType": "index", 
+        "format": "cc_parameter[%Ml4c_source_id_enum].length=%hd", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "L4C_SS_PARA": {
+        "apiType": "index", 
+        "format": "ss_parameter.length=%hd", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "CC_PEER_BUF": {
+        "apiType": "index", 
+        "format": "cc_peer_buf.length=%hd", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "FAX_SRC_ID_INFO": {
+        "apiType": "index", 
+        "format": "L4C_PTR->fax_src_id = %hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CPI_INFO_TYPE": {
+        "apiType": "index", 
+        "format": "+ECPI: %Mcsmcc_cpi_msg_type_enum ,call_id=%hd,retry_ongoing_flag=%hd,mo_call_id=%hd", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "CTM_CURRENT": {
+        "apiType": "index", 
+        "format": "[CTM current] ctm_current_action = %Ml4c_action_enum, ctm_user = %Ml4c_source_id_enum", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "CTM_CONTEXT": {
+        "apiType": "index", 
+        "format": "[CTM context] is_ctm_connected = %d, connected_src_id = %Ml4c_source_id_enum, is_gpio_plug = %d", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "L4C_MMI_UCM_HF_CIEV_REQ": {
+        "apiType": "index", 
+        "format": "l4c_mmi_ucm_hf_ciev_req(),ind_type=%Mrmmi_cind_enum,event=%d", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "L4C_MMI_UCM_RCODE_REQ": {
+        "apiType": "index", 
+        "format": "l4c_mmi_ucm_rcode_req(),source_id=%Ml4c_source_id_enum,type=%Mrmmi_rcode_type_enum,call_id=%d", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "L4C_MMI_UCM_AT_RES_REQ": {
+        "apiType": "index", 
+        "format": "l4c_mmi_ucm_at_res_req(),source_id=%Ml4c_source_id_enum,result=%d,cause=%Mrmmi_ucm_cause_enum", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "ATD_GPRS_DIALUP_ATTEMPT_BUT_FAIL": {
+        "apiType": "index", 
+        "format": "ATD gprs dialup attempt but fail,src_id =%hd,port=%hd", 
+        "traceClass": "TRACE_GROUP_2"
+      }
+    }, 
+    {
+      "HZ_STATE": {
+        "apiType": "index", 
+        "format": "[HZ state] hz_sim_status = %Mhz_sim_status_enum, is_dedicated_mode = %d, is_is_pkt_transfer_mode = %d", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "HZ_CURRENT": {
+        "apiType": "index", 
+        "format": "[HZ current] current_lac[0] = %d, current_lac[1] = %d,  current_cell_id = %d, current_gsm_status = %d, current_hz_number = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "HZ_PARA": {
+        "apiType": "index", 
+        "format": "[HZ para %d] a_flag = %d, is_cz = %d, xh= %d, yh = %d, r2h = %d, sim_c_size = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "HZ_CACHE": {
+        "apiType": "index", 
+        "format": "[HZ cache %d] sim_cache[%d].lac[0] = %d, lac[1] = %d, cell_id = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "HZ_OTHER": {
+        "apiType": "index", 
+        "format": "[HZ other] dynamic_cache_lastest = %d, dynamic_cache_size = %d, queue_cb = %d, queue_xc = %d, queue_yc = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "GPS_DESENSE_INFO_REQ": {
+        "apiType": "index", 
+        "format": "[GPS Desense] set mode=%hd", 
+        "traceClass": "TRACE_GROUP_5"
+      }
+    }, 
+    {
+      "EM_ADD_UPDATE_LIST": {
+        "apiType": "index", 
+        "format": "Add mod_id:%d in the update_list", 
+        "traceClass": "TRACE_GROUP_6"
+      }
+    }, 
+    {
+      "EM_EVENT_FOUND_IN_MAPPING_TABLE": {
+        "apiType": "index", 
+        "format": "Event found in em_info_req_mod_tbl[%d],mod_id=%d,event=%d", 
+        "traceClass": "TRACE_GROUP_6"
+      }
+    }, 
+    {
+      "EM_NO_MODULE_MAP_TO_EVENT": {
+        "apiType": "index", 
+        "format": "No module mapped to em event :%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "L4_NVRAM_EXTERNAL_READ_DATA": {
+        "apiType": "index", 
+        "format": "NVRAM external read data:0x%X", 
+        "traceClass": "TRACE_GROUP_4"
+      }
+    }, 
+    {
+      "INFO_ALARM_RECURR": {
+        "apiType": "index", 
+        "format": "rmmi_cala_hdlr(), alarm.recurr= 0x%X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ANY_CMD_AFTER_CKPD_IN_MULTI_CMD_IS_NOT_ALLOWED": {
+        "apiType": "index", 
+        "format": "RMMI ERROR: Any command coming after +CKPD in a multiple command line is not allowed", 
+        "traceClass": "TRACE_GROUP_3"
+      }
+    },
+	{
+      "MCF_ETWS_CONTROL_BITMAP": {
+        "apiType": "index", 
+        "format": "Bit Map Value for Protocol Stack %d is %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "SMS_DATA_NULL": {
+        "apiType": "index", 
+        "format": "Warning: SMS DATA is NULL. No Indication will be sent to AP", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+	{
+      "CB_DATA_NULL": {
+        "apiType": "index", 
+        "format": "Warning: CB DATA is NULL. No Indication will be sent to AP", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "LOAD_NVRAM_HVOLTE_CONFIG": {
+        "apiType": "index", 
+        "format": "load nvram hvolte config, nvram_hvolte_e911_ptr->hvolte_enable=%Mhvolte_enable_status_enum, l4c_ptr->hvolte_enable=%Mhvolte_enable_status_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+	},
+	{
+      "WARNING_L4C_VDM_FREE_L4B_TRANSACTION_ERROR": {
+        "apiType": "index",
+        "format": "[L4C_VDM] Warning: free L4B transaction ERROR",
+        "traceClass": "TRACE_WARNING"
+	  }
+    },
+    {
+      "FUNC_L4C_VDM_GET_L4B_TRANSACTION": {
+        "apiType": "index", 
+        "format": "[L4C_VDM]l4c_vdm_get_l4b_transaction() result is %Mkal_bool",
+        "traceClass": "TRACE_WARNING"
+      }
+    },    
+    {
+      "L4C_VDM_FREE_L4B_TRANSACTION_SUCCESS": {
+        "apiType": "index", 
+        "format": "[L4C_VDM]l4c_vdm_free_l4b_transaction() is SUCCESS",
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "INFO_CS_CALL_STATE_TO_SCP": {
+        "apiType": "index", 
+        "format": "CS call_state to scp = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SCP_MONITOR_STATUS": {
+        "apiType": "index", 
+        "format": "SCP monitor status:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SBP_ECSRA_ONGOING": {
+        "apiType": "index", 
+        "format": "[SBP] ECSRA is ongoing! Not allow DSBP",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_CBMI_DUP_INFO": {
+        "apiType": "index", 
+        "format": "[CSCB]%d is is already there in context , no need to add",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_CBMI_LIMIT": {
+        "apiType": "index", 
+        "format": "[CSCB]Here CB channels from AP and CB channels in context exceeds maximum number",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_CBMI_REMOVE": {
+        "apiType": "index", 
+        "format": "[CSCB]%d is exists in context ,We got a request to remove it -->  need to remove",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_CBMIR_REMOVE": {
+        "apiType": "index", 
+        "format": "[CSCB]%d to %d range exists in context ,We got a request to remove it -->  need to remove",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_CBCH_MODE": {
+        "apiType": "index", 
+        "format": "[CSCB]We got a request to ADD/REMOVE CB channels  MODE: %d",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_CSCB_ERROR": {
+        "apiType": "index", 
+        "format": "[CSCB]Error cause is = %d",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_L4C_NON_3GPP_POLICY_INDICATOR": {
+        "apiType": "index", 
+        "format": "[L4C][N3EN]l4c=%d, msg=%d, urc_mode=%d",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "ERROR_L4C_INVALID_SIG_TYPE": {
+        "apiType": "index", 
+        "format": "[L4C] Invalid Signal Type = %d",
+        "traceClass": "TRACE_ERROR"
+      }
+    },
+    {
+      "INFO_IMS_REG_TIMEOUT_VONR": {
+        "apiType": "index", 
+        "format": "l4crac_ims_reg_timeout_ind_hdlr: VoNR register timeout, still keep in VOPS mode",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_HVOLTE_VOPS_MODE_BY_NR_CELL": {
+        "apiType": "index", 
+        "format": "[L4C][hVolte] switch to VOPS by camping on NR cell",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_UICC_NOT_ACT_NOT_HVOLTE_MODE_SWITCH": {
+        "apiType": "index", 
+        "format": "UICC not activated yet, do not swtich hvolte mode",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "FUNC_L4C_LOAD_HVOLTE_E911_CONFIG": {
+        "apiType": "index", 
+        "format": "l4c_load_hvolte_e911_config()",
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "INFO_HVOLTE_CONTEXT": {
+        "apiType": "index", 
+        "format": "[L4][hVolte]: enable:%Mhvolte_enable_status_enum, mode:%Mhvolte_mode_enum, ct_volte_support:%d",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_HVOLTE_CONTEXT_NOT_LOADED": {
+        "apiType": "index", 
+        "format": "[L4][hVolte]: not load hVolte context yet",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_CONSIDER_MO_DISC_CAUSE": {
+        "apiType": "index", 
+        "format": "Consider MO DISC CAUSE", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_CONSIDER_CEER_REP_CAUSE": {
+        "apiType": "index", 
+        "format": "Consider CEER REPORT CAUSE", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SAVE_MO_DISC_CAUSE": {
+        "apiType": "index", 
+        "format": "SAVE MO DISC CAUSE = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_CLEAR_MO_DISC_CAUSE": {
+        "apiType": "index", 
+        "format": "CLEAR MO DISC CAUSE = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_SRVCC_UPDATE_BY_CEVDP_FAILURE": {
+        "apiType": "index", 
+        "format": "Fail to update srvcc by AT+CEVDP",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_MS_BLACK_CELL_L4C_STATE": {
+        "apiType": "index", 
+        "format": "[L4C][BLACKCELL] mmrr_ready_flag: %d, rac_active: %d, smu_active: %d, cfun_state: %d",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_PORTLOCK_NVRAM_LID_MISMATCH": {
+        "apiType": "index", 
+        "format": "[PORTLOCK]Mismatch in NVRAM LID value. Expected: %d Received: %d",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_MS_BLACK_CELL_L4C_INIT_STATE": {
+        "apiType": "index", 
+        "format": "[L4C][BLACKCELL] cur_transaction_id: %d, rac_active: %d, black_list_init_state: %d",
+        "traceClass": "TRACE_INFO"
+      }    
+    },
+    {
+      "INFO_NRRC_STATE": {
+        "apiType": "index", 
+        "format": "[L4C]current nrrc state: %Mindicated_nrrc_state_enum",
+        "traceClass": "TRACE_INFO"
+      }    
+    },
+    {
+      "INFO_AFR_RAT": {
+        "apiType": "index", 
+        "format": "AFR rat bitmap =0x%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_5GUW_TUW_STATE": {
+        "apiType": "index", 
+        "format": "[5GUW] 5G UW tuw_state: %Mtuw_state_enum",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_5GUW_UPDATE_STATE_ERRC_I2C_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW] l4c_nw_update_5guw_state_errc_idle_to_conn() 5G UW tuw_state: %Mtuw_state_enum",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_5GUW_UPDATE_STATE_ERRC_C2I_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW] l4c_nw_update_5guw_state_errc_conn_to_idle() 5G UW tuw_state: %Mtuw_state_enum",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_5GUW_UPDATE_STATE_ULI_DSPR_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW] l4c_nw_update_5guw_state_uli_disappear() 5G UW tuw_state: %Mtuw_state_enum",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SET_PCO_5GUW_ALLOW_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW] l4c_nw_set_pco_5guw_allow() tuw_state: %Mtuw_state_enum, old_5guw_allowed: %Mkal_bool,  new_5guw_allowed: %Mkal_bool",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_5GUW_SET_UW_CONFIG_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW] l4c_nw_5guw_set_is_ultra_wb_configure() tuw_state: %Mtuw_state_enum, old_is_on_n77: %Mkal_bool,  new_is_on_n77: %Mkal_bool, old_is_on_fr2: %Mkal_bool,  new_is_on_fr2: %Mkal_bool",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_RECAL_5GUW_DSPL_RESULT": {
+        "apiType": "index", 
+        "format": "[5GUW] is_dspl_5guw: %Mkal_bool",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_RECAL_5GUW_DSPL_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW]l4c_nw_re_calculate_and_update_5guw_display()tuw_state: %Mtuw_state_enum, errc_state: %Mem_errc_state_enum, is_dspl_5guw: %Mkal_bool, 5guw_allowed: %Mkal_bool, is_on_n77: %Mkal_bool, is_on_fr2: %Mkal_bool",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "FUNC_L4C_NW_RESET_5GUW_CNTXT": {
+        "apiType": "index", 
+        "format": "l4c_nw_reset_5guw_context()",
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "INFO_EPSFB_VONR_CALL_ESTABLISH": {
+        "apiType": "index", 
+        "format": "[EPSFB] IMS call establishment: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_IS_EPSFB_NEEDED": {
+        "apiType": "index", 
+        "format": "[EPSFB] l4c_is_epsfb_needed: ps_id: %Mprotocol_id_enum, source_rat: %Mrat_type_enum, target_rat: %Mrat_type_enum, ir_type: %Mirat_type_enum, result: %Mkal_bool", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "FUNC_L4C_CUSTOM_CONFIG_FD_SETTING": {
+        "apiType": "index", 
+        "format": "l4c_custom_config_fd_setting()",
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "INFO_L4C_PS_IS_EDALLOW_SET": {
+        "apiType": "index", 
+        "format": "l4c_ps_is_data_allowed: is_data_allowed: %Mkal_bool, protocol_id: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PS_CONF_TEST_PROFILE": {
+        "apiType": "index", 
+        "format": "[L4C]ps_conf_test_profile = 0x%x, is_custom_fd_setting = %Mkal_bool, is_custom_full_fd_setting = %Mkal_bool ", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_DSBP_PLMN_ID": {
+        "apiType": "index", 
+        "format": "[L4C] DSBP PLMN ID = %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_FD_ALREADY_DISABLED": {
+        "apiType": "index", 
+        "format": "[L4C] FD is already disabled. No Need for any modification.", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PLMN_CHECK_FAIL_FOR_FD": {
+        "apiType": "index", 
+        "format": "[L4C] PLMN Check failed. Remove custom settings to enable FD again!!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_PLMN_CHECK_FAIL_FOR_FULL_FD": {
+        "apiType": "index", 
+        "format": "[L4C] PLMN Check failed. Remove custom settings to enable full R8 FD again!!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_L4C_DRB_STATUS_UPDATE": {
+        "apiType": "index", 
+        "format": "l4c DRB state change %d -> %d, report_mode: %d(rat bitmask)",
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS", 
+  "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/protocol/interface/l4misc/l4aps_l4bpdn_struct.h b/mcu/protocol/interface/l4misc/l4aps_l4bpdn_struct.h
new file mode 100644
index 0000000..23a9839
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_l4bpdn_struct.h
@@ -0,0 +1,778 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4aps_l4bpdn_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ ****************************************************************************/
+
+
+#ifndef  _L4APS_L4BPDN_STRUCT_H
+#define  _L4APS_L4BPDN_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ddm_common_struct.h"
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+
+#include "ps_public_struct.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+
+#if 1 /* MSG: L4APS -> L4BPDN */
+/*********************************************************************************************************
+ *     MSG: L4APS -> L4BPDN: Start                                                                         *
+ *********************************************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_common_header_req_struct cmd;
+} l4aps_l4bpdn_cmd_common_header_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    kal_uint8     							cid;
+	at_token_parse_result_enum              cached_ff03_present;
+    kal_uint8                               cached_ff03;                                                          // integer type 
+} l4aps_l4bpdn_nw_applied_cache_data_notify_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdcont_req_struct cmd; 
+    kal_uint8 psi;
+
+    /* Used for SSC Mode 3 PDU session re-restablishment in 5G. */
+    kal_bool  old_psi_present; 
+    kal_uint8 old_psi;     
+
+    /* Used for L4 two params (URSP requirement). 
+     * Condition: 
+     * - If current is 5G-RAT and VGPDP/VGAPN is present (AT_TOKEN_PARSE_RESULT_OK) 
+         -> Use the corresponding parameters in below 
+     * - Otherwise: (non-5G-RAT or in 5G but VGPDP/VGAPN is NOT AT_TOKEN_PARSE_RESULT_OK
+         -> Use paramters in the above cmd (i.e., the normal CGDCONT command) . */
+    at_token_parse_result_enum     VGPDP_type_parse_result;
+    kal_uint8                               VGPDP_type[PDP_TYPE_STRING_LEN];                                      // string type
+    at_token_parse_result_enum     VGAPN_parse_result;
+    kal_uint8                               VGAPN[APN_STRING_LEN];                                                // string type
+
+    /* use to indicate is this dnn in ladn list */
+    at_token_parse_result_enum              ladn_dnn_present;
+    kal_uint8                               ladn_dnn;                                                             // integer type
+    
+} l4aps_l4bpdn_cgdcont_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdscont_req_struct cmd; 
+} l4aps_l4bpdn_cgdscont_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtft_req_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_cgtft_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqreq_req_struct cmd; 
+} l4aps_l4bpdn_cgqreq_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqmin_req_struct cmd; 
+} l4aps_l4bpdn_cgqmin_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqreq_req_struct cmd; 
+} l4aps_l4bpdn_cgeqreq_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqmin_req_struct cmd; 
+} l4aps_l4bpdn_cgeqmin_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqneg_req_struct cmd; 
+} l4aps_l4bpdn_cgeqneg_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgact_req_struct cmd; 
+    ddm_apn_type_enum apn_type;
+} l4aps_l4bpdn_cgact_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgcmod_req_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_cgcmod_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgpaddr_req_struct cmd; 
+} l4aps_l4bpdn_cgpaddr_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauto_req_struct cmd; 
+} l4aps_l4bpdn_cgauto_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgans_req_struct cmd; 
+} l4aps_l4bpdn_cgans_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgerep_req_struct cmd; 
+} l4aps_l4bpdn_cgerep_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgcontrdp_req_struct cmd; 
+} l4aps_l4bpdn_cgcontrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgscontrdp_req_struct cmd; 
+} l4aps_l4bpdn_cgscontrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtftrdp_req_struct cmd; 
+    kal_uint8  qfi;
+} l4aps_l4bpdn_cgtftrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqos_req_struct cmd; 
+} l4aps_l4bpdn_cgeqos_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqosrdp_req_struct cmd; 
+} l4aps_l4bpdn_cgeqosrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqos_req_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqos_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqosrdp_req_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqosrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdel_req_struct cmd; 
+} l4aps_l4bpdn_cgdel_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauth_req_struct cmd; 
+    kal_uint8 psi; 
+} l4aps_l4bpdn_cgauth_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cladn_req_struct cmd; 
+} l4aps_l4bpdn_cladn_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_ecncfg_req_struct cmd; 
+} l4aps_l4bpdn_ecncfg_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egdcont_req_struct cmd; 
+    kal_uint8 psi;
+} l4aps_l4bpdn_egdcont_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_vzwapnetmr_req_struct cmd; 
+} l4aps_l4bpdn_vzwapnetmr_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_vzwapne_req_struct cmd; 
+} l4aps_l4bpdn_vzwapne_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egpau_req_struct cmd; 
+} l4aps_l4bpdn_egpau_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egact_req_struct cmd; 
+    ddm_apn_type_enum apn_type;
+} l4aps_l4bpdn_egact_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgsdata_req_struct cmd; 
+} l4aps_l4bpdn_cgsdata_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_acttest_req_struct cmd; 
+} l4aps_l4bpdn_acttest_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_psbearer_req_struct cmd; 
+} l4aps_l4bpdn_psbearer_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egfb_req_struct cmd; 
+} l4aps_l4bpdn_egfb_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egdelpf_req_struct cmd; 
+} l4aps_l4bpdn_egdelpf_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_eglnkpf_req_struct cmd; 
+} l4aps_l4bpdn_eglnkpf_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egpcordp_req_struct cmd; 
+} l4aps_l4bpdn_egpcordp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+ 
+    at_egpco_req_struct cmd; 
+    kal_uint8 psi; 
+} l4aps_l4bpdn_egpco_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdata_req_struct cmd;
+    network_interface_id_info_struct selected_network_interface_id_info;
+    apn_type_info_struct apn_type_info;
+} l4aps_l4bpdn_cgdata_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_egld_req_struct cmd;
+} l4aps_l4bpdn_egld_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_edallow_req_struct cmd; 
+} l4aps_l4bpdn_edallow_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    kal_bool      is_success;
+    kal_uint8     lte_attach_cid; /* used if (is_success == KAL_TRUE)  */
+    ps_cause_enum err_cause;      /* used if (is_success == KAL_FALSE) */
+} l4aps_l4bpdn_lte_attach_pdn_define_needed_rsp_struct; 
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 sim_slot_id;
+} l4aps_l4bpdn_set_default_sim_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_ims_roaming_enable;
+} l4aps_l4bpdn_set_eimsroam_config_value_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    
+    at_cmd_common_header_req_struct cmd;
+    kal_uint32   dummy;
+} l4aps_l4bpdn_cmd_not_yet_support_req_struct; /* Only for UT */
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eapnsync_req_struct cmd; 
+} l4aps_l4bpdn_eapnsync_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_evzwapfcia_req_struct cmd; 
+} l4aps_l4bpdn_evzwapfcia_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eggrntrspt_req_struct cmd; 
+} l4aps_l4bpdn_eggrntrspt_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_egpcap_req_struct cmd; 
+} l4aps_l4bpdn_egpcap_req_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  cid;
+    kal_uint32 apn_type; /* bit map refer to enum ddm_apn_type */
+} l4aps_l4bpdn_notify_pdn_type_req_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_escontind_ind_struct cmd; 
+} l4aps_l4bpdn_escontind_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_escontind_req_struct cmd;
+} l4aps_l4bpdn_escontind_req_struct;
+
+/*********************************************************************************************************
+ *     MSG: L4APS -> L4BPDN: End                                                                           *
+ *********************************************************************************************************/
+#endif 
+
+#if 1 /* MSG: L4BPDN -> L4APS */
+/*********************************************************************************************************
+ *     MSG: L4BPDN -> L4APS: Start                                                                         *
+ *********************************************************************************************************/
+/* A general purpose AT-CMD confirm message */
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_cnf_struct cmd;
+
+    /* In the above field (cmd), 
+     * if cmd.is_success == KAL_FALSE, the cmd.err_cause is a converted cause according to 27.007. 
+     * The below original_cause is an "unconverted" counterpart for reference. */
+    kal_bool          is_original_cause_from_3gpp_present;  /* True: If (cmd.is_success == KAL_FALSE) AND (is from 3GPP MD) */
+    ps_cause_enum     original_cause_from_3gpp;             /* Valid if is_original_cause_from_3gpp_present == KAL_TRUE */
+
+} l4aps_l4bpdn_cmd_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cgev_ind_struct cmd; 
+
+    /* True:  If (event is CGEV_EVENT_NW_PDN_DEACT or CGEV_EVENT_NW_DEACT or CGEV_EVENT_NW_REACT) AND (the CGEV is from 3GPP) 
+     * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+    kal_bool      is_cgev_deact_cause_from_3gpp;
+    ps_cause_enum cgev_deact_cause;
+
+    /* True:  If (event is CGEV_EVENT_NW_MODIFY) AND (the CGEV is from 3GPP) 
+     * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+    kal_bool      is_cgev_modify_cause_from_3gpp; 
+    ps_cause_enum cgev_modify_cause; 
+} l4aps_l4bpdn_cgev_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdcont_ind_struct cmd; 
+} l4aps_l4bpdn_cgdcont_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdscont_ind_struct cmd; 
+} l4aps_l4bpdn_cgdscont_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtft_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_cgtft_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqreq_ind_struct cmd; 
+} l4aps_l4bpdn_cgqreq_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqmin_ind_struct cmd; 
+} l4aps_l4bpdn_cgqmin_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqreq_ind_struct cmd; 
+} l4aps_l4bpdn_cgeqreq_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqmin_ind_struct cmd; 
+} l4aps_l4bpdn_cgeqmin_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqneg_ind_struct cmd; 
+} l4aps_l4bpdn_cgeqneg_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgact_ind_struct cmd; 
+} l4aps_l4bpdn_cgact_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgpaddr_ind_struct cmd; 
+} l4aps_l4bpdn_cgpaddr_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauto_ind_struct cmd; 
+} l4aps_l4bpdn_cgauto_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgerep_ind_struct cmd; 
+} l4aps_l4bpdn_cgerep_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgcontrdp_ind_struct cmd; 
+} l4aps_l4bpdn_cgcontrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgscontrdp_ind_struct cmd; 
+} l4aps_l4bpdn_cgscontrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtftrdp_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_cgtftrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqos_ind_struct cmd; 
+} l4aps_l4bpdn_cgeqos_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqosrdp_ind_struct cmd; 
+} l4aps_l4bpdn_cgeqosrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqos_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqos_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqosrdp_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqosrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdel_ind_struct cmd; 
+} l4aps_l4bpdn_cgdel_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauth_ind_struct cmd; 
+} l4aps_l4bpdn_cgauth_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cladn_ind_struct cmd;
+    kal_bool         num_of_ladn_info_present;
+    kal_uint8        num_of_ladn_info;
+    kal_bool         ladn_info_present;
+    ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4aps_l4bpdn_cladn_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cladnu_ind_struct cmd;
+    kal_bool         num_of_ladn_info_present;
+    kal_uint8        num_of_ladn_info;
+    kal_bool         ladn_info_present;
+    ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4aps_l4bpdn_cladnu_ind_struct;
+
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_psbearer_ind_struct cmd; 
+} l4aps_l4bpdn_psbearer_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egfb_ind_struct cmd; 
+} l4aps_l4bpdn_egfb_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egdelpf_ind_struct cmd; 
+} l4aps_l4bpdn_egdelpf_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_eglnkpf_ind_struct cmd; 
+} l4aps_l4bpdn_eglnkpf_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egpcordp_ind_struct cmd; 
+} l4aps_l4bpdn_egpcordp_ind_struct;
+
+typedef struct { 
+     LOCAL_PARA_HDR 
+ 
+    at_egpco_ind_struct cmd; 
+} l4aps_l4bpdn_egpco_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_cnf_struct cmd;
+} l4aps_l4bpdn_cgdata_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_cnf_struct cmd;
+} l4aps_l4bpdn_egld_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_egev_ind_struct cmd; 
+} l4aps_l4bpdn_egev_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+} l4aps_l4bpdn_lte_attach_needed_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+
+    /**
+     * KAL_TRUE: L4BPDN knows the eHRPD to LTE interRAT, 
+     * so when L4BPDN detects currently it is an eHRPD to LTE interRAT scenario, 
+     * L4 will suggest DDM to set handover flag 
+     * 
+     * Note: L4 only suggests DDM to set handover flag. 
+     * DDM is the final decision maker and needs to consider other condistions. 
+     *
+     * Ex. 1: L4 suggests DDM to set handover flag and DDM decides to use APN1 to do LTE ATTACH. 
+     * However APN1 is not currently alive. In this case, DDM need to NOT SET handover flag 
+     *
+     * Ex. 2: L4 suggests DDM to set handover flag and DDM decides to use APN1 to do LTE ATTACH.
+     * If APN1 get cause #54 during last LTE ATTACH, in this case DDM need to NOT SET handover flag 
+     * 
+     * Ex. 3: L4 suggests DDM to set handover flag and DDM decides to use APN1 to do LTE ATTACH.
+     * If APN1 get cause #54 during last LTE ATTACH, and DDM wants to use APN2 (alive) to do LTE ATTACH. 
+     * in this case, DDM need to SET handover flag 
+     */   
+    kal_bool is_l4bpdn_suggested_to_set_handover;
+    plmn_id_struct current_plmn_id;
+} l4aps_l4bpdn_lte_attach_pdn_define_needed_ind_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    kal_uint8     lte_attach_cid; 
+    kal_bool cause2_present;
+    ps_cause_enum err_cause2;
+    pdp_addr_type_enum nw_applied_pdp_type;
+} l4aps_l4bpdn_lte_attach_pdn_activate_success_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    kal_uint8     lte_attach_cid; 
+    ps_cause_enum cause;
+    kal_bool is_change_to_apn_class_present;
+    kal_uint8 change_to_apn_class;
+} l4aps_l4bpdn_lte_attach_pdn_activate_failure_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_vzwapne_ind_struct cmd; 
+} l4aps_l4bpdn_vzwapne_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_vzwapnetmr_ind_struct cmd; 
+} l4aps_l4bpdn_vzwapnetmr_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+
+    kal_uint8      cid; 
+    ip_addr_struct ip_addr;
+} l4aps_l4bpdn_pdn_modify_ind_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eapnsync_ind_struct cmd; 
+} l4aps_l4bpdn_eapnsync_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_evzwapfcia_ind_struct cmd; 
+} l4aps_l4bpdn_evzwapfcia_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eggrntrspt_ind_struct cmd; 
+} l4aps_l4bpdn_eggrntrspt_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_egpcap_test_mode_ind_struct cmd; 
+} l4aps_l4bpdn_egpcap_test_mode_ind_struct;
+
+typedef pam_backoff_timer_report_ind_struct l4aps_l4bpdn_backoff_timer_status_ind_struct;
+ 
+/*********************************************************************************************************
+ *     MSG: L4BPDN -> L4APS: End                                                                           *
+ *********************************************************************************************************/
+#endif 
+
+#endif /* _L4APS_L4BPDN_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4aps_public_enum.h b/mcu/protocol/interface/l4misc/l4aps_public_enum.h
new file mode 100644
index 0000000..e7885d0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_public_enum.h
@@ -0,0 +1,84 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4aps_public_enum.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _L4APS_PUBLIC_ENUM_H
+#define  _L4APS_PUBLIC_ENUM_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_enum.h"
+
+typedef enum
+{
+    L4APS_CAUSE_CATEGORY_UNKNOWN,
+    L4APS_CAUSE_CATEGORY_SM_NW_REJ,
+    L4APS_CAUSE_CATEGORY_ESM_NW_REJ,
+    L4APS_CAUSE_CATEGORY_VGSM_NW_REJ,
+} l4aps_cause_category_enum;
+
+typedef enum
+{
+    L4APS_RETRY_TYPE_NONE,
+    L4APS_RETRY_TYPE_IMMEDIATE,
+    L4APS_RETRY_TYPE_SUSPEND_RESUME,
+} l4aps_retry_type_enum;
+
+#endif /* _L4APS_PUBLIC_ENUM_H */
diff --git a/mcu/protocol/interface/l4misc/l4aps_public_utility.h b/mcu/protocol/interface/l4misc/l4aps_public_utility.h
new file mode 100644
index 0000000..ea4fb09
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_public_utility.h
@@ -0,0 +1,74 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4aps_public_utility.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _L4APS_PUBLIC_UTILITY_H
+#define  _L4APS_PUBLIC_UTILITY_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_enum.h"
+
+#include "l4aps_public_enum.h"
+
+/* This API is provided to DDM only to know the category of reject cause */
+l4aps_cause_category_enum l4aps_convert_cause_category(ps_cause_enum cause);
+
+#endif /* _DDM_L4APS_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4aps_tcm_struct.h b/mcu/protocol/interface/l4misc/l4aps_tcm_struct.h
new file mode 100644
index 0000000..fab6ae7
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_tcm_struct.h
@@ -0,0 +1,69 @@
+/*****************************************************************************
+*  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) 2019
+*
+*  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:
+ * ---------
+ *   l4aps_tcm_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ ****************************************************************************/
+
+#ifndef  _L4APS_TCM_STRUCT_H
+#define  _L4APS_TCM_STRUCT_H
+
+#if __GROUP_L4APS_TCM_INTERFACE_TYPEDEF_AREA__ || 1
+typedef ia_apn_change_req_struct l4aps_tcm_ia_apn_change_req_struct; 
+#endif /* __GROUP_L4APS_TCM_INTERFACE_TYPEDEF_AREA__ */
+
+#if __GROUP_L4APS_TCM_INTERFACE_EXPLICIT_DEFINE_AREA__ || 1
+#endif /* __GROUP_L4APS_TCM_INTERFACE_EXPLICIT_DEFINE_AREA__ */
+
+#endif /* _L4APS_TCM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4b_atci_struct.h b/mcu/protocol/interface/l4misc/l4b_atci_struct.h
new file mode 100644
index 0000000..e14dcd1
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4b_atci_struct.h
@@ -0,0 +1,96 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l4b_atci_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _L4B_ATCI_STRUCT_H
+#define _L4B_ATCI_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l4b_internal_defs.h"
+#include "atp_public_defs.h"
+
+/* MSG_ID_L4B_ATCI_AT_CMD_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    l4b_channel_enum ch_id;
+} l4b_atci_at_cmd_req_struct;
+
+/* MSG_ID_L4B_ATCI_AT_CMD_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    l4b_channel_enum ch_id;
+    proxy_cmd_result_enum result;
+    kal_bool stuff;
+} l4b_atci_at_cmd_cnf_struct;
+
+/* MSG_ID_L4B_ATCI_AT_URC_IND */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 ch_id;
+    kal_bool stuff;
+} l4b_atci_at_urc_ind_struct; //align to atp_l4b_at_urc_ind_struct
+
+/* MSG_ID_L4BPWR_ATCI_EPOF_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+    l4b_channel_enum ch_id;
+} l4bpwr_atci_epof_req_struct;
+
+/* MSG_ID_L4BPWR_ATCI_EPOF_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    l4b_channel_enum ch_id;
+    proxy_cmd_result_enum result;
+} l4bpwr_atci_epof_cnf_struct;
+
+#endif /* _L4B_ATCI_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/l4bnw_l4c_struct.h b/mcu/protocol/interface/l4misc/l4bnw_l4c_struct.h
new file mode 100644
index 0000000..1aae8d2
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bnw_l4c_struct.h
@@ -0,0 +1,113 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4bnw_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:Allen Hsu
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ ****************************************************************************/
+
+
+#ifndef  _L4BNW_L4C_STRUCT_H
+#define  _L4BNW_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "rac_gmss_struct.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "atp_l4b_struct.h"
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+#include "l3_inc_local.h"
+#endif
+#include "l4c_common_enum.h"
+#include "ddm_l4bnw_struct.h"
+#include "rac2l4c_struct.h"
+
+typedef rac_gmss_suspend_egreg_update_ind_struct l4bnw_l4c_suspend_egreg_update_ind_struct;
+typedef rac_gmss_suspend_egreg_update_ind_struct l4bnw_l4c_suspend_egreg_update_cnf_struct;
+typedef l4crac_active_rat_ind_struct l4bnw_l4c_active_rat_ind_struct;
+typedef ddm_l4bnw_ps_type_config_req_struct l4bnw_l4c_ps_type_config_req_struct;
+typedef ddm_l4bnw_ps_type_config_cnf_struct l4bnw_l4c_ps_type_config_cnf_struct;
+typedef ddm_l4bnw_ps_reattach_config_req_struct l4bnw_l4c_ps_reattach_config_req_struct;
+typedef ddm_l4bnw_ims_pdn_rej_ind_struct l4bnw_l4c_ims_pdn_rej_ind_struct;
+
+
+typedef l4crac_reg_state_ind_struct l4bnw_l4c_reg_state_ind_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool protocol_lock;
+    l4c_imei_meid_action_enum lock_action;
+}l4bnw_l4c_imei_meid_lock_req_struct; 
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct{
+    LOCAL_PARA_HDR
+    plmn_id_struct plmn; 
+    kal_uint8 carrier_id[6];
+}l4bnw_l4c_illegal_me_ind_struct;
+#endif
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_service_mode_op_enum op;
+} l4bnw_l4c_service_mode_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+} l4bnw_l4c_service_mode_cnf_struct;
+
+
+#endif /* _L4BNW_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4bnw_public_struct.h b/mcu/protocol/interface/l4misc/l4bnw_public_struct.h
new file mode 100644
index 0000000..69dafd9
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bnw_public_struct.h
@@ -0,0 +1,133 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4bnw_public_struct.h
+ *
+ *
+ * Description:
+ * ------------
+ *  This is the header file of l4bnw_public_struct.c
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+     
+#ifndef  _L4BNW_PUBLIC_STRUCT_H
+#define  _L4BNW_PUBLIC_STRUCT_H
+     
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+#include "l3_inc_local.h"
+#endif
+#include "ps_public_enum.h"
+     
+typedef struct {
+
+    /** Only expects the below values from rat_enum: 
+    *    RAT_NONE     = 0,
+    *    RAT_GSM      = 1,
+    *    RAT_UMTS     = 2,
+    *    RAT_LTE      = 4,
+    *    RAT_C2K      = 16,
+    *    RAT_1xRTT    = 32,
+    *    RAT_HRPD     = 64,
+    */
+    rat_enum currently_attached_rat;
+    rat_enum cs_currently_attached_rat;
+
+    l4c_data_speed_support_enum data_speed_support;
+    l4c_data_speed_support_enum cs_data_speed_support;
+
+    kal_uint8 plmn[MAX_PLMN_LEN+1]; /* in string format, from +EOPS */
+    kal_uint8 cs_plmn[MAX_PLMN_LEN+1]; /* in string format, from +EOPS */
+
+    kal_uint32 lac;    /* LAC or TAC within PS domain - 2/3/4G: 2-byte;  5G: 3-byte  */
+    kal_uint32 cs_lac; /* LAC or TAC within CS domain - 2/3/4G: 2-byte;  5G: 3-byte  */
+
+    kal_uint64 ci; /* from +CGREG */
+    kal_uint64 cs_ci; /* from +CREG */
+
+    kal_uint8 is_roaming;
+    kal_uint8 cs_is_roaming;
+
+    kal_uint8 ps_state; /* from +EGREG */
+    kal_uint8 cs_state; /* from +EREG */
+
+    kal_bool is_home_country;
+    kal_bool is_hplmn;
+
+    /* C2K cell info */
+    kal_uint16 sid;
+    kal_uint16 nid;
+    kal_uint8  pzid;
+    kal_uint16 base_id;
+    kal_uint32 sector_id[4];
+    kal_uint8  subnet_length;
+    kal_uint8  carrier_id[7];
+    //kal_uint8 sid[IMC_MAX_SID_LEN]; /* in string format */
+    //kal_uint8 nid[IMC_MAX_NID_LEN]; /* in string format */
+    //kal_uint8 pzid[IMC_MAX_PZID_LEN]; /* in string format */
+    //kal_uint8 base_id[IMC_MAX_BASE_ID_LEN]; /* in string format */
+    //kal_uint8 sector_id[IMC_MAX_SECTOR_ID_LEN]; /* in string format */
+    //kal_uint8 subnet_length[IMC_MAX_SUBNET_LENGTH_LEN]; /* in string format */
+    //kal_uint8 carrier_id[IMC_MAX_CARRIER_ID_LEN]; /* in string format */
+} l4bnw_public_attached_network_info_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4bnw_public_attached_network_info_struct attached_network_info;
+} l4bnw_attached_rat_ind_struct, imsm_l4bnw_attached_rat_ind_struct, iwlan_l4bnw_attached_rat_ind_struct,ssds_l4bnw_attached_rat_ind_struct;
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 barring_rat;
+    kal_uint16 barring_service;
+    plmn_id_struct plmn;
+	kal_uint8     carrier_id[6];
+} iwlan_l4bnw_force_bar_ind_struct;
+#endif
+
+#endif /* _L4BNW_PUBLIC_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/l4bnw_public_utility.h b/mcu/protocol/interface/l4misc/l4bnw_public_utility.h
new file mode 100644
index 0000000..2e1722a
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bnw_public_utility.h
@@ -0,0 +1,80 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4bnw_public_utility.h
+ *
+ *
+ * Description:
+ * ------------
+ *  This is the header file of l4bnw_utility.c
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+#ifndef _L4BNW_PUBLIC_UTILITY_H_
+#define _L4BNW_PUBLIC_UTILITY_H_
+
+
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "l4b_internal_defs.h"
+#include "l4bnw_public_struct.h"
+
+extern l4bnw_public_attached_network_info_struct l4bnw_public_get_attached_network_info();  // TODO: to be phased-out
+extern kal_uint8 l4bpwr_public_get_old_efun_state();
+
+
+extern kal_bool l4bnw_public_is_registered_roaming(kal_uint8 ps_idx);
+
+extern kal_bool l4bnw_public_is_ps_registered_roaming(kal_uint8 ps_idx);
+
+extern kal_bool l4bnw_public_is_registered(kal_uint8 ps_idx);
+
+rat_enum l4bnw_public_get_user_rat_mode_by_ps_id(kal_uint8 ps_idx);
+
+extern kal_uint8 l4bnw_public_get_current_act_in_3gpp2();
+
+kal_bool l4bnw_public_get_plmn_service_info(kal_uint8 ps_idx, domain_id_enum service, kal_uint8 *plmn_id, kal_bool *in_service);
+rat_enum l4bnw_public_get_currently_attached_rat(kal_uint8 ps_idx);
+void l4bnw_public_get_cell_info(kal_uint8 ps_idx, l4bnw_cs_ps_cell_info_struct * cell_info);
+
+#endif /* _L4BNW_PUBLIC_UTILITY_H_*/
+
diff --git a/mcu/protocol/interface/l4misc/l4bpdn_l4c_struct.h b/mcu/protocol/interface/l4misc/l4bpdn_l4c_struct.h
new file mode 100644
index 0000000..c83a517
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bpdn_l4c_struct.h
@@ -0,0 +1,770 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4bpdn_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ ****************************************************************************/
+
+
+#ifndef  _L4BPDN_L4C_STRUCT_H
+#define  _L4BPDN_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "ddm_common_struct.h"
+
+#if 1 /* General purpose AT-CMD message */
+/*********************************************************************************************************
+ *     General purpose AT-CMD: Start                                                                     *
+ *********************************************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_common_header_req_struct cmd;
+} l4bpdn_l4c_cmd_common_header_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_cmd_cnf_struct cmd;
+
+    /* In the above field (cmd), 
+     * if cmd.is_success == KAL_FALSE, the cmd.err_cause is a converted cause according to 27.007. 
+     * The below original_cause is an "unconverted" counterpart for reference. */
+    kal_bool          is_original_cause_from_3gpp_present;  /* True: If (cmd.is_success == KAL_FALSE) AND (is from 3GPP MD) */
+    ps_cause_enum     original_cause_from_3gpp;             /* Valid if is_original_cause_from_3gpp_present == KAL_TRUE */
+
+} l4bpdn_l4c_cmd_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    
+    at_cgev_ind_struct cmd;
+    
+    /* True:  If (event is CGEV_EVENT_NW_PDN_DEACT or CGEV_EVENT_NW_DEACT or CGEV_EVENT_NW_REACT) AND (the CGEV is from 3GPP) 
+     * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+    kal_bool      is_cgev_deact_cause_from_3gpp;
+    ps_cause_enum cgev_deact_cause;
+
+    /* True:  If (event is CGEV_EVENT_NW_MODIFY) AND (the CGEV is from 3GPP) 
+     * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+    kal_bool      is_cgev_modify_cause_from_3gpp; 
+    ps_cause_enum cgev_modify_cause; 
+
+} l4bpdn_l4c_cgev_ind_struct;
+/*********************************************************************************************************
+ *     General purpose AT-CMD: End                                                                       *
+ *********************************************************************************************************/
+#endif 
+
+#if 1 /* MSG: L4PBDN -> L4C */
+/*********************************************************************************************************
+ *     MSG: L4PBDN -> L4C: Start                                                                         *
+ *********************************************************************************************************/
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgpiaf_req_struct cmd; 
+} l4bpdn_l4c_cgpiaf_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    kal_uint8     							cid;
+	at_token_parse_result_enum              cached_ff03_present;
+    kal_uint8                               cached_ff03;                                                          // integer type 
+} l4bpdn_l4c_nw_applied_cache_data_notify_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdcont_req_struct cmd; 
+    kal_uint8 psi;
+
+    /* Used for SSC Mode 3 PDU session re-restablishment in 5G. */
+    kal_bool  old_psi_present; 
+    kal_uint8 old_psi;    
+
+    /* Used for L4 two params (URSP requirement). 
+     * Condition: 
+     * - If current is 5G-RAT and VGPDP/VGAPN is present (AT_TOKEN_PARSE_RESULT_OK) 
+         -> Use the corresponding parameters in below 
+     * - Otherwise: (non-5G-RAT or in 5G but VGPDP/VGAPN is NOT AT_TOKEN_PARSE_RESULT_OK
+         -> Use paramters in the above cmd (i.e., the normal CGDCONT command) . */
+    at_token_parse_result_enum              VGPDP_type_parse_result;
+    kal_uint8                               VGPDP_type[PDP_TYPE_STRING_LEN];                                      // string type
+    at_token_parse_result_enum              VGAPN_parse_result;
+    kal_uint8                               VGAPN[APN_STRING_LEN];                                                // string type
+
+    /* use to indicate is this dnn in ladn list */
+    at_token_parse_result_enum              ladn_dnn_present;
+    kal_uint8                               ladn_dnn;                                                             // integer type
+    
+} l4bpdn_l4c_cgdcont_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdscont_req_struct cmd; 
+} l4bpdn_l4c_cgdscont_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtft_req_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_cgtft_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqreq_req_struct cmd; 
+} l4bpdn_l4c_cgqreq_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqmin_req_struct cmd; 
+} l4bpdn_l4c_cgqmin_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqreq_req_struct cmd; 
+} l4bpdn_l4c_cgeqreq_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqmin_req_struct cmd; 
+} l4bpdn_l4c_cgeqmin_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqneg_req_struct cmd; 
+} l4bpdn_l4c_cgeqneg_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgact_req_struct cmd; 
+    ddm_apn_type_enum apn_type;
+} l4bpdn_l4c_cgact_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgcmod_req_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_cgcmod_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdata_req_struct cmd; 
+} l4bpdn_l4c_cgdata_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgpaddr_req_struct cmd; 
+} l4bpdn_l4c_cgpaddr_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauto_req_struct cmd; 
+} l4bpdn_l4c_cgauto_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgans_req_struct cmd; 
+} l4bpdn_l4c_cgans_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgerep_req_struct cmd; 
+} l4bpdn_l4c_cgerep_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgcontrdp_req_struct cmd; 
+} l4bpdn_l4c_cgcontrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgscontrdp_req_struct cmd; 
+} l4bpdn_l4c_cgscontrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtftrdp_req_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_cgtftrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqos_req_struct cmd; 
+} l4bpdn_l4c_cgeqos_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqosrdp_req_struct cmd; 
+} l4bpdn_l4c_cgeqosrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqos_req_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_c5gqos_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqosrdp_req_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_c5gqosrdp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdel_req_struct cmd; 
+} l4bpdn_l4c_cgdel_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauth_req_struct cmd; 
+    kal_uint8 psi;
+} l4bpdn_l4c_cgauth_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cladn_req_struct cmd; 
+} l4bpdn_l4c_cladn_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_ecncfg_req_struct cmd; 
+} l4bpdn_l4c_ecncfg_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egdcont_req_struct cmd; 
+    kal_uint8 psi;
+} l4bpdn_l4c_egdcont_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_vzwapnetmr_req_struct cmd; 
+} l4bpdn_l4c_vzwapnetmr_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_vzwapne_req_struct cmd; 
+} l4bpdn_l4c_vzwapne_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egpau_req_struct cmd; 
+} l4bpdn_l4c_egpau_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egact_req_struct cmd; 
+    ddm_apn_type_enum apn_type;
+} l4bpdn_l4c_egact_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgsdata_req_struct cmd; 
+} l4bpdn_l4c_cgsdata_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_acttest_req_struct cmd; 
+} l4bpdn_l4c_acttest_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_psbearer_req_struct cmd; 
+} l4bpdn_l4c_psbearer_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egfb_req_struct cmd; 
+} l4bpdn_l4c_egfb_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egld_req_struct cmd; 
+} l4bpdn_l4c_egld_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egdelpf_req_struct cmd; 
+} l4bpdn_l4c_egdelpf_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_eglnkpf_req_struct cmd; 
+} l4bpdn_l4c_eglnkpf_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egpcordp_req_struct cmd; 
+} l4bpdn_l4c_egpcordp_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+ 
+    at_egpco_req_struct cmd; 
+    kal_uint8 psi;
+} l4bpdn_l4c_egpco_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_edallow_req_struct cmd; 
+} l4bpdn_l4c_edallow_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 sim_slot_id;
+} l4bpdn_l4c_set_default_sim_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    kal_uint8 cid; 
+} l4bpdn_l4c_pdn_revive_req_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    kal_uint8 cid; 
+} l4bpdn_l4c_pdn_revive_abort_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    kal_bool      is_success;
+    kal_uint8     lte_attach_cid; /* used if (is_success == KAL_TRUE)  */
+    ps_cause_enum err_cause;      /* used if (is_success == KAL_FALSE) */
+} l4bpdn_l4c_lte_attach_pdn_define_needed_rsp_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    kal_bool is_ims_roaming_enable;
+} l4bpdn_l4c_set_eimsroam_config_value_req_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eapnsync_req_struct cmd; 
+} l4bpdn_l4c_eapnsync_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_evzwapfcia_req_struct cmd; 
+} l4bpdn_l4c_evzwapfcia_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eggrntrspt_req_struct cmd; 
+} l4bpdn_l4c_eggrntrspt_req_struct;
+
+
+
+/*********************************************************************************************************
+ *     MSG: L4PBDN -> L4C: End                                                                           *
+ *********************************************************************************************************/
+#endif
+
+#if 1 /* MSG: L4C -> L4BPDN */
+/*********************************************************************************************************
+ *     MSG: L4C -> L4BPDN: Start                                                                         *
+ *********************************************************************************************************/
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdcont_ind_struct cmd; 
+
+    kal_uint8 psi;
+
+    kal_bool  old_psi_present;
+    kal_uint8 old_psi;
+
+    kal_bool  vgpdp_type_present;
+    kal_uint8 vgpdp_type[PDP_TYPE_STRING_LEN]; // string type
+    kal_bool  vgapn_present;
+    kal_uint8 vgapn[MAX_APN_LEN]; // string type
+} l4bpdn_l4c_cgdcont_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdscont_ind_struct cmd; 
+} l4bpdn_l4c_cgdscont_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtft_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_cgtft_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqreq_ind_struct cmd; 
+} l4bpdn_l4c_cgqreq_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgqmin_ind_struct cmd; 
+} l4bpdn_l4c_cgqmin_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqreq_ind_struct cmd; 
+} l4bpdn_l4c_cgeqreq_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqmin_ind_struct cmd; 
+} l4bpdn_l4c_cgeqmin_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqneg_ind_struct cmd; 
+} l4bpdn_l4c_cgeqneg_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgact_ind_struct cmd; 
+} l4bpdn_l4c_cgact_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgpaddr_ind_struct cmd; 
+} l4bpdn_l4c_cgpaddr_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauto_ind_struct cmd; 
+} l4bpdn_l4c_cgauto_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgerep_ind_struct cmd; 
+} l4bpdn_l4c_cgerep_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgcontrdp_ind_struct cmd; 
+} l4bpdn_l4c_cgcontrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgscontrdp_ind_struct cmd; 
+} l4bpdn_l4c_cgscontrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgtftrdp_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_cgtftrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqos_ind_struct cmd; 
+} l4bpdn_l4c_cgeqos_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgeqosrdp_ind_struct cmd; 
+} l4bpdn_l4c_cgeqosrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqos_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_c5gqos_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_c5gqosrdp_ind_struct cmd; 
+    kal_uint8 qfi;
+} l4bpdn_l4c_c5gqosrdp_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgdel_ind_struct cmd; 
+} l4bpdn_l4c_cgdel_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cgauth_ind_struct cmd;
+} l4bpdn_l4c_cgauth_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cladn_ind_struct cmd;
+    kal_bool         num_of_ladn_info_present;
+    kal_uint8        num_of_ladn_info;
+    kal_bool         ladn_info_present;
+    ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4bpdn_l4c_cladn_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_cladnu_ind_struct cmd;
+    kal_bool         num_of_ladn_info_present;
+    kal_uint8        num_of_ladn_info;
+    kal_bool         ladn_info_present;
+    ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4bpdn_l4c_cladnu_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_psbearer_ind_struct cmd; 
+} l4bpdn_l4c_psbearer_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egfb_ind_struct cmd; 
+} l4bpdn_l4c_egfb_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egdelpf_ind_struct cmd; 
+} l4bpdn_l4c_egdelpf_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_eglnkpf_ind_struct cmd; 
+} l4bpdn_l4c_eglnkpf_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_egpcordp_ind_struct cmd; 
+} l4bpdn_l4c_egpcordp_ind_struct;
+
+ typedef struct { 
+      LOCAL_PARA_HDR 
+  
+    at_egpco_ind_struct cmd; 
+ } l4bpdn_l4c_egpco_ind_struct;
+
+ typedef struct {
+    LOCAL_PARA_HDR
+    gmss_rat_enum                   gmss_rat;
+    gmss_selected_rat_status_enum   status;
+    kal_bool                        is_ehrpd;      /* Indicate if PS type is EHRPD if current RAT is HRPD */
+} l4bpdn_l4c_rat_select_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    kal_uint8 cid; 
+    kal_bool is_success;
+    ps_cause_enum err_cause; 
+} l4bpdn_l4c_pdn_revive_cnf_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    kal_uint8 cid; 
+    kal_bool is_success;
+    ps_cause_enum err_cause;     
+} l4bpdn_l4c_pdn_revive_abort_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+
+} l4bpdn_l4c_lte_attach_needed_ind_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    plmn_id_struct current_plmn_id; 
+} l4bpdn_l4c_lte_attach_pdn_define_needed_ind_struct; 
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_vzwapne_ind_struct cmd;
+} l4bpdn_l4c_vzwapne_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_vzwapnetmr_ind_struct cmd;
+}l4bpdn_l4c_vzwapnetmr_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    
+    kal_uint32 dummy;
+} l4bpdn_l4c_cmd_not_yet_support_ind_struct; /* Only for UT */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    
+    kal_uint8 lte_attach_cid;
+    kal_bool cause2_present;
+    ps_cause_enum cause2;
+    pdp_addr_type_enum nw_applied_pdp_type;
+} l4bpdn_l4c_lte_attach_pdn_activate_success_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    
+    kal_uint8 lte_attach_cid;
+    ps_cause_enum cause;
+    kal_bool is_change_to_apn_class_present;
+    kal_uint8 change_to_apn_class;
+} l4bpdn_l4c_lte_attach_pdn_activate_failure_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eapnsync_ind_struct cmd; 
+} l4bpdn_l4c_eapnsync_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_evzwapfcia_ind_struct cmd; 
+} l4bpdn_l4c_evzwapfcia_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_eggrntrspt_ind_struct cmd; 
+} l4bpdn_l4c_eggrntrspt_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    at_escontind_ind_struct cmd; 
+} l4bpdn_l4c_escontind_ind_struct;
+
+typedef struct { 
+    LOCAL_PARA_HDR 
+
+    at_escontind_req_struct cmd; 
+} l4bpdn_l4c_escontind_req_struct;
+/*********************************************************************************************************
+ *     MSG: L4C -> L4BPDN: End                                                                         *
+ *********************************************************************************************************/
+#endif
+
+#endif /* _L4BPDN_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4bpdn_tcm_struct.h b/mcu/protocol/interface/l4misc/l4bpdn_tcm_struct.h
new file mode 100644
index 0000000..4389ba3
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bpdn_tcm_struct.h
@@ -0,0 +1,410 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4bpdn_tcm_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 09 22 2021 stun.wu
+ * [MOLY00728968] [ZM62] AT+EGPCO to get MSISDN
+ *
+ * 09 17 2021 judy.zhu
+ * [MOLY00704256] [VzW] 5G Ultra Wideband icon display
+ * 	
+ * 	Patch back from NR15.R3.MP branch
+ * 	.
+ *
+ * 09 08 2021 judy.zhu
+ * [MOLY00704256] [VzW] 5G Ultra Wideband icon display
+ * 	
+ * 	[VzW]5G Ultra Wideband icon display feature patch back
+ * 	
+ * 	.
+ *
+ * 04 19 2019 yu-hsin.lin
+ * [MOLY00399993] [Gen97][VMOLY] interworking withN26 features
+ * [MPD][Code] merge from 7781298, l4 ps with n26
+ *
+ * 03 26 2019 yu-hsin.lin
+ * [MOLY00393456] [Gen97][VMOLY] 45G InterRAT & interSystem feature
+ * [VMOLY][MPD][Interface] L4_PS Gen97 irat withou n26
+ *
+ * 12 14 2018 poying.chuang
+ * [MOLY00372635] [VMOLY] L4/TCM/TFTLIB/VGSM phase2 check-in
+ * 	
+ * 	- [L4] Phase 2 - Interfaces .
+ *
+ * 08 17 2018 poying.chuang
+ * [MOLY00346763] [6297] Gen97 L4 PS Check-In
+ * 	
+ * 	- interfaces .
+ *
+ * 05 21 2018 praveen.komatiguntla
+ * [MOLY00327084] [EIGER][MT3967]PS Data Off feature: PDP Modify procedure to update the PS Data Off Statusto NW side.
+ * PS Data off feature - L4/TCM changes.
+ *
+ * 12 11 2017 poying.chuang
+ * [MOLY00294886] [MT6763][Bianco][O1][MP2][TMO][simulator][in-house][Anritsu][Protocol_IMS & VoLTE][50905][L_IMS_VoLTE_6752_1]
+ * .
+ *
+ * 04 05 2017 poying.chuang
+ * [MOLY00209737] [MT6293] LWTG and C2K L4 integration check in
+ * [M3] Merge CL up to 3677934 - interface .
+ *
+ * 02 20 2017 poying.chuang
+ * [MOLY00209737] [MT6293] LWTG and C2K L4 integration check in
+ * 	
+ * 	- [M2] l4bpdn/tcm - interface (up to CL 3474533) .
+ *
+ ****************************************************************************/
+
+
+#ifndef  _L4BPDN_TCM_STRUCT_H
+#define  _L4BPDN_TCM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "tftlib_common_enum.h"
+#include "tftlib_common_struct.h"
+
+#include "ps_public_enum_public.h"
+#include "l3_inc_enums_public.h"
+#include "ps_public_struct.h"
+
+
+#if __GROUP_L4BPDN_TCM_INTERFACE_DEFINE_AND_SUB_STRUCT__ || 1
+
+#define L4BPDN_TCM_PCSCF_4_TO_8_SIZE 5
+#define L4BPDN_TCM_BEARER_NUM 15
+
+#define L4BPDN_TCM_PDU_ADDR_LIFETIME_SIZE 2
+
+typedef struct {
+    pdp_addr_type_enum type;
+    pdp_addr_len_enum  len;
+    kal_uint8          val[IPV4V6_ADDR_LEN];
+} l4bpdn_tcm_ip_addr_struct;
+
+typedef struct {
+    kal_uint8 mcc1;
+    kal_uint8 mcc2;
+    kal_uint8 mcc3; 
+    kal_uint8 mnc1;
+    kal_uint8 mnc2; 
+    kal_uint8 mnc3; 
+} l4bpdn_tcm_plmn_id_struct;
+
+typedef struct {
+    kal_uint8 context_id;   /* CID */
+
+    /**
+     * In 5G, indicate PDU session id 
+     * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+    kal_uint8   pdu_session_id;
+   
+    /** 
+     * In 5G, indicate QoS flow id (qfi) 
+     * Otherwise, indicate nsapi(23G) or ebi(4G) */
+    kal_uint8   bearer_id;
+
+    ps_cause_enum cause;
+} l4bpdn_tcm_deact_id_struct;
+
+typedef struct {
+    kal_uint8   apn_length;
+    kal_uint8   apn[MAX_APN_LEN];
+    kal_bool    src_addr_sb_net_mask_present;
+    kal_uint8   src_addr_sb_net_mask[IPV4_ADDR_LEN * 2];
+    kal_bool    ipv6_src_addr_sb_net_mask_present;
+    kal_uint8   ipv6_src_addr_sb_net_mask[IPV6_ADDR_LEN * 2];
+    kal_bool    gw_addr_present;
+    kal_uint8   gw_addr[IPV4_ADDR_LEN];
+    kal_bool    ipv6_gw_addr_present;
+    kal_uint8   ipv6_gw_addr[IPV6_ADDR_LEN];
+    kal_bool    dns_present;
+    kal_uint8   dns[IPV4_ADDR_LEN];
+    kal_bool    dns2_present;
+    kal_uint8   dns2[IPV4_ADDR_LEN];
+    kal_bool    dns3_present;
+    kal_uint8   dns3[IPV4_ADDR_LEN];    
+    kal_bool    ipv6_dns_present;
+    kal_uint8   ipv6_dns[IPV6_ADDR_LEN];
+    kal_bool    ipv6_dns2_present;
+    kal_uint8   ipv6_dns2[IPV6_ADDR_LEN];
+    kal_bool    ipv6_dns3_present;
+    kal_uint8   ipv6_dns3[IPV6_ADDR_LEN];    
+    kal_bool    p_cscf_prim_addr_present;
+    kal_uint8   p_cscf_prim_addr[IPV4_ADDR_LEN];
+    kal_bool    p_cscf_sec_addr_present;
+    kal_uint8   p_cscf_sec_addr[IPV4_ADDR_LEN];
+    kal_bool    p_cscf_third_addr_present;
+    kal_uint8   p_cscf_third_addr[IPV4_ADDR_LEN];
+    kal_bool    ipv6_p_cscf_prim_addr_present;
+    kal_uint8   ipv6_p_cscf_prim_addr[IPV6_ADDR_LEN];
+    kal_bool    ipv6_p_cscf_sec_addr_present;
+    kal_uint8   ipv6_p_cscf_sec_addr[IPV6_ADDR_LEN];
+    kal_bool    ipv6_p_cscf_third_addr_present;
+    kal_uint8   ipv6_p_cscf_third_addr[IPV6_ADDR_LEN];
+    kal_bool    im_cn_signalling_flag_present;
+    kal_uint8   im_cn_signalling_flag;
+    kal_bool    lipa_indication_present; // indicates that the PDP context provides connectivity using a LIPA PDN connection
+    kal_uint8   lipa_indication;
+    kal_bool    v4_mtu_present;          // shows the IPv4 MTU size in octets 
+    kal_uint16  v4_mtu;
+    kal_bool    wlan_offload_present;    // indicates whether traffic can be offloaded using the specified PDN connection via a WLAN or not 
+    kal_uint8   wlan_offload;
+    kal_bool    local_addr_ind_present;  // indicates whether or not the MS and the network support local IP address in TFTs 
+    kal_uint8   local_addr_ind;
+    kal_bool    p_cscf_fourth_to_eighth_addr_present[L4BPDN_TCM_PCSCF_4_TO_8_SIZE];         //add for CT support 8 p-cscf address requirement
+    kal_uint8   p_cscf_fourth_to_eighth_addr[L4BPDN_TCM_PCSCF_4_TO_8_SIZE][IPV4_ADDR_LEN];  //add for CT support 8 p-cscf address requirement
+    kal_bool    ipv6_p_cscf_fourth_to_eighth_addr_present[L4BPDN_TCM_PCSCF_4_TO_8_SIZE];        //add for CT support 8 p-cscf address requirement
+    kal_uint8   ipv6_p_cscf_fourth_to_eighth_addr[L4BPDN_TCM_PCSCF_4_TO_8_SIZE][IPV6_ADDR_LEN]; //add for CT support 8 p-cscf address requirement
+    kal_bool    ps_data_off_support_present; 
+    kal_uint8   ps_data_off_support;
+    kal_bool                    ssc_mode_present;
+    l4c_tcm_ssc_mode_enum       ssc_mode;
+    kal_bool                    s_nssai_present;
+    l4c_tcm_s_nssai_struct      s_nssai; 
+    kal_bool                    access_type_present;
+    l4c_tcm_access_type_enum    access_type; 
+    kal_uint32                  rq_timer_value_in_sec;
+    l4c_tcm_always_on_pdu_enum  always_on_pdu_by_nw;
+} l4bpdn_tcm_pdp_rdp_info_struct;
+
+typedef struct {
+    /* v4 dns -> Contained in l4bpdn_tcm_prim_pdp_rdp_info_struct */ 
+    /* v6 dns -> Contained in l4bpdn_tcm_prim_pdp_rdp_info_struct */ 
+    /* v4 mtu -> Contained in l4bpdn_tcm_prim_pdp_rdp_info_struct */ 
+
+    kal_bool  msisdn_present;
+    kal_uint8 msisdn[MAX_MSISDN_LEN];
+    kal_uint8 msisdn_len;
+
+    /* pdu address lifetime */
+    kal_bool  pdu_addr_lifetime_present;
+    kal_uint8 pdu_addr_lifetime[L4BPDN_TCM_PDU_ADDR_LIFETIME_SIZE]; 
+
+    /**************************************** 
+     * Operator Specific PCOs in VZW: Start *
+     ****************************************/
+    /* 0xFF00 */ 
+    kal_bool pdn_application_access_control_present; 
+    l4bpdn_tcm_plmn_id_struct pdn_application_access_control_plmnid;
+    kal_uint8 pdn_application_access_control_action;
+
+    /* 0xFF01 */ 
+    kal_bool epdg_v6_plmnid_present;
+    l4bpdn_tcm_plmn_id_struct epdg_v6_plmnid; 
+    kal_bool  epdg_v6_addr_present;
+    kal_uint8 epdg_v6_addr[IPV6_ADDR_LEN];
+    kal_bool  epdg_v6_addr2_present;
+    kal_uint8 epdg_v6_addr2[IPV6_ADDR_LEN];
+
+    /* 0xFF02 */
+    kal_bool  epdg_v4_plmnid_present; 
+    l4bpdn_tcm_plmn_id_struct epdg_v4_plmnid; 
+    kal_bool  epdg_v4_addr_present;
+    kal_uint8 epdg_v4_addr[IPV4_ADDR_LEN];
+    kal_bool  epdg_v4_addr2_present;
+    kal_uint8 epdg_v4_addr2[IPV4_ADDR_LEN];
+
+    /* 0xFF03 */
+    kal_bool  vzw_5guw_present; 
+    kal_uint8 vzw_5guw; 
+    /**************************************** 
+     * Operator Specific PCOs in VZW: End   *
+     ****************************************/
+} l4bpdn_tcm_pco_rdp_info_struct;
+
+#endif // __GROUP_L4BPDN_TCM_INTERFACE_DEFINE_AND_SUB_STRUCT__
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 context_id;
+
+    /**
+     * Indicate how to interpret the below ids: pdu_session_id, bearer_id, linked_bearer_id */
+    kal_bool is_5g_id; 
+
+    /** 
+     * In 5G, indicate PDU session id 
+     * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+    kal_uint8 pdu_session_id;
+   
+    /**
+     * In 5G, indicate QoS flow id (qfi) 
+     * Otherwise, indicate nsapi(23G) or ebi(4G) */
+    kal_uint8 bearer_id;
+
+    /** 
+     * If the PDP is secondary, indicate UPCM which primary PDP context the bearer is linked with. 
+     * If the PDP is primary, indicate the linked_nspai = nsapi.
+     * If in 5G, indicate the qfi which contains default qos rule */
+    kal_uint8 linked_bearer_id;
+
+    /**
+     * TFTLIB output: pkt_filter_act_list_struct  
+     * - Needs to convert to pkt_filters_act_list_node_struct for UPCM use 
+     * - In 5G, the conversion is done by VGSM 
+     * - In 234G, the conversions are done by UGTCM and ETCM, respectively */
+    pkt_filters_act_list_node_struct *pf_action_list_node;
+
+    /* Address acquired by PDP context activation. */
+    l4bpdn_tcm_ip_addr_struct ip_addr;
+
+    kal_bool pdp_rdp_present;
+    l4bpdn_tcm_pdp_rdp_info_struct pdp_rdp;
+} l4bpdn_tcm_bearer_act_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8                  bearer_num;          /* indicate number of nsapi/EBI entries carried in deact_nsapi_list.*/
+    l4bpdn_tcm_deact_id_struct deact_id_list[L4BPDN_TCM_BEARER_NUM];   /* CID/NSAPI/EBI list of the deactivated PDP contexts*/
+} l4bpdn_tcm_bearer_deact_ind_struct;
+
+typedef struct {
+    kal_uint8 context_id;
+
+    /**
+     * Indicate how to interpret the below ids: pdu_session_id, bearer_id, linked_bearer_id */
+    kal_bool is_5g_id; 
+
+    /** 
+     * In 5G, indicate PDU session id 
+     * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+    kal_uint8 pdu_session_id;
+   
+    /**
+     * In 5G, indicate QoS flow id (qfi) 
+     * Otherwise, indicate nsapi(23G) or ebi(4G) */
+    kal_uint8 bearer_id;
+
+    /** 
+     * If the PDP is secondary, indicate UPCM which primary PDP context the bearer is linked with. 
+     * If the PDP is primary, indicate the linked_nspai = nsapi.
+     * If in 5G, indicate the qfi which contains default qos rule */
+    kal_uint8 linked_bearer_id;
+
+    /**
+     * TFTLIB output: pkt_filter_act_list_struct  
+     * - Needs to convert to pkt_filters_act_list_node_struct for UPCM use 
+     * - In 5G, the conversion is done by VGSM 
+     * - In 234G, the conversions are done by UGTCM and ETCM, respectively */
+    pkt_filters_act_list_node_struct *pf_action_list_node;
+
+    /* Address acquired by PDP context activation. */
+    l4bpdn_tcm_ip_addr_struct ip_addr;
+
+    kal_bool pdp_rdp_present;
+    l4bpdn_tcm_pdp_rdp_info_struct pdp_rdp;
+} l4bpdn_tcm_act_id_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    /* Indicate UPCM the packet filter modification is triggered by which PDP context/EPS bearer context */
+    kal_uint8 context_id;
+
+    /**
+     * Indicate how to interpret the below ids: pdu_session_id, bearer_id, linked_bearer_id */
+    kal_bool is_5g_id; 
+
+    /**
+     * In 5G, indicate PDU session id 
+     * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+    kal_uint8 pdu_session_id;
+
+    /**
+     * In 5G, indicate QoS flow id (qfi) 
+     * Otherwise, indicate nsapi(23G) or ebi(4G) */    
+    kal_uint8 bearer_id;
+
+    /**
+     * TFTLIB output: pkt_filter_act_list_struct  
+     * - Needs to convert to pkt_filters_act_list_node_struct for UPCM use 
+     * - In 5G, the conversion is done by VGSM 
+     * - In 234G, the conversions are done by UGTCM and ETCM, respectively */
+    pkt_filters_act_list_node_struct *pf_action_list_node;
+} l4bpdn_tcm_pf_update_ind_struct;
+
+/* Use this ILM to update PCO RDP info 
+ * when it is changed by activate/modify/deactivate procedures */
+typedef struct {
+    LOCAL_PARA_HDR 
+
+    kal_uint8 context_id;
+
+    l4bpdn_tcm_pco_rdp_info_struct pco_rdp;
+
+    kal_bool pdp_rdp_present;
+    l4bpdn_tcm_pdp_rdp_info_struct pdp_rdp;
+
+} l4bpdn_tcm_pco_rdp_update_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR 
+    
+    kal_uint8                        deact_bearer_num;                         /* indicate number of nsapi/EBI entries carried in deact_bearer_list.*/
+    l4bpdn_tcm_deact_id_struct       deact_bearer_list[L4BPDN_TCM_BEARER_NUM]; /* CID/NSAPI/EBI list of the deactivated PDP contexts*/
+
+    kal_bool                         is_4g5_irat;
+    
+    kal_uint8                        act_bearer_num;                           /* indicate number of nsapi/EBI entries carried in act_bearer_list.*/
+    l4bpdn_tcm_act_id_struct         act_bearer_list[L4BPDN_TCM_BEARER_NUM];   /* CID/NSAPI/EBI list of the activated PDP contexts*/
+
+} l4bpdn_tcm_45g_irat_bearer_update_ind_struct;
+
+#endif /* _L4BPDN_TCM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4bpwr_l4c_struct.h b/mcu/protocol/interface/l4misc/l4bpwr_l4c_struct.h
new file mode 100644
index 0000000..f018e33
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bpwr_l4c_struct.h
@@ -0,0 +1,161 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l4bnw_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:Allen Hsu
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 07 19 2021 johnny.ding
+ * [MOLY00648557] [MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ * 	
+ * 	porting code.
+ *
+ * 07 13 2021 johnny.ding
+ * [MOLY00648557] [MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ * 	
+ * 	porting code.
+ *
+ * 04 21 2021 cosmo.sung
+ * [MOLY00648557] [Blocking][MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ * 	
+ * 	.
+ *
+ * 04 16 2021 cosmo.sung
+ * [MOLY00648557] [Blocking][MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ * 	
+ * 	.
+ *
+ * 09 21 2020 chun-yu.chien
+ * [MOLY00569501] [Gen97] TC10 patch back
+ * 	
+ * 	trigger auto sync to fix TC10 build error (remove redundant space)
+ *
+ * 08 25 2020 titi.wu
+ * [MOLY00561872] [SQC Excluded][MCF Sanity] [Colgin][MT6880_EVB(NLWG)]  MCF set OPOTA file fail
+ * dummy check-in for T700
+ *
+ * 02 18 2019 lucien.li
+ * [MOLY00384683] [SML] Single Modem Bin SIM ME Lock
+ * [Subsidy Lock][L4]
+ *
+ * 10 31 2017 lucien.li
+ * [MOLY00286407] [L4 & DDM] EGTYPE refactoring
+ * [R3] L4C PS action control enhancement
+ *
+ * 09 15 2017 wenxiu.zhao
+ * [MOLY00275991] [CMCC][6293]OP01 LOCK support- L4C part
+ * .l4c-15
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _L4BPWR_L4C_STRUCT_H
+#define  _L4BPWR_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l4c_common_enum.h"
+
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool sim_lock;
+    kal_bool rat_lock;
+    l4_op01_action_enum op01_action;
+}l4bpwr_l4c_op01_lock_req_struct; 
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool result;//reseved
+}l4bpwr_l4c_op01_lock_cnf_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    /* bitmap: each bit represents one protocol
+       1: PS 1 / 2: PS 2  /  3: PS 1 + PS 2  ....
+    */
+    kal_uint8 target_ps;
+} l4bpwr_l4c_service_mode_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    /* L4 might add new parameters here in future  */
+} l4bpwr_l4c_service_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_bool  result;
+    kal_uint8 cause;    // (Reserved field)
+} l4bpwr_l4c_service_mode_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 efun_state;
+} l4bpwr_l4c_auto_startup_ind_struct;
+
+#if defined(__NR_SA__) && defined(__NR_PLUS_L_ONLY__)
+typedef struct{
+    LOCAL_PARA_HDR
+    vg_option_enum vg_option;
+}l4bpwr_l4c_5gopt_set_req_struct; 
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool result;
+}l4bpwr_l4c_5gopt_set_cnf_struct;
+#endif
+#endif /* _L4BNW_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h b/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h
new file mode 100644
index 0000000..7da68e5
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h
@@ -0,0 +1,1264 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l4c2csm_cc_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+*  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) 2002
+*
+*******************************************************************************
+ *  FILENAME : l4c2csm_cc_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2CSM_CC_STRUCT_H
+#define _L4C2CSM_CC_STRUCT_H
+
+//#include "ps2sat_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_common_enum.h"
+//#include "csmcc_enums.h"
+#include "csmcc_common_enums.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+//pohan,For CMCC AT command requirement
+#include "csmcc_atfunc.h"
+#include "sim_public_enum.h"
+#include "kal_public_defs.h"
+
+
+typedef enum
+{
+  RDN_ALLOWED,
+  RDN_RESTRICTED,
+  RDN_UNAVAILABLE,
+  RDN_RESTRICTEDADDR
+} l4ccsm_cc_rdn_enum;
+
+typedef enum
+{
+  CNAP_ALLOWED,
+  CNAP_RESTRICTED,
+  CNAP_UNAVAILABLE,
+  CNAP_RESTRICTEDNAME
+} l4ccsm_cc_cnap_enum;
+
+typedef enum
+{
+  BSC_BS,
+  BSC_TS
+} l4ccsm_cc_bsc_enum;
+
+typedef enum
+{
+   CALL_RETRIEVED,
+   CALL_ONHOLD
+} l4ccsm_cc_hold_ind_enum;
+
+typedef enum
+{
+   ECT_ALERTING,
+   ECT_ACTIVE
+} l4ccsm_cc_ect_state_enum;
+
+typedef enum
+{
+   GEN_UNRECOGNIZED_COMP,
+   GEN_MISTYPED_COMP,
+   GEN_BAD_STRUCT_COMP
+} l4ccsm_cc_ss_gen_prob_enum;
+
+typedef enum
+{
+   INV_DUP_INV_ID,
+   INV_UNRECOGNIZED_OP,
+   INV_MISTYPED_PARA,
+   INV_RESOURCE_LIMIT,
+   INV_INIT_RELEASE,
+   INV_UNRECOGNIZED_LINK_ID,
+   INV_LINK_ID_RSP_UNEXPECTED,
+   INV_UNEXPECTED_LINK_OP
+} l4ccsm_cc_ss_inv_prob_enum;
+
+typedef enum
+{
+   RR_UNRECOGNIZED_INV_ID,
+   RR_UNEXPECTED,
+   RR_MISTYPED_PARA
+} l4ccsm_cc_ss_rr_prob_enum;
+
+typedef enum
+{
+   RE_UNRECOGNIZED_INV_ID,
+   RE_UNEXPECTED,
+   RE_UNRECOGNIZED_ERROR,
+   RE_UNEXPECTED_ERROR,
+   RE_MISTYPED_PARA
+} l4ccsm_cc_ss_re_prob_enum;
+
+typedef enum
+{
+   L4C_MODIFY_CMD_NONE,
+   L4C_MODIFY_ATA,
+   L4C_MODIFY_ATD
+} l4ccsm_cc_modify_cmd_enum;
+
+typedef enum
+{
+   L4CCSM_CC_STARTUP_NVRAM,
+   L4CCSM_CC_STARTUP_SIM,
+   L4CCSM_CC_STARTUP_INVALID
+} l4ccsm_cc_startup_enum;    /* MAUI_01747506 separte startup to SIM and NVRAM */
+
+typedef enum
+{
+   L4C_SRVCC_CALL_MODE_VOICE,
+   L4C_SRVCC_CALL_MODE_VIDEO,
+   L4C_SRVCC_CALL_MODE_EMERGENCY,
+   L4C_SRVCC_CALL_MODE_VOICE_CONFERENCE,
+   L4C_SRVCC_CALL_MODE_VIDEO_CONFERENCE,
+   L4C_SRVCC_CALL_MODE_VOICE_CONFERENCE_PARTS, // conference voice call participant
+   L4C_SRVCC_CALL_MODE_VIDEO_CONFERENCE_PARTS, // conference video call participant
+   L4C_SRVCC_CALL_MODE_MAX
+} l4ccsm_srvcc_call_mode_enum;
+
+typedef enum
+{
+   L4C_SRVCC_CALL_DIRECTION_MO,
+   L4C_SRVCC_CALL_DIRECTION_MT,
+   L4C_SRVCC_CALL_DIRECTION_MAX
+} l4ccsm_srvcc_call_direction_enum;
+
+typedef enum
+{
+   L4C_SRVCC_CALL_STATE_EARLY,
+   L4C_SRVCC_CALL_STATE_EARLY_WITH_MEDIA,
+   L4C_SRVCC_CALL_STATE_ACTIVE,
+   L4C_SRVCC_CALL_STATE_ONHOLD,
+   L4C_SRVCC_CALL_STATE_PRE_ALERTING,
+   L4C_SRVCC_CALL_STATE_PRE_ALERTING_WITH_MEDIA,
+   L4C_SRVCC_CALL_STATE_ACTIVE_RETRY_CC_CONNECT,
+   L4C_SRVCC_CALL_STATE_MAX
+} l4ccsm_srvcc_call_state_enum;
+
+/* mtk01602: REL4, TS 24.008 Table 10.5.135d
+   Define Emergency Service Categories Enum */
+typedef enum
+{
+   SRVCC_ECC_CATEGORY_UNSPECIFIED = 0, 
+   SRVCC_ECC_CATEGORY_POLICE = 0x0001,
+   SRVCC_ECC_CATEGORY_AMBULANCE = 0x0002,
+   SRVCC_ECC_CATEGORY_FIRE_BRIGADE = 0x0004,
+   SRVCC_ECC_CATEGORY_MARINE_GUARD = 0x0008,
+   SRVCC_ECC_CATEGORY_MOUNTAIN_RESCUE = 0x0010,
+   SRVCC_ECC_CATEGORY_GAS = 0x0100,
+   SRVCC_ECC_CATEGORY_ANIMAL = 0x0200,
+   SRVCC_ECC_CATEGORY_PHYSICIAN = 0x0400,   
+   SRVCC_ECC_CATEGORY_POISON = 0X0800,
+   SRVCC_ECC_CATEGORY_TRAFFIC = 0X1000,
+   SRVCC_ECC_CATEGORY_INVALID = 0XFFFF
+}l4ccsm_srvcc_ecc_category_enum;
+
+typedef struct {
+    kal_uint8 call_id;
+    l4ccsm_srvcc_call_mode_enum call_mode;
+    l4ccsm_srvcc_call_direction_enum call_dir;
+    l4ccsm_srvcc_call_state_enum call_state;
+    l4ccsm_srvcc_ecc_category_enum ecc_category;
+
+    kal_uint8 srvcc_number_type;
+    kal_bool srvcc_number_present;
+    kal_char srvcc_number[MAX_SIP_URI_LEN];
+    kal_bool srvcc_alpha_present;
+    kal_char srvcc_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+    kal_bool cli_present;
+    kal_uint8 cli;
+
+} l4ccsm_srvcc_call_cntxt_struct;
+
+typedef struct {
+    kal_uint8 addr_ind_present;
+    kal_uint8 addr_ind;
+    l4_addr_bcd_struct addr;
+} l4ccsm_cc_peer_addr_struct;
+
+typedef struct {
+    kal_uint8 sub_addr_len;
+    kal_uint8 sub_addr[21];
+} l4ccsm_cc_sub_addr_struct;
+
+typedef struct {
+    l4_addr_bcd_struct partyNumber;
+    kal_uint8 partyNumberSubaddress_present;
+    l4ccsm_cc_sub_addr_struct partyNumberSubaddress;
+} l4ccsm_cc_rdn_addr_struct;
+
+typedef struct {
+    kal_uint8 ect_rdn_present;
+    l4ccsm_cc_rdn_enum rdn_choice_tag;
+    union {
+        l4ccsm_cc_rdn_addr_struct presentationAllowedAddress;
+        kal_uint8 presentationRestricted;
+        kal_uint8 numberNotAvailableDueToInterworking;
+        l4ccsm_cc_rdn_addr_struct presentationRestrictedAddress;
+    } rdn_choice_value;
+} l4ccsm_cc_ect_rdn_struct;
+
+typedef struct {
+    kal_uint8 callingName_present;
+    l4ccsm_cc_cnap_enum callingName_choice_tag;
+    union {
+        l4_cnap_struct cnapPresentationAllowed;
+        l4_name_struct namePresentationAllowed;
+        kal_uint8 presentationRestricted;
+        kal_uint8 nameUnavailable;
+        l4_cnap_struct cnapPresentationRestricted;
+        l4_name_struct namePresentationRestricted;
+    } callingName_choice_value;
+} l4ccsm_cc_name_ind_struct;
+
+typedef struct {
+    kal_uint8 ccbs_index_present;
+    kal_uint8 ccbs_index;
+    kal_uint8 b_subscriberNumber_present;
+    l4_addr_bcd_struct b_subscriberNumber;
+    kal_uint8 b_subscriberSubaddress_present;
+    l4ccsm_cc_sub_addr_struct b_subscriberSubaddress;
+    kal_uint8 bs_code_present;
+    kal_uint8 bs_code;
+} l4ccsm_cc_ccbs_feature_struct;
+
+typedef struct {
+    kal_uint8 ccbs_feature_present;
+    l4ccsm_cc_ccbs_feature_struct ccbs_feature;
+    kal_uint8 alertingPattern_present;
+    kal_uint8 altertingPattern;    
+} l4ccsm_cc_ccbs_ind_struct;
+
+typedef struct {
+    kal_uint8 type;
+    kal_bool  ss_code_present;
+    kal_uint8 ss_code;
+    kal_bool  status_present;
+    kal_uint8 status;
+    kal_bool  notification_present;
+    kal_uint8 notification;
+    kal_uint16 cug_index;
+    l4ccsm_cc_ect_rdn_struct ect_rdn;
+    l4ccsm_cc_name_ind_struct name_ind;
+    l4ccsm_cc_ccbs_ind_struct ccbs_ind;
+} l4ccsm_cc_notify_ss_arg_struct;
+
+/*mtk01602, 053007: SATe Open Channel for CSD*/
+typedef struct {
+	kal_uint8  is_addr_present;
+	l4_addr_bcd_struct  addr;
+	kal_uint8   is_subaddr_present;
+	l4ccsm_cc_sub_addr_struct subaddr;
+	kal_uint8   is_user_id_present;
+	kal_uint8   user_id[32];
+	kal_uint8   is_user_pwd_present;
+	kal_uint8   user_pwd[32];
+	kal_uint8   is_local_addr_present;
+	kal_uint8   local_addr[16]; //To be confirmed, Nick set it as length 16
+	sat_csd_bearer_para_struct  sat_cbst; //refer 11.14 6.6.27; mandatory IE, no matter SIM provided or Default case.
+}l4ccsm_cc_sat_prof_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} l4ccsm_cc_dummy_local_para_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 init_type; /* MAUI_01747506 separte startup to SIM and NVRAM */
+} l4ccsm_cc_startup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 init_type; /* MAUI_01747506 separte startup to SIM and NVRAM */
+    kal_uint8 response;
+    kal_uint16 cause;
+} l4ccsm_cc_startup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 channel_mode;
+    kal_uint8 rat;    	
+    kal_uint8 irho_speech_on_off;
+} l4ccsm_cc_attach_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 rat;
+    kal_uint8 irho_speech_on_off;
+} l4ccsm_cc_detach_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4ccsm_cc_acm_reset_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 response;
+    kal_uint16 cause;
+} l4ccsm_cc_acm_reset_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint32 acmmax;
+} l4ccsm_cc_acmmax_set_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 response;
+    kal_uint16 cause;
+} l4ccsm_cc_acmmax_set_cnf_struct;
+
+/* MAUI_01938414 [CSMCC][Revise] support reset last ccm */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4ccsm_cc_last_ccm_reset_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} l4ccsm_cc_abort_call_req_struct;
+
+
+/* MAUI_01938414 [CSMCC][Revise] support reset last ccm */
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 result;
+   kal_uint8 error_cause; 
+} l4ccsm_cc_last_ccm_reset_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 digit_count;
+    kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];   
+} l4ccsm_cc_auto_dtmf_start_ind_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN. 
+   The extra last one entry is for null terminal. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_auto_dtmf_complete_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4_addr_bcd_struct redirect_num;
+    kal_uint8 redirect_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct redirect_sub_addr;
+} l4ccsm_cc_call_deflection_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_call_deflection_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id_present;
+    kal_uint8 call_id;
+    kal_uint8 crss_req;
+} l4ccsm_cc_crss_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id_present;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8  crss_req; //mtk01602, 070718
+} l4ccsm_cc_crss_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint32 ccm;
+    kal_uint32 acm;
+    kal_uint8 ccwv;
+} l4ccsm_cc_ccm_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 connected_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct connected_sub_addr;
+} l4ccsm_cc_call_accept_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_call_accept_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 alert;
+} l4ccsm_cc_call_alert_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 call_type;
+    kal_uint8 connected_number_present;
+    l4ccsm_cc_peer_addr_struct connected_number;
+    kal_uint8 connected_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct connected_sub_addr;
+} l4ccsm_cc_call_connect_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_call_disc_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_id;
+} l4ccsm_cc_rel_comp_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_mt_call_allowed;
+    kal_uint8 call_id;	
+    kal_uint8 seq_num;		
+    kal_uint16 reject_cause;
+} l4ccsm_cc_call_present_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 call_type;
+    kal_uint32 ccm;
+} l4ccsm_cc_call_disc_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4ccsm_cc_modify_cmd_enum modify_cmd;
+} l4ccsm_cc_call_modify_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cur_call_type;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_call_modify_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 cur_call_type;
+} l4ccsm_cc_call_modify_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 preempt_type;
+} l4ccsm_cc_call_preempt_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 call_type;    
+    kal_uint32 ccm;
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+} l4ccsm_cc_call_rel_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4_addr_bcd_struct called_number;
+    kal_uint8 called_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct called_sub_addr;
+    kal_uint8 cug_info;
+    kal_uint8 clir_info_present;
+    kal_uint8 clir_info;
+    kal_uint8 call_priority_present;
+    kal_uint8 call_priority;
+    kal_uint8 call_type;
+    kal_uint8 redial;
+    //kal_uint8 csd_prof_id;
+    sat_csd_bearer_para_struct sat_cbst;
+    kal_uint8 is_cell_lock_call; //[MAUI_00751970]	
+    kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+    kal_uint8 als_type; //MAUI_01647491 ALS_DIAL_BY_SETTING
+    kal_bool l4c_retry; //for_lv
+    kal_bool  is_ecall;
+    ecall_type_enum ecall_type; 
+} l4ccsm_cc_call_setup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id_present;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 call_type;    
+    sat_csd_bearer_para_struct sat_cbst;
+    kal_uint8 terminal_res;
+    kal_uint8 add_res;
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+} l4ccsm_cc_call_setup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 signal_value_present;
+    kal_uint8 signal_value;
+    kal_uint8 alerting_pattern_present;
+    kal_uint8 alerting_pattern;
+    kal_uint8 cw_flag;
+    kal_uint8 auto_answer;
+    kal_uint8 call_type;
+    kal_uint8 calling_number_present;
+    l4ccsm_cc_peer_addr_struct calling_number;
+    kal_uint8 calling_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct calling_sub_addr;
+    kal_uint8 redirecting_number_present;
+    l4ccsm_cc_peer_addr_struct redirecting_number;
+    kal_uint8 redirecting_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+    kal_uint8 no_cli_cause_present;
+    kal_uint8 no_cli_cause;
+    kal_uint8 call_priority_present;
+    kal_uint8 call_priority;
+} l4ccsm_cc_call_setup_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 ccbs_possible_present;
+    kal_uint8 ccbs_possible;
+    kal_uint16 cause;
+    kal_uint8 call_type;
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+} l4ccsm_cc_call_disc_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_data_activate_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+} l4ccsm_cc_data_activate_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4_addr_bcd_struct called_number;
+    /*Cosine 070415: R4 new IE, Emergency Call Category*/
+    kal_uint8 service_category;
+    kal_bool l4c_retry; //for_lv
+    kal_bool  is_ecall;
+    ecall_type_enum ecall_type; 
+} l4ccsm_cc_emergency_call_setup_req_struct;
+
+typedef l4ccsm_cc_call_setup_cnf_struct l4ccsm_cc_emergency_call_setup_cnf_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    l4ccsm_cc_notify_ss_arg_struct notify_ss_arg;
+    kal_uint8 ccbs_recall_numP;
+    l4_addr_bcd_struct ccbs_recall_num;	    	
+} l4ccsm_cc_notify_ss_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 tone;
+} l4ccsm_cc_start_dtmf_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 tone;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+} l4ccsm_cc_start_dtmf_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 tone;
+} l4ccsm_cc_stop_dtmf_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 tone;    
+    kal_uint8 cause_present;
+    kal_uint16 cause;    
+} l4ccsm_cc_stop_dtmf_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 sat_call_type;
+    kal_uint8 called_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct called_sub_addr;
+    kal_uint8 ccp_present;
+    kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 size_of_ccp;
+/////    kal_uint8 is_changed_from_ss;    
+    kal_uint8 	type_of_modification;//mtk01616_070521
+    /* MAUI_01736966 [L4C][CSM] STK support clir */
+    kal_uint8 clir_info_present;
+    kal_uint8 clir_info;
+    /*Michael:the following parameter is added for SAT retry*/
+    kal_bool l4c_retry;  
+    kal_bool is_emergency_call; //Cosine, 070831
+} l4ccsm_cc_sat_setup_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 response;
+    kal_uint8 terminal_res;
+    kal_uint8 additional_res;
+    kal_uint8 connected_number_present;
+    l4ccsm_cc_peer_addr_struct connected_number;
+    kal_uint8 connected_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct connected_sub_addr;
+////    kal_uint8 is_changed_from_ss;
+    kal_uint8 	type_of_modification;//mtk01616_070523
+    /*Michael: following 4 parameters are added for SAT retry*/
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 size_of_ccp;
+    kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];   
+} l4ccsm_cc_sat_setup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 is_esc_off;
+    kal_uint8 port;
+} l4ccsm_cc_uart_transfer_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 port;
+    kal_bool is_esc;
+} l4ccsm_cc_uart_transfer_ind_struct; 
+/* Ripple: must the same with csm_l2r/tdt_esc_on_ind_struct, becasue CSM uses hold_local_para(). */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 call_type;
+//    kal_uint8 csd_prof_id;
+    kal_uint32 user_rate;
+    kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__ 
+} l4ccsm_cc_csd_est_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 digit_count;
+    kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];    
+} l4ccsm_cc_auto_dtmf_start_req_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN. 
+   The extra last one entry is for null terminal. */
+
+#ifdef __TCPIP__
+//#include "custom_nvram_editor_data_item.h" 
+/*MAUI_02560318 remove the dependency of header file*/
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   l4ccsm_cc_sat_prof_struct  sat_prof; //mtk01602, 070530: add for Nick SATe
+   kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+} l4ccsm_cc_set_csd_prof_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 result;
+   kal_uint8 error_cause;   
+   sat_csd_bearer_para_struct  sat_cbst; //mtk01602: use to send SIM modify indication
+} l4ccsm_cc_set_csd_prof_cnf_struct;
+#endif
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 line_id;
+} l4ccsm_cphs_display_als_ind_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 line_id;
+} l4ccsm_cc_update_als_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 result;
+   kal_uint16 error_cause; 
+} l4ccsm_cc_update_als_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_bool call_exist;
+} l4ccsm_cc_call_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 no_dtmf;
+    kal_uint8 dtmf[MAX_CC_DTMF_BCD_LEN];
+} l4ccsm_cc_sat_send_dtmf_req_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN. 
+   The extra last one entry is for null terminal. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+} l4ccsm_cc_sat_abort_dtmf_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8    src_id;
+    kal_uint8	res;
+    kal_uint8	cause;
+} l4ccsm_cc_sat_send_dtmf_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    csmcc_cpi_msg_type_enum msg_type;
+    kal_bool is_ibt;
+    kal_bool is_tch;
+    kal_bool numberP;
+    l4_addr_bcd_struct number;
+    kal_uint16 disc_cause; //Add for WM FTA	
+    kal_bool is_diagnostic_present;
+    kal_uint8 diagnostic;
+    l4c_call_entry_struct call_entry;
+} l4ccsm_cc_cpi_ind_struct; /*mtk00924 add 041208 for +ECPI*/
+
+/* MAUI_01315252, update call state */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 call_state;
+    l4c_call_entry_struct call_entry;
+} l4ccsm_cc_update_call_state_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_call_sync_ind_struct; /*mtk00924 add 050727 for indicate MMI to get call info*/
+
+#ifdef __VIDEO_CALL_SUPPORT__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_id;
+    kal_uint8 action;/*csmcc_video_call_action_enum*/
+    kal_bool result;
+    kal_uint8 cause;	
+} l4ccsm_cc_video_call_status_ind_struct; 
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+    kal_uint8 signal_value_present;
+    kal_uint8 signal_value;
+    kal_uint8 alerting_pattern_present;
+    kal_uint8 alerting_pattern;
+    kal_uint8 cw_flag;
+    kal_uint8 auto_answer;
+    kal_uint8 call_type;
+    kal_uint8 calling_number_present;
+    l4ccsm_cc_peer_addr_struct calling_number;
+    kal_uint8 calling_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct calling_sub_addr;
+    kal_uint8 called_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct called_sub_addr;
+    kal_uint8 redirecting_number_present;
+    l4ccsm_cc_peer_addr_struct redirecting_number;
+    kal_uint8 redirecting_sub_addr_present;
+    l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+    kal_uint8 no_cli_cause_present;
+    kal_uint8 no_cli_cause;
+    kal_uint8 call_priority_present;
+    kal_uint8 call_priority;
+    kal_uint8 seq_num;	
+}l4ccsm_cc_call_present_ind_struct; 
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 num_of_call;
+    l4ccsm_srvcc_call_cntxt_struct call_tbl[L4C_MAX_CALL_LIST_LEN];
+} l4ccsm_cc_srvcc_transfer_req_struct;
+
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 call_id;
+    csmcc_cpi_msg_type_enum type;
+    csmcc_call_orig_enum direction;
+    kal_uint8 number[MAX_CC_ADDR_LEN + 1];
+    kal_bool is_far_end;
+    kal_uint16 disc_cause;
+} l4ccsm_ims_call_progress_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool call_status;
+
+} l4ccsm_ims_call_status_ind_struct;
+
+//if l4ccsm_cc_srvcc_transfer_cnf_struct.num_of_call = 0, means fail.
+typedef l4ccsm_cc_srvcc_transfer_req_struct l4ccsm_cc_srvcc_transfer_cnf_struct;
+
+#ifdef __TC7__CS__SUPPORT__
+
+typedef enum {
+    CALL_EXIST = 0,
+    CALL_NO_EXIST
+} cs_call_status_enum;
+
+typedef struct {
+	kal_uint8 ref_count;
+	kal_uint16 msg_len;
+	cs_call_status_enum call_status;
+	kal_uint8 is_mt_call;
+}l4cuas_cs_status_req_struct;
+#endif 
+
+#endif 
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c2phb_enums.h b/mcu/protocol/interface/l4misc/l4c2phb_enums.h
new file mode 100644
index 0000000..774127c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2phb_enums.h
@@ -0,0 +1,78 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4c2phb_enums.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for NVRAM.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C2PHB_ENUMS_H
+#define _L4C2PHB_ENUMS_H
+
+typedef enum {
+   PHB_BYNAME,
+   PHB_BYNAME_EXACT,
+   PHB_BYNUMBER
+} phb_query_method_enum;
+
+
+#define PHB_TYPE_TOTAL  PHB_TYPE_ENUM_MAX
+
+#endif
+
diff --git a/mcu/protocol/interface/l4misc/l4c2phb_struct.h b/mcu/protocol/interface/l4misc/l4c2phb_struct.h
new file mode 100644
index 0000000..1318e88
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2phb_struct.h
@@ -0,0 +1,370 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4c2phb_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for structure definition between PHB and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+*  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) 2002
+*
+*******************************************************************************
+ *  FILENAME : l4c2phb_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2PHB_STRUCT_H
+#define _L4C2PHB_STRUCT_H
+
+//#include "l4c2uem_struct.h"
+#include "l4c_aux_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "common_nvram_editor_data_item.h"
+#include "l4c2phb_enums.h"
+
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+#include "nvram_editor_data_item.h"
+#include "l4_nvram_editor.h"
+#include "ps_public_struct.h"
+#include "kal_public_defs.h"
+
+#include "sim_ps_enum.h"
+
+#ifndef NVRAM_PHB_SIZE
+#define NVRAM_PHB_SIZE (54+MAX_PS_NAME_SIZE)
+#endif
+#ifndef PHB_EMAIL_SIZE
+#define PHB_EMAIL_SIZE 66
+#endif
+
+#ifndef PHB_ANR_SIZE
+#define PHB_ANR_SIZE 49
+#endif
+
+typedef struct {
+    kal_uint16 index; /* index maintained by PHB*/
+    phb_storage_enum storage; /* phb_storage_enum; Physical storage*/
+    phb_type_enum type; /* amanda add */
+    kal_uint8 num_index; 
+    kal_uint8 aas_id; 
+    kal_uint16 record_index; /* Record index in physical storage*/
+    l4_name_struct alpha_id; /* Alpha identifier*/
+    l4_addr_bcd_struct tel_number; /* Telephone number*/
+    kal_uint8 cap_cnf_id; /* Capability/Configuration identifier*/
+} phb_entry_struct;
+
+typedef struct {
+    kal_uint16 no_array;
+    kal_uint16 array_size;
+    phb_entry_struct *array; /* Array of raw data entry(ies), each element is type of phb_entry_struct.*/
+} l4cphb_phb_entry_array_struct;
+
+typedef struct {
+    kal_uint16 record_index; /* Record index in physical storage*/
+    kal_uint16 adn_record_index; /* adn record index */
+    kal_uint8 anr_type; /* ANRA, ANRB or ANRC */
+    kal_uint8 aas_id; /* anr alhpha id identifier */
+    l4_addr_bcd_struct tel_number; /* Telephone number*/
+    kal_uint8 cap_cnf_id; /* Capability/Configuration identifier*/
+} phb_anr_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_dn_enum dn_type; /* Dial number type*/
+    kal_bool is_fdn_change;
+} l4cphb_startup_req_struct;
+
+/* EF descriptor */
+
+typedef struct { 
+    LOCAL_PARA_HDR
+    kal_uint8 result; /* phb_errno_enum; Operation result*/
+    /* obsolete */
+    kal_uint16 adn_size;
+    kal_uint16 phb_size;
+    kal_uint8 adn_alpha_length;
+    kal_uint8 fdn_alpha_length;
+    kal_uint8 bdn_alpha_length;
+    kal_uint8 msisdn_alpha_length;
+    kal_uint8 email_length; 
+     /* obsolete */
+    kal_uint8 is_sim_refresh;
+    l4c_phb_desc_struct desc[PHB_TYPE_TOTAL]; /* start from (PHB_NONE + 1) */
+} l4cphb_startup_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_phb_desc_struct desc[PHB_TYPE_TOTAL];
+} l4cphb_startup_begin_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* Required for L4C*/
+    phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+    phb_storage_enum storage; /* Specifies storage*/
+    kal_uint8 num_index; 
+    kal_uint16 index; /* Index of phone number entries*/
+    kal_uint16 record_index; /* Record index of physical storage*/
+    kal_uint16 total; /* Number of entries to read*/
+} l4cphb_read_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* The 'src_id' of the corresponding reqest is forwarded back in this field.*/
+    phb_errno_enum result; /* phb_errno_enum; Operation result*/
+    kal_uint16 cause;
+    kal_uint16 total; /* Number of entries*/
+} l4cphb_read_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* Required for L4C*/
+    phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+    kal_uint16 total; /* Number of entires to piggyback*/
+} l4cphb_write_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* The `src_id' of the corresponding reqest is forwarded back in this field.*/
+    phb_errno_enum result; /* phb_errno_enum; Operation result*/
+    kal_uint16 cause;
+    kal_uint16 total; /* Number of entries*/
+    kal_uint16 old_index;
+} l4cphb_write_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* Required for L4C*/
+    phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+    kal_uint8 num_index;
+    phb_storage_enum storage;
+    kal_uint8 total_piggyback; /* Number of entires to piggyback*/
+    kal_uint16 index; /* Index of phone number entries*/
+    kal_uint16 total; /* Number of entries*/
+    kal_uint16 record_index;
+} l4cphb_delete_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* The 'src_id' of the corresponding reqest is forwarded back in this field.*/
+    phb_errno_enum result; /* phb_errno_enum; Operation result*/
+    kal_uint16 cause;
+    kal_uint16 total; /* Number of entries*/
+    phb_type_enum type;    
+    kal_uint16 old_index;
+} l4cphb_delete_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* Required for L4C*/
+    kal_uint16 total; /* Number of entires to piggyback*/
+    phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+    phb_query_method_enum pattern_tag;
+    union {
+        l4_name_struct alpha_id;
+        l4_addr_bcd_struct tel_number;
+    } pattern_value;
+} l4cphb_search_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* The 'src_id' of the corresponding reqest is forwarded back in this field.*/
+    phb_errno_enum result; /* phb_errno_enum; Operation result*/
+    kal_uint16 cause;
+    kal_uint16 total; /* Number of entries*/
+} l4cphb_search_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* Required for L4C*/
+    l4_addr_bcd_struct tel_number; /* The telephone number to be approved*/
+    kal_uint8 is_retrieve; /* Whether retrieving the hit entry of the given number is required*/
+    l4c_phb_approval_type_enum approval_type; /* l4c_phb_approval_type_enum */
+} l4cphb_approve_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* The `src_id' of the corresponding reqest is forwarded back in this field.*/
+    phb_errno_enum result; /* phb_errno_enum; Operation result*/
+    kal_uint16 cause;
+    phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+    kal_uint8 esc;
+} l4cphb_approve_cnf_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    l4_addr_bcd_struct   number;
+} l4cphb_fdn_get_name_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    phb_errno_enum result;
+    kal_uint16 cause;
+    l4_name_struct alpha_id;
+} l4cphb_fdn_get_name_cnf_struct;
+
+/* __REL5__ */
+typedef struct {
+    kal_uint8 category;
+    l4_addr_bcd_struct tel_number;
+}l4_ecc_number_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 no_ecc;
+    l4_ecc_number_struct ecc_list[16];
+}l4cphb_update_nw_ecc_req_struct;
+
+typedef struct {
+    kal_uint8 max_name_len;
+    kal_uint8 max_num_len;
+    kal_uint16 free_num;
+    kal_uint16 total_num;
+    kal_uint16 ext_free_num;    
+}l4cphb_file_info_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    phb_type_enum type;
+    kal_uint16 record_index;
+    kal_uint8 occurrence;
+} l4cphb_read_usim_req_struct;
+
+typedef l4cphb_read_usim_req_struct l4cphb_write_usim_req_struct;
+typedef l4cphb_read_usim_req_struct l4cphb_delete_usim_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    phb_errno_enum result;
+    kal_uint16 cause;
+    phb_type_enum type;
+    kal_uint16 record_index;
+    kal_uint8 occurrence;
+} l4cphb_read_usim_cnf_struct;
+
+typedef l4cphb_read_usim_cnf_struct l4cphb_write_usim_cnf_struct;
+typedef l4cphb_read_usim_cnf_struct l4cphb_delete_usim_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 file_bitmap[PHB_TYPE_TOTAL];
+    kal_uint16 record_index;
+} l4cphb_check_write_usim_entry_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    phb_errno_enum result;
+    kal_uint8 occurrence;
+    kal_uint16 record_index;
+} l4cphb_check_write_usim_entry_cnf_struct;
+
+
+//MSG_ID_L4C_PHB_UT_REQ
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                        update_phb_user;
+    kal_uint32                      phb_user;
+
+    kal_bool                        update_phb_current_action;
+    kal_uint16                      phb_current_action;
+
+    kal_bool                        update_phb_ready_flag;
+    kal_bool                        phb_ready_flag;
+    
+    //l4_number_struct                l4cphb_approve_req_string;
+
+    kal_bool                        update_phb_update_from_crsm;
+    kal_bool                        phb_update_from_crsm; // update PHB record if CRSM is used
+
+    kal_bool                        update_phb_approve_ussd;
+    kal_bool                        phb_approve_ussd;
+
+    kal_bool                        update_is_fdn_change;
+    kal_bool                        is_fdn_change;
+
+}l4c_phb_ut_req_struct;
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c2smsal_struct.h b/mcu/protocol/interface/l4misc/l4c2smsal_struct.h
new file mode 100644
index 0000000..d8610eb
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2smsal_struct.h
@@ -0,0 +1,1242 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l4c2smsal_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+*  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) 2002
+*
+*******************************************************************************
+ *  FILENAME : l4c2smsal_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2SMSAL_STRUCT_H
+#define _L4C2SMSAL_STRUCT_H
+
+#include "ps_public_struct.h"
+//#include "l4c_aux_struct.h"
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "irat_common_enums.h"
+#include "l3_inc_enums.h"
+#include "smsal_l4c_enum.h"
+
+
+typedef struct 
+{
+	kal_uint8  fo;
+	kal_uint8  pid;
+	kal_uint8  dcs;
+	kal_uint8  ori_dcs;
+
+	kal_uint8  vp_format;
+	kal_uint8  vp;
+
+	kal_uint16 no_msg_data;
+	l4_addr_bcd_struct sca;
+	l4_addr_bcd_struct da;
+
+} smsal_submit_msg_hdr_struct;
+/* to replace smsal_submit_msg_struct */
+
+typedef struct 
+{
+	kal_uint8 fo;
+	kal_uint8 pid;
+	kal_uint8 dcs;
+	kal_uint8 ori_dcs;
+
+	kal_uint8 pading;
+	kal_uint8 scts[7];
+
+	kal_uint16 no_msg_data;
+	l4_addr_bcd_struct sca;
+	l4_addr_bcd_struct oa;
+
+} smsal_deliver_msg_hdr_struct;
+/* to replace smsal_deliver_msg_struct */
+
+typedef struct 
+{
+	kal_uint8 fo;
+	kal_uint8 pid;
+	kal_uint8 dcs;
+	kal_uint8 ori_dcs;
+
+	kal_uint8 mr;
+	kal_uint8 scts[7];
+
+	kal_uint16 no_msg_data;
+	l4_addr_bcd_struct ra;
+	kal_uint8 dt[7];
+	kal_uint8 st;
+
+} smsal_status_report_msg_hdr_struct;
+/* to replace smsal_status_report_msg_struct; */
+
+typedef struct 
+{
+	kal_uint8 fo;
+	kal_uint8 ct;
+	kal_uint8 mn;
+	kal_uint8 pid;
+	kal_uint16 no_msg_data;
+	l4_addr_bcd_struct da;
+} smsal_command_msg_hdr_struct;
+/* to replace smsal_command_msg_struct; */
+
+typedef struct 
+{
+	kal_uint8 profile_no_tag;
+	kal_uint8 profile_no;
+	kal_uint16  para_ind;
+	kal_uint8 pid;
+	kal_uint8 dcs;
+	kal_uint8 vp;
+	kal_uint8 udhi;
+        kal_uint8   tp_srr;
+        kal_uint8   tp_rp;
+	kal_uint8 da_tag;
+	l4_addr_bcd_struct da;
+	l4_addr_bcd_struct sc_addr;
+} smsal_send_msg_req_hdr_struct;
+/* to replace smsal_send_msg_req_struct */
+
+typedef struct 
+{
+    kal_uint16  para_ind;
+    kal_uint8   tp_mms;
+    kal_uint8   tp_rp;
+    kal_uint8   tp_udhi;
+    kal_uint8   tp_sri;
+
+    kal_uint8   pid;
+    kal_uint8   dcs;
+    kal_uint8   tp_scts[7];
+    l4_addr_bcd_struct oa;
+    l4_addr_bcd_struct sc_addr;
+} smsal_receive_msg_hdr_struct;
+
+typedef union {
+   smsal_deliver_msg_hdr_struct       deliver;
+   smsal_submit_msg_hdr_struct        submit;
+   smsal_status_report_msg_hdr_struct status_rep;
+} smsal_header_info_union;
+
+typedef struct {
+    kal_uint8 mt; /* MT Service Mode*/
+    kal_uint8 mo; /* MO Service Mode*/
+    kal_uint8 bm; /* Broadcast Message Service Mode*/
+} smsal_service_mode_struct;
+
+typedef struct {
+    kal_uint8 mode; /* Buffering Mode*/
+    kal_uint8 mt; /* MT Message Route Mode*/
+    kal_uint8 ds; /* Status Report Route Mode*/
+    kal_uint8 bm; /* Broadcast Message Route Mode*/
+} smsal_mt_msg_route_struct;
+
+typedef struct {
+    kal_uint8 mem1; /* Storage type for Memory1*/
+    kal_uint8 mem2; /* Storage type for Memory2*/
+    kal_uint8 mem3; /* Storage type for Memory3*/
+} smsal_select_mem_struct;
+
+typedef struct {
+    l4_name_struct name;
+    l4_addr_bcd_struct addr;
+    kal_uint8 capability_id;
+    kal_uint8 extension_id;
+} smsal_mailbox_addr_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id; /* Source Code*/
+    kal_uint8 is_sim_change; /* TRUE: if last IMSI changed */
+    kal_uint8 init_type;
+} l4csmsal_init_req_struct;
+
+typedef  l4csmsal_init_req_struct l4csmsal_init_me_sms_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} l4csmsal_de_init_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id; /* Source Code*/
+    kal_uint8  req_type; /* Request Type*/
+    kal_uint8  status; /* Status*/
+    kal_uint8  change_status; /* change status*/
+    kal_uint16 index; /* Message Index*/
+} l4csmsal_read_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 dest_no; /* Specify set target, profile_no or line_no*/
+    kal_uint16 para_ind; /* Specify which parameters shall be set*/
+    kal_uint8 fo;
+    kal_uint8 support_concat;
+    kal_uint8 direct_display;
+    kal_uint8 bearer_serivce;
+    smsal_select_mem_struct prefer_mem;
+    smsal_mailbox_addr_struct mailbox_addr;
+    kal_uint8 vp;
+    kal_uint8 pid;
+    kal_uint8 dcs;
+    l4_addr_bcd_struct sca;
+    l4_name_struct profile_name;
+    kal_uint8 cbch_req;
+    kal_bool  is_all_language_on;
+} l4csmsal_set_parameter_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  profile_no;        //if para_ind=SMSAL_PARA_SAVE_PROFILE, only this field is available. (For AT only)
+    kal_uint16 para_ind;         /* Specify which parameters shall be set*/
+    kal_uint8  pid;               //SMSAL_PARA_PID
+    kal_uint8  dcs;               //SMSAL_PARA_DCS
+    kal_uint8  vp;                //SMSAL_PARA_VP
+    l4_addr_bcd_struct sca;       //SMSAL_PARA_SCA
+    l4_name_struct profile_name;  //SMSAL_PARA_PROFILE_NAME
+} l4csmsal_set_profile_para_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  dest_no;  /* index of mailbox list based on smsal_get_mailbox_addr */
+    kal_uint16 para_ind; /* Specify which parameters shall be set*/
+    kal_uint8  fo;                 //SMSAL_COM_PARA_FO
+    kal_uint8  bearer_serivce;     //SMSAL_COM_PARA_BEARER
+    kal_uint8  status_report;      //SMSAL_COM_STATUS_REP 
+    kal_uint8  reply_path;         //SMSAL_COM_REPLY_PATH 
+    kal_uint8  cbch_req;           //SMSAL_COM_CBCH_REQ
+    kal_uint8  is_all_language_on; //SMSAL_COM_PARA_ALL_CB_LANG
+    smsal_select_mem_struct prefer_mem;     //SMSAL_COM_PARA_PREFER_MEM
+    smsal_mailbox_addr_struct mailbox_addr; //SMSAL_COM_PARA_MAILBOX_ADDR
+    kal_uint8  msp_no;
+    smsal_mbi_struct  mbi;
+} l4csmsal_set_common_para_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+    kal_uint8	src_id;
+    kal_uint8	line_no;      	/* message waiting line no */
+    kal_uint8	waiting_num;	/* message waiting number */
+    kal_uint8	ind_type;	/* message waiting type */
+}l4csmsal_set_msg_waiting_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  req_type;
+    kal_uint8  seq_num;
+    kal_uint8  fdn_check;   /* true: FDN enable */
+    kal_uint8  mms_mode; 
+    kal_uint16 reply_index;
+    kal_uint16 message_len; /* Length of Message*/
+    union {
+       smsal_send_msg_req_hdr_struct      submit;
+       smsal_command_msg_hdr_struct       command;
+    } msg_header;  
+} l4csmsal_send_req_struct, l4csmsal_ims_send_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    sms_addr_struct sc_addr; /* service centre address*/
+} l4csmsal_ims_sms_deliver_req_struct, l4csmsal_ims_sms_status_req_struct,l4csmsal_ims_recv_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result;      /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8  mr;          /* Message reference*/
+    l4_addr_bcd_struct sc_addr;
+
+} l4csmsal_ims_send_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result;      /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+
+} l4csmsal_ims_recv_cnf_struct, l4csmsal_ims_sms_deliver_cnf_struct, l4csmsal_ims_sms_status_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 src_id;   /* identify background sending or else */
+} l4csmsal_ims_send_smma_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 mr;       /* Message Reference*/
+    kal_uint8 src_id;   /* identify background sending or else */
+} l4csmsal_ims_send_smma_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 smma;   /* 0:abort, 1:send smma */
+} l4csmsal_ims_send_smma_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8 result; /* Result */
+} l4csmsal_ims_send_smma_result_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;	
+    kal_uint8 seq_num;	
+} l4csmsal_send_abort_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  seq_num;
+    kal_uint8  fdn_check; //true: FDN enable
+    kal_uint16 index;
+    kal_uint16 reply_index;
+    kal_uint8  da_tag; /* Indicate whether to use da as destination address*/
+    l4_addr_bcd_struct da; /* Destination Address*/
+    kal_uint8 profile_no_tag;
+    kal_uint8 profile_no;
+	#ifdef __IMS_SUPPORT__
+    sms_addr_struct sca;
+    kal_bool is_retry;
+	kal_uint8 msg_ref;
+    smsal_domain_enum domain;
+	#endif
+} l4csmsal_send_from_storage_req_struct, l4csmsal_ims_send_from_storage_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  status;
+    kal_uint8 scts[7];
+    kal_uint16 replace_index;
+    kal_uint16 message_len; /* Length of Message*/
+    union{
+        smsal_receive_msg_hdr_struct mt_sms_hdr;
+        smsal_send_msg_req_hdr_struct mo_sms_hdr;
+    }hdr;
+} l4csmsal_write_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8  del_flag;
+    kal_uint16 index;
+    kal_uint8  msg_bitmap[480]; /* length is not final value */
+    
+} l4csmsal_delete_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8 seq_num; 
+    kal_uint8  is_sms_packed_required;
+    l4_addr_bcd_struct sc_addr;
+    kal_uint8  tpdu_length;
+    kal_uint8  tpdu[175];
+} l4csmsal_sat_send_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+} l4csmsal_init_cnf_struct;
+
+typedef  l4csmsal_init_cnf_struct l4csmsal_init_me_sms_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+} l4csmsal_de_init_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 line_no; /* Number of Line*/
+    kal_uint8  msp_no;
+    kal_uint8 waiting_num;
+    kal_uint8 ind_type;
+    kal_bool  is_show_num;
+    kal_bool  is_clear;
+    kal_bool  is_from_storage;
+
+    kal_uint8 ext_indicator;  // indicate how many "message waiting" follows
+    l4csmsal_msg_waiting_ind_ext_struct msg_waiting[5];
+} l4csmsal_msg_waiting_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 dest; /* Destination Code*/
+    kal_uint8 storage_type;
+    kal_uint16 index; /* Message Index*/
+    kal_uint16 dest_port; 
+    kal_uint16 src_port;
+    smsal_concat_struct concat_info; /* Concat. Info*/
+    
+    l4_addr_bcd_struct oa; /* Originating Address */
+    
+    kal_uint8 mti;
+    kal_uint8 scts[7];
+    
+} l4csmsal_new_msg_index_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  dest; /* Destination Code*/  
+    kal_uint8  id; /* Id for distinguish CNMA*/
+    kal_uint8  mti; /* Message Type Identifier*/
+    kal_uint16 message_len; /* Length of Message*/
+} l4csmsal_new_msg_pdu_ind_struct, l4csmsal_ims_new_msg_pdu_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8   dest; /* Destination Code*/
+    kal_uint8   id; /* Id for distinguish CNMA*/
+    kal_uint16  index;
+    kal_uint8   mti; /* Message Type Identifier*/
+    kal_uint8   rmi_use_hex;
+    kal_uint8   display_type;
+    kal_uint8   storage_type;
+    kal_uint16  dest_port; 
+    kal_uint16  src_port;
+    kal_uint16  message_len; /* Length of Message*/
+    smsal_concat_struct concat_info; /* Concat. Info*/
+    smsal_header_info_union msg_header;
+} l4csmsal_new_msg_text_ind_struct, l4csmsal_ims_new_msg_text_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8  status; /* Message Status*/
+    kal_uint8  new_status;  /* For +CMGR and sync. to MMI */
+    kal_uint8  mti; /* Message Type Identifier*/
+    kal_uint8  storage_type;
+    kal_uint8  rmi_use_hex;
+    kal_uint16 index; /* For +CMGL*/
+    kal_uint16 next_index; /* Indicate the next index*/
+    kal_uint16  dest_port; 
+    kal_uint16  src_port;
+    kal_uint8 scts[7];
+    kal_uint8 padding;
+    kal_uint16 message_len; /* Length of Message*/
+    smsal_concat_struct concat_info; /* Concat. Info*/
+    smsal_header_info_union msg_header;
+} l4csmsal_read_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8 profile; 
+} l4csmsal_set_parameter_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8 profile; 
+} l4csmsal_set_profile_para_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8 profile; 
+} l4csmsal_set_common_para_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    
+    kal_bool   result;
+    kal_uint16 cause;
+    kal_uint8  src_id;
+    kal_uint8  line_no;      	/* message waiting line no */
+    kal_uint8  waiting_num;	/* message waiting number */
+    kal_uint8  ind_type;	/* message waiting type */
+}l4csmsal_set_msg_waiting_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8  mr; /* Message reference*/    
+    kal_uint8  seq_num;
+    kal_uint8  scts[7];
+    smsal_concat_struct concat_info; /* Concat. Info*/  
+
+} l4csmsal_send_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint16 index;
+    kal_uint8  status; /* status of msg */
+    kal_uint8  storage_type;
+} l4csmsal_write_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint16 index;
+    kal_uint8  del_flag;
+    kal_uint8  storage_type;
+    kal_uint8  msg_bitmap[480]; /* length is not final value */
+} l4csmsal_delete_cnf_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8 seq_num;
+}l4csmsal_send_abort_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  type;
+} l4csmsal_mem_full_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  type;
+} l4csmsal_mem_exceed_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  type;
+} l4csmsal_mem_available_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 length;    //length of peer buf data; unit:byte
+    kal_uint8   access_id;
+} l4csmsal_sms_depersonalization_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   response;
+    kal_uint8   cause_present;
+    kal_uint16 cause;
+    kal_uint16 length;    //length of peer buf data; unit:byte
+    kal_uint8   access_id; //SMU piggy-back
+} l4csmsal_sms_depersonalization_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 res; /* SAT response code*/
+    kal_uint8 cause; /* Error Cause*/
+} l4csmsal_sat_send_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 cbch_req;
+} l4csmsal_cbch_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint16 mi[60];          // = [SMSAL_MMI_CBMI_MAX_ENTRY]
+    kal_uint16 dcs[30];         // = [SMSAL_CB_MAX_ENTRY]
+    kal_bool mi_mask[60];       // = [SMSAL_MMI_CBMI_MAX_ENTRY]
+    kal_bool dcs_mask[30];      // = [SMSAL_CB_MAX_ENTRY]
+
+    /* follows added by Kevin */
+    kal_bool mir_mask[30];      // = [SMSAL_CB_MAX_ENTRY]
+    kal_uint16 mir[60];         // = [SMSAL_CB_MAX_ENTRY*2]
+    kal_uint8  is_all_language_on;
+    kal_uint8  para_ind;/* smsal_cb_para_enum */
+    
+    l4c_cb_set_type_enum    set_type;
+    smsal_cb_cmd_enum       cb_cmd;
+} l4csmsal_cb_update_req_struct;
+
+/* CB UPDATE CNF added by Kevin */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 result; /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    smsal_cb_cmd_enum cb_cmd;
+} l4csmsal_cb_update_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16 mi;
+    kal_uint8 dcs;
+    kal_uint16 msg_length; /* max length is 93 x 15 = 1395 */
+    kal_uint8 msg_data[1];
+} l4csmsal_cb_msg_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  dest; /* RMMI or LMMI*/
+    kal_uint16 sn;
+    kal_uint16 mi;
+    kal_uint8  dcs;
+    kal_uint8  page;
+    kal_uint8  pages;
+    kal_uint8  rmi_use_hex;
+    kal_uint16 msg_length; /* max length is 93 x 15 = 1395 */
+    kal_uint8  msg_data[1];
+} l4csmsal_cb_msg_text_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 geography_type;
+} l4csmsal_cb_gs_change_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  dest; 
+    kal_uint16 msg_length; 
+    kal_uint8  msg_data[CB_MAX_DATA_NUM_PER_PAGE];
+	rat_enum   rat;
+} l4csmsal_cb_msg_pdu_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 plmn[MAX_PLMN_LEN+1];
+    rat_enum rat; 
+} l4csmsal_cb_service_by_plmn_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint16  mid;
+    kal_uint16  sn;
+} l4csmsal_cb_msg_removal_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+  
+   kal_uint16 dest_mod_id;  
+   kal_uint16 dest_port; 
+   kal_uint16 src_port;
+   kal_uint8  dcs;
+   kal_uint8  mti; /* Message Type Identifier*/
+
+   kal_uint8 scts[7];
+   smsal_concat_struct concat_info; /* Concat. Info*/  
+   l4_addr_bcd_struct oa; /* Originating Address */
+   kal_uint16 message_len; /* Length of Message*/
+ 
+}l4csmsal_app_data_ind_struct;   
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  dest; /* Destination Code*/
+    kal_uint8  startup_seq_num; 
+    kal_uint8  mti; /* Message Type Identifier*/
+    kal_uint8  status;
+    kal_uint8  storage_type;
+    kal_uint8  scts[7];
+    kal_uint8  padding;
+    kal_uint16 index;
+    kal_uint16 message_len; /* Length of Message*/
+    kal_uint16 dest_port; 
+    kal_uint16 src_port;
+    smsal_concat_struct concat_info; /* Concat. Info*/
+    smsal_header_info_union msg_header;
+} l4csmsal_startup_read_msg_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+	 kal_uint8 access_id;    
+    l4_addr_bcd_struct	sc_addr;
+	 l4_addr_bcd_struct	da;
+} l4csmsal_fdn_check_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+    kal_uint8  result; //true: in FDN list(send), false: not in FDN list
+    kal_uint16 cause; //PHB_L4C_ERROR
+} l4csmsal_fdn_check_rsp_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+  
+   kal_uint8  action;
+   kal_uint8  dst_storage;
+   kal_uint16 src_index;
+   kal_uint8 src_id;
+}l4csmsal_copy_msg_req_struct;   
+
+/* __UNIFIED_MESSAGE_BACKGROUND_SEND_SUPPORT__ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+  
+   kal_uint8  new_status;  /*  smsal_status_enum */
+   kal_uint16 index;
+   kal_uint8 src_id;
+}l4csmsal_set_status_req_struct; 
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+  
+   kal_uint8  result; /* Result Code*/
+   kal_uint16 error_cause; /* Error Cause*/
+   kal_uint8  action;
+   kal_uint8  dst_storage;
+   kal_uint16 src_index;
+   kal_uint16 dst_index;
+   kal_uint8 src_id;
+}l4csmsal_copy_msg_cnf_struct;   
+
+/* __UNIFIED_MESSAGE_BACKGROUND_SEND_SUPPORT__ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+   kal_uint16 index;  
+   kal_uint8  result; /* Result Code*/
+   kal_uint16 error_cause; /* Error Cause*/
+   kal_uint8 src_id;
+}l4csmsal_set_status_cnf_struct;  
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+  
+   kal_uint8  action;
+}l4csmsal_hz_cb_act_req_struct;   
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+   kal_uint8  dest; /* not used */
+   kal_uint16 sn;
+   kal_uint16 mi;
+   kal_uint8  dcs;
+   kal_uint8  page;
+   kal_uint8  pages;
+   kal_uint8  rmi_use_hex; /* not used */
+   kal_uint16 msg_length; 
+   kal_uint8  msg_data[1];
+} l4csmsal_hz_cb_msg_ind_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+   kal_uint8 src_id;
+}l4csmsal_get_mailbox_num_req_struct; 
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+
+   kal_uint8  result; /* Result Code*/
+   kal_uint16 error_cause; /* Error Cause*/
+   kal_uint8 src_id;
+}l4csmsal_get_mailbox_num_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint16 index;  // Message Index
+} l4csmsal_read_raw_data_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  result;       // Result Code
+    kal_uint16 error_cause;  // Error Cause
+    kal_uint16 index;        // Message Index
+    kal_uint8  status;       // Status of msg
+    kal_uint8  storage_type; // SMSAL_SM or SMSAL_ME
+    kal_uint16 data_len;     // Message length
+} l4csmsal_read_raw_data_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  storage_type;   // SMSAL_SM or SMSAL_ME
+} l4csmsal_write_raw_data_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  result;       // Result Code
+    kal_uint16 error_cause;  // Error Cause
+    kal_uint16 index;        // Message Index
+    kal_uint8  status;       // Status of msg
+    kal_uint8  storage_type; // SMSAL_SM or SMSAL_ME
+} l4csmsal_write_raw_data_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  result;
+    kal_uint32 error_cause;
+    kal_uint8 uid;
+}l4csmsal_send_deliver_report_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8  src_id;
+    kal_uint8  result;
+    kal_uint32 error_cause;
+    kal_uint8 uid;	
+}l4csmsal_send_deliver_report_cnf_struct;
+
+ typedef struct
+ {
+     LOCAL_PARA_HDR
+     kal_uint8  src_id;
+     kal_uint32 sm_max_num;
+     kal_uint32 sm_current_num;
+     kal_uint32 me_max_num;
+     kal_uint32 me_current_num;
+     kal_uint32 sr_max_num;
+     kal_uint32 sr_current_num;
+ }l4csmsal_sync_msg_storage_req_struct;
+
+ typedef struct
+ {
+     LOCAL_PARA_HDR
+     kal_uint8  result;
+     kal_uint32 cause;
+ }l4csmsal_mt_sms_final_ack_ind_struct;
+
+// typedef smsal_evmi_struct l4csmsal_enhanced_voice_mail_ind_struct;
+// l4csmsal_enhanced_voice_mail_ind_struct should be the same as smsal_evmi_struct
+typedef struct
+{
+    kal_uint8   evm_pdu_type;
+    kal_uint8   multi_sub_profile;
+    kal_uint8   is_store;
+    kal_uint8   vm_almost_full;
+    kal_uint8   vm_full;
+    kal_uint8   vm_status_ext_flg;
+
+    l4_addr_bcd_struct   vm_access_addr;
+    kal_uint8   number_of_vm_unread;  // should be stored in (U)SIM
+    kal_uint8   number_of_vm_notify;  // max 15
+    kal_uint8   number_of_vm_delete;  // max 31
+
+    kal_uint8   l4_status;        // 0:init, 1: sent to MMI, 2:free
+
+    kal_uint8   vm_status_ext_len;
+    kal_uint8   *vm_status_ext_data;
+
+    smsal_evmi_msg_struct *vm_msg[32];
+
+}l4csmsal_enhanced_voice_mail_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    irat_type_enum irat_type;
+    rat_type_enum source_rat;
+    rat_type_enum target_rat;
+} l4csmsal_rat_change_start_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    irat_type_enum irat_type;
+    rat_type_enum source_rat;
+    rat_type_enum target_rat;
+    irat_result_enum irat_result;
+} l4csmsal_rat_change_finish_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result;      /* Result Code*/
+    kal_uint16 error_cause; /* Error Cause*/
+    kal_uint8  mr;          /* Message reference*/
+    l4_addr_bcd_struct sc_addr;
+	smsal_domain_enum  domain;
+
+} l4csmsal_ims_send_from_storage_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result;      /* Result Code*/
+    kal_uint8  mr;          /* Message reference*/
+} l4csmsal_ims_update_msgbox_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    kal_uint8  src_id;
+    kal_uint8  result;      /* Result Code*/
+} l4csmsal_ims_update_msgbox_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR 
+    kal_bool enable;
+} l4csmsal_update_sms_over_sgs_cfg_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR 
+    kal_bool is_full_changed;
+} l4csmsal_sync_msg_ind_struct;
+
+
+typedef struct
+{
+   /* smsal_mb_entry_state_enum */
+   kal_uint8                       state;
+                                    /* state of the entry */
+
+   /* smsal_storage_enum */
+   kal_uint8                        storage_type;                                    
+                                    /* storage type of the entry */
+
+   /* smsal_mti_enum */
+   kal_uint8                        mti;
+                                    /* message type identifier */
+
+   kal_uint8                        status;        
+                                    /* status of the message */
+
+   kal_uint16                       record_no;     
+                                    /* indicate record number in storage */
+
+   kal_uint16                       mb_type_ind;     
+                                    /* bitmap for specific type SM, ie. PID with replace type,  */
+                                    /* FO with reply path.                                      */
+
+} smsal_mb_entry_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR 
+	kal_uint8 src_id;		
+    kal_uint8 domain;
+    kal_uint8 direction;	
+} l4csmsal_sms_end_ind_struct;
+
+
+#endif 
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c2tcm_struct.h b/mcu/protocol/interface/l4misc/l4c2tcm_struct.h
new file mode 100644
index 0000000..d62195d
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2tcm_struct.h
@@ -0,0 +1,758 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * L4C2TCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file describes the common struct of TCM and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C2TCM_STRUCT_H
+#define _L4C2TCM_STRUCT_H
+
+#include "ps_public_struct.h"
+
+#include "l4c2abm_struct.h"
+#include "kal_public_api.h"
+#include "tcm_api.h"
+#include "ps_public_enum.h"
+#include "l4c2tcm_func.h"
+#include "irat_common_struct.h"
+#include "l4c_common_enum.h"
+
+/* __MEDIATEK_SMART_QOS__ */
+#include "nvram_editor_data_item.h"
+
+#include "c2k_irat_msg_struct.h"
+
+/* __APP_SECONDARY_PDP_SUPPORT__ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+} tcm_pdp_reactivate_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+} l4c_tcm_eps_attach_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id; 
+    kal_bool cause2_present;
+    ps_cause_enum cause2;  
+} l4c_tcm_eps_attach_pdn_act_ind_struct; // convert it to CGEV 
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    l4ctcm_act_reason  req_reason;     /* Used by ETCM */   
+    l4ctcm_egact_support_rat_enum rat;
+    //l4ctcm_egact_cause_enum cause;
+} tcm_pdp_activate_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+} tcm_pdp_activate_rej_rsp_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    kal_uint8   qfi;                        // Used only by vgtcm, 0 for activate flow, 0xff for normal modify, others for deactivate specified flow
+} tcm_pdp_modify_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    #ifdef __LOCAL_DEACTIVATE_PDP_SUPPORT__
+    kal_bool local_deactivate_pdp; /* __LOCAL_DEACTIVATE_PDP_SUPPORT__ */	
+    #endif // ~ __LOCAL_DEACTIVATE_PDP_SUPPORT__
+    tcm_pdp_deact_reason_enum deact_reason; // Used only in RAT_TCM >> ETCM >> ESM (due to MSG_ID_TCM_RAT_TCM_INIT_DEACTIVATE_CONTEXT_IND).
+    l4ctcm_egact_support_rat_enum   rat;
+} tcm_pdp_deactivate_req_struct;
+
+/* for __APP_SECONDARY_PDP_SUPPORT__ */
+typedef struct {
+    LOCAL_PARA_HDR
+   kal_uint8	            context_id;
+   kal_bool	                is_qos_present; // indicates if QoS modification
+   nvram_editor_qos_struct	modify_qos;     // modifying QoS value
+} ltcm_pdp_qos_tft_modify_req_struct;
+/* ~for __APP_SECONDARY_PDP_SUPPORT__ */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    kal_uint8   apn_length;
+    kal_uint8   apn[100];
+    kal_uint8   dcomp_algo;
+    kal_uint8   hcomp_algo;
+    kal_uint8   pdp_type;
+    kal_uint8   pdp_addr_len;
+    kal_uint8   addr_val[16];   // AT+CGDCONT should not set static IPv6 address, so 16*u8 size is okay?
+    kal_uint8   ipv4addralloc;  // __REL8__
+    kal_uint8   p_cscf_discovery;         //R10
+    kal_uint8   im_cn_signalling_flag;    //R10
+    kal_uint8   request_type;             //R12
+    l4c_cmd_conflict_check_option_enum check_option;
+    nas_priority_config_enum nas_priority_config ;   // __MTC_SUPPORT__
+    eab_override_config_enum eab_override_config ;   // __MTC_SUPPORT__
+    l4c_tcm_securepco_enum  secure_pco; // no use?
+    l4c_tcm_activate_pdp_request_ipv4_mtu_enum act_pdp_with_pco_req_v4_mtu;
+    l4c_tcm_local_addr_ind_enum local_addr_ind; //no use?
+    l4c_tcm_non_ip_mtu_discovery_enum   non_ip_mtu_discovery; 
+    l4c_tcm_reliable_data_service_enum  reliable_data_service; 
+    l4c_tcm_ssc_mode_enum               ssc_mode;
+    kal_bool                            s_nssai_present;
+    l4c_tcm_s_nssai_struct              s_nssai; 
+    l4c_tcm_access_type_enum            access_type; 
+    l4c_tcm_rqos_ind_enum               rqos_ind;
+    l4c_tcm_mh6_pdu_enum                mh6_pdu;
+    l4c_tcm_always_on_pdu_enum          always_on_pdu;
+    kal_uint8 psi;
+    kal_bool  old_psi_present; 
+    kal_uint8 old_psi; 
+    kal_bool  vgpdp_type_present;
+    kal_uint8 vgpdp_type;
+    kal_bool  vgapn_present;
+    kal_uint8 vgapn_length;
+    kal_uint8 vgapn[100];
+    l4c_tcm_ladn_dnn_enum               ladn_dnn;
+} l4ctcm_set_pri_pdp_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+} l4ctcm_set_this_is_an_invalid_apn_notify_req_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    pdp_addr_type_enum roaming_ip_type;
+    kal_uint8 psi;
+} l4ctcm_set_extended_pdp_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool clear_all_apn_info;
+    kal_uint8 apn_idx; /* apn table entry index */
+    kal_uint8 apn_length;
+    kal_uint8 apn[MAX_APN_LEN];
+    kal_uint16 inactivity_time;
+}l4ctcm_sync_apn_info_req_struct;
+
+typedef struct {
+    kal_bool is_mobile_data_enable_present;
+    kal_bool is_mobile_data_enable;
+    kal_bool is_mobile_data_roaming_enable_present;
+    kal_bool is_mobile_data_roaming_enable;
+    kal_bool is_volte_enable_present;
+    kal_bool is_volte_enable;
+    kal_bool is_vzw_ims_test_mode_enable_present;
+    kal_bool is_vzw_ims_test_mode_enable; 
+} l4c_cellular_network_config;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_cellular_network_config config;
+}l4ctcm_cellular_network_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    kal_uint8   prim_context_id;
+    kal_uint8   dcomp_algo;
+    kal_uint8   hcomp_algo;
+    kal_uint8   im_cn_signalling_flag;    //R10
+} l4ctcm_set_sec_pdp_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 qos_type;
+    kal_uint8 delay_class;
+    kal_uint8 reliability_class;
+    kal_uint8 peak_throughput;
+    kal_uint8 precedence_class;
+    kal_uint8 mean_throughput;
+} l4ctcm_set_qos_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 qos_type;
+    kal_uint8 traffic_class;
+    kal_uint8 delivery_order;
+    kal_uint8 delivery_of_err_sdu;
+    kal_uint8 max_sdu_size;
+    kal_uint8 max_bitrate_up_lnk;
+    kal_uint8 max_bitrate_down_lnk;
+    kal_uint8 residual_bit_err_rate;
+    kal_uint8 sdu_err_ratio;
+    kal_uint8 transfer_delay;
+    kal_uint8 traffic_hndl_priority;
+    kal_uint8 guarntd_bit_rate_up_lnk;
+    kal_uint8 guarntd_bit_rate_down_lnk;
+    kal_uint8 signalling_indication;
+    kal_uint8 source_statistics_descriptor;
+    kal_uint8 ext_max_bitrate_down_lnk;
+    kal_uint8 ext_guarntd_bit_rate_down_lnk;
+    kal_uint8 ext_max_bitrate_up_lnk;
+    kal_uint8 ext_guarntd_bit_rate_up_lnk;
+    kal_uint8 ext2_max_bitrate_down_lnk;
+    kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+    kal_uint8 ext2_max_bitrate_up_lnk;
+    kal_uint8 ext2_guarntd_bit_rate_up_lnk;    
+} l4ctcm_set_eqos_info_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_uint8 pdn_num; /**< PDN No. */
+    pdn_info_struct pdn[MAX_PDN_NUM]; /**< PDN information */
+}l4ctcm_set_multiple_pdn_info_req_struct;
+
+
+typedef struct{
+    LOCAL_PARA_HDR
+
+    kal_uint8 action_context_id;
+
+    /** Set target field to this value */
+    kal_uint32 value;
+
+    /** Used to indicate which field we want to change */
+    l4ctcm_session_info_block_field_enum field;
+}l4ctcm_set_specific_context_req_struct;
+
+//mtk04121
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    kal_uint8   qci;
+    kal_uint8   max_bitrate_up_lnk;
+    kal_uint8   max_bitrate_down_lnk;
+    kal_uint8   guarntd_bit_rate_up_lnk;
+    kal_uint8   guarntd_bit_rate_down_lnk;
+    kal_uint8   ext_max_bitrate_up_lnk;
+    kal_uint8   ext_max_bitrate_down_lnk;
+    kal_uint8   ext_guarntd_bit_rate_up_lnk;
+    kal_uint8   ext_guarntd_bit_rate_down_lnk;
+    kal_uint8   ext2_max_bitrate_up_lnk;
+    kal_uint8   ext2_max_bitrate_down_lnk;
+    kal_uint8   ext2_guarntd_bit_rate_up_lnk;
+    kal_uint8   ext2_guarntd_bit_rate_down_lnk;
+
+    kal_bool    is_use_ext_qos_for_dl_gbr;
+    kal_bool    is_use_ext_qos_for_ul_gbr;
+    kal_bool    is_use_ext_qos_for_dl_mbr;
+    kal_bool    is_use_ext_qos_for_ul_mbr;
+    kal_uint64  ext_eps_qos_dl_gbr;
+    kal_uint64  ext_eps_qos_ul_gbr;
+    kal_uint64  ext_eps_qos_dl_mbr;
+    kal_uint64  ext_eps_qos_ul_mbr;     
+} l4ctcm_set_eps_qos_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4c_vgqos_struct qos_info; 
+} l4ctcm_set_vgqos_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+} l4ctcm_start_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 auth_type;
+} l4ctcm_set_ppp_auth_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    l4c_cgauth_info_struct cgauth_info;
+    kal_uint8 psi;
+} l4ctcm_set_cgauth_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint32 channel_id;
+    pdp_addr_type_enum pdp_type;
+}l4ctcm_enter_data_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+}l4ctcm_leave_data_mode_req_struct;
+
+/* __MEDIATEK_SMART_QOS__ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool   is_msq_on ;  /* True: Use R6 QOS if the current PLMN (NW/SIM) is on MSQ list (nvram_ef_msq_list_struct). */ 
+} l4ctcm_set_msq_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    nvram_ef_msq_entry_struct  entry ;
+} l4ctcm_set_msq_entry_req_struct;
+/* __MEDIATEK_SMART_QOS__ */
+
+/* mtk00714 w0637: AT definition */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   context_id;
+    kal_uint16  undefine_action; //l4c_action_enum
+} l4ctcm_undefine_pdp_info_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8	on_off;
+} l4ctcm_set_acl_mode_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+	kal_uint16	start_index;
+	kal_uint16	max_read_entries;
+} l4ctcm_get_acl_entries_req_struct;
+
+typedef struct
+{
+    kal_uint8 apn[MAX_APN_LEN];
+} tcm_acl_entry_struct;
+
+typedef struct
+{
+    kal_uint8 context_id;
+    kal_bool is_success;
+    ps_cause_enum error_cause;
+} l4ctcm_at_report_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+	kal_uint16	       index;
+	tcm_acl_entry_struct	acl_entry;
+} l4ctcm_set_acl_entry_req_struct;
+
+typedef struct
+{
+	LOCAL_PARA_HDR
+	tcm_acl_entry_struct	acl_entry;
+} l4ctcm_add_acl_entry_req_struct;
+
+typedef struct
+{
+	LOCAL_PARA_HDR
+	kal_bool	del_all;
+	kal_uint16	index;
+	tcm_acl_entry_struct	acl_entry;
+} l4ctcm_del_acl_entry_req_struct;
+
+typedef struct
+{
+	LOCAL_PARA_HDR
+    kal_uint8 query_id;
+    kal_uint8 last_cid;
+} l4ctcm_query_ext_gprs_history_req_struct;
+
+typedef struct
+{
+	LOCAL_PARA_HDR
+    kal_uint8   reset_id; 
+    kal_bool    reset_all; 
+    kal_bool    reset_certain_cid_last_history;
+    kal_uint8   context_id; 
+    kal_bool    reset_total_history;
+} l4ctcm_reset_ext_gprs_history_req_struct;
+
+typedef struct
+{
+	LOCAL_PARA_HDR
+    kal_bool	is_main_ps;
+} l4ctcm_data_allow_req_struct;
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_bool clean_egpco_context;
+
+    kal_bool req_v4_dns;//000D
+   
+    kal_bool req_v6_dns; //0003
+    
+    kal_bool req_msisdn; //000E
+
+    kal_bool req_pcscf_reselection_support; //0012
+
+    kal_bool ps_data_off_support_present;  //0017
+    kal_uint8 ps_data_off_support_value; 
+
+    kal_bool req_op_pco_id; //FF00
+    kal_uint32 op_pco_id;
+    plmn_id_rat_struct op_pco_plmn_id;
+
+    kal_bool req_v6_epdg; //FF01
+    plmn_id_rat_struct epdg_v6_cointainer; // VZ_REQ_LTEDATA_40923 : always set to 311480
+
+    kal_bool req_v4_epdg; //FF02
+    plmn_id_rat_struct epdg_v4_cointainer; // VZ_REQ_LTEDATA_40923 : always set to 311480 
+
+    kal_bool req_vzw_5guw; //FF03
+    plmn_id_rat_struct vzw_5guw_cointainer; // Unified_5G_Icon_Logic : always set to 311480 
+
+    kal_uint8 psi; 
+}l4ctcm_set_egpco_req_struct;
+
+typedef struct {    
+    LOCAL_PARA_HDR    
+    kal_bool is_ims_roaming_enable;
+} l4ctcm_set_eimsroam_config_value_req_struct;
+
+
+#endif 
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c_cc_cmd.h b/mcu/protocol/interface/l4misc/l4c_cc_cmd.h
new file mode 100644
index 0000000..a6384b2
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_cc_cmd.h
@@ -0,0 +1,222 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4c_cc_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_CC_CMD_H
+#define _L4C_CC_CMD_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_aux_struct.h"
+//#include "ps2sat_struct.h"
+//#include "l4c_common_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#include "l4c2csm_cc_struct.h"
+#include "l4_vdm_enum.h"
+
+extern kal_bool l4c_cc_exe_reset_acm_req(kal_uint8 src_id, kal_uint8 *pin);
+
+extern kal_bool l4c_cc_get_acm_value_req(kal_uint8 src_id, kal_uint32 *acm);
+
+extern kal_bool l4c_cc_set_acm_max_req(kal_uint8 src_id, kal_uint8 *pin, kal_uint32 val);
+
+extern kal_bool l4c_cc_get_acm_max_req(kal_uint8 src_id, kal_uint32 *acm_max);
+
+extern kal_bool l4c_cc_get_ccm_value_req(kal_uint8 src_id, kal_uint32 *ccm);
+
+extern kal_bool l4c_cc_exe_reset_ccm_req(kal_uint8 src_id); 
+
+extern void l4c_cc_send_csm_call_abort_req(void);
+
+
+extern kal_bool l4c_cc_set_bearer_service_req(kal_uint8 src_id, kal_uint8 speed, kal_uint8 name, kal_uint8 ce);
+
+extern kal_bool l4c_cc_get_bearer_service_req(kal_uint8 src_id, kal_uint8 *speed, kal_uint8 *name, kal_uint8 *ce);
+
+extern kal_bool l4c_cc_set_line_req(kal_uint8 src_id, kal_uint8 line);
+
+extern kal_bool l4c_cc_set_cug_params_req(kal_uint8 src_id, kal_uint8 index, kal_uint8 mode, kal_uint8 info);
+
+extern kal_bool l4c_cc_get_cug_params_req(kal_uint8 src_id, kal_uint8 *index, kal_uint8 *mode, kal_uint8 *info);
+
+extern kal_bool l4c_cc_exe_chld_req(
+                    kal_uint8 src_id,
+                    kal_uint8 opcode, /* csmcc_crss_req_enum */
+                    kal_uint8 call_id);
+
+extern kal_bool l4c_cc_exe_hangup_active_call_req(kal_uint8 src_id);
+
+extern kal_bool l4c_cc_get_call_list_req(kal_uint8 src_id, l4c_call_list_struct *call_list, kal_bool is_clccs);
+
+extern kal_bool l4c_cc_set_call_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_cc_set_call_capability(kal_uint32 capability);
+
+extern kal_bool l4c_cc_get_call_mode_req(kal_uint8 src_id, kal_uint8 *mode);
+
+extern kal_bool l4c_cc_get_phone_activity_req(kal_uint8 src_id, kal_uint8 *act);
+
+extern kal_bool l4c_cc_set_single_num_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_cc_get_single_num_req(kal_uint8 src_id, kal_uint8 *mode);
+
+extern kal_bool l4c_cc_exe_call_deflect_req(
+                    kal_uint8 src_id,
+                    l4c_number_struct dest,
+                    kal_bool sub_addr_flag,
+                    l4c_sub_addr_struct sub_dest);
+
+extern kal_bool l4c_cc_exe_send_dtmf_req(kal_uint8 src_id, kal_uint8 digit,kal_uint8 call_id,l4_dtmf_action_enum cmd);
+
+extern kal_bool l4c_cc_exe_stop_dtmf_req(kal_uint8 src_id,kal_uint8 call_id);
+
+extern kal_bool l4c_cc_exe_start_auto_dtmf_req(kal_uint8 src_id, kal_uint8 *digit);
+
+extern kal_bool l4c_cc_exe_ata_req(kal_uint8 src_id);
+
+#ifdef __SATCE__
+extern kal_bool l4c_sat_csd_call_setup_req(
+                    kal_uint8 src_id,
+                    kal_uint8 size_of_addr,
+                    kal_uint8 *addr,
+                    kal_uint8 size_of_subaddr,
+                    kal_uint8 *subaddr,
+                    kal_uint8 call_type,
+                    sat_csd_bearer_para_struct bearer_para);
+#endif /* __SATCE__ */ 
+extern kal_bool l4c_cc_exe_call_setup_req(
+                    kal_uint8 src_id,
+                    l4c_number_struct dest,
+                    kal_uint8 redial_count,
+                    kal_uint8 call_type,
+                    kal_uint8 clir_flag, /* csmcc_clir_info_enum */
+                    kal_bool cug_option,
+                    kal_uint8 als_type,
+                    kal_uint8 ecc_info);
+
+extern kal_bool l4c_cc_exe_call_modify_req(kal_uint8 src_id);
+
+#ifndef __UCM_SUPPORT__
+extern kal_bool l4c_cc_exe_ath_req(kal_uint8 src_id, l4c_ath_req_enum op_code);
+#endif /*__UCM_SUPPORT__*/
+
+extern void append_short_list(
+                l4c_call_list_struct *output,
+                kal_uint8 index,
+                kal_uint8 call_id,
+                kal_uint8 call_state,
+                kal_uint8 mpty,
+                kal_uint8 *number);
+
+extern kal_bool l4c_cc_exe_disc_aux_req(kal_uint8 src_id);
+
+extern kal_bool l4c_cc_rel_comp_req(kal_uint8 src_id, kal_uint8 call_id);
+
+extern kal_bool l4c_cc_get_inter_working_func_req(kal_uint8 src_id, kal_uint8 *iwf);
+
+extern kal_bool l4c_cc_set_inter_working_func_req(kal_uint8 src_id, kal_uint8 iwf);
+
+extern void l4c_mmi_ucm_at_res_req(kal_uint8 source_id, kal_uint8 result, kal_uint8 cause);
+
+extern void l4c_mmi_ucm_rcode_req(
+                kal_uint8 source_id,
+                kal_uint8 type,
+                kal_uint8 call_id,
+                kal_uint8 call_type,
+                l4c_number_struct number);
+
+extern void l4c_mmi_ucm_hf_ciev_req(kal_uint8 ind_type, kal_uint8 event);
+
+extern void l4c_cc_call_present_res_req(kal_uint8 is_mt_call_allowed,kal_uint8 call_id,kal_uint8 seq_num, kal_uint16 reject_cause);
+
+extern void l4c_cc_exe_cpi_req(kal_uint32 mode);
+
+extern void l4c_set_current_action(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool l4c_cc_get_ton_req(kal_uint8 *ton_type);
+
+extern kal_bool l4c_cc_set_ton_req(kal_uint8 ton_type);
+
+extern void l4c_ctm_set_status_req(kal_uint8 mode);
+
+extern kal_bool l4c_rtt_str_req(kal_uint8 call_id, kal_uint8 *rtt_str, kal_uint16 rtt_str_len);
+
+extern kal_bool l4c_cc_exe_srvcc_req(kal_uint8 src_id,
+                                     kal_uint8 num_call, 
+                                     l4ccsm_srvcc_call_cntxt_struct *call_tbl);
+
+#if defined(__IMS_SUPPORT__)
+extern kal_bool l4c_cc_ims_call_progress_req(kal_uint8 call_id, 
+                                            kal_uint8 type,
+                                            kal_uint8 direction,
+                                            kal_uint8 *number,
+                                            kal_bool is_far_end,
+                                            kal_uint32 disc_cause);
+
+#endif
+
+extern void l4c_cc_call_release_ind(void);
+
+extern void l4c_cc_call_connect_ind(void);
+
+extern void l4c_cc_call_chld_ind(kal_uint8 call_id);
+
+extern void l4c_cc_call_wait_ind(void);
+
+extern void l4c_cc_call_alert_ind(kal_uint8 alert);
+
+extern void l4c_cc_context_switch(l4c_me_reconfig_enum reconfig_type);
+#endif /* _L4C_CC_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_ciss_cmd.h b/mcu/protocol/interface/l4misc/l4c_ciss_cmd.h
new file mode 100644
index 0000000..262b004
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ciss_cmd.h
@@ -0,0 +1,211 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4c_ciss_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * 				HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_CISS_CMD_H
+#define _L4C_CISS_CMD_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_aux_struct.h"
+//#include "l4c_common_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+extern kal_bool l4c_ss_exe_emlpp_req(
+                    kal_uint8 src_id,
+                    kal_uint8 opcode, /* op_code_enum */
+                    kal_uint8 priority);
+
+extern kal_bool l4c_ss_exe_repeat_CCFC_req(
+                    kal_uint8 src_id,
+                    kal_uint8 mode, /* op_code_enum */
+                    kal_uint8 reason, /* ss_code_enum */
+                    kal_uint8 bs_code, /* (class) bs_code_enum */
+                    kal_uint8 timer,
+                    l4c_number_struct dest,
+                    kal_bool sub_addr_flag,
+                    l4c_sub_addr_struct sub_dest);
+
+extern kal_bool l4c_ss_exe_call_forward_req(
+                    kal_uint8 src_id,
+                    kal_uint8 opcode, /* op_code_enum */
+                    kal_uint8 type, /* ss_code_enum */
+                    kal_uint8 bs_code, /* bs_code_enum */
+                    kal_uint8 timer,
+                    l4c_number_struct dest,
+                    kal_bool sub_addr_flag,
+                    l4c_sub_addr_struct sub_dest);
+
+extern kal_bool l4c_ss_exe_repeat_CCWA_req(
+                    kal_uint8 src_id,
+                    kal_uint8 mode, /* op_code_enum */
+                    kal_uint8 classx /* (class) bs_code_enum */ );
+
+extern kal_bool l4c_ss_exe_call_wait_req(
+                    kal_uint8 src_id,
+                    kal_uint8 opcode, /* op_code_enum */
+                    kal_uint8 bs_code); /* bs_code_enum */
+
+extern kal_bool l4c_ss_exe_interrogate_req(kal_uint8 src_id, kal_uint8 type);
+
+extern kal_bool l4c_ss_exe_repeat_CLCK_SS_req(
+                    kal_uint8 src_id,
+                    kal_uint8 mode, /* op_code_enum */
+                    kal_uint8 reason, /* ss_code_enum */
+                    kal_uint8 classx, /* (class) bs_code_enum */
+                    kal_uint8 *passwd);
+
+extern kal_bool l4c_ss_exe_call_barring_req(
+                    kal_uint8 src_id,
+                    kal_uint8 opcode, /* op_code_enum */
+                    kal_uint8 type, /* ss_code_enum */
+                    kal_uint8 bs_code,
+                    kal_uint8 *passwd);
+
+extern kal_bool l4c_ss_get_priority_status_req(kal_uint8 src_id, kal_uint8 *priority);
+
+extern kal_bool l4c_ss_set_clir_flag_req(kal_uint8 src_id, kal_uint8 clir_flag);        /* rmmi_clir_enum */
+
+extern kal_bool l4c_ss_exe_change_password_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type, /* ss_code_enum */
+                    kal_uint8 *old,
+                    kal_uint8 *new1,
+                    kal_uint8 *new2);
+
+extern kal_bool l4c_ss_exe_ussd_req_ext(kal_uint8 src_id, 
+                                 kal_uint8 action, 
+                                 kal_uint8 *str, 
+                                 kal_uint8 dcs, 
+                                 kal_uint8 length);
+
+extern kal_bool l4c_ss_exe_ussd_req(kal_uint8 src_id, kal_uint8 *str, kal_uint8 dcs, kal_uint16 length);
+
+extern kal_bool l4c_ss_exe_ecusd_req(kal_uint8 src_id, kal_uint8 *str, kal_uint8 dcs, kal_uint16 length);
+
+extern kal_bool l4c_ss_exe_ccbs_req(kal_uint8 src_id, kal_uint8 op_code, kal_uint8 index);
+
+extern kal_bool l4c_ss_exe_abort_req(kal_uint8 src_id);
+
+extern kal_bool l4c_ss_exe_ack_req (kal_uint8 src_id,kal_uint8 cause);
+
+extern kal_bool l4c_sat_send_ussd_req(kal_uint8 input[MAX_DIGITS_USSD],
+	                                kal_uint8 dcs,
+	                                kal_uint8 length,
+	                                kal_uint8 type_of_modification);
+
+extern kal_bool l4c_sat_send_ss_req(kal_uint8 input[MAX_DIGITS_USSD],
+	                                kal_uint8 dcs,
+	                                kal_uint8 length,
+	                                kal_uint8 type_of_modification);
+
+extern kal_bool l4c_em_set_essp_req(kal_uint32 mode);
+extern kal_uint32 l4c_em_get_essp_req(void);
+#endif /* _L4C_CISS_CMD_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_common_enum.h b/mcu/protocol/interface/l4misc/l4c_common_enum.h
new file mode 100644
index 0000000..dad258f
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_common_enum.h
@@ -0,0 +1,1929 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4c_common_enum.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+#ifndef _L4C_COMMON_ENUM_H
+#define _L4C_COMMON_ENUM_H
+
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "l4c_common_enum_public.h"
+
+
+#include "global_def.h"
+
+#include "ps_public_def.h"
+#include "atp_public_defs.h"
+
+#define L4C_MAX_NAME_LEN         10
+
+#define MAX_PIN_LENGTH           8  /* to be removed */
+
+/*#define MAX_CC_SUB_ADDR_BCD_LEN  21  -move to ps_public_enum.h*/
+
+
+#define MAX_SS_PASSWD_LEN        9
+#define MAX_SS_PASSWD_BCD_LEN    5
+
+#define MAX_PLMN_BCD_LEN         3
+
+
+#define MAX_SIM_PASSWD_BCD_LEN   5
+
+#define INVALID_BS_CODE          0
+
+#define L4C_USE_DEFAULT_VALUE    255
+#define L4C_MAX_RETRY_COUNT      2
+
+#define MAX_CREE_STR_LEN         75
+
+#define l4C_MAX_TRANS_NUM         12
+
+ 
+#if ((!defined(__MTK_TARGET__)) && defined(__TCM_UT__)) // only used for UT Regression
+#define TCM_MAX_ACL_FILE_SIZE_SUPPORT  1000
+#else // #if ((!defined(__MTK_TARGET__)) && defined(__TCM_UT__)) // only used for UT Regression
+#define TCM_MAX_ACL_FILE_SIZE_SUPPORT  255
+#endif // ~ #if ((!defined(__MTK_TARGET__)) && defined(__TCM_UT__)) // only used for UT Regression
+
+#define TCM_BINDING_ID_NOT_BIND 0xFFFF
+
+#define L4C_LONGPRESS_TIMER  20 /* 2 sec */
+#define L4C_REPEATED_TIMER  10 /* 2 sec */
+
+#define L4C_DOWNLOAD_ERROR_TIMER  100 /* 10 sec */
+#define L4C_DOWNLOAD_SLEEP_TIMER 10 /* 1 sec */  
+/*
+    MAUI_02598495, custom gprs detach timer
+    #define L4C_GPRS_CONNECT_TIEMR   20 
+*/
+
+#define L4C_MAX_EM_PDP_NUM	3	//mtk00714 w0634
+
+#define L4C_SET_PS_CONF_TEST_PROFILE_OK            0 
+#define L4C_SET_PS_CONF_TEST_PROFILE_CONFLICT     -1
+#define L4C_SET_PS_CONF_TEST_PROFILE_WRITE_FAIL   -2
+
+#define INFO_EVENT  0
+#define INFO_REQ    1
+
+// hannu.huusko move the definition L4C_INVALID_RS_SNR to ps_public_def.h for ERRC LMOB in L1 reference
+#define L4C_INVALID_SERV_BAND 0xffff
+#define L4C_QOS_BITRATE_10_GBPS ((kal_uint64)10000000) // 10Gbps == 10M Kbps
+
+#define L4C_ECELL_INVALID_VALUE 0x0fffffff
+#define L4C_ECELL_INVALID_BSIC 0xffff
+#define L4C_ECELL_MAX_BUFFER_SIZE 2048
+#define L4C_ECELL_MAX_DATA_SIZE_PER_CELL 392 // refer to the max increasing size of rmmi_ecell_result_code_fmttr()
+#define L4C_ECELL_MAX_DATA_SIZE_OF_C2K_CELL 192 // refer to the max increasing size of l4c_nw_ecell_append_c2k_nbr_cell_info()
+
+
+#define L4C_NW_INVALID_CELL_ID 0x0FFFFFFF
+#define L4C_NW_INVALID_LAC 0xFFFF
+#define L4C_NW_INVALID_RAC 0xFF
+
+#define L4C_NSSAI_BUFFER_SIZE 2048
+#define L4C_PREFERRED_3GPP_NSSAI       0x01
+#define L4C_PREFERRED_NON3GPP_NSSAI    0x02
+
+#define L4C_NW_INVALID_SRXLEV L4C_INVALID_SIGNAL_INT16
+#define L4C_NW_INVALID_SQUAL  L4C_INVALID_SIGNAL_INT16
+
+
+
+typedef enum 
+{
+    L4C_KEY_FROM_DRVKPD = 0,
+    L4C_KEY_FROM_CKPD
+}l4c_keypad_press_type_enum;
+
+typedef enum {
+	ACL_NOT_SUPPORT,
+	ACL_DISABLE,
+	ACL_ENABLE
+} l4c_acl_mode_enum;
+
+enum
+{
+   GSM_ONLY,
+   GPRS_ONLY,
+   GSM_AND_GPRS
+};
+
+typedef enum
+{
+   TCM_INVALID_L2P,
+   TCM_CCMNI_L2P,
+   TCM_RNDIS_L2P,
+   TCM_MBIM_L2P,
+   //TCM_IPCORE_L2P,
+   //TCM_UPS_L2P,
+   //TCM_WM_L2P,
+   TCM_PPP_L2P,
+   TCM_LHIF_L2P,
+}l4c_tcm_l2p_enum;
+
+typedef enum{
+    EI3GPPIRAT_SROUCE_RAT_START = 1,
+    EI3GPPIRAT_TARGET_RAT_START = 2,
+    EI3GPPIRAT_SOURCE_RAT_FINISH = 3,
+    EI3GPPIRAT_TARGET_RAT_FINISH = 4,
+} ei3gppirat_action_enum;
+
+
+typedef enum{
+    EPDNCTRANS_SRC_RAT_PDN_TRANSFER_START = 1,
+    EPDNCTRANS_TARGET_RAT_PDN_RECEIVE_START = 2,
+    EPDNCTRANS_SRC_RAT_PDN_TRANSFER_END = 3,
+    EPDNCTRANS_TARGET_RAT_PDN_RECEIVE_END = 4,
+} epdnctrans_action_enum;
+
+
+typedef enum{
+    L4C_C2K_SET_ONE,
+    L4C_C2K_RESET_ONE,
+    L4C_C2K_FORCE_SET_ONE,
+} l4c_c2k_func_action_enum;
+
+
+typedef enum{
+    L4C_C2K_LWCG_PDN_TRANSFER_STATE_NONE,
+    L4C_C2K_LWCG_WAITING_IA_QUERY_CNF,
+    L4C_C2K_LWCG_WAITING_TCM_SET_IA_PDN_CNF,
+    L4C_C2K_LWCG_SETTING_PDN_RECEIVED_FROM_C2K,
+} l4c_c2k_lwcg_pdn_context_transfer_state_enum;
+
+typedef enum{
+    L4C_C2K_IRAT_NONE,
+    L4C_C2K_IRAT_ONGOING_C2K_TO_LTE,
+    L4C_C2K_IRAT_ONGOING_LTE_TO_C2K,
+} l4c_c2k_irat_state_enum;
+
+typedef enum{
+    L4C_C2K_LC_md3_transfer_cid0_with_ia,
+    L4C_C2K_LC_md3_transfer_cid0_without_ia,
+    L4C_C2K_LC_md3_transfer_other_cid_with_ia,
+    L4C_C2K_LC_md3_not_transfer_cid0_but_with_other_cid_ia,
+    L4C_C2K_LC_md3_not_transfer_cid0_and_any_ia,
+} l4c_c2k_lc_irat_debug_enum;
+
+typedef enum{
+    L4C_PS_DEBUG_CMD_MODE_NOT_SUPPORT,
+    
+    L4C_PS_DEBUG_EGPCO_CID_ERROR,
+    L4C_PS_DEBUG_EGPCO_IEID_IDENTIFY_ERROR,
+    L4C_PS_DEBUG_EGPCO_0017_ERROR,
+    L4C_PS_DEBUG_EGPCO_FF00_ERROR,
+    L4C_PS_DEBUG_EGPCO_FF01_ERROR,
+    L4C_PS_DEBUG_EGPCO_FF02_ERROR,
+    L4C_PS_DEBUG_EGPCO_FF03_ERROR,
+
+    
+    L4C_PS_DEBUG_CGEQ_MaxBitRateUL_DecodeError,
+    L4C_PS_DEBUG_CGEQ_MaxBitRateDL_DecodeError,
+    L4C_PS_DEBUG_CGEQ_GuaranteeBitrateUL_DecodeError,
+    L4C_PS_DEBUG_CGEQ_GuaranteeBitrateDL_DecodeError,
+    L4C_PS_DEBUG_CGEQ_MaxSduSize_DecodeError,
+    L4C_PS_DEBUG_CGEQ_SduErrorRatio_Error,
+    L4C_PS_DEBUG_CGEQ_ResidualBitErrRate_Error,
+    L4C_PS_DEBUG_CGEQ_TransferDelay_Error,
+    L4C_PS_DEBUG_NotSupport_PfDirection,
+    L4C_PS_DEBUG_GetEpsQosError,
+    L4C_PS_DEBUG_CGDCONT_PdpType_Error,
+    L4C_PS_DEBUG_CGDCONT_PdpType_parse_result_Error,
+    L4C_PS_DEBUG_CGDCONT_APN_len_100_Error,
+    L4C_PS_DEBUG_CGTFT_PacketFilterIdentifier_parse_result_Error,
+    L4C_PS_DEBUG_CGTFT_ProtocolNumberNextHeader_parse_result_Error,
+    L4C_PS_DEBUG_CGTFT_LocalPortRange_Error,
+    L4C_PS_DEBUG_CGTFT_RemotePortRange_Error,
+    L4C_PS_DEBUG_CGTFT_IpsecSpi_Error,
+    L4C_PS_DEBUG_CGTFT_TosTrafficClassAndMask_Error,
+    L4C_PS_DEBUG_CGTFT_FlowLabel_parse_result_Error,
+    L4C_PS_DEBUG_CGTFT_PfDirection_Error,
+    L4C_PS_DEBUG_CGTFT_PfDirection_parse_result_Error,
+    L4C_PS_DEBUG_CGTFT_LocalAddrAndSubnetMask_Error,
+    L4C_PS_DEBUG_CGTFT_QRI_Error,
+    L4C_PS_DEBUG_CGQREQ_PrecedenceClass_Error,
+    L4C_PS_DEBUG_CGQREQ_DelayClass_Error,
+    L4C_PS_DEBUG_CGQREQ_ReliabilityClass_Error,
+    L4C_PS_DEBUG_CGQREQ_PeakThroughput_Error,
+    L4C_PS_DEBUG_CGQREQ_MeanThroughput_Error,
+    L4C_PS_DEBUG_CGQMIN_PrecedenceClass_Error,
+    L4C_PS_DEBUG_CGQMIN_DelayClass_Error,
+    L4C_PS_DEBUG_CGQMIN_ReliabilityClass_Error,
+    L4C_PS_DEBUG_CGQMIN_PeakThroughput_Error,
+    L4C_PS_DEBUG_CGQMIN_MeanThroughput_Error,
+    L4C_PS_DEBUG_CGEQ_UndefineCommandConflict,
+    L4C_PS_DEBUG_CGEQ_Traffic_class_Bigger_Than_3,
+    L4C_PS_DEBUG_CGEQ_TrafficClass_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_MaxBitRateUL_EncodeError,
+    L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_MaxBitRateUL,
+    L4C_PS_DEBUG_CGEQ_MaxBitRateUL_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_MaxBitRateDL_EncodeError,
+    L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_MaxBitRateDL,
+    L4C_PS_DEBUG_CGEQ_MaxBitRateDL_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_GuaranteeBitRateUL_EncodeError,
+    L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_GuaranteeBitRateUL,
+    L4C_PS_DEBUG_CGEQ_GuaranteedBitrateUL_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_GuaranteeBitRateDL_EncodeError,
+    L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_GuaranteeBitRateDL,
+    L4C_PS_DEBUG_CGEQ_GuaranteedBitrateDL_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_DeliveryOrder_BiggerThan_1,
+    L4C_PS_DEBUG_CGEQ_DeliveryOrder_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_MaxSduSize_Encode_Error,
+    L4C_PS_DEBUG_CGEQ_MaxSduSize_Value_Unexpected,
+    L4C_PS_DEBUG_CGEQ_MaxSduSize_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_SduErrorRatio_Value_Unexpected,
+    L4C_PS_DEBUG_CGEQ_SduErrorRatio_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_ResidualBitErrorRatio_Value_Unexpected,
+    L4C_PS_DEBUG_CGEQ_ResidualBitErrorRatio_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_DeliveryOfErroneousSdu_Value_Unexpected,
+    L4C_PS_DEBUG_CGEQ_DeliveryOfErroneousSdu_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_TransferDelay_EncodeError,
+    L4C_PS_DEBUG_CGEQ_TransferDelay_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_TrafficHandlingPriority_Error,
+    L4C_PS_DEBUG_CGEQ_TrafficHandlingPriority_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_SourceStatisticsDescriptor_Error,
+    L4C_PS_DEBUG_CGEQ_SourceStatisticsDescriptor_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_SignallingIndication_Error,
+    L4C_PS_DEBUG_CGEQ_SignallingIndication_ParseResult_Error,
+    L4C_PS_DEBUG_CGEQ_CommandConflict,
+    L4C_PS_DEBUG_CGACT_CID_Error,
+    L4C_PS_DEBUG_CGCMOD_CID_Error,
+    L4C_PS_DEBUG_CGPADDR_GetAddr_Error,
+    L4C_PS_DEBUG_CGAUTO_CgautoN_Error,
+    L4C_PS_DEBUG_CGANS_L2P_OnlyCanBe_PPP_Error,
+    L4C_PS_DEBUG_CGANS_CID_Error,
+    L4C_PS_DEBUG_CGEREP_mode_Error,
+    L4C_PS_DEBUG_CGEREP_bfr_Error,
+    L4C_PS_DEBUG_CGEQOS_Qci_parse_result_Error,
+    L4C_PS_DEBUG_CGEQOS_QCI_0_Error,
+    L4C_PS_DEBUG_CGEQOS_QCI_65_66_69_70_Error,
+    L4C_PS_DEBUG_CGEQOS_DlGbr_encode_Error,
+    L4C_PS_DEBUG_CGEQOS_DlGbr_parse_result_Error,
+    L4C_PS_DEBUG_CGEQOS_UlGbr_encode_Error,
+    L4C_PS_DEBUG_CGEQOS_UlGbr_parse_result_Error,
+    L4C_PS_DEBUG_CGEQOS_DlMbr_encode_Error,
+    L4C_PS_DEBUG_CGEQOS_DlMbr_parse_result_Error,
+    L4C_PS_DEBUG_CGEQOS_UlMbr_encode_Error,
+    L4C_PS_DEBUG_CGEQOS_UlMbr_parse_result_Error,
+    L4C_PS_DEBUG_CGAUTH_AuthPort_Error,
+    L4C_PS_DEBUG_ECNCFG_MobileData_parse_result_Error,
+    L4C_PS_DEBUG_ECNCFG_DataRoaming_parse_result_Error,
+    L4C_PS_DEBUG_ECNCFG_volte_parse_result_Error,
+    L4C_PS_DEBUG_ECNCFG_ImsTtestMode_parse_result_Error,
+    L4C_PS_DEBUG_EGDCONT_RoamingIpType_Error,
+    L4C_PS_DEBUG_VZWAPNE_apnb_parse_result_Error,
+    L4C_PS_DEBUG_VZWAPNE_apned_parse_result_Error,
+    L4C_PS_DEBUG_EGACT_CID_Error,
+    L4C_PS_DEBUG_ACTTEST_CID_Error,
+    L4C_PS_DEBUG_EGDELPF_pfid_parse_result_Error,
+    L4C_PS_DEBUG_EGDELPF_pfid_Error,
+    L4C_PS_DEBUG_EGLNKPF_pfid_parse_result_Error,
+    L4C_PS_DEBUG_EGLNKPF_pfid_Error,
+    L4C_PS_DEBUG_EDALLOW_mode_Error,
+
+    L4C_PS_DEBUG_EAPNSYNC_APN_len_100_Error,
+    L4C_PS_DEBUG_EAPNSYNC_inactivity_time_Error,
+
+    L4C_PS_DEBUG_CMD_MODE_NOT_SUPPORT_IN_U64_HANDLER,
+    L4C_PS_DEBUG_UNEXPECTED_ILM_SENT_TO_U64_HANDLER,
+
+    L4C_PS_DEBUG_C5GQOS_VQI_parse_result_Error,
+    L4C_PS_DEBUG_C5GQOS_VQI_0_Error,
+    L4C_PS_DEBUG_C5GQOS_VQI_65_66_69_70_Error,
+    L4C_PS_DEBUG_C5GQOS_DL_GFBR_parse_result_Error,
+    L4C_PS_DEBUG_C5GQOS_UL_GFBR_parse_result_Error,
+    L4C_PS_DEBUG_C5GQOS_DL_MFBR_parse_result_Error,
+    L4C_PS_DEBUG_C5GQOS_UL_MFBR_parse_result_Error,
+
+    L4C_PS_DEBUG_GetVgQosError,
+    L4C_PS_DEBUG_GetPduSessionAmbrError,
+    L4C_PS_DEBUG_CLADN_Parse_Error,
+    L4C_PS_DEBUG_CLADNU_Length_Error,
+}l4c_ps_debug_enum;
+
+typedef enum
+{
+   TCM_REJECT_PDP_ACT,
+   TCM_ACCEPT_PDP_ACT
+}l4c_tcm_manual_answer_enum;
+
+typedef enum
+{
+    L4C_TCM_CID_STATE_NONE = 0,
+    L4C_TCM_CID_STATE_ACTING,
+    L4C_TCM_CID_STATE_MODING,
+    L4C_TCM_CID_STATE_DEACTING,
+    L4C_TCM_CID_STATE_DEACT_ABORTING,
+}l4c_tcm_internal_cid_state;
+
+typedef enum {
+    L4B_FIRST_CHANNEL,
+    L4B_ATP_FIRST_CHANNEL = L4B_FIRST_CHANNEL,
+    L4B_ATP_LAST_CHANNEL = L4B_FIRST_CHANNEL + ATP_CHANNEL_NUMBER-1,
+
+    /* channels for L4BXXX, just estimation */
+    L4B_L4BXXX_FIRST_CHANNEL,
+    L4B_L4BXXX_LAST_CHANNEL = L4B_L4BXXX_FIRST_CHANNEL + 20,
+    
+    L4B_MAX_CHANNEL_NUMBER,
+    
+    L4B_INVALID_CHANNEL = 0xff
+} l4b_channel_enum;
+
+typedef enum
+{
+   LMMI_SRC,
+   LMMI_SRC2,   /* currently only for MMI SMS backgraound action */
+   SAT_SRC,
+   WAP_SRC,
+   L4C_SRC,   
+   RMMI_SRC, /*UART or CMUX virtual port 1*/	   
+   RMMI_SRC_END = RMMI_SRC + L4B_MAX_CHANNEL_NUMBER -1,
+   RMMI_SAT, /*SAT inject AT*/
+#if defined(__MESSAGE_BASED_AT_SUPPORT__)
+   RMMI_MSG_AT_SRC,
+   RMMI_MSG_AT_SRC_END = RMMI_MSG_AT_SRC + RMMI_MAX_MSG_BASED_AT_CHANNEL-1,
+#endif
+#if 0 //move to ATP_IO
+/* under construction !*/
+/* under construction !*/
+#endif
+   RMMI_ALL, /*for rmmi indication*/
+#ifdef __TC01_IMS_SUPPORT__
+   RMMI_SMS_IMS_SRC,
+#endif
+   L4BPWR_SRC,        // move to here temporarily (by usage and meaning, it shall be put before RMMI_SRC or L4C_SRC)
+   VDM_SRC,         // not used after MOLY00442497
+   MAX_SOURCE_NUM,
+   L4C_NO_USER, /*no user register action*/
+   L4C_NVRAM_ACCESS_SRC, /*NVRAM access source for MMI read/write NVRAM */
+   SSDS_SRC,
+   RMMI_URC_SRC_2,
+   INVALID_SRC/*Invalid source for MT*/
+} l4c_source_id_enum;
+
+#define RMMI_UNSOLICITED    RMMI_ALL
+#ifdef __CMUX_SUPPORT__
+#define RMMI_UNSOLICITED_2  (RMMI_URC_SRC_2)
+#ifdef __TC01_IMS_SUPPORT__
+#define RMMI_UNSOLICITED_3  RMMI_SMS_IMS_SRC
+#endif /* __TC01_IMS_SUPPORT__ */
+#endif /* __CMUX_SUPPORT__ */
+
+
+typedef enum
+{
+   L4C_COMMAND_STATE = 0,
+   L4C_ONLINE_COMMAND_STATE,
+   L4C_ONLINE_DATA_STATE,
+   L4C_ONLINE_DATA_GPRS_STATE,
+   L4C_ONLINE_STATE//mtk01616_080322:either CSD or GPRS data state
+} l4c_state_enum;
+
+/*
+typedef enum
+{
+   L4C_IDLE_STATE = 0,
+   L4C_CMD_FORWARDED_FOR_ACTION_STATE,
+   L4C_INTERMEDIATE_RESULT_CODE_SENT_STATE
+} l4c_sub_state_enum;
+*/
+
+typedef enum
+{
+	L4C_CC,
+	L4C_SS,
+	L4C_SMS,
+	L4C_RAC,
+	L4C_TCM,
+	L4C_PHB,
+	L4C_EQ,
+#if 0 //__CTM_SUPPORT__	
+/* under construction !*/
+#endif	
+	L4C_SMU,  
+	L4C_SAT,
+    L4C_MAX_MODULE_ID_NUM
+}l4c_module_id;
+
+typedef enum
+{
+   L4C_NO_ACTION,
+   L4C_FIRST_ACTION,
+   NVM_R_EXE = L4C_FIRST_ACTION,
+   NVM_W_EXE,
+   //UART_READ_EXE,
+   UART_WRITE_EXE,
+   UART_PORT_READ,
+   SIM_R_EXE,
+   SIM_W_EXE,
+   CCSP_EXE,
+   SIM_FILE,
+   CSD_PROF_SET,
+   ABM_ACT_APP,
+   ABM_ACT,
+   ABM_ACT_ECC,
+   PPP_ACT,
+   ABM_DEACT,
+   ABM_DISC,
+   FIRST_CC_ACTION,
+   CHLD_EXE = FIRST_CC_ACTION,
+#ifdef __MOD_SMU__
+   CACM_EXE,
+   CAMM_EXE,
+#endif /* __MOD_SMU */
+   CHUP_EXE,
+   CTFR_EXE,                      
+   ATA_EXE,
+   ATD_APP,
+   ATD_EXE,
+   ATD_ECC,
+   ATD_ECC_CHANGE_RAT, //MAUI_02554068
+   ATD_ECC_CHANGE_RAT_ABORT, //MAUI_02554068
+   CMOD_EXE,
+   ATH_EXE,
+   PARSE_SS_EXE,
+   CPHS_ALS_UPDATE,
+   CHLD_CSD_DEACT,        /* this action is to handle CSD active and incoming call coming */
+   VTS_EXE,
+   EVTS_EXE,
+   EMSD_EXE,
+   EMSDSET_EXE,
+   EMSDPUSH_EXE,
+   EPSAP_EXE,
+   EPSAPPULL_EXE,
+   CLCC_READ,
+   LAST_CC_ACTION = CLCC_READ,
+   FIRST_SS_ACTION,                 
+   CAEMLPP_EXE = FIRST_SS_ACTION,
+   CCFC_REPEAT,
+   CCFC_EXE,
+   CCWA_REPEAT,
+   CCWA_EXE,
+   ITRG_EXE,
+   CDIP_EXE,
+   CLCK_SS_REPEAT,
+   CLCK_SS_EXE,
+   CLIP_EXE,
+   CLIR_EXE,
+   CNAP_EXE,
+   COLP_EXE,
+   COLR_EXE,
+   CPWD_SS_EXE,                     
+   CB_FAC_IND,
+   CCBS_EXE,
+   CUSD_EXE,
+   USSR_FAC_IND,
+   USSN_FAC_IND,
+   LAST_SS_ACTION = USSN_FAC_IND,
+#ifdef CSD_SUPPORT
+   //FIRST_DATA_ACTION,
+   //LAST_DATA_ACTION,
+#endif
+   FIRST_EQ_ACTION,
+   VOL_SET = FIRST_EQ_ACTION,
+   AUDI_NAME_PLAY, 
+   AUDI_NAME_STOP,/* mtk00468 add for play audio by name*/
+   AUDI_STRING_PLAY, 
+   AUDI_STRING_STOP, /* mtk00468 add for play audio by string */
+   AUDI_SET, /* for audio profile set 030627 mtk00468*/
+   AUDI_PARAM_SET,
+   GAIN_SET,
+   CMUT_SET,
+   CSIL_SET,
+   CALM_SET,   /* alert, removed later */
+   CKPD_EXE,                       
+   CIND_SET,
+   CALA_SET,
+   CALD_EXE,
+   CSDF_SET,
+   CSTF_SET,
+   CLAN_SET,
+   GPIO_SET,
+   CSGT_SET,
+   CGCI_SET,
+   CVIB_SET,
+   CLVL_READ,
+   CRSL_READ,
+   ATIPR_SET,
+   HW_PROF_SET,
+   MS_SN_READ,
+   MS_SV_READ, //mtk02508_090310 add for SV read
+   MS_SN_SET,
+   MS_SV_SET, //mtk02508_090310 add for SV set
+   LOCK_NVRAM,
+   TEST_REPORT_READ,  //mtk00714 add for autotest report read
+   RF_TEST_SET,
+#ifdef __TC01__
+   RX_RSSI_GET,   //to get the RSSI
+#endif
+//#ifdef VM_SUPPORT
+   VM_GET_EXE,
+   VM_REC_EXE,
+   VM_PLAY_EXE,
+   VM_DEL_EXE,
+   VM_STOP_EXE,
+   VM_ABT_EXE,
+   VM_PAU_EXE,
+   VM_RES_EXE,
+   VM_APP_EXE,
+   VM_REN_EXE,
+//#endif
+
+   POWERON_EXE,
+   POWEROFF_EXE,
+#ifdef __MOBILE_BROADBAND_PROVISION_CONTEXT__
+   MOBILE_BROADBAND_PROVISION_CONTEXT_GET,
+   MOBILE_BROADBAND_PROVISION_CONTEXT_GET_ALL,   
+   MOBILE_BROADBAND_PROVISION_CONTEXT_SET,
+#endif /* __MOBILE_BROADBAND_PROVISION_CONTEXT__ */
+
+   PS_CONF_TEST_PROFILE_SET,
+
+   ENFC_EXE,
+   ESDS_SET,
+   LAST_EQ_ACTION = ESDS_SET,
+   
+#ifdef __IRDA_SUPPORT__
+   FIRST_IRDA_ACTION,
+   PPP_DEACT_EXE = FIRST_IRDA_ACTION, /* add to keep PPP deactive */
+   LAST_IRDA_ACTION = PPP_DEACT_EXE,
+#endif /*__IRDA_SUPPORT__*/
+
+
+#ifdef __MOD_TCM__
+   FIRST_GPRS_ACTION,
+   CGACT_ACT_EXE = FIRST_GPRS_ACTION,
+   CGACT_DEACT_EXE,
+   CGACT_TEST,
+   CGACT_ATTACH_EXE,
+   CGANS_EXE,
+   CGCMOD_EXE,
+   CGDCONT_EXE,
+   //GPRS_COUNTER_RESET,
+   CGDSCONT_EXE,
+   CGQMIN_EXE,
+   CGQREQ_EXE,
+   CGEQMIN_EXE,
+   CGEQREQ_EXE,
+   //mtk04121
+   CGEQOS_EXE,
+   C5GQOS_EXE,
+   CGTFT_EXE,
+   EGPAU_EXE, // mtk00468 add for ppp auth info set  031015
+   CGDATA_EXE,
+   CGAUTH_EXE,
+   EGDCONT_EXE,
+   EAPNSYNC_EXE,
+   EGPCO_EXE,
+
+#ifdef __MEDIATEK_SMART_QOS__
+   SMART_QOS_ENTRY_SET,
+   SMART_QOS_MODE_SET,
+#endif /* __MEDIATEK_SMART_QOS__ */
+
+   /* VZW_SUPPORT */
+   VZWAPNE_SET,
+   VZWAPNETMR_SET,
+   VZWAPNRDP_SET,
+   REVIVE_PDN_EXE,
+ 
+   TCM_START_EXE,
+
+   CGUNDEF_EXE,
+   LAST_GPRS_ACTION = CGUNDEF_EXE,
+#endif
+#ifdef __MOD_RAC__
+   FIRST_NW_ACTION,
+   CGATT_ATTACH_EXE = FIRST_NW_ACTION,
+   CGATT_DETACH_EXE,
+   ATTACH_EXE,
+   DETACH_EXE,
+   CGCLASS_SET,
+   
+   /* Johnny: we use SET_GPRS_CON_TYPE trickly:
+              1. we set it but send RSP to MMI without CNF
+              2. we clear it when we receive CNF
+              3. we will check command conflict in l4c_nw_set_gprs_connect_type_req() */
+   SET_GPRS_CON_TYPE,			/* '04/01/07 mtk00468 add for set gprs connect type*/
+   SET_HSPA_MODE,//mtk02285, hspa_mmi
+   CBND_SET,
+   COPS_EXE,
+   COPS_ATTACH_EXE,
+   PSDM_ATTACH_EXE,
+   NWSEL_EXE,
+   PWROFF_DETACH,
+   RFOFF_DETACH,
+   RFOFF_SIM_POWEROFF,
+   RFON_SET_RAT_MODE,
+   RFON_ATTACH,
+   COPS_TEST,
+   COPS_TEST_STOP, //mtk01616_070910 
+   CSG_TEST,
+   CSG_TEST_STOP,
+   SET_RAT_MODE_DETACH,
+   SET_RAT_MODE,
+   SET_RAT_MODE_ATTACH,
+   PWRON_SET_RAT_MODE,
+   PWRON_ATTACH,
+   SYS_SEL,
+   SYS_CONFIG,
+   SET_CT_MODE,
+   CSRA_RF_OFF,
+   CSRA_SIM_OFF,
+   CSRA_EXE,
+   CSRA_FINISH_PHASE1,
+   CSRA_FINISH_PHASE2,
+   EACTS_EXE,
+   EUEDRX_EXE,
+   CNTI_EXE,
+   LAST_NW_ACTION = CNTI_EXE,
+#endif
+   FIRST_PHB_ACTION,
+   CPBF_EXE= FIRST_PHB_ACTION,
+   PHB_FDN_CHECK,//action for fdn check for sms sca and da
+   PHB_NUMBER_CHECK, // for wise, check if phone number is ECC or FDN
+   PHB_FDN_GET_NAME, 
+   CPBR_EXE,
+   ECPBR_EXE,
+   CPBR_RANGE_EXE,
+   SCPBR_EXE,
+   EPBUM_EXE,
+   CNUM_EXE,
+   CPBW_EXE,
+   ECPBW_EXE,
+   CPBW_USIM_CHECK, 
+   CPBD_EXE,
+   CPBR_LN,
+   CPBW_LN,
+   SYNC_LN, 
+   EAPPROVE_EXE,
+   CPBD_LN,	
+   LAST_PHB_ACTION = CPBD_LN,
+   FIRST_SIM_ACTION,
+   CLCK_EXE = FIRST_SIM_ACTION,
+   CMAR_EXE,
+   CPIN_EXE,
+   CPIN2_EXE,   
+   EPIN_EXE,
+   CPOL_EXE,
+   CPUC_EXE,
+   CPWD_EXE,
+   XDN_EXE,
+   CSIM_EXE,
+   CRSM_EXE,
+   CGLA_EXE, //   MAUI_03082391//mtk02514_nfc
+   ECGLA_EXE,
+   CCHO_EXE,
+   CCHC_EXE,
+   FILE_CHANGE_EXE,
+   SPN_EXE,
+   LAST_SIM_ACTION = SPN_EXE,
+   FIRST_SMS_ACTION,               
+   CGSMS_SET = FIRST_SMS_ACTION,
+   CMGC_EXE,
+   CMGD_EXE,
+   CMGD_TEST_EXE,
+   EQSI_EXE,
+   CMGL_EXE,
+   CMGR_EXE,
+   CMGS_EXE,
+   CMGS_PDU_EXE,
+   CMGW_EXE,
+   CMGW_COPY,
+   EMGL_EXE,
+   CMSS_EXE,
+   CMST_SET, //mtk01616_070703:sms set status , mmi
+   CPMS_SET,
+   /*CRES_EXE,
+   CSAS_EXE,*/
+   CSCA_SET,
+   CNMI_SET,                     
+   MAILBOX_SET, 					/* 030617 mtk00468 add for set mail box address*/
+   MAILBOX_GET,	
+   MBI_SET,//mtk01616_071016: R4/R5 SMS
+   CSMP_SET,
+   CSAS_SET,
+   CRES_SET,
+   LAST_SMS_ACTION = CRES_SET,
+#ifdef __CB__
+   CBMI_SET,
+#endif
+#ifdef __SAT__
+   SAT_ATD_EXE,
+   SAT_USD_EXE,
+   MENU_SEL_EXE,
+   SAT_CMGS_EXE,
+   SAT_DTMF_EXE,
+#ifdef __SATCE__   
+   //MAUI_02395134 SAT_CSD_EXE,
+   SAT_OPEN_CHANNEL_EXE,
+   SAT_SEND_DATA_EXE,
+   SAT_RECV_DATA_EXE,
+#endif /* __SATCE__ */   
+#endif
+
+
+    ES3G_EXE,
+    DSS_EXE, // Dynamic SIM SWITCH
+   ATO_EXE,                      
+#ifdef __WAP_SUPPORT					/* 030528 mtk00468 add for WAP profile set and query*/
+   CWAP_ACCESS,
+   //L4C_LAST_ACTION = CWAP_ACCESS
+//#else
+   //L4C_LAST_ACTION = ATO_EXE
+#endif 
+
+#ifdef __TCM_UT__
+	TCM_UNDEF_NO_ACTION,
+	TCM_UNDEF_CGDCONT_EXE,
+	TCM_UNDEF_CGDSCONT_EXE,
+	TCM_UNDEF_CGQMIN_EXE,
+	TCM_UNDEF_CGQREQ_EXE,
+	TCM_UNDEF_CGEQMIN_EXE,
+	TCM_UNDEF_CGEQREQ_EXE,
+	TCM_UNDEF_CGTFT_EXE,
+#endif
+
+
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+    ETSTLP_EXE,
+
+#ifdef __SAT__
+    SAT_STKSMSOIP_PDU_EXE,   
+    SAT_STKSMS_MODE1_EXE,
+#endif
+
+#ifdef __GEMINI__
+    RSIM_ONGOING,
+    AKA_ONGOING,
+#endif
+
+    META_EXE,
+    OP12_LOCK_DETACH,
+    OP12_UNLOCK_ATTACH,
+    OP12_LOCK_ATTACH_ANY,
+    OP01_UNLOCK_ATTACH,
+    OP01_LOCK_DETACH,
+    IMEI_MEID_LOCK_DETACH,
+    IMEI_MEID_UNLOCK_ATTACH,
+    IMEI_MEID_LOCK_ATTACH_ANY,    
+    ALTER_SERVICE_MODE_EXE,
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__	
+    MS_BLACK_LIST_LOCK_DETACH,
+    MS_BLACK_LIST_UNLOCK_ATTACH,
+    MS_BLACK_LIST_UNLOCK_DETACH,
+    MS_BLACK_LIST_LOCK_ATTACH_ANY,
+#endif
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+	ECALLQUERY_EXE,
+#endif
+    L4C_LAST_ACTION
+} l4c_action_enum;
+
+typedef enum
+{
+    L4C_PENDING_NO_ACTION,
+    L4C_PENDING_DETACH_EXE,
+    L4C_PENDING_ATTACH_EXE,
+    L4C_PENDING_PS_ATTACH_EXE,
+    L4C_PENDING_PS_DETACH_EXE,
+    L4C_PENDING_OP01_SIM_LOCK_DETACH_EXE,
+    L4C_PENDING_OP01_SIM_UNLOCK_ATTACH_EXE,
+    L4C_PENDING_OP01_RAT_LOCK_EXE,
+    L4C_PENDING_OP01_RAT_UNLOCK_EXE,
+    L4C_PENDING_IMEI_MEID_LOCK_DETACH_EXE,
+    L4C_PENDING_IMEI_MEID_UNLOCK_ATTACH_EXE,   
+    L4C_PENDING_IMEI_MEID_LOCK_ATTACH_ANY_EXE,
+    L4C_PENDING_FORCE_CHANGE_RAT_EXE,
+    L4C_PENDING_UE_CAPABILITY_EXE,
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__	
+    L4C_PENDING_MS_BLACK_LIST_LOCK_DETACH_EXE,
+    L4C_PENDING_MS_BLACK_LIST_UNLOCK_ATTACH_EXE,
+    L4C_PENDING_MS_BLACK_LIST_UNLOCK_DETACH_EXE,
+    L4C_PENDING_MS_BLACK_LIST_LOCK_ATTACH_ANY_EXE
+#endif	
+} l4c_pending_action_enum;
+
+typedef enum 
+{
+    L4C_ROOT_NO_ACTION,
+    L4C_ROOT_PWROFF_EXE,
+    L4C_ROOT_EFUN_EXE,
+    L4C_ROOT_PRE_RECONFIG_EXE,  // Pre-process before reconfigure processing
+    L4C_ROOT_RECONFIG_EXE,
+    L4C_ROOT_CHECK_DUPLEX_MODE_EXE,
+    L4C_ROOT_STATE_RECOVER_EXE, // Recover back to original EFUN state
+    L4C_ROOT_NOTIFY_RSVA_MODE_SWITCH_EXE, //Notify RSVA the beginning of duplex mode switch
+    L4C_ROOT_LAST_ACTION
+}l4c_root_action_enum;
+
+typedef enum
+{
+   L4C_FIRST_IND,                /*0*/
+   INIT_IND = L4C_FIRST_IND,
+   NVM_READY_IND,
+   SIM_FAIL_IND,
+   PHB_FIN_IND,
+   LN_FIN_IND,
+   
+   FIRST_CC_IND,
+   CAOC_IND = FIRST_CC_IND,
+   SPEECH_IND,
+   ALERT_IND,
+   CCWA_IND,
+   CRING_IND,
+   DISC_IND,
+   REL_IND,                       /* 10 */
+   CMOD_IND,                     
+   CONN_IND,
+   NOTIFY_SS_IND,
+   NS_CUG_IND,
+   NS_ECT_IND,
+   NS_CNAP_IND,
+   NS_CCBS_IND,
+   CPHS_ALS_IND,//mtk00468 add for ripple CPHS feature
+   START_DTMF,
+   STOP_DTMF,						/* 20 */
+   PARSE_SS_IND,
+   LAST_CC_IND = PARSE_SS_IND,
+   
+   FIRST_SS_IND,
+   CB_PWD_IND = FIRST_SS_IND,
+   CUSD_R_IND,
+   CUSD_N_IND,                 
+   CPHS_CFU_IND, /* mtk00468 030602 add for Paul cphs feature*/
+   LAST_SS_IND = CPHS_CFU_IND,
+   
+   FIRST_EQ_IND,
+   KEY_IND = FIRST_EQ_IND,
+   POWERON_IND,
+   BAT_IND,
+//#ifdef VM_SUPPORT
+   VM_REC_IND,
+   VM_PLAY_IND,						/*30*/
+//#endif
+   RTC_IND,
+   ALARM_IND,
+   ADC_CHAN_IND,
+   EM_SET_LCM_IND,//mtk00468 add for factory mode test
+   EM_KEYPAD_ACT_IND,//mtk00468 add for factory mode test
+   EM_LCM_SLEEP_IND,//mtk00468 add for LCM backlight turn on/off
+   FACTORY_IND, //mtk00468 1107 add for factory test inform MMI
+   MMI_PROF_SET_IND, //mtk00468 add 1117 for mmi's profile setting indication
+   AUDI_STOP_IND,
+   GPIO_IND,
+   LAST_EQ_IND = GPIO_IND,
+   
+#ifdef __IRDA_SUPPORT__
+   FIRST_IRDA_IND,
+   IRDA_DISCON_IND = FIRST_IRDA_IND,
+   LAST_IRDA_IND = IRDA_DISCON_IND,
+#endif /* __IRDA_SUPPORT__ */
+
+#ifdef __MOD_TCM__
+   FIRST_GPRS_IND,
+   GACT_IND = FIRST_GPRS_IND,
+   GPRS_STATUS_IND,
+   LAST_GPRS_IND = GPRS_STATUS_IND,				
+#endif
+
+#ifdef __MOD_RAC__
+   FIRST_NW_IND,
+   REG_IND = FIRST_NW_IND,				/*40*/
+   ATTACH_IND,
+   CSQ_IND,
+   CTZR_IND,                     
+   LAST_NW_IND = CTZR_IND,
+#endif
+
+	/* mtk0046803050315 add enum IND so that in l4c_sat_msg
+	 * we can use mmi_ind_ft to use it. modified direct call the 
+	 * funciton handler and more systemlize
+	*/
+#ifdef __SAT__
+   FIRST_SAT_IND, 
+   SAT_DSPL_TEXT_IND = FIRST_SAT_IND, 
+   SAT_GET_INKEY_IND,
+   SAT_GET_INPUT_IND,
+   SAT_SETUP_MENU_IND,
+   SAT_SELECT_ITEM_IND,
+   SAT_PLAY_TONE_IND,
+   SAT_SETUP_CALL_IND,					/*50 */
+   SAT_SEND_SMS_IND,
+   SAT_SEND_SS_IND,
+   SAT_SEND_USSD_IND,
+   SAT_MMI_INFO_IND,
+   SAT_SETUP_IDLE_DSPL_IND, //030602 mtk00468 add for paul SAT [begin]
+   SAT_RUN_AT_COMMAND_IND,
+   SAT_SEND_DTMF_IND,
+   SAT_LANG_NOTIFY_IND,
+#ifdef __SATCE__   
+   SAT_OPEN_CHANNEL_IND,
+   SAT_CLOSE_CHANNEL_IND,
+   SAT_SEND_DATA_IND,
+   SAT_RECV_DATA_IND,
+#endif /* __SATCE__ */   
+   SAT_LAUNCH_BROWSER_IND,	
+   SAT_NO_OTHER_CMD_IND,
+   LAST_SAT_IND = SAT_NO_OTHER_CMD_IND,//030602 mtk00468 add for paul SAT [end]
+#endif /* __SAT__ */
+
+   FIRST_PHB_IND,
+   PHB_FULL_IND = FIRST_PHB_IND,			/* 60 */
+   PHB_UPDATE_IND,       /* mtk00468 add for sync AT and MMI with phb write ande delete*/
+   PHB_STARTUP_BEGIN_IND,
+   PHB_STARTUP_READ_IND,
+   LAST_PHB_IND = PHB_STARTUP_READ_IND,
+
+   FIRST_SIM_IND,
+   PASSWD_IND = FIRST_SIM_IND,
+   SIM_INFO_IND,
+   PLMN_LEN_IND,
+   CPHS_MMI_INFO, //mtk00468 030610 add for l4csmu_mmi_info_ind handle
+   LAST_SIM_IND = CPHS_MMI_INFO,
+
+   
+   FIRST_SMSAL_IND,
+   SMS_FULL_IND = FIRST_SMSAL_IND,
+   SMS_EXC_IND,
+   SMS_AVA_IND,
+   SMS_WAIT_IND, //030613 mtk00468 add for SMS CPHS feature
+   SMS_INDX_IND,
+   SMS_TEXT_IND,								/* 70 */
+   SMS_PDU_IND,
+   SMS_READY_IND, //mtk00468 add in 040229
+   SMS_APP_DATA_IND, //mtk00468 add in 040312 for WMA
+   SMS_SYNC_MSG_IND,
+   CMGD_IND,
+   CMGW_IND,
+   CMGS_ABORT_START_IND,
+   CMGS_ABORT_FINISH_IND,
+   CB_MSG_IND,  //for LMMI & text mode of RMMI.
+   CB_PDU_IND, //for RMMI pdu mode
+   CB_DL_IND,
+   LAST_SMSAL_IND = CB_DL_IND,
+   L4C_LAST_IND = LAST_SMSAL_IND
+} l4c_ind_enum;
+
+
+typedef enum
+{
+   PAS_READY,
+   PAS_UNAVAILABLE,
+   PAS_CALL_RINGING = 3,
+   PAS_CALL_IN_PROGRESS
+
+} l4ccsm_phone_act_enum;
+
+typedef enum
+{
+   L4C_ASYNC_T,  /* ASYNC */
+   L4C_SYNC_T,    /* SYNC */
+   L4C_ASYNC_NT,   /* REL ASYNC */
+   L4C_SYNC_NT      /* REL SYNC */
+} l4ccsm_cc_data_call_type_enum;
+
+
+enum
+{
+   L4C_CISS_NOT_ACTIVE,
+   L4C_CISS_ACTIVE,
+   L4C_CISS_NOT_PROVISION
+};
+
+enum
+{
+   L4C_SMU_INACTIVE,
+   L4C_SMU_ACTIVE,
+   L4C_SMU_ACTIVATE_FAIL
+};
+
+typedef enum
+{
+   L4C_SUCCESS,
+   L4C_SIM_FAIL,
+   L4C_NVRAM_FAIL,
+   L4C_GENERAL_ERROR,
+   L4C_SIM_SWITCH_FAIL
+} l4c_poweron_result_enum;
+
+typedef enum
+{
+	L4C_PHB_NO_ERROR,
+	L4C_PHB_FAIL,
+	L4C_PHB_SCA_FDN,
+	L4C_PHB_DA_FDN_ONLY
+}l4c_phb_sms_fdn_result_enum;
+
+typedef enum
+{
+   L4C_NONE_DATA,
+   L4C_CSD_DATA,
+   L4C_GPRS_DATA
+} l4c_data_mode_enum;
+
+typedef enum
+{
+   L4C_MMI_PROF_QUERY,
+   L4C_MMI_PROF_SET
+} l4c_mmi_set_prof_op_enum;
+
+
+typedef enum
+{
+   L4C_WHEN_NEEDED,
+   L4C_ALWAYS,
+   L4C_ALWAYS_FOR_GCF, //mtk02285, MAUI_02931839, 20110505
+   L4C_ALWAYS_WITH_FOP, //notify GMM to set FOP in next attach request
+   L4C_ALWAYS_DUAL_CHECK, // Same as ALWAYS, but return error if PS is existed in SIM1/SIM2
+   L4C_GPRS_CONN_TYPE_UNKNOWN
+} l4c_gprs_connect_type_enum;
+
+typedef enum
+{
+   L4C_IMELODY,
+   L4C_SOUND_OTHER,
+   L4C_IMAGE,
+   L4C_APP_UNKNOWN
+} l4c_app_type_enum;
+
+typedef enum
+{
+   L4C_IMAGE_STD,
+   L4C_AUDIO_IMELODY,
+   L4C_AUDIO_OTHER
+} l4c_data_dl_folder_enum;
+
+typedef enum
+{
+   L4C_FILE_ADD,
+   L4C_FILE_DELETE
+}l4c_data_dl_file_action_enum;
+
+typedef enum
+{
+   L4C_FILE_EXECUTE_PLAY,        /*play audio*/
+   L4C_FILE_EXECUTE_STOP        /*stop play audio*/
+}l4c_data_dl_execute_action_enum;
+
+typedef enum
+{
+    L4C_COPS_UNKNOWN,
+    L4C_COPS_AVAILABLE,
+    L4C_COPS_CURRENT,
+    L4C_COPS_FORBIDDEN
+} l4c_cops_status_enum; /*27.007 7.3 +COPS*/
+
+typedef enum
+{
+	L4C_AT_SMS_ADD,
+	L4C_AT_SMS_READ_CMGR,
+	L4C_AT_SMS_READ_CMGL,	
+	L4C_AT_SMS_DELETE,
+	L4C_SMS_SIM_REFRESH
+
+}l4c_at_sms_action_enum;
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* 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 0 //__CTM_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+    L4C_NO_INSERTED,
+    L4C_INSERTED,		
+    L4C_SINGLE_SIM_INSERTED_STATUS_NONE = 0xFF
+}l4c_single_sim_inserted_enum;
+
+typedef enum
+{
+    L4C_SMU_START,
+    L4C_SMU_SECURITY,
+    L4C_RAC_SEARCH
+}l4c_dual_sim_power_on_state_enum;
+
+typedef enum
+{
+   TYPE_PHB_SMS_PARAM_ONLY_INIT,
+   TYPE_PHB_NORMAL_INIT,
+   TYPE_SMS_NORMAL_INIT
+}l4c_cancel_lock_poweron_type_enum;
+
+typedef enum
+{
+   USSD_VERSION_PHASE2, 
+   USSD_VERSION_PHASE1,
+   USSD_VERSION_NONE   	   
+}l4c_ussd_version_enum;
+
+typedef enum
+{
+   CPI_REPORT_NONE,
+   CPI_REPORT_NW_MSG_ONLY,
+   CPI_REPORT_CALL_STATE_ONLY,   
+   CPI_REPORT_FULL
+}l4c_cpi_report_mode_enum;
+
+#define INFO_REPORT_MASK 	(kal_uint32)0x00000001
+
+// MAUI_01652364
+typedef enum
+{
+   USSD_RETURN_RESULT, 
+   USSD_RETURN_RESULT_WITH_EMPTY_STRING,
+   USSD_RETURN_ERROR,
+   USSD_RETURN_REJECT,
+   USSD_RETURN_FAILED, //in local check
+   USSD_RETURN_WITHOUT_COMPONENT
+} l4c_ussd_return_type_enum;
+
+typedef enum 
+{
+   ATCI_STATE_UART_OWNER_ATCI,
+   ATCI_STATE_UART_OWNER_ATCI2,
+   ATCI_STATE_UART_OWNER_DT,
+   ATCI_STATE_PLUGOUT,
+   ATCI_STATE_NONE
+}l4c_dt_state_enum;
+
+typedef enum 
+{
+   RMMI_SWITCH_ATCI_TO_DT,
+   RMMI_SWITCH_ATCI_TO_ATCI2,
+   RMMI_SWITCH_ATCI2_TO_DT,
+   RMMI_SWITCH_ATCI2_TO_ATCI,
+   RMMI_SWITCH_DT_TO_ATCI,
+   RMMI_SWITCH_DT_TO_ATCI2,
+   RMMI_PLUGOUT,
+   RMMI_NONE
+}l4c_dt_transfer_ind_state_enum;
+
+
+typedef enum
+{
+    CSM_STATE_NOT_INITIATED,
+    CSM_STATE_CC_READY,
+    CSM_STATE_CISS_READY //replace ciss_ready_flag
+}l4c_csm_state_enum;
+
+// for parallel SS
+/*
+The following is the range definition:
+CISS:   SS_ID_CISS_BASE+0  ~   SS_ID_CISS_BASE+6
+LCS:     SS_ID_LCS_BASE+0   ~   SS_ID_LCS_BASE+6
+*/
+#define SS_ID_MAX_NUM 7   //there is no more 7 SSs in parallel for MO or MT
+typedef enum {
+   SS_ID_MT_BASE = 8, 
+   SS_ID_MT_END = SS_ID_MT_BASE + SS_ID_MAX_NUM-1,
+   SS_ID_LCS_BASE = 16, //for LCS(AGPS)
+   SS_ID_LCS_END = SS_ID_LCS_BASE + SS_ID_MAX_NUM-1, //LCS: SS_ID_LCS_BASE+0~SS_ID_LCS_BASE+6
+   SS_ID_CISS_BASE = 32, //for common SS and USS service
+   SS_ID_CISS_END = SS_ID_CISS_BASE + SS_ID_MAX_NUM-1, //CISS: SS_ID_CISS_BASE+0~SS_ID_CISS_BASE+6
+   SS_ID_INVALID = 255
+} l4c_ss_id_enum;
+
+//ALPS00029231
+typedef enum
+{
+    SAT_USSR_NONE,  //initial state
+    SAT_SS_USSR,    //USSR triggered by SAT send SS
+    SAT_USSD_USSR   //USSR triggered by SAT send USSD
+}l4c_sat_ussr_enum;
+
+typedef enum {
+    PDP_ACT,
+    PDP_MOD,
+    PDP_DEACT,
+    ENTER_DATA,
+    SET_REQ,
+    SET_CONTEXT_REQ,
+    ACTION_MAX
+} l4ctcm_action_enum;
+
+typedef enum {
+    SIB_FIELD_REQUEST_TYPE,
+} l4ctcm_session_info_block_field_enum;
+
+typedef enum {
+    L4C_ACT_REASON_NORMAL,
+    L4C_ACT_REASON_ATTACH_1ST_PDN,
+    L4C_ACT_REASON_REVIVE_HANDOVER_PDN,
+    L4C_ACT_REASON_REESTABLISH_WITHOUT_N26_HANDOVER_PDN,
+    L4C_ACT_REASON_MAX
+} l4ctcm_act_reason;
+
+typedef enum {
+    EGACT_SUPPORT_ALL_RAT = 0,
+    EGACT_SUPPORT_23G = 1,
+    EGACT_SUPPORT_4G = 2,
+    EGACT_SUPPORT_234G = EGACT_SUPPORT_23G | EGACT_SUPPORT_4G,
+    EGACT_SUPPORT_5G = 4,
+    EGACT_SUPPORT_235G = EGACT_SUPPORT_23G | EGACT_SUPPORT_5G,
+    EGACT_SUPPORT_45G  = EGACT_SUPPORT_4G  | EGACT_SUPPORT_5G,
+    EGACT_SUPPORT_MAX,
+} l4ctcm_egact_support_rat_enum;
+
+typedef enum {
+    EGACT_CAUSE_DONT_CARE = 0,    
+    EGACT_CAUSE_DEACT_NORMAL,   
+    EGACT_CAUSE_DEACT_RA_ERROR,
+    EGACT_CAUSE_DEACT_RA_INITIAL_ERROR,
+    EGACT_CAUSE_DEACT_RA_REFRESH_ERROR,    
+    EGACT_CAUSE_DEACT_NO_PCSCF,
+    EGACT_CAUSE_DEACT_USER_FORCE_TO_LOCAL_RELEASE,
+    EGACT_CAUSE_DEACT_AOSP_SHUTDOWN,
+    EGACT_CAUSE_DEACT_AOSP_HANDOVER,
+    EGACT_CAUSE_DEACT_APN_CHANGED,
+    EGACT_CAUSE_DEACT_IMS_HANDOVER
+} l4ctcm_egact_cause_enum;
+
+typedef enum {
+    NO_CONFLICT,
+    CONFLICT_CHANNEL_BUSY,
+    CONFLICT_CID_BUSY,
+//    CONFLICT_C2K_IRAT,
+    CONFLICT_CFUN,
+    CONFLICT_TCM_NOT_READY,
+    CONFLICT_RAC_STATE,
+    CONFLICT_ATTACH_ONGOING,
+} l4c_gprs_cmd_conflict_cause_enum;
+
+typedef enum {
+    CHECK_CONFLICT_FLAG_CFUN = 0x0001,
+    CHECK_CONFLICT_FLAG_TCM_READ_NVRAM_COMPLETE = 0x0002,
+    CHECK_CONFLICT_FLAG_RAC_STATE = 0x0004,
+//    CHECK_CONFLICT_FLAG_C2K_IRAT = 0x0008,
+    CHECK_CONFLICT_FLAG_SRC_CID_TABLE = 0x0010,
+    CHECK_CONFLICT_FLAG_ATTACH_BY_CID_TABLE = 0x0020,
+    CHECK_CONFLICT_FLAG_ALL = 0xFFFF,
+} l4c_cmd_conflict_bitmap_flag_enum;
+
+typedef enum {
+    L4C_NOT_CHECK_CMD_CONFLICT,
+    L4C_CHECK_CMD_CONFLICT,
+} l4c_cmd_conflict_check_option_enum;
+
+
+typedef enum {
+    LTE_ATTACH_PDN_ESM_NOT_BLOCK_INVALID_APN,
+    LTE_ATTACH_PDN_ESM_BLOCK_INVALID_APN
+} lte_attach_pdn_esm_block_invalid_apn_enum;
+
+typedef enum
+{
+    L4C_TIMER_ID_KEYPAD               = 0,      // 0: keypad
+    L4C_TIMER_ID_DT                   = 1,      // 1: DT
+    L4C_TIMER_ID_GPRS                 = 2,      // 2: gprs
+    L4C_TIMER_ID_RETRY                = 3,      // 3: retry
+    L4C_TIMER_ID_HZ                   = 4,      // 4: hz
+    L4C_TIMER_ID_DIALUP               = 5,      // 5: dialup
+    L4C_TIMER_ID_RING                 = 6,      // 6: RING repeat timer
+    L4C_TIMER_ID_SAT                  = 7,      // 7: SAT redial duration timer
+    L4C_TIMER_ID_PWOF                 = 8,      // 8: Power off timer
+    L4C_TIMER_ID_ECBM,         // obsoleted.
+    L4C_TIMER_ID_VOLTE_HYS            = 11,     // 11: VzW T_VoLTE_hys
+    L4C_TIMER_ID_TXRXTIME             = 12,     // 12: txrx active time
+    L4C_TIMER_ID_RSIM_PLUGIN          = 13,     //13: RSIM plugin timer
+    L4C_TIMER_ID_SBP                  = 14,     // 14: SBP guard timer
+    L4C_TIMER_ID_UPPER_THRESHOLD      = 15,     //15: Power Lever Upper Threshold timer
+    L4C_TIMER_ID_LOWER_THRESHOLD      = 16,     //16: Power Lever Lower Threshold timer
+    L4C_TIMER_ID_OP12_LOCK_TIMER      = 17,     // 17 op12 reg lock to send dereg if needed
+    L4C_TIMER_ID_OP12_UNLOCK_TIMER    = 18,     // 18 op12 reg unlock to send reg if needed
+    L4C_TIMER_ID_ERSIMAUTH            = 19,     // 19: RSIM AUTH timer
+    L4C_TIMER_ID_EPSNLTE              = 20,     // 20: EPSNLTE URC timer
+    L4C_TIMER_ID_NON_PS_OCCUPY_TIMER  = 21,     // 21 Occupy RSVAS for non-ps SIM regist first
+    L4C_TIMER_ID_CALL_RETRY_MAX_TIMER = 22,     // 22: call retry max timer
+    L4C_TIMER_ID_ANTENNA_STATE        = 23,     // 23: for antenna state reporting
+    L4C_TIMER_ID_OP129_LTE_ONLY_TIMER = 24,     // 24: for switching RAT mode to 23G from KDDI LTE
+	L4C_TIMER_ID_WAIT_LTE_PAGING_TIMER = 25,    // 25: wait for MT paging in LTE RAT.
+	L4C_TIMER_ID_5GUW_TUW_1 		  = 26,     // 26: VzW 5GUW TUW 1
+	L4C_TIMER_ID_5GUW_TUW_2 		  = 27,     // 27: VzW 5GUW TUW 2
+	L4C_TIMER_ID_5GUW_TUW_3 		  = 28,     // 28: VzW 5GUW TUW 3
+    L4C_TIMER_ID_MAX
+} l4c_timer_id_enum;
+
+typedef enum{
+    L4C_SIM_STATE_ON,
+    L4C_SIM_STATE_TURNING_OFF,
+    L4C_SIM_STATE_OFF
+}l4c_sim_state_enum;
+
+// C2K MD power off state, for MD1/MD3 EPOF procedure
+typedef enum
+{
+    C2K_MD_POWER_OFF_NOT_START = 0,
+    C2K_MD_POWER_OFF_STARTED,
+    C2K_MD_POWER_OFF_DONE
+} l4c_c2k_power_off_state_enum;
+
+/* for sim_status_bitmask 
+   TODO: replacce l4c_single_sim_inserted_enum
+*/
+typedef enum
+{
+    /* 
+     * initial state, L4 doesn't know any information about SIM 
+     */
+    L4C_SIM_FLAG_UNKNOWN = 0,
+        
+    /* 
+     * L4C has received SIM_ERROR_IND(plug_in) or SIM_RESET_CNF(sim_exist), 
+     * i.e. there is a card in the SIM slot, but not initialized yet 
+     * the inserted card maybe SIM, USIM, CSIM, UIM...etc
+     */
+    // TODO: this flag is to replace single_sim_exist_status
+    L4C_SIM_FLAG_DETECTED = 0x01,
+
+    /* 
+     * L4C has received SIM_RESET_CNF(sim_inserted) or START_CNF(SMU_RES_OK)
+     * i.e. there is a SIM or USIM in the SIM slot, but not initialized yet
+     */
+    // TODO: this flag is to replace single_sim_inserted_status
+    L4C_SIM_FLAG_3GPP_SIM_INSERTED = 0x02,
+    
+    /* 
+     * L4(SMU) has received SIM_START_CNF(SIM_CMD_SUCCESS) 
+     * i.e. SIM is initialized and can be access, excluding PIN1 required file
+     * e.g. ICCID is readable when this bit is set
+     */
+    L4C_SIM_FLAG_STARTED_SUCCESS = 0x04,
+
+    /* 
+     * L4C has received SECURITY_CNF(TYPE_NO_REQUIRED)
+     * i.e. PIN1 and SML check are all passed, IMSI can be read
+     * currently we don't provide PIN1 verified but SML not passed flag,
+     * because no special requirement for this condition
+     */
+    L4C_SIM_FLAG_PIN1_SML_VERIFIED= 0x08
+} l4c_sim_flag_enum;
+
+typedef enum
+{
+    /* This  ENUM was defined by MUSE project for VzW hVoLTE interface */
+
+    STATUS_LTE_CONN_NONE            = 0,
+    STATUS_LTE_RACH_REJECT_W_WAIT   = 11,
+    STATUS_LTE_RACH_FAILED_T300     = 12,
+    STATUS_LTE_SR_REJECT_EMM_9_10   = 13,
+    STATUS_LTE_ACCESS_BARRED        = 16,
+    STATUS_LTE_EMM_NET_REJECT       = 17,
+    STATUS_LTE_NAS_CONGESTION       = 22,
+    STATUS_LTE_DEDI_BEAR_QCI_RESP   = 31,
+    STATUS_LTE_TRIGGER_IMS_DEREG    = 32,
+    STATUS_LTE_IMS_CALL_FAIL_1X_SILENT_REDIAL_START = 35,
+
+    //Also for VzW hVoLTE, but defined by MTK
+    STATUS_LTE_EMERGENCY_ATTACH_REJECT = 129,
+    STATUS_LTE_NORMAL_DETACH        = 130,
+    STATUS_LTE_EMERGENCY_ATTACH     = 131,
+    STATUS_LTE_NORMAL_ATTACH        = 132,
+    STATUS_LTE_EMERGENCY_DETACH     = 133,
+    STATUS_LTE_EMERGENCY_PDN_ACT_REJ_IN_ATTACH_STATE     = 134,
+    STATUS_LTE_EPS_ONLY_ATTACH      = 135
+} l4c_lte_conn_status_enum;
+
+/* bitmap type */
+typedef enum
+{
+    L4C_GUTI      = 1,
+    L4C_PTMSI     = 2,
+    L4C_LOCI      = L4C_PTMSI,    // Used by Titan
+    L4C_5GSLOCI   = 4
+} l4c_msid_enum;
+
+typedef enum
+{
+	L4C_USIM_TYPE_IS_SIM = 0, 
+	L4C_USIM_TYPE_IS_USIM = 1, 
+	L4C_USIM_TYPE_NO_SIM_NO_USIM = 2
+} l4c_usim_type_enum;
+
+typedef enum
+{
+	L4C_CSIM_TYPE_IS_UIM = 0, 
+	L4C_CSIM_TYPE_IS_CSIM = 1, 
+	L4C_CSIM_TYPE_NO_UIM_NO_CSIM = 2, 
+	L4C_CSIM_TYPE_IS_UIM_AND_CSIM = 3
+} l4c_csim_type_enum;
+
+typedef enum
+{
+    L4C_DIAL_C2K_IDLE               = 0x00,
+    L4C_DIAL_C2K_CMD_RCVD           = 0x01,//received AT+EHVOLTE=0,1
+    L4C_DIAL_C2K_CSFB_START_IND_RCVD= 0x02,
+    L4C_DIAL_C2K_VOLTE_UNREG_RCVD   = 0x04,
+    L4C_DIAL_C2K_CSFB_START_VOLTE_UNREG_RCVD = 
+            L4C_DIAL_C2K_CMD_RCVD|L4C_DIAL_C2K_CSFB_START_IND_RCVD|L4C_DIAL_C2K_VOLTE_UNREG_RCVD,
+} l4c_dial_c2k_state_enum;
+
+typedef enum
+{
+    L4C_TX_INTERRUPTION_TIMER_EXPIRY = 0, // Obsolete
+    L4C_EVENT_SCHEDULER_TIMER_ID,
+    L4C_EVENT_SCHEDULER_MAX_DELAY_TIMER_ID  /* delay tolerant: evt_scheduler_max_delay_ptr */
+} l4c_timer_index_id_enum;
+
+typedef enum
+{
+    L4C_GSM_RSSI        = 0,
+    L4C_UTRAN_RSCP      = 1,
+    L4C_UTRAN_ECNO      = 2,
+    L4C_LTE_RSRP        = 3,
+    L4C_LTE_RSRQ        = 4,
+    L4C_LTE_RSSNR       = 5,
+    L4C_1X_RSSI         = 6,  // not used in l4c, align iwlan-l4c interface
+    L4C_1X_ECIO         = 7,  // not used in l4c, align iwlan-l4c interface
+    L4C_EVDO_RSSI       = 8,  // not used in l4c, align iwlan-l4c interface
+    L4C_EVDO_ECIO       = 9,  // not used in l4c, align iwlan-l4c interface
+    L4C_NR_SS_RSRP      = 10,
+    L4C_NR_SS_RSRQ      = 11,
+    L4C_NR_SS_SINR      = 12,
+    L4C_NR_CSI_RSRP     = 13,
+    L4C_NR_CSI_RSRQ     = 14,
+    L4C_NR_CSI_SINR     = 15,
+    L4C_MAX_SIG,
+} l4c_sig_type_enum;
+
+
+typedef enum{
+	L4C_SIM_DUPLEX_MODE_STATE_NONE,
+    L4C_SIM_DUPLEX_MODE_STATE_RESET,
+    L4C_SIM_DUPLEX_MODE_STATE_RESET_DONE,
+    L4C_SIM_DUPLEX_MODE_STATE_SET
+}l4c_sim_duplex_mode_reset_state_enum;
+
+typedef enum
+{
+    L4C_PWL_THRHD_TIMER_ID_GSM_RSSI_THRESHOLD, //0: Power Lever Threshold timer for GSM RSSI
+    L4C_PWL_THRHD_TIMER_ID_UTRAN_RSCP_THRESHOLD, //1: Power Lever Threshold timer for UTRAN RSCP
+    L4C_PWL_THRHD_TIMER_ID_UTRAN_ECNO_THRESHOLD, //2: Power Lever Threshold timer for UTRAN_ECNO
+    L4C_PWL_THRHD_TIMER_ID_LTE_RSRP_THRESHOLD, //3: Power Lever Threshold timer for LTE RSRP
+    L4C_PWL_THRHD_TIMER_ID_LTE_RSRQ_THRESHOLD, //4: Power Lever Threshold timer for LTE_RSRQ
+    L4C_PWL_THRHD_TIMER_ID_LTE_RSSNR_THRESHOLD, //5: Power Lever Threshold timer for LTE_RSSNR
+    L4C_PWL_THRHD_TIMER_ID_NR_SS_RSRP_THRESHOLD, //6: Power Lever Threshold timer for NR_SS_RSRP
+    L4C_PWL_THRHD_TIMER_ID_NR_SS_RSRQ_THRESHOLD, //7: Power Lever Threshold timer for NR_SS_RSRQ
+    L4C_PWL_THRHD_TIMER_ID_NR_SS_SINR_THRESHOLD, //8: Power Lever Threshold timer for NR_SS_SINR
+    L4C_PWL_THRHD_TIMER_ID_NR_CSI_RSRP_THRESHOLD, //9: Power Lever Threshold timer for NR_CSI_RSRP
+    L4C_PWL_THRHD_TIMER_ID_NR_CSI_RSRQ_THRESHOLD, //10: Power Lever Threshold timer for NR_CSI_RSRQ
+    L4C_PWL_THRHD_TIMER_ID_NR_CSI_SINR_THRESHOLD, //11: Power Lever Threshold timer for NR_CSI_SINR
+    L4C_PWL_THRHD_TIMER_ID_MAX
+} l4c_pwl_thrhd_timer_id_enum;
+
+//#ifdef __REMOTE_SIM__
+typedef enum
+{
+    L4C_RSVA_AKA_NO_RESOURCE_OCCUPIED,
+    L4C_RSVA_AKA_RESOURCE_TO_BE_OCCUPIED,
+    L4C_RSVA_AKA_RESOURCE_OCCUPIED,
+    L4C_RSVA_AKA_RESOURCE_RELEASING,
+} l4c_rsva_aka_resource_occupy_enum;
+
+typedef enum
+{
+    L4C_ACTION_NONE,
+    L4C_ACTION_EPOF,
+    L4C_ACTION_EFUN,
+} l4c_rsim_pending_action_enum;
+//#endif
+
+
+typedef enum
+{
+    L4_SMU = 0x01,
+    L4_RAC = (0x01 << 1),
+    L4_PHB = (0x01 << 2),
+    L4_SMSAL = (0x01 << 3),
+    L4_UEM = (0x01 << 4),
+    L4_TCM = (0x01 << 5),
+    L4_CSMCC = (0x01 << 6),
+    L4_CSMSS = (0x01 << 7),
+}l4c_sub_module_enum;
+
+typedef enum
+{
+    OP01_ACTION_NULL,
+    OP01_SIM_LOCK_DETACH,
+    OP01_SIM_UNLOCK_ATTACH,
+    OP01_RAT_LOCK,
+    OP01_RAT_UNLOCK
+}l4_op01_action_enum;
+
+typedef enum
+{
+    L4C_IMEI_MEID_ACTION_NULL,
+    L4C_IMEI_MEID_LOCK_DETACH,
+    L4C_IMEI_MEID_LOCK_ATTACH_ANY, 
+    L4C_IMEI_MEID_UNLOCK_ATTACH    
+} l4c_imei_meid_action_enum;
+
+typedef enum
+{
+    L4C_LOCK_TYPE_OP01,
+    L4C_LOCK_TYPE_IMEI_MEID
+} l4c_lock_type_enum;
+
+typedef enum
+{
+    L4C_RAT_GROUP_3GPP,
+    L4C_RAT_GROUP_3GPP2,
+    L4C_RAT_GROUP_3GPP_3GPP2
+} l4c_rat_group_enum;
+
+typedef enum
+{
+    L4C_DSS_ONGOING_STATE_NONE = 0,
+    L4C_DSS_ONGOING_STATE_ESIMMAP = 1,
+    L4C_DSS_ONGOING_STATE_EPSMAP = 2,
+} l4c_dss_ongoing_state_enum;
+
+typedef enum
+{
+    L4C_CT_VOLTE_NOT_SUPPORT        = 0,
+    L4C_CT_VOLTE_SUPPORT_MANUAL     = 1,//CT original VoLTE, L4 operates in HVOLTE_MANUAL_MODE
+    L4C_CT_VOLTE_SUPPORT_AUTO       = 2,//CT hVoLTE, L4 operates in HVOLTE_AUTO_MODE
+    L4C_CT_VOLTE_SUPPORT_ENUM_MAX
+} l4c_ct_volte_support_enum;
+
+typedef enum
+{
+    L4C_PHB_APPROVE_SRC_CALL_SETUP,
+    L4C_PHB_APPROVE_SRC_L4CPS,
+    L4C_PHB_APPROVE_SRC_SMS,
+    L4C_PHB_APPROVE_SRC_PARSE_SS,
+    L4C_PHB_APPROVE_SRC_CUSD,
+    L4C_PHB_APPROVE_SRC_EAPPROVE,
+
+    /* NOTICE!! Please add l4c_phb_approve_src_enum above this line! */
+    L4C_PHB_APPROVE_SRC_TOTAL,
+} l4c_phb_approve_src_enum;
+
+typedef enum
+{
+    L4C_SERVICE_MODE_NONE = 0,
+    L4C_SERVICE_MODE_UPGRADE,         // upgrade the service (when legal SIM is available)
+    L4C_SERVICE_MODE_DOWNGRADE        // dowgrade the service (when legal SIM is lost)
+} l4c_service_mode_op_enum;
+
+typedef enum
+{
+    L4C_PWR_LEVEL_RANGE_NONE        = 0,//Power level threshold timer is not running
+    L4C_PWR_LEVEL_RANGE_LOW         = 1,//Power level threshold timer is running and signal value is less than the 1st threshold
+    L4C_PWR_LEVEL_RANGE_ONE         = 2,//Power level threshold timer is running and signal value is between 1st and 2nd threshold
+    L4C_PWR_LEVEL_RANGE_TWO         = 3,//Power level threshold timer is running and signal value is between 2nd and 3rd threshold
+    L4C_PWR_LEVEL_RANGE_THREE       = 4,//Power level threshold timer is running and signal value is between 3rd and 4th threshold
+    L4C_PWR_LEVEL_RANGE_FOUR        = 5,//Power level threshold timer is running and signal value is between 4th and 5th threshold
+    L4C_PWR_LEVEL_RANGE_FIVE        = 6,//Power level threshold timer is running and signal value is between 5th and 6th threshold
+    L4C_PWR_LEVEL_RANGE_SIX         = 7,//Power level threshold timer is running and signal value is between 6th and 7th threshold
+    L4C_PWR_LEVEL_RANGE_SEVEN       = 8,//Power level threshold timer is running and signal value is between 7th and 8th threshold
+    L4C_PWR_LEVEL_RANGE_HIGH        = 9,//Power level threshold timer is running and signal value is greater than the 8st threshold
+    L4C_PWR_LEVEL_RANGE_INVALID     = 10,//Power level threshold timer is running and signal value is Invalid currently
+    L4C_PWR_LEVEL_RANGE_MAX
+} l4c_power_level_threshold_range_enum;
+
+typedef enum
+{
+    L4C_SAR_IGNORE_ACTION = -1,
+    L4C_SAR_MODEM_TO_AP_DISABLE_ACTION = 0,
+    L4C_SAR_MODEM_TO_AP_ENABLE_ACTION,
+    L4C_SAR_AP_TO_MODEM_REBOOT_NOTIFY_ACTION,
+    L4C_SAR_AP_TO_MODEM_DATA_ACTION,
+    L4C_SAR_UNDEFINED_ACTION
+}l4c_sar_action_enum;
+
+typedef enum
+{
+    L4C_SAR_NEAR = 0,
+    L4C_SAR_FAR = 1,  
+    L4C_SAR_STATE_UNKNOWN_SAR_DISABLE = 253,
+    L4C_SAR_STATE_UNKNOWN_SAR_ENABLE = 254,
+    L4C_SAR_STATE_UNKNOWN_SAR_NOT_SUPPORTED = 255
+}l4c_sar_data_enum;
+
+typedef enum
+{
+    L4C_SCP_DISABLE,
+    L4C_SCP_ENABLE
+} l4c_scp_monitor_enum;
+
+typedef enum {
+    L4C_RAT_NO_CUSTOMIZATION,
+    L4C_RAT_NL_CUSTOMIZATION,
+    L4C_RAT_NLWG_CUSTOMIZATION
+} l4c_rat_mode_custom_type_enum;
+
+typedef enum{
+    L4C_SIM_LGU,
+    L4C_SIM_KT_SKT,
+    L4C_SIM_AUSA_H,
+    L4C_SIM_AUSA_R,
+    L4C_SIM_OTHER
+} l4c_sim_oper_enum;
+
+typedef enum
+{
+    L4C_PLMN_TYPE_ARRAY,
+    L4C_PLMN_TYPE_PLMN_STRUCT
+} l4c_plmn_type_enum;
+
+#ifdef __TC01__
+typedef enum
+{
+    L4C_ECC_CALL_CONNNECTED_STATUS_NONE = 0,
+    L4C_ECC_CALL_NOT_CONNECTED,
+    L4C_ECC_CALL_CONNECTED
+} l4c_ecc_connected_status_enum;
+#endif /* __TC01__ */
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef enum
+{
+    L4C_ECALL_CUSTOMER_URI = 1,
+    L4C_ECALL_USIM_URI,
+    L4C_ECALL_CUSTOMER_NUM,
+    L4C_ECALL_USIM_NUM,
+} l4c_ecall_num_type_enum;
+#endif /* __ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__*/
+typedef enum {
+    L4C_DISABLE_NONE_ROAMING_MODE      = 0x00,
+    L4C_DISABLE_INTERNATIONAL_ROAMING  = 0x01,
+    L4C_DISABLE_NATIONAL_ROAMING       = 0x02,
+    L4C_DISABLE_HPPLMN_SEARCH          = 0x04,
+    L4C_DISABLE_ALL_ROAMING_MODE       = 0x07
+    
+} l4c_roaming_setting_enum;
+
+
+#endif /* l4c_common_enum.h */
diff --git a/mcu/protocol/interface/l4misc/l4c_ctm_cmd.h b/mcu/protocol/interface/l4misc/l4c_ctm_cmd.h
new file mode 100644
index 0000000..082251c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ctm_cmd.h
@@ -0,0 +1,139 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_ctm_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_CTM_CMD_H
+#define _L4C_CTM_CMD_H
+
+#ifdef __CTM_SUPPORT__
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+
+extern void l4c_ctm_init_context(void);
+extern void l4c_ctm_init(void);
+extern kal_bool l4c_ctm_open_req(kal_uint8 src_id, kal_uint8 ctm_interface);
+extern kal_bool l4c_ctm_close_req(kal_uint8 src_id);
+extern kal_bool l4c_ctm_connect_req(kal_uint8 src_id);
+extern kal_bool l4c_ctm_send_text_req(kal_uint8 src_id, kal_uint16 num_of_char, kal_uint16 *text);
+extern kal_bool l4c_ctm_set_default_req(kal_uint8 src_id, kal_bool is_turn_on, kal_uint8 ctm_interface);
+extern kal_bool l4c_ctm_get_default_req(kal_uint8 src_id);
+extern kal_bool l4c_ctm_set_config_req(
+                    kal_uint8 group_id,
+                    kal_uint16 para1,
+                    kal_uint16 para2,
+                    kal_uint16 para3,
+                    kal_uint16 para4,
+                    kal_uint16 para5,
+                    kal_uint8 bitmask);
+#if defined(__CTM_AT_CMD_SUPPORT__)
+extern kal_bool l4c_ctm_get_config_req(kal_uint8 group_id);
+#endif
+#endif /* __CTM_SUPPORT__ */ 
+
+#endif /* _L4C_CTM_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_em.h b/mcu/protocol/interface/l4misc/l4c_em.h
new file mode 100644
index 0000000..e235ee0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_em.h
@@ -0,0 +1,677 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   l4c_em.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   Engineer mode header file.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_EM_H
+#define _L4C_EM_H
+
+#include "em_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "app_ltlcom.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "em_l4_public_struct.h"
+#include "em_l4_common_public_struct.h"
+#include "ft_msg_l4.h"
+
+extern em_source_enum g_em_cmd_src;
+
+/* Definitions for Channel Lock constants */
+#if defined(__MODEM_EM_MODE__)
+#if defined(__CHANNEL_LOCK__)
+
+#define L4C_CH_LOCK_MODE_CANCEL 0
+#define L4C_CH_LOCK_MODE_SET    1
+#define L4C_CH_LOCK_MODE_SET_CBRS 2
+#define L4C_CH_LOCK_MODE_CONFIG_CBRS    3
+
+#define L4C_CH_LOCK_BAND_IND_NOT_1900 0
+#define L4C_CH_LOCK_BAND_IND_1900     1
+
+#define L4C_CH_LOCK_ACT_GAS 0
+#define L4C_CH_LOCK_ACT_UAS 2
+#define L4C_CH_LOCK_ACT_EAS 7
+#define L4C_CH_LOCK_ACT_NRAS 11
+
+#define L4C_CH_LOCK_ARFCN_MAX   46589
+#define L4C_CH_LOCK_CELL_ID_MAX 1008
+#define L4C_CH_LOCK_CHANNEL_NUM_MAX 32
+
+#define L4C_CH_LOCK_CELL_ID_NOT_SET 0xFFFF
+
+#endif /* __CHANNEL_LOCK__ */
+#endif /* __MODEM_EM_MODE__ */
+
+/* Definitions for EM TX power constants*/
+#ifdef __EM_MAX_TX_POWER_SUPPORT__
+#define L4C_GSM_RAT         0
+#define L4C_WCDMA_RAT       1
+#define L4C_TDSCDMA_RAT     2
+#define L4C_C2K_RAT         3
+#define L4C_LTE_RAT         4
+#define L4C_1X_RAT          5
+#define L4C_EVDO_RAT        6
+#ifdef __TX_PWR_EXTENSION__
+#define L4C_NR_RAT          7
+#define L4C_MAX_SUPPORT_RAT     7
+#endif
+#endif
+
+/*Start Extended LCE support*/
+#define L4C_EXTENDED_LCE_MAX_THRESHOLD    EXTENDED_LCE_MAX_THRESHOLD // threshold size is 20
+
+#define L4C_LCE_RAT_GSM    1
+#define L4C_LCE_RAT_UMTS   2
+#define L4C_LCE_RAT_LTE    3
+#define L4C_LCE_RAT_NR     4
+#define L4C_LCE_RAT_MAX    5
+/*End Extended LCE support*/
+
+/* L4C call-back functions for MMI */
+void l4a_em_update_req (kal_uint8 src_id,kal_uint8 *info_request);
+void l4c_em_update_req(em_source_enum em_src, em_info_status_enum *info_request);
+void l4c_vt_em_get_config_req(kal_uint8 src_id);
+void l4c_vt_em_set_config_req(kal_uint8 src_id, vt_em_config_struct *em_config);
+void l4c_em_cell_resel_suspend_req(kal_uint8 src_id, kal_uint8 status);
+void l4c_em_cell_resel_resume_req(kal_uint8 src_id);
+void l4c_em_get_cell_lock_req(kal_uint8 src_id);
+void l4c_em_set_cell_lock_req(
+        kal_uint8 src_id,
+        kal_bool turn_on_or_off,
+        kal_bool band_indicator,
+        kal_uint16 *lock_arfcn);
+extern void l4c_em_common_set_cell_lock_req(kal_uint8 src_id, kal_uint32 enabled_bitmap, kal_bool band_indicator, kal_uint16 *lock_arfcn, kal_uint32 mode);
+extern void l4c_em_ext_get_cell_lock_req(kal_uint8 src_id);
+extern void l4c_em_ext_set_cell_lock_req(kal_uint8 src_id, kal_uint32 enabled_bitmap, kal_bool band_indicator, kal_uint16 *lock_arfcn);
+
+#if defined(__MODEM_EM_MODE__)
+#if defined(__CHANNEL_LOCK__)
+void l4c_emmchlck_read(kal_uint8 src_id);
+void l4c_emmchlck_write(kal_uint8 src_id, kal_uint8 mode, kal_uint8 act, 
+    kal_uint16 *band_indicator_ptr, kal_uint32 *arfcn_ptr, kal_uint16 cell_id,kal_uint8 channel_num,kal_uint8 lock_mode);
+#endif /* __CHANNEL_LOCK__ */
+#endif /* __MODEM_EM_MODE__ */
+
+void l4c_em_feature_command_req(kal_uint8 src_id, kal_uint8 em_feature, kal_uint8 em_feature_state);
+
+/* EM main message handler */
+void l4c_em_handler(ilm_struct *ilm_ptr);
+kal_bool l4c_em_nw_event_notify_req(kal_uint8 src_id, kal_bool is_on, kal_uint8 num_of_mod, module_type *mod_list);
+
+void l4c_em_quick_test_report_res_req(kal_bool result, kal_uint8 test_count, kal_uint8 *test_list);
+
+extern kal_bool l4c_l1_max_tx_pwr_red_req(kal_uint8 src_id,
+                                        kal_uint8 op,
+                                        kal_bool gsm_tbl_valid,
+                                        kal_uint8 ***gsm_tx_pwr_reduction_tbl,
+                                        kal_uint8 ***gsm_tx_pwr_reduction_tbl_tas,
+                                        kal_bool umts_tbl_valid,
+                                        kal_uint8 **umts_tx_pwr_reduction_tbl,
+                                        kal_uint8 **umts_tx_pwr_reduction_tbl_tas,
+                                        kal_bool lte_tbl_valid,
+                                        kal_uint16 lte_band,
+                                        kal_uint8 *lte_tx_pwr_reduction_param);
+
+#ifdef __TC10__
+extern kal_bool l4c_mmrf_get_temperature_info_req(kal_uint8 src_id, kal_uint8 mode);
+extern void l4cmmrf_temperature_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+#endif
+
+extern kal_bool l4c_get_thermal_info_req(kal_uint8 src_id);
+extern void l4c_get_thermal_info_via_ccci_req();
+
+extern void l4c_get_thermal_info_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_eq_set_rx_path_req(kal_uint8 src_id,
+                                       kal_uint8 cmd_type,
+                                       kal_uint8 rx_path,
+                                       kal_bool  nvram_write);
+
+extern kal_bool l4c_force_tx_ant_req(kal_uint8 src_id,
+                                 kal_uint8 mode,
+                                 kal_uint8 rat,
+                                 kal_uint8 ant_state,
+                                 kal_uint8 band,
+                                 kal_uint8 nvram_write);
+extern void l4c_force_tx_ant_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_meta_cfg_req(kal_uint8 src_id, kal_uint8 mode, FT_MODE_SWITCH_RESULT *result_ptr);
+
+extern void l4c_rx_rssi_verify_ind_hdlr(msg_type msg_id,local_para_struct *local_para_ptr);
+extern void l4c_em_tx_report_ind_hdlr(msg_type msg_id,local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_set_rf_temperature_threshold_req(kal_uint8 src_id, 
+                                                     kal_bool on, 
+                                                     kal_int16 threshold, 
+                                                     kal_int16 period);
+extern void l4c_set_rf_temperature_threshold_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern void l4c_set_rf_temperature_threshold_ind_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+#ifdef __LTE_RAT__
+extern kal_bool l4c_vzw_antenna_test_req(kal_uint8 src_id, kal_uint8 type, kal_uint8 p1, kal_uint8 p2);
+extern void l4c_vzw_antenna_test_cnf_handler(msg_type msg_id, local_para_struct *local_para_ptr);
+#endif
+
+extern void l4cxl1_txrx_active_time_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern void l4c_accumulate_txrx_active_time(kal_uint32 rx_time, kal_uint32 *tx_time, kal_uint32 txrx_union_time);
+
+extern void l4c_c2k_rf_test_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_em_mmrf_mipi_action_req(kal_uint8 src_id,
+                                        kal_uint8 action, 
+                                        kal_uint8 port, 
+                                        kal_uint8 rw_type, 
+                                        kal_uint8 usid, 
+                                        kal_uint16 addr, 
+                                        kal_uint32 wr_data);
+
+extern kal_bool l4c_em_mmrf_bpi_action_req(kal_uint8 src_id, kal_uint8 action, kal_uint32 data1, kal_uint32 data2);
+extern void l4c_em_mmrf_mipi_bpi_action_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern void l4cps_md_event_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_send_mdmi_rat_info();
+extern void l4c_em_event_set_bitmask(em_info_status_enum em_info_status, l4c_em_event_enum l4c_em_event);
+
+extern kal_bool l4c_rfid_update_req_hdlr(kal_uint8 src_id, kal_uint16 feature, kal_int16 scenario_index);
+extern void l4c_rfid_update_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_set_gsm_tx_power_req_hdlr(kal_uint8 src_id, kal_uint8 cmd_type, kal_uint8 gsm_band, kal_int8 pcl_value);
+extern void l4c_set_gsm_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+#ifdef __ATERFTX_ERROR_HANDLE_ENHANCE__
+extern void l4c_em_rf_test_gsm_tx_test_ind_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_em_erftx_gsm_rsp(kal_uint8 src_id, ps_cause_enum error_cause);
+#endif 
+
+
+extern kal_bool l4c_set_max_tx_power_req_hdlr(kal_uint8 src_id, kal_uint8 rat, kal_uint16 offset, kal_uint8 gsm_band);
+extern void l4c_set_max_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+#ifdef __RF_SCAN_FOR_DESENSE_TEST__
+extern kal_bool l4c_l1_em_rf_scan_req(kal_uint8 src_id, em_rf_scan_req_struct *request);
+extern void l4c_l1_em_rf_scan_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+#endif /*__RF_SCAN_FOR_DESENSE_TEST__*/
+#ifdef __MCF_COMBINE_FILE_SUPPORT__
+extern kal_bool l4c_set_mcf_config_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 config_type, kal_uint8 path_type,
+                                              kal_uint8 *config1, kal_uint8 *config2, kal_uint8 *config3, kal_uint8 *config4,
+                                              kal_uint8 trigger_dsbp, kal_uint8 action, kal_uint8 mode, kal_uint8 *item,
+                                              kal_uint8 *value, kal_uint8 is_reset);
+#else
+extern kal_bool l4c_set_mcf_config_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 config_type, kal_uint8 path_type,
+                                              kal_uint8 *config1, kal_uint8 *config2, kal_uint8 *config3, kal_uint8 *config4,
+                                              kal_uint8 trigger_dsbp, kal_uint8 action, kal_uint8 mode, kal_uint8 *item,
+                                              kal_uint8 *value);
+#endif /* __MCF_COMBINE_FILE_SUPPORT__ */
+extern void l4c_set_mcf_config_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_get_mcf_config_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_mcf_report_state_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_mcf_dump_data_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_ostd_ap_core_status_req_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_mcf_update_ota_file_cnf_hdlr(local_para_struct *local_para_ptr);
+extern void l4c_mcf_config_cnf_hdlr(local_para_struct *local_para_ptr);
+extern kal_bool l4c_mcf_config_lid_variable_op_req_hdlr(kal_uint8 src_id, kal_uint8 op,kal_uint8 action, kal_uint16 lid_num, 
+                                                       kal_uint16 record_id, kal_uint8 *tag_name, kal_uint8 length);
+extern void l4c_mcf_config_lid_variable_op_cnf_hdlr(local_para_struct *local_para_ptr);
+
+#ifdef __MCF_COMBINE_FILE_SUPPORT__
+extern kal_bool l4c_mcf_variable_value_operation_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 format, kal_uint8 action, kal_uint32 number, 
+                                                       kal_uint8 *config, kal_uint8 length, kal_uint16 record_id, kal_uint8 *value);
+
+extern kal_bool l4c_mcf_assign_combined_file_path_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 config_type, 
+                                                            kal_uint8 path_type, kal_uint8 *config1);
+extern void l4c_mcf_assign_combined_file_path_cnf_hdlr(local_para_struct *local_para_ptr);
+
+#else
+extern kal_bool l4c_mcf_variable_value_operation_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 format, kal_uint8 action, kal_uint32 number, 
+                                                       kal_uint8 *config, kal_uint8 length, kal_uint16 record_id);
+
+#endif /* __MCF_COMBINE_FILE_SUPPORT__ */
+
+extern void l4c_mcf_variable_value_operation_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_mcf_dump_data_cnf_hdlr(local_para_struct *local_para_ptr);
+
+
+extern kal_bool l4c_em_extended_lce_report_req(kal_uint8 op,
+				                              kal_uint16 hyst_milli,
+				                              kal_uint16 ul_hyst_kbps,
+				                              kal_uint16 dl_hyst_kbps,
+				                              kal_uint8 ul_thresh_num,
+				                              kal_uint32 *ul_threshold,
+				                              kal_uint8 dl_thresh_num,
+				                              kal_uint32 *dl_threshold,
+				                              kal_uint8 rat);
+extern void l4cul1_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cel1_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cnl1_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cumac_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cmac_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4c_em_extended_lce_report_ind_hdlr(kal_uint8 is_ul_valid,
+	                                  kal_uint32 ul_kbps,
+	                                  kal_uint8 is_dl_valid,
+	                                  kal_uint32 dl_kbps);
+
+extern void l4c_lcm_hopping_ind_hdlr(msg_type msg_id,local_para_struct *local_para_ptr);
+
+extern void l4c_em_get_antenna_info_req(kal_uint8 mode);
+extern void l4c_em_get_antenna_info_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern void l4c_em_get_antenna_info_ind_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern void l4c_2g_rf_test_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern kal_bool l4c_mcf_config_dump_lid_data_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint16 *lid, kal_uint32 count);
+
+#ifdef __SAR_SENSOR_SUPPORT__
+extern void l4c_sar_sensor_setting_for_rfid(kal_uint8 g_sar_sensor_state);
+extern void l4c_sar_set_tx_ant_req_count(kal_uint8 count);
+extern kal_uint8 l4c_sar_get_tx_ant_req_count();
+extern void l4c_sar_set_txant_update_needed();
+extern void l4c_sar_reset_txant_update_needed();
+extern void l4c_update_sar_sensor_in_ap();
+extern void l4c_update_flight_sar_sensor_in_ap(kal_bool flight_status);
+#endif
+
+extern void l4c_tx_power_status_ind_hdlr(local_para_struct *local_para_ptr);
+#ifdef __TX_PWR_EXTENSION__
+extern kal_bool l4c_set_exclusive_max_tx_power_req_hdlr(kal_uint8 src_id, kal_uint8 rat, kal_uint8 num_band, kal_uint8 *band, kal_int16 *power_value,kal_uint8 nvram_write);
+void l4c_set_exclusive_max_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern kal_bool l4c_get_exclusive_max_tx_power_req(kal_uint8 src_id);
+void l4c_get_exclusive_max_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+#endif
+
+
+#endif /* _L4C_EM_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_eq_cmd.h b/mcu/protocol/interface/l4misc/l4c_eq_cmd.h
new file mode 100644
index 0000000..68fc8f1
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_eq_cmd.h
@@ -0,0 +1,894 @@
+/*****************************************************************************
+*  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).
+*
+*****************************************************************************/
+/*******************************************************************************
+*  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. (kal_uint8 src_id, C) 2001
+*
+*******************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_eq_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_EQ_CMD_H
+#define _L4C_EQ_CMD_H
+
+#include "med_struct.h"
+
+#include "l4c2uem_struct.h"
+#include "nvram_enums.h"
+//#include "event_shed.h"
+#include "device.h"
+#include "l4c_aux_struct.h"
+#include "dcl.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+#include "kal_public_api.h"
+#ifdef __LTE_RAT__
+#include "l4c_el1_struct.h"
+#endif
+
+#ifdef __TC01__
+typedef enum 
+{
+    FACTEST_LCD_INITIAL = 0,
+	FACTEST_LCD_CONTRAST,
+    FACTEST_LCD_TILT,
+    FACTEST_LCD_COLOR,
+    FACTEST_LCD_LED_ON,
+    FACTEST_LCD_LED_OFF,
+    FACTEST_LCD_RED = 11,
+    FACTEST_LCD_GREEN = 12,
+    FACTEST_LCD_BLUE = 13,
+    NUM_OF_FACTEST_LCD
+} lcd_test_mode_enum;
+#endif
+
+extern kal_bool l4c_eq_gpio_detect_res_req(kal_uint8 ext_gpio_device);
+
+/* audio related */
+extern kal_bool l4c_eq_audio_play_req(kal_uint8 src_id, kal_uint8 sound_id, kal_uint8 style, kal_uint16 identifier);
+
+extern kal_bool l4c_eq_full_para_audio_play_req(kal_uint8 src_id,
+                                                kal_uint8 sound_id,
+                                                kal_uint8 style, 
+                                                kal_uint16 identifier, 
+                                                kal_uint8 volume, 
+                                                kal_uint8 out_path);
+
+extern kal_bool l4c_eq_audio_play_by_name_req(
+                    kal_uint8 src_id,
+                    kal_wchar *file_name,
+                    kal_uint8 style,
+                    kal_uint16 identifier);
+
+extern kal_bool l4c_eq_audio_stop_by_name_req(kal_uint8 src_id, kal_wchar *file_name);
+
+extern kal_bool l4c_eq_audio_stop_req(kal_uint8 src_id, kal_uint8 sound_id);
+
+extern kal_bool l4c_eq_audio_play_by_string_req(
+                    kal_uint8 src_id,
+                    kal_uint8 *melody,
+                    kal_uint32 len,
+                    kal_uint8 format,
+                    kal_uint8 play_style,
+                    kal_uint16 identifier,
+                    kal_uint32 start_offset,
+                    kal_uint32 end_offset,
+                    kal_uint8 volume,
+    	            kal_uint8 output_path,
+    	            kal_uint8 blocking);
+
+extern kal_bool l4c_eq_audio_stop_by_string_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_demo_ext_midi_ring_req(
+                    kal_uint8 src_id,
+                    kal_uint8 *imelody,
+                    kal_uint16 len,
+                    kal_uint8 play_style,
+                    kal_uint16 identifier);
+extern kal_bool l4c_eq_fs_read_req(void);
+
+extern void l4c_eq_fs_app_next(void);
+extern void l4c_eq_fs_efsl_next(void);
+extern kal_bool l4c_eq_exe_volume_req(kal_uint8 src_id, kal_uint8 volume_type, kal_uint8 volume_level);
+
+extern kal_bool l4c_eq_set_audio_profile_req(kal_uint8 src_id, audio_profile_struct *audio_prof);
+
+extern kal_bool l4c_eq_set_audio_param_req(kal_uint8 src_id, audio_param_struct *audio_para);
+
+extern kal_bool l4c_eq_get_audio_profile_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_eq_get_audio_param_req(kal_uint8 src_id);
+
+#if defined(__AMRWB_LINK_SUPPORT__)
+extern kal_bool l4c_eq_get_audio_wb_param_req(kal_uint8 src_id, kal_uint8 option);
+
+extern kal_bool l4c_eq_set_audio_wb_param_req(kal_uint8 src_id, kal_uint8 option, void *new_param);
+#endif
+extern kal_bool l4c_eq_get_volume_req(kal_uint8 src_id, kal_uint8 volume_type);
+
+extern void l4c_eq_lcd_set_contrast_req(kal_uint8 lcd_type, kal_uint8 lcd_contrast);
+
+extern kal_bool l4c_eq_exe_mute_req(kal_uint8 src_id, kal_uint8 audio_device, kal_bool mute_onoff);
+
+extern kal_bool l4c_eq_get_mute_mode_req(kal_uint8 src_id, kal_uint8 audio_device, kal_bool *mute_onoff);
+
+extern kal_bool l4c_eq_set_silent_mode_req(kal_uint8 src_id, kal_bool mode);
+extern kal_bool l4c_eq_get_silent_mode_req(kal_uint8 src_id, kal_bool *mode);
+extern kal_bool l4c_eq_set_speech_mode_req(kal_bool on_off);
+
+extern kal_bool l4c_eq_set_audio_mode_req(kal_uint8 mode);  /* audio_mode_enum */
+
+extern kal_bool l4c_eq_get_adc_all_channel_start_req(void);
+
+extern kal_bool l4c_eq_get_adc_all_channel_stop_req(void);
+
+extern kal_bool l4c_eq_set_vibrator_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_eq_exe_gpio_level_req(kal_uint8 src_id, kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level);
+
+extern kal_bool l4c_eq_get_gpio_level_req(kal_uint8 src_id, kal_uint8 gpio_dev_type, kal_uint8 *gpio_dev_level);
+
+extern kal_bool l4c_eq_set_keypad_input_req(kal_uint8 src_id, kal_uint8 *keycode, kal_uint8 time, kal_uint8 pause);
+
+/* rtc related, clock, alarm */
+
+extern kal_bool l4c_eq_exe_rtc_time_req(
+                    kal_uint8 src_id,
+                    kal_uint8 rtc_type,
+                    kal_uint8 set_type,
+                    rtc_alarm_info_struct info);
+
+extern kal_bool l4c_eq_set_rtc_time_req(
+                    kal_uint8 src_id,
+                    kal_uint8 rtc_type,
+                    kal_uint8 set_type,
+                    rtc_alarm_info_struct info);
+
+extern kal_bool l4c_eq_get_rtc_time_req(
+                    kal_uint8 src_id,
+                    kal_uint8 rtc_type,
+                    kal_uint8 *num,
+                    rtc_alarm_info_struct *rtctime);
+
+extern kal_bool l4c_eq_exe_rtc_delete_req(kal_uint8 src_id, kal_uint8 rtc_type, kal_uint8 rtc_index);
+
+extern kal_bool l4c_eq_rtc_delete_req(kal_uint8 src_id, kal_uint8 rtc_type, kal_uint8 rtc_index);
+
+extern kal_bool l4c_eq_set_date_time_format_req(kal_uint8 src_id, kal_bool is_date_set, kal_uint8 mode);
+
+extern kal_bool l4c_eq_get_date_time_format_req(kal_uint8 src_id, kal_bool is_date_set, kal_uint8 *mode);
+
+/* misc */
+
+//extern kal_bool l4c_eq_set_language_req (kal_uint8 src_id, kal_uint8 *lang_code);
+extern kal_bool l4c_eq_set_language_req(kal_uint8 src_id, kal_uint8 lang_code);
+
+extern kal_bool l4c_eq_get_language_req(kal_uint8 src_id, kal_uint8 *lang_code);
+
+extern kal_bool l4c_eq_set_greeting_text_req(
+                    kal_uint8 src_id,
+                    kal_bool mode,
+                    kal_uint8 dcs,
+                    kal_uint8 text[62],
+                    kal_uint8 length);
+
+extern kal_bool l4c_eq_get_battery_capacity_status_req(
+                    kal_uint8 src_id,
+                    kal_uint8 *battery_status,
+                    kal_uint32 *battery_cap);
+
+extern kal_bool l4c_eq_get_equip_id_req(kal_uint8 src_id, kal_uint8 equip_type, kal_uint8 *equip_id);
+
+extern kal_bool l4c_eq_read_nvm_uart_port_req(kal_uint8 src_id, kal_uint16 action); //MAUI_02304946, mtk02285
+
+extern kal_bool l4c_eq_load_default_config_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_load_power_on_data_req(kal_uint8 src_id, kal_bool read_flag, nvram_lid_enum file_idx);
+
+extern kal_bool l4c_eq_uart_transfer_req(kal_uint8 port);
+
+extern kal_bool l4c_eq_uart_release_req(kal_uint8 port);
+
+extern kal_bool l4c_eq_set_uart_port_req(
+                    kal_uint8 src_id,
+                    kal_uint8 func_id,
+                    kal_uint8 ps_port,
+                    kal_uint8 tst_port_ps,
+                    kal_uint32 ps_baud_rate,
+                    kal_uint32 tst_baud_rate_ps,
+                    kal_bool High_Speed_SIM_Enabled,
+                    kal_uint8 swdbg,
+                    kal_uint8 uart_power_setting,
+                    kal_uint8 cti_uart_port,
+                    kal_uint32 cti_baud_rate,
+                    kal_uint8 tst_port_l1,
+                    kal_uint32 tst_baud_rate_l1,
+                    kal_uint8 tst_output_mode,
+                    kal_uint8 usb_logging_mode,
+                    kal_uint16 tst_port_dsp,
+                    kal_uint32 tst_baud_rate_dsp);
+
+extern kal_bool l4c_eq_get_uart_port_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_read_nvram_req(
+                    kal_uint8 src_id,
+                    kal_uint16 file_idx,
+                    kal_uint16 para,
+                    kal_uint16 rec_amount);
+
+extern kal_bool l4c_eq_write_nvram_req(
+                    kal_uint8 src_id,
+                    kal_uint16 file_idx,
+                    kal_uint16 para,
+                    kal_uint8 *data,
+                    kal_uint16 length);
+
+extern kal_bool l4c_eq_reset_nvram_req(
+                    kal_uint8 src_id,
+                    kal_uint8 reset_category,
+                    kal_uint16 lid,
+                    kal_uint16 rec_index,
+                    kal_uint16 rec_amount);
+
+extern kal_bool l4c_eq_power_off_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_cancel_lock_poweron_req(kal_uint8 src_id,kal_uint8 type);
+
+extern eventid l4c_set_timer_req(void *timeout_hdlr, kal_uint16 time, void *param);
+
+extern kal_bool l4c_exe_functionality_req(kal_uint8 src_id, kal_uint8 fun, kal_uint8 rst);
+
+extern kal_bool l4c_em_keypad_event_output_req(kal_uint8 src_id, kal_uint8 keypad_status, kal_uint8 keypad_code,kal_uint32 time_stamp);
+
+extern void l4c_eq_keypad_event_output_req(kal_uint8 src_id, kal_uint8 keypad_status, kal_uint8 keypad_code);
+
+extern void l4c_eq_scrntch_event_output_req(kal_uint8 action, kal_uint16 x_coords, kal_uint16 y_coords);
+
+extern kal_bool l4c_em_lcm_test_ind(kal_uint8 src_id, kal_uint8 color_type);
+
+extern kal_bool l4c_em_set_mmi_default_prof_ind(
+                    kal_uint8 src_id,
+                    kal_uint8 op,
+                    kal_uint8 category,
+                    kal_uint8 param1,
+                    kal_uint8 param2,
+                    kal_uint8 param3,
+                    kal_uint8 *param4);
+
+extern kal_bool l4c_em_keypad_event_act_ind(kal_uint8 src_id, kal_bool on_off);
+
+extern kal_bool l4c_em_lcm_sleep_mode_req_ind(kal_uint8 src_id, kal_uint8 on_off);
+
+extern kal_bool l4c_eq_pattern_play_req(kal_uint8 src_id, kal_uint8 pattern, kal_uint8 action);
+
+extern kal_bool l4c_eq_set_hw_level_req(kal_uint8 src_id, l4c_hw_profile_struct *hw_profile);
+
+extern kal_bool l4c_eq_get_hw_level_req(kal_uint8 src_id, l4c_hw_profile_struct *hw_profile);
+
+extern kal_bool l4c_eq_read_ms_sn_req(kal_uint8 src_id, nvram_lid_enum file_idx, kal_uint8 para);
+
+extern kal_bool l4c_eq_read_ms_sv_req(kal_uint8 src_id, nvram_lid_enum file_idx, kal_uint8 para);
+
+extern kal_bool l4c_eq_read_autotest_report_req(kal_uint8 src_id, nvram_lid_enum file_idx, kal_uint8 para);
+
+#ifdef __IRDA_SUPPORT__
+extern kal_bool l4c_eq_irda_open_req(kal_uint16 wait_duration);
+
+extern kal_bool l4c_eq_irda_close_req(void);
+#endif /* __IRDA_SUPPORT__ */ 
+
+extern kal_bool l4c_eq_set_ms_sn_req(kal_uint8 src_id, kal_uint8 *data, kal_uint8 length);
+
+extern kal_bool l4c_eq_set_ms_imei_req(kal_uint8 src_id, kal_uint8 *data, kal_uint8 length);
+
+extern kal_bool l4c_eq_set_ms_sv_req(kal_uint8 src_id, kal_uint8 *data, kal_uint8 length);
+
+#if 0
+/* under construction !*/
+#endif
+extern kal_bool l4c_eq_lock_nvram_req(kal_uint8 src_id, kal_uint8 mode);        /* nvram_lock_state_enum */
+
+extern kal_bool l4c_em_sleep_mode_req(kal_bool on_off);
+
+extern void l4c_mms_folder_status_output_req(
+                kal_uint8 result,
+                kal_uint32 numOfMsg,
+                kal_uint32 numOfUnreadMsg,
+                kal_uint8 *mmsHomeDirectory,
+                kal_uint8 *infoFilePath);
+extern void l4c_mms_upload_msg_output_req(kal_uint8 result, kal_uint32 msgId, kal_uint8 storage);
+extern void l4c_mms_delete_msg_output_req(kal_uint8 result);
+extern void l4c_mms_read_msg_path_res_req(kal_uint8 result, kal_uint32 msgId,kal_uint8 *path);
+
+extern void l4c_eq_screen_touch_res_req(kal_int8 result);
+extern void l4c_eq_scrnorient_res_req(kal_int8 result, kal_uint8 mode);
+extern void l4c_eq_scrnsize_query_res_req(kal_int8 result, kal_uint16 max_x, kal_uint16 max_y);
+extern void l4c_eq_screen_shot_res_req(kal_int8 result, kal_uint8 op, kal_wchar *file_path);
+
+extern void l4c_eq_at_alarm_general_res_req(kal_bool result);
+extern void l4c_eq_at_alarm_query_res_req(
+                kal_uint8 totalAlarm,
+                kal_uint8 activeAlarm,
+                mmi_at_alarm_info_struct *alarmList);
+
+extern void l4c_eq_query_vibrator_mode_res_req(kal_bool mode);
+extern void l4c_eq_query_silent_mode_res_req(kal_bool mode);
+extern void l4c_eq_query_mute_mode_res_req(kal_bool mode);
+extern void l4c_eq_query_greeting_text_res_req(kal_bool mode, kal_uint8 dcs, kal_uint8 *text, kal_uint8 length);
+extern void l4c_eq_query_language_res_req(kal_uint8 lang_code);
+extern void l4c_eq_query_datetime_format_res_req(kal_bool is_date, kal_uint8 mode);
+extern void l4c_mmi_java_local_install_res_req(kal_uint32 error_code);
+
+extern void l4c_eq_pmic_config_req(kal_uint8 src_id, kal_uint8 request_type, pmic_config_param_struct request);
+extern void l4c_eq_usbdetect_res_req(kal_uint8 src_id, kal_uint8 action);
+extern void l4c_eq_battery_status_res_req(kal_uint8 src_id, kal_uint8 status_type);
+extern kal_bool l4c_bt_set_vr_req(kal_uint8 src_id, kal_bool on_off);
+extern void l4c_eq_vcard_res_req(kal_uint8 mode, kal_bool result, kal_uint8 *file_path);
+extern void l4c_eq_vcalendar_res_req(
+                kal_uint8 mode,
+                kal_bool result,
+                kal_uint8 cause,
+                kal_uint8 total,
+                kal_uint8 used,
+                kal_uint8 index,
+                kal_uint8 *file_path);
+extern void l4c_eq_str_res_req(kal_uint16 length, kal_uint8 *data_string);
+extern void l4c_eq_dcm_enable_req(kal_uint8 src_id, kal_bool enable);
+extern void l4c_eq_rf_test_gsm_req(kal_uint8 src_id, kal_uint8 request_type, rf_test_gsm_param_struct request);
+extern void l4c_eq_fm_radio_config_req(kal_uint8 src_id, kal_uint8 request_type, fm_radio_config_param_struct request);
+#if defined(__WIFI_SUPPORT__)
+extern void l4c_eq_rf_test_wifi_req(kal_uint8 src_id, kal_uint8 request_type, rf_test_wifi_param_struct request);
+#endif
+extern void l4c_mmi_eq_call_status_req(kal_uint8 src_id, kal_uint8 call_status);
+extern void l4c_eq_query_hand_free_mode_res_req(kal_bool is_hand_free);
+extern void l4c_eq_set_avr_res_req(kal_uint8 result, kal_uint8 mode);
+extern void l4c_eq_set_cam_res_req(kal_uint8 result, kal_uint8 mode);
+
+extern kal_bool l4c_eq_set_backlight_req(kal_uint8 state, kal_uint16 duration);
+extern void l4c_eq_at_cbklt_query_res_req(kal_uint8 level, kal_uint16 duration);
+
+extern void l4c_eq_ram_usage_res_req(kal_int8 result, kal_uint32 used);
+extern void l4c_eq_launch_app_res_req(kal_int8 result);
+extern void l4c_eq_app_info_output_res_req(kal_uint8 type, kal_uint16 *log);
+extern void l4c_em_get_conftest_para_req(kal_uint8 src_id);
+extern kal_bool l4c_em_set_conftest_para_req(kal_uint8 src_id, kal_uint8 conf_test_mode, kal_uint32 test_profile);
+extern void l4c_eq_ringtone_play_res_req(kal_bool result, kal_uint8 cause);
+
+extern kal_bool l4c_eq_3g_rf_test_req(kal_uint8 src_id, kal_uint8 func, kal_uint8 band, kal_uint16 freq, kal_int8 power);
+#if defined(__NFC_SUPPORT__)
+extern kal_bool l4c_eq_nfc_test_req(kal_uint8 src_id, kal_uint8 option, void *data_ptr);
+#endif
+
+#if defined(__AT_BACKUP_DATA_SUPPORT__)
+extern kal_bool l4c_em_set_sds_req(kal_uint8 src_id, kal_uint8 op);
+#endif
+
+extern kal_bool l4c_eq_set_boot_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern void l4c_eq_query_cal_data_dl_status_req(kal_uint8 src_id);
+
+extern kal_bool l4c_med_in_proc_call_req(l4c_source_id_enum src_id, 
+                                         kal_uint16 cmd_id,
+                                         void *cmd_info, 
+                                         kal_uint16 size_of_info);
+
+extern void l4c_med_in_epof_req(void);
+extern void l4c_power_off_notify_others(void);
+
+#ifdef __LTE_RAT__
+extern kal_bool l4c_eq_rx_rssi_verify_req(kal_uint16 band, kal_uint32 dl_earfcn);
+extern kal_bool l4c_eq_rf_test_lte_req(kal_uint8 src_id, kal_uint8 request_type, EL1_EM_TSTCmd_ForceTxPwr_T *request);
+extern kal_bool l4cel1_send_b3_info_req(kal_uint8 src_id, kal_uint8 type, kal_uint8 index, kal_uint16 arfcn, kal_int16 rssi);
+
+#endif
+
+extern void l4c_set_dynamic_sim_switch();
+extern void l4c_set_reconfig_req(protocol_id_enum ps_sim_id);
+
+extern kal_bool l4c_eq_txrx_active_time_req(l4c_source_id_enum src_id); 
+extern kal_bool l4c_eq_c2k_rf_test_req(l4c_source_id_enum src_id,kal_uint8 mode, 
+                                       kal_uint8 band, kal_uint8 powerLevel, kal_uint16 channel,
+                                       kal_uint8 reductionLevel_Ant0, kal_uint8 reductionLevel_Ant1);
+extern void l4c_send_volte_reconfigure_req(kal_uint8 type);
+extern void l4c_send_ims_reconfigure_req(module_type dest_mod, kal_uint8 sap, kal_uint8 type);
+extern kal_bool l4c_hspa_lce_report_pulldata_req(kal_uint8 srcid);
+extern kal_bool l4c_hspa_lce_report_req(kal_uint8 srcid, kal_uint8 mode, kal_uint32 rpt_interval);
+extern kal_bool l4c_eq_apinfo_update_req(kal_uint8 receiver_status, kal_uint8 screen_orientation, kal_uint8 psensor_info, kal_uint8 voice_call_status);
+extern kal_bool l4c_lce_report_pulldata_req(kal_uint8 srcid);
+extern kal_bool l4c_lce_report_req(kal_uint8 srcid, kal_uint8 mode, kal_uint32 rpt_interval);
+#endif /* _L4C_EQ_CMD_H */
+
+extern void l4c_eq_gpio_detect_ind(kal_uint8 gpio_device, kal_bool on_off);
+extern void l4c_eq_power_on_ind(void);
+#ifdef __TC01__
+extern kal_bool l4c_portlockunlock_nvram_req(kal_uint8 src_id, port_lock_enum lock_mode, port_lock_mode_enum cmd_mode);
+extern kal_bool l4c_portunlock_req(kal_uint8 src_id,kal_uint8 *str);
+#endif
+
+extern l4c_at_cmd_process_type_enum l4c_eq_set_kal_UTC(kal_uint8 src_id, l4c_general_modem_configure_struct *cmd_param_ptr);
+
diff --git a/mcu/protocol/interface/l4misc/l4c_eq_msg.h b/mcu/protocol/interface/l4misc/l4c_eq_msg.h
new file mode 100644
index 0000000..bdcec29
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_eq_msg.h
@@ -0,0 +1,194 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_eq_msg.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ * 
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_EQ_MSG_H
+#define _L4C_EQ_MSG_H
+
+#include "keypad_sw.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_struct.h"   
+#include "uem_at_cmd.h" 
+
+extern void l4cuem_power_on_ind(kal_uint8 poweron_mode, kal_uint8 battery_level);
+
+extern void l4cuem_audio_play_finish_ind(kal_uint8 result, kal_uint16 identifier);
+
+extern void l4cuem_gpio_detect_ind(kal_uint8 gpio_device, kal_bool on_off);
+
+extern void l4cuem_alarm_detect_ind(rtc_format_struct *rtc_time);
+
+extern void l4cuem_rtc_period_ind(kal_uint8 rtc_type, rtc_format_struct *rtc_time);
+
+extern void l4cuem_keypad_detect_ind(kal_bool(*drv_get_key_func) (kbd_data *));
+
+extern void l4cuem_battery_status_ind(kal_uint8 battery_status, kal_uint8 battery_voltage);
+
+extern void l4cuem_get_adc_all_channel_ind(
+                kal_int32 vbat,
+                kal_int32 bat_temp,
+                kal_int32 vaux,
+                kal_int32 charge_current,
+                kal_int32 vcharger);
+
+extern void l4cuem_startup_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_play_by_name_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_stop_by_name_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_play_by_string_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_stop_by_string_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_audio_profile_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_volume_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_gain_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_audio_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_audio_wb_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_audio_wb_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_audio_profile_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_audio_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_hw_level_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4c_keypad_input_press_hdlr(void);
+
+extern void l4c_keypad_input_pause_hdlr(void);
+
+extern void l4c_keypad_input_long_press_hdlr(void);
+
+extern void l4c_keypad_input_repeat_hdlr(void);
+
+extern void l4cuem_usbdetect_ind(kal_uint8 action);
+
+extern void l4cuem_usb_power_on_ind(void);
+
+extern void  l4c_eq_get_calibration_flag_rsp(kal_uint8 cal_flag);
+
+extern void  l4c_eq_get_calibration_data_rsp(kal_uint8 cal_data);
+
+extern void l4cuem_at_ef_port_setting_result_rrsp(l4cuem_at_ef_port_mode_enum mode, kal_bool result);
+
+#define l4c_equeue_onekey_to_kbdbuffer(_event,_key)                                                            \
+{                                                                                                              \
+   l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_windex].Keyevent = _event;                    \
+   l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_windex].Keydata[0] = _key;                    \
+   l4c_kbd_buffer.kbd_data_buffer_windex++;                                                                    \
+   l4c_kbd_buffer.kbd_data_buffer_windex &= (kbd_buffer_size-1);                                               \
+   if(l4c_kbd_buffer.kbd_data_buffer_windex==l4c_kbd_buffer.kbd_data_buffer_rindex)                            \
+   {                                                                                                           \
+      l4c_kbd_buffer.kbd_data_buffer_windex--;                                                                 \
+      l4c_kbd_buffer.kbd_data_buffer_windex &= (kbd_buffer_size-1);                                            \
+      while(l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_windex].Keyevent != kbd_onekey_press)\
+      {                                                                                                        \
+         l4c_kbd_buffer.kbd_data_buffer_windex--;                                                              \
+         l4c_kbd_buffer.kbd_data_buffer_windex &= (kbd_buffer_size-1);                                         \
+      }                                                                                                        \
+   }                                                                                                           \
+}
+
+#define l4c_dequeue_onekey_from_kbdbuffer(_event,_key)                                     \
+{                                                                                          \
+   _event = l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_rindex].Keyevent;\
+   _key = l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_rindex].Keydata[0];\
+   l4c_kbd_buffer.kbd_data_buffer_rindex++;                                                \
+   l4c_kbd_buffer.kbd_data_buffer_rindex &= (kbd_buffer_size-1);                           \
+}
+
+#define l4c_clear_kbdbuffer()                                                           \
+{                                                                                       \
+   kal_mem_set(l4c_kbd_buffer.kbd_data_buffer, 0xff, sizeof(kbd_data)* kbd_buffer_size);\
+   l4c_kbd_buffer.kbd_data_buffer_windex = 0 ;                                          \
+   l4c_kbd_buffer.kbd_data_buffer_rindex = 0 ;                                          \
+}
+
+extern void l4cuem_leave_precharge_ind(void);
+
+extern void l4cuem_pmic_config_cnf(kal_uint8 src_id, kal_uint8 request_type, pmic_config_param_struct request);
+
+extern void l4cuem_rf_test_gsm_cnf(kal_uint8 src_id, kal_uint8 request_type, rf_test_gsm_param_struct request);
+
+extern void l4cuem_fm_radio_config_cnf(kal_uint8 src_id, kal_uint8 request_type, fm_radio_config_param_struct request);
+
+#if defined(__WIFI_SUPPORT__)
+extern void l4cuem_rf_test_wifi_cnf(kal_uint8 src_id, kal_uint8 request_type, rf_test_wifi_param_struct request);
+#endif
+
+extern void l4c_l1_query_cal_data_dl_status_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+#ifdef __LTE_RAT__
+extern void l4cel1_rx_rssi_verify_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_eq_rf_test_lte_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cel1_b3_info_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+#endif
+
+#endif /* _L4C_EQ_MSG_H */ /* l4c_eq_msg.h */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_gprs_cmd.h b/mcu/protocol/interface/l4misc/l4c_gprs_cmd.h
new file mode 100644
index 0000000..a11ffa7
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_gprs_cmd.h
@@ -0,0 +1,245 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_gprs_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for ¡K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_GPRS_CMD_H
+#define _L4C_GPRS_CMD_H
+
+#ifdef __MOD_TCM__
+	//#include "kal_non_specific_general_types.h"
+	#include "l4c_common_enum.h"
+	//#include "l4c_aux_struct.h"
+	#include "l4c2tcm_func.h"
+	#include "l4c2tcm_struct.h"
+	#ifdef __TCPIP__
+		//#include "l4c2abm_struct.h"
+	#endif
+	
+	#include "kal_general_types.h"
+	#include "ps_public_struct.h"
+    #include "pam2tcm_struct.h"
+
+#include "l4c_ps_cmd.h"
+
+#ifdef __L4C_GPRS_UT__
+#define L4C_C2K_ASSERT(x) ASSERT(x)
+#else
+#define L4C_C2K_ASSERT(x) DEBUG_ASSERT(x)
+#endif
+
+extern kal_bool l4c_ps_get_gprs_data_counter_req(l4c_gprs_statistics_info_struct *counter_info);
+
+extern kal_bool l4c_eps_set_tft_req(kal_uint8 src_id, tft_info_struct *tft);
+
+/*
+ * add local_deactivate_pdp for __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ * mtk02126 MAUI_02532440 add data_src to handle plugout indication while escape 
+ */
+//extern void l4c_ps_disc_ppp_dialup_req(l4c_source_id_enum cmd_src_id, l4c_source_id_enum data_src_id, kal_uint8 context_id, kal_bool local_deactivate_pdp);
+
+extern l4c_source_id_enum l4c_ps_find_data_src_id(void);
+
+
+extern kal_bool l4c_tcm_set_ppp_auth_info_req(kal_uint8 src_id, kal_uint8 context_id, kal_uint8 auth_type);
+
+extern kal_bool l4c_ppp_deactivate_req(kal_uint8 nsapi);
+
+extern kal_bool l4c_ps_get_acl_mode_req(kal_uint8 src_id);
+
+extern kal_bool l4c_ps_set_acl_mode_req(kal_uint8 src_id, kal_uint8 on_off, kal_uint8 *pin);
+
+extern kal_bool l4c_ps_get_acl_entries_req(kal_uint16 start_index, kal_uint16 max_read_entries);
+
+extern kal_bool l4c_ps_add_acl_entry_req(l4c_tcm_acl_entry_struct acl_entry);
+
+extern kal_bool l4c_ps_set_acl_entry_req(kal_uint16 index, l4c_tcm_acl_entry_struct acl_entry);
+
+extern kal_bool l4c_ps_del_acl_entry_req(kal_bool del_all, kal_uint16 index, l4c_tcm_acl_entry_struct acl_entry);
+
+extern kal_bool l4c_ps_leave_acl_menu_req(void);
+
+
+
+#endif /* __MOD_TCM__ */
+#endif /* _L4C_GPRS_CMD_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h b/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
new file mode 100644
index 0000000..e94004b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
@@ -0,0 +1,112 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4c_lcs_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6268
+ *
+ * Description:
+ * ------------
+ *   This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_LCS_CMD_H
+#define _L4C_LCS_CMD_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_aux_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+extern kal_bool l4c_ss_mtlr_begin_res_req(kal_uint8 src_id,
+                                          L4C_SS_LocationNotificationRes *response,
+                                          kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_aerq_begin_res_req(kal_uint8 src_id,
+                                          kal_uint8 cause,
+                                          kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_aerp_begin_req(kal_uint8 src_id,
+                                      L4C_SS_LCS_AreaEventReportArg *aerp,
+                                      kal_uint8 ss_id,
+                                      kal_uint8 is_initial,
+                                      kal_uint8 rat_info);
+
+extern kal_bool l4c_ss_aerp_end_req(kal_uint8 src_id,
+                                    kal_uint8 cause,
+                                    kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_aecl_begin_res_req(kal_uint8 src_id,
+                                          kal_uint8 cause,
+                                          kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_molr_begin_req(kal_uint8 src_id,
+                                      L4C_SS_LCS_MOLRArg *molr,
+                                      kal_uint8 ss_id,
+                                      kal_uint8 is_initial,
+                                      kal_uint8 rat_info);
+
+extern kal_bool l4c_ss_molr_end_req(kal_uint8 src_id, 
+                                    kal_uint8 cause,
+                                    kal_uint8 ss_id);
+
+extern void l4c_agps_cp_enable_disable_req(kal_uint8 src_id, kal_uint8 enable);
+
+extern void l4c_agps_cp_key_update_req(kal_uint8 src_id, 
+                                       kal_uint8 *sib15_current_deciphering_key, 
+                                       kal_uint8 *sib15_next_deciphering_key, 
+                                       kal_uint8 sib15_ciphering_key_flag);
+                                       
+extern void l4c_agps_cp_abort_req(kal_uint8 src_id,
+                                  kal_uint8 is_abort_molr); //MAUI_02601131
+
+extern void l4c_lbs_message_dispatch(ilm_struct *ilm_ptr); //lbs message
+
+extern void l4c_lcs_ecc_info_req(kal_bool ecc_ongoing);
+extern void l4c_lcs_emt_info_req(kal_bool emt_ongoing);
+
+#endif /* _L4C_LCS_CMD_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_phb_cmd.h b/mcu/protocol/interface/l4misc/l4c_phb_cmd.h
new file mode 100644
index 0000000..be7b34f
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_phb_cmd.h
@@ -0,0 +1,186 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_phb_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_PHB_CMD_H
+#define _L4C_PHB_CMD_H
+
+#include "l4c_common_enum.h"
+#include "l4c2phb_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "rmmi_common_enum.h"
+
+extern kal_bool l4c_phb_startup_begin_req(kal_bool is_fdn_change);
+
+extern kal_bool l4c_phb_get_entry_by_prefix_text_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type,
+                    kal_uint16 no_data,
+                    l4_name_struct *name);
+
+extern kal_bool l4c_phb_get_entry_by_index_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type,
+                    kal_uint8 storage,
+                    kal_uint8 num_index,    
+                    kal_uint16 index,
+                    kal_uint16 record_index,
+                    kal_uint16 no_data);
+
+extern kal_bool l4c_phb_get_entry_by_range_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type,
+                    kal_uint8 storage,
+                    kal_uint16 index,
+                    kal_uint16 record_index,
+                    kal_uint16 no_data);
+
+extern kal_bool l4c_phb_get_entry_for_ecpbr_req(
+            kal_uint8 src_id,
+            kal_uint8 type,
+            phb_storage_enum storage,
+            kal_uint8 num_index,
+            kal_uint16 record_index);
+
+extern kal_bool l4c_phb_get_type_info(
+            kal_uint8 type, 
+            l4cphb_file_info_struct* file_info, 
+            kal_uint8 occurrence);
+
+extern kal_bool l4c_phb_get_storage_info(
+                    kal_uint8 src_id,
+                    kal_uint8 rmmi_storage,
+                    kal_uint16 *used,
+                    kal_uint16 *total);
+
+
+extern kal_bool l4c_phb_init_me_phb_req(kal_uint8 src_id,kal_uint8 init_type);
+
+extern kal_bool l4c_phb_exe_write_entry_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type,
+                    kal_uint16 no_data,
+                    l4c_phb_entry_struct *list);
+
+extern kal_bool l4c_phb_exe_delete_entry_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type,
+                    kal_uint8 num_index,
+                    kal_uint16 index,
+                    kal_uint8 no_data,
+                    kal_uint8 storage,
+                    kal_bool del_all, 
+                    kal_uint16 record_index);
+
+extern void l4c_phb_update(void);
+
+extern kal_bool l4c_phb_read_req(
+            kal_uint8 src_id,
+            kal_uint8 type,
+            kal_uint8 storage,
+            kal_uint8 num_index,
+            kal_uint16 index,
+            kal_uint16 record_index,
+            kal_uint16 no_data, 
+            l4c_action_enum action);
+
+extern kal_bool l4c_phb_read_usim_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type, 
+                    kal_uint8 occurrence, 
+                    kal_uint16 record_index);
+
+extern kal_bool l4c_phb_write_usim_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type, 
+                    kal_uint8 occurrence, 
+                    kal_uint16 record_index,
+                    l4c_phb_usim_entry *entry);
+
+extern kal_bool l4c_phb_delete_usim_req(
+                    kal_uint8 src_id,
+                    kal_uint8 type, 
+                    kal_uint8 occurrence, 
+                    kal_uint16 record_index);
+
+extern kal_bool l4c_phb_check_write_usim_entry_req(
+                    kal_uint8 src_id,
+                    kal_uint8 file_bitmap[PHB_TYPE_TOTAL],
+                    kal_uint16 record_index);
+
+extern void l4c_phb_crsm_notify_write_entry_req(
+                    kal_uint16 file_id,
+                    kal_uint8 index,        
+                    kal_uint8 mode,         
+                    kal_uint8 data_len,     
+                    kal_uint8 *data);
+
+extern kal_bool l4c_phb_fdn_check_req(
+                kal_uint8 src_id, 
+                l4_addr_bcd_struct *tel_num, 
+                kal_uint8 is_retrieve, 
+                l4c_phb_approval_type_enum approval_type,
+                l4c_action_enum phb_action,
+                l4c_phb_approve_src_enum approve_src);
+
+#ifdef __CDMA2000_RAT__
+extern kal_bool l4c_phb_allow_send_ready(void);
+#endif
+
+extern void l4c_phb_context_switch(l4c_me_reconfig_enum reconfig_type);
+extern kal_bool l4c_phb_exe_ecpbridx(kal_uint16 index1, kal_uint16 index2, rmmi_phb_type_enum storage_type);
+
+#endif /* _L4C_PHB_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_ps_cmd.h b/mcu/protocol/interface/l4misc/l4c_ps_cmd.h
new file mode 100644
index 0000000..12a06b4
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ps_cmd.h
@@ -0,0 +1,185 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_ps_cmd.h
+ *
+ * Project:
+ * --------
+ *   UMOLY
+ *
+ * Description:
+ * ------------
+ *   This file is intends for K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_PS_CMD_H
+#define _L4C_PS_CMD_H
+
+#ifdef __MOD_TCM__
+#include "l4c_common_enum.h"
+#include "l4c2tcm_func.h"
+#include "l4c2tcm_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "pam2tcm_struct.h"
+#include "l3_inc_enums.h"
+#include "ddm_common_struct.h"
+
+#ifdef __MOBILE_BROADBAND_PROVISION_CONTEXT__
+extern kal_bool l4c_ps_get_provision_context_req(kal_uint8 src_id, kal_bool get_all);
+extern kal_bool l4c_ps_set_provision_context_req(kal_uint8 src_id, kal_uint8 entry_id, kal_uint32 pcid, kal_uint8 pctype, kal_uint8 * apn, kal_uint8 * username, kal_uint8 * passwd, kal_uint8 comp, kal_uint8 auth_type, kal_uint8 * plmn_in_digit, kal_uint16 status);
+#endif /* __MOBILE_BROADBAND_PROVISION_CONTEXT__ */
+
+
+extern kal_bool l4c_ps_set_vzw_apn_table_req(
+             kal_uint8  src_id,  
+             vzw_apn_table_struct *apn_table);
+extern kal_bool l4c_ps_set_clear_vzw_apn_table(kal_uint8  src_id);
+
+extern kal_bool l4c_ps_get_vzw_apn_table_req(kal_uint8  src_id);
+
+extern kal_bool l4c_ps_set_vzw_apn_params_req(
+             kal_uint8  src_id,  
+             kal_uint8  wapn,
+             kal_uint32 max_conn_t,
+             kal_uint32 max_conn_t_value_in_sec,
+             kal_uint32 wait_time_value_in_sec,
+             kal_uint32 throttle_time_value_in_sec);
+
+extern kal_bool l4c_ps_get_vzw_apn_params_req(kal_uint8  src_id);
+
+extern void l4c_ps_send_at_cmd_cnf(kal_uint32 src_id, kal_bool is_success, kal_uint16 err_cause);
+
+extern void l4c_ps_send_egpco_ind_without_content(kal_uint8 cid, kal_uint32 ieid);
+extern void l4c_ps_send_egpco_ind_with_content(kal_uint8 cid, kal_uint32 ieid, kal_uint8 content_len, kal_uint8 *content_ptr);
+             
+extern kal_bool l4c_ps_set_cgauth_req(kal_uint8 src_id, l4ctcm_set_cgauth_info_req_struct *cgauth_req);	
+extern kal_bool l4c_ps_set_undefine_req(kal_uint8 src_id, kal_uint8 cid, kal_uint16 undef_action);
+
+extern kal_bool l4c_ps_set_eqos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_eqos_struct *min);
+
+extern kal_bool l4c_ps_get_eqos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_eqos_list_struct *info);
+extern kal_bool l4c_ps_get_eps_qos_info_req(kal_uint8 src_id, l4c_eps_qos_list_struct *info);
+extern kal_bool l4c_ps_get_vgqos_info_req(kal_uint8 src_id, l4c_vgqos_list_struct *info);
+
+extern kal_bool l4c_ps_get_config_option_info(kal_uint8 src_id, l4c_config_option_list_struct *info);
+extern kal_bool l4c_ps_get_cgauth_info(kal_uint8 src_id, l4c_cgauth_info_list_struct *info);
+
+extern kal_bool l4c_ps_exe_send_data_req(kal_uint8 src_id, kal_uint8 cid, kal_uint32 size);
+
+extern kal_uint32 l4c_ps_get_enter_data_network_interface(kal_uint8 l2p, kal_uint32 chid);
+
+extern kal_bool l4c_ps_exe_enter_data_state_req(kal_uint8 src_id, kal_uint8 l2p, kal_uint8 cid, kal_uint32 chid);
+
+extern kal_bool l4c_ps_exe_leave_data_state_req(kal_uint8 src_id, kal_uint8 cid);
+
+extern kal_bool l4c_ps_set_tft_req(kal_uint8 src_id, tft_info_struct *tft);
+extern kal_bool l4c_ps_get_tft_req(kal_uint8 src_id, tft_info_list_struct *tft_info_list);
+
+extern kal_bool l4c_ps_get_qos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_qos_list_struct *info);
+extern kal_bool l4c_eps_set_qos_req(kal_uint8 src_id, l4c_eps_qos_struct *qos);
+extern kal_bool l4c_ps_set_vqqos_req(kal_uint8 src_id, l4c_vgqos_struct *qos_info);
+
+extern kal_bool l4c_ps_set_qos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_qos_struct *min);
+
+extern kal_bool l4c_ps_set_sec_definition_req(kal_uint8 src_id, l4c_sec_pdp_info_struct *pdp);
+
+extern kal_bool l4c_ps_get_sec_definition_list_req(kal_uint8 src_id, l4c_sec_pdp_info_list_struct *info);
+
+extern kal_bool l4c_ps_set_definition_req(kal_uint8 src_id, l4c_prim_pdp_info_struct *pdp, l4c_cmd_conflict_check_option_enum check_option);
+
+extern void l4c_ps_event_notify_request(pam_event_notify_enum notify_event);
+
+extern kal_bool l4c_ps_set_extended_definition_req(kal_uint8 src_id, l4c_extended_pdp_info_struct *extended_pdp, l4c_cmd_conflict_check_option_enum check_option);
+
+extern kal_bool l4c_ps_sync_apn_info_to_tcm(kal_uint8 src_id, l4c_apn_info_struct *sync_req);
+
+extern kal_bool l4c_ps_send_cellular_network_cfg_to_tcm(l4c_cellular_network_config *config);
+
+extern void l4c_ps_send_data_service_status_update_to_rac(kal_bool is_data_service_present, kal_bool is_data_service_on, kal_bool is_data_roaming_service_present, kal_bool is_data_roaming_service_on);
+
+extern void l4c_ps_send_pdn_revive_cnf_to_l4bpdn(kal_uint8 cid, kal_bool is_success, ps_cause_enum err_cause);
+
+extern void l4c_ps_send_lte_attach_pdn_activate_success_ind_to_l4bpdn(kal_uint8 lte_attach_cid,
+kal_bool cause2_present,
+ps_cause_enum cause2,
+pdp_addr_type_enum nw_applied_pdp_type);
+
+extern void l4c_ps_send_lte_attach_pdn_activate_failure_ind_to_l4bpdn(kal_uint8 lte_attach_cid,
+ps_cause_enum err_cause,
+kal_bool is_change_to_apn_class_present,
+kal_uint8 change_to_apn_class);
+
+extern kal_bool l4c_ps_clear_sync_apn_info_to_tcm(kal_uint8 src_id);
+
+extern kal_bool l4c_ps_get_definition_list_req(kal_uint8 src_id, l4c_prim_pdp_info_list_struct *info);
+
+extern kal_uint8 l4c_ps_get_data_bearer_capability(void); //review_h2
+
+extern kal_uint16 l4c_ps_exe_act_req(kal_uint8 src_id, kal_uint8 opcode, kal_uint8 cid, l4ctcm_act_reason act_reason, kal_uint8 rat, kal_uint8 cause, ddm_apn_type_enum apn_type);
+
+extern kal_uint16 l4c_ps_exe_attach_req(kal_uint8 src_id, kal_uint8 cid);
+
+extern kal_bool l4c_ps_exe_act_test_req(kal_uint8 src_id, kal_uint8 opcode, kal_uint8 cid);
+
+extern kal_bool l4c_ps_get_context_state_req(kal_uint8 src_id, kal_uint8 *num, kal_uint8 *state_list);
+
+extern kal_bool l4c_ps_exe_answer_req(kal_uint8 src_id, kal_uint8 ans, kal_uint8 l2p, kal_uint8 cid);
+
+extern kal_bool l4c_ps_exe_modify_req(kal_uint8 src_id, kal_uint8 cid, kal_uint8 qfi);
+
+extern void l4c_l4bpdn_msg_hdlr(ilm_struct *ilm_ptr);
+
+extern void l4c_ps_send_cellular_network_cfg_to_rac(l4c_cellular_network_config *config);
+#ifdef __TC10__
+extern kal_bool l4c_ps_set_escontind_req(kal_uint32 src_id, kal_uint8 secondary_cid);
+#endif /*__TC10__*/
+
+extern void l4c_ps_send_sat_evdl_data_connect_ind(sat_data_connection_status_enum data_connection_status,
+                                                             rat_enum rat,
+                                                             ps_cause_enum cause,
+                                                             kal_uint8 cid);
+#endif /* __MOD_TCM__ */
+#endif /* _L4C_GPRS_CMD_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_sim_cmd.h b/mcu/protocol/interface/l4misc/l4c_sim_cmd.h
new file mode 100644
index 0000000..74e0966
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_sim_cmd.h
@@ -0,0 +1,441 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_sim_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_SIM_CMD_H
+#define _L4C_SIM_CMD_H
+
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+#include "ps2sat_struct.h"
+#include "mcd_ps2sat_peer.h"
+#include "l4c2csm_cc_struct.h"
+#include "l4c2smsal_struct.h"
+
+#include "sim_ps_struct.h"
+#include "sim_ps_enum.h"
+
+#include "mcd_l3_inc_struct.h"       /* for nw_time_zone_time_struct used in l4c_smu_update_nw_time_req() */
+
+#include "smu_common_enums.h"
+#include "vdm_l4c_struct.h"
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#include "l5_l4c_struct.h"
+#endif
+
+enum
+{
+    NONE_TYPE,
+    PHONELOCK_TYPE,
+    PIN1_TYPE
+};
+
+extern kal_bool l4c_smu_get_iccid_req(kal_uint8 src_id, kal_uint8 *iccid_str);
+
+extern kal_bool l4c_smu_get_imsi_req(kal_uint8 src_id, kal_uint8 *imsi);
+
+extern kal_bool l4c_smu_exe_lock_req(
+                    kal_uint8 src_id,
+                    kal_uint8 opcode, /* smu_lock_opcode_enum */
+                    kal_uint8 type, /* smu_security_type_enum */
+                    kal_uint8 *passwd);
+
+extern kal_bool l4c_smu_exe_master_reset_req(kal_uint8 src_id, kal_uint8 *pin);
+
+extern kal_bool l4c_smu_get_dial_mode_req( /* sim_dn_enum */ kal_uint8 *dial_mode);
+
+extern kal_bool l4c_smu_exe_verify_pin_req(kal_uint8 src_id, kal_uint8 pin_type, kal_uint8 *pin, kal_uint8 *new_pin);
+
+extern kal_bool l4c_smu_app_exe_verify_pin_req(kal_uint8 src_id, kal_uint8 pin_type, kal_uint8 *pin, kal_uint8 *new_pin, kal_uint8 chan_id);
+
+extern kal_bool l4c_smu_get_pin_type_req(
+                    kal_uint8 src_id, /* smu_security_type_enum */
+                    kal_uint8 *pin_type);
+
+extern kal_bool l4c_smu_app_get_pin_type_req(kal_uint8 src_id, kal_uint8 *name, kal_uint8 chan_id, smu_chv_type_enum chv_type);
+
+extern sim_file_index_enum l4c_smu_file_idx_for_preferred_oper_list(sim_file_index_enum selected_file);
+
+extern kal_bool l4c_smu_set_preferred_oper_list_req_ext(
+            kal_uint8 src_id,
+            sim_file_index_enum file_idx,
+            kal_uint8 index,
+            kal_uint8 opcode,
+            kal_uint8 *oper,
+            kal_uint8 rat);
+
+extern kal_bool l4c_smu_set_preferred_oper_list_req(
+                    kal_uint8 src_id,
+                    kal_uint8 index,
+                    kal_uint8 opcode,
+                    kal_uint8 *oper,
+                    kal_uint8 rat);
+
+extern kal_bool l4c_smu_get_preferred_oper_list_req(
+                    kal_uint8 src_id,
+                    kal_uint8 index,
+                    kal_uint16 file_idx_req,
+                    kal_uint16 *num,
+                    kal_uint8 *oper_list,
+                    kal_uint8 *rat_list,
+                    kal_uint16 *file_idx_rsp);
+
+extern kal_bool l4c_smu_set_puc_params_req(kal_uint8 src_id, kal_uint8 *pin, kal_uint8 *currency, kal_uint8 *ppu);
+
+extern kal_bool l4c_smu_get_puc_params_req(kal_uint8 src_id, kal_uint8 *currency, kal_uint8 *ppu);
+
+extern kal_bool l4c_smu_exe_change_password_req(
+                    kal_uint8 src_id, /* smu_security_type_enum */
+                    kal_uint8 type,
+                    kal_uint8 *old,
+                    kal_uint8 *new1);
+
+extern kal_bool l4c_smu_exe_restricted_access_req(
+                    kal_uint8 src_id,
+                    kal_uint8 cmd,
+                    kal_uint16 file_id,
+                    kal_uint8 channel,
+                    kal_uint8 p1,
+                    kal_uint8 p2,
+                    kal_uint8 p3,
+                    kal_uint8 *data,
+            	      kal_uint8 *pathid,
+            	      kal_uint8 pathid_length);
+
+extern kal_bool l4c_smu_exe_dial_mode_req(kal_uint8 src_id, kal_uint8 type, kal_uint8 on_off, kal_uint8 *pin);
+
+extern kal_bool l4c_smu_write_sim_req(
+                    kal_uint8 src_id,
+                    kal_uint16 file_idx,
+                    kal_uint8 para,
+                    kal_uint8 *data,
+                    kal_uint16 length,
+                    kal_uint8 *path,
+                    kal_uint8 access_id);
+
+extern kal_bool l4c_smu_read_sim_req(
+                    kal_uint8 src_id,
+                    kal_uint16 file_idx,
+                    kal_uint16 para,
+                    kal_uint16 length,
+                    kal_uint8 *path,
+                    kal_uint8 access_id);
+
+extern kal_bool l4c_smu_read_file_info_req(kal_uint8 src_id, kal_uint16 file_idx, kal_uint8 *path, kal_uint8 access_id);
+
+extern kal_bool l4c_smu_set_personalization_req(
+                    kal_uint8 src_id,
+                    kal_uint8 category,
+                    kal_uint8 op,
+                    kal_uint8* key,
+                    kal_uint8 len,
+                    kal_uint8 data[10]);
+
+#ifdef __CARRIER_RESTRICTION__
+extern kal_bool l4c_smu_set_carrier_restriction_req(
+                    kal_uint8 src_id,
+                    kal_uint8 op,
+                    kal_uint8 *key,
+                    kal_uint8 list,
+                    kal_uint8 category,
+                    kal_uint8 len,
+                    kal_uint8 *data,
+                    kal_uint8 multi_sim_policy,
+                    kal_uint8 allowed_carriers_prioritized);
+
+extern kal_bool l4c_smu_set_crrst_secure_data_req(
+                        kal_uint8 src_id,
+                        kal_uint8 algo_type,
+                        kal_uint32 max_retry_count,
+                        kal_uint8 *hck,
+                        kal_uint8 *salt,
+                        kal_uint8 *inter_cnt);
+
+extern kal_bool l4c_smu_crrst_status_req(kal_uint8 src_id);
+#endif
+
+extern kal_bool l4c_smu_get_shared_key_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_update_slb_req(kal_uint8 src_id, kal_uint16 slb_len, kal_uint8 *slb);
+
+extern kal_bool l4c_smu_reset_slb_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_get_slb_version_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_get_sim_lock_status_req(kal_uint8 scr_id);
+
+extern kal_bool l4c_smu_get_modem_config_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_get_api_version_req(kal_uint8 src_id);
+
+#if defined(__SIM_ME_LOCK__)
+extern kal_bool l4c_smu_update_nw_time_req(kal_uint8 nw_time_zone, nw_time_zone_time_struct *nw_time);
+#endif
+
+extern kal_bool l4c_smu_sml_status_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sim_power_off_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sim_remove_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_sim_get_gsmcdma_dualsim_info_req (kal_uint8 src_id);
+
+extern kal_bool l4c_sim_set_gsmcdma_dualsim_mode_req ( kal_uint8 src_id, kal_uint8 op);
+
+extern kal_bool l4c_sim_check_pin_status_req(sim_chv_info_struct *chv_info, sim_chv_status_struct *chv_status);
+
+extern kal_bool l4c_cphs_update_als_req(kal_uint8 src_id, kal_uint8 line_id);
+
+extern void l4c_sim_pin_convert(kal_uint8 *dest, kal_uint8 *src);
+
+extern kal_bool l4c_sim_reset_req(kal_uint8 src_id);
+
+extern kal_bool l4c_bt_sim_profile_req(kal_uint8 src_id, kal_uint8 action, kal_uint8 transport_protocol_type, kal_uint8 *apdu, kal_uint16 length);
+
+///extern kal_bool l4c_sim_csim_req(kal_uint8 src_id, kal_uint16 length, kal_uint8 *command);
+
+/* MAUI_03082391 *///mtk02514_nfc
+extern kal_bool l4c_sim_apdu_access_req(kal_uint8 src_id,l4c_action_enum action, kal_uint16 length, kal_uint8 *command,kal_uint8 channel_id);
+extern kal_bool l4c_sim_extended_apdu_access_req(kal_uint8 src_id, kal_uint16 offset, kal_uint8 channel_id, kal_uint16 total_length,
+                                                        kal_uint16 curr_length, kal_uint8 *command, kal_bool *is_intermediate_rsp);
+
+extern kal_bool l4c_sim_manage_channel_req(kal_uint8 src_id, l4c_action_enum action, sim_manage_channel_mode_enum mode, kal_uint8 aid_len, kal_uint8 *aid);
+
+#ifdef __VSIM__
+extern kal_bool l4c_sim_vsim_req(kal_uint8 src_id, kal_uint8 switch_on, kal_uint8 profile_id,kal_uint8 app_type);
+
+extern kal_bool l4c_sim_get_vsim_rsa_pubkey_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sim_vsim_ki_mode_req(kal_uint8 src_id, kal_uint8 profile_id, kal_bool enabled);
+
+extern kal_bool l4c_sim_set_vsim_ki_req(kal_uint8 src_id, kal_uint8 profile_id, kal_uint16 key_len, kal_uint8 *key, kal_bool encrypted);
+
+extern kal_bool l4c_sim_set_vsim_file_req(kal_uint8 src_id, kal_uint8 profile_id, kal_uint16 file_id, kal_uint16 meta_len, kal_uint8 *meta, kal_uint16 data_len, kal_uint8 *data);
+
+extern void l4c_vsim_profile_write_req(kal_uint8 src_id, kal_uint8 profile_id, kal_uint8 vsim_type, kal_uint16 auth_len, kal_uint8 *auth, kal_uint8 algo_idx);
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+extern kal_bool l4c_sim_vsim_update_req(kal_uint8 src_id, kal_uint8 switch_on, kal_uint8 profile_id, kal_uint8 mode, kal_uint8* mccmnc, kal_uint8* iin, kal_uint8* gid1, kal_uint8* spn);
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#endif
+
+extern kal_bool l4c_sim_app_start_req(kal_uint8 src_id, kal_uint8 applicationid);
+
+extern kal_bool l4c_sim_app_authenticate_req(kal_uint8 src_id, uicc_auth_mode_enum mode, kal_uint8 channel_id, kal_uint16 command_len, kal_uint8 *command_data);
+
+extern kal_bool l4c_sim_authenticate_req(kal_uint8 src_id, kal_uint8 rand_len, kal_uint8 *rand, kal_uint8 auth_len, kal_uint8 *auth);
+
+extern void l4c_smu_sml_ready_notify_req(void);
+
+#ifdef __SAT__
+extern kal_bool l4c_sat_setup_call_res(sat_setup_call_res_struct *local_ptr);
+
+extern kal_bool l4c_sat_send_sms_res(sat_send_sms_res_struct *local_ptr);
+
+extern kal_bool l4c_sat_send_ss_res(sat_send_ss_res_struct *local_ptr);
+
+extern void l4c_sat_send_xcap_ss_res(kal_bool is_successful, sat_terminal_res_enum tr_cause, kal_uint8* additional_data_ptr, kal_uint16 additional_data_len);
+
+extern kal_bool l4c_sat_send_ussd_res(sat_send_ussd_res_struct *local_ptr);
+
+extern void l4c_sat_send_ims_ussd_res(kal_bool is_successful, sat_terminal_res_enum tr_cause, void* additional_data_ptr);
+
+extern kal_bool l4c_sat_run_at_command_res(sat_run_at_command_res_struct *local_ptr);
+
+extern kal_bool l4c_sat_send_dtmf_res(kal_uint8 cmd_detail[5], kal_uint8 res, kal_uint8 additional_info);
+
+extern kal_bool l4c_sat_call_setup_req(
+                    l4ccsm_cc_sat_setup_req_struct *local_ptr,
+                    kal_uint8 *peer_ptr,
+                    kal_uint8 length);
+
+extern kal_bool l4c_sat_send_dtmf_req(kal_uint8 src_id, kal_uint8 *dtmf_digit, kal_uint8 no_digit);
+
+extern kal_bool l4c_sat_abort_dtmf_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sat_send_sms_req(l4csmsal_sat_send_req_struct *local_ptr, kal_uint8 mode);
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+extern kal_bool l4c_sat_terminal_response_req(kal_uint8 src_id, kal_uint8 length, kal_uint8 *terminal_rsp, kal_uint16 cmd_id);
+#else
+extern kal_bool l4c_sat_terminal_response_req(kal_uint8 length, kal_uint8 *terminal_rsp, kal_uint16 cmd_id);
+#endif
+extern kal_bool l4c_sat_envelope_req(kal_uint8 src_id, kal_uint8 length, kal_uint8 *envelope_data, kal_bool is_standard);
+extern kal_bool l4c_sat_setup_sms(kal_uint8 src_id, kal_uint8 mode);
+extern kal_bool l4c_sat_sms_query(kal_uint8 *str, kal_uint16 *str_len);
+
+extern kal_bool l4c_sat_setup_cs_ss(void);
+extern peer_buff_struct* l4c_sat_get_ss_number(void);
+
+extern kal_bool l4c_sat_setup_cs_ussd(void);
+extern void l4c_sat_set_icon_display(sat_terminal_res_enum tr_cause, kal_bool is_icon_displayed);
+extern kal_bool l4c_sat_query_ussd_inform_user(void);
+extern peer_buff_struct* l4c_sat_get_ussd_string(void);
+
+extern kal_bool l4c_sat_setup_call(vdm_l4c_cs_cc_stk_call_req_struct *msg_ptr);
+extern kal_bool l4c_sat_dtmf(void);
+extern kal_bool l4c_sat_menu_query(kal_uint8 *str, kal_uint16 *str_len);
+
+extern kal_bool l4c_sat_ready_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sat_cusata_req(kal_uint8 src_id, kal_uint8 act_config);
+
+extern kal_bool l4c_sat_cusatd_req(kal_uint8 dwl_config);
+
+extern kal_bool l4c_sat_set_ct_mode_req(kal_uint8 ct_mode);
+
+extern kal_bool l4c_sat_inject_proactive_cmd_ind(kal_uint8 *cmd_data, kal_uint16 cmd_len);
+
+#endif /* __SAT__ */
+
+extern void l4c_smu_sim_status_update_req(kal_uint8 new_sim_config);
+
+extern kal_bool l4c_sim_set_3g_cap_req(kal_uint8 src_id, kal_uint8 cur_3g_capability, kal_uint8 *cur_ps_sim_map);
+
+extern void l4c_sim_read_plmn_req(kal_uint8 src_id, kal_uint8 access_id, kal_uint16 file_idx);
+extern void l4c_sim_write_plmn_req(kal_uint8 src_id, kal_uint8 access_id, kal_uint16 file_idx, kal_uint16 file_size, kal_uint8 *file);
+extern void l4c_sim_search_record_req(kal_uint8 src_id,kal_uint16 file_idx, kal_uint16 para, kal_uint8 access_id,  kal_uint8 *path,kal_uint8 pattern_len,kal_uint8 *data);
+/* MAUI_02953154 */
+
+extern kal_bool l4c_sim_recovery_enhancement_switch_req(kal_bool mode);
+
+extern kal_bool l4c_sim_query_info_req(kal_uint8 src_id, sim_query_info_enum info_id);
+
+extern kal_bool l4c_sim_terminal_capability_setting_req(kal_uint8 additional_interface);
+
+extern kal_bool l4c_regional_phone_mode_req(kal_uint32 mode);
+
+extern kal_bool l4c_csus_set_sim_slot(kal_uint8 setting);
+
+extern void l4c_sat_termianl_profile_read_req(kal_uint8 st, kal_uint8 *profile, kal_uint8 *profile_len);
+
+extern void l4c_sat_termianl_profile_write_req(kal_uint8 src_id, kal_uint8 st, kal_bool reset, kal_uint8 *profile, kal_uint8 profile_len);
+
+extern kal_bool l4c_sim_set_registration_mode_req(kal_bool registration_mode);
+
+extern kal_bool l4c_sim_set_apvsim_mode_req(kal_uint8 src_id, kal_bool mode, kal_bool is_ready);
+extern kal_bool l4c_sim_rsa_apdu_rsp_req(kal_uint8 src_id, kal_uint32 apdu_len, kal_uint8 *apdu_rsp);
+extern kal_bool l4c_sim_rsa_atr_req(kal_uint8 src_id, kal_uint8 atr_status, kal_uint32 atr_len, kal_uint8 *atr);
+extern kal_bool l4c_sim_rsa_hot_plug_out_req(kal_uint8 src_id);
+extern kal_bool l4c_sim_rsa_hot_plug_in_req(kal_uint8 src_id);
+extern kal_uint8 l4c_get_single_sim_exist_status(void);
+extern kal_uint8 l4c_get_single_sim_inserted_status(void);
+extern kal_bool l4c_query_sim_status_bit(sim_interface_enum sim_id, l4c_sim_flag_enum query_status);
+extern kal_bool l4c_reset_l4_sim_context(sim_interface_enum sim_ps_id);
+extern kal_bool l4c_sim_read_dir_req(kal_uint8 src_id, kal_uint8 option);
+extern kal_bool l4c_sim_op20_ap_simlock_req(kal_uint8 src_id, kal_uint8 lock_mode);
+kal_bool l4c_sim_ap_simpower_req(kal_uint8 src_id, kal_uint8 sim_power_mode, kal_bool sim_handle_plug_in);
+#ifdef __GEMINI__
+extern kal_bool l4c_sim_plug_out_req(kal_bool aka_status, kal_bool ready_status);
+extern void l4c_sim_set_rsim_mode_req(kal_uint8 src_id, kal_bool rsim_status, kal_bool ready_status);
+extern void l4c_sim_service_res_req(kal_uint8 src_id, kal_bool mode);
+extern void l4c_sim_aka_enable_req(kal_bool mode);
+extern void l4c_rsim_set_auth_timeout(kal_uint8 rsim_auth_timeout);
+extern void l4c_sim_send_rsim_aka_status_req(void);
+#endif
+#ifdef __FAKEID_SUPPORT__
+extern kal_bool l4c_sim_fake_id_req(kal_uint8 *mcc_str, kal_uint8 *mnc_str, kal_uint8 *msin_str);
+#endif
+
+extern kal_bool l4c_smu_sml_get_lock_codes_req(kal_uint8 src_id);
+extern kal_bool l4c_smu_set_custom_personalization_req(
+                    kal_uint8 src_id,
+                    kal_uint8 category,
+                    kal_uint8 op,
+                    void *data,
+                    kal_uint8 algo_type,
+                    kal_uint8 *salt,
+                    kal_uint8 *iter_cnt);
+
+extern kal_bool l4c_smu_sl_update_blob_req(kal_uint8 src_id, kal_uint16 slb_len, kal_uint8 *slb);
+extern kal_bool l4c_smu_sl_get_sim_lock_status_req(kal_uint8 scr_id);
+extern kal_uint8 l4c_get_single_sim_inserted_status_by_ps_id(protocol_id_enum protocol_id);
+
+extern kal_bool l4c_smu_update_gblob_lock_rule_req(kal_uint8 src_id, kal_uint8 rule, kal_uint16 sub_rule);
+extern kal_bool l4c_smu_update_gblob_data_req(kal_uint8 src_id, kal_uint8 op, kal_uint16 gblob_data_len, kal_uint8 *gblob_data);
+extern kal_bool l4c_smu_gblob_dev_lock_verify_req(kal_uint8 src_id, kal_uint8 op, kal_uint16 key_len, kal_uint8 *key, kal_uint8 new_lock_state);
+extern kal_bool l4c_smu_update_gblob_dev_lock_algo_req(kal_uint8 src_id, kal_uint8 dev_algo_type, kal_uint8 *hck, kal_uint8 max_retry_count, kal_uint8* salt, kal_uint8* inter_cnt);
+extern kal_bool l4c_smu_update_gblob_imei_req(kal_uint8 src_id, kal_uint8 slot_id, kal_uint8* imei);
+#ifdef __CUST_SML_RULE__
+extern kal_bool l4c_smu_udpate_gblob_cust_rule_req(kal_uint8 src_id, kal_uint8 cust_code, kal_uint8 cust_rule);
+#endif
+extern kal_bool l4c_smu_get_gblob_dev_lock_status_req(kal_uint8 src_id);
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+extern kal_bool l4c_sat_sim_init_msg(kal_uint8 src_id, kal_uint8 action);
+extern kal_bool l4c_sat_refresh_voting_cnf(sat_refresh_confirm_rsp_enum voting_result);
+#endif
+
+#ifdef __TC10__
+extern kal_uint8 l4c_sim_query_voltage_info(protocol_id_enum ps_id);
+#endif
+extern kal_bool l4c_sim_query_atr_info(kal_uint8 *length, kal_uint8 *atr, protocol_id_enum ps_id);
+extern kal_uint8 l4c_smu_get_unlock_code_req();
+extern kal_bool l4c_smu_gen_nonce_req(kal_uint8* device_id, kal_uint32 device_id_len, kal_uint8* nonce, kal_uint32* nonce_len);
+extern kal_bool l4c_smu_validate_signature_req(kal_uint8 mode, kal_uint8 unlock_code, kal_uint8* signature, kal_uint32 signature_len);
+extern kal_bool l4c_smu_get_nonce_sign_status_req(kal_uint8* nonce_status, kal_uint8* sign_status);
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+extern void l4c_smu_set_nw_black_list_req(void);
+extern void l4c_smu_convert_mcc_mnc_to_int(kal_uint8 *mcc_mnc_char, nw_black_list_provider_struct *output);
+extern void l4c_smu_convert_mcc_mnc_to_char(nw_black_list_provider_struct *input_mcc_mnc, kal_uint8 *output);
+#endif
+extern kal_bool l4c_smu_generate_hck(kal_uint8 src_id, kal_uint8 category, kal_uint8 *ctrl_key_str,
+                                         kal_uint32 iter_cnt, kal_uint8 salt_length,
+                                         kal_uint16 hck_length);
+
+#endif /* _L4C_SIM_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_sms_cmd.h b/mcu/protocol/interface/l4misc/l4c_sms_cmd.h
new file mode 100644
index 0000000..ec3a2fc
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_sms_cmd.h
@@ -0,0 +1,446 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_sms_cmd.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_SMS_CMD_H
+#define _L4C_SMS_CMD_H
+
+#include "l4c_aux_struct.h"
+#include "smsal_l4c_enum.h"
+#include "l4c2smsal_struct.h"
+#include "rmmi_common_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+    
+extern kal_bool l4c_sms_set_profile_params_req(
+                    kal_uint8 src_id,
+                    kal_uint16 para_ind,
+                    kal_uint8 profile_no,
+                    kal_uint8 pid,
+                    kal_uint8 dcs,
+                    kal_uint8 vp,
+                    l4c_number_struct sc_addr,
+                    l4_name_struct profile_name);
+
+extern kal_bool l4c_sms_get_profile_params_req(
+                    kal_uint8 src_id,
+                    kal_uint8 profile_no,
+                    kal_uint8 *pid,
+                    kal_uint8 *dcs,
+                    kal_uint8 *vp,
+                    l4c_number_struct *sc_addr,
+                    l4_name_struct *profile_name);
+
+extern kal_bool l4c_sms_set_common_params_req(
+                    kal_uint8 src_id,
+                    kal_uint16 para_ind,
+                    kal_uint8 fo,
+                    kal_uint8 bearer_service,
+                    kal_uint8 status_report,
+                    kal_uint8 reply_path);
+
+extern kal_bool l4c_sms_get_common_params_req(
+                    kal_uint8 src_id,
+                    kal_uint8 *fo,
+                    kal_uint8 *bearer_service,
+                    kal_uint8 *status_report,
+                    kal_uint8 *reply_path);
+
+extern kal_bool l4c_sms_startup_read_next_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sms_set_bearer_service_req(kal_uint8 src_id, kal_uint8 bearer);
+
+extern void l4c_sms_get_bearer_service_req(kal_uint8 src_id, kal_uint8 *bearer);
+
+extern kal_bool l4c_sms_exe_post_command_req(
+                    kal_uint8 src_id,
+                    kal_uint8 fo,
+                    kal_uint8 ct,
+                    kal_uint8 mn,
+                    kal_uint8 pid,
+                    l4c_number_struct dest,
+                    kal_uint8 length,
+                    kal_uint8 *cmd);
+
+extern kal_bool l4c_sms_exe_post_command_pdu_req(
+                    kal_uint8 src_id,
+                    kal_uint16 data_len,
+                    kal_uint16 length,
+                    kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_exe_delete_msg_req(
+                    kal_uint8 src_id,
+                    kal_uint8 del_flag,
+                    kal_uint16 index,
+                    kal_uint8 *del_bitmap);
+
+extern kal_bool l4c_sms_set_msg_format_req(kal_uint8 src_id, kal_uint8 format);
+
+extern void l4c_sms_get_msg_format_req(kal_uint8 src_id, kal_uint8 *format);
+
+extern kal_bool l4c_sms_exe_read_msg_list_req(
+                    kal_uint8 src_id,
+                    kal_uint8 change_status,
+                    kal_uint8 status,
+                    kal_uint16 start_index,
+                    kal_uint8 no_msg);
+
+extern kal_bool l4c_sms_exe_emgl_list_req(
+                    kal_uint8 src_id,
+                    kal_uint8 change_status,
+                    kal_uint8 status,
+                    kal_uint16 start_index,
+                    kal_uint8 no_msg);
+
+extern kal_bool l4c_sms_send_from_storage_req(
+                    kal_uint8 src_id,
+                    kal_uint16 index,
+                    kal_bool addr_present,
+                    l4c_number_struct da,
+                    kal_uint8 profile_no_tag,
+                    kal_uint8 profile_no);
+
+extern kal_bool l4c_sms_set_status_req(
+                    kal_uint8 src_id,
+                    kal_uint8 new_status,
+                    kal_uint16 index);
+
+extern kal_bool l4c_sms_exe_read_msg_req(kal_uint8 src_id, kal_uint16 index, kal_bool change_status);
+
+extern kal_bool l4c_sms_exe_post_msg_req(
+                    kal_uint8 src_id,
+                    kal_uint8 profile,
+                    kal_uint16 reply_index,
+                    l4c_number_struct dest,
+                    kal_uint16 para,
+                    l4c_number_struct sc_addr,
+                    kal_uint8 vp,
+                    smsal_pid_enum pid,
+                    kal_uint8 udhi,
+                    smsal_dcs_enum dcs,
+                    kal_uint16 length,
+                    kal_uint8 *msg,
+                    kal_uint8 seq_num,
+                    kal_uint8 mms_mode,
+                    kal_uint8 tp_srr,
+                    kal_uint8 tp_rp);
+
+extern kal_bool l4c_sms_exe_post_pdu_req(
+                    kal_uint8 src_id,
+                    kal_uint16 reply_index,
+                    kal_uint16 data_len,
+                    kal_uint8 source_id,
+                    kal_uint8 seq_num,
+                    kal_uint8 mms_mode,
+                    kal_uint16 length,
+                    kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_exe_write_msg_req(
+                    kal_uint8 src_id,
+                    kal_uint8 profile,
+                    kal_uint8 status,
+                    l4c_number_struct dest,
+                    kal_uint16 para,
+                    l4c_number_struct sc_addr,
+                    kal_uint8 *scts,
+                    kal_uint8 vp,
+                    kal_uint8 pid,
+                    kal_uint8 udhi,
+                    kal_uint8 dcs,
+                    kal_uint16 index,
+                    kal_uint16 length,
+                    kal_uint8 *msg,
+                    kal_uint8 tp_srr,
+            	    kal_uint8 tp_mms,
+                    kal_uint8 tp_rp,
+                    kal_uint8 tp_sri);
+
+extern kal_bool l4c_sms_exe_write_pdu_req(
+                    kal_uint8 src_id,
+                    kal_uint8 status,
+                    kal_uint16 data_len,
+                    kal_uint16 length,
+                    kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_set_more_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern void l4c_sms_get_more_req(kal_uint8 src_id, kal_uint8 *mode);
+
+extern kal_bool l4c_sms_exe_storage_post_req(
+                    kal_uint8 src_id,
+                    kal_uint16 index,
+                    kal_uint16 reply_index,
+                    kal_bool addr_present,
+                    l4c_number_struct dest,
+                    kal_uint8 profile_no_tag,
+                    kal_uint8 profile_no);
+
+extern kal_bool l4c_sms_set_msg_ind_mode_req(
+                    kal_uint8 src_id,
+                    kal_uint8 mode,
+                    kal_uint8 mt,
+                    kal_uint8 bm,
+                    kal_uint8 ds);
+
+extern void l4c_sms_get_msg_ind_mode_req(
+                    kal_uint8 src_id,
+                    kal_uint8 *mode,
+                    kal_uint8 *mt,
+                    kal_uint8 *bm,
+                    kal_uint8 *ds);
+
+extern kal_bool l4c_sms_exe_send_ack_req(kal_uint8 src_id, kal_uint8 mode, kal_uint16 length, kal_uint8 *ack);
+
+extern kal_bool l4c_sms_set_preferred_mem_req(kal_uint8 src_id, kal_uint8 mem1, kal_uint8 mem2, kal_uint8 mem3);
+
+extern void l4c_sms_get_preferred_mem_req(kal_uint8 src_id, smsal_prefer_storage_struct *info);
+
+
+extern kal_bool l4c_smsal_eqsi_query(
+	                  rmmi_smsal_storage_enum  mem, 
+                          kal_uint16 	    *beg_index,
+                          kal_uint16	    *end_index,
+                          kal_uint16          *used);
+
+extern kal_bool l4c_sms_set_service_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern void l4c_sms_get_service_mode_req(kal_uint8 src_id, kal_uint8 *mode, smsal_service_mode_struct *info);
+
+extern kal_bool l4c_sms_get_no_msgs_req(
+                    kal_uint8 src_id,
+                    //kal_bool  *is_sms_ready,
+                    kal_bool *is_sim_card_change,
+                    kal_uint16 *in_sim_no,
+                    kal_uint16 *in_me_no,
+                    kal_uint16 *out_sim_no,
+                    kal_uint16 *out_me_no,
+                    kal_uint16 *unread_msg_num,
+                    kal_uint16 *total_sim_num,
+                    kal_uint16 *total_me_num);
+
+extern kal_bool l4c_sms_get_no_profiles_req(kal_uint8 src_id, kal_uint8 *profile_no, kal_uint8 *name_len);
+#if 0
+/* under construction !*/
+#endif
+extern void l4c_sms_get_sc_addr_req(kal_uint8 src_id, kal_uint8 profile_no, l4c_number_struct *sc_addr);
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+extern void l4c_sms_get_post_params_req(
+                    kal_uint8 src_id,
+                    kal_uint8 profile_no,
+                    kal_uint8 *fo,
+                    kal_uint8 *pid,
+                    kal_uint8 *dcs,
+                    kal_uint8 *vp,
+                    l4_name_struct *profile_name);
+/*
+ * extern kal_bool l4c_sms_exe_load_profile_req (kal_uint8 src_id,
+ * kal_uint8 index);
+ * 
+ * extern kal_bool l4c_sms_exe_save_profile_req (kal_uint8 src_id,
+ * kal_uint8 index);
+ */
+#if 0 
+/* under construction !*/
+#endif
+extern kal_bool l4c_cb_subscribe_req(kal_uint8 src_id, kal_uint8 on_off, smsal_cb_cmd_enum cb_cmd);
+
+extern kal_bool l4c_sms_set_cb_mode_req(kal_uint8 src_id, l4c_cb_info_struct *info, smsal_cb_cmd_enum cb_cmd);
+
+extern kal_bool l4c_sms_get_cb_mode_req(
+                    kal_uint8 src_id,
+                    kal_uint8 *mode,
+                    kal_uint8 *total_mid_num,
+                    kal_uint8 *total_mir_num,
+                    kal_uint8 *total_dcs_num,
+                    l4c_cb_info_struct *info);
+
+extern void l4c_sms_cb_msg_removal_req(kal_uint16 mid, kal_uint16 sn);
+
+extern kal_bool l4c_send_wea_test_data(kal_uint8 mode);
+
+extern void l4c_sms_exe_abort_req(kal_uint8 src_id, kal_uint8 seq_num);
+
+extern kal_bool l4c_sms_get_mailbox_addr_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sms_set_mailbox_addr_req(
+                    kal_uint8 src_id,
+                    kal_uint8 mailbox_num,
+                    l4c_number_struct num_addr,
+                    l4_name_struct name);
+
+// R4/R5 SMS
+extern kal_bool l4c_sms_set_mbi_req(kal_uint8 src_id, kal_uint8 msp_no, smsal_mbi_struct mbi);
+extern kal_bool l4c_sms_get_mbi_req(kal_uint8 src_id, kal_uint8 *msp_num, smsal_mbi_struct *mbi);
+extern kal_bool l4c_sms_set_msp_req(kal_uint8 src_id, kal_uint8 msp_no);
+extern kal_bool l4c_sms_get_msp_req(kal_uint8 src_id, kal_uint8 *msp_no);
+
+extern kal_bool l4c_smsal_init_me_sms_req(kal_uint8 src_id,kal_uint8 init_type);
+
+extern kal_bool l4c_sms_reg_port_num_req(
+                    kal_uint8 src_id,
+                    kal_bool enable,
+                    kal_uint32 port_num,
+                    kal_uint16 mod_id,
+                    kal_uint16 *cause,
+                    kal_uint32 *ret_port_num,
+                    kal_uint16 *ret_mod_id,
+                    kal_uint8 *ret_source_id);
+
+extern void l4c_sms_set_rmmi_sc_addr_req(kal_uint8 src_id, l4c_number_struct sc_addr);
+
+extern kal_bool l4c_sms_set_rmmi_post_params_req(
+                    kal_uint8 src_id,
+                    kal_uint8 profile_no, //dummy
+                    kal_uint16 para_ind,
+                    kal_uint8 fo,
+                    kal_uint8 pid,
+                    kal_uint8 dcs,
+                    kal_uint8 vp);
+
+extern void l4c_sms_exe_save_settings_req(kal_uint8 src_id, kal_uint8 profile_id);
+
+extern void l4c_sms_exe_restore_settings_req(kal_uint8 src_id, kal_uint8 profile_id);
+
+extern kal_bool l4c_smsal_read_raw_data_req(kal_uint8 src_id, kal_uint16 index);
+extern kal_bool l4c_smsal_write_raw_data_req(kal_uint8 src_id, kal_uint8 storage_type,kal_uint16 data_len,kal_uint8 *data);
+
+extern void l4c_smsal_fdn_check_rsp(kal_uint8 result, kal_uint16 cause);
+
+extern kal_bool l4c_sms_copy_msg_req(kal_uint8 src_id, kal_uint8 action, kal_uint8 dst_storage, kal_uint16 src_index);
+
+extern void l4c_sms_sync_msg_res_req(kal_bool result);
+
+extern kal_bool l4c_sms_exe_send_smma_req(kal_uint8 src_id);
+extern kal_bool l4c_sms_exe_set_msg_waiting_req(kal_uint8 src_id,kal_uint8  line_no,kal_uint8  waiting_num,kal_uint8  ind_type);
+
+extern void l4c_sms_usm_general_rcode_req(
+		kal_uint8 src_id,
+		rmmi_usm_atcmd_enum atcmd_type,
+		kal_uint32 atcmd_index,
+		rmmi_usm_message_stat_enum tag_type,
+		kal_bool iscomplete,
+		kal_uint8 pdu_length,
+		kal_uint8 *pdu,
+		l4c_usm_cnmi_struct cnmi_parameter,
+		l4c_usm_cmss_struct cmss_struct,
+		kal_uint8 result,
+		kal_uint16 cause);
+
+extern void l4c_sms_sync_msg_storage_req(
+			kal_uint8 src_id,
+			kal_uint32 sm_max_num, 
+			kal_uint32 sm_current_num, 
+			kal_uint32 me_max_num, 
+			kal_uint32 me_current_num, 
+			kal_uint32 sr_max_num, 
+			kal_uint32 sr_current_num); 
+
+extern kal_bool l4c_sms_send_deliver_report_req(kal_uint8 src_id,kal_uint8 result,kal_uint32 error_cause, kal_uint8 mem, kal_uint32 index, kal_uint8 uid, kal_uint8 msg_class, kal_bool is_msg_wait, kal_uint8 msg_wait_store);
+extern kal_bool l4c_sms_startup_read_res_req(kal_uint8 src_id);
+extern kal_bool l4c_sms_get_mem_status_res_req(kal_uint8 src_id,kal_uint32 sim_max_num,kal_uint32 sim_current_num,kal_uint32 me_max_num,kal_uint32 me_current_num,kal_uint32 sr_max_num,kal_uint32 sr_current_num,kal_uint8 source_id);
+extern kal_bool l4c_sms_mem_status_req(kal_uint8 src_id,kal_uint8 mem_status);
+extern kal_bool l4c_sms_atcmd_cmgr_res_req(kal_uint8 src_id,kal_uint8 result,kal_uint16 cause,kal_uint8 source_id,kal_uint8 mem, kal_uint32 index, kal_uint8 stat, kal_uint16 pdu_length, kal_uint8 *pdu);
+extern kal_bool l4c_sms_atcmd_cmgl_res_req(kal_uint8 src_id,kal_uint8 mem, kal_uint32 index, kal_uint8 stat, kal_uint16 pdu_length, kal_uint8 *pdu, kal_uint8 result,kal_uint16 cause, kal_uint8 is_complete, kal_uint8 source_id);
+extern kal_bool l4c_sms_atcmd_cmgd_res_req(kal_uint8 src_id,kal_uint8 result, kal_uint16 cause, kal_uint8 source_id);
+extern kal_bool l4c_sms_atcmd_cmgw_res_req(kal_uint8 src_id,kal_uint32 index, kal_uint8 result, kal_uint16 cause, kal_uint8 source_id);
+extern kal_bool l4c_sms_atcmd_eqsi_res_req(kal_uint8 src_id,kal_uint8 mem, kal_uint32 begin, kal_uint32 end, kal_uint32 used, kal_uint8 source_id);
+
+extern kal_bool l4c_sms_etws_setting_req(kal_uint8 src_id, kal_bool is_etws_needed, kal_bool is_etws_security_needed, kal_bool is_etws_testing_on, kal_bool write_to_nvram);
+
+/* __IMS_SUPPORT__ */
+extern kal_bool l4c_sms_ims_exe_submit_pdu_req(kal_uint8 src_id, kal_uint16 data_len, kal_uint16 length, kal_uint8 *pdu, kal_bool stksms);
+
+extern kal_bool l4c_sms_ims_exe_submit_text_req(kal_uint8 src_id, kal_uint8 profile, kal_uint16 reply_index, l4c_number_struct dest, kal_uint16 para, l4c_number_struct sca, kal_uint8 vp, smsal_pid_enum pid, kal_uint8 udhi, smsal_dcs_enum dcs, kal_uint16 length, kal_uint8 *msg, kal_uint8 seq_num, kal_uint8 mms_mode, kal_uint8 tp_srr, kal_uint8 tp_rp);
+
+extern kal_bool l4c_sms_ims_exe_command_pdu_req(kal_uint8 src_id, kal_uint16 data_len, kal_uint16 length, kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_ims_exe_command_text_req(kal_uint8 src_id, kal_uint8 fo, kal_uint8 ct, kal_uint8 mn, kal_uint8 pid, l4c_number_struct dest, kal_uint16 length, kal_uint8 *cmd);
+
+extern kal_bool l4c_sms_ims_exe_mt_pdu_req(kal_uint8 src_id, kal_uint16 pdu_len, kal_uint8 *pdu_ptr);
+
+extern kal_bool l4c_sms_ims_exe_smma_req(kal_uint8 src_id, kal_uint8 op, kal_uint8 is_full);
+
+extern kal_bool l4c_sms_ims_exe_storage_post_req(
+                    kal_uint8 src_id,
+                    kal_uint16 index,
+                    kal_uint16 reply_index,
+                    kal_bool addr_present,
+                    l4c_number_struct dest,
+                    kal_uint8 profile_no_tag,
+                    kal_uint8 profile_no,
+                    smsal_domain_enum domain,
+                    kal_uint8 msg_ref,
+                    kal_bool is_retry);
+
+extern kal_bool l4c_sms_ims_exe_update_msgbox(kal_uint8 src_id, kal_uint8 result, kal_uint8 mr);
+/* end of __IMS_SUPPORT__ */
+
+extern void l4c_sms_context_switch(l4c_me_reconfig_enum reconfig_type);
+
+extern kal_bool l4c_smsal_init_req(kal_uint8 src_id, smsal_init_type_enum init_type);
+extern kal_bool l4c_smsal_sms_end_req(kal_uint8 src_id, kal_uint8 domain,kal_uint8 direction);
+
+
+#endif /* _L4C_SMS_CMD_H */ 
diff --git a/mcu/protocol/interface/l4misc/l4c_smu_cmd.h b/mcu/protocol/interface/l4misc/l4c_smu_cmd.h
new file mode 100644
index 0000000..e596bef
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_smu_cmd.h
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_smu_cmd.h
+ *
+ * Project:
+ * --------
+ *   UMOLYA
+ *
+ * Description:
+ * ------------
+ *   This file is intends for VZW SIM related function prototype
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_SMU_CMD_H
+#define _L4C_SMU_CMD_H
+
+#include "kal_general_types.h"
+
+// VzW RSU
+extern kal_bool l4c_smu_vzw_rsu_initiate_req(kal_uint8 src_id);
+extern kal_bool l4c_smu_vzw_rsu_proc_lock_data_req(kal_uint8 src_id, kal_uint8 *sim_lock_data, kal_uint16 data_len);
+extern kal_bool l4c_smu_vzw_rsu_get_lock_status_req(kal_uint8 *status, kal_uint16 *unlock_time);
+extern kal_bool l4c_smu_vzw_rsu_delay_timer_req(kal_uint8 src_id, kal_uint8 start_stop);
+extern kal_bool l4c_smu_vzw_rsu_data_reset_req(l4c_source_id_enum src_id);
+
+// OP129 RSU
+extern kal_bool l4c_smu_op129_update_sim_lock_setting_req(kal_uint8 src_id, kal_bool is_last_data, kal_uint16 offset, kal_uint16 sls_len, kal_uint8 *sls);
+extern kal_bool l4c_smu_op129_get_simlock_data_req(kal_uint8 src_id, kal_uint8 list_type);
+
+// TMO RSU in Movial Solution
+extern kal_bool l4c_smu_tmo_rsu_create_unlock_msg_req(kal_uint8 src_id, kal_uint8 unlock_req_type, kal_uint8 *imsi, kal_uint8 *imei);
+extern kal_bool l4c_smu_tmo_rsu_process_msg_req(kal_uint8 src_id, kal_uint8 *imei, kal_uint16 raw_len, kal_uint8 *raw_msg);
+extern kal_bool l4c_smu_tmo_rsu_get_sml_status_req(kal_uint8 src_id);
+extern kal_bool l4c_smu_tmo_rsu_get_reg_msg_req(kal_uint8 src_id, kal_uint8 *imei);
+extern kal_bool l4c_smu_tmo_rsu_get_adapter_config_req(kal_uint8 src_id, kal_uint8 *rsu_version_str);
+extern kal_bool l4c_smu_tmo_rsu_update_blob_req(kal_uint8 src_id, kal_uint8 *sim_lock_data, kal_uint16 data_len);
+
+#endif /* _L4C_SMU_CMD_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_ss_parse.h b/mcu/protocol/interface/l4misc/l4c_ss_parse.h
new file mode 100644
index 0000000..5484111
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ss_parse.h
@@ -0,0 +1,129 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_ss_parse.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_SS_PARSE_H
+#define _L4C_SS_PARSE_H
+
+
+#include "rmmi_context.h"
+#include "ps_public_struct.h"
+#include "kal_general_types.h"
+
+typedef enum
+{
+    SS_DCS_ENGLISH = 0x0f,
+    SS_DCS_CHINESE = 0x08
+} l4c_ss_dcs_enum;
+
+extern kal_bool l4c_ss_string_parsing(
+                    kal_uint8 src_id,
+                    kal_uint8 dcs,
+                    rmmi_string_struct *input,
+                    kal_uint8 length,
+                    l4c_ss_string_info_struct *info,
+                    kal_uint8 call_type,
+                    kal_bool is_sim_operation,
+                    kal_uint8 als_type,
+                    kal_uint8 ecc_info);
+
+extern kal_bool l4c_ss_operation_req(kal_uint8 src_id,
+                                     kal_uint8 *input,
+                                     kal_uint8 dcs,
+                                     kal_uint8 length,
+                                     kal_uint8 cf_number_length);
+	
+extern kal_bool is_sim_string(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid, kal_uint8 *type);
+
+extern kal_bool is_gprs_string(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid);
+
+extern kal_bool is_cc_string(
+                    kal_uint8 src_id,
+                    rmmi_string_struct *input,
+                    l4c_ss_string_info_struct *info,
+                    kal_uint8 call_type,
+                    kal_uint8 als_type,
+                    kal_uint8 ecc_info);
+
+extern kal_bool short_string_as_call(rmmi_string_struct *input, kal_uint8 length);
+
+extern kal_bool setup_pdp_act_struct(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid);
+
+extern kal_bool setup_ip_pdp_act_struct(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid);
+
+extern kal_bool setup_sim_struct(kal_uint8 src_id, rmmi_string_struct *input, kal_uint8 type, kal_bool *format_valid);
+
+extern kal_bool setup_number_struct(kal_uint8 src_id, rmmi_string_struct *input, l4c_ss_string_info_struct *info);
+
+extern kal_bool get_int_before_star(rmmi_string_struct *input, kal_uint8 *number);
+
+extern kal_bool get_uint32_before_star(rmmi_string_struct *input, kal_uint32 *number);
+
+extern kal_bool get_string_before_star(rmmi_string_struct *input, kal_uint8 *string_ptr, kal_uint8 max_length);
+
+extern kal_bool get_dn_before_star(rmmi_string_struct *input, kal_uint8 *string_ptr);
+
+extern kal_bool get_dn_by_length(rmmi_string_struct *input, kal_uint8 *string_ptr, kal_uint8 dn_length);
+
+// extern kal_bool phb_is_number_ecc(l4_addr_bcd_struct *tel_number);
+#endif /* _L4C_SS_PARSE_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_tst.h b/mcu/protocol/interface/l4misc/l4c_tst.h
new file mode 100644
index 0000000..0219dab
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_tst.h
@@ -0,0 +1,115 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_med_msg.c
+ *
+ * Description:
+ * ------------
+ *   This file implements the req and cnf handlers interfacing Media task
+ *
+ * Author:
+ * -------
+ * -------
+ *****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef L4C_TST_H
+#define L4C_TST_H
+
+
+#include "dcl.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l4c_common_enum.h"
+
+#ifdef __L4C_GPRS_UT__
+extern void l4c_ut_check_l4c_context_info(kal_uint8 src_id, kal_uint8 cid, l4c_action_enum action);
+extern void l4c_ut_request_type_handover_to_initial_request(kal_uint8 index);
+extern void l4c_ut_l4c_convert_data_speed_support_enum();
+extern void l4c_ut_config_cgdcontrdp_set_mode();
+extern void l4c_ut_config_cgdcont_read_mode();
+extern void l4c_ut_config_cgact_read_mode();
+extern void l4c_ut_config_pdp_addr_read_mode();
+extern void l4c_ut_config_psbearer_read_mode();
+extern void l4c_ut_config_eps_qos_read_mode();
+extern void l4c_ut_config_cgeqreq_read_mode();
+extern void l4c_ut_config_cgqreq_read_mode();
+extern void l4c_ut_config_msq_read_mode();
+extern void l4c_ut_config_cgprco_read_mode();
+extern void l4c_ut_check_ipv4v6_table_all_free(void);
+extern void l4c_ut_rmmi_convert_l3_cause();
+#endif
+
+//extern kal_bool l4c_check_tst_inject_cmd_conflict(kal_char* cmd_string);
+extern void tst_inject_string_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_attach_uart_port_req(kal_uint8 src_id, module_type module_id, UART_PORT port, kal_uint32 baud_rate);
+extern kal_bool l4c_detach_uart_port_req(kal_uint8 src_id, module_type module_id, UART_PORT port);
+extern void l4c_open_uart_port_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_close_uart_port_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_check_port_free(kal_uint8 port);
+extern void l4c_send_open_port_req(kal_uint8 port, kal_uint8 module_id, kal_uint32 baud_rate);
+extern void l4c_send_close_port_req(kal_uint8 port, kal_uint8 module_id);
+extern kal_bool l4c_tst_change_log_port_req(l4c_source_id_enum src_id,
+                                            DCL_DEV l1_port, 
+                                            DCL_DEV ps_port,
+                                            kal_uint8 log_mode);
+extern void l4c_change_uart_port_cnf_hdlr(local_para_struct * local_para_ptr, peer_buff_struct * peer_buff_ptr);
+ 
+
+ 
+
+extern void l4c_assert_bypass_trace_ind_hdlr(local_para_struct * local_para_ptr, peer_buff_struct * peer_buff_ptr);
+
+#ifndef __MTK_TARGET__
+extern void l4c_atci_ut_rmmi_input_string_hdlr(local_para_struct * local_para_ptr, peer_buff_struct * peer_buff_ptr); //RMMI_UT
+extern void l4c_atci_ut_rmmi_expanded_at_command_input_string_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr); //__L4C_GPRS_UT__
+extern void l4c_inject_sbp_change_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_ut_set_rac_rat_mode_context_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+#endif
+
+#endif /* L4C_TST_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/l4c_utility.h b/mcu/protocol/interface/l4misc/l4c_utility.h
new file mode 100644
index 0000000..064228b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_utility.h
@@ -0,0 +1,1075 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * l4c_utility.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_UTILITY_H
+#define _L4C_UTILITY_H
+
+#include "mcd_l3_inc_struct.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "kal_general_types.h"
+#include "lcd_lqueue.h"
+
+#include "ps_public_enum.h"
+#include "l3_inc_enums_public.h"
+#include "nvram_enums.h"
+#include "l4c_context.h"
+#include "l4c_common_enum.h"
+#include "l3_inc_local.h"
+#include "l4crac_enums.h"
+#include "ps_public_struct.h"
+#include "l4c2csm_cc_struct.h"
+
+#include "rsvas_struct.h"
+#include "l4c_eval_struct.h"
+#include "l4c_nrrc_struct.h"
+#include "ims_common_def.h"
+
+#if defined(__GEMINI__)
+#include "mspm_public_api.h"
+#endif
+
+#include "dcl.h"
+#include "ft_msg_l4.h"
+
+#define UNUSED_PARAM(x) //if(x)
+
+typedef enum
+{
+    L4C_BASEBAND_CODE,
+    L4C_DSP_CODE,
+    L4C_DSP_PATCH,
+    L4C_SW_CODE,
+    L4C_HW_CODE,
+    L4C_FLAVOR_CODE = 13,
+    L4C_DSP_LABEL,
+    L4C_DSP_BUILD_TIME
+} l4c_ms_revision_enum;
+
+typedef enum
+{
+    CONVERT_TO_BCD_NORMAL,
+    CONVERT_TO_BCD_WILD,
+    CONVERT_TO_BCD_IGNORE_PLUS
+}convert_to_bcd_enum;
+
+typedef enum
+{
+    CONVERT_TO_DIGIT_NORMAL,
+    CONVERT_TO_DIGIT_WILD,
+    CONVERT_TO_DIGIT_EXT,
+    CONVERT_TO_DIGIT_24008
+}convert_to_digit_enum;
+
+typedef enum
+{
+    L4C_REFRESH_CSP = 0x01,
+    L4C_REFRESH_RAT = 0x02
+}l4c_sim_refresh_file_enum;
+
+
+typedef struct _CREE_MAP_ENTRY
+{
+    unsigned int index;
+    unsigned char *cree_str;
+} CREE_MAP_ENTRY;
+
+extern kal_bool is_proper_owner(kal_uint8 src_id);
+// mtk02514_phb
+#define convert_to_bcd(source, dest, max_dest_len) convert_to_general_bcd(source, dest, max_dest_len, CONVERT_TO_BCD_NORMAL)
+#define convert_to_bcd_wild(source, dest, max_dest_len) convert_to_general_bcd(source, dest, max_dest_len, CONVERT_TO_BCD_WILD)
+extern kal_uint8 convert_to_general_bcd(kal_uint8 *source, kal_uint8 *dest, kal_uint8 max_dest_len, kal_uint8 type);
+
+
+#define convert_to_digit(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_NORMAL)
+#define convert_to_digit_with_len(source, dest, len) convert_to_general_digit_with_len(source, dest, len)
+#define convert_to_digit_wild(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_WILD)
+#define convert_to_digit_ext(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_EXT)
+#define convert_to_digit_24008(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_24008)
+
+#define L4C_DECLARE_AND_CONSTRUCT_LOCAL_PARAM(struct_type, var, init_type) \
+    struct_type* var = (struct_type*)construct_local_para(sizeof(struct_type),init_type) //MAUI_02900475
+
+
+#define RETURN_WITH_L4C_TRC(RETURN_VALUE) \
+    l4c_trace_function_name_and_return_line(__FUNCTION__, __LINE__, RETURN_VALUE); \
+    return RETURN_VALUE;
+
+
+#define l4c_ps_dialup_disc_req(a,b,c) {}
+
+typedef void (* l4c_timer_func_ptr)(void );
+
+extern kal_uint8 convert_to_general_digit(kal_uint8 *source, kal_uint8 *dest, kal_uint8 type);
+
+extern kal_uint8 convert_to_general_digit_with_len(kal_uint8 *source, kal_uint8 *dest, kal_uint8 len);
+
+extern kal_uint8 plmn_convert_to_bcd(kal_uint8 *source, kal_uint8 *dest);
+
+extern kal_uint8 plmn_convert_to_struct(kal_uint8 *source, plmn_id_rat_struct *dest);
+
+extern kal_uint8 plmn_convert_to_digit(plmn_id_struct *source, kal_uint8 *dest);
+
+extern kal_bool plmn_convert_int_to_struct(kal_uint8 plmn_num, kal_uint32 plmn_id, plmn_id_struct *dest);
+
+//MAUI_02884093 extern kal_bool ss_string_skip_plus(kal_uint8 *source, kal_uint8 *dest);
+
+extern kal_bool l4c_construct_phb_approve_str(kal_uint8 *source, kal_uint8 length); //MAUI_02884093
+
+extern kal_uint8 get_bcd_byte(kal_uint8 digit, kal_uint8 type);
+
+extern kal_uint8 get_ch_byte(kal_uint8 bcd, kal_uint8 type);
+
+extern kal_uint8 get_ch_byte_raw(kal_uint8 bcd, kal_uint8 type);
+
+extern kal_uint8 get_ch_byte_24008(kal_uint8 bcd);
+
+extern kal_bool is_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_eq_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_phb_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_sms_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_ss_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_rac_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_rac_egtype_reg_conflict(void);
+
+extern kal_bool is_rac_tcm_cmd_conflict(kal_uint8 src_id);
+
+extern kal_bool is_l4c_ps_additional_pdn_activate_conflict(kal_uint32 apn_type);
+
+extern kal_bool is_l4c_nw_plmn_list_ongoing(protocol_id_enum protocol_id);
+
+extern kal_bool is_smu_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern l4c_gprs_cmd_conflict_cause_enum l4c_ps_check_cmd_conflict(kal_uint32 check_bitmap, kal_uint8 cid, kal_uint8 src_id);
+
+extern kal_bool l4c_ps_check_cc_current_action_conflict(kal_uint8 src_id);
+
+extern l4c_gprs_cmd_conflict_cause_enum is_l4c_ps_set_cmd_conflict(kal_uint8 cid, kal_uint8 src_id, kal_uint16 action); //maui_01895693, mtk02285
+
+extern l4c_action_enum l4c_ps_get_action_by_cid_n_src(kal_uint8 cid, kal_uint8 src_id);
+extern l4c_action_enum l4c_ps_get_action_by_cid(kal_uint8 cid);
+extern l4c_action_enum l4c_ps_get_action_by_src(kal_uint8 src_id);
+extern kal_uint8 l4c_ps_get_src_by_cid_n_action(kal_uint8 cid, l4c_action_enum action);
+extern kal_uint8 l4c_ps_get_src_for_set_cmd(kal_uint8 cid);
+extern kal_bool l4c_ps_check_is_src_free(kal_uint8 src_id);
+extern kal_bool l4c_ps_check_is_cid_free(kal_uint8 cid);
+extern kal_bool l4c_ps_check_is_table_free();
+extern l4c_tcm_internal_cid_state l4c_ps_get_state_by_cid(kal_uint8 cid);
+extern void l4c_ps_set_action(kal_uint8 cid, kal_uint8 src_id, kal_uint16 action);
+extern void l4c_ps_clean_cid_action(kal_uint8 cid);
+extern void l4c_ps_clean_src_action(kal_uint8 src_id);
+extern void l4c_ps_print_action_table();
+
+extern void l4c_ps_set_vzw_apn_enable_bitmap(kal_uint8 class_num, kal_bool is_enable );
+extern kal_bool l4c_ps_check_if_both_class_1_and_class_2_are_enable();
+extern void l4c_ps_clear_vzw_apn_enable_bitmap();
+
+extern kal_bool l4c_ps_is_data_allowed(protocol_id_enum protocol_id);
+
+#ifdef __TC10__
+extern l4c_qci_info_struct *l4c_ps_get_qci_by_context_id( kal_uint8 context_id );
+extern void l4c_ps_set_qci_info(kal_uint8 cid, kal_uint8 qci);
+extern void l4c_ps_get_current_plmn_id_from_sim(kal_char *sim_plmn);
+extern kal_bool l4c_ps_is_plmn_identical(kal_char *plmn1_ptr, kal_char *plmn2_ptr);
+extern kal_bool l4c_ps_is_fdn_check_not_needed_in_plmns(const kal_char *fdn_omit_plmn);
+extern kal_bool l4c_ps_is_fdn_check_not_needed_for_plmn(void);
+
+#endif /*__TC10__*/
+
+#if 0 //def __CTM_SUPPORT__
+/* under construction !*/
+#endif
+
+extern kal_bool l4c_search_all_src(module_type which_sim, kal_uint16 action);
+
+extern kal_bool l4c_search_all_src_ext(module_type which_sim, kal_uint16 action, kal_uint8 *src_id); //MAUI_02554068
+
+extern kal_bool l4c_search_other_src(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_uint8 l4c_conflict_search(kal_uint16 val);
+
+extern void l4c_cmux_startup_req(UART_PORT port);
+
+extern void l4c_cmux_closedown_req(void);
+
+extern void l4c_start_retry_timer_hdlr(kal_uint8 src_id);
+
+//mtk01616_070515 : start 1 sec retry timer fro ss change phase request
+extern void l4c_start_change_phase_retry_timer_hdlr(kal_uint8 src_id);
+
+extern void l4c_sat_file_change_hdlr(kal_uint8 src_id);
+
+#ifdef __TC10__
+extern kal_bool l4c_sat_need_check_fdn(sat_call_ctrl_type_noti_enum type);
+extern kal_bool l4c_sat_is_already_ctrl_by_sim(sat_call_ctrl_type_noti_enum type);
+#endif
+
+extern kal_bool l4c_need_retry(kal_uint16 cause);
+
+extern void l4c_retry_hdlr(void);
+
+extern void l4c_send_msg_hdlr(kal_uint8 src_id, kal_uint8 operation);
+
+extern kal_bool check_multi_command(kal_uint8 result);
+
+extern void l4c_gprs_send_data_timer_hdlr(void);
+
+extern void l4c_gprs_data_timeout_hdlr(void);
+
+extern void l4c_gprs_connection_timer_hdlr(void);
+
+extern void l4c_gprs_connection_timerout_hdlr(void);
+
+extern kal_bool l4c_sim_poweroff_done(void);
+
+extern void l4c_sim_poweroff_timer_hdlr(void);
+extern void l4c_sim_poweroff_timerout_hdlr(void);
+
+extern void l4c_all_poweroff_done(void);
+
+extern kal_bool l4c_ps_dialup_check_existence(kal_uint8 sim_id);
+extern kal_uint8 l4c_ps_dialup_get_cid(kal_uint16 port);
+extern kal_uint16 l4c_ps_dialup_get_port(kal_uint8 cid);
+extern void l4c_ps_dialup_reset_port2cid(kal_uint8 cid);
+extern void l4c_ps_dialup_set_port2cid(kal_uint16 port,kal_uint8 cid);
+
+extern l4c_data_bearer_capablility_enum l4c_convert_data_speed_support_enum(data_speed_activate_enum low_layer_value);
+extern void l4c_ps_update_gprs_status(l4c_handler_action_enum action);
+extern void l4c_ps_update_overall_pdp_status_to_sim(l4c_gprs_status_enum *last_status, l4c_gprs_status_enum current_status);
+extern void l4c_set_voice_centric_from_rac(kal_bool is_voice_centric_enable);
+// extern kal_bool l4c_ps_check_need_to_transfer_pdn_to_ehrpd();
+
+extern kal_uint8 l4c_ps_apn_char_to_upper(kal_uint8 c);
+extern kal_bool l4c_ps_apn_equal(kal_uint8 len, kal_uint8 *apn1, kal_uint8 *apn2);
+
+extern kal_bool get_ms_revision(kal_uint8 equip_type, kal_uint8 *equip_id);
+
+extern void l4c_convert_result(kal_uint8 l4c_result, kal_uint16 l4c_cause, kal_bool *result, kal_uint16 *cause);
+
+extern kal_uint8 l4c_check_port_owner_source(kal_uint8 port);
+
+extern void l4c_set_user_action(kal_uint8 mod, kal_uint8 user, kal_uint16 action);
+
+extern void l4c_set_tcm_user_action(kal_uint8 cid, kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool l4c_check_user_action(kal_uint8 mod, kal_uint8 user, kal_uint16 action);
+
+extern void l4c_clear_all_cc_action();
+
+#ifdef __APP_SECONDARY_PDP_SUPPORT__
+extern kal_bool l4c_find_free_pdp_context(kal_uint8 *cid, kal_uint8 pid, kal_uint8 qos_id);
+extern void l4c_find_pdp_pid2cid(kal_uint8 *cid, kal_uint8 pid, kal_uint8 qos_id);
+extern void l4c_free_pdp_context(kal_uint8 cid, kal_uint8 *pid, kal_uint8 *qos_id);
+#else /* __APP_SECONDARY_PDP_SUPPORT__ */
+extern kal_bool l4c_find_free_pdp_context(kal_uint8 *cid, kal_uint8 pid);
+
+extern void l4c_find_pdp_pid2cid(kal_uint8 *cid, kal_uint8 pid);
+
+extern void l4c_free_pdp_context(kal_uint8 cid, kal_uint8 *pid);
+#endif /* __APP_SECONDARY_PDP_SUPPORT__ */
+
+extern kal_uint8 l4c_find_pdp_cid2pid(kal_uint8 cid);
+
+extern void l4c_ConvertGSM7BitDefaultEncodingToAscii(
+                kal_uint8 *message,
+                kal_uint8 *msg,
+                kal_uint16 length,
+                kal_uint16 *outLen);
+
+extern void l4c_set_download_path(kal_wchar *downlaod_path);
+
+extern kal_bool has_any_current_action(kal_uint8 src_id);
+
+extern kal_bool has_any_src_in_action(kal_uint8 mod, kal_uint16 action);
+
+extern kal_bool l4c_check_online_state(kal_uint8 *online_src_id, kal_uint8 state);
+
+extern kal_bool l4c_is_src_from_rmmi(kal_uint8 src_id);
+extern kal_bool l4c_is_src_from_vdm(kal_uint8 src_id);
+
+extern kal_bool l4c_previous_rac_action_rsp(kal_uint16 next_action);
+
+//extern void l4c_clear_concat_sms_array (void);
+extern kal_bool l4c_mmi_result(kal_uint8 result);
+
+extern void l4c_set_mt_call_event(kal_bool mt_call_exist,kal_uint8 mt_call_id);
+
+extern void l4c_update_retry_call_state_ind(kal_uint8 call_id,kal_uint8 src_id);
+
+extern void l4c_send_callid_assign_fail_ind(kal_uint8 src_id,kal_uint8 call_id,kal_uint16 cause);
+
+
+extern void l4c_ctrl_dcd_status(kal_uint8 src_id, module_type ownerid);
+
+extern void l4c_check_cind_status(kal_uint8 *call, kal_uint8 *service, kal_uint8 *callsetup);
+
+extern kal_bool l4c_check_dual_sim_state(module_type current_mod_id, kal_uint8 cfun_state);
+
+extern void l4c_check_dual_sim_insert_status(module_type mod_id, kal_uint8 sim_inserted_status);
+
+extern kal_bool l4c_send_dual_sim_power_on_ind(kal_uint8 src_id);
+
+extern void l4c_context_selection(kal_uint8 sim_interface);
+extern kal_uint8 l4c_get_bt_hf_atd_action(void);
+extern void l4c_unified_ciev_staus(kal_uint8 *service,
+                                   kal_uint8 *signal,
+                                   kal_uint8 *roam,
+                                   kal_uint8 *call,
+                                   kal_uint8 *callsetup,
+                                   kal_uint8 *callheld);
+
+extern kal_bool l4c_is_test_sim(void);
+#ifdef __VSIM__
+extern kal_bool l4c_is_vsim_on(void);
+#if defined (__GEMINI__)
+extern kal_bool l4c_is_vsim_auth_on(kal_uint8 simInterface);
+#else
+extern kal_bool l4c_is_vsim_auth_on(void);
+#endif
+extern kal_uint8 l4c_read_vsim_profileid(kal_uint8 simInterface);
+extern kal_uint8 l4c_read_vsim_type(kal_uint8 simInterface, kal_uint8 profile_id);
+extern kal_uint8 l4c_read_vsim_auth_algo(kal_uint8 simInterface, kal_uint8 profile_id);
+extern void l4c_read_vsim_auth_res(kal_uint8 simInterface, kal_uint8 profile_id, kal_uint16 *auth_len, kal_uint8 *auth_res);
+extern vsim_ver_type_enum l4c_read_vsim_ver(kal_uint8 simInterface);
+extern kal_bool l4c_is_rat_vsim_conflict(kal_uint8 profile_id);
+#endif
+extern kal_bool l4c_is_vsim_skip_security(protocol_id_enum protocol_id);
+extern kal_uint8 l4c_check_sim_status(void);
+extern l4c_sim_status_enum l4c_get_sim_status(void);
+extern kal_bool l4c_check_auto_dtmf_modifier(kal_uint8 ch);
+extern kal_uint8 l4c_get_cfun_state(void);
+extern kal_uint8 l4c_get_cfun_state_by_protocol_id(protocol_id_enum protocol_id);
+
+extern kal_uint8 l4_custom_approval_type(kal_uint8 operation_type,kal_uint8 src_id);
+
+
+extern void l4c_phb_format_alpha_id(void *alpha_id, kal_uint8 *rsp_string);
+extern void l4c_phb_atd_mem_dial(kal_uint8 *tel_number, kal_uint8 ton);
+extern void l4c_phb_set_result_code(kal_uint8 phb_result, kal_uint16 phb_cause, void *result, kal_uint8 other_cond);
+extern void l4c_phb_set_tel_number(void *phb_tel, void *l4c_phb_tel, convert_to_bcd_enum convert_method);
+extern phb_storage_enum l4c_phb_get_sim_storage_by_current_module(void);
+
+extern void l4c_reset_sms_context();
+
+extern void l4c_activate_sub_modules(kal_uint8 src_id);
+
+extern void l4c_reset_sub_modules(l4c_sub_module_enum sub_mod, kal_bool is_fdn_change);
+
+extern void l4c_clear_poweron_action(kal_uint8 src_id);
+
+extern void l4c_nw_sysconfig_update(kal_uint8 src_id);
+
+extern void l4c_nw_syssel_update(kal_uint8 src_id);
+
+extern void l4c_save_syssel_setting(kal_uint8 src_id, kal_uint8 band);
+
+extern void* l4c_construct_nvram_write_local_para(kal_uint8 access_id, nvram_lid_enum file_idx, kal_uint16 para);
+extern void* l4c_construct_nvram_read_local_para(kal_uint8 access_id, nvram_lid_enum file_idx, kal_uint16 para, kal_uint16 rec_amount);
+
+extern void l4c_target_reset(kal_uint8 sec);
+
+extern void l4c_clear_retry_call(void);
+extern void l4c_clear_all_retry_call(void);
+
+extern void l4c_clear_sim_power_state(void);
+
+extern void l4c_nw_power_off_clear_state(void);
+extern void l4c_nw_rfoff_clear_hvolte_parameter(void);
+
+extern kal_bool l4c_nw_c2k_rfoff_req(void);
+extern kal_bool l4c_c2k_power_off_req(kal_uint8 src_id);
+
+extern kal_bool l4c_check_power_off_ready();
+
+extern void l4c_cc_save_ceer_cause(l4c_result_enum response,kal_uint8 cause_present,kal_uint16 cause);
+
+extern void l4c_need_notify_gas_to_bar_current_cell(kal_uint16 cause);
+
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+extern kal_bool l4c_get_ecall_number(l4_addr_bcd_struct *called_number,kal_uint8 ecc_info);
+#endif
+#if defined(__CSG_SUPPORT__)
+extern void l4c_free_csg_list(rac_csg_list_struct *csg_list);
+#endif
+
+extern kal_bool l4c_cc_check_call_exist(kal_uint8 src_id);
+
+#ifdef __VOLTE_SUPPORT__
+extern kal_bool l4c_cc_check_ims_call_exist(void);
+extern kal_bool l4c_cc_check_in_call_session(kal_uint8 src_id);
+#endif
+
+extern void l4c_set_led_7_segment_debug(l4c_data_speed_support_enum data_speed_for_cell_info,
+                                        l4c_data_bearer_capablility_enum data_bearer_from_l2);
+
+
+extern rat_enum l4c_get_active_rat(void);
+extern rat_enum l4c_get_active_rat_by_protocol_id(protocol_id_enum protocol_id);
+
+extern rat_enum l4c_get_active_3gpp_rat(void);
+
+extern kal_bool is_rac_activated(void);
+
+extern kal_bool is_current_rac_activated();
+
+extern kal_bool is_tcm_activated();
+extern kal_bool is_current_tcm_activated();
+extern void l4c_act_rac_req();
+extern void l4c_act_tcm_req();
+extern void l4c_power_on_stage1_finished_ind(void);
+
+#if defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__)
+extern kal_bool l4c_fd_need_force_send_SCRI(void);
+extern void l4c_fd_monitor_timeout_hdlr(void);
+extern void l4c_fd_start_monitor_timer(kal_uint8 src_id);
+extern void l4c_fd_check_pdp_statistics(void);
+#endif
+
+extern kal_bool l4c_check_state_is_registered(reg_state_enum reg_state);
+
+extern kal_bool l4c_check_cid_activated_with_same_config(kal_uint8 cid, pdp_addr_type_enum pdp_type, kal_uint8 *AccessString, kal_uint8 *UserName, kal_uint8 *Password);
+
+extern kal_uint8 l4c_search_activated_cid_with_given_config(pdp_addr_type_enum pdp_type, kal_uint8 *AccessString, kal_uint8 *UserName, kal_uint8 *Password);
+
+extern kal_bool l4c_notify_rac_cgact_event();
+
+extern kal_bool l4c_notify_rac_cgact_event();
+extern kal_bool l4c_check_is_sglte_mode(kal_uint8 simIndex);
+
+extern l4c_modem_capability_enum l4c_check_modem_capability(l4c_modem_capability_enum capability);
+extern l4c_modem_capability_enum l4c_check_protocol_capability(protocol_id_enum protocol_id, l4c_modem_capability_enum capability);
+extern kal_int32 l4c_plmn_order_compare (const void * plmn_a, const void * plmn_b);
+extern void l4c_plmn_increasing_order(kal_uint8 total_num, kal_uint8 *plmn_list_ptr);
+
+extern kal_bool l4c_check_protocol_cap_with_gmss_mode(protocol_id_enum protocol_id,l4c_modem_capability_enum capability);
+extern kal_bool l4c_check_cur_protocol_cap_with_gmss_mode(l4c_modem_capability_enum capability);
+
+extern rat_enum l4c_rat_mode_validator(rat_enum old_rat_mode);
+extern rat_enum l4c_rat_mode_validator_with_ue_capability(rat_enum rat_mode);
+
+extern kal_bool check_if_NA_network(const kal_char *nw_mcc);
+extern void l4c_load_hvolte_e911_config(protocol_id_enum ps_id);
+extern void l4c_load_nvram_hvolte_config(protocol_id_enum ps_id);
+extern void l4c_save_hvolte_e911_config_to_nvram(protocol_id_enum ps_id);
+extern kal_uint8 plmn_convert_bcd_to_digit(const kal_uint8 *plmn_byte, kal_uint8 *dest);
+extern kal_uint8 decode_network_name(kal_uint8 nw_name_len, const kal_uint8 *nw_name,
+                                        kal_uint8 dest_len, kal_uint8 *dest,
+                                        const kal_uint8 *mcc, kal_uint8 *dcs);
+extern kal_bool is_plmn_match(const kal_uint8 *sim_plmn, const kal_uint8 *nw_plmn);
+extern kal_uint8 plmn_convert_digit_to_struct(kal_uint8 *source, plmn_id_struct *dest);
+
+extern void l4c_start_volte_hys_timer(void);
+extern void l4c_stop_volte_hys_timer(void);
+extern void l4c_volte_hys_timeout_hdlr(void);
+
+extern void l4c_timeout_cleanup(l4c_timer_id_enum timer_id);
+extern void l4c_cancel_timer(l4c_timer_id_enum timer_id);
+
+extern kal_bool l4c_is_timer_running(l4c_timer_id_enum timer_id);
+extern kal_uint32 l4c_query_timer_value_hdlr(l4c_timer_id_enum timer_id);
+extern kal_bool l4c_set_timer_value_hdlr(l4c_timer_id_enum timer_id, kal_uint32 timer_value);
+extern kal_uint8 l4c_get_dongle_mode(void);
+extern kal_uint16 l4c_convert_act_to_eact(kal_uint8 act);
+extern void l4c_check_and_send_call_status_req(kal_uint8 msg_type, kal_uint8 call_id);
+extern void l4c_send_rac_call_status_req(call_status_enum call_status, call_type_indication_enum call_type, kal_bool is_flight_mode_on_ecc);
+
+
+extern void l4c_start_txrxtime_timer(void);
+extern void l4c_stop_txrxtime_timer(void);
+extern void l4c_txrxtime_timeout_hdlr(void);
+#if defined(__GEMINI__)
+extern kal_bool is_efun_cmd_conflict(kal_uint8 src_id, kal_uint8 desired_efun);
+#endif
+
+extern kal_bool l4c_sim_check_operator_card(sim_operator_type_enum operator_type, kal_uint8 sim_interface);
+extern kal_bool l4c_sim_check_operator_card_by_iccid(sim_operator_type_enum operator_type, kal_uint8 sim_interface);
+extern sim_operator_type_enum l4c_sim_query_operator_card(protocol_id_enum ps_id);
+
+extern kal_bool l4c_nw_set_apc_control_info_req(kal_uint8 src_id,
+								 kal_uint8 enable,
+								 kal_uint8 mode,
+								 kal_uint16 timer);
+
+extern void l4c_nw_pseudo_bs_query_req(kal_uint8 src_id);
+extern kal_bool l4c_boot_mode_notify_hdlr(msg_type notify_msg_id);
+extern void l4c_boot_mode_rsp(msg_type notify_msg_id, kal_bool result, kal_bool is_from_ft, FT_MODE_SWITCH_RESULT ft_result);
+
+#ifdef __GEMINI__
+extern kal_bool l4c_is_rsim_present(kal_uint8 sim_id);
+extern rsvas_id_enum l4c_get_rsvas_id(void);
+extern kal_bool l4c_is_aka_sim_present(kal_uint8 sim_id);
+extern void l4c_sim_rsim_start_plugin_timer_hdlr(void);
+extern void l4c_sim_rsim_plugin_timerout_hdlr(void);
+extern void l4c_sim_rsim_ersimauth_timeout_hdlr(void);
+extern void l4c_sim_rsim_ersimauth_start_timer(void);
+extern void l4c_sim_rsim_ersimauth_stop_timer(void);
+#endif
+
+#ifdef __ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__
+extern void l4c_to_sms_send_call_status_req(kal_uint8 msg_type, kal_uint8 call_id);
+#endif
+
+extern void l4c_start_sbp_timer(kal_timer_func_ptr timeout_hdlr, void *param_ptr, kal_uint32 time_in_sec);
+extern void l4c_stop_sbp_timer(void);
+
+extern void l4c_notify_ipcore_ul_throttle_event(l4c_ipcore_ul_throttle_action_enum ul_throttle_action);
+
+extern void l4c_nw_power_level_threshold_start_timer_hdlr(l4c_timer_id_enum timer, kal_uint8 time);
+extern void l4c_nw_power_level_threshold_stop_timer_hdlr(l4c_timer_id_enum timer);
+extern void l4c_nw_power_level_threshold_timerout_hdlr();
+extern void l4c_nw_get_power_level_threshold(kal_int32 *upper_threshold, kal_uint8 *tup,
+            kal_int32 *lower_threshold, kal_uint8 *tlo);
+extern kal_bool l4c_is_peer_ps_c2k_existed(kal_uint8 current_ps);
+extern kal_bool l4c_has_any_call_session();
+extern kal_bool l4c_has_any_call_session_by_ps(kal_uint8 ps_id);
+
+extern void l4c_set_user_action_for_all_sims(kal_uint8 mod, kal_uint8 user, kal_uint16 new_action, kal_uint16 previous_action);
+
+extern void l4c_sim_duplex_mode_ind_hdlr(duplex_mode_change_action_enum sim_duplex_op);
+
+extern void l4c_send_cb_update_for_duplex_mode_req(void);
+
+extern void l4c_sms_send_etws_setting(void);
+extern kal_bool l4c_is_apvsim_on(void);
+
+extern l4c_sim_state_enum l4c_sim_get_power_state(kal_uint8 ps_id);
+extern kal_bool l4c_sim_is_dss_ongoing(void);
+extern kal_bool l4c_is_ecsra_ongoing(void);
+l4c_nw_dump_context l4c_nw_get_dump_context();
+l4c_cc_dump_context l4c_cc_get_dump_context();
+l4c_sms_dump_context l4c_sms_get_dump_context();
+l4c_sim_dump_context l4c_sim_get_dump_context();
+l4c_smu_dump_context l4c_smu_get_dump_context();
+l4c_ims_dump_context l4c_ims_get_dump_context();
+l4c_phb_dump_context l4c_phb_get_dump_context();
+
+extern kal_uint8 l4c_get_erfidx_index_from_srcid(kal_uint8 srcid);
+extern void l4c_op12_lock_reg_by_vzw_adm_apn(kal_bool lock_enable);
+extern kal_bool l4c_get_is_op12_lock(kal_uint8 ps_id);
+extern void l4c_op12_unlock_timer_hdlr();
+extern void l4c_op12_lock_timer_hdlr();
+extern void l4c_op12_lock_send_dereg();
+extern void l4c_op12_unlock_send_reg();
+extern kal_bool l4c_is_cdma_less(void);
+
+
+extern void l4c_op01_lock_send_dereg();
+extern void l4c_op01_unlock_send_reg();
+extern void l4c_set_op01_lock_unlock(kal_uint8 lock_state);
+extern kal_bool l4c_get_is_op01_lock(kal_uint8 ps_id);
+
+extern kal_bool l4c_sbp_is_any_dsbp_on_going();
+
+extern kal_bool l4c_sim_duplex_mode_reset_done();
+
+/*IWLAN - Power Level Threshold*/
+extern kal_bool l4c_is_cell_power_meas_disable_needed(l4c_sig_type_enum sig_type);
+extern kal_bool l4c_is_cell_power_meas_enable_needed();
+extern l4c_timer_func_ptr l4c_get_pwl_timeout_hdlr( l4c_pwl_thrhd_timer_id_enum which_timer );
+extern void l4c_pwl_thrhd_gsm_rssi_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_utran_rscp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_utran_ecno_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_lte_rsrp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_lte_rsrq_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_lte_rssnr_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_ss_rsrp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_ss_rsrq_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_ss_sinr_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_csi_rsrp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_csi_rsrq_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_csi_sinr_timerout_hdlr(void);
+
+extern void l4c_nw_iwlan_pwl_thrhd_stop_timer_hdlr(l4c_pwl_thrhd_timer_id_enum timer);
+extern l4c_pwl_thrhd_timer_id_enum l4c_get_pwl_thrhd_timer_id(l4c_sig_type_enum sig_type);
+extern void l4c_nw_iwlan_pwl_thrhd_start_timer_hdlr(l4c_pwl_thrhd_timer_id_enum timer, kal_uint16 time);
+extern void l4c_nw_iwlan_pwr_level_ind_hdlr(kal_int32 sig_value_in_qdbm, l4c_sig_type_enum sig_type);
+extern void l4c_nw_pwl_thrhd_timerout_hdlr(l4c_sig_type_enum sig_type, kal_int32 sig_value_in_qdbm);
+extern kal_int16 l4c_get_lte_signal_level(l4c_eval_cell_power_level_ind_struct *msg_ptr, l4c_sig_type_enum sig_type);
+extern kal_int32 l4c_get_nr_signal_level(l4c_nrrc_cell_power_level_ind_struct *msg_ptr, l4c_sig_type_enum sig_type);
+
+extern kal_bool l4c_nw_cops_get_current_plmn_id(kal_uint8 *oper);
+extern kal_bool l4c_duplex_mode_is_cpin_allowed(kal_uint8 channel_id);
+
+extern l4_ps_config_result_enum l4c_nw_ps_attach_config_result(void);
+
+extern void* l4c_alloc_ctrl_buffer(unsigned int size);
+extern void l4c_free_ctrl_buffer(void *ptr);
+
+extern kal_bool l4c_queue_remove_item_by_index(lcd_lqueue *queue, kal_uint32 delete_idx);
+extern l4c_queue_pending_action_item_struct* l4c_queue_get_first_pending_item(void);
+
+extern kal_uint16 l4c_get_num_of_pending_action_hdlr_item_table(void);
+extern const l4c_queue_pending_action_hdlr_item_struct *l4c_get_pending_action_hdlr_item_table(void);
+
+extern kal_bool l4c_enqueue_pending_action_item(l4c_pending_action_enum pending_action, void *data);
+extern kal_bool l4c_dequeue_pending_action_item(void);
+extern void l4c_queue_print_all_pending_action(void);
+
+extern kal_bool l4c_is_limited_service_rule_by_sim_type(protocol_id_enum ps_id, sim_operator_type_enum card_type,
+                                                        rat_enum rat_mode, ims_cap_rat_enum ims_voice_rat,
+                                                        kal_uint8* camped_plmn);
+
+extern mm_user_search_type_enum l4c_nw_get_ue_current_search_type();
+
+extern kal_bool l4c_dequeue_attach_action(void *data);
+extern kal_bool l4c_dequeue_detach_action(void *data);
+
+extern kal_bool l4c_enqueue_ps_attach_action(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_ps_attach_action(void *data);
+extern kal_bool l4c_enqueue_ps_detach_action(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_ps_detach_action(void *data);
+
+
+extern kal_bool l4c_nw_trigger_attach_action(l4c_source_id_enum src_id, mm_user_search_cause_enum search_cause);
+extern kal_bool l4c_nw_trigger_detach_action(l4c_source_id_enum src_id, domain_id_enum service,
+                                             l4c_rac_detach_cause_enum detach_cause, kal_bool is_poweroff);
+
+extern kal_bool l4c_nw_trigger_ps_attach_action(kal_bool follow_on_request);
+extern kal_bool l4c_nw_trigger_ps_detach_action(void);
+
+extern kal_bool l4c_reset_l4_eq_context(sim_interface_enum sim_ps_id);
+
+/* __KOR_CUSTOMIZATION__ */
+extern void l4c_get_ecc_sc( void * ecc_retry_setup_ptr );
+extern kal_bool l4c_is_plmn_changed(plmn_id_struct *plmn_id_ptr);
+extern void l4c_update_kormno_fake_nw_ecc( plmn_id_struct * plmn_id_ptr );
+/* __KOR_CUSTOMIZATION__ */
+
+extern kal_bool l4c_disable_rat_with_ecc_validator(rat_enum disable_rat);
+
+extern rsvas_id_enum l4c_get_rsvas_id(void);
+
+extern void l4c_nw_non_ps_occupy_rsva_start_timer_hdlr(kal_uint32 time_in_sec);
+extern void l4c_nw_non_ps_occupy_rsva_stop_timer_hdlr(void);
+#ifdef __CHR_AB_INFO__
+extern void l4c_epsnlte_start_timer_hdlr(l4c_timer_id_enum timer, kal_uint8 time);
+extern void l4c_epsnlte_stop_timer_hdlr(l4c_timer_id_enum timer);
+extern void l4c_epsnlte_timeout_hdlr(void);
+#endif /* __CHR_AB_INFO__ */
+
+extern kal_bool l4c_get_is_op01_sim_lock(kal_uint8 ps_id);
+extern kal_bool l4c_get_is_op01_rat_lock(kal_uint8 ps_id);
+extern void l4c_send_op01_lock_cnf(kal_bool result);
+extern kal_bool l4c_deque_op01_sim_lock_action(void *data);
+extern kal_bool l4c_deque_op01_sim_unlock_action(void *data);
+extern kal_bool l4c_deque_op01_rat_lock_action(void *data);
+extern kal_bool l4c_deque_op01_rat_unlock_action(void *data);
+extern kal_bool l4c_triger_op01_sim_lock_detach();
+extern kal_bool l4c_triger_op01_sim_unlock_attach();
+extern kal_bool l4c_triger_op01_rat_lock_exe();
+extern kal_bool l4c_triger_op01_rat_unlock_exe();
+extern kal_bool l4c_enqueue_op01_lock_action(l4c_queue_pending_action_item_struct *pending_action_item);
+
+extern kal_bool l4c_triger_lock_detach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_triger_unlock_attach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+
+extern kal_bool l4c_dequeue_imei_meid_lock_detach_action(void *data);
+extern kal_bool l4c_dequeue_imei_meid_lock_attach_any_action(void *data);
+extern kal_bool l4c_dequeue_imei_meid_unlock_attach_action(void *data);
+extern kal_bool l4c_enqueue_imei_meid_lock_action(l4c_queue_pending_action_item_struct *pending_action_item);
+
+extern kal_bool l4c_nw_triger_force_change_rat(l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_enqueue_force_change_rat_action(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_force_change_rat_action(void *data);
+
+extern void l4c_op01_check_rat_mode_and_prefer_rat(rat_enum* rat_mode, rat_enum* prefer_rat);
+extern rat_enum  l4c_op01_check_rat_mode(rat_enum rat_mode);
+extern void l4c_nw_clear_ims_nw_feature_support_context();
+extern kal_bool l4c_ss_check_if_SS_operation_on_another_stack();
+
+extern void l4c_sim_cal_ps_sim_map(kal_uint8 master_sim_bitmask, kal_uint8 *ps_sim_map);
+extern kal_uint8 l4c_sim_cal_master_sim_bitmask(kal_uint8 *ps_sim_map);
+
+extern kal_uint8 l4c_sim_query_tray_info(kal_uint8 sim_interface);
+
+#if defined(__MODEM_EM_MODE__)
+extern kal_uint32 l4c_em_destination(ilm_struct *ilm_ptr);
+#endif
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+extern kal_bool oem_get_imei_verification(void);
+#endif
+
+#if !defined(__MTK_TARGET__)
+extern void l4c_ut_set_master_sim_id(sim_interface_enum simId);
+#endif
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+extern kal_bool l4c_ms_black_list_lock_detach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_ms_black_list_unlock_detach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+
+extern kal_bool l4c_dequeue_ms_black_list_lock_detach_action(void *data);
+extern kal_bool l4c_dequeue_ms_black_list_lock_attach_any_action(void *data);
+extern kal_bool l4c_dequeue_ms_black_list_unlock_attach_action(void *data);
+extern kal_bool l4c_dequeue_ms_black_list_unlock_detach_action(void *data);
+extern kal_bool l4c_enqueue_ms_black_list_lock_action(l4c_queue_pending_action_item_struct *pending_action_item);
+#endif
+
+/*****************************************************************************
+* FUNCTION
+*   l4c_check_protocol_supported()
+* DESCRIPTION
+*   This function checks if the input protocol is supported.
+*   AP may send AT+ESADM to assign which protocols should be supported.
+*
+* PARAMETERS
+*   ps_id   [IN] protocol ID to be queried
+*
+* RETURNS
+*   kal_bool : The function returns TRUE when the protocol is supported.
+*****************************************************************************/
+extern kal_bool l4c_check_protocol_supported(protocol_id_enum ps_id);
+
+extern kal_bool l4c_check_is_sml_verify_action(protocol_id_enum ps_id);
+
+#ifdef __GEMINI__
+extern void l4c_nw_mspm_request_occupy(mspm_procedure_enum mspm_procedure);
+extern void l4c_nw_mspm_request_release(mspm_procedure_enum mspm_procedure);
+#endif /* __GEMINI__ */
+
+extern kal_uint8 l4c_cc_check_sim_interface(void);
+
+#ifdef __L4C_GPRS_UT__
+extern kal_bool l4c_is_test_sim_ut(void);
+#endif
+
+extern kal_uint8 l4c_get_ps_id_imei_meid_blocked_source(void);
+extern rat_enum l4c_get_rat_imei_meid_blocked_source(void);
+extern kal_bool l4c_is_rat_change_needed(kal_uint8 *mcc, rat_enum rat_mode);
+
+extern l4c_rat_group_enum l4c_get_rat_group(rat_enum rat);
+extern ims_rat_type_enum l4c_convert_rat_to_ims_rat(rat_enum rat, rat_duplex_type_enum duplex_type);
+
+extern l4c_data_bearer_capablility_enum l4c_nw_convert_data_speed_to_capability(data_speed_support_enum cell_data_speed_support);
+
+extern void l4c_nw_reg_state_debug_info(reg_state_ind_struct reg_state);
+
+extern kal_uint32 l4c_convert_area_code_to_at(cell_info_and_rat_struct cell_info);
+extern kal_uint64 l4c_convert_cell_id_to_at(cell_info_and_rat_struct cell_info);
+extern kal_uint8 l4c_convert_ra_code_to_at(cell_info_and_rat_struct cell_type);
+extern kal_uint16 l4c_convert_lac_to_at(kal_uint8*  la_code_ptr);
+
+
+extern void l4c_nw_update_cs_reg_state_context(kal_uint8 state, kal_uint8 act,
+                                               data_speed_support_enum cell_data_speed_support,
+                                               kal_uint32 lac_or_tac, kal_uint64 cell_id,
+                                               kal_uint8 rac, kal_uint8 cause_type, kal_uint32 reject_cause,
+                                               kal_uint8 *plmn, kal_bool is_hplmn);
+
+extern void l4c_nw_update_ps_reg_state_context(kal_uint8 state, kal_uint8 act,
+                                               data_speed_support_enum cell_data_speed_support,
+                                               kal_uint32 lac_or_tac, kal_uint64 cell_id,
+                                               kal_uint8 rac, kal_uint8 cause_type, kal_uint32 reject_cause,
+                                               kal_uint8 *plmn, kal_bool is_hplmn,
+                                               kal_uint8 vgmm_allowed_nssai_length, kal_uint8* vgmm_allowed_nssai);
+
+
+extern void l4c_nw_update_reg_state_context(reg_state_ind_struct reg_state);
+
+
+/* L4C submodules MUST call l4c_phb_send_approve_req()
+   to send MSG_ID_L4CPHB_APPROVE_REQ with approve_src. */
+extern void l4c_phb_send_approve_req(l4c_phb_approve_src_enum approve_src,
+                                              l4cphb_approve_req_struct *l4cphb_approve_req_ptr,
+                                              kal_uint8 *buffer_ptr);
+
+extern kal_uint8 l4c_get_num_of_phb_approve_cnf_callback_table(void);
+extern const l4c_phb_approve_cnf_callback_struct *l4c_get_phb_approve_cnf_callback_table(void);
+
+/*****************************************************************/
+/* Beginning of callback functions for MSG_ID_L4CPHB_APPROVE_CNF */
+/*****************************************************************/
+extern void l4ccsm_cc_call_setup_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_ps_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4csmsal_sms_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4ccsm_ciss_parse_ss_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4ccsm_ciss_cusd_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cphb_eapprove_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+/***********************************************************/
+/* End of callback functions for MSG_ID_L4CPHB_APPROVE_CNF */
+/***********************************************************/
+
+extern void l4c_update_ecc_call_id_for_srvcc(kal_uint8 call_id);
+
+
+extern kal_bool l4c_nw_is_service_mode_change_redundant(l4c_action_enum action, smu_sim_inserted_enum sim_status);
+extern void l4c_nw_service_mode_change_exe();
+extern void l4c_nw_service_mode_change_reattach();
+extern kal_bool l4c_nw_is_ps_attach_lock(kal_uint8 ps_id);
+
+extern void l4c_trace_function_name_and_return_line(const kal_char *function_name, kal_uint32 line, kal_bool return_value);
+extern rat_enum l4c_query_prefer_rat_mode_by_ps_id(protocol_id_enum ps_id);
+extern rat_enum l4c_query_rat_mode_by_ps_id(protocol_id_enum ps_id);
+
+extern kal_uint8 l4c_get_bit_mask(kal_uint8* bit_mask_array, l4c_source_id_enum src_id);
+extern void l4c_set_bit_mask(kal_uint8* bit_mask_array, l4c_source_id_enum src_id, kal_uint8 value);
+
+extern void l4c_sim_free_sim_parameter(void);
+
+extern kal_bool l4c_find_sms_category_for_mt_sms(peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_find_sms_category_for_mo_sms(peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_find_sms_category_for_cmss(peer_buff_struct *peer_buff_ptr);
+
+#ifdef __TC01__
+extern kal_bool l4c_check_emergency_call_exists(void);
+#endif /*__TC01__*/
+
+extern void l4c_nw_antenna_state_report_start_timer_hdlr(void);
+extern void l4c_nw_antenna_state_timerout_hdlr();
+
+
+extern void l4c_update_scp_monitor_data(l4c_scp_monitor_enum input);
+
+extern void l4c_convert_call_type_to_scp_enum(csmcc_cpi_msg_type_enum cpi_ind_value);
+
+extern kal_uint8 l4c_get_scp_monitor_value(void);
+
+extern kal_bool l4c_get_uac_free_transaction(kal_uint8 *id);
+extern kal_bool l4c_query_uac_transaction_id(kal_uint8 src_tx_id, module_type src, kal_uint8 *ret_tx_id);
+
+extern kal_uint8 l4c_convert_rf_and_sim_state_to_cfun(l4_rf_state_enum rf_state, l4_sim_state_enum sim_state);
+
+extern void l4c_send_phone_state_cnf(kal_bool result, kal_uint16 cause);
+extern void l4c_send_phone_state_cnf_to_l4bpwr_with_monitor(kal_bool result, kal_uint16 cause);
+
+extern kal_bool l4c_get_nitz_information(l4c_nw_time_zone_time_struct *nitz_ptr);
+extern void l4c_nw_deactivate_endc(kal_bool deactivate, kal_bool allow_scg_add);
+extern kal_int8 l4c_get_efun_rfoff_cause(void);
+
+
+#if defined(__SENSITIVE_DATA_MOSAIC__)
+extern sap_type l4c_check_sensitive_data_msg(msg_type msg_id,sap_type sap_id);
+#endif
+
+#ifdef __CB__
+extern kal_bool l4c_smsal_add_cb_channels(l4c_cb_info_struct *info);
+extern kal_bool l4c_smsal_remove_cb_channels(l4c_cb_info_struct *info);
+extern kal_bool l4c_smsal_construct_cb_configuration(kal_uint8 mode,l4c_cb_info_struct *info,kal_uint8 *error_cause);
+#endif
+
+extern kal_bool l4c_nw_is_home_country();
+
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+extern void l4c_clear_camera_earfcn_info(void);
+extern void l4c_camera_report_call_ind (kal_bool is_call_present);
+#endif
+
+extern kal_bool l4c_negative_switch_hvolte_mode_by_dereg_cause(kal_uint8 dereg_cause);
+#ifdef __TC01__
+extern kal_bool l4c_get_bearer_id(const kal_uint8 cid, kal_uint8 *bearer_id);
+#endif /* __TC01__ */
+
+extern void l4c_nw_set_ia_pdn_info(l4c_ia_pdn_info_struct* ia_pdn_info);
+
+extern kal_bool l4c_nw_is_ue_capability_ind_procedure_conflict();
+extern kal_bool l4c_ue_capability_detach_attach();
+extern kal_bool l4c_enqueue_ue_capability_exe(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_ue_capability_exe(void *pending_action_item);
+
+#if defined (__TC01__) && defined (__SGLTE__) // at%ltecall
+extern kal_bool l4c_check_ps_attach_allowed();
+#endif
+
+extern kal_uint8 l4c_skip_invalid_characters(kal_uint8 *number);
+
+extern kal_bool l4c_is_standalone_duplex_mode_change_last_time();
+extern void l4c_clear_standalone_duplex_mode_change_context();
+
+#ifdef __FEATURE_SAMSUNG_RF_SAR_EUR_CHK__
+extern void l4c_nw_mcc_for_pwr_backoff_feature(kal_uint8 *plmn);
+#endif
+
+#ifdef __TC10__
+extern kal_bool l4c_is_md_ready(void);
+extern void l4c_nw_register_nitz_callback(l4c_nw_register_nitz_cb nitz_cb);
+#endif /* __TC10__ */
+
+extern l4c_power_level_threshold_range_enum l4c_get_threshold_range(kal_uint8 index);
+
+extern l4c_power_level_threshold_range_enum l4c_check_signal_value_range(kal_int32 sig_value, kal_uint8 sig_type);
+extern void l4c_smu_get_mcc_mnc_str(kal_char * mcc_mnc);
+
+
+extern kal_bool l4c_is_threshold_changed(iwlan_l4c_set_pwl_thrhd_req_struct *current_threshold,
+                                          l4c_pwl_thrhd_struct *previous_threshold);
+
+#if defined(__CT_HVOLTE_DEFAULT_VOPS_MODE__)
+extern kal_bool l4c_is_set_hvolte_context_by_sim_card();
+#endif
+extern kal_uint16 l4c_get_mcc_from_plmn_found(void);
+
+kal_bool l4c_is_limited_service_rule_by_sim_type(protocol_id_enum ps_id, sim_operator_type_enum card_type,
+                                                 rat_enum rat_mode, ims_cap_rat_enum ims_voice_rat, kal_uint8* camped_plmn);
+
+extern kal_bool l4c_triger_lock_attach_any(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_nssai_convert_hexstring_to_digit(kal_uint8 *dest, kal_uint8 *source, kal_uint8 *length_in_octets);
+extern kal_uint8 l4c_nssai_convert_digit_to_hexstring(kal_uint16 max_size, kal_uint8 *dest, kal_uint8 *source, kal_uint8 length_in_octets, kal_bool is_rejected_nssai);
+
+extern void l4c_send_icd_epsfbs_event(kal_uint8 state, kal_uint8 type);
+
+extern kal_char* l4c_ps_add_plmn_list_block_apn(kal_uint8 cid);
+
+extern void l4c_ps_clear_plmn_list_block_apn(ps_cause_enum cause);
+
+extern void l4c_ps_send_pam_backoff_timer_report_ind(kal_bool is_reset, ps_cause_enum cause, kal_char *apn);
+
+extern void l4c_notify_end_of_plmn_list();
+
+extern rat_enum l4c_check_ef_rat_to_config_vg_option(rat_enum old_rat_mode);
+
+#ifdef __TC01__
+extern void l4c_nw_update_pdn_act_cnf_status(kal_bool is_success);
+#endif
+
+extern kal_bool l4c_is_plmn_id_valid(l4c_plmn_type_enum plmn_type, kal_uint8* plmn_array, plmn_id_struct* plmn_mcc_mnc);
+
+extern rat_enum l4c_tc10_rat_mode_validator(kal_uint8 src_id, rat_enum old_rat_mode);
+
+extern kal_uint8 l4c_get_cli_validity(l4ccsm_cc_peer_addr_struct *calling_number, kal_uint8 calling_number_present, kal_uint8 no_cli_cause_present, kal_uint8 no_cli_cause);
+
+extern rat_enum l4c_rat_change_for_oper_nw_validator(kal_uint8 src_id, rat_enum old_rat_mode);
+
+extern kal_bool l4c_check_rat_mode_save_to_nvram(kal_uint8 src_id);
+extern kal_bool l4c_nw_get_rat_mode_save_to_nvram_statues(void);
+extern void l4c_update_rfoff_cnf_context();
+extern kal_bool l4c_nw_check_rat_change_needed();
+extern void l4c_lte_only_timeout_hdlr(void);
+extern void l4c_stop_lte_rat_mode_change_timer_hdlr(void);
+extern void l4c_start_lte_rat_mode_change_timer_hdlr(void);
+extern kal_bool l4c_custom_rat_setting_needed();
+extern kal_bool l4c_nw_check_rat_change_needed_for_docomo(kal_uint8 *plmn);
+
+void l4c_nw_check_service_change_on_vops_setting(ims_cap_rat_enum old_ims_voice_rat, ims_cap_rat_enum new_ims_voice_rat,
+                                                 kal_uint8* old_camped_plmn, kal_uint8* new_camped_plmn);
+
+extern void l4c_check_vg_option_setting_with_sase(vg_option_enum vg_option, kal_uint8 src_id);
+extern void l4c_update_vg_option_to_rac(vg_option_enum vg_option, kal_uint8 act_operation, kal_uint8 src_id, module_type user);
+#ifdef __WHITE_CELL_LOCK__
+extern kal_uint32 l4c_nw_band_bit_mask_to_array (rat_enum rat,
+                                        kal_uint32 *band_bit_mask_table,
+                                        nw_scan_band_enum *band_array_ptr,
+                                        kal_uint16 bit_mask_size,
+                                        kal_uint16 int_arr_len);
+#endif /* __WHITE_CELL_LOCK__ */
+
+extern kal_bool l4c_triger_lock_attach_any(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+
+extern kal_char* l4c_ps_add_plmn_list_block_apn(kal_uint8 cid);
+extern void l4c_ps_clear_plmn_list_block_apn(ps_cause_enum cause);
+extern void l4c_ps_send_pam_backoff_timer_report_ind(kal_bool is_reset, ps_cause_enum cause, kal_char *apn);
+
+extern void l4c_notify_end_of_plmn_list();
+
+extern kal_uint32 l4c_ps_get_apn_type_by_cid(protocol_id_enum ps_id, kal_uint8 cid);
+
+extern void l4c_set_mo_disc_cause(kal_uint16 disc_cause);
+
+#ifdef __ECALL_SUPPORT__
+extern kal_bool l4c_get_usim_ecall_number(l4_addr_bcd_struct *called_number,kal_uint8 ecc_info);
+#endif /* __ECALL_SUPPORT__ */
+
+#ifdef __NG_ECALL_SUPPORT__
+extern void l4c_convert_addr_bcd_to_ascii(l4_addr_bcd_struct *source, kal_uint8 *dest);
+extern kal_bool l4c_get_usim_ecall_uri(l4_phb_uri_struct *usim_uri, kal_uint8 ecc_info);
+extern kal_bool l4c_get_ecall_ims_uri(kal_uint8 *output_string,kal_uint8 *type, kal_uint8 ecc_info);
+#endif /* __NG_ECALL_SUPPORT__ */
+
+extern void l4c_root_power_off_req(kal_uint8 root_src_id);
+extern void l4c_root_power_off_done_ind(kal_uint8 root_src_id);
+
+extern kal_bool l4c_root_cmd_conflict(kal_uint8 src_id, l4c_root_action_enum new_action);
+
+extern kal_int32 l4c_get_signal_value_by_type(l4c_sig_type_enum signal_type);
+
+extern kal_int32 l4_snprintf(kal_char *buffer, kal_uint32 size, const char *fmt, ...);
+
+extern void l4c_start_wait_on_lte_paging_timer(void);
+
+extern void l4c_wait_on_lte_paging_timeout_hdlr(void);
+extern kal_bool l4c_check_rat_change_feature_enable();
+extern void l4c_custom_config_fd_setting(protocol_id_enum ps_id);
+extern kal_bool l4c_is_emergency_call_ongoing(protocol_id_enum ps_id);
+
+extern void l4c_nw_set_pco_5guw_allow(kal_bool is_5guw_allow);
+extern void l4c_nw_5guw_set_is_ultra_wb_configure(kal_bool is_n77_configured,  kal_bool is_fr2_configured, kal_bool is_nrrc_enter_conn);
+extern void l4c_nw_update_5guw_state_errc_idle_to_conn(void);
+extern void l4c_nw_update_5guw_state_errc_conn_to_idle(void);
+extern void l4c_nw_update_5guw_state_uli_disappear(void);
+extern void l4c_nw_re_calculate_and_update_5guw_display(void);
+extern void l4c_nw_stop_tuw_timer(l4c_timer_id_enum timer_id);
+extern void l4c_nw_start_tuw_timer(l4c_timer_id_enum timer_id);
+extern void tuw_1_timer_timeout_hdlr();
+extern void tuw_2_timer_timeout_hdlr();
+extern void tuw_3_timer_timeout_hdlr();
+extern void l4c_nw_reset_5guw_context();
+#ifdef __EPSFB_SUPPORT__
+extern kal_bool l4c_is_epsfb_needed(protocol_id_enum ps_id, rat_type_enum source_rat, rat_type_enum target_rat, irat_type_enum ir_type);
+#endif
+extern kal_bool l4c_is_call_ongoing_over_wifi();
+#endif /* _L4C_UTILITY_H */ /* l4c_utility.h */
diff --git a/mcu/protocol/interface/l4misc/l5_l4c_enums.h b/mcu/protocol/interface/l4misc/l5_l4c_enums.h
new file mode 100644
index 0000000..343d6d7
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l5_l4c_enums.h
@@ -0,0 +1,100 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l5_l4c_enums.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+****************************************************************************/
+
+#ifndef  _L5_L4C_ENUMS_H
+#define  _L5_L4C_ENUMS_H
+
+
+#ifdef __L5_SUPPORT__
+
+#include "as_inter_core_enum.h"
+#include "mrs_common_capability.h"
+
+
+/*********** MACROS *************************************************************/
+
+#define  LTE_BAND_BITMASK_MAX_SUPPORT_SIZE  (SIZE_LTE_BAND_MASK_TABLE_EXTENDED/4) /* 32*8: band 1 ~ band 256 */
+#define  NR_BAND_BITMASK_MAX_SUPPORT_SIZE   (MRS_NR_BAND_BITMASK_SIZE/4) /* 32*32: band 1 ~ band 1024 */
+#define  MAX_LTE_RAN_CELL_LIST              32
+#define  MAX_NR_RAN_CELL_LIST               32
+
+
+/************  TYPES DEFINITIONS **************************************************/
+
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef enum {
+    NW_BLACK_LIST_STATE_NOT_ACTUATED,
+    NW_BLACK_LIST_SIM_PROVIDER_ACTUATED,
+    NW_BLACK_LIST_NETWORK_PROVIDER_ACTUATED
+} nw_black_list_state_enum;
+
+typedef enum{
+    NW_BLACK_LIST_TYPE_SIM,
+    NW_BLACK_LIST_TYPE_NETWORK
+}nw_black_list_type_enum;
+
+typedef enum{
+    NW_BLACK_LIST_INIT_NULL,
+    NW_BLACK_LIST_INIT_SIM,
+    NW_BLACK_LIST_INIT_NW,
+    NW_BLACK_LIST_INIT_DONE
+}nw_black_list_init_state_enum;
+#endif
+
+#endif
+
+#endif /* _L5_L4C_ENUMS_H */
diff --git a/mcu/protocol/interface/l4misc/l5_l4c_struct.h b/mcu/protocol/interface/l4misc/l5_l4c_struct.h
new file mode 100644
index 0000000..b76df59
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l5_l4c_struct.h
@@ -0,0 +1,190 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   l5_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+****************************************************************************/
+
+#ifndef  _L5_L4C_STRUCT_H
+#define  _L5_L4C_STRUCT_H
+
+#ifdef __L5_SUPPORT__
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "l5_l4c_enums.h"
+#include "rac2l4c_struct.h"
+#include "mmrf_msg_interface.h"
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+
+typedef struct{
+    kal_uint16 mcc;
+    kal_bool   is_2_digit_mnc;
+    kal_uint16 mnc;
+    nw_black_list_type_enum list_type;
+}nw_black_list_provider_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 transaction_id;
+    kal_uint8 num_of_black_list;
+    nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+}l5_l4c_set_nw_black_list_req_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 transaction_id;
+    nw_black_list_operator_result_enum result;
+}l5_l4c_set_nw_black_list_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 transaction_id;
+}l5_l4c_get_nw_black_list_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 transaction_id;
+    nw_black_list_operator_result_enum result;
+    kal_uint8 num_of_black_list;
+    nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+}l5_l4c_get_nw_black_list_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    nw_black_list_state_enum black_list_state;
+    kal_uint8 num_of_black_list;
+    nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+}l5_l4c_nw_black_list_state_ind_struct;
+#endif
+
+typedef struct {
+    kal_uint16  pci;
+    kal_uint32  earfcn;
+}lte_ran_cell_info_struct;
+
+typedef struct {
+    kal_uint16  pci;
+    kal_uint32  narfcn;
+    kal_uint16  nr_band_indicator;
+}nr_ran_cell_info_struct;
+
+/*struct defined for MSG_ID_L5_L4C_CELL_LIST_REQ */
+typedef struct {
+    LOCAL_PARA_HDR
+	kal_uint8   transaction_id;
+    /* Lte band list bitmask array */
+    kal_uint32  lte_band_list[LTE_BAND_BITMASK_MAX_SUPPORT_SIZE];
+    /* NR band list bitmask array */
+    kal_uint32  nr_band_list[NR_BAND_BITMASK_MAX_SUPPORT_SIZE];
+    /* if TRUE nr_endc_band_list is present */
+    kal_bool    nr_endc_band_list_present;
+    /* NR ENDC band list bitmask array */
+    kal_uint32  nr_endc_band_list[NR_BAND_BITMASK_MAX_SUPPORT_SIZE];
+    /* Lte cell list number*/
+    kal_uint8   num_of_lte_cell;
+    /* NR cell list number*/
+    kal_uint8   num_of_nr_cell;
+    /* Lte cell list */
+    lte_ran_cell_info_struct    lte_cell_list[MAX_LTE_RAN_CELL_LIST];
+    /* NR cell list */
+    nr_ran_cell_info_struct     nr_cell_list[MAX_NR_RAN_CELL_LIST];
+
+}l5_l4c_cell_list_req_struct;
+
+/*struct defined for MSG_ID_L5_L4C_CELL_LIST_CNF */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   transaction_id;
+    kal_bool    result;
+
+}l5_l4c_cell_list_cnf_struct;
+
+/*struct defined for MSG_ID_L5_L4C_GET_RF_STATUS_REQ */
+typedef l4c_mmrf_get_rf_status_req_struct l5_l4c_get_rf_status_req_struct;
+
+/*struct defined for MSG_ID_L5_L4C_GET_RF_STATUS_CNF */
+typedef l4c_mmrf_get_rf_status_cnf_struct l5_l4c_get_rf_status_cnf_struct;
+#endif
+
+typedef struct
+{
+    kal_int16  srxlev_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
+    kal_int16  squal_in_qdb;  /* range -32768 ~ 32767, invalid value:0x7fff */
+}ps_cell_srxlev_info_struct;
+
+
+/*struct defined for MSG_ID_L5_L4C_CELL_PWR_SRXLEV_IND */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8                       rat_mode;   /* ref rat_enum, now support RAT_LTE/RAT_NR */
+    kal_uint8                       is_srxlev_info_valid; /* wherther or not is srxlev info is valid. */
+    ps_cell_srxlev_info_struct      ps_cell_srxlev_info; /* srxlex info*/
+
+}l5_l4c_cell_pwr_srxlev_ind_struct;
+
+#ifdef  __L5_SUPPORT__
+typedef l4crac_set_allowed_mcc_list_req_struct l5_l4c_set_allowed_mcc_list_req_struct;
+typedef l4crac_set_allowed_mcc_list_cnf_struct l5_l4c_set_allowed_mcc_list_cnf_struct;
+typedef l4crac_set_pref_nssai_req_struct       l5_l4c_set_pref_nssai_req_struct;
+typedef l4crac_set_pref_nssai_cnf_struct       l5_l4c_set_pref_nssai_cnf_struct;
+typedef l4crac_set_nssai_req_struct            l5_l4c_set_nssai_req_struct;
+typedef l4crac_set_nssai_cnf_struct            l5_l4c_set_nssai_cnf_struct;
+typedef l4crac_get_nssai_req_struct            l5_l4c_get_nssai_req_struct;
+typedef l4crac_get_nssai_cnf_struct            l5_l4c_get_nssai_cnf_struct;
+typedef l4crac_vgmm_nw_params_ind_struct       l5_l4c_vgmm_nw_params_ind_struct;
+
+#endif
+#endif /* _L5_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/layer4_context.h b/mcu/protocol/interface/l4misc/layer4_context.h
new file mode 100644
index 0000000..121522b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/layer4_context.h
@@ -0,0 +1,167 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	layer4_context.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * 				HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+#ifndef _LAYER4_CONTEXT_H
+#define _LAYER4_CONTEXT_H
+
+//#include "l4c_context.h"
+//#include "rmmi_context.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+//#include "l4c_hz_context.h"
+
+#include "global_def.h"
+
+#define L4_MAX_SIM_NUM      (MAX_SIM_NUM)
+
+#define L4_MODULE(x,y) (module_type)((x) + (y))
+
+#define get_l4c_ptr_by_mod(mod_id)  (&l4c_cntxt_g[mod_id - MOD_L4C])
+
+#define L4C_PTR_X(field, sim_interface) ((l4c_cntxt_g[sim_interface]).field)
+
+#define L4C_GET_SIM_ID(mod_id) ((kal_uint8)(mod_id-MOD_L4C))
+
+extern void layer4_module_context_selection(module_type mod_id);
+
+#endif /* layer4_context.h */
+
+
diff --git a/mcu/protocol/interface/l4misc/n3ans_l4bnw_struct.h b/mcu/protocol/interface/l4misc/n3ans_l4bnw_struct.h
new file mode 100644
index 0000000..8d30a15
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/n3ans_l4bnw_struct.h
@@ -0,0 +1,74 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   n3ans_l4bnw_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _N3ANS_L4BNW_STRUCT_H
+#define  _N3ANS_L4BNW_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l4bnw_public_struct.h"
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4bnw_public_attached_network_info_struct attached_network_info;
+} n3ans_l4bnw_attached_rat_ind_struct;
+
+#endif /* _N3ANS_L4BNW_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/phb_sap.h b/mcu/protocol/interface/l4misc/phb_sap.h
new file mode 100644
index 0000000..57568db
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/phb_sap.h
@@ -0,0 +1,101 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * phb_sap.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This is function declarations for L4CPHB SAP.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _PHB_SAP_H
+#define _PHB_SAP_H
+
+#include "kal_public_api.h"
+#include "l4c2phb_enums.h"
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+#include "l4c2phb_struct.h"
+#include "sim_common_enums.h"
+#include "phb_data_desc.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */ 
+
+/* Header files should be include before this one */
+#ifndef _L4C2PHB_ENUMS_H
+#error "l4c2phb_enums.h should be included"
+#endif 
+
+/* This macro fetches word(32bits)-aligned value, the argument should be unsigned */
+#define get_32bits_aligned_val(x) (((kal_uint32)(x) + 3) & (~(0x03)))
+
+extern phb_errno_enum l4cphb_phonebook_status_req(
+                        phb_storage_enum storage,
+                        kal_uint16 *total,
+                        kal_uint16 *available);
+extern phb_errno_enum l4cphb_status_req(phb_type_enum type, kal_uint16 *total, kal_uint16 *available);
+extern phb_errno_enum l4c_phb_get_file_info(kal_uint8 type, phb_storage_enum storage, l4cphb_file_info_struct* file_info, kal_uint8 occurrence);
+#ifdef __SIM_SEARCH_RECORD_SUPPORT__
+extern kal_bool l4c_phb_adn_entry_is_free(kal_uint16 index);
+extern kal_bool l4c_phb_stroage_entry_is_ocupied(kal_uint16 index, data_desc_enum desc);
+#endif
+extern kal_uint8 *l4cphb_alloc_peer_buf(peer_buff_struct **peer_buf_ptr, kal_uint16 count);
+
+extern kal_uint16 l4cphb_get_index_by_location(kal_uint8 type, kal_uint8 storage, kal_uint16 record_index);
+
+extern kal_bool l4cphb_get_alpha_list_req(phb_type_enum type, kal_uint16 *list);
+
+
+#ifdef __cplusplus
+}
+#endif 
+
+#endif /* _PHB_SAP_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/phb_utils.h b/mcu/protocol/interface/l4misc/phb_utils.h
new file mode 100644
index 0000000..c157ab5
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/phb_utils.h
@@ -0,0 +1,234 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * phb_utils.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file contains utility functions for PHB module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _PHB_UTILS_H
+#define _PHB_UTILS_H
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "kal_public_api.h"
+#include "sim_ps_enum.h"
+#include "phb_defs.h"
+#include "l4c2phb_enums.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */ 
+
+
+/*#define PHB_TRACE(x,y)   kal_trace y
+*/
+
+#define PHB_UTILS_INVALID_VALUE ~0
+
+#ifdef __TC10__
+#define MAX_KSC5601_NUM 12160
+#define KSC5601_PREFIX 0x81
+#endif
+/** 
+ * Number of bytes should be retained for SIM encoding:
+ * 1. 0x80: 1 byte coding, 2 bytes 0xFF.
+ * 2. 0x81: 1 byte coding, 1 byte length, 1 byte code page offset.
+ * 3. 0x82: 1 byte coding, 1 byte length, 2 bytes cod page.
+ *
+ * This constant could be used for allocating buffer when invoking phb_encode_to_sim() 
+ * to enconde characters into SIM.
+ */
+#define SIM_ENCODE_MARGIN 4
+
+typedef enum
+{
+    shift_down,
+    shift_up
+} shift_op_enum;
+
+/* The enumeration here uses values defined in 03.38 directly. */
+typedef enum
+{
+    CHARSET_ASCII   = 0x00,
+    CHARSET_KSC5601 = 0x05,
+    CHARSET_UCS2    = 0x08,
+    CHARSET_UCS2_81 = 0x09, /* Add for extra handle for UCS2 0x81 */
+    CHARSET_UCS2_82 = 0x10  /* Add for extra handle for UCS2 0x82 */
+} istring_charset_enum;
+
+typedef struct
+{
+    kal_uint8 length;
+    kal_uint8 charset;
+    kal_uint8 *data;
+} istring_type;
+
+typedef enum
+{
+    CODING_AUTO,
+    CODING_DEFAULT_7BITS,
+    CODING_UCS2_80 = 0x80,
+    CODING_UCS2_81 = 0x81,
+    CODING_UCS2_82 = 0x82
+} sim_alpha_id_coding_enum;
+
+/**
+ * Shall returns an integer greater than, equal to, or less than 0, according to `first' is 
+ * greater than, equal to, or less than `second'.
+ */
+typedef int (*bin_search_cmp_func_type) (void *external_data, int external_pos, void *key);
+
+/* Generic array shift functions */
+extern void table_shift(
+                kal_uint16 *used_count,
+                kal_uint16 *slots,
+                void *array,
+                kal_uint16 element_size,
+                shift_op_enum op,
+                kal_uint16 from);
+extern void table_range_shift(
+                kal_uint16 *used_count,
+                kal_uint16 *slots,
+                void *array,
+                kal_uint16 element_size,
+                shift_op_enum op,
+                kal_uint16 from,
+                kal_uint16 to);
+
+/* istring functions */
+#define phb_more_significant_char(x) (x >> 8 & 0xFF)
+#define phb_less_significant_char(x) (x  & 0xFF)
+extern kal_uint8 istring_encode_to_sim(
+                    sim_alpha_id_coding_enum coding,
+                    istring_type *istr,
+                    kal_uint8 buffer_len,
+                    kal_uint8 *buffer);
+extern kal_uint8 istring_decode_from_sim(kal_uint8 raw_data_len, kal_uint8 *raw_data, istring_type *decoded_str);
+extern kal_uint8 istring_decode_0x81_to_0x80(
+                    kal_uint8 raw_data_len,
+                    kal_uint8 *raw_data,
+                    istring_type *decoded_str);
+extern kal_uint8 istring_decode_0x82_to_0x80(
+                    kal_uint8 raw_data_len,
+                    kal_uint8 *raw_data,
+                    istring_type *decoded_str);
+extern kal_uint8 istring_len(istring_type *istr);
+extern kal_uint16 istring_char_at(istring_type *istr, kal_uint8 offset);
+
+extern kal_bool is_chars_equal(kal_uint16 char1, kal_uint16 char2);
+extern kal_int32 compare_chars(kal_uint16 char1, kal_uint16 char2);
+
+/* BCD functions */
+#define phb_more_significant_nibble(x) (x >> 4 & 0x0F)
+#define phb_less_significant_nibble(x) (x  & 0x0F)
+
+extern kal_uint16 bcd2string(kal_uint8 length, kal_uint8 *tel_number, char *bcd_array);
+extern kal_uint8 bcd2char(kal_uint8 bcd);
+extern kal_uint16 get_next_bcd_digit(
+                    kal_uint8 *bcd_array,
+                    kal_uint16 offset,
+                    kal_bool *is_first,
+                    kal_uint8 *digit);
+extern kal_int8 compare_n_string_bcd(char const *str, kal_uint8 *bcd_array, kal_uint16 len);
+extern kal_int8 compare_n_bcd(kal_uint8 *first_bcd_array, kal_uint8 *second_bcd_array, kal_uint16 n);
+extern kal_int8 compare_n_bcd_for_wild_char(kal_uint8 *first_bcd_array, kal_uint8 *second_bcd_array, kal_uint16 n);
+extern kal_bool phb_compare_bcd_for_wild_char(kal_uint8 length1, kal_uint8 length2, kal_uint8 *bcd1, kal_uint8 *bcd2);
+extern kal_int16 bcd_len(kal_uint8 *bcd_array, kal_uint16 n);
+extern kal_int16 bcd_exact_len(kal_uint8 *bcd_array, kal_uint16 n);
+
+/* Check whether each byte of ptr are all 0x0F */
+extern kal_bool is_empty(kal_uint8 *ptr, kal_uint16 len);
+
+extern kal_uint32 phb_abs(kal_int32 val);
+
+extern int binary_search(void *collection[], int low, int high, void *key, bin_search_cmp_func_type compare_func);
+
+extern char *find_pinying_str_for_ucs2(kal_uint16 ucs2_code);
+
+extern kal_bool find_pinyin_str_for_ucs2_with_tone(kal_uint8 *inputString, kal_uint8 *outputString);
+
+extern kal_bool find_pinyin_str_for_ucs2_without_tone(kal_uint8 *inputString, kal_uint8 *outputString);
+/* End MTK */
+
+extern kal_bool phb_is_prefix(alpha_id_type *target, alpha_id_type *candidate);
+
+extern kal_uint8 phb_which_sim_ex(void);
+extern phb_storage_enum phb_which_sim_storage(void);
+extern kal_uint8 phb_util_is_usim(kal_uint8 sim_num);
+extern phb_type_enum phb_util_get_type(kal_uint16 file_idx);
+#ifdef __CDMA2000_RAT__
+extern kal_bool phb_util_is_csim(kal_uint8 sim_num);
+extern kal_bool phb_util_is_cdma_card(void);
+extern kal_bool phb_UIM_service_table_Query(kal_uint8 sst_id);
+extern kal_bool phb_UIM_service_table_Query_by_ps_id(kal_uint8 sst_id, protocol_id_enum ps_id);
+extern sim_dn_enum phb_UIM_get_dial_mode(void);
+extern sim_dn_enum phb_UIM_get_dial_mode_by_ps_id(protocol_id_enum ps_id);
+#endif
+
+kal_uint8 phb_map_sim(kal_uint8 sim);
+
+    /* 03.38 encodes charset information into bit 3 and 2 */
+#define get_0338_charset_bits(x) (x & 0x1C)
+
+void phb_get_mcc_mnc_from_imsi(kal_uint8 *dest_ptr, kal_uint8 *imsi);
+
+#if defined(__CDMA2000_RAT__)
+    extern kal_bool phb_try_csim_fdn(sim_file_index_enum file_idx);//, kal_uint8 ctrl_block_id);
+    extern kal_bool phb_try_csim_fdn_by_ps_id(sim_file_index_enum file_idx, protocol_id_enum ps_id);
+	extern kal_bool phb_util_is_usim_csim(kal_uint8 sim_num);
+#endif
+
+#ifdef __cplusplus
+}
+#endif 
+
+#endif /* _PHB_UTILS_H */ 
+
diff --git a/mcu/protocol/interface/l4misc/rmmi_context.h b/mcu/protocol/interface/l4misc/rmmi_context.h
new file mode 100644
index 0000000..2e93695
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/rmmi_context.h
@@ -0,0 +1,1525 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * rmmi_context.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _RMMI_CONTEXT_H
+#define _RMMI_CONTEXT_H
+
+#include "l4c_common_enum.h"
+
+
+#include "ps2sat_struct.h"
+#include "ps_public_struct.h"
+#include "l3_inc_enums.h"
+#include "as2l4c_struct.h"
+#include "rmmi_common_enum.h"
+#include "fs_type.h"
+
+#include "kal_general_types.h"
+#include "cmux_vp_num.h"
+#include "ps_public_enum.h"
+#include "kal_public_api.h"
+
+#include "l4c2phb_struct.h"
+#include "l4c_aux_struct.h"
+
+#include "med_struct.h"
+#include "l4crac_enums.h"
+
+#include "sim_public_enum.h"
+#include "rmmi_struct.h"
+#include "smu_common_enums.h"
+#include "kal_public_defs.h"
+#include "c2k_irat_msg_struct.h"
+
+/* CONSTANTS */
+
+#define NULL_TERM '\0'  /* string termination */
+#define INVALID_ENUM 255        /* invalid enum value */
+
+#define RMMI_PTR        rmmi_ptr_g
+#define RMMI_COMM_PTR   rmmi_common_ptr_g
+
+#define rmmi_skip_spaces(source_string_ptr)                                  \
+      while( source_string_ptr->string_ptr[ source_string_ptr->index ]       \
+                                 == RMMI_SPACE )                             \
+      {                                                                      \
+        source_string_ptr->index++;                                          \
+      }
+//030617 mtk00468 add for skip unused character before character a
+#define rmmi_skip_none_a(source_string_ptr, length)                                                                                \
+      while( (source_string_ptr->index < length) && !((source_string_ptr->string_ptr[ source_string_ptr->index ] == RMMI_CHAR_A) ||\
+             (source_string_ptr->string_ptr[ source_string_ptr->index ] == rmmi_char_a)) )                                         \
+      {                                                                                                                            \
+        source_string_ptr->index++;                                                                                                \
+      }
+
+#define RMMI_IS_LOWER( alpha_char )   \
+  ( ( (alpha_char >= rmmi_char_a) && (alpha_char <= rmmi_char_z) ) ?  1 : 0 )
+
+#define RMMI_IS_UPPER( alpha_char )   \
+   ( ( (alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_Z) ) ? 1 : 0 )
+
+#define RMMI_IS_HEX_ALPHA( alpha_char )   \
+   ( ( (alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_F) ) ? 1 : 0 )
+
+#define RMMI_IS_HEX_ALPHA_CASE_INSENSITIVE( alpha_char )   \
+   ( ( ((alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_F)) || ((alpha_char >= rmmi_char_a) && (alpha_char <= rmmi_char_f)) ) ? 1 : 0 )
+
+#define RMMI_IS_NUMBER( alpha_char )   \
+   ( ( (alpha_char >= RMMI_CHAR_0) && (alpha_char <= RMMI_CHAR_9) ) ? 1 : 0 )
+
+#define RMMI_IS_ALPHA( alpha_char )   \
+   ( ( RMMI_IS_UPPER(alpha_char) || RMMI_IS_LOWER(alpha_char) ) ? 1 : 0 )
+
+#define RMMI_IS_SYMBOL( alpha_char )                                          \
+   ( ( (alpha_char == RMMI_CHAR_PLUS) || (alpha_char == RMMI_CHAR_STAR) ||    \
+       (alpha_char == RMMI_CHAR_POUND) || (alpha_char == RMMI_COMMA) ||       \
+       (alpha_char == RMMI_CHAR_DOT) || (alpha_char == RMMI_FORWARD_SLASH) || \
+       (alpha_char == RMMI_COLON) || (alpha_char == RMMI_HAT) ||              \
+       (alpha_char == RMMI_CHAR_MINUS) ||                                     \
+       (alpha_char == RMMI_L_SQ_BRACKET) ||                                   \
+       (alpha_char == RMMI_R_SQ_BRACKET) ||                                   \
+       (alpha_char == RMMI_L_ANGLE_BRACKET) ||                                \
+        (alpha_char == RMMI_CHAR_ULINE) ||                                    \
+         (alpha_char == RMMI_SPACE) ||                                        \
+           (alpha_char == RMMI_SEMICOLON) ||                                  \
+       (alpha_char == RMMI_R_ANGLE_BRACKET)                                   \
+     ) ? 1 : 0 )
+
+#define RMMI_IS_EXT_CHAR( alpha_char )                                                  \
+   (((alpha_char == RMMI_HAT)||(alpha_char == RMMI_CHAR_TILDE)||(alpha_char == RMMI_EURO)||\
+   (alpha_char == RMMI_L_SQ_BRACKET) || (alpha_char == RMMI_R_SQ_BRACKET) ||            \
+   (alpha_char == RMMI_L_CURLY_BRACKET) || (alpha_char == RMMI_R_CURLY_BRACKET) ||      \
+   (alpha_char == RMMI_CHAR_REVERSE_SOLIDUS) ||(alpha_char == RMMI_CHAR_VERTICAL_LINE)  \
+   ) ? 1 : 0 )
+
+
+#define RMMI_MAX_BIT_MASK_SIZE (RMMI_MAX_CHANNEL_NUMBER + 7) / 8
+#define RMMI_MAX_BIT_MASK_SIZE_CRLA ((MAX_SOURCE_NUM + 7) / 8)  /* refer to l4c total source id */
+
+//#if !defined(__MTK_TARGET__) && defined(__RMMI_UT__)
+//#define RMMI_UART_GetOwnerID(port) rmmi_current_mod_id
+//#endif
+
+
+typedef kal_bool(*UART_TRANS_FUNC_PTR) (kal_uint8);
+
+typedef kal_uint8  RMMI_UART_FLAG[RMMI_MAX_BIT_MASK_SIZE];
+
+
+typedef struct rmmi_single_cmd_struct
+{
+    kal_uint16 cmd_code;    /* rmmi_extended_cmd_id_enum */
+    kal_uint8 cmd_mode;     /* rmmi_cmd_mode_enum */
+} rmmi_single_cmd_struct;
+
+typedef struct basic_cmd_struct
+{
+    kal_uint8 cmd_code; /* rmmi_basic_cmd_id_enum */
+    kal_uint8 cmd_mode; /* rmmi_cmd_mode_enum */
+
+    kal_bool is_this_node_used;
+    kal_uint8 value;
+
+    struct basic_cmd_struct *next_ptr;
+} rmmi_multiple_basic_cmd_struct;
+
+typedef struct rmmi_cmd_struct
+{
+    kal_uint8 which_present;    /* rmmi_cmd_type_enum */
+
+    rmmi_single_cmd_struct single_cmd;
+    rmmi_multiple_basic_cmd_struct multiple_cmd;        //not used now
+} rmmi_cmd_struct;
+
+typedef struct
+{
+    kal_uint8 s0;   /* auto answer */
+    kal_uint8 s2;   /* escape character (+++) */
+    kal_uint8 s3;   /* CR 0x0d*/
+    kal_uint8 s4;   /* LF 0x0a*/
+    kal_uint8 s5;   /* backspace */
+    kal_uint8 s6;   /* pause before dialing */
+    kal_uint8 s7;   /* connect timeout */
+    kal_uint8 s8;   /* , pause time */
+    kal_uint8 s10;  /* disconnect timeout */
+    kal_uint8 s32;  /* XON character */
+    kal_uint8 s33;  /* XOFF character */
+    kal_uint8 s95;
+
+} rmmi_s_register_struct;
+
+typedef struct uart_queue_struct
+{
+    kal_uint16 head;
+    kal_uint16 length;
+    kal_uint8 data[MAX_DATA_QUEUE_LENGTH];
+
+} rmmi_uart_queue_struct;
+
+typedef struct
+{
+    kal_uint16 head;
+    kal_uint16 length;
+    kal_uint8 data[MAX_DATA_QUEUE_LENGTH];
+
+} rmmi_uart_output_queue_struct;
+
+typedef struct
+{
+
+    kal_bool sat_in_menu;
+    kal_bool sat_in_process;
+    kal_bool sat_normal_standby;
+    kal_bool sat_ready;
+    kal_uint8 sat_input_type;
+    kal_uint8 sat_input_reveal;
+    kal_uint8 sat_input_min_len;
+    kal_uint8 sat_input_max_len;
+    kal_bool sat_redial;
+    kal_bool sat_redial_count;
+    kal_uint32 sat_duration;
+
+} rmmi_SAT_info_struct;
+
+typedef struct rmmi_cind_struct
+{
+    kal_uint8 battchg;
+    kal_uint8 signal;
+    kal_uint8 service;
+    kal_uint8 message;
+    kal_uint8 call;
+    kal_uint8 roam;
+    kal_uint8 smsfull;
+    kal_uint8 callsetup;
+    kal_uint8 callheld; //for BT HF 1.5
+} rmmi_cind_struct;
+
+typedef struct rmmi_reg_state_struct
+{
+    kal_uint64 cell_id;     // for +CREG and +CGREG and +CEREG, high 16 bits for RNC id, low 16 bits for cell_id
+    kal_uint32 lac_or_tac_value;   // for +CREG and +CGREG and +CEREG
+    kal_uint8 rac_value;    // for +CGREG
+    kal_uint8 act;          //[MAUI_01360129]
+    kal_uint8 state;    //for +CREG and +CGREG and +CEREG
+    kal_uint8 cause_type;
+    kal_uint8 cause;
+    data_speed_support_enum cell_data_speed_support;
+
+    kal_uint8 plmn_id[MAX_PLMN_LEN+1];
+    kal_bool  is_hplmn;
+
+    kal_bool is_csg_cell;
+    csg_info_struct csg_info;
+    kal_uint8 csg_state;    //for +ECSG
+    kal_uint8 scell_number_dl;
+    kal_uint8 scell_number_ul;
+    kal_uint8 vgmm_allowed_nssai_length; /* Number of bytes in allowed NSSAI */
+    kal_uint8 vgmm_allowed_nssai[MAX_LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */
+} rmmi_reg_state_struct;
+
+#ifdef __TC01__
+typedef struct rmmi_report_reg_state_struct
+{
+    rmmi_reg_state_enum reg_state;
+    kal_uint16 lac_or_tac_value;
+    kal_uint32 cell_id;
+    kal_uint8 act;
+    kal_uint16 cause;
+    kal_uint8 rac;
+} rmmi_report_reg_state_struct;
+
+typedef struct rmmi_report_reg_to_ap_struct
+{
+    rmmi_report_reg_state_struct cs_reg_status;
+    rmmi_report_reg_state_struct ps_reg_status;
+    kal_bool report_creg;
+    kal_bool report_cgreg;
+} rmmi_report_reg_to_ap_struct; /* for reporing CREG/CGREG/CEREG reject cause to AP */
+#endif
+typedef struct rmmi_ims_reg_state_struct
+{
+    kal_uint8 reg_info;
+    kal_uint32 ext_info;
+} rmmi_ims_reg_state_struct;
+
+typedef struct
+{
+    l4c_phb_entry_struct entry;
+    l4c_number_struct num[3];
+    phb_sne_struct sne;
+    phb_email_struct email;
+} rmmi_phb_cpbw_struct;
+
+typedef struct rmmi_clip_info_struct
+{
+    kal_uint8 number[MAX_CC_ADDR_LEN];       //MAX_CC_ADDR_LEN
+    kal_uint8 type;
+    kal_uint8 subaddr[MAX_CC_SUB_ADDR_LEN];      //MAX_CC_SUB_ADDR_LEN
+    kal_uint8 satype;
+    kal_uint8 cli_validity;
+} rmmi_clip_info_struct;
+
+typedef struct rmmi_cnap_info_struct
+{
+    kal_uint8 valid;
+    kal_uint8 len;
+    kal_uint8 dcs;
+    kal_uint8 cni_validity;
+    kal_uint8 str[MAX_CHAR_CNAP * 2+1];
+} rmmi_cnap_info_struct;
+
+typedef struct rmmi_cbst_struct
+{
+    kal_uint8 speed;
+    kal_uint8 name;
+    kal_uint8 ce;
+} rmmi_cbst_struct;
+
+typedef struct rmmi_crlp_strnct
+{
+    kal_uint8 iws;
+    kal_uint8 mws;
+    kal_uint8 T1;
+    kal_uint8 N2;
+} rmmi_crlp_strnct;
+
+typedef struct rmmi_profile_struct
+{
+    rmmi_s_register_struct s_reg;
+    rmmi_cbst_struct rmmi_cbst;
+    rmmi_crlp_strnct rmmi_crlp;
+    kal_uint8 rmmi_ciwf;
+    kal_uint8 rmmi_atv;
+    kal_uint8 rmmi_ate;
+    kal_uint8 rmmi_atq;
+    kal_uint8 rmmi_atx;
+    kal_uint8 rmmi_atw;
+    kal_uint8 rmmi_atampC;
+    kal_uint8 rmmi_atampD;
+    kal_uint8 rmmi_atampK;
+} rmmi_profile_struct;
+
+typedef struct
+{
+   kal_uint8	reason;
+   kal_uint8	mode;
+   kal_uint8	timer;
+   l4c_number_struct    dest_buffer;
+   l4c_sub_addr_struct    sub_dest_buffer;
+   kal_bool     sub_addr_flag;
+} ccfc_req_param_struct; /* for remembering params of AT+CFCC */
+
+typedef struct
+{
+   kal_uint8	mode;
+} ccwa_req_param_struct; /* for remembering params of AT+CCWA */
+
+typedef struct
+{
+   kal_uint8	reason;
+   kal_uint8	mode;
+   kal_uint8 passwd[4];
+} clck_ss_req_param_struct; /* for remembering params of AT+CLCK */
+
+typedef struct rmmi_transfer_struct
+{
+    module_type dest_mod;
+    UART_PORT port;
+} rmmi_transfer_struct;
+
+typedef struct {
+    kal_bool utran_fdd;
+    kal_bool utran_tdd_lcr;
+    kal_bool eutran_fdd;
+    kal_bool eutran_tdd;
+    kal_bool nr_fdd;
+    kal_bool nr_tdd;
+    mode_switch_cause_enum  cause;
+} rmmi_ecsra_setting_struct;
+
+#ifdef __TC01__
+typedef struct {
+    kal_bool    is_excuted;
+    kal_bool    is_abnormal;
+    kal_uint16  usid[10];
+    kal_uint16  pid[10];
+    kal_uint16  mid[10];
+} rmmi_mipi_hw_info_ind_struct;
+#endif
+
+
+typedef struct rmmi_etwmode_setting_struct
+{
+    kal_uint8 lg_wg;
+} rmmi_etwmode_setting_struct;
+
+
+typedef struct rmmi_camped_cell_id_struct
+{
+    rat_enum rat;
+    rat_duplex_type_enum duplex_type;
+    plmn_id_struct plmn_id;
+    kal_uint8 la_code[2];
+    kal_uint8 ta_code[3];
+    kal_uint64 cell_id;
+} rmmi_camped_cell_id_struct;
+
+typedef struct rmmi_eind_invalid_sim_info_struct
+{
+	l4c_rac_response_enum prev_cs_status;
+    l4c_rac_gprs_status_enum prev_ps_status;
+	kal_uint8 prev_cause;
+	kal_uint8 prev_oper[MAX_PLMN_LEN+1];
+}rmmi_eind_invalid_sim_info_struct;
+
+typedef struct rmmi_ims_emergency_support_struct
+{
+    kal_uint8 rat_type;
+	kal_bool ims_emergency_support;
+} rmmi_ims_emergency_support_struct;
+
+typedef struct rmmi_rsp_mode_struct
+{
+    kal_uint8 echo_flag[RMMI_MAX_BIT_MASK_SIZE];        /* rmmi_cmd_echo_enum */
+    kal_uint8 suppress_flag;    /* rmmi_result_code_suppress_enum */
+    kal_uint8 format;           /* rmmi_result_code_format */
+    kal_uint8 ext_result_code;
+} rmmi_rsp_mode_struct;
+
+/* this structure is used to let custom config the rmmi default setting*/
+typedef struct{
+    rmmi_rsp_mode_struct rsp_mode;
+    kal_uint8 error_report_mode;        //  /* +CMEE <mode>: rmmi_error_report_mode_enum */
+    kal_uint8 char_set; //+CSCS
+    kal_uint8 plmn_format;
+    kal_uint8 cops_mode;
+    kal_uint8 CPOL_plmn_format;
+    kal_uint8 cmec_keyp;
+    kal_uint8 cmec_disp;
+    kal_uint8 cmec_ind;
+    kal_bool clae_mode; // we save clae mode in rmmi context
+    kal_bool csdh_show; //mtk00714: for +CSDH , hide/show detail Text mode parameters.
+    kal_uint8 cvhu_mode; //MAUI_02862643, mtk02285, support CVHU=1 to ignore ATH
+    rmmi_report_mode_struct report_mode;
+    rmmi_op01_report_mode_struct op01_report_mode;
+#ifdef __PLMN_LIST_WITH_LAC__
+    kal_bool list_plmn_with_lac; //print LAC for +COPS=? response
+#endif
+} rmmi_custom_context_struct;
+
+typedef struct
+{
+    ca_state_enum ca_state;
+	kal_uint8 pcell_bw;
+	kal_uint8 scell_bw[4];
+    kal_uint16  pcell_band;
+    kal_uint16  scell_band[4];
+} rmmi_ca_info_struct;
+#ifdef __RF_SCAN_FOR_DESENSE_TEST__
+typedef struct
+{
+    kal_uint8 src_id;
+    kal_uint8 rat_type;
+    kal_uint8 repeat_times;
+    kal_uint8 num_of_rssi_ind;
+    kal_int64 eRssi[2];
+} rmmi_rfscan_req_struct;
+#endif /*__RF_SCAN_FOR_DESENSE_TEST__*/
+
+typedef struct rmmi_nw_rej_cause_attemp_counter_struct
+{
+    mm_cause_enum mm_lu_rej_cause;
+    mm_cause_enum attach_rej_cause;
+    mm_cause_enum reg_update_rej_cause;  // the reject cause of gmm rau, emm tau, vgmm reg update
+    kal_uint8     mm_lu_attempt_counter;
+    kal_uint8     attach_attempt_counter;
+    kal_uint8     reg_update_attempt_counter;  // the attempt counter of gmm rau, emm tau, vgmm reg update
+    mm_cause_enum service_rej_cause;
+    kal_uint8 auth_rej_cause;
+    esm_cause_enum esm_rej_cause;
+    rmmi_proc_result_type_enum proc_result;
+    nas_proc_enum nas_proc;
+} rmmi_nw_rej_cause_attemp_counter_struct;
+
+#if defined(__CDMA2000_RAT__)
+
+typedef struct
+{
+    kal_bool     is_serving_cell;
+    kal_uint8    num_of_cell;   /* 1: serving cell, 0: no serving cell */
+    kal_uint16   nid;
+    kal_uint16   sid;
+    kal_uint16   bs_id;
+    kal_int32    bs_long;
+    kal_int32    bs_lat;
+    kal_int16    rssi_1xRTT;
+    kal_int16    ecio_1xRTT;
+    kal_uint8    rssi_EVDO;
+    kal_int16    ecio_EVDO;
+    kal_uint16   sinr_EVDO;
+} rmmi_c2k_cell_info_struct;
+
+#endif
+
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+#ifdef __MTK_TARGET__
+PRAGMA_BEGIN_PACK_STRUCT
+#endif
+typedef struct
+{
+    kal_uint8 simid;
+    kal_uint8 rat;
+    kal_uint8 num_of_arfcn; /* MAX supported is 8*/
+    //kal_uint8 reserved; /* For 4 byte allignment*/
+    kal_uint32 arfcn[L4C_MAX_ARFCN_SUPPORTED];
+    kal_uint16 band[L4C_MAX_ARFCN_SUPPORTED];
+    kal_uint8 is_connected;
+    kal_uint8 is_main_sim;
+} rmmi_camera_arfcn_info_struct;
+#ifdef __MTK_TARGET__
+PRAGMA_END_PACK_STRUCT
+#endif
+#endif
+
+#ifdef __EPSFB_SUPPORT__
+typedef struct
+{
+	call_status_enum call_status;
+    rmmi_epsfb_state_enum state;
+	rmmi_epsfb_type_enum type;
+} rmmi_epsfb_info_struct;
+#endif
+
+typedef struct
+{
+    kal_uint8 mcc[4];
+    kal_uint8 mnc[4];
+    rat_enum rat;
+} rmmi_eopsu_info_struct;
+
+typedef struct
+{
+    l4c_data_speed_support_enum eAct;
+    kal_uint16                  rlc_latency_in_ms;
+} rmmi_latency_info_struct;
+
+typedef struct
+{
+    kal_bool display_5guw;
+    kal_bool on_n77_band;
+    kal_bool on_fr2_band;
+    kal_bool is_5guw_allowed;
+} rmmi_e5guw_info_struct;
+
+typedef struct rmmi_common_context_struct
+{
+#if 0 //#ifdef __CMUX_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+#endif /* __CMUX_SUPPORT__ */
+
+#ifdef __BT_SUPPORT__
+    kal_uint8 rmmi_hf_src;
+    kal_bool hf_urc_report_flag;
+#endif
+
+    RMMI_UART_FLAG isAtdAction_flag; /* mtk00714 20040412 : remember ATD this action after setup_cnf */
+    RMMI_UART_FLAG isAtdAbort_flag;  /* mtk01616 070323 to know it's a Atd abort by any character  */
+
+#if defined(__CMUX_MODEM_STATUS_SUPPORT__)
+    RMMI_UART_FLAG isDSRAbort_flag;
+#endif
+
+#ifdef SYNCML_DM_SUPPORT
+    kal_bool lock_atci;
+#endif
+#if defined(__GEMINI__)
+    rmmi_sim_uart_setting_enum sim_uart_setting;
+    sim_interface_enum rmmi_uart_owner[RMMI_MAX_CHANNEL_NUMBER];
+#endif
+    RMMI_UART_FLAG uart_plugout;
+    RMMI_UART_FLAG uart_stop_send_flag;
+    RMMI_UART_FLAG is_multi_cmd;
+    RMMI_UART_FLAG multi_cmd_error;  // this flag using to verify if error occur , we should abort command processor
+    RMMI_UART_FLAG is_sms_cmd;       //using to cehck string is sms command and send " > " to DTE
+
+    kal_uint8 source[RMMI_MAX_CHANNEL_NUMBER];
+    kal_uint8 port[RMMI_MAX_CHANNEL_NUMBER];
+    kal_uint8 uart_port_value; /* this value store the default value form NVRAM */
+    rmmi_transfer_struct transfer;
+
+    // TODO: reduce uart input/output queue size, only keeps for agps and SCP port
+    rmmi_uart_queue_struct uart_input_queue[RMMI_CHANEEL_ID_MAX];
+    rmmi_uart_queue_struct uart_output_queue[RMMI_CHANEEL_ID_MAX];
+    kal_uint8 multi_cmd_string[RMMI_MAX_CHANNEL_NUMBER][MAX_MULTIPLE_CMD_INFO_LEN];
+
+#ifdef __TC01__
+    kal_uint8 gkpd_flag;
+    kal_uint8 gkpd_buffer[20];
+    kal_uint16 gkpd_count;
+    kal_uint8 *gkpd_windex;
+    kal_uint8 *gkpd_rindex;
+    kal_uint32 gkpd_current_rindex;
+    kal_uint16 gkpd_rindex_count;
+    kal_uint8 mpt_flag;
+#endif
+
+    kal_uint8 etstlp_port[2]; //for tst_port_ps and tst_port_l1
+
+    kal_uint8 gsm_tx_pwr_reduction_tbl[4][2][4];
+    kal_uint8 umts_tx_pwr_reduction_tbl[20][2];
+
+    kal_uint8 gsm_tx_pwr_reduction_tbl_tas[4][2][4];
+    kal_uint8 umts_tx_pwr_reduction_tbl_tas[20][2];
+
+    kal_uint8 is_rrm_test; // work around for RRM test, EMM need special power off without sending detach
+
+#ifndef __MTK_TARGET__
+    kal_uint8 ut_uart_input[MAX_UT_UART_LENGTH];
+    kal_uint16 ut_uart_input_len;
+#endif
+    kal_uint8 rms_state;
+
+    kal_uint8 is_dongle_mode;
+
+#ifdef __TC10__ // CCLK
+    rmmi_nitz_time_struct nitz_time;
+#endif
+
+} rmmi_common_context_struct;
+
+typedef struct rmmi_context_struct
+{
+/*************************************************************************/
+/* Below context are placed in the front of RMMI context                 */
+/* to increase immediate offset access , to reduce ROM size              */
+/* Please KEEP the position for the following frequent used variables    */
+/*************************************************************************/
+    kal_uint8 current_src;
+
+    kal_uint8 char_set; //+CSCS
+    kal_bool is_ucm_action;
+    kal_uint16 cmee_err;        // error value for +CME:<err>
+    kal_bool uart_in_data_mode;
+    kal_uint8 online_cmd_state;
+
+    kal_bool ats0_auto_answer;  //mtk01616_070707 add this to prevent print OK for auto answer
+#ifdef __UCM_SUPPORT__
+    kal_bool is_ata_action;     //mtk01616_070707 add this to handle ATA result code
+    kal_bool is_compound_action; //MAUI_02016224
+#endif
+
+    /* use to check if sim verified */
+    kal_bool command_allow;     // using to keep if password required, only some AT command can access when pin puk or ph_sim pending
+    kal_uint16 cmd_error_cause; // SMU saves command not allow cause for +cme error value to TA
+
+    rmmi_s_register_struct s_reg;
+    void *arg_list[RMMI_MAX_ARG_NUM];
+
+    rmmi_rsp_mode_struct rsp_mode;
+    rmmi_cind_struct indicators;        // for +CIND and +CMER
+    rmmi_report_mode_struct report_mode;
+    rmmi_reg_state_struct cs_register_status; //registration status for +CREG
+#ifdef __MOD_TCM__
+    rmmi_reg_state_struct ps_register_status; //registration status for +CGREG
+    l4c_data_bearer_capablility_enum psbearer_param2; //the last reported <bearer_capability> in +PSBEARER
+    kal_bool l4c_ps_is_sent_to_current_src ; // If KAL_FALSE, send MSG to URC channel
+    kal_uint8 l4c_ps_embed_msg_src;
+#endif
+
+    rmmi_eopsu_info_struct eopsu_info;
+    rmmi_latency_info_struct latency_info;
+	rmmi_e5guw_info_struct e5guw_info;
+
+#ifdef __L4C_GPRS_UT__
+    ps_cause_enum cause;
+#endif
+
+    rmmi_ecc_number_list_struct ecc_number; /* to store ECC number from network, related to +CEN */
+
+/***********************************************************************/
+/* Above context are placed in the front of L4C context                */
+/* to increase immediate offset access , to reduce ROM size            */
+/* Please try to KEEP the position for these frequent used variables   */
+/***********************************************************************/
+
+//#ifdef __IMS_SUPPORT__
+    rmmi_ims_reg_state_struct ims_register_status;
+    kal_uint8 imsvops_indication; // IMS Voice over PS session indication
+    kal_uint8 emb_Iu_supp; // Emergency bearer services support indicator for Iu mode
+    kal_uint8 emb_S1_supp; // Emergency bearer services support indicator for S1 mode
+//#endif
+
+    /* settings */
+    kal_uint8 em_enable;        //mtk00468 add for using to keep the em enable or disable engineer mode information
+    kal_uint8 date_aux_mode;    // this variable using for +CSDF to keep in local
+    kal_uint8 cring_type;       //mtk00714 add for +CRC (remember cring_type for rmmi_ring_repeat_hdlr)
+    kal_uint8 error_report_mode;        //  /* +CMEE <mode>: rmmi_error_report_mode_enum */
+    kal_uint8 plmn_format;
+    kal_uint8 last_plmn_format; /* be used to restore format if AT+COPS return error */
+#ifdef __PLMN_LIST_WITH_LAC__
+    kal_bool list_plmn_with_lac; //print LAC for +COPS=? response
+#endif
+    kal_uint8 cops_mode;
+    kal_uint8 cops_rat_mode;
+    endc_search_enum cops_endc_search_mode;
+    kal_uint8 CPOL_plmn_format;
+    kal_uint8 smsal_bfr;                    /* +CNMI : <bfr> */
+    kal_uint8 CNMI_mode;        // +CNMI: <mode>: result code mode
+    //kal_uint16 max_plmn_list_len;       //+CPOL ?
+    kal_bool cb_mode;
+    kal_bool csdh_show; //mtk00714: for +CSDH , hide/show detail Text mode parameters.
+    kal_bool clae_mode; // we save clae mode in rmmi context
+    kal_bool cmut_mode; // we save clae mode in rmmi context
+    kal_uint8 preferred_lang;
+    kal_uint8 ring_count;       // for ATS0
+    rmmi_clip_info_struct clip_info;
+    rmmi_cnap_info_struct cnap_info;
+    kal_uint8 casp_soundID;     //for +CASP proprietary command , timeout hdlr parameter.
+    //kal_bool is_gprs_data_dialing;  /* ATH is not allowed to hangup existed voice call after dialup failed */ //mtk02285, 201003, 6251_ram
+#ifdef __MOD_TCM__
+    kal_uint8 cgatt_last_action;    /* mtk00714 20040611 add to avoid continuos at+cgatt=0 or at+cgatt=1 */
+#endif //mtk02285, 201003, 6251_ram
+    kal_uint16 cpbr_range[2];
+    kal_uint16 phb_del_index;
+    kal_uint8 phb_del_storage;
+    kal_uint8 cpbr_ln_base_index;
+
+    kal_uint8 ecpbr_num_index;
+    kal_uint8 ecpbr_entry_found;
+    l4_name_struct ecpbr_alphaId;
+
+    kal_uint8 ecpbw_num_index;
+    kal_uint8 ecpbw_email_write;
+    kal_uint16 ecpbw_record_index;
+    kal_uint8 ecpbw_is_delete;
+    rmmi_phb_cpbw_struct *ecpbw_entry_ptr;
+
+    rmmi_op01_report_mode_struct op01_report_mode;
+
+    kal_bool is_cpbw_phb_fdn;
+
+	l4c_source_id_enum online_cmd_state_src_id; //MAUI_01652672, mtk02285, 20090324
+
+#ifdef __IRDA_SUPPORT__
+    //kal_uint8 ppp_nsapi; //mtk02285, 201003, 6251_ram
+#endif
+
+#ifdef __SAT__
+    kal_bool sat_icon_displayed;        //mtk00924: display icon for STK SMS, SS, USSD, DTMF
+#endif
+
+    kal_uint8 except_src;       //for unsolicited code, but don't send it to this src. ex. MT data call, don't send RING to bt hs
+    kal_uint8 imei_action;      //rmmi_imei_action_enum
+    kal_uint8 rmmi_atd_mem;      //mtk01616_090116 :rmmi_mem_dial_enum
+    kal_uint16 action_cmd;      //rmmi_extended_cmd_id_enum
+#ifdef __BT_SUPPORT__
+    kal_uint8 last_reported_ciev_signal; //hong_rx_level
+    kal_bool send_ciev_callheld; //mtk01616_090923: explictly to send +CIEV:<callheld> even the status is not changed
+#endif
+    kal_uint8 ath_for_dialup;   //mtk01616_080923: ATH is for dialup failure, we use this to  prevent ATH to disconnect call
+    kal_uint8 last_number_dialed[MAX_CC_ADDR_LEN];//atdL last number dialed
+
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+#endif
+
+    kal_uint8 em_volume_level;
+    kal_uint8 em_volume_type;
+    kal_uint8 em_audio_type;
+    kal_uint8 em_audio_gain;
+    kal_uint8 em_audio_mode;
+    kal_uint8 em_eadp_action;
+
+    /* Context for AT+EAPS */
+    kal_uint8 eaps_action;
+    kal_uint8 eaps_para1;
+    kal_uint8 eaps_para2;
+    kal_uint8 eaps_para3;
+    void* eaps_audio_param;
+
+#ifdef __VOIP__
+    kal_bool cm_cmd_approve;    //Send Call Management command to MMI to get approval
+    void *string_ptr;
+    void *node_ptr;
+    void *id;
+#endif /* __VOIP__ */
+    kal_uint8 poweroff_src_id;
+    kal_uint8 is_spn_valid;
+    kal_uint8 spn[LEN_OF_SPN];
+
+    kal_uint32 eind_ready_flag;
+    kal_uint8 vgr_gain;
+    kal_uint8 vgt_gain;
+
+    kal_uint16 last_executed_P2_fail; //[MAUI_01292349] mtk02480l 27.007: +CPIN? return  PIN2/PUK2 if previous command execured authentication failure, i.e. cmee_err= 17/18
+
+#if defined(__MODEM_EM_MODE__)
+    kal_uint8 em_src_id;  // used to remember EM request src_id
+#endif
+
+    #ifdef __GATI_ENABLE__
+    gati_mod_src_struct gati_mod_src_table[GATI_MAX_MODULE_COUNT];	/* The table which record the relation of module to src_id and its control status */
+    kal_uint8 gati_binary_mode_module[MAX_SOURCE_NUM];	/* The module id that active the binary mode for specific source id */
+    kal_uint32 gati_stop_read_data_from_uart;						/* The bit map to specify which src_id is now stop receiving data from the UART */
+    kal_uint32 gati_pending_rtr_ind;								/* The bit map to specify if there are rtr indication from the UART during the ATCI stop receiving data from the UART */
+    gati_buffer_struct	gati_buffer;										/* The buffer will be used when the mode is in the binary mode and there is some data from other module which does not active the binary mode. */
+    kal_uint8 gati_buffer_count;
+    /* The following variables are temp ones used to transmit informations between functions */
+    kal_bool	gati_write_allow_flag;					/* This flag is used to allow the writing action for the owner of the binary mode */
+    kal_uint16 gati_actual_write;						/* This variable is used to get the actual write size to the output queue in the rmmi_uart_write_data */
+    kal_uint8 gati_data_type;							/* This variable is used to know if the data type is integrity or not */
+    #endif
+
+    kal_uint8 cmec_keyp;
+    kal_uint8 cmec_disp;
+    kal_uint8 cmec_ind;
+
+    l4c_nbr_cell_info_ind_struct nbr_info;
+    l4c_endc_nbr_cell_info_struct endc_nbr_cell_info;
+
+    kal_uint8 is_emgr;
+
+#if !defined(__SLIM_AT__)
+   kal_uint8   ccfc_combi_classx; //original <classx> given by AT+CFCC
+							// each bit is for each classx. (TS or BS)
+							 // 1: we need to make req for this bs_code / 0: ignored
+							 //use bit operation
+   kal_uint8   ccfc_current_class; //the class of current req
+   ccfc_req_param_struct ccfc_req_param;  //stores other req parameter information
+   kal_bool	ccfc_result;
+
+   kal_uint8   clck_ss_combi_classx; //original <classx> given by AT+CLCK
+							// each bit is for each classx. (TS or BS)
+							 // 1: we need to make req for this bs_code / 0: ignored
+							 //use bit operation
+   kal_uint8   clck_ss_current_class; //the class of current req
+   clck_ss_req_param_struct clck_ss_req_param;  //stores other req parameter information
+   kal_bool	clck_ss_result;
+   smu_security_type_enum clck_sml_type; //for at+clck to query SML status
+#endif
+
+   kal_uint8   ccwa_combi_classx; //original <classx> given by AT+CCWA
+							// each bit is for each classx. (TS or BS)
+							 // 1: we need to make req for this bs_code / 0: ignored
+							 //use bit operation
+   kal_uint8   ccwa_current_class; //the class of current req
+   ccwa_req_param_struct ccwa_req_param;  //stores other req parameter information
+   kal_bool	ccwa_result;
+   kal_uint8 cvhu_mode; //MAUI_02862643, mtk02285, support CVHU=1 to ignore ATH
+
+#if !defined(__ULC_AT__)
+    rmmi_profile_struct rmmi_default_profile;
+    rmmi_profile_struct rmmi_user_profile;
+    rmmi_profile_struct rmmi_current_profile;
+#endif
+
+    rmmi_uart_queue_struct CNMI_ResultCodeBuffer;       //for +CNMI, SMSAL_ONE_MSG_LEN = 160
+    kal_uint8 cmd_mode;
+    kal_uint8 cpbf_findtext[30];
+
+#ifdef __SAT__
+#ifdef __SATCB__
+    rmmi_uart_queue_struct sat_output_queue;    //mtk00714 add for SAT using
+    kal_bool IsSATcommand;      //check if SATCommand
+    kal_bool IsSATresponse;     //use to check if SAT response
+    void *SAT_rsp_ptr;
+#endif
+#endif /* __SAT__ */
+
+#ifdef __CMUX_SUPPORT__
+    kal_uint8 rmmi_data_channel_src;
+    kal_uint8 rmmi_urc_channel_src;
+    kal_uint8 rmmi_urc_2_channel_src;
+#ifdef __TC01_IMS_SUPPORT__
+	kal_uint8 rmmi_urc_3_channel_src;
+#endif
+#endif
+
+#if defined(__AT_IPR_WRITE_FS_SUPPORT__)
+   kal_uint32 atipr_rate;
+#endif
+
+    kal_uint8 csp_plmn_mode;
+
+#if defined(__MESSAGE_BASED_AT_SUPPORT__)
+    kal_bool msg_based_at_enable;
+#endif
+
+    kal_uint8 ats0_src_id; //MAUI_02743662 for saving ATS0 auto answer source id
+
+    kal_uint8 cpls_selected;
+
+#if 0 //move to ATP
+#if defined(__DUAL_TALK_MODEM_SUPPORT__)
+/* under construction !*/
+#endif
+#endif
+
+#if defined(__SYSSEL_SUPPORT__)
+    kal_uint8 syssel_band;
+#endif
+
+#ifdef __ACMT_SUPPORT__
+    kal_uint8 eacmt_mode;
+#endif
+
+#if defined(__REPORT_AVAILABLE_PLMN__)
+    kal_uint8 ecops_mode;
+#endif
+
+#if defined(__2STAGE_NW_SELECTION__)
+    kal_uint8 emsr_mode;
+#endif
+
+    kal_uint8 is_crla[RMMI_MAX_BIT_MASK_SIZE_CRLA];
+
+#ifndef __UCM_SUPPORT__
+    /* This flag is to indicate ATH is redirected to l4c_cc_exe_chld_req()
+     * The response is printed in l4c_cc_exe_chld_req() or after CRSS_CNF
+     * So rmmi_basic_cmd_processor() shall not print again.
+     * Please refer to ALPS00649564.
+     */
+    kal_uint8 ath_to_chld;
+#endif
+
+//move to ATP_IO    module_type tst_inject_mod;  // To record which module sent the tst_inject_string
+
+#if 0 //#ifdef __IMS_SUPPORT__
+/* under construction !*/
+#endif
+
+#if defined(__CDMA2000_RAT__)
+
+    kal_uint8 emdstatus_md_config;
+    kal_uint8 emdstatus_sim_config;
+    kal_uint8 emdstatus_fv;         // flow version
+    kal_uint8 emdstatus_srcid;
+    rmmi_c2k_cell_info_struct c2k_cell_info;
+	kal_bool enable_c2k_ecell;
+#endif
+#if defined(__REPORT_AVAILABLE_PLMN__)
+    kal_uint8 number_of_available_plmn_id;
+    kal_uint8 available_plmn_id[MAX_PLMN_LIST_LEN][MAX_PLMN_NUMERIC_NAME_LEN];
+#endif
+
+    kal_bool  data_enabled_setting; // set to 1 if data is enabled in AP
+    kal_bool  data_roaming_setting; // set to 1 if data roaming is enabled in AP
+    /* context used for +ECSRA */
+    rmmi_ecsra_setting_struct last_ecsra;
+
+    /* context used for +CSCON */
+	rmmi_cscon_mode_enum cscon_mode[4];
+	rmmi_cscon_state_enum cscon_state[4];
+	rmmi_cscon_access_enum cscon_access[4];
+	rmmi_cscon_core_network_enum cscon_core_network[4]; // only use array element 2 and 3 for LTE and NR
+	kal_uint8 cscon_latest_rat_index;
+
+
+#ifdef __HIF_CCISM_SCP_SUPPORT__
+    kal_uint32 scp_prev_cell_id;
+    kal_uint16 scp_prev_cell_rssi;
+#endif
+    signal_modulation_enum modulation;
+    rmmi_camped_cell_id_struct camped_cell_id_info;  //for +ECMPCID
+
+    /* context for +EUEDRX */
+    kal_uint16 drx_value;
+
+    /* context for +EC2KCELL */
+    irat_ps_type_enum access_type;
+    kal_uint16 sid;
+    kal_uint16 nid;
+    kal_uint8 pzid;
+    kal_uint16 base_id;
+    kal_uint32 sector_id[4];
+    kal_uint8 subnet_length;
+    kal_uint8 carrier_id[7];
+#ifdef __CSG_SUPPORT__
+    kal_uint8 hnb_name[MAX_HNB_NAME_LEN*2+1];
+    kal_uint8 hnb_name_length;
+#endif
+#ifdef __TC01__
+	kal_uint8 rssi_ind_src_id;
+#endif
+
+    /* context for +ERAT */
+    kal_uint8 erat_lock;
+    kal_uint8 is_no_saved; // while it is ture, the rat mode will no be saved to NVRAM.
+
+    kal_bool is_ssac_barring_for_voice;
+    kal_uint8 evzwapfcia_mode;
+#if defined(__GEMINI__) || defined(__L4C_GPRS_UT__)
+    kal_uint8 edallow_mode;
+#endif
+    kal_uint8 is_vops_supported;  // init value should be 0xff
+
+    plmn_id_rat_struct saved_plmn_for_volte_hys;
+
+    kal_bool is_registered_on_eHRPD;
+    rat_enum eimsps_rat;
+    kal_uint8 eimsps_type;
+    rmmi_eind_invalid_sim_info_struct eind_invalid_sim_info;
+
+    rmmi_etwmode_setting_struct etwmode_setting;
+
+    kal_uint8 enwbdinfo_mode;
+    kal_uint16 lte_bandwidthInfo;
+
+    kal_uint8 scell_number_dl;
+    /* context used for +EAPC */
+    kal_uint8 current_apc_feature_type;
+    kal_bool current_report_mode;
+    kal_uint16  current_report_period;
+    kal_uint8 new_apc_feature_type;
+    kal_bool new_report_mode;
+    kal_uint16  new_report_period;
+    kal_uint8 scell_number_ul;
+    kal_uint8 ps_conn_status;
+    kal_uint16 pcell_band; // for +EPCELLINFO
+
+    gprs_traffic_channel_status_enum gprs_traffic_channel_status;
+
+#ifdef __IMS_SUPPORT__
+	rmmi_ims_emergency_support_struct eimsess_info;
+#endif
+
+    rmmi_ca_info_struct ecainfo; // for +ECAINFO URC
+    kal_uint8 ctmcall_mode;
+
+    kal_bool enable_ecell_ext3_ext4;
+    kal_bool enable_ecell_ssbid_info;
+
+    kal_uint8 emro_lte_game_ho;
+
+    kal_uint8 is_dsda_allowed;
+
+    kal_uint8 cirepi_ind;
+    kal_uint8 cnems1_ind;
+    kal_uint8 cnemiu_ind;
+#ifdef __RF_SCAN_FOR_DESENSE_TEST__
+    rmmi_rfscan_req_struct rfscan_req; // for +ERFSCAN RSSI URC
+#endif /*__RF_SCAN_FOR_DESENSE_TEST__*/
+
+    kal_int16 sar_scenario_index;
+    kal_int16 dat_scenario_index;
+    kal_int16 sar_operator_index;
+#ifdef __EPSFB_SUPPORT__
+	rmmi_epsfb_info_struct epsfb_info;
+#endif
+#if defined(__TC01__) && defined(__RMMI_EXTEND_CUSTOM_CMD__)
+	kal_uint8 cust_cmd_src_id;
+#endif
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+    rmmi_camera_arfcn_info_struct last_reported_arfcn;
+#endif
+
+#ifdef __TC01__
+    rmmi_report_reg_to_ap_struct report_reg_state;
+    kal_uint8 ltecall_flag; /* at%ltecall */
+#endif
+
+#ifdef __TC01_CALIBRATION__
+    /* MUSE - ALPS01539170 */
+    /* Check the flag for calibration verification to prevent */
+    /* frequent access to NVRAM when the user input AT%CALDT  */
+    kal_uint8 caldt_check;
+#endif
+
+#if defined(__TC01__) && defined(__SIM_HOT_SWAP_SUPPORT__)
+    kal_bool sim_replaced; // to indicate SIM is replaced for hot swap
+    kal_bool sim_plugout;
+    kal_bool sim_first_inserted;
+    kal_bool sim_mapping_happened;
+#endif
+
+#ifdef __TC01__ /* for +ESIMCEP */
+    kal_uint8 mnc_length;
+    kal_bool is_valid_gid1;
+    kal_uint8 number_of_gid1;
+    kal_uint8 gid1[20];
+    kal_bool is_valid_gid2;
+    kal_uint8 number_of_gid2;
+    kal_uint8 gid2[20];
+#endif
+
+#if defined(__TC01__)
+    /*ALPS03746765 & ALPS03743116*/
+    kal_uint8 sim_status_ind;
+#endif
+
+#ifdef __TC01__
+    rmmi_mipi_hw_info_ind_struct mipi_result;
+#endif
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+    kal_uint8 switch_on;
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#ifdef __SAR_SENSOR_TX_DETECTION_SUPPORT__
+    /* TX Power Reduction*/
+    kal_uint8 sar_tx_power_red_event;
+    kal_int16 sar_scenario;
+#endif /* __SAR_SENSOR_TX_DETECTION_SUPPORT__ */
+	kal_uint8 channel_lock_mode;
+
+    rmmi_nw_rej_cause_attemp_counter_struct nw_rej_cause_attemp_counter;
+
+    /* network pyhsical configuration info*/
+    kal_bool dl256qam_configured;
+    kal_bool mimo_fourlayer_configured;
+
+    kal_uint8 *ecpbw_string_ptr;
+    kal_uint16 ecpbw_string_index;
+
+    kal_uint8 csg_list_mode;
+
+	kal_uint32 rmmi_current_operator;
+
+    kal_bool standard_cscon_support;
+
+    kal_uint8 is_acb_skip_for_mmtel_voice;
+    kal_bool is_acb_skip_for_mmtel_video;
+
+} rmmi_context_struct;
+
+typedef struct rmmi_string_struct
+{
+    kal_uint16 index;
+    kal_uint8 *string_ptr;
+    kal_uint8 *ip_string;
+    l4c_source_id_enum src_id;  // DEREK
+    kal_uint8 cmd_mode;
+    kal_uint8 cmd_class;
+    kal_uint16 cmd_index;       //rmmi_extended_cmd_id_enum
+    kal_uint16 cmd_row_index;
+    rmmi_extend_symbol_hash_enum symbol_hash;
+} rmmi_string_struct;
+
+#ifdef __SAT__
+
+typedef enum
+{
+    RMMI_TIM_MOD_NONE,
+    RMMI_TIM_MOD_SAT_DSPL_TEXT,
+    RMMI_TIM_MOD_SAT_PLAY_TONE,
+    RMMI_TIM_MOD_SAT_REDIAL,
+    RMMI_TIM_MOD_SAT_NOTICE,
+    RMMI_TIM_MOD_SAT_MMI_INFO,
+    RMMI_NUM_OF_TIMER_MOD
+}
+rmmi_timer_mod_enum;
+
+typedef struct
+{
+    eventid timer_id;
+    kal_uint8 time;
+    kal_bool timer_on;
+} rmmi_sat_timer_struct;
+
+/* SAT */
+#define SAT_SIG_SETUP_MENU_SHOW          70
+#define SAT_SIG_SELECT_ITEM_SHOW          71
+#define SAT_SIG_DSPL_TXT_SHOW             72
+#define SAT_SIG_GET_INKEY_SHOW            73
+#define SAT_SIG_GET_INPUT_SHOW            74
+#define SAT_SIG_PLAY_TONE_SHOW            75
+#define SAT_SIG_SETUP_CALL_SHOW           76
+//#define SAT_SIG_SETUP_CALL_REQ_SHOW      77
+//#define SAT_SIG_SETUP_CALL_RES_SHOW      78
+//#define SAT_SIG_REDIAL_SHOW                79
+#define SAT_SIG_SEND_SMS_SHOW            80
+#define SAT_SIG_SEND_SS_SHOW              81
+#define SAT_SIG_SEND_USSD_SHOW           82
+#define SAT_SIG_MMI_INFO_SHOW             83
+//#define SAT_SIG_NOTICE_SHOW                85
+
+#define RMMI_SAT_SIG_SETUP_CALL_REQ          16
+#define RMMI_SAT_SIG_SEND_SS_REQ             17
+#define RMMI_SAT_SIG_SEND_USSD_REQ           18
+#define RMMI_SAT_SIG_SEND_SMS_REQ            19
+#define RMMI_SAT_SIG_PLAY_TONE_RES           32
+#define RMMI_SAT_SIG_DSPL_TEXT_RES           33
+#define RMMI_SAT_SIG_GET_INKEY_RES           34
+#define RMMI_SAT_SIG_GET_INPUT_RES           35
+#define RMMI_SAT_SIG_SELECT_ITEM_RES         36
+#define RMMI_SAT_SIG_MENU_SELECT_REQ         37
+#define RMMI_SAT_SIG_START_SAT               80
+#define RMMI_SAT_SIG_SETUP_CALL_REDIAL       88
+
+typedef struct
+{
+    kal_uint8 item_len;
+    kal_uint8 item_dcs;
+    kal_uint8 item_id;
+    kal_uint8 *item_data;
+}
+rmmi_sat_menu_item_struct;
+
+typedef struct
+{
+    kal_uint8 is_help_info_available;
+    kal_uint8 cmd_detail[5];
+    kal_uint8 alpha_id_len;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+    kal_uint8 num_of_item;
+    rmmi_sat_menu_item_struct *menu_items;
+}
+rmmi_sat_main_menu_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 is_item_id_available;
+    kal_uint8 item_id;
+    kal_uint8 alpha_id_len;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+    kal_uint8 num_of_item;
+    rmmi_sat_menu_item_struct *menu_items;
+}
+rmmi_sat_sub_menu_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 priority;
+    kal_uint8 clear_text_type;
+    kal_uint8 immediate_res;
+    kal_uint16 no_text_string;
+    kal_uint8 *text_string;
+    kal_uint8 dcs_of_text_string;
+}
+rmmi_sat_dspl_text_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 type_of_input;
+    kal_uint16 no_text_string;
+    kal_uint8 *text_string;
+    kal_uint8 dcs_of_text_string;
+}
+rmmi_sat_get_inkey_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_help_info_available;
+    kal_uint8 type_of_input;
+    kal_uint8 is_input_revealed_to_user;
+    kal_uint8 len_of_min_input;
+    kal_uint8 len_of_max_input;
+
+    kal_uint16 no_text_string;
+    kal_uint8 *text_string;
+    kal_uint8 dcs_of_text_string;
+    kal_uint16 no_default_text;
+    kal_uint8 *default_text;
+    kal_uint8 dcs_of_default_text;
+}
+rmmi_sat_get_input_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 tone_id;
+    kal_uint32 duration;
+    kal_uint8 no_alpha_id;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+
+}
+rmmi_sat_play_tone_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 mmi_info_type;
+    kal_uint8 no_alpha_id;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+}
+rmmi_sat_mmi_info_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 condition;
+    kal_uint32 duration;
+
+    kal_uint8 no_alpha_id1;
+    kal_uint8 *alpha_id1;
+    kal_uint8 dcs_of_alpha_id1;
+    kal_uint8 no_alpha_id2;
+    kal_uint8 *alpha_id2;
+    kal_uint8 dcs_of_alpha_id2;
+
+    kal_uint8 size_of_ccp;
+    kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+    kal_uint8 size_of_subaddr;
+    kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
+
+    kal_uint8 no_addr;
+    kal_uint8 *addr;
+}
+rmmi_sat_setup_call_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 is_sms_packed_required;
+    kal_uint8 size_of_addr;
+    kal_uint8 addr[MAX_SIM_ADDR_LEN];		//mtk02514_081216
+    kal_uint8 no_alpha_id;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+    kal_uint8 no_sms_tpdu;
+    kal_uint8 *sms_tpdu;
+}
+rmmi_sat_send_sms_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 no_alpha_id;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+    kal_uint8 no_ss_string;
+    kal_uint8 *ss_string;
+}
+rmmi_sat_send_ss_struct;
+
+typedef struct
+{
+    kal_uint8 cmd_detail[5];
+    kal_uint8 no_alpha_id;
+    kal_uint8 *alpha_id;
+    kal_uint8 dcs_of_alpha_id;
+    kal_uint8 no_ussd_string;
+    kal_uint8 *ussd_string;
+    kal_uint8 dcs_of_ussd_string;
+}
+rmmi_sat_send_ussd_struct;
+
+/* TYPES */
+
+typedef enum
+{
+    RMMI_VTS_SPEECH_IN = 0,
+    RMMI_VTS_SPEECH_OUT = 1,
+    RMMI_VTS_KEY_BEEP = 2,
+    RMMI_VTS_DTMF_TONE = 3,
+    RMMI_VTS_RINGER = 4,
+    RMMI_VTS_MEDIA = 5,
+    RMMI_NUM_OF_VTS_TYPE
+}
+rmmi_vts_type_enum;
+
+typedef enum
+{
+    RMMI_VTS_PLAY_CRESCENDO = 0,    /* Play sound for crescendo. */
+    RMMI_VTS_PLAY_INFINITE = 1,     /* Play sound for infinite. */
+    RMMI_VTS_PLAY_ONCE = 2,         /* Play sound for once. */
+    RMMI_VTS_PLAY_DESCENDO = 3,     /* Play sound for descendo. */
+    RMMI_VTS_PLAY_OFF = 4,          /* stop sound */
+    RMMI_NUM_OF_VTS_PLAY_MODE
+}
+rmmi_vts_play_mode_enum;
+
+#endif /* __SAT__ */
+
+typedef struct
+{
+    kal_uint8 err_string[RMMI_MAX_ERR_STR_LEN];
+} rmmi_error_msg_struct;
+
+//RMMI_UT ---
+#define ATCI_MAX_UT_IO_LENGTH 1024
+#define ATCI_MAX_UT_CMD_STRING_LENGTH 100
+#define ATCI_MAX_UT_AT_PARAMETER_NUMBER 20
+#define ATCI_MAX_UT_AT_PARAMETER_STRING_LENGTH 100
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+	kal_uint8 port;
+    kal_uint8 string[ATCI_MAX_UT_IO_LENGTH];
+	kal_bool stuff;
+} atci_ut_rmmi_input_string_struct; // MSG_ID_ATCI_UT_RMMI_INPUT_STRING
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+	kal_uint8 port;
+    kal_uint8 string[ATCI_MAX_UT_IO_LENGTH];
+	kal_bool stuff;
+} atci_ut_rmmi_output_string_struct; // MSG_ID_ATCI_UT_RMMI_OUTPUT_STRING
+
+typedef struct
+{
+    kal_uint8 para_string[ATCI_MAX_UT_AT_PARAMETER_STRING_LENGTH];
+} atci_ut_rmmi_input_expanded_at_parameter_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 port;
+    kal_uint8 cmd_string[ATCI_MAX_UT_CMD_STRING_LENGTH];
+    atci_ut_rmmi_input_expanded_at_parameter_struct para[ATCI_MAX_UT_AT_PARAMETER_NUMBER];
+} atci_ut_rmmi_input_expanded_at_string_struct; //MSG_ID_ATCI_UT_RMMI_INPUT_EXPANDED_AT_STRING
+
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 cid;
+    l4c_action_enum action;
+} atci_ut_check_l4c_context_info_struct; // MSG_ID_ATCI_UT_CHECK_L4C_CONTEXT_INFO
+
+
+//--- RMMI_UT
+
+typedef void (*RMMI_EXT_CMD_FUNCTION) (rmmi_string_struct *source_string_ptr);
+
+typedef kal_bool(*RMMI_BASIC_CMD_FUNCTION)
+    (rmmi_string_struct *source_string_ptr, rmmi_multiple_basic_cmd_struct *head_node_ptr, rmmi_err_id_enum *err_id);
+
+typedef void (*RMMI_IND_FUNCTION) ();
+
+
+extern rmmi_context_struct *rmmi_ptr_g;
+extern rmmi_common_context_struct *rmmi_common_ptr_g;
+extern module_type rmmi_current_mod_id;
+extern	rmmi_context_struct rmmi_cntxt_g[RMMI_MAX_SIM_NUM];
+#if defined(__ATCMD_ONOFF_CHECK__)
+extern kal_bool rmmi_check_at_enable;
+#endif
+
+#if defined(__DUAL_TALK_MODEM_SUPPORT__)
+typedef struct
+{
+    kal_uint8 speech_mode;
+    kal_uint8 rat_mode;
+} rmmi_spc_espeech_param_struct;
+
+typedef struct
+{
+    kal_uint8 sidetone;
+} rmmi_spc_esstv_param_struct;
+
+typedef struct
+{
+    kal_uint8 tone_id;
+} rmmi_spc_edtp_param_struct;
+
+typedef struct
+{
+    kal_uint8 esetdev_mode;
+    kal_uint8 src_dev;
+} rmmi_spc_esetdev_param_struct;
+
+typedef struct
+{
+    kal_uint8 volume;
+    kal_uint8 gain_id;
+} rmmi_spc_esov_param_struct;
+
+typedef struct
+{
+    kal_uint8 mic_volume;
+} rmmi_spc_esmv_param_struct;
+
+typedef struct
+{
+    kal_uint8 mode;
+} rmmi_spc_essma_param_struct;
+
+typedef union
+{
+    rmmi_spc_espeech_param_struct *espeech_param;
+    rmmi_spc_esstv_param_struct *esstv_param;
+    rmmi_spc_edtp_param_struct *edtp_param;
+    rmmi_spc_esetdev_param_struct *esetdev_param;
+    rmmi_spc_esov_param_struct *esov_param;
+    rmmi_spc_esmv_param_struct *esmv_param;
+    rmmi_spc_essma_param_struct *essma_param;
+} rmmi_spc_param_union;
+#endif /* __DUAL_TALK_MODEM_SUPPORT__ */
+
+typedef struct
+{
+    kal_uint8* sensor_name;
+    kal_uint8* sensor_data;
+} rmmi_tty_port_read_data_struct;
+
+#endif /* _RMMI_CONTEXT_H */
+
diff --git a/mcu/protocol/interface/l4misc/sdm_sms_struct.h b/mcu/protocol/interface/l4misc/sdm_sms_struct.h
new file mode 100644
index 0000000..e691a73
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/sdm_sms_struct.h
@@ -0,0 +1,80 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   sdm_sms_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _SDM_SMS_STRUCT_H
+#define _SDM_SMS_STRUCT_H
+
+#include "kal_general_types.h"
+
+
+/* MSG_ID_SDM_SMS_STATUS_IND */
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint8  sms_available;    
+    kal_uint8  sms_allowed;
+} sdm_sms_status_ind_struct; 
+
+
+
+#endif /* _SDM_SMS_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/smsal_l4c_enum.h b/mcu/protocol/interface/l4misc/smsal_l4c_enum.h
new file mode 100644
index 0000000..19cea1c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/smsal_l4c_enum.h
@@ -0,0 +1,475 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	smsal_l4c_enum.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file contains the enumerations which related to interface of
+ *   SMSAL and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * 				HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _SMSAL_L4C_ENUM_H
+#define _SMSAL_L4C_ENUM_H
+
+#include "ps_public_enum.h" //mtk02589 MPM
+#include "kal_general_types.h"
+
+/* SIM file enum and NVRAM file enum are used together with maximum enum size*/
+typedef kal_uint16 smsal_file_enum;
+
+typedef enum
+{
+   SMSAL_NORMAL_INIT,
+   SMSAL_PARAM_INIT_ONLY,
+   SMSAL_RESET_INIT
+} smsal_init_type_enum;
+
+typedef enum
+{
+   /* follows intended for AT commands and MMI */
+   SMSAL_DEL_INDEXED_MSG = 0,    /* delete specified msg */
+   SMSAL_DEL_READ_MSG,           /* delete all read msg */
+   SMSAL_DEL_READ_SENT_MSG,      /* delete all read/sent msg */
+   SMSAL_DEL_READ_MO_MSG,        /* delete all read/mobile-originated msg */
+   SMSAL_DEL_ALL_MSG,            /* delete all msg */
+   
+   /* follows intended only for MMI */
+#ifdef __DEL_READ_SMS_EXTENSION__
+   SMSAL_DEL_NEW_MSG,
+   SMSAL_DEL_SENT_MSG,
+   SMSAL_DEL_DRAFT_MSG, 
+#endif  
+   SMSAL_DEL_INBOX,
+   SMSAL_DEL_OUTBOX,
+   SMSAL_DEL_BITMAP             /* delete according bitmap */
+} smsal_del_flag_enum;
+
+/*
+ * message type identifier 
+ */
+typedef enum
+{
+   SMSAL_MTI_DELIVER          = 0x00,
+   SMSAL_MTI_DELIVER_REPORT   = 0x00,
+   SMSAL_MTI_SUBMIT           = 0x01,
+   SMSAL_MTI_SUBMIT_REPORT    = 0x01,
+   SMSAL_MTI_STATUS_REPORT    = 0x02,
+   SMSAL_MTI_COMMAND          = 0x02,
+   
+   SMSAL_MTI_UNSPECIFIED      = 0x03,  /* MMI shall handle this case,
+                                        * eg, displaying "does not support", 
+                                        * or "cannot display", etc */
+   SMSAL_MTI_ILLEGAL          = 0x04
+} smsal_mti_enum;
+
+typedef enum
+{
+   SMSAL_VPF_NOT_PRESENT    = 0x00,
+   SMSAL_VPF_ENHANCED       = 0x01,
+   SMSAL_VPF_RELATIVE       = 0x02,
+   SMSAL_VPF_ABSOLUTE       = 0x03
+
+} smsal_vp_format_enum;
+
+
+/*
+ * CNMI destination code
+ */
+typedef enum
+{
+   SMSAL_INVALID_DEST = 0,
+   SMSAL_TO_LMI,
+   SMSAL_TO_RMI
+} smsal_nmi_dest_enum;
+
+typedef enum
+{
+   NOT_SHOW_HEADER = 0,
+   SHOW_HEADER
+} smsal_show_header_enum;
+
+typedef enum
+{
+    SMSAL_SM_FIRST = 0x00,
+    SMSAL_ME_FIRST = 0x01
+} smsal_sms_prefer_order_enum;
+
+typedef enum
+{
+   SMSAL_PDU_MODE = 0,
+   SMSAL_TEXT_MODE,
+   NUM_OF_SMSAL_MSG_FORMAT
+} smsal_msg_format_enum;
+
+typedef enum
+{
+   SMSAL_MMS_DISABLE =0,
+   SMSAL_MMS_ENABLE_UNTIL_TIMEOUT,
+   SMSAL_MMS_ENABLE
+} smsal_more_msg_mode_enum;
+
+typedef enum
+{
+   SMSAL_SERVICE0 = 0,
+   SMSAL_SERVICE1
+} smsal_service_mode_enum;
+
+typedef enum
+{
+   EXACTLY_INDEXING,
+   NEXT_INDEXING
+} smsal_read_type_enum;
+
+typedef enum
+{
+   SMSAL_SEND_MSG,               
+   SMSAL_SEND_CMD           
+} smsal_send_type_enum;
+
+typedef enum
+{
+   CNMA_MODE_TEXT_MODE,
+   CNMA_MODE_RP_ACK,
+   CNMA_MODE_RP_ERROR
+} smsal_cnma_mode_enum;
+
+typedef enum
+{
+   SMSAL_MTSMS_PARA_MMS    =   0x0001,
+   SMSAL_MTSMS_PARA_RP     =   0x0002,
+   SMSAL_MTSMS_PARA_SRI    =   0x0004
+} smsal_mt_sms_para_enum;
+
+typedef enum
+{
+   /* In current phase, only "Relative" VP is supported */
+   
+   /* Reply Path NOT request, Status Report NOT request */
+   SMSAL_DEFAULT_FO  = 0x11,                       
+                     
+   /* Reply Path request, Status Report NOT request */                     
+   SMSAL_RP_FO       = 0x91,   
+   
+   /* Reply Path NOT request, Status Report request */                                                          
+   SMSAL_SR_FO       = 0x31,   
+   
+   /* Reply Path request, Status Report request */                                       
+   SMSAL_RP_SR_FO    = 0xb1    
+} smsal_first_octet_enum;   
+
+/*
+ * This enum is used in SMSAL module internally
+ */
+typedef enum
+{
+   SMSAL_GSM7_BIT = 0,    
+   SMSAL_EIGHT_BIT,
+   SMSAL_UCS2,       
+   SMSAL_ALPHABET_UNSPECIFIED       
+
+} smsal_alphabet_enum;
+
+typedef enum
+{
+   SMSAL_CLASS0 = 0,
+   SMSAL_CLASS1,
+   SMSAL_CLASS2,
+   SMSAL_CLASS3,
+   SMSAL_CLASS_UNSPECIFIED,
+   
+   SMSAL_MW_DISCARD, /* follows are for SMSAL internal use */
+   SMSAL_MW_STORE,
+   SMSAL_RCM,
+   NUM_OF_NMI_MSG_ENUM
+} smsal_msg_class_enum;
+
+
+typedef enum
+{
+   SMSAL_MSG_TYPE_NORMAL ,
+   SMSAL_MSG_TYPE_CLASS0 ,
+   SMSAL_MSG_TYPE_UPDATE_ONLY
+} smsal_display_type_enum;
+
+
+/* Enums for Relative format */
+typedef enum
+{
+   SMSAL_VP_1_HR   = 11,   /* 1 hour */
+   SMSAL_VP_6_HR   = 71,   /* 6 hours */
+   SMSAL_VP_12_HR  = 143,  /* 12 hours */
+   SMSAL_VP_24_HR  = 167,  /* 24 hours = 1 day */
+   SMSAL_VP_72_HR  = 169,  /* 72 hours = 3 days */
+   SMSAL_VP_1_WEEK = 173,  /* 1 week */
+   SMSAL_VP_MAX    = 255   /* 63 weeks */
+} smsal_vp_enum;
+
+
+// SMSAL_MW_OTHER == SMSAL_MW_VIDEO_MSG   in SIM EFmwis
+// SMSAL_MW_OTHER != SMSAL_MW_VIDEO_MSG   in (U)SIM EFmwis
+typedef enum
+{
+   SMSAL_MW_VM = 0,
+   SMSAL_MW_FAX,
+   SMSAL_MW_EMAIL, 
+   SMSAL_MW_OTHER,
+   SMSAL_MW_VIDEO_MSG,       
+   NUM_OF_MSG_WAITING_TYPE
+} smsal_msg_waiting_type_enum;
+
+typedef enum
+{
+    SMSAL_EVMI_NOTIFICATION        = 0x00,
+    SMSAL_EVMI_DELETE_CONFIRMATION = 0x01
+} smsal_sms_evmi_type_enum;
+
+typedef enum
+{
+   SMSAL_ENQUIRY_CMD = 0,  /* enquiry relating to previously submitted SM */
+   SMSAL_CANCEL_SRR_CMD,   /* cancel status report request */
+   SMSAL_DEL_CMD,          /* delete previously submitted SM */
+   SMSAL_ENABLE_SRR_CMD    /* enable status report request */   
+} smsal_cmd_type_enum;
+   
+typedef enum
+{
+   SMSAL_MEM_FULL_NORMAL, /* both SIM and ME are full */
+   SMSAL_SM_FULL_ONLY,
+   SMSAL_ME_FULL_ONLY
+} smsal_mem_full_enum;
+ 
+typedef enum
+{
+   SMSAL_MEM_EXCEED_NORMAL,
+   SMSAL_SM_EXCEED_WITH_CLASS2
+} smsal_mem_exceed_enum;
+
+typedef enum
+{
+   SMSAL_MEM_AVAIL_NORMAL, /* corresponding to SMSAL_MEM_FULL_NORMAL */
+                           /* one of storage is avail. it will be sent */
+   SMSAL_SM_AVAIL_ONLY,    /* corresponding to SMSAL_SM_FULL_ONLY */
+   SMSAL_ME_AVAIL_ONLY     /* corresponding to SMSAL_SM_FULL_ONLY */
+} smsal_mem_avail_enum;
+
+typedef enum
+{
+   SMSAL_COPY_MSG,
+   SMSAL_MOVE_MSG
+} smsal_copy_action_enum;
+
+typedef enum
+{
+    SMSAL_L4C_IMS_MO,
+    SMSAL_L4C_IMS_MT,
+    SMSAL_L4C_IMS_SMMA,
+    SMSAL_L4C_IMS_STKSMS,  
+    SMSAL_L4C_IMS_CMSS
+}smsal_l4c_ims_enum;
+
+typedef enum
+{
+    SMSAL_IMS_DOMAIN,
+    SMSAL_CS_DOMAIN,
+    SMSAL_UNSPECIFIED_DOMAIN
+}smsal_domain_enum;
+
+typedef enum
+{
+    SMSAL_AT_CSCB, //AT+CSCB
+    SMSAL_AT_ECSCBSW,
+    SMSAL_AT_ECSCBCFG 
+}smsal_cb_cmd_enum;
+
+typedef enum
+{
+    L4CSMS_CS_CALL_NOT_PRESENT,
+    L4CSMS_CS_CALL_PRESENT
+}l4csms_cs_call_status_enum;
+
+typedef enum {
+    SMSAL_ERRNO_SUCCESS,
+    SMSAL_ERRNO_FAIL,
+    SMSAL_ERRNO_SIM_SWITCH
+}smsal_errno_enum;
+
+#endif /* _SMSAL_L4C_ENUM_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/tcm2l4c_struct.h b/mcu/protocol/interface/l4misc/tcm2l4c_struct.h
new file mode 100644
index 0000000..3c13339
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/tcm2l4c_struct.h
@@ -0,0 +1,533 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * TCM2L4C_STRUCT.H
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file describes the common struct of TCM and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _TCM2L4C_STRUCT_H
+#define _TCM2L4C_STRUCT_H
+
+//------------------------------ suggest Add ------------------------------
+//#include "kal_non_specific_general_types.h"
+#include "l4c2tcm_func.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "l3_inc_local.h"
+//#include "app_ltlcom.h"
+//#include "l4c_common_enum.h"
+#include "l4c2tcm_struct.h"
+#include "mmi_l3_enums.h"
+#include "tcm_context.h"
+#include "tftlib_common_struct.h"
+
+//------------------------------ suggest Add ------------------------------
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+#ifdef __CDMA2000_RAT__
+#include "c2k_irat_msg_struct.h"
+#else
+#define MAX_PDN_NUM (5)
+#endif
+
+/* __APP_SECONDARY_PDP_SUPPORT__ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+} tcm_pdp_reactivate_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_bool cause2_present ;    // if network has cause_2 value in ACTIVATE_PDP_CONTEXT_ACCEPT
+    ps_cause_enum cause2;           /* Relay cause_2 value from SM. */
+    pdp_addr_type_enum pdp_type;
+    kal_uint8 primary_context_id;
+    kal_bool arrearage_flag;
+    rat_enum rat;
+} tcm_pdp_activate_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id; 
+    kal_bool cause2_present;
+    ps_cause_enum cause2;          
+    pdp_addr_type_enum pdp_type;
+    kal_bool arrearage_flag;
+} l4c_tcm_eps_attach_cnf_struct; // convert it to l4bpdn_l4c_lte_attach_pdn_activate_success_ind_struct
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    ps_cause_enum cause; /* reject cause (also used for cause_2) */
+    kal_bool is_change_to_apn_class_present;
+    kal_uint8 change_to_apn_class;
+} l4c_tcm_eps_attach_rej_struct; // convert it to l4bpdn_l4c_lte_attach_pdn_activate_failure_ind_struct
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_bool is_rejected_by_nw; // if this PDP is rejected by NW using SM peer msg, KAL_TRUE, else, KAL_FALSE
+    ps_cause_enum cause; /* reject cause (also used for cause_2) */
+    kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+    kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+    kal_bool is_change_to_apn_class_present;
+    kal_uint8 change_to_apn_class;
+    rat_enum rat;
+} tcm_pdp_activate_rej_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 primary_context_id;
+} tcm_pdp_activate_ind_struct;
+
+//#ifdef __TURN_ON_GENERAL_SECONDARY_PDP__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 primary_context_id;
+} tcm_sec_pdp_activate_ind_struct;
+//#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    qos_struct new_neg_qos; /* Obsoleted */
+    kal_bool tft_changed;
+    kal_bool qos_changed;
+    kal_uint8 primary_context_id;
+} tcm_pdp_modify_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    ps_cause_enum cause; /* reject cause*/
+    kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+    kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+} tcm_pdp_modify_rej_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    qos_struct new_neg_qos; /* Obsoleted */
+    kal_bool tft_changed;
+    kal_bool qos_changed;
+    kal_uint8 primary_context_id;
+
+    kal_bool      is_cause_present; 
+    ps_cause_enum cause; 
+} tcm_pdp_modify_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 primary_context_id;
+    l4c_result_enum result;
+    ps_cause_enum cause; // Used by RAT_TCM when value == RAT_TCM_RETRY_NEEDED_AFTER_IRAT
+    kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+    kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+    rat_enum rat;
+} tcm_pdp_deactivate_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    ps_cause_enum cause; /* deactivation cause*/
+    kal_uint8 primary_context_id;
+    kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+    kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+    rat_enum rat;
+} tcm_pdp_deactivate_ind_struct;
+
+typedef struct {
+    l4ctcm_bearer_notify_type_enum notify_type;
+    kal_uint8 cid;
+    kal_uint8 nsapi; // bearer_id
+    kal_bool tft_present;
+    tft_info_struct tft;
+    
+} l4ctcm_dedicated_bearer_event_report_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4ctcm_ps_event_report_type_enum event_id;
+
+    union
+    {
+        l4ctcm_dedicated_bearer_event_report_struct dedicate_event;
+    }report_content; 
+    
+} l4ctcm_ps_event_report_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 valid_contexts;
+    kal_uint8 context_id[GPRS_MAX_PDP_SUPPORT];
+    kal_uint8 bearer_capability[GPRS_MAX_PDP_SUPPORT];
+} l4ctcm_bearer_capability_ind_struct; //hspa_mmi_h2
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 result;
+    ps_cause_enum error_cause;  /* erica 20060320 */
+} l4ctcm_set_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;       // Jeffery NEW!
+    kal_uint8 result;
+    ps_cause_enum error_cause;  /* erica 20060320 */
+} l4ctcm_set_context_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4ctcm_ladn_info_list_struct ladn_info_list;
+} l4ctcm_ladn_info_update_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    ps_cause_enum cause;
+} l4ctcm_set_acl_mode_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    ps_cause_enum	cause;
+    kal_uint16	start_index;
+    kal_uint16	num_of_entries;
+    kal_bool	       more_flag;
+    tcm_acl_entry_struct	acl_list[TCM_MAX_PEER_ACL_ENTRIES];
+} l4ctcm_get_acl_entries_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    ps_cause_enum	cause;
+} l4ctcm_add_acl_entry_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    ps_cause_enum	cause;
+} l4ctcm_set_acl_entry_cnf_struct;
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+    ps_cause_enum	cause;
+} l4ctcm_del_acl_entry_cnf_struct;
+
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_pri_pdp_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_sec_pdp_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_extended_pdp_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_qos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_eqos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_ppp_auth_info_cnf_struct;
+//typedef l4ctcm_set_context_cnf_struct l4ctcm_set_gprs_account_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_eps_qos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_vgqos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_undefine_pdp_info_cnf_struct; //mtk00714 w0637: AT definition
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_cgauth_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_egpco_cnf_struct;
+
+//typedef l4ctcm_set_context_cnf_struct l4ctcm_set_ppp_auth_cnf_struct;   // mtk02126 define this struct for MSC to recognize MAUI_02420720
+
+typedef l4ctcm_set_cnf_struct l4ctcm_start_cnf_struct;
+typedef l4ctcm_set_cnf_struct l4ctcm_sync_apn_info_cnf_struct;
+typedef l4ctcm_set_cnf_struct l4ctcm_set_msq_mode_cnf_struct ;  /* __MEDIATEK_SMART_QOS__ */
+typedef l4ctcm_set_cnf_struct l4ctcm_set_msq_entry_cnf_struct ; /* __MEDIATEK_SMART_QOS__ */
+
+//typedef tcm_pdp_activate_ind_struct rat_tcm_print_embedded_activate_ind_struct;
+typedef tcm_pdp_deactivate_ind_struct rat_tcm_print_embedded_deactivate_ind_msg_struct;
+typedef tcm_pdp_modify_ind_struct rat_tcm_print_embedded_modify_ind_msg_struct;
+typedef tcm_sec_pdp_activate_ind_struct rat_tcm_print_embedded_sec_activate_ind_msg_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 result;
+    ps_cause_enum error_cause;
+} l4ctcm_enter_data_mode_cnf_struct; //mtk02285, 20110322
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    kal_uint8 result;
+    ps_cause_enum error_cause;
+} l4ctcm_leave_data_mode_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 pdn_num;
+    l4ctcm_at_report_struct pdn[MAX_PDN_NUM];
+}l4ctcm_set_multiple_pdn_info_cnf_struct;
+
+
+typedef struct{
+    LOCAL_PARA_HDR
+    l4ctcm_set_specific_context_req_struct piggyback_req;
+    kal_uint16 set_success_context_id;
+    
+}l4ctcm_set_specific_context_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_prim_pdp_info_list_struct l4c_prim_pdp_info_list;
+} tcm_ut_check_callback_l4ctcm_get_pri_pdp_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_PRI_PDP_INFO, l4c_prim_pdp_info_list_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_sec_pdp_info_list_struct l4c_sec_pdp_info_list;
+} tcm_ut_check_callback_l4ctcm_get_sec_pdp_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_SEC_PDP_INFO, l4c_sec_pdp_info_list_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_qos_list_struct l4c_qos_list;
+} tcm_ut_check_callback_l4ctcm_get_qos_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_QOS_INFO, l4c_qos_list_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_config_option_list_struct l4c_config_option_list;
+} tcm_ut_check_callback_l4ctcm_get_config_option_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_CONFIG_OPTION_INFO, l4c_config_option_list_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    l4c_eqos_list_struct l4c_eqos_list;
+} tcm_ut_check_callback_l4ctcm_get_eqos_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_EQOS_INFO, l4c_eqos_list_struct
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_encode_sdu_size_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_ENCODE_SDU_SIZE, kal_uint16 val_ptr
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_decode_sdu_size_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_DECODE_SDU_SIZE, kal_uint16 val_ptr
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint32 val;
+} tcm_ut_check_callback_l4ctcm_encode_bit_rate_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_ENCODE_BIT_RATE, kal_uint16 val_ptr
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint32 rate;
+} tcm_ut_check_callback_l4ctcm_decode_bit_rate_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_DECODE_BIT_RATE, kal_uint32 rate_ptr
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_encode_transfer_delay_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_ENCODE_TRANSFER_DELAY, kal_uint16 val_ptr
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_decode_transfer_delay_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_DECODE_TRANSFER_DELAY, kal_uint16 delay_ptr
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 length;
+    kal_uint8 addr[100];
+} tcm_ut_check_callback_l4ctcm_get_pdp_addr_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_PDP_ADDR, kal_uint8 length, kal_uint8 addr[100]
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 total_context[100];
+    kal_uint8 state_list[100];
+} tcm_ut_check_callback_l4ctcm_get_context_state_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_CONTEXT_STATE, kal_uint8 total_context[100], kal_uint8 state_list[100]
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 empty_gprs_prof_entry[100];
+} tcm_ut_check_callback_l4ctcm_get_empty_gprs_prof_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_EMPTY_GPRS_PROF, kal_uint8 empty_gprs_prof_entry[100]
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool auth_type;
+} tcm_ut_check_callback_l4ctcm_get_ppp_auth_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_PPP_AUTH, kal_bool is_chap
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool callback_func_return_value;
+} tcm_ut_check_callback_check_pdp_context_exist_or_during_activating_func_struct;
+// MSG_ID_TCM_UT_CHECK_CALLBACK_CHECK_PDP_CONTEXT_EXIST_OR_DURING_ACTIVATING_FUNC
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool callback_func_return_value;
+    kal_uint8 valid_contexts;
+    kal_uint8 context_id[GPRS_MAX_PDP_SUPPORT];
+    kal_uint8 bearer_capability[GPRS_MAX_PDP_SUPPORT];
+} tcm_ut_check_callback_l4ctcm_get_bearer_capability_struct;
+// MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_BEARER_CAPABILITY
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} tcm_ut_result_ok_struct; 
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    l4c_prim_pdp_rdp_info_struct info ;    
+} tcm_ut_l4ctcm_get_pri_pdp_rdp_info_struct ; // l4ctcm_get_pri_pdp_rdp_info()
+
+typedef struct 
+{
+    LOCAL_PARA_HDR 
+    l4c_sec_pdp_rdp_info_struct info ;   
+} tcm_ut_l4ctcm_get_sec_pdp_rdp_info_struct ; // l4ctcm_get_sec_pdp_rdp_info() 
+
+typedef struct 
+{
+    LOCAL_PARA_HDR 
+    l4c_prim_pdp_info_struct info ;
+} tcm_ut_l4ctcm_get_pri_pdp_info_struct ; // l4ctcm_get_pri_pdp_info()
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    l4c_sec_pdp_info_struct info ;
+} tcm_ut_l4ctcm_get_sec_pdp_info_struct ; // l4ctcm_get_sec_pdp_info()
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint8 context_id ;
+    pdp_addr_type_enum pdp_type ;
+    pdp_addr_len_enum pdp_len ;
+    kal_uint8 pdp_addr[IPV4V6_ADDR_LEN] ;
+} tcm_ut_l4ctcm_get_nw_applied_pdp_info_struct ; // l4ctcm_get_pdp_addr() and l4ctcm_get_pdp_addr_type()
+
+typedef struct{
+    LOCAL_PARA_HDR
+    session_info_block_struct session_info;
+} tcm_ut_l4ctcm_get_sib_info_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    tcmesm_pco_struct pco;
+} tcm_ut_etcm_cid_get_pco_result_struct; 
+//MSG_ID_TCM_UT_ETCM_CID_GET_PCO_RESULT
+
+typedef struct{
+    LOCAL_PARA_HDR
+    tcm_pic_struct pic;
+} tcm_ut_pic_context_dump_struct; 
+// MSG_ID_TCM_UT_PIC_CONTEXT_DUMP
+
+/* mtk03537: for LTE concatenated message in peer buffer */
+typedef struct {
+    PEER_BUFF_HDR
+    kal_uint8           embed_msg_num;
+    kal_uint32          embed_msg_id[10]; // at most 11 nsapis (nsapi 5~15), therefore, embedded at most have 10 entries
+    local_para_struct   *embed_local_param[10]; // at most 11 nsapis (nsapi 5~15), therefore, embedded at most have 10 entries
+} tcm_embed_struct;
+
+
+/* MPH1 E911*/
+typedef struct {
+    LOCAL_PARA_HDR
+} l4ctcm_ecc_rej_by_nw_in_attach_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/tcm_rattcm_struct.h b/mcu/protocol/interface/l4misc/tcm_rattcm_struct.h
new file mode 100644
index 0000000..5838f7e
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/tcm_rattcm_struct.h
@@ -0,0 +1,125 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * TCM_RATTCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ *   MOLY
+ *
+ * Description:
+ * ------------
+ *   This file describes the common struct of ugTCM/eTCM and RAT_TCM
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ *             HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _TCM_RATTCM_STRUCT_H
+#define _TCM_RATTCM_STRUCT_H
+
+#include "kal_general_types.h"
+
+#include "irat_common_struct.h"
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    irat_type_enum irat_type;
+    rat_type_enum source_rat;
+    rat_type_enum target_rat;
+    irat_result_enum irat_result;
+} tcm_rat_change_complete_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 context_id;
+    tcm_pdp_deact_reason_enum deact_reason;
+    // if tft conflict and need to deactivate a context, ugTCM/eTCM use this message to inform RAT_TCM. if > 1 context need to be deactivated, ugTCM/eTCM need to send several msgs to RAT_TCM
+} tcm_rat_tcm_init_deactivate_context_ind_struct;
+
+#endif // _TCM_RATTCM_STRUCT_H
diff --git a/mcu/protocol/interface/l4misc/vdm_atp_enums.h b/mcu/protocol/interface/l4misc/vdm_atp_enums.h
new file mode 100644
index 0000000..4ad72a0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/vdm_atp_enums.h
@@ -0,0 +1,220 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2013
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ * Filename:
+ * ------------
+ *   vdm_atp_enums.h
+ *
+ * Project:
+ * ------------
+ *   MOLY
+ *
+ * Description:
+ * ------------
+ *   This file defines the enum between VDM and IMS Proxy.
+ *
+ * Author:
+ * -----------
+ * -------
+ *
+ *===========================================================
+ * $Log$
+ *
+ * 07 27 2020 yulong.chang
+ * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature
+ * VoData VDM part
+ *
+ * 03 05 2020 chen-wei.lan
+ * [MOLY00502400] [Gen97][UNITE][5G][SA][HEAT][R15_SA_MRAT_AFR_3G4G5G_1]Delay observed in the Extended Service Request trigger
+ * vonr_off/volte_off when NR call fail
+ *
+ * 09 24 2019 danny.kuo
+ * [MOLY00440886] [Gen97] DSDA-like feature check in
+ * .
+ *
+ * 08 26 2019 chen-wei.lan
+ * [MOLY00433041] [Gen97][EPSFB] IT related issues
+ * uac
+ *
+ * 11 01 2018 kuan-wei.chen
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [VMOLY][VDM][MPD]
+ *
+ * 08 17 2018 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * l4c cc
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 06 26 2017 jerry.cheng
+ * [MOLY00259370] .EVADSMOD rearch
+ * .EVADSMOD rearch
+ *
+ * 04 07 2017 jerry.cheng
+ * [MOLY00240312] [93] CT VoLTE modem re-architecture
+ * .[CT VoLTE]  hVoLTE / E911 configuration, VDM re-arch, extend AT+EVADMOD, AT+EMVSS
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] CLCCS .remove CLCC cnf check for unsync call(C2K) in order to fulfill C2K call waiting
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] STK/UTK
+ *
+ * 09 03 2015 lexel.yu
+ * [MOLY00130859] [ViLTE] add AT+ECCP/AT+EIMSCCP in ADS
+ * 	.
+ *
+ * 08 26 2015 ben.chiu
+ * [MOLY00138217] [ViLTE] M0 migration ViLTE feature Interface
+ * ViLTE interface patch back
+ *
+ * 12 05 2014 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * 	[MOLY00085717] [VoLTE] Android L release VoLTE refactory for VDM and ATP
+ *****************************************************************************/
+
+#ifndef _VDM_ATP_ENUMS_H_
+#define _VDM_ATP_ENUMS_H_
+
+#define VDM_ATP_CLCC_CLCCS_ERROR 255
+
+typedef enum {
+    CODE_NO_CARRIER = 0,
+    CODE_ERROR,
+    CODE_OK
+} vdm_atp_at_cmd_result_enum;
+
+typedef enum 
+{
+    VDM_ADS_MODE_AUTOMATIC = 0,     // LTE(IMS), WG(CS), 1x(C2K)
+    VDM_ADS_MODE_CS_ONLY,           // WG(CS)
+    VDM_ADS_MODE_3GPP_ONLY,         // LTE(IMS), WG(CS)
+    VDM_ADS_MODE_3GPP2_ONLY,        // 1x(C2K)
+    VDM_ADS_MODE_IMS_1xCS_ONLY,     // LTE(IMS), 1x(C2K)
+    VDM_ADS_MODE_WGCS_1xCS_ONLY     // WG(CS), 1x(C2K)
+} vdm_ads_mode_enum;
+
+typedef enum 
+{
+    VDM_ADS_ECC_PREFERRED_DOMAIN_NONE = 0, // Not preferred
+    VDM_ADS_ECC_PREFERRED_DOMAIN_WGCS,     // WG(CS)
+    VDM_ADS_ECC_PREFERRED_DOMAIN_1xCS      // 1x(C2K)
+} vdm_ads_ecc_preferred_domain_enum;
+
+typedef enum 
+{
+    VDM_ADS_RESULT_REPORT_DISABLE = 0,
+    VDM_ADS_RESULT_REPORT_ENABLE,
+} vdm_ads_result_report_mode_enum;
+
+typedef enum 
+{
+    VDM_ADS_RESULT_CS = 0,
+    VDM_ADS_RESULT_IMS_VOLTE,
+    VDM_ADS_RESULT_IMS_WIFI,
+    VDM_ADS_RESULT_IMS_NR,
+    VDM_ADS_RESULT_REJECT,
+    VDM_ADS_RESULT_IMS_VODATA_1,  // VoData on protocol 1
+    VDM_ADS_RESULT_IMS_VODATA_2,  // VoData on protocol 2
+    VDM_ADS_RESULT_IMS_VODATA_3,  // VoData on protocol 3
+    VDM_ADS_RESULT_IMS_VODATA_4,  // VoData on protocol 4
+} vdm_ads_result_enum;
+
+typedef enum 
+{
+    VDM_VIDEO_CAPABILITY_3GVT = 0x01,
+    VDM_VIDEO_CAPABILITY_VILTE = 0x02,
+    VDM_VIDEO_CAPABILITY_VIWIFI = 0x04,
+    VDM_VIDEO_CAPABILITY_VINR = 0x08,
+
+    VDM_VIDEO_CAPABILITY_MAX = 0xff,
+} vdm_video_capability_enum;
+
+typedef enum
+{
+    VDM_TRK_TR_TRIGGER_MD_SEDN_STK_CALL_SETUP = 0,
+    VDM_TRK_TR_TRIGGER_MD_SEDN_STK_CALL_SETUP_BUT_ICON_COULD_NOT_DSPL = 4
+} vdm_stk_type_enum;
+
+typedef enum
+{
+    EMCSS_CAUSE_GLOBAL_CHANGE_REQUIRED = 0,
+    EMCSS_CAUSE_T_WWAN_911_TIMEOUT = 1,
+    EMCSS_CAUSE_MAX = 0xff
+} vdm_emcss_cause_enum;
+
+typedef enum
+{
+    VDM_ATP_MT_CALL_ALLOW = 0,
+    VDM_ATP_MT_CALL_REJECT = 1,
+    VDM_ATP_MT_CALL_APPROVAL_ENABLE = 2,
+    VDM_ATP_MT_CALL_APPROVAL_DISABLE = 3,
+} vdm_atp_mt_call_approval_mode_enum;
+
+//DSDA-like, AT+EVOLTESI = <mode>
+typedef enum
+{
+    VDM_TRK_ENH_VOLTE_SI_OFF = 0,
+    VDM_TRK_ENH_VOLTE_SI_LEVEL1,
+    VDM_TRK_ENH_VOLTE_SI_LEVEL2,
+	VDM_TRK_ENH_VOLTE_SI_LEVEL3,
+	VDM_TRK_ENH_VOLTE_SI_NUM
+} vdm_trk_enh_volte_si_enum;
+
+//+EAIC:x,x,x,x,x,,,<evoltesi_flow>
+typedef enum
+{
+    VDM_ENH_VOLTE_SI_FLOW_OFF = 0,
+    VDM_ENH_VOLTE_SI_FLOW_ON
+} vdm_enh_volte_si_flow_enum;
+
+#endif // _VDM_ATP_ENUMS_H_
diff --git a/mcu/protocol/interface/l4misc/vdm_atp_struct.h b/mcu/protocol/interface/l4misc/vdm_atp_struct.h
new file mode 100644
index 0000000..1189729
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/vdm_atp_struct.h
@@ -0,0 +1,1613 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2013
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ * Filename:
+ * ------------
+ *   vdm_atp_struct.h
+ *
+ * Project:
+ * ------------
+ *   MOLY
+ *
+ * Description:
+ * ------------
+ *   This file defines the interface messages between VDM and IMS Proxy.
+ *
+ * Author:
+ * -----------
+ * -------
+ *
+ *===========================================================
+ * $Log$
+ *
+ * 06 21 2022 vijay.goyal
+ * [MOLY00765081] [FeatureDevelopment][ALPSAR06336232] TMOUS 22Q1 Requirement Gap Development - UE MO Timer F1
+ * .
+ *
+ * 01 27 2022 taffy.cheng
+ * [MOLY00803278] [Gen97][MD700] CR patch-back from R3.MP
+ * 	
+ * 	[MOLY00678551][MOLY00679592][MOLY00686355][MOLY00683334][MOLY00701221][MOLY00721364][MOLY00773738] Patch Back
+ *
+ * 01 10 2022 ot_hitesh.c
+ * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
+ * .
+ *
+ * 12 16 2021 ot_hitesh.c
+ * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
+ * .
+ *
+ * 12 01 2020 yulong.chang
+ * [MOLY00598875] Request a SRVCC CS Call Resource control by VDM
+ * 	
+ * 	ALPS05460502
+ *
+ * 10 14 2020 chen-wei.lan
+ * [MOLY00580995] [Titan97]IPC c2k call flow change for VDM enabled
+ * titan c2k
+ *
+ * 08 28 2020 chen-wei.lan
+ * [MOLY00562709] [5GHP][feature][Data&Call]game space mode
+ * .
+ *
+ * 08 14 2020 yulong.chang
+ * [MOLY00543239] [MT6883][VoNR] request to support API for call preference change
+ * 	
+ * 	Add At command ECNWS
+ *
+ * 07 27 2020 yulong.chang
+ * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature
+ * VoData VDM part
+ *
+ * 03 16 2020 chen-wei.lan
+ * [MOLY00504146] [5G-A][5G Modem·sfeature]ɬ¤Æ5G±µ¤J±±¨î
+ * ssac opt
+ *
+ * 03 10 2020 chen-wei.lan
+ * [MOLY00504146] [5G-A][5G Modem·sfeature]ɬ¤Æ5G±µ¤J±±¨î
+ * ssac opt
+ *
+ * 12 08 2019 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [patch back]6996240,7189967,7222841,7241346,7367549,8756435
+ *
+ * 12 02 2019 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [patch back]8519908,8519818,8915296,9086988,9086148,9085815,9318206,9357101
+ *
+ * 11 20 2019 chen-wei.lan
+ * [MOLY00460626] [Petrus]BSP+][Q0][Operator IOT] ECC cannot be established by RJIL after flight mode
+ * fix eXreg
+ *
+ * 11 13 2019 chen-wei.lan
+ * [MOLY00458901] [Rose][Petrus]BSP+][Q0]The CMCC volte card will register E network all the time.(Once)
+ * AT+EMCI=0
+ *
+ * 10 31 2019 chen-wei.lan
+ * [MOLY00455800] [Rose][Petrus]BSP+][Q0]The DUT will popup ECBM.(Once)
+ * add +VMCCMNC urc handling for VDM
+ *
+ * 10 25 2019 chen-wei.lan
+ * [MOLY00454520] ¡idump¡j??Éó?¥d??¤U?¥´120¡Amodem ­«? 1/5
+ * fix emcs
+ *
+ * 10 17 2019 chen-wei.lan
+ * [MOLY00449571] [MT6885][Petrus][Q0][MP1][SI2][SQC][China][SH][4GMM][FT][hVoLTE][hVoLTE_FT_2.1]sim1 C2K call failure after 4G3
+ * fix AT+EIMSCFG.
+ *
+ * 09 24 2019 danny.kuo
+ * [MOLY00440886] [Gen97] DSDA-like feature check in
+ * .
+ *
+ * 01 30 2019 kuan-wei.chen
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [VMOLY.EVB.SEPT.DEV][MPD] sync VDM CL: 6995175~7345261
+ *
+ * 11 01 2018 kuan-wei.chen
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [VMOLY][VDM][MPD]
+ *
+ * 08 17 2018 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * l4c cc
+ *
+ * 05 24 2018 szu-chieh.chiu
+ * [MOLY00328315] [IMS][Gen95] Emergency PDN handover
+ * Emergency PDN handover.
+ *
+ * 05 23 2018 yulong.chang
+ * [MOLY00327672] [UMOLYE][Rose][MERLOT][O1][BSP+][Initial Tool]The device was not regist network after some operate.(once)
+ * VDM relay +CIEV:102,X to AP
+ *
+ * 05 03 2018 jerry.cheng
+ * [MOLY00322938] ?�H�ƥd����`?VOLTE - notify C2K call end to L4 (VDM part)
+ * .[UMOLYE] Send AT+EHVOLTE=0,2 to notify L4 C2K call end in order not to block switching to SRLTE mode
+ *
+ * 03 29 2018 yulong.chang
+ * [MOLY00313953] [UMOLYE][VDM][Vzw][CDMA-less][PCO] Trigger NWSEL search for Vzw CDMA less if UE has received PCO_FF00H=5 and AP radio control off and timer expired and UE is roaming
+ * PCO FF00H 5 - VDM main part
+ *
+ * 03 13 2018 yulong.chang
+ * [MOLY00312598] [DSBP] patch back "D-SBP enhancment for all modem" to UMOLYE and TC01.R3.DEV
+ * EFUN/CFUN controlled by L4BPWR (VDM part)
+ *
+ * 02 23 2018 yulong.chang
+ * [MOLY00309362] [Rose][Sylvia][O1][BSP+][Telephony switch]The ECC call will dialing all the time.(Once)
+ * 	
+ * 	improve +EMCSS (VDM part)
+ *
+ * 12 18 2017 yulong.chang
+ * [MOLY00296177] [MT6293][GMSS] prefer RAT handling enhancement
+ * Add one parameter in AT+EMCSS.
+ * 	
+ * 	AT+EMCSS=1,[<available_rat>,<prefer_rat>,<is_new_call>]
+ *
+ * 12 01 2017 yulong.chang
+ * [MOLY00293536] [VDM][TMO-US][RTT] Redial voice only VoLTE EMCl when RTT VoLTE EMC fail (VDM part)
+ * TMO RTT redial
+ *
+ * 12 01 2017 yulong.chang
+ * Roll back MOLY00291130
+ *
+ *
+ * 11 23 2017 jerry.cheng
+ * [MOLY00291130] [R3][VZW feature] VZ_REQ_e911_30203 (EMC call type)
+ * .rollback to resolve autosync conflict
+ *
+ * 11 21 2017 jerry.cheng
+ * [MOLY00287748] [93][TMO][VDM] Digits implementation
+ * .[TMO][Digits] modify query TRN AT cmd/URC format
+ *
+ * 11 21 2017 yulong.chang
+ * [MOLY00288769] [Zion][N1][Free Test][MCD][TEFT]make a vilte call,the picture is unclear(5/5) (vdm part)
+ * notify ERRC IMS call RAT (VDM part)
+ *
+ * 11 06 2017 jerry.cheng
+ * [MOLY00287748] [93][TMO][VDM] Digits implementation
+ * .Digits implementation - VDM part
+ *
+ * 09 01 2017 yulong.chang
+ * [MOLY00274843] [CDMA-less][LR12] main CR (VDM part)
+ * [LR11.MP5->UMOLYA sync] MOLY00262171 [CDMA-less][LR12] main CR (VDM part)
+ *
+ * 08 31 2017 yulong.chang
+ * [MOLY00274168] [MT6293][NWSIM][Regression][TC_9_3_1_3] UE return CME error for ATD01234567890;
+ * ALPS03464343 Bug fix (also reference At+CFUN)
+ *
+ * 08 30 2017 yulong.chang
+ * [MOLY00274412] [6755][E66_DUGL][ITS#1174]Without SIM and make Emergency call:911, DUT will met call drop
+ * [LR11.MP5->UMOLYA sync] MOLY00255649 [6755][E66_DUGL][ITS#1174]Without SIM and make Emergency call:911, DUT will met call drop
+ *
+ * 08 28 2017 yulong.chang
+ * [MOLY00274096] [VzW] addl call_domain_cause - IMSP/VDM/IMC part
+ * [LR11.MP5->UMOLYA sync] MOLY00254610 [VzW] addl call_domain_cause - IMSP/VDM/IMC part
+ *
+ * 08 24 2017 yulong.chang
+ * [MOLY00272923] [Bianco][N1][MTK FT][SRLTE][CT 6M C][LZ][Random] call can't hang up (ATP part)
+ * .
+ *
+ * 08 17 2017 jerry.cheng
+ * [MOLY00271227] [UMOLYA] [Rose][Vinson][N1]The ECC call will can't be dial out success.(5/5)
+ * [LR12->UMOLYA sync] [MOLY00259723] send call_status_req to NAS/AS : VDM/ATP - add call_type in AT+EVVS
+ *
+ * 08 17 2017 yulong.chang
+ * [MOLY00271652] [TCL][MICKEY6T TMO] [IMS/VoLTE] - L_IMS_VoLTE_50944_1 - for VDM/IMSP check-in
+ * [LR11.MP5->UMOLYA sync] MOLY00250915 [TCL][MICKEY6T TMO] [IMS/VoLTE] - L_IMS_VoLTE_50944_1 - for VDM/IMSP check-in
+ *
+ * 08 15 2017 jerry.cheng
+ * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
+ * .[LR12->UMOLYA sync] MOLY00264006[LR12] patch back Skip ACB feature/VDM part to LR12
+ *
+ * 07 25 2017 jerry.cheng
+ * [MOLY00262992] [93][VDM] IMS parameter OTA update
+ * .OPPO IMS parameter OTA update
+ *
+ * 07 19 2017 jerry.cheng
+ * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
+ * .[LR11.MP5 to UMOLYA]. 
+ * 	porting [MOLY00215268] [VDM][ATT] ACB enable, select CS domain to dial up call. VDM part.
+ * 	porting [MOLY00215276] [VDM][ATT] ACB enable, select CS domain to dial up call. NVRAM part
+ *
+ * 07 19 2017 jerry.cheng
+ * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
+ * .[LR11.MP5 to UMOLYA] porting [MOLY00206357] [VzW] Call Pull & VICE Feature
+ *
+ * 06 26 2017 jerry.cheng
+ * [MOLY00259370] .EVADSMOD rearch
+ * .EVADSMOD rearch
+ *
+ * 04 25 2017 jerry.cheng
+ * [MOLY00242146] [93][VDM] bug fix
+ * .rename EVADSMOD parameter
+ *
+ * 04 19 2017 jerry.cheng
+ * [MOLY00242146] [93][VDM] bug fix
+ * .fix C2K ECPI
+ *
+ * 04 07 2017 jerry.cheng
+ * [MOLY00240312] [93] CT VoLTE modem re-architecture
+ * .[CT VoLTE] +CIEV: 102,2 for ECBM mode no need
+ *
+ * 04 07 2017 jerry.cheng
+ * [MOLY00240312] [93] CT VoLTE modem re-architecture
+ * .[CT VoLTE]  hVoLTE / E911 configuration, VDM re-arch, extend AT+EVADMOD, AT+EMVSS
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * 	
+ * 	.AT+EVIVS support for indicating ERRC to occupy CS semaphore in VoLTE/ViTLE/VoWifFI/ViWiFI period
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] relay conference call number from UA to CSCC
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] CLCCS .remove CLCC cnf check for unsync call(C2K) in order to fulfill C2K call waiting
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] STK/UTK
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] EIMSCFG - VDM part
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] 380 redial as ECC by VDM
+ *
+ * 02 20 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .+EVPC2K.
+ *
+ * 01 06 2017 jerry.cheng
+ * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
+ * rename IMSP to ATP, ATP related files.
+ *
+ * 01 05 2017 jerry.cheng
+ * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
+ * rename IMSP to ATP.
+ *
+ * 01 05 2017 chinte.chen
+ * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
+ * fixed VDM codegen failure
+ *
+ * 11 02 2016 jerry.cheng
+ * [MOLY00211075] [93][VDM][L4 Integration] CC AT cmd merge
+ * sync [MOLY00204150] TK vzw hVoLTE/E911 implementation
+ * 	
+ * 	. ATP part.
+ *
+ * 11 02 2016 jerry.cheng
+ * [MOLY00211075] [93][VDM][L4 Integration] CC AT cmd merge
+ * sync [MOLY00204150] TK vzw hVoLTE/E911 implementation
+ * 	
+ * 	TK hVoLTE: L4/ATP/VDM.
+ *
+ * 10 13 2016 timo.korpela
+ * [MOLY00206906] [FT][NL][VoLTE]he hidden caller ID does not work when make call to alphanumeric SIP-URI.
+ * Implemented handling for CLIR parameter received in AT+CDU command.
+ *
+ * 08 11 2016 kuan-wei.chen
+ * [MOLY00196499] [Jade N0][TK]Waiting call screen show "Unknown" when receive a waiting call from hiden number - vdm/atp source file
+ * .
+ *
+ * 06 27 2016 lexel.yu
+ * [MOLY00183611] [VZW_LC_IOT][PH1_VZW][Radio_Protocol][NDET_Lab] hVoLTE 2.2.40_Option-A fail
+ * Add AT+EICE=3 workaround for silent redial
+ *
+ * 06 06 2016 yingfui.hung
+ * [MOLY00171513] [PH1_VZW][joint-camp][GPS][Privacy Test] When Device's Location Setting is 'Location OFF', GPS work.
+ * 	
+ * 	.
+ *
+ * 06 01 2016 kuan-wei.chen
+ * [MOLY00146327] [VzW] hVoLTE implementation
+ * vzw patchback - L4, VDM
+ *
+ * 03 23 2016 yingfui.hung
+ * [MOLY00168587] [MT6755][Jade M6][MP3][L+W][In-house FTA][Case Fail][VoLTE] TC_11.2.2 FAIL
+ * 	
+ * 	.
+ *
+ * 03 08 2016 yingfui.hung
+ * [MOLY00167924] [L4][R12] Handling of SCM at VDM/SDM/L4 part
+ * 	
+ * 	.
+ *
+ * 12 16 2015 xinwei.cui
+ * [MOLY00153299] [VILTE][Anite][v37][E40][12.21]FAIL
+ * .
+ *
+ * 12 15 2015 kuan-wei.chen
+ * [MOLY00153140] [D1][WFC][M0] WFC preference if wifi only, disable WFC, prompt "server unreachable" when make a call. - VDM part
+ * wifi only mode is active only when AT+EIMSWFC=1
+ *
+ * 12 14 2015 kuan-wei.chen
+ * [MOLY00150109] [IMS Feature] Non-UE detectable emergency call R12 feature
+ * .
+ *
+ * 12 01 2015 kuan-wei.chen
+ * [MOLY00133272] [NTT DOCOMO][VoLTE][IO030143] UE sends SM__ACTIVATE_PDP_CONTEXT_REQUEST unexpectedly
+ * DCM, 1504929
+ *
+ * 11 26 2015 yingfui.hung
+ * [MOLY00116938] [VOLTE][NTT DOCOMO] requirement 5A.7.1.1 Service category
+ * 	
+ * 	.
+ *
+ * 11 13 2015 lexel.yu
+ * [MOLY00149112] [VDM] NAS should keep search network when IMS call over WiFi ongoing
+ * 	
+ * 	.
+ *
+ * 09 14 2015 lexel.yu
+ * [MOLY00141573] [UMOLY][LR11][TMO][IMS] bCSFB
+ * 	.
+ *
+ * 08 26 2015 ben.chiu
+ * [MOLY00138217] [ViLTE] M0 migration ViLTE feature Interface
+ * ViLTE interface patch back
+ *
+ * 07 09 2015 nick.wang
+ * [MOLY00127009] WFC Patch back to UMOLY- interface part
+ * .moly wfc interface patch
+ *
+ * 07 09 2015 nick.wang
+ * [MOLY00127009] WFC Patch back to UMOLY- interface part
+ * 	.jade interface sync
+ *
+ * 06 11 2015 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * 	[MOLY00114718] [VDM][Volunteer Patch] Patch back for MOLY trunk
+ * 	ATDC for conference call
+ *
+ * 06 10 2015 edwin.liu
+ * [MOLY00120219] Merge MOLY ATP changes to UMOLY
+ * 	.
+ *
+ * 06 05 2015 edwin.liu
+ * ATP to UMOLY.
+ *
+ * 04 09 2015 lexel.yu
+ * [MOLY00106459] [MT6291][IMS] VoLTE call event download
+ * 	IMS Call Event Download
+ *
+ * 03 16 2015 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * 	[MOLY00080860] fix typo: replace vdm_atp_snd_ads_staus_req_struct by vdm_atp_snd_ads_status_req_struct
+ * 	[MOLY00093643] [K2][CMCC][VoLTE][NS-IOT][R&S][TC 5.2.9.2][B3-E38]UE GSM??????^LTE?????????`? fail
+ *
+ * 02 24 2015 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * 	[MOLY00095972] [CMCC VoLTE][VDM] Add "4 to 23G" and "23G to 4" for IRAT event.
+ *
+ * 12 05 2014 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * 	[MOLY00085717] [VoLTE] Android L release VoLTE refactory for VDM and ATP
+ *
+ * 11 26 2014 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * 	[MOLY00083542] [L4]add a new internal URC to notify VDM STK call number (+ESTKCNUM)
+ * 	VDM part
+ *
+ * 11 05 2014 lexel.yu
+ * [MOLY00083035] [VDM] IMS call information
+ * 	.
+ *
+ * 09 02 2014 allan.ke
+ * [MOLY00075245] Change the algorithm of ADS SSAC timer control and include IMSVoPS as the conditions for domain selection when dialing emergency call
+ *
+ * 04 25 2014 tehuang.liu
+ * [MOLY00063538] [6290E2][VoLTE][VDM] Support VoLTE Gemini architecture
+ * not use compile options for VoLTE Gemini interface structures definition
+ *
+ * 04 23 2014 tehuang.liu
+ * [MOLY00063538] [6290E2][VoLTE][VDM] Support VoLTE Gemini architecture
+ * Check in VoLTE+Gemini related interfaces for VDM, ATP, L4C, EVAL, and ERRC
+ *
+ * 04 11 2014 tehuang.liu
+ * [MOLY00062327] [6290E2][VoLTE][VDM] Support STKCALL in CS domain
+ * .
+ *
+ * 04 09 2014 jinghan.wang
+ * [MOLY00062091] [IMS][VoLTE] Check in STKCALL part for VDM TRK
+ * .
+ *
+ * 02 20 2014 benjamin.kuo
+ * [MOLY00056441] Use string instead enum for call type in CRING
+ * .
+ *
+ * 02 17 2014 benjamin.kuo
+ * [MOLY00056253] Merge SRVCC implementation from personal CBr to MOLY trunk
+ * SRVCC
+ *
+ * 02 14 2014 benjamin.kuo
+ * [MOLY00055885] [6290E2][VoLTE][MWC] incorrect URC oder of VDM and ATP
+ * +CRING
+ *
+ * 12 10 2013 vend_edwin.liu
+ * ATP.
+ *****************************************************************************/
+
+#ifndef _VDM_ATP_STRUCT_H_
+#define _VDM_ATP_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ims_common_def.h"
+#include "vdm_imc_struct.h"
+#include "vdm_atp_enums.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "sim_public_enum.h"
+#include "mcd_l3_inc_struct.h"
+#include "c2k_irat_msg_struct.h"
+#include "l4b_vdm_struct.h"
+#include "l4_vdm_enum.h"
+
+#define VDM_AT_CMD_TO_MD_NAME_LEN 32
+#define VDM_AT_CMD_TO_MD_VALUE_LEN 512
+
+typedef enum 
+{
+    VDM_IRAT_STATUS_IDLE = 0,
+    VDM_IRAT_STATUS_ONGOING
+} vdm_irat_status_enum;
+
+
+typedef enum
+{
+    ADS_PROGRESS_ATTEMPT = 0,
+    ADS_PROGRESS_SUCCESS
+} ads_indication_progress_enum;
+
+
+typedef enum
+{
+    ADS_DOMAIN_CS = 0,
+    ADS_DOMAIN_IMS
+} ads_indication_domain_enum;
+
+typedef enum
+{
+    VDM_ADS_CALL_TYPE_INVALID = 0,
+    VDM_ADS_VOICE_OVER_CS,
+    VDM_ADS_VOICE_OVER_LTE,
+    VDM_ADS_VIDEO_OVER_LTE
+}vdm_ads_call_type_enum;
+
+typedef enum
+{
+    AP_CALL_STATE_IDLE = 0,
+    AP_CALL_STATE_RINGRING_FOR_MT_ONLY,
+    AP_CALL_STATE_OFFHOOK,
+} ap_call_state_enum;
+
+typedef enum
+{
+    AP_CALL_REASON_NORMAL = 0,
+    AP_CALL_REASON_SILENT_REDIAL,
+} ap_call_reason_enum;
+
+typedef enum
+{
+    AP_CALL_TYPE_VOICE = 0,
+    AP_CALL_TYPE_VIDEO,
+} ap_call_type_enum;
+
+/******************************************************************************
+ * Common AT command structure
+ *****************************************************************************/
+
+/*
+ *  temp. for UT by MSC
+ */
+typedef struct
+{
+    kal_uint8                       at_cmd_string[128];
+    
+} at_cmd_buf_struct;
+
+
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    ims_result_code_enum            result;
+    ims_err_id_enum                 err_id;
+} vdm_atp_common_at_rsp_struct;
+
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_common_at_cnf_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8               call_id;
+    kal_uint8               ecpi_type;
+    ims_ecpi_info_struct    ecpi_info;
+} vdm_atp_common_cs_cc_epci_ind_struct;
+
+
+/******************************************************************************
+ * ATD<num> or ATD<num>;
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               dial_num[MAX_CC_ATD_NUM_LEN];
+    kal_bool                is_video_call;
+} vdm_atp_cmd_dial_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_rsp_struct;
+
+/******************************************************************************
+ * AT+CDV=<dial_num>,,,,,,so
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8               dial_num[MAX_CC_ATD_NUM_LEN];
+    kal_uint8               so;
+} vdm_atp_cmd_cdv_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_cdv_rsp_struct;
+
+/******************************************************************************
+ * AT+CDU=1,<uri>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               dial_uri[MAX_CC_CDU_URI_LEN];
+    kal_bool                video_call;
+    kal_uint8               clir;
+} vdm_atp_cmd_dial_uri_ind_struct;
+
+
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    ims_result_code_enum            result;
+    ims_err_id_enum                 err_id;
+    kal_uint8                       call_id;
+} vdm_atp_cmd_dial_uri_rsp_struct;
+
+
+/******************************************************************************
+ * AT+STKCALL=0 
+ * NOTE: This AT command is forwarded from ATP to VDM.
+ * NOTE: For AT_STKCALL=x where x!=0, this AT command is not forwarded to VDM.
+ *****************************************************************************/
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    sat_terminal_res_enum tr; // o or 4
+    kal_uint8 additional_info;
+} vdm_atp_cmd_stk_call_ind_struct;
+
+typedef struct
+{  
+    LOCAL_PARA_HDR 
+    proxy_cmd_result_enum            result;
+    atp_err_id_enum                  err_id;
+} vdm_atp_cmd_stk_call_rsp_struct;
+
+
+/******************************************************************************
+ * AT+EVADSMOD=<mode>,<ecc_preferred_domain>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    vdm_ads_mode_enum                   ads_mode;
+    vdm_ads_ecc_preferred_domain_enum   ads_ecc_preferred_domain;
+} vdm_atp_cmd_ads_mode_ind_struct;
+
+
+/******************************************************************************
+ * AT+EVADSREP=<mode>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    vdm_ads_result_report_mode_enum   ads_result_report_mode;
+} vdm_atp_cmd_ads_result_report_ind_struct;
+
+
+
+
+/******************************************************************************
+ * ATDE<num>;
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               dial_num[MAX_CC_ATD_NUM_LEN];
+} vdm_atp_cmd_dial_emerg_ind_struct;
+
+/******************************************************************************
+ * ATDER=<num>,<call_id>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               dial_num[MAX_CC_ATD_NUM_LEN];
+    kal_uint8               call_id;
+} vdm_atp_cmd_dial_emerg_retry_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_emerg_rsp_struct;
+
+typedef vdm_atp_common_at_cnf_struct vdm_atp_cs_cc_emerg_call_cnf_struct;
+
+
+/******************************************************************************
+ * ATDF<dial_string>,<from_line>[;]
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               dial_num[MAX_CC_ATD_NUM_LEN];
+    kal_uint8               from_line[IMC_MAX_URI_LENGTH];
+    kal_bool                is_video_call;
+} vdm_atp_cmd_dial_from_line_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_from_line_rsp_struct;
+
+
+/******************************************************************************
+ * AT+ECALLPULL
+ * This command is used to dial with call pull
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               dial_uri[MAX_CC_CDU_URI_LEN];
+    kal_bool                video_call;
+} vdm_atp_cmd_dial_call_pull_ind_struct;
+
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    ims_result_code_enum            result;
+    ims_err_id_enum                 err_id;
+    kal_uint8                       call_id;
+} vdm_atp_cmd_dial_call_pull_rsp_struct;
+
+/******************************************************************************
+ * AT+EWFCP=<profile>;
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    wfc_profile_enum wfc_profile;
+} vdm_atp_cmd_wfc_profile_ind_struct;
+
+
+/******************************************************************************
+ * AT+EVPC2K=<is_voice_prefer_c2k>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_voice_prefer_c2k;
+} vdm_atp_cmd_voice_call_prefer_c2k_ind_struct;
+
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=130>,<is_ibt>,<is_tch>,<dir>,
+ *       <call_mode>,[<number>,<type>],"<pau">,[<disc_cause>]
+ *****************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8               call_id;
+    ims_ecpi_info_struct    ecpi_info;
+} vdm_atp_snd_ecpi_mo_call_id_alloc_req_struct;
+
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=0>,<is_ibt>,<is_tch>,<dir>,
+ *       <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8               call_id;
+    ims_ecpi_info_struct    ecpi_info;
+} vdm_atp_snd_ecpi_mt_call_setup_req_struct;
+
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=133>,<is_ibt>,<is_tch>,<dir>,
+ *       <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                   call_id;
+    ims_ecpi_info_struct        ecpi_info;
+    kal_bool                    is_far_end;
+} vdm_atp_snd_ecpi_call_release_req_struct;
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=137>,<is_ibt>,<is_tch>,<dir>,
+ *       <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                   call_id;
+    ims_ecpi_info_struct        ecpi_info;
+} vdm_atp_snd_ecpi_rtt_redial_req_struct;
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type!=0,130,133>,<is_ibt>,<is_tch>,<dir>,
+ *       <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef vdm_atp_common_cs_cc_epci_ind_struct vdm_atp_cs_cc_ecpi_translate_ind_struct;
+
+typedef vdm_atp_cs_cc_ecpi_translate_ind_struct vdm_atp_cs_cc_ecpi_translate_rsp_struct;
+typedef vdm_atp_cs_cc_ecpi_translate_ind_struct vdm_atp_c2k_cc_ecpi_translate_rsp_struct;
+
+
+/******************************************************************************
+ * AT+CHLD=[<n>]
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                       call_id;
+    ims_call_related_ss_type_enum   opcode;
+    ims_cc_mo_disconnect_cause_enum cause;
+} vdm_atp_cmd_call_related_ss_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_call_related_ss_rsp_struct;
+
+typedef vdm_atp_cmd_call_related_ss_ind_struct vdm_atp_cs_cc_call_related_ss_req_struct;
+
+/******************************************************************************
+ * ATH
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+} vdm_atp_cmd_hangup_all_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_hangup_all_rsp_struct;
+
+/******************************************************************************
+ * AT+ECHUP=<call_id>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8 call_id;
+} vdm_atp_cmd_force_hangup_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_force_hangup_rsp_struct;
+
+/******************************************************************************
+ * Combine ims_cc_eaic_info_struct with l4b_cc_eaic_info_struct
+ *****************************************************************************/
+typedef struct
+{
+    kal_uint8 number[MAX_CC_ECPI_NUM_LEN];
+    ims_call_type_enum call_type;
+    ims_call_mode_enum call_mode;
+    kal_uint8 redirect_num[MAX_CC_ECPI_NUM_LEN];        // CS CC
+    kal_uint8 digit_to_line_number[IMC_MAX_URI_LENGTH]; // IMS CC
+} vdm_atp_cc_eaic_info_struct;
+
+/******************************************************************************
+ * +EAIC: <call_id>,<number>,<type>,<call_mode>,<seq_no>[,<redirect_num>[,<digit_to_line_num>]]
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                       call_id;
+    vdm_atp_cc_eaic_info_struct eaic_info;
+    kal_uint8                       seq_no;
+    vdm_enh_volte_si_flow_enum      evoltesi_flow;
+} vdm_atp_snd_mt_call_approve_req_struct;
+
+/******************************************************************************
+ * AT+EAIC=<mode>,<call_id>,<seq_no>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                                               call_id;
+    kal_uint8                                               seq_no;
+    vdm_atp_mt_call_approval_mode_enum                      eaic_mode;
+    ims_cc_eaic_result_enum                                 eaic_result;
+    atp_cmd_mode_enum                                       cmd_mode;
+    kal_uint16 reject_cause;
+} vdm_atp_cmd_mt_call_approve_ind_struct;
+
+typedef struct 
+{  
+    LOCAL_PARA_HDR
+    atp_cmd_mode_enum                                       cmd_mode;
+    ims_result_code_enum                                    result;
+    ims_err_id_enum                                         err_id;
+    vdm_atp_mt_call_approval_mode_enum                      eaic_mode;
+} vdm_atp_cmd_mt_call_approve_rsp_struct;
+
+/******************************************************************************
+ * ATA
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+} vdm_atp_cmd_mt_call_accept_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_mt_call_accept_rsp_struct;
+
+/******************************************************************************
+ * VTS=<dtmf>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8   digit;
+} vdm_atp_cmd_dtmf_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dtmf_rsp_struct;
+
+/******************************************************************************
+ * AT+EVTS=<action>,<digit>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    ims_dtmf_action_enum            action;
+    kal_uint8                       digit;
+} vdm_atp_cmd_ext_dtmf_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_ext_dtmf_rsp_struct;
+
+/******************************************************************************
+ * AT+CEER
+ * +CEER:<cause>,<report>
+ * NOTE: ATP maps <ceer_cause> (int) to <report> (char string)
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+} vdm_atp_cmd_ext_error_report_ind_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    ims_ext_error_report_enum       ceer_cause;
+    ims_result_code_enum            result;
+    ims_err_id_enum                 err_id;
+    kal_uint16                      ecc_category;
+} vdm_atp_cmd_ext_error_report_rsp_struct;
+
+/******************************************************************************
+ * AT+CSTA:<type>
+ * NOTE: ATP multicasts this command to VDM (without rsp) and ATCI 
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8       type;
+} vdm_atp_cmd_select_type_of_addr_ind_struct;
+
+
+/******************************************************************************
+ * AT+CLCC
+ * +CLCC:<idx>,<dir>,<stat>,<mode>,<mpty>,[<number>,<type>[,<alpha>[,<priority>[,<CLI_validity>]]]]... 
+ *****************************************************************************/
+typedef vdm_imc_ims_cc_list_current_calls_req_struct 
+        vdm_atp_cmd_list_current_calls_ind_struct;
+
+//avoid modifying ims_interface_md.h, declare new structure for CS CLCC
+typedef struct {
+    kal_uint8               call_id;
+    ims_call_dir_enum       dir;
+    ims_call_state_enum     call_state;
+    ims_call_mode_enum      call_mode;
+    kal_bool                mpty;  // FALSE: is NOT conference call, TRUE: is conference call
+    ims_call_type_enum      call_type;
+    kal_uint8               number[MAX_CC_ATD_NUM_LEN];
+    kal_uint8               cli_validity;
+} vdm_atp_call_list_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   total_call;
+    vdm_atp_call_list_struct   call_list[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_list_current_calls_rsp_struct;
+
+
+/******************************************************************************
+ * AT+CLCCS
+ * +CLCCS: <ccid1>,<dir>,<neg_status_present>,<neg_status>,<SDP_md>,<cs_mode>,<ccstatus>,<mpty>,[,<numbertype>,<ton>,<number>[,<priority_present>,<priority>[,<CLI_validity_present>,<CLI_validity>]]]
+ *****************************************************************************/
+typedef vdm_atp_cmd_list_current_calls_ind_struct 
+        vdm_atp_cmd_list_current_calls_ext_ind_struct;
+
+typedef struct {
+    kal_uint8                   call_id;
+    l4_call_dir_enum            dir;
+    l4_clccs_call_mode_enum     clccs_cs_mode;
+    l4_call_ccstatus_enum       ccstatus;
+    kal_bool                    mpty;  // FALSE: is NOT conference call, TRUE: is conference call
+    l4_call_number_type_enum    number_type;
+    l4_call_type_enum           call_type;
+    kal_uint8                   number[MAX_SIP_URI_LEN];
+    kal_bool                    cli_present;
+    kal_uint8                   cli_validity;
+} vdm_atp_call_list_ext_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   total_call;
+    vdm_atp_call_list_ext_struct   call_list[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_list_current_calls_ext_rsp_struct;
+
+/******************************************************************************
+ * +EADS: <progress>,<domain>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ads_indication_progress_enum    progress;
+    ads_indication_domain_enum      domain;
+} vdm_atp_snd_ads_status_req_struct;
+
+/******************************************************************************
+ * +EIMSINFO: <rat>,<cell_id>,<cell_service>, <plmn_id>,<plmn_type>,
+ *            <lac>,<tac>,<support_emc>,<lte_underly_cs_plmn_id>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    rat_enum                        rat;
+    cell_service_enum               cell_service;
+    kal_bool                        is_limited_service_emc_support;
+    kal_uint32                      cell_id;
+    plmn_id_struct                  plmn_id;
+    domain_id_enum                  domain_id;
+    plmn_id_struct                  lte_cs_plmn_id;//LTE underlying CS PLMN ID, only available for LTE combined attach UE
+#if defined(__NG_ECALL_SUPPORT__)    
+    kal_bool                        is_ecall_support;
+#endif
+} vdm_atp_cell_info_update_ind_struct;
+
+/******************************************************************************
+ * +VMCCMNC: <mcc>,<mnc> (source PSW)
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    plmn_id_struct                  plmn_id;
+} vdm_atp_c2k_mccmnc_ind_struct;
+
+/******************************************************************************
+ * IMS Registration relayed by ATP (source: IMC)
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    ims_reg_state_enum              reg_state;
+    ims_reg_type_enum               reg_type;
+    ims_access_rat_enum             rat;
+    ims_reg_service_enum            reg_service;
+	ims_reg_event_enum              reg_event;
+    imcb_imc_sip_cause_enum         sip_cause;
+    ims_reg_sub_state_enum          reg_sub_state;
+    kal_bool                        has_sent_register;
+} vdm_atp_ims_reg_status_ind_struct;
+
+/******************************************************************************
+ * AT+EVVS=<voice_status>,<is_emergency>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                       voice_status;
+    kal_bool                        is_emergency;
+} vdm_atp_cmd_call_status_ind_struct;
+
+
+/******************************************************************************
+ * TODO
+ *****************************************************************************/
+
+typedef vdm_imc_ims_cc_list_current_calls_req_struct 
+        vdm_atp_cs_cc_list_current_calls_req_struct;
+
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    // TODO 
+} vdm_atp_snd_ads_attempt_notification_req_struct;
+
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    // TODO 
+} vdm_atp_snd_ads_end_notification_req_struct;
+
+
+/******************************************************************************
+ * +CRING: <type>
+ * NOTE: <type> is string type but without ""
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_snd_mt_call_ring_req_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/******************************************************************************
+ * AT+EGMC: <OP>,<Configure_Name>,<Set_Value>
+ * NOTE:in game mode to release ERRC
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_cmd_general_modem_configure_set_struct;
+
+/******************************************************************************
+ * AT+EVOLTESI: <mode>
+ * NOTE:Enhanced VOLTE Short Interruption is ON/OFF
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    vdm_trk_enh_volte_si_enum is_enh_volte_si;
+} vdm_atp_cmd_enh_volte_si_ind_struct;
+
+/******************************************************************************
+ * +ECRFCPY: <call_id>,<call_status>
+ * NOTE:Enhance VOLTE call status update to normal
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint32                            call_id;  
+    ims_enh_volte_si_call_status_enum     call_status;
+} vdm_atp_snd_enh_volte_si_call_status_ind_struct;
+
+/******************************************************************************
+ * +ECONFSRVCC: <call_no>,<call1_id>[,<call2_id>[,<call3_id>[,...]]]
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint32                   num_of_conf_parts;
+    kal_uint32                   call_id_table[IMS_MAX_CALL_NUM];
+} vdm_atp_snd_srvcc_conf_call_id_req_struct;
+
+
+/******************************************************************************
+ * +EVADSREP: <domain>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    vdm_ads_result_enum     ads_result;
+} vdm_atp_snd_ads_result_report_req_struct;
+
+
+/******************************************************************************
+ * +ERDECCIND: <call_id>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8               call_id;
+} vdm_atp_snd_ads_switch_to_emergency_req_struct;
+
+
+/******************************************************************************
+ * IMS Handover (WIFI/LTE) status relayed by ATP (source: IMC)
+ *****************************************************************************/
+typedef struct 
+{ 
+    LOCAL_PARA_HDR 
+    ims_access_rat_enum             source_rat;
+    ims_access_rat_enum             target_rat;
+    ims_reg_type_enum               reg_type;
+} vdm_atp_ims_handover_start_ind_struct;
+
+typedef struct 
+{ 
+    LOCAL_PARA_HDR 
+    ims_access_rat_enum             source_rat;
+    ims_access_rat_enum             target_rat;
+    kal_bool                        result;
+    ims_reg_type_enum               reg_type;
+} vdm_atp_ims_handover_end_ind_struct;
+
+/******************************************************************************
+ * +EICE: <ims_call_exist>,<is_emergency>,<ims_access_rat>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint32                  is_ims_call_exist;
+    kal_bool                    is_emergency;
+    ims_access_rat_enum         ims_access_rat;
+#ifdef __TC01_IMS_SUPPORT__
+    kal_uint32                  call_id; 
+    ap_call_state_enum          call_state;
+    ap_call_reason_enum         call_reason;
+    ap_call_type_enum           call_type;
+#endif
+} vdm_atp_cmd_ims_call_exist_ind_struct;
+
+/******************************************************************************
+ * AT+ECNWS=<available_rat>,<prefer_rat>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    rat_enum                    available_rat;
+    rat_enum                    prefer_rat;
+} vdm_atp_cmd_call_nw_scan_ind_struct;
+
+/******************************************************************************
+ * AT+EDCONF
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8               conf_call_participants;
+    kal_uint8               conf_call_number_list[IMS_MAX_CALL_NUM_IN_CONF][MAX_CC_ATD_NUM_LEN];
+    kal_bool                is_video_call;
+} vdm_atp_cmd_dial_conf_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_conf_rsp_struct;
+
+/******************************************************************************
+ * +ECONFCHECK:<num_of_conf_call_members>,<is_allowed>[,<is_allowed>...
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                    conf_call_participants;
+    kal_bool                     is_allowed[IMS_MAX_CALL_NUM_IN_CONF];
+} vdm_atp_snd_conf_check_result_req_struct;
+
+
+/******************************************************************************
+ * +QUERYTRN: <call_id>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                   call_id;
+    kal_uint8                   dial_string[MAX_CC_ECPI_NUM_LEN];
+    kal_uint8                   from_line[IMC_MAX_URI_LENGTH];
+} vdm_atp_snd_digits_trn_query_req_struct;
+
+/******************************************************************************
+ * AT+DIGITSTRN=<call_id>,<TRN>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                   call_id;
+    kal_uint8                   trn[MAX_CC_ATD_NUM_LEN];
+} vdm_atp_cmd_ads_digits_trn_ind_struct;
+
+
+/******************************************************************************
+ * EVTA
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_uint8                   call_id;
+    ims_cc_evta_mode_enum       mode;
+} vdm_atp_cmd_mt_vt_special_accept_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_mt_vt_special_accept_rsp_struct;
+
+/******************************************************************************
+ * AT+EIMSCCP=<op> / AT+ECCP=<op>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    vdm_video_capability_enum   video_capability;
+    kal_bool                    on_off;
+} vdm_atp_cmd_video_capability_ind_struct;
+
+/******************************************************************************
+ * AT+EIMSCFG = <volte_cfg>, <vilte_cfg>, <vowifi_cfg>, <viwifi_cfg>, <ims_sms_cfg>, <eims_cfg>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    ims_cap_rat_enum vo3gpp_enable;   // currently not used by VDM
+    ims_cap_rat_enum vi3gpp_enable;   // previous AT+EIMSCCP
+    kal_bool is_vowifi_enable;  // previous AT+EIMSWFC
+    kal_bool is_viwifi_enable;  // previous AT+EIMSCCP, AP did not have this configuration
+} vdm_atp_cmd_ims_config_ind_struct;
+
+/******************************************************************************
+ * +EC2KREG: <domain>,<state>,<service>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    domain_id_enum               domain;
+    kal_bool                     state;
+    irat_ps_type_enum            service;
+} vdm_atp_c2k_service_state_ind_struct;
+
+/******************************************************************************
+ * +EC2KCI: <is_cs_conn_ongoing>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                    is_cs_conn_ongoing;
+} vdm_atp_c2k_1x_conn_status_ind_struct;
+
+/******************************************************************************
+ * +EXXX: <reported_rat>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8                    reported_rat;
+} vdm_atp_reported_rat_ind_struct;
+
+/******************************************************************************
+ * AT+EHVOLTE=<mode>,<submode>
+ * This command is used to set hvolte mode
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    hvolte_mode_enum mode;
+    kal_uint8 submode;
+} vdm_atp_gmss_set_hvolte_mode_req_struct;
+
+typedef vdm_atp_common_at_cnf_struct vdm_atp_gmss_set_hvolte_mode_cnf_struct;
+
+/******************************************************************************
+ * AT+EMCS=<mode>
+ * This command is used to set emergency call session start and end
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_emc_session_start_ind_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_emc_session_stop_ind_struct;
+
+/******************************************************************************
+ * AT+EMCB=<mode>
+ * This command is used to set emergency callback mode
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_emcb_mode_start_req_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_emcb_mode_stop_req_struct;
+
+/******************************************************************************
+ * AT+VMEMEXIT
+ * This command is used to exit emergency callback mode
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_cmd_exit_emcb_ind_struct;
+
+/******************************************************************************
+ * +ESVC:<emergency_service_category>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                   emergency_service_category;
+    atp_cmd_mode_enum            cmd_mode;
+} vdm_atp_cmd_emerg_serv_cat_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint16                   emergency_service_category;
+    ims_result_code_enum         result;
+    ims_err_id_enum              err_id;
+    atp_cmd_mode_enum            cmd_mode;
+} vdm_atp_cmd_emerg_serv_cat_rsp_struct;
+
+/******************************************************************************
+ * AT+EHVOLTE=0,1
+ * indication for silent redial event from AP to MD
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+} vdm_atp_hvolte_silent_redial_ind_struct;
+
+/******************************************************************************
+ * AT+ECBM
+ * This command is used to enter/exit emergency callback mode
+ *****************************************************************************/
+ 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    rat_enum                ecbm_rat_mode;
+} vdm_atp_ecbm_mode_start_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    rat_enum                ecbm_rat_mode;
+} vdm_atp_ecbm_mode_stop_req_struct;
+
+/******************************************************************************
+ * AT+ECFGSET=<cfg_name>,<cfg_value>
+ * Set VDM setting through this AT command
+ *****************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8    name[64];      
+    kal_uint8    value[128];    
+} vdm_atp_ecfg_set_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_ecfg_set_rsp_struct;
+
+/******************************************************************************
+ * AT+EIMSRTT=<op>
+ * Set rtt_capability through this AT command
+ *****************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8           operation;      
+} vdm_atp_cmd_rtt_capability_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_rtt_capability_rsp_struct;
+
+/******************************************************************************
+ * AT+ESELFACT="<key>","<value>"
+ * Set Vzw self-activation feature related value through this AT command
+ *****************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8           key[16];
+    kal_uint8           value[16];
+} vdm_atp_cmd_self_activation_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_self_activation_rsp_struct;
+
+/******************************************************************************
+ * AT+VMEMEXIT result
+ *****************************************************************************/
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_vmemexit_rsp_struct;
+
+/******************************************************************************
+ * AT+EMCS=<mode>[,<airplane_mode>,<ims_reg_state>]
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8   mode;
+    kal_uint8   airplane_mode;
+    kal_uint8 ims_reg_state;
+    atp_channel_enum ch_id;
+    kal_bool is_stop_from_ap;
+} atp_vdm_cmd_emcs_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8   mode;
+    kal_uint8   airplane_mode;
+    kal_uint8 ims_reg_state;
+    atp_channel_enum ch_id;
+    kal_bool response_at_ok;
+} atp_vdm_cmd_emcs_cnf_struct;
+
+/******************************************************************************
+ * AT+EMCSS=<mode>,<available_rat>,<prefer_rat>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8   mode;
+    rat_enum    available_rat;
+    rat_enum    prefer_rat;
+}atp_vdm_cmd_emcss_ind_struct;
+
+/******************************************************************************
+ * AT+ECBM=<mode>,<rat_mode>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 mode;
+    rat_enum rat_mode;
+} atp_vdm_cmd_ecbm_req_struct;
+
+/******************************************************************************
+ * +EMCSS: <available_rat>,<cause>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    rat_enum    available_rat;
+    vdm_emcss_cause_enum cause;
+} atp_vdm_snd_emcss_urc_req_struct;
+
+/******************************************************************************
+ * +ECNWS: <proc_status>
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    proc_status_enum                status;
+} atp_vdm_snd_ecnws_urc_req_struct;
+
+/******************************************************************************
+ * +CIEV: 102,<ecbm_status>
+ *  ecbm_status:
+ *      0 - ECBM end
+ *      1 - ECBM start
+ *      2 - disable ECBM (notify AP need not to enter ECBM, leave emc mode directly)
+ *****************************************************************************/
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    kal_uint8 ecbm_status;
+} atp_vdm_snd_ecbm_urc_req_struct;
+
+/******************************************************************************
+ * AT+ERDECCAPV=<is_approve>,<call_id>
+ * Set leaving flight mode result through this AT command
+ *****************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   is_approve;
+    kal_uint8   call_id;
+} vdm_atp_cmd_switch_to_emergency_ind_struct;
+
+/******************************************************************************
+ * AT+ESRVCCTFR: <call_num>, <call1_id>,<call1_mode>,<call1_direction>,<call1_state>,<call1_ecc_category>,<call1_number type>,<call1_number>,<call1_alpha>,<call1_CLI validity>
+ *****************************************************************************/
+typedef struct
+{
+    kal_uint8                           call_id;      /* call_id_ims = call_id_ap */
+    ims_srvcc_call_mode_enum            call_mode;
+    ims_srvcc_call_direction_enum       call_direction;
+    ims_srvcc_call_state_enum           call_state;
+    ims_srvcc_call_ecc_category_enum    call_ecc_category;
+    ims_srvcc_call_number_format_enum   call_number_format;
+    kal_uint8                           call_number[IMC_MAX_URI_LENGTH];  
+    //these two parameter is defined by L4 but seems not used by IMS CC
+    kal_uint8                           call_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+    kal_uint8                           cli;
+
+    //just for TK compatible, not sure how to use this in TC01 project
+    kal_uint8                           num_of_conf_parts; 
+} ims_srvcc_call_ctxt_to_cs_struct;
+
+typedef struct
+{    
+    LOCAL_PARA_HDR    
+    kal_uint32                          num_call;    
+    ims_srvcc_call_ctxt_to_cs_struct	srvcc_call_ctxt_to_cs_domain[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_srvcc_context_transfer_ind_struct; //MSG_ID_VDM_ATP_CMD_SRVCC_CONTEXT_TRANSFER_IND
+
+/******************************************************************************
+ * +ESRVCCTFR: <call_no>[,<call1_id>[,<call2_id>[,...]]]
+ *****************************************************************************/
+typedef struct 
+{      
+    LOCAL_PARA_HDR     
+    kal_uint32                   num_of_call_instances;    
+    kal_uint32                   call_id_table[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_srvcc_context_transfer_rsp_struct; // MSG_ID_VDM_ATP_CMD_SRVCC_CONTEXT_TRANSFER_RSP
+
+/******************************************************************************
+ * +ERESELR:<result>
+ *****************************************************************************/
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result; //0, fail; 1, success
+} vdm_atp_ssac_resel_result_ind_struct;
+
+/******************************************************************************
+ * AT+EMGC
+ *****************************************************************************/
+typedef enum {
+    VDM_EMGC_OP_QUERY = 0,
+    VDM_EMGC_OP_SET
+} vdm_atp_emgc_op_enum;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    vdm_atp_emgc_op_enum op;
+    kal_uint8 name[VDM_AT_CMD_TO_MD_NAME_LEN];
+    kal_uint8 value[VDM_AT_CMD_TO_MD_VALUE_LEN];
+} vdm_atp_at_cmd_to_md_ind_struct;
+
+/******************************************************************************
+ * AT+EVODATA = <en>[,<data_mode>[,<allow_rat>]]
+ *****************************************************************************/
+typedef struct 
+{  
+    LOCAL_PARA_HDR 
+    kal_bool is_vodata_enable;  
+} vdm_atp_cmd_evodata_config_ind_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+/******************************************************************************
+ * AT+CECALL=<type_of_eCall>[,<format>,<msd_data_length>,<msd_data>]
+ * Dial eCall through this AT command
+ *****************************************************************************/
+typedef struct {
+    LOCAL_PARA_HDR
+    ecall_type_enum ecall_type;
+    ecall_format_enum ecall_format;
+    kal_uint8 msd_data_len;
+    kal_uint8 msd_data[MAX_MSD_LENGTH];
+} vdm_atp_cmd_dial_ecall_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_ecall_rsp_struct;
+#endif
+#endif // _VDM_ATP_STRUCT_H_
+
diff --git a/mcu/protocol/interface/l4misc/wo_l4bnw_struct.h b/mcu/protocol/interface/l4misc/wo_l4bnw_struct.h
new file mode 100644
index 0000000..b12b6cf
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/wo_l4bnw_struct.h
@@ -0,0 +1,74 @@
+/*****************************************************************************
+*  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) 2012
+*
+*  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:
+ * ---------
+ *   wo_l4bnw_struct.h
+ *
+ * Project:
+ * --------
+ *   
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *  
+ *   
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef  _WO_L4BNW_STRUCT_H
+#define  _WO_L4BNW_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l4bnw_public_struct.h"
+
+typedef struct {
+    LOCAL_PARA_HDR
+    l4bnw_public_attached_network_info_struct attached_network_info;
+} wo_l4bnw_attached_rat_ind_struct;
+
+#endif /* _WO_L4BNW_STRUCT_H */