[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/layer4/l4/include/atci_trc.h b/mcu/protocol/layer4/l4/include/atci_trc.h
new file mode 100644
index 0000000..5e2c699
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/atci_trc.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) 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:
+ * ---------
+ * ATCI_TRC.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 _ATCI_TRC_H
+#define _ATCI_TRC_H
+//__GATI_ENABLE__
+#ifndef GEN_FOR_PC
+   #ifndef _STACK_CONFIG_H
+   #error "stack_config.h should be included before tst_config.h"
+   #endif
+#else
+   #include "kal_trace.h"
+#endif /* GEN_FOR_PC */
+#ifndef _KAL_TRACE_H
+   #error "kal_trace.h should be included before tst_trace.h"
+#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
+#if !defined(GEN_FOR_PC)
+#include"atci_trc_mod_atci_utmd.h"
+#endif
+#endif
diff --git a/mcu/protocol/layer4/l4/include/atci_trc_mod_atci_utmd.json b/mcu/protocol/layer4/l4/include/atci_trc_mod_atci_utmd.json
new file mode 100644
index 0000000..04f8982
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/atci_trc_mod_atci_utmd.json
@@ -0,0 +1,4977 @@
+{
+  "endGen": "-", 
+  "legacyParameters": {}, 
+  "module": "MOD_ATCI", 
+  "startGen": "Legacy", 
+  "traceClassDefs": [
+    {
+      "TRACE_INFO": {
+        "debugLevel": "Ultra-High", 
+        "tag": [
+          "Baseline", 
+          "TRACE_INFO"
+        ], 
+        "traceType": "InternalDesign"
+      }
+    }, 
+    {
+      "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_GATI_DATA_REQ_HDLR": {
+        "apiType": "index", 
+        "format": "gati_data_req_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_DATA_RSP_HDLR": {
+        "apiType": "index", 
+        "format": "gati_data_rsp_hdlr", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_CTRL_REQ_HDLR": {
+        "apiType": "index", 
+        "format": "gati_ctrl_req_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SWITCH_MODE_REQ_HDLR": {
+        "apiType": "index", 
+        "format": "gati_switch_mode_req_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SUSPEND_READ_FROM_UART": {
+        "apiType": "index", 
+        "format": "gati_suspend_read_from_uart()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEND_DATA_CNF": {
+        "apiType": "index", 
+        "format": "gati_send_data_cnf()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_REGISTER_MODULE": {
+        "apiType": "index", 
+        "format": "gati_register_module()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEND_DATA_IND": {
+        "apiType": "index", 
+        "format": "gati_send_data_ind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEND_RTW_IND": {
+        "apiType": "index", 
+        "format": "gati_send_rtw_ind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEND_ILM": {
+        "apiType": "index", 
+        "format": "gati_send_ilm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_FLUSH_BUFFER": {
+        "apiType": "index", 
+        "format": "gati_flush_buffer()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_INSERT_DATA_TO_BUFFER": {
+        "apiType": "index", 
+        "format": "gati_insert_data_to_buffer()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEARCH_MOD_INDEX": {
+        "apiType": "index", 
+        "format": "gati_search_mod_index()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEARCH_COMMAND": {
+        "apiType": "index", 
+        "format": "gati_search_command()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_COMMAND_HDLR": {
+        "apiType": "index", 
+        "format": "gati_command_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEND_CTRL_CNF": {
+        "apiType": "index", 
+        "format": "gati_send_ctrl_cnf()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GATI_SEND_SWITCH_MODE_CNF": {
+        "apiType": "index", 
+        "format": "gati_send_switch_mode_cnf()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_NVRAM_READ_CNF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_nvram_read_cnf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_REGISTER_MODULE": {
+        "apiType": "index", 
+        "format": "gas_register_module()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_SEND_DATA_IND": {
+        "apiType": "index", 
+        "format": "gas_send_data_ind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_SEND_ILM": {
+        "apiType": "index", 
+        "format": "gas_send_ilm()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_SEARCH_MOD_INDEX": {
+        "apiType": "index", 
+        "format": "gas_search_mod_index()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_SEARCH_COMMAND": {
+        "apiType": "index", 
+        "format": "gas_search_command()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_COMMAND_HDLR": {
+        "apiType": "index", 
+        "format": "gas_command_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_DATA_REQ_HDLR": {
+        "apiType": "index", 
+        "format": "gas_data_req_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_GAS_DATA_RSP_HDLR": {
+        "apiType": "index", 
+        "format": "gas_data_rsp_hdlr", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMD_PROCESSOR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmd_processor()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_PROCESS_MULTI_CMD_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_process_multi_cmd()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FIND_CMD_CLASS_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_find_cmd_class()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_BASIC_CMD_PROCESSOR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_basic_cmd_processor()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EXTENDED_CMD_PROCESSOR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_extended_cmd_processor()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EXTENDED_COMMAND_ANALYZER_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_extended_command_analyzer()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_BASIC_COMMAND_ANALYZER_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_basic_command_analyzer()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_PROCESS_ONE_CMD_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_process_one_cmd()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_AGPS_COMMAND_ANALYZER_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_agps_command_analyzer()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_CALL_METER_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_call_meter_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_CALL_WAIT_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_call_wait_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_CALL_RING_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_call_ring_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_CALL_RELEASE_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_call_release_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_CALL_MODIFY_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_call_modify_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_CALL_CONNECT_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_call_connect_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_USSR_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_ussr_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_USSN_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_ussn_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PS_CONNECT_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ps_connect_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PS_ACTIVATE_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ps_activate_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NW_REG_STATE_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_nw_reg_state_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NW_TIME_ZONE_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_nw_time_zone_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_NEW_MSG_INDEX_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_new_msg_index_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_NEW_MSG_TEXT_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_new_msg_text_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_NEW_MSG_PDU_RIND_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_new_msg_pdu_rind()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_GENERAL_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_general_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_EXE_HANGUP_ACTIVE_CALL_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_exe_hangup_active_call_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_GET_CALL_LIST_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_get_call_list_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_EXE_CALL_ACCEPT_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_exe_call_accept_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_EXE_CALL_SETUP_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_exe_call_setup_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_CC_EXE_CALL_MODIFY_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_cc_exe_call_modify_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_DF_EXE_BACK_DATA_STATE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_df_exe_back_data_state_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_EMLPP_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_emlpp_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CALL_FORWARD_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_call_forward_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CALL_WAIT_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_call_wait_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CDIP_INTERROGATE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_cdip_interrogate_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CLIP_INTERROGATE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_clip_interrogate_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CLIR_INTERROGATE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_clir_interrogate_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CNAP_INTERROGATE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_cnap_interrogate_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_COLP_INTERROGATE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_colp_interrogate_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SS_EXE_CALL_BARRING_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_ss_exe_call_barring_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NW_GET_PLMN_LIST_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_nw_get_plmn_list_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_PHB_GET_ENTRY_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_phb_get_entry_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_EXE_RESTRICTED_ACCESS_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_exe_restricted_access_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_WRITE_SIM_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_write_sim_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_EXE_DIAL_MODE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_exe_dial_mode_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_GET_SHARED_KEY_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_get_shared_key_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_GET_SLB_VERSION_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_get_slb_version_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_GET_SIM_LOCK_STATUS_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_get_sim_lock_status_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMU_SML_STATUS_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_smu_sml_status_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_SEND_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_send_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_READ_MSG_LIST_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_read_msg_list_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_READ_MSG_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_read_msg_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_READ_MSG_LIST_PDU_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_read_msg_list_pdu_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_EMGL_LIST_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_emgl_list_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_READ_MSG_PDU_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_read_msg_pdu_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_WRITE_MSG_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_write_msg_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_SET_PREFERRED_MEM_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_set_preferred_mem_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EQ_WRITE_NVRAM_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eq_write_nvram_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EQ_READ_NVRM_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eq_read_nvram_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_IMS_SEND_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_ims_send_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SMS_EXE_IMS_SEND_FROM_STORAGE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sms_exe_ims_send_from_storage_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SCP_CELLINFO_SEND_REQ_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_scp_cellinfo_send_req()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_NW_BAND_INFO_RIND": {
+        "apiType": "index", 
+        "format": "l4c_nw_band_info_rind", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_EVAL_LTE_TM9_READ_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_eval_lte_tm9_read_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSIM_ERROR_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csim_error_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CNVRM_ERROR_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnvrm_error_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_RESULT_CODE_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_result_code_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLCC_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clcc_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CAEMLPP_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_caemlpp_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCFC_INTERROGATE_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccfc_interrogate_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCWA_INTERROGATE_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccwa_interrogate_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CDIP_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cdip_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLIP_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clip_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLIR_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clir_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CNAP_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnap_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_COLP_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_colp_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLCK_INTERROGATE_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clck_interrogate_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CRSM_EXE_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_crsm_exe_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_COPS_TEST_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cops_test_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_PHB_ENTRY_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_phb_entry_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_PHB_MSISDN_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_phb_msisdn_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_SEND_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_send_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_LIST_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_list_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_READ_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_read_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_WRITE_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_write_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_STORAGE_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_storage_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FAST_STRING_PRINT_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fast_string_print()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_IMS_SEND_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_ims_send_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_IMS_RECV_IND_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_ims_recv_ind_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_IMS_SMMA_RSP_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_ims_smma_rsp_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_IMS_SMMA_IND_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_ims_smma_ind_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_INT_TO_ASCII_CONVERTER_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_int_to_ascii_converter()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_INT_VALIDATOR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_int_validator()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_CHLD_OPCODE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_chld_opcode()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PHB_STORAGE_NAME_ENTRY": {
+        "apiType": "index", 
+        "format": "check_phb_storage_name()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PHB_STORAGE_CODE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_phb_storage_code()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_DCS_TOGSM7BIT_ENTRY": {
+        "apiType": "index", 
+        "format": "check_dcs_toGsm7bit()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_DCS_TOCSCS_ENTRY": {
+        "apiType": "index", 
+        "format": "check_dcs_toCscs()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_SMS_STORAGE_NAME_ENTRY": {
+        "apiType": "index", 
+        "format": "check_sms_storage_name()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_SMS_STORAGE_CODE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_sms_storage_code()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_SMS_SCTS_ENTRY": {
+        "apiType": "index", 
+        "format": "check_sms_scts()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_FACILITY_TYPE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_facility_type()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PIN_NAME_ENTRY": {
+        "apiType": "index", 
+        "format": "check_pin_name()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PPU_VALUE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_ppu_value()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PPU_STRING_ENTRY": {
+        "apiType": "index", 
+        "format": "check_ppu_string()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_PARSE_INT_LIST_ENTRY": {
+        "apiType": "index", 
+        "format": "parse_int_list()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_CHAR_SET_NAME_ENTRY": {
+        "apiType": "index", 
+        "format": "check_char_set_name()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_CHAR_SET_CODE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_char_set_code()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_KEYPAD_CODE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_keypad_code()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PDP_TYPE_NAME_ENTRY": {
+        "apiType": "index", 
+        "format": "check_pdp_type_name()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_PDP_TYPE_CODE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_pdp_type_code()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_DOTTED_VALUE8_ENTRY": {
+        "apiType": "index", 
+        "format": "check_dotted_value8()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_DOTTED_VALUE16_ENTRY": {
+        "apiType": "index", 
+        "format": "check_dotted_value16()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_IPV6_ADDR_VALUE16_ENTRY": {
+        "apiType": "index", 
+        "format": "check_ipv6_addr_value16()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_DOTTED_STRING8_ENTRY": {
+        "apiType": "index", 
+        "format": "check_dotted_string8()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_DOTTED_STRING16_ENTRY": {
+        "apiType": "index", 
+        "format": "check_dotted_string16()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_HEX_VALUE_ENTRY": {
+        "apiType": "index", 
+        "format": "check_hex_value()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_REMOVE_MF_FROM_PATHID_ENTRY": {
+        "apiType": "index", 
+        "format": "remove_mf_from_pathid()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_CHECK_SMS_PDU_STRING_ENTRY": {
+        "apiType": "index", 
+        "format": "check_sms_pdu_string()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FIND_CMD_MODE_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_find_cmd_mode()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_STRING_VALIDATOR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_string_validator()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SMS_TEXT_VALIDATOR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_sms_text_validator()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_EXTRACT_NUMBER_ENTRY": {
+        "apiType": "index", 
+        "format": "extract_number()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_EXTRACT_HEX_NUMBER_ENTRY": {
+        "apiType": "index", 
+        "format": "extract_hex_number()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_SKIP_LEADING_CHARS_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_skip_leading_chars()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_EXTRACT_NUMBER_STRING_ENTRY": {
+        "apiType": "index", 
+        "format": "extract_number_string()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_SMS_MSG_CMD_ENTRY": {
+        "apiType": "index", 
+        "format": "is_sms_msg_cmd()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_SMS_STD_CMD_ENTRY": {
+        "apiType": "index", 
+        "format": "is_sms_standard_command()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IS_SMS_MODE_CORRECT_ENTRY": {
+        "apiType": "index", 
+        "format": "is_sms_mode_correct()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RTC_TO_STRING_FORMAT_ENTRY": {
+        "apiType": "index", 
+        "format": "rtc_to_string_format()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_STRING_TO_RTC_FORMAT_ENTRY": {
+        "apiType": "index", 
+        "format": "string_to_rtc_format()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_TOUPPER_ENTRY": {
+        "apiType": "index", 
+        "format": "toUpper()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_PRINT_HEX_VALUE_ENTRY": {
+        "apiType": "index", 
+        "format": "print_hex_value()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SAT_PROFILE_WRITE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sat_profile_write_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_UART_RTW_IND_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_uart_rtw_ind_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_UART_RTR_IND_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_uart_rtr_ind_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_UART_SEND_DATA_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_uart_send_data()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_UART_READ_DATA_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_uart_read_data()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_READ_FROM_UART_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_read_from_uart()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_WRITE_TO_UART_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_write_to_uart()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_RMMI_READ_FROM_TTY_PORT": {
+        "apiType": "index", 
+        "format": "rmmi_read_data_from_tty_port()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_RMMI_TTY_PORT_HDLR": {
+        "apiType": "index", 
+        "format": "rmmi_tty_port_input_handler()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_RMMI_SEND_TO_SAT_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_rsp_to_SAT()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SAT_ENVELOPE_RRSP_ENTRY": {
+        "apiType": "index", 
+        "format": "l4c_sat_envelope_rrsp()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_L4C_SAT_ECUSATS_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecusats_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_START_ATH_FOR_DIALUP_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_start_ath_for_dialup_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLEAR_ATH_FOR_DIALUP_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clear_ath_for_dialup_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IRCOMM_CONNECT_IND_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "ircomm_connect_ind_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_IRCOMM_DISCONNECT_IND_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "ircomm_disconnect_ind_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ata_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_atd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ate_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ath_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ats_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATV_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_atv_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_atq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ati_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_atl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ato_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ATAMP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_atamp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CACM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cacm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CAMM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_camm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CAOC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_caoc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCWE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccwe_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CBST_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cbst_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCUG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccug_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CHUP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_chup_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CHLD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_chld_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLCC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clcc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMOD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmod_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSNS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csns_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTFR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctfr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VTS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vts_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPAS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpas_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CAEMLPP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_caemlpp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCFC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccfc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCWA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccwa_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CDIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cdip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLCK_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clck_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLIR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clir_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_COLP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_colp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CNAP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnap_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPWD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpwd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSSN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cssn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CUSD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cusd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCBS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccbs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGATT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgatt_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_COPS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cops_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECELLMEAS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecellmeas_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGCLASS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgclass_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgreg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPBSE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epbse_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CEMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cems_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CFPS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnmp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CAPL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_capl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMPI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmpi_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSMA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csma_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSMN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csmn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_creg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CIMI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cimi_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPIN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpin_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPUC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpuc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPOL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpol_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPOL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epol_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CRSM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_crsm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSIM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csim_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGLA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgla_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EXCGLA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_excgla_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CRLA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_crla_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCHO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccho_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCHC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cchc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CUAD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cuad_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCSP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ccsp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSIMD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csimd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSRM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csrm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CALA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cala_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CALD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cald_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CCLK_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cclk_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSDF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csdf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSTF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cstf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CBC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cbc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CIND_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cind_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CKPD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ckpd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLAC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clac_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMEC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmec_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLAN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clan_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLAE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clae_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CLVL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_clvl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VGR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vgr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VGT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vgt_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CRSL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_crsl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMUT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmut_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSIL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csil_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTZR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctzr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTSA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctsa_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cso_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_css_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECSCN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecscn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CVIB_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cvib_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CBKLT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cbklt_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSGT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csgt_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGMI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgmi_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGMM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgmm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGMR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgmr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGSN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgsn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECAL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecal_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CASP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_casp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_DIAG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_diag_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CNUM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnum_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPBUM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epbum_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPBF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpbf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPBR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpbr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPBS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpbs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPBW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpbw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EAPPROVE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eapprove_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPBI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpbi_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGSMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgsms_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csms_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMGW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmgw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMGC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emgc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ENMA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_enma_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMGS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emgs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMGW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emgw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMGL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emgl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmms_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CMSS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cmss_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CPMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpms_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSCA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csca_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSCB_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cscb_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECBMR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecbmr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECSCBSW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecscbsw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECSCBCFG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecscbcfg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSMP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csmp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CNMI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnmi_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CNMA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cnma_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSDH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csdh_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESMSMAIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esmsmaip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESMSMOIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esmsmoip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESMSMTIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esmsmtip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_STKSMSOIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_stksmsoip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECMSS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecmss_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECMSSU_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecmssu_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESMMA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esmma_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSCS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cscs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CFUN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cfun_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGACT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgact_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EGACT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_egact_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMMCHLCK_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emmchlck_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECGREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecgreg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECEREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecereg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ETWMODE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_etwmode_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESIMAPP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esimapp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESCG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_escg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECAINFO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecainfo_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGCONTRDP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgcontrdp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGSCONTRDP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgscontrdp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGEQOS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgeqos_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGEQOSRDP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgeqosrdp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGTFTRDP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgtftrdp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CEMODE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cemode_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CEREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cereg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_C5GREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_c5greg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGDEL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgdel_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGANS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgans_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGAUTO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgauto_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGCMOD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgcmod_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGDATA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgdata_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EGLD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_egld_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGPADDR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgpaddr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGDCONT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgdcont_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EGDCONT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_egdcont_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EAPNSYNC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eapnsync_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECNCFG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecncfg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGDSCONT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgdscont_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGQMIN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgqmin_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGQREQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgqreq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGEQMIN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgeqmin_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGEQREQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgeqreq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGEQ_COMMON_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgeq_hdlr(), qos_type=%Matci_qos_enum", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGTFT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgtft_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EGDELPF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_egdelpf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EGLNKPF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eglnkpf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGSDATA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgsdata_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGPRCO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgprco_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CGAUTH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cgauth_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_PSBEARER_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_psbearer_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ELATTPDNCC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_elattpdncc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPDNCTRANS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epdnctrans_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CRLP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_crlp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCLASS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fclass_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ICF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_icf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_DS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ds_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CR_RESULT_CODE_FMTTR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cr_result_code_fmttr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CEER_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ceer_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPIN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epin_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPIN1_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epin1_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPIN2_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epin2_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPINC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cpinc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CSAS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_csas_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CRES_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_cres_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EFSR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_efsr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EFSW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_efsw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EFSC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_efsc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EFSL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_efsl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EFSF_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_efsf_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EFSD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_efsd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EQUERY_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_equery_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_BLDN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_bldn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EREG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ereg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPMIC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epmic_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EBTLB_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ebtlb_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_BVRA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_bvra_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EVCARD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_evcard_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMMISTR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emmistr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_WS46_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ws46_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ECPU_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ecpu_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ERAM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eram_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ELAUNCH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_elaunch_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ELOG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_elog_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESUO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esuo_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_TRACE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_trace_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESWM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eswm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMSDMOD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emsdmod_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMSDTNUM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emsdtnum_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMSDRNUM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emsdrnum_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMSDSET_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emsdset_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMSD_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emsd_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMSDPUSH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emsdpush_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESPEECH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_espeech_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESSTV_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esstv_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EDTP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_edtp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EDTS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_edts_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EDSETDEV_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esetdev_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESOV_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esov_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESMV_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esmv_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESSMA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_essma_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_L1AUD_SPC_CALLBACK": {
+        "apiType": "index", 
+        "format": "rmmi_l1aud_spc_callback()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPSAP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epsap_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EPSAPPULL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_epsappull_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FMI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fmi_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FMM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fmm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FMR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fmr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fpr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FLO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_flo_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FDT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fdt_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FDR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fdr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FIP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fip_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FKS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fks_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FK_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fk_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FET_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fet_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FTM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ftm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FRM_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_frm_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FTH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fth_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FRH_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_frh_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FTS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fts_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FRS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_frs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fcc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FDCC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fdcc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FIS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fis_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FDIS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fdis_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fcs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FDCS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fdcs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FLI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fli_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FLID_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_flid_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPI_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fli_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCIG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_flid_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FLP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_flp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FLPL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_flpl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FSP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fsp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FSPL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fspl_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FNR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fnr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FIE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fie_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fps_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPTS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fpts_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FRQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_frq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBADLIN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbadlin_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBADMUL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbadmul_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fcq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FIT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fit_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fpp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbo_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBOR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbor_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FEA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fea_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FREL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_frel_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FNS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fns_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fcr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBU_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbu_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBUG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbug_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FAP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fap_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FSA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fsa_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPA_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fpa_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fpw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FCT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fct_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FPHCTO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fphcto_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FHS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fhs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fms_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FMINSP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fminsp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FRY_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fry_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FBS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fbs_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FFC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ffc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FVRFC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fvrfc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FDFFC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fdffc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FLNFC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_flnfc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_FWDFC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_fwdfc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMSET_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctmset_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMOPEN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctmopen_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMCLOSE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctmclose_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMCONN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctmconn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctms_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMCFG_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctmcfg_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_CTMCALL_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ctmcall_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EMEMS_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_emems_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EEMODE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eemode_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EDE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_ede_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VZWRSRP_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vzwrsrp_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VZWRSRQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vzwrsrq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VZWMRUC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vzwmruc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_VZWMRUE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_vzwmrue_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_MRUCLEAR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_mruclear_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_MRU_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_mru_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_AUXPLMN_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_auxplmn_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_PSMODE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_psmode_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_RSRP_RSRQ_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_rsrp_rsrq_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_RSCP_ECNO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_rscp_ecno_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EAPC_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eapc_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ENWBDINFO_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_enwbdinfo_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EITMR_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eitmr_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_EIMSEVENT_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_eimsevent_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ETM9_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_etm9_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "INFO_EXTCOMMAND_HASH_VALUE": {
+        "apiType": "index", 
+        "format": "rmmi_extended_cmd_processor(), hash_value1= %u, hash_value2= %u. cmd_index: %u/%u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_MULTI_CMD_RECEIVED": {
+        "apiType": "index", 
+        "format": "multi cmd received", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "BASIC_COMMAND_HASH_VALUE": {
+        "apiType": "index", 
+        "format": "rmmi_basic_cmd_processor(), hash_value = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "AT_CMD_STRING": {
+        "apiType": "index", 
+        "format": "command: %c%c%c%c%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "CUSTOM_CMD_HDLR": {
+        "apiType": "index", 
+        "format": "CUSTOMER AT Cmd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_MULTI_CMD_NOT_FINISHED": {
+        "apiType": "index", 
+        "format": "multi cmd NOT finished", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PROCESS_MULTI_CMD_ACTION_EXIST": {
+        "apiType": "index", 
+        "format": "rmmi_process_multi_cmd: is_ucm_action = %d,route_through_mmi=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "UCM_ACTION": {
+        "apiType": "index", 
+        "format": "It's a ucm action, OK will return by UCM", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ROUTE_THRU_LMMI_FOR_BASIC_CMD": {
+        "apiType": "index", 
+        "format": "route through mmi in basic_cmd_hdlr ,OK will return later", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PROCESS_MULTI_CMD": {
+        "apiType": "index", 
+        "format": "process_multi_cmd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_MULTI_CMD_STRING_EXIST": {
+        "apiType": "index", 
+        "format": "multi cmd string exist", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_MULTI_CMD_STRING_NOT_EXIST": {
+        "apiType": "index", 
+        "format": "multi cmd string NOT exist", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_SRC_ID_AND_CID": {
+        "apiType": "index", 
+        "format": "current_src_id = %d, cid = %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "RMMI_RECEIVE_DATA_DURING_ATD": {
+        "apiType": "index", 
+        "format": "receiving data during ATD", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_ABORT_ATD_OPERATION": {
+        "apiType": "index", 
+        "format": "abort ATD !!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_INPUT": {
+        "apiType": "index", 
+        "format": "read uart, que.len=%d, space=%d, read=%d, uart_empty=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_CMD_FROM_SAT": {
+        "apiType": "index", 
+        "format": "cmd from sat", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_CLEAR_OUTPUT_QUEUE": {
+        "apiType": "index", 
+        "format": "clear output queue!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_RSP_ERROR_CAUSE": {
+        "apiType": "index", 
+        "format": "rmmi_rsp , rmmi_cause = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_RESULT_CODE_FMTTR": {
+        "apiType": "index", 
+        "format": "result code: %Mrmmi_rsp_type_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_RESULT_CODE_ERROR": {
+        "apiType": "index", 
+        "format": "result code: %Mrmmi_rsp_type_enum, cause: %Mps_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_MULTI_CMD_ERROR": {
+        "apiType": "index", 
+        "format": "multi cmd error", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_OBTAIN_UART_CONTROL": {
+        "apiType": "index", 
+        "format": "rmmi_obtain_uart_control() ,port=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CHECK_CMD_ALLOW_RETURN_FALSE": {
+        "apiType": "index", 
+        "format": "check_cmd_allow() return false", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_MSG_BASED_REGISTER": {
+        "apiType": "index", 
+        "format": "register msessage based channel: ch_num:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_MSG_BASED_EXECUTION": {
+        "apiType": "index", 
+        "format": "execution message based AT: port:%d, src:%d, length:%d, pdu_length: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_MSG_BASED_RESPONSE": {
+        "apiType": "index", 
+        "format": "send response message: len: %d, src: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_MSG_BASED_URC": {
+        "apiType": "index", 
+        "format": "send urc message: len: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_SELECT_CONTEXT": {
+        "apiType": "index", 
+        "format": "[RMMI_ROOT] select context: cid:%d, %Msim_interface_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_INVALID_PORT": {
+        "apiType": "index", 
+        "format": "[RMMI_ROOT] INVALID: port:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_UART_PLUGIN": {
+        "apiType": "index", 
+        "format": "[RMMI_ROOT] UART plugin, src:%d, cid:%d, port:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_UART_PLUGOUT": {
+        "apiType": "index", 
+        "format": "[RMMI_ROOT] UART plugout, src:%d, cid:%d, port:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_AT_ETSTLP": {
+        "apiType": "index", 
+        "format": "+ETSTLP: tst_port_ps: %hd, tst_port_l1: %hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_USB_ACTIVE": {
+        "apiType": "index", 
+        "format": "Is UART active, port:%d, active: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_DUMP_AGPS_MD_HEADER": {
+        "apiType": "index", 
+        "format": "agps md header : version = %d , type = %Magps_md_type , length = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_WRITE_TO_AGPSD": {
+        "apiType": "index", 
+        "format": "write data to AGPSD via uart_port_gps_ccci, size : %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_URC2_OUTPUT_QUEUE": {
+        "apiType": "index", 
+        "format": "[RMMI_OUT] (head + len)> QUEUE_LENGTH. src_id:%d, RMMI_UNSOLICITED_2: %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "SAR_SENSOR_DATA": {
+        "apiType": "index", 
+        "format": "[SAR] sensor_data =%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_EXPLICT_SEND_CIEV": {
+        "apiType": "index", 
+        "format": "Explictly to send CIEV: %d, %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HF_IS_NOT_READY_TO_RECIEVE_URC_REPORT": {
+        "apiType": "index", 
+        "format": "HF is not ready to receive URC report", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLEAR_HF_URC_REPORT_FLAG": {
+        "apiType": "index", 
+        "format": "Clear hf_urc_report_flag: cid =%d,src_id=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_CANCEL_EVENT": {
+        "apiType": "index", 
+        "format": "rmmi: cancel retry timer!, event_id=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_ATH_NO_CALL_HANGUP": {
+        "apiType": "index", 
+        "format": "ath: no call to hangup", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATH_REL_ACTIVE_AND_ACCEPT": {
+        "apiType": "index", 
+        "format": "ATH: REL_ACTIVE_AND_ACCEPT", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATH_REL_ACTIVE": {
+        "apiType": "index", 
+        "format": "ATH: REL_ACTIVE , active_call_id=%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATH_REL_HELD": {
+        "apiType": "index", 
+        "format": "ATH: REL_HELD , hold_call_id =%hd", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATH_FOR_GPRS_DIALUP_FAILURE": {
+        "apiType": "index", 
+        "format": "ATH is for GPRS dialup failure,do nothing and return OK", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "FOR_BT_HFP_CHLD_EQUAL_1X": {
+        "apiType": "index", 
+        "format": "For BT HFP : chld=1x , shall also retrieve held call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATDL_NO_LAST_NUMBER_DIALED": {
+        "apiType": "index", 
+        "format": "ATDL: No last number dialed", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATA_FOR_DATA_CALL": {
+        "apiType": "index", 
+        "format": "ATA for data call ", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATD_HDLR_CALL_MODIFY_REQUEST": {
+        "apiType": "index", 
+        "format": "atd_hdlr: call modify request return %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATD_HDLR_PROCESSING_ATD_GPRS_DIALUP_OR_DATA_CALL": {
+        "apiType": "index", 
+        "format": "atd_hdlr: Processing ATD GPRS dial-up or data call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATD_HDLR_ATD_DIAL_VT_CALL": {
+        "apiType": "index", 
+        "format": "atd_hdlr: atd to dial VT call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "ATD_HDLR_IMS_NOT_SUPPORT_DATA_CALL": {
+        "apiType": "index", 
+        "format": "atd_hdlr: IMS not support data call", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NOT_DISPLAY_MT_CALL_NOT_APPROVED": {
+        "apiType": "index", 
+        "format": "Not display MT call when incoming call is not approved!!!", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLCCS_INFO": {
+        "apiType": "index", 
+        "format": "call id:%d, dir:%Mclcc_dir_enum, cs mode:%Mclcc_mode_enum, ccstatus:%Mclccs_ccstatus_enum, mpty:%Mclcc_mpty_enum, number type:%Mclccs_number_type_enum, ton:%d, cli present:%d, cli validity:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_CLCC_INFO": {
+        "apiType": "index", 
+        "format": "call id:%d, dir:%Mclcc_dir_enum, state:%Mclcc_state_enum, mode:%Mclcc_mode_enum, mpty:%Mclcc_mpty_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_AUTH_FAIL": {
+        "apiType": "index", 
+        "format": "HFP connecting", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_CONNECTED": {
+        "apiType": "index", 
+        "format": "HFP connected,port= %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_RAND_NUM": {
+        "apiType": "index", 
+        "format": "rand number, rand=0x%08x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_SEQ1": {
+        "apiType": "index", 
+        "format": "Seq1 =0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_SEQ2": {
+        "apiType": "index", 
+        "format": "Seq2 =0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_VERNO": {
+        "apiType": "index", 
+        "format": "verno, verno=%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_HFP_OUTPUT": {
+        "apiType": "index", 
+        "format": "Output =0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_ATH_FOR_DIALUP": {
+        "apiType": "index", 
+        "format": "Set ath_for_dialup=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ATCI_ROOT_SWITCH_FOR_HF": {
+        "apiType": "index", 
+        "format": "ATCI Root switches to new_sim_id=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_REQUEST_TYPE": {
+        "apiType": "index", 
+        "format": "request_type = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_ALPH_ID_PRESENT_NO_TEL_NUMBER": {
+        "apiType": "index", 
+        "format": "Only alph_id is present, no tel number", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "WARNING_RMMI_INVALID_INTERMEDIATE_RSP_LENGTH": {
+        "apiType": "index", 
+        "format": "[RMMI] invalid string length of intermediate rsp = %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "RMMI_CURRENT_ACCESS_TECHNOLOGY": {
+        "apiType": "index", 
+        "format": "AcT:%hd <= Rat:%Mrat_enum, cell_data_speed:%Ml4c_data_speed_support_enum, max_data_bearer_capa:%Ml4c_data_bearer_capablility_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_UART_QUEUE": {
+        "apiType": "index", 
+        "format": "uart_output_queue cid = %d, head = %d, length = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_AGPS_DEBUGGING": {
+        "apiType": "index", 
+        "format": "LBS output len = %d, temp = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_L4C_SIM_USIM_LOGIC_CH_OK": {
+        "apiType": "index", 
+        "format": "[L4C_SIM]CHANNEL OK", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PARAM_D": {
+        "apiType": "index", 
+        "format": "param = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PARAM_DD": {
+        "apiType": "index", 
+        "format": "param1 = %d , param2 = %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PARAM_U": {
+        "apiType": "index", 
+        "format": "param = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PARAM_UU": {
+        "apiType": "index", 
+        "format": "param1 = %u , param2 = %u", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_RESPONSE_SUPPRESS_ON": {
+        "apiType": "index", 
+        "format": "response suppress on", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_STRING_IS_PURE_ASCII_STRING_IS_NOT_STRATING_WITH_0X00": {
+        "apiType": "index", 
+        "format": "string_is_pure_ascii() : string is not strating with 0x00", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_STRING_IS_PURE_ASCII_RETURN_FALSE_DUE_TO_STR_2": {
+        "apiType": "index", 
+        "format": "string_is_pure_ascii() return false due to str[%d+2]=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_STRING_IS_PURE_ASCII_RETURN_FALSE_DUE_TO_STR_3": {
+        "apiType": "index", 
+        "format": "string_is_pure_ascii() return false due to str[%d+3]=%x", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_RMMI_PURE_ASCII": {
+        "apiType": "index", 
+        "format": "pure_ascii=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_ATO_HDLR": {
+        "apiType": "index", 
+        "format": "RMMI ATO, state = %Ml4c_state_enum", 
+        "traceClass": "TRACE_GROUP_3"
+      }
+    }, 
+    {
+      "RMMI_SCP_COMMAND_ENUM": {
+        "apiType": "index", 
+        "format": "[SCP]Receive CMD = %Mrmmi_scp_cmd_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_SCP_CELLID_AND_RSSI": {
+        "apiType": "index", 
+        "format": "[SCP]Cellid=%d, RSSI=%d, is_cell_changed=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_SCP_DATA_SEND": {
+        "apiType": "index", 
+        "format": "[SCP_DATA]%02X %02X %02X %02X %02X %02X %02X %02X, %02X %02X %02X %02X %02X %02X %02X %02X", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_EIMSPS_RAT_TYPE": {
+        "apiType": "index", 
+        "format": "eimsps_rat=%Mrat_enum, eimsps_type=%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "RMMI_PLMN_INFO_FOR_TVOLTEHYS": {
+        "apiType": "index", 
+        "format": "saved_plmn_for_volte_hys.rat=%Mrat_enum, plmn_id=%d%d%d%d%d%d; cur_plmn.rat=%Mrat_enum, plmn_id=%d%d%d%d%d%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_AUTO_RESELECTION": {
+        "apiType": "index", 
+        "format": "%Mplmn_selection_mode_enum to %Mplmn_selection_mode_enum, do not send AUTO_RESELECTION", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+     {
+      "INFO_SET_INVALID_NSSAI_LENGTH": {
+        "apiType": "index", 
+        "format": "[NSSAI] default_configured_nssai_length of commnad +C5GNSSAI is invalid: %Mrmmi_validator_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_INVALID_NSSAI_LIST": {
+        "apiType": "index", 
+        "format": "[NSSAI] default_configured_nssai of commnad +C5GNSSAI is invalid: %Mrmmi_validator_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_INVALID_PREF_3GPP_NSSAI_LENGTH": {
+        "apiType": "index", 
+        "format": "[NSSAI] preferred_nssai_3gpp_length of commnad +C5GPNSSAI is invalid: %Mrmmi_validator_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_INVALID_PREF_3GPP_NSSAI_LIST": {
+        "apiType": "index", 
+        "format": "[NSSAI] preferred_nssai_3gpp of commnad +C5GPNSSAI is invalid: %Mrmmi_validator_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_INVALID_PREF_NON3GPP_NSSAI_LENGTH": {
+        "apiType": "index", 
+        "format": "[NSSAI] preferred_nssai_non3gpp_length of commnad +C5GPNSSAI is invalid: %Mrmmi_validator_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_SET_INVALID_PREF_NON3GPP_NSSAI_LIST": {
+        "apiType": "index", 
+        "format": "[NSSAI] preferred_nssai_non3gpp of commnad +C5GPNSSAI is invalid: %Mrmmi_validator_cause_enum", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "INFO_NSSAI_TEST_MODE_DEBUG": {
+        "apiType": "index", 
+        "format": "[NSSAI] test mode len: %d and string: %s", 
+        "traceClass": "TRACE_INFO"
+      }
+    }, 
+    {
+      "WARNING_CANNOT_PROCESS_MULTI_CMD": {
+        "apiType": "index", 
+        "format": "Warning: cid == 0xff! cannot process multi cmd", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_CMD_NOT_ALLOWED": {
+        "apiType": "index", 
+        "format": "cmd NOT allowed, cause = %u", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_CMD_ALLOWED": {
+        "apiType": "index", 
+        "format": "cmd allowed", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_PORT_OWNER_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: port=%d,owner=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: error", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_SRC_CID_MAP_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: src:%hd & cid:%hd map error", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_SET_UART_STOP_TO_SEND_FLAG": {
+        "apiType": "index", 
+        "format": "set stop_to_send_flag,cid=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_UART_STOP_TO_SEND": {
+        "apiType": "index", 
+        "format": "Warning: rmmi_uart_write_data stop to send,cid=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ORI_MODULE_ID_WRONG": {
+        "apiType": "index", 
+        "format": "Warning: ori_module_id wrong, ori_module_id=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ORI_MODULE_ID_EQUAL_MODULE_ID": {
+        "apiType": "index", 
+        "format": "Warning: ori_module_id equal module_id, ori_module_id=%d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CMUX_PORT_ERROR": {
+        "apiType": "index", 
+        "format": "AT+CMUX isn't allowed on USB2", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_ATH_DISCONNECT_AT_INITIAL_CALL": {
+        "apiType": "index", 
+        "format": "ATH: can only disconnect AT-initial call", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CHUP_NO_CALL_TO_HANGUP": {
+        "apiType": "index", 
+        "format": "AT+CHUP: no call to hangup", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_CHUP_DISCONNECT_AT_INITIAL_CALL": {
+        "apiType": "index", 
+        "format": "AT+CHUP: can only disconnect AT-initial call", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "CHLD_EQUAL_1X": {
+        "apiType": "index", 
+        "format": "chld = 1x , x is not a active call ,call_state = %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "BLDN_NO_LAST_NUMBER_DIALED_EXIST": {
+        "apiType": "index", 
+        "format": "BLDN: No last number dialed exist", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "BLDN_NO_SIM_INSERTED": {
+        "apiType": "index", 
+        "format": "BLDN: no SIM inserted", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "ATD_MEMORY_DIAL_INVALID_MEMORY_LOCATION": {
+        "apiType": "index", 
+        "format": "ATD memory dial , invalid memory location ", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "ATD_HDLR_DIAL_NUMBER_LENGTH_ILLEGAL": {
+        "apiType": "index", 
+        "format": "atd_hdlr : atd dial number length is illegal", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_DIALUP_NOT_ALLOWED_ON_1T1R": {
+        "apiType": "index", 
+        "format": "Warning: Dialup is not allowed on 1T1R port %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "FUNC_RMMI_NEED_SET_TEST_NUM": {
+        "apiType": "index", 
+        "format": "Need to set Ecall test num", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "FUNC_RMMI_NEED_SET_RECONFIGURATION_NUM": {
+        "apiType": "index", 
+        "format": "Need to set Ecall reconfiguration num", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "WARNING_DISALLOW_GPRS_DIALUP_WHEN_MS_BUSY": {
+        "apiType": "index", 
+        "format": "Warning: disallow gprs dialup when MS is busy", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_RMMI_GPRS_STRING_VALID_CMD_NOT_ALLOWED": {
+        "apiType": "index", 
+        "format": "Warning: gprs string valid ,but cmd not allowed", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_EQ_FS_RETURN_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: EQ fs action: %d return: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_THERMAL_PROT_RETURN_ERROR": {
+        "apiType": "index", 
+        "format": "Warning: thermal_prot_set_threshold return error", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_MEAS_RESULT_INDEX": {
+        "apiType": "index", 
+        "format": "Warning: meas_result_index invalid", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_INVALID_CRSM_RSP_LEN": {
+        "apiType": "index", 
+        "format": "Warning: Invalid crsm response length %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    },
+    {
+      "WARNING_SAT_COMMAND_WRONG_HANDLER": {
+        "apiType": "index", 
+        "format": "Warning: Wrong handler for this SAT command", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "READ_FROM_UART_INCORRECT_OWNER": {
+        "apiType": "index", 
+        "format": "read_from_uart .current owner=%d", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "READ_FROM_UART_INVALID_CHANNEL": {
+        "apiType": "index", 
+        "format": "read_from_uart invalid channel", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_INVALID_PORT": {
+        "apiType": "index", 
+        "format": "Invalid port !", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_CHECK_KEY_PAD": {
+        "apiType": "index", 
+        "format": "Error: The output from custom_check_keypad_code() is invalid", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_EXTRACT_NUMBER_FUNCTION_ILLEGAL_CHARACTER_ERROR": {
+        "apiType": "index", 
+        "format": "Error: extract number function: illegal character  ERROR", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_RMMI_INVALID_NUMBER": {
+        "apiType": "index", 
+        "format": "number containing invalid char %c", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_RMMI_ROOT_FIND_SRC_PORT_MAPPING": {
+        "apiType": "index", 
+        "format": "[RMMI_ROOT] Could not find empty source/port mapping", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_SIM_STATUS_ERROR": {
+        "apiType": "index", 
+        "format": "[L4C_SIM]SIM status error", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "ERROR_L4C_SIM_USIM_LOGIC_CH_INVALID": {
+        "apiType": "index", 
+        "format": "[L4C_SIM]CHANNEL = 0xFF", 
+        "traceClass": "TRACE_ERROR"
+      }
+    }, 
+    {
+      "RMMI_CIEV": {
+        "apiType": "index", 
+        "format": "CIEV: %d, %d", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "CTMI": {
+        "apiType": "index", 
+        "format": "+CTMI", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "TIYI": {
+        "apiType": "index", 
+        "format": "+TTYI: %d", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "CTMS": {
+        "apiType": "index", 
+        "format": "+CTMS: %d, %d", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "CTMSET": {
+        "apiType": "index", 
+        "format": "+CTMSET: %d, %d", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "CTMCFG": {
+        "apiType": "index", 
+        "format": "+CTMCFG: %u, %u, %u, %u, %u", 
+        "traceClass": "TRACE_GROUP_1"
+      }
+    }, 
+    {
+      "WARNING_UNEXPECTED_RAT": {
+        "apiType": "index", 
+        "format": "Warning: unexpected RAT: %d", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_HEX_STRING": {
+        "apiType": "index", 
+        "format": "Warning: invalid hex string", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "RMMI_CID_SRC_INFO": {
+        "apiType": "index", 
+        "format": "CID: %hd,source= %Ml4c_source_id_enum", 
+        "traceClass": "TRACE_GROUP_6"
+      }
+    }, 
+    {
+      "GATI_RECEIVE_RTR_FROM_UART": {
+        "apiType": "index", 
+        "format": "GATI waits for the reply from the APP", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_NOT_WRITE_ALLOW": {
+        "apiType": "index", 
+        "format": "GATI NOT WRITE ALLOW current_src_id=%d", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_WRITE_RMMI_ALL_FAIL": {
+        "apiType": "index", 
+        "format": "GATI write RMMI_ALL fail, remain_size: %d, data size: %d, cid: %d", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_WRITE_INTEGRITY_FAIL": {
+        "apiType": "index", 
+        "format": "GATI write integrity(URC) data fail, remain_size: %d, data size: %d, cid: %d", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_INPUT_DATA_IN_BINARY_MODE": {
+        "apiType": "index", 
+        "format": "GATI input data in binary mode", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_OUTPUT_NON_GATI_DATA": {
+        "apiType": "index", 
+        "format": "GATI output non-GATI data", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_NEED_SEND_RTW_IND": {
+        "apiType": "index", 
+        "format": "GATI need to send RTW indication to the APP", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_BUFFER_FULL": {
+        "apiType": "index", 
+        "format": "GATI linked-list buffer is full", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "GATI_REGISTER_FAIL": {
+        "apiType": "index", 
+        "format": "GATI Can't not find an empty entry. Please increase GATI_MAX_MODULE_COUNT", 
+        "traceClass": "TRACE_GROUP_7"
+      }
+    }, 
+    {
+      "WARNING_INVALID_CHANNEL_ID_FOR_BIT_OPERATION": {
+        "apiType": "index", 
+        "format": "Warning: invalid cid: %d exceed the max channel number", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "WARNING_INVALID_ARRAY_SIZE_FOR_BIT_MASK_EMPTY_CHECKING": {
+        "apiType": "index", 
+        "format": "Warning: invalid size: %d exceed the max bitmask array size", 
+        "traceClass": "TRACE_WARNING"
+      }
+    }, 
+    {
+      "FUNC_RMMI_ESIMULATE_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "rmmi_esimulate_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    },
+    {
+      "FUNC_NW_IMS_PREF_STATUS_RETURN": {
+        "apiType": "index", 
+        "format": "l4c_nw_ims_pref_status_rind(), do not report +EIMSPS, check point:%d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_NW_IMS_PREF_STATUS_RETURN_NR": {
+        "apiType": "index", 
+        "format": "l4c_nw_ims_pref_status_rind(), Act = NR. do not report +eimsps", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_CHANNEL_LOCK_COMMON": {
+        "apiType": "index", 
+        "format": "channel lock: mode = %d, act = %d, channel_num = %d, cell_id = %d, lock_mode= %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },	
+    {
+      "INFO_CHANNEL_LOCK_BAND": {
+        "apiType": "index", 
+        "format": "channel lock: band_indicator[%d] = %d, arfcn[%d]= %d", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_SML_COMMAND_PARSE_ERROR": {
+        "apiType": "index", 
+        "format": "[SML] AT command parsing error at line[%d]", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "FUNC_RMMI_E5GUW_HDLR_ENTRY": {
+        "apiType": "index", 
+        "format": "[5GUW] rmmi_e5guw_hdlr()", 
+        "traceClass": "TRACE_FUNC"
+      }
+    }, 
+    {
+      "INFO_RMMI_E5GUW_TUW_LENGTH_OOR": {
+        "apiType": "index", 
+        "format": "[5GUW] set TUW_%d length %d out of range", 
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_GSM_ERROR1": {
+        "apiType": "index",
+        "format": "[EPBSEH] GSM Error1",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_GSM_ERROR2": {
+        "apiType": "index",
+        "format": "[EPBSEH] GSM Error2",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_GSM_ERROR3": {
+        "apiType": "index",
+        "format": "[EPBSEH] GSM Error3 req_band: %08x support: %08x",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_GSM_ERROR4": {
+        "apiType": "index",
+        "format": "[EPBSEH] GSM Error4",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_UMTS_ERROR1": {
+        "apiType": "index",
+        "format": "[EPBSEH] UMTS Error1",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_UMTS_ERROR2": {
+        "apiType": "index",
+        "format": "[EPBSEH] UMTS Error2",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_UMTS_ERROR3": {
+        "apiType": "index",
+        "format": "[EPBSEH] UMTS Error3 req_band: %08x support: %08x",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_UMTS_ERROR4": {
+        "apiType": "index",
+        "format": "[EPBSEH] UMTS Error4",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_LTE_ERROR1": {
+        "apiType": "index",
+        "format": "[EPBSEH] LTE Error1",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_LTE_ERROR2": {
+        "apiType": "index",
+        "format": "[EPBSEH] LTE Error2",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_LTE_ERROR3": {
+        "apiType": "index",
+        "format": "[EPBSEH] LTE Error3",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NR_ERROR1": {
+        "apiType": "index",
+        "format": "[EPBSEH] NR Error1",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NR_ERROR2": {
+        "apiType": "index",
+        "format": "[EPBSEH] NR Error2",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NR_ERROR3": {
+        "apiType": "index",
+        "format": "[EPBSEH] NR Error3",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NVRAM_ERROR1": {
+        "apiType": "index",
+        "format": "[EPBSEH] NVRAM Error1",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NSA_ERROR1": {
+        "apiType": "index",
+        "format": "[EPBSEH] NSA Error1",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NSA_ERROR2": {
+        "apiType": "index",
+        "format": "[EPBSEH] NSA Error2",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NSA_ERROR3": {
+        "apiType": "index",
+        "format": "[EPBSEH] NSA Error3",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NSA_ERROR4": {
+        "apiType": "index",
+        "format": "[EPBSEH] NSA Error4",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_RMMI_EPBSEH_SUPP_CHECK_FUNC": {
+        "apiType": "index",
+        "format": "[EPBSEH] is_requested_band_supported() func Entry",
+        "traceClass": "TRACE_INFO"
+      }
+    },
+    {
+      "INFO_RMMI_EPBSEH_ENTRY_SUPP_BAND": {
+       "apiType": "index",
+       "format": "[EPBSEH] Entry: %08x Support: %08x Position: %d",
+       "traceClass": "TRACE_INFO"
+      }
+    },
+	{
+      "INFO_RMMI_EPBSEH_NSA_BAND_RETAIN": {
+        "apiType": "index",
+        "format": "[EPBSEH] NSA BAND RETAINED",
+        "traceClass": "TRACE_INFO"
+      }
+    }
+  ], 
+  "traceFamily": "PS", 
+  "userModule": ""
+}
diff --git a/mcu/protocol/layer4/l4/include/csmcc_bc_types.h b/mcu/protocol/layer4/l4/include/csmcc_bc_types.h
new file mode 100644
index 0000000..867186a
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/csmcc_bc_types.h
@@ -0,0 +1,341 @@
+/*****************************************************************************
+*  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_bc_types.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for type definition of bearer capability, low level 
+ *   compatability, and high level compatibility.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+#ifndef _CSMCC_BC_TYPES_H
+#define _CSMCC_BC_TYPES_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+
+typedef struct {
+    kal_uint8 speech_version_ind;
+    kal_uint8 CTM;
+} csmcc_bc_octet3a_struct;
+
+typedef struct {
+    kal_uint8 compress;
+    kal_uint8 structure;
+    kal_uint8 duplex_mode;
+    kal_uint8 configuration;
+    kal_uint8 NIRR;
+    kal_uint8 establishment;
+} csmcc_bc_octet4_struct;
+
+typedef struct {
+    kal_uint8 rate_adaption;
+    kal_uint8 siganaling_access_protocol;
+} csmcc_bc_octet5_struct;
+
+typedef struct {
+    kal_uint8 other_ITC;
+    kal_uint8 other_rate_adaption;
+} csmcc_bc_octet5a_struct;
+
+typedef struct {
+    kal_uint8 hdr_or_no_hdr;
+    kal_uint8 multi_frame;
+    kal_uint8 mode;
+    kal_uint8 LLI;
+    kal_uint8 assignor;
+    kal_uint8 inband_negotiation;
+} csmcc_bc_octet5b_struct;
+
+typedef struct {
+    kal_uint8 user_info_layer1_protocol;
+    kal_uint8 sync_or_async;
+} csmcc_bc_octet6_struct;
+
+typedef struct {
+    kal_uint8 number_stop_bits;
+    kal_uint8 negotiation;
+    kal_uint8 number_data_bits;
+    kal_uint8 user_rate;
+} csmcc_bc_octet6a_struct;
+
+typedef struct {
+    kal_uint8 intermediate_rate;
+    kal_uint8 NIC_on_TX;
+    kal_uint8 NIC_on_RX;
+    kal_uint8 parity;
+} csmcc_bc_octet6b_struct;
+
+typedef struct {
+    kal_uint8 connection_element;
+    kal_uint8 modem_type;
+} csmcc_bc_octet6c_struct;
+
+typedef struct {
+    kal_uint8 other_modem_type;
+    kal_uint8 fixed_network_user_rate;
+} csmcc_bc_octet6d_struct;
+
+typedef struct {
+    kal_uint8 accptable_channel_coding;
+    kal_uint8 max_num_traffic_channels;
+} csmcc_bc_octet6e_struct;
+
+typedef struct {
+    kal_uint8 UIMI;
+    kal_uint8 wanted_air_interface_user_rate;
+} csmcc_bc_octet6f_struct;
+
+typedef struct {
+    kal_uint8 accptable_channel_coding_ext;
+    kal_uint8 asymmetry_ind;
+} csmcc_bc_octet6g_struct;
+
+typedef struct {
+    kal_uint8 user_info_layer2_protocol;
+} csmcc_bc_octet7_struct;
+
+typedef struct {
+    kal_uint8 radio_chanl_req;
+    kal_uint8 transfer_mode;
+    kal_uint8 itc;
+    kal_uint8 num_octet3a;
+    csmcc_bc_octet3a_struct octet3a[6];/*MAUI_02599640, Add one element for AMR-WB*/
+    kal_uint8 octet4_present;
+    csmcc_bc_octet4_struct octet4;
+    kal_uint8 octet5_present;
+    csmcc_bc_octet5_struct octet5;
+    kal_uint8 octet5a_present;
+    csmcc_bc_octet5a_struct octet5a;
+    kal_uint8 octet5b_present;
+    csmcc_bc_octet5b_struct octet5b;
+    kal_uint8 octet6_present;
+    csmcc_bc_octet6_struct octet6;
+    kal_uint8 octet6a_present;
+    csmcc_bc_octet6a_struct octet6a;
+    kal_uint8 octet6b_present;
+    csmcc_bc_octet6b_struct octet6b;
+    kal_uint8 octet6c_present;
+    csmcc_bc_octet6c_struct octet6c;
+    kal_uint8 octet6d_present;
+    csmcc_bc_octet6d_struct octet6d;
+    kal_uint8 octet6e_present;
+    csmcc_bc_octet6e_struct octet6e;
+    kal_uint8 octet6f_present;
+    csmcc_bc_octet6f_struct octet6f;
+    kal_uint8 octet6g_present;
+    csmcc_bc_octet6g_struct octet6g;
+    kal_uint8 octet7_present;
+    csmcc_bc_octet7_struct octet7;
+} csmcc_bc_struct;
+
+
+typedef struct {
+    kal_uint8 negotiation_indicator;
+} csmcc_llc_octet3a_struct;
+
+typedef struct {
+    kal_uint8 rate_multiplier;
+} csmcc_llc_octet4a_struct;
+
+typedef struct {
+    kal_uint8 user_info_layer1_protocol;
+} csmcc_llc_octet5_struct;
+
+typedef struct {
+    kal_uint8 synchronous_flag;
+    kal_uint8 negotiation;
+    kal_uint8 user_rate;
+} csmcc_llc_octet5a_struct;
+
+typedef struct {
+    kal_uint8 intermediate_rate;
+    kal_uint8 NIC_on_Tx;
+    kal_uint8 NIC_on_Rx;
+    kal_uint8 flow_control_on_Tx;
+    kal_uint8 flow_control_on_Rx;
+} csmcc_llc_octet5b1_struct;
+
+typedef struct {
+    kal_uint8 header_flag;
+    kal_uint8 multi_frame;
+    kal_uint8 mode_of_layer1;
+    kal_uint8 LLI_negotiation;
+    kal_uint8 assignor;
+    kal_uint8 inband_negotiation;
+} csmcc_llc_octet5b2_struct;
+
+typedef struct {
+    kal_uint8 number_of_stop_bits;
+    kal_uint8 number_of_data_bits;
+    kal_uint8 parity;
+} csmcc_llc_octet5c_struct;
+
+typedef struct {
+    kal_uint8 duplex_mode;
+    kal_uint8 modem_type;
+} csmcc_llc_octet5d_struct;
+
+typedef struct {
+    kal_uint8 user_info_layer2_protocol;
+} csmcc_llc_octet6_struct;
+
+typedef struct {
+    kal_uint8 mode_of_layer2;
+    kal_uint8 Q933_use;
+} csmcc_llc_octet6a1_struct;
+
+typedef struct {
+    kal_uint8 user_specified_layer2_protocol_info;
+} csmcc_llc_octet6a2_struct;
+
+typedef struct {
+    kal_uint8 window_size;
+} csmcc_llc_octet6b_struct;
+
+typedef struct {
+    kal_uint8 optional_layer3_protocol_info;
+} csmcc_llc_octet7a1_struct;
+
+typedef struct {
+    kal_uint8 mode_of_layer3;
+} csmcc_llc_octet7a2_struct;
+
+typedef struct {
+    kal_uint8 default_packet_size;
+} csmcc_llc_octet7b1_struct;
+
+typedef struct {
+    kal_uint8 packet_window_size;
+} csmcc_llc_octet7c_struct;
+
+typedef struct {
+    kal_uint32 additional_layer3_protocol_info_MSB:1;
+} csmcc_llc_octet7a3_struct;
+
+typedef struct {
+    kal_uint8 additional_layer3_protocol_info_LSB;
+} csmcc_llc_octet7b2_struct;
+
+typedef struct {
+    kal_uint8 information_transfer_capability;
+    kal_uint8 octet3a_present;
+    csmcc_llc_octet3a_struct octet3a;
+    kal_uint8 transfer_mode;
+    kal_uint8 information_transfer_rate;
+    csmcc_llc_octet4a_struct octet4a;
+    kal_uint8 octet5_present;
+    csmcc_llc_octet5_struct octet5;
+    kal_uint8 octet5a_present;
+    csmcc_llc_octet5a_struct octet5a;
+    kal_uint8 octet5b1_present;		
+    csmcc_llc_octet5b1_struct octet5b1;
+    kal_uint8 octet5b2_present;			
+    csmcc_llc_octet5b2_struct octet5b2;
+    kal_uint8 octet5c_present;
+    csmcc_llc_octet5c_struct octet5c;
+    kal_uint8 octet5d_present;
+    csmcc_llc_octet5d_struct octet5d;
+    kal_uint8 octet6_present;
+    csmcc_llc_octet6_struct octet6;
+    kal_uint8 octet6a1_present;
+    csmcc_llc_octet6a1_struct octet6a1;
+    kal_uint8 octet6a2_present;
+    csmcc_llc_octet6a2_struct octet6a2;
+    kal_uint8 octet6b_present;
+    csmcc_llc_octet6b_struct octet6b;
+    kal_uint8 octet7_present;
+    kal_uint8 userInfoLayer3Protocol;
+    kal_uint8 octet7a1_present;
+    csmcc_llc_octet7a1_struct octet7a1;
+    kal_uint8 octet7a2_present;
+    csmcc_llc_octet7a2_struct octet7a2;
+    kal_uint8 octet7b1_present;
+    csmcc_llc_octet7b1_struct octet7b1;
+    kal_uint8 octet7c_present;
+    csmcc_llc_octet7c_struct octet7c;
+    kal_uint8 octet7a3_present;
+    csmcc_llc_octet7a3_struct octet7a3;
+    kal_uint8 octet7b2_present;
+    csmcc_llc_octet7b2_struct octet7b2;
+} csmcc_llc_struct;
+
+typedef struct {
+    kal_uint8 interpretation;
+    kal_uint8 protocol_profile;
+} csmcc_hlc_octet3_struct;
+
+typedef struct {
+    kal_uint8 high_layer_characteristics_iden;
+} csmcc_hlc_octet4_struct;
+
+typedef struct {
+    kal_uint8 extended_high_layer_characteristics_Iden;
+} csmcc_hlc_octet4a_struct;
+
+typedef struct {
+    kal_uint8 octet3_present;
+    csmcc_hlc_octet3_struct octet3;
+    kal_uint8 octet4_present;
+    csmcc_hlc_octet4_struct octet4;
+    kal_uint8 octet4a_present;
+    csmcc_hlc_octet4a_struct octet4a;
+} csmcc_hlc_struct;
+
+#endif /* _CSMCC_BC_TYPES_H */
+
diff --git a/mcu/protocol/layer4/l4/include/csmcc_defs.h b/mcu/protocol/layer4/l4/include/csmcc_defs.h
new file mode 100644
index 0000000..11ac029
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/csmcc_defs.h
@@ -0,0 +1,289 @@
+/*****************************************************************************
+*  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_defs.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   this file contains the constant and macro 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 _CSMCC_DEFS_H
+#define _CSMCC_DEFS_H
+
+//#include "app_ltlcom.h"
+#include "kal_public_api.h"
+#include "global_def.h"
+//#include "csmcc_types.h"
+#include "csm_trc.h"
+
+extern kal_uint8 csmcc_ut_sim_service_table_query(kal_uint32 service);
+extern kal_uint8 csm_ut_check_sim_status(void);
+
+#define CSMCC_SUCCESS      (0)
+#define CSMCC_FAILURE      (1)
+
+#define CSMCC_KAL_U_ONE       (kal_uint8)1
+#define CSMCC_KAL_U_ZERO      (kal_uint8)0
+
+#define CSMCC_INVALID_CALL_ID      (kal_uint8)255
+#define CSMCC_INVALID_SRC_ID       (kal_uint8)255
+#define CSMCC_NO_CAUSE             (kal_uint8)0
+#define CSMCC_INVALID_TI           (kal_uint8)7
+#define CSMCC_SRVCC_INVALID_TI     (kal_uint8)255
+
+
+#define CSMCC_MAX_CALL_NUM              (7)
+#define MAX_MPTY_MEMBER_NUM       (5)
+#define MAX_SS_BCD_NUM_LEN        (20)
+#define MAX_SS_SUB_ADDR_LEN       (21)
+#define L4_MAX_SUB_ADDR           (21)
+#define MAX_CD_ARG_LEN            (47)
+#define MAX_CUG_ARG_LEN           (10)
+#define L4_MAX_BCD_NUM_LEN        (41)  /*mtk01602, 070710:define MAX BCD length for CSD address*/
+#define CSMCC_GTIMER_NUM	  (3)   /*mtk01602: 3 global timers; dtmf and aoc,CALL_CONFIRM*/
+#define CSMCC_CALL_CONFIRM_TIME (KAL_TICKS_30_SEC)
+
+
+#define ACM_LEN                (3)
+#define ACMMAX_LEN             (3)
+#define EMLPP_LEN              (2)
+#define AAEM_LEN               (1)
+
+/* ss status oct[0], XXXXQPRA,only PRA=111, then Active.17.7.4 of 29.002 (QPRS). 23.011   */
+#define SS_ACT_MASK    0x07 
+/* ss notification oct[0], only the last 3 bits used, 24.080. */
+#define SS_CF_MASK     0x07
+
+#define CSMCC_FILE_ACM_MASK           0x01
+#define CSMCC_FILE_ACMMAX_MASK        0x02
+#define CSMCC_FILE_EMLPP_MASK         0x04
+#define CSMCC_FILE_AAEM_MASK          0x08
+#define CSMCC_ALL_FILE_MASK (CSMCC_FILE_ACM_MASK|   \
+                               CSMCC_FILE_ACMMAX_MASK|   \
+                               CSMCC_FILE_EMLPP_MASK|   \
+                               CSMCC_FILE_AAEM_MASK)   \
+                               
+#define CSMCC_STARTUP_SIM_FAIL_MASK   0x40
+#define CSMCC_STARTUP_NVRAM_FAIL_MASK 0x80
+#define CSMCC_SIM_FILE_CHANGE_FAIL_MASK  0x40
+#define CSMCC_TI_FLAG_OFFSET            (kal_uint8)3
+#define CSMCC_TI_FLAG_MASK              0x08
+#define CSMCC_TI_MASK                   0x07
+#define CSMCC_VT_CAP_MASK             0x01
+
+
+
+
+#if defined(__GEMINI__)
+#define CSMCC_PTR_G_TO_L csmcc_context_struct *csmcc_ptr_l=csmcc_ptr_g;
+#else
+#define CSMCC_PTR_G_TO_L 
+#endif
+
+#define CSMCC_GET_CCM_INCR_FLAG( call_id ) \
+             (((csmcc_ctab_g.call_tab[call_id-1].ccm_per_call) & 0x80000000) > 0)
+
+#define CSMCC_SET_CCM_INCR_FLAG( call_id ) \
+             csmcc_ctab_g.call_tab[call_id-1].ccm_per_call |= 0x80000000;
+
+#define CSMCC_RESET_CCM_INCR_FLAG( call_id ) \
+             csmcc_ctab_g.call_tab[call_id-1].ccm_per_call &= 0x7fffffff;
+
+#define CSMCC_RESET_SIM_READ_FLAG \
+             CSMCC_PTR->startup_req = 0;
+
+#define CSMCC_UNSET_SIM_READ_FLAG( mask ) \
+             CSMCC_PTR->startup_req &= ~mask;
+
+#define CSMCC_SET_SIM_READ_FLAG( mask ) \
+             CSMCC_PTR->startup_req |= mask;
+
+#define CSMCC_GET_SIM_READ_FLAG( mask ) \
+             (((CSMCC_PTR->startup_req) & mask ) > 0)
+
+#define CSMCC_SET_STARTUP_SIM_FAIL_FLAG \
+             CSMCC_PTR->startup_req |= CSMCC_STARTUP_SIM_FAIL_MASK;
+
+#define CSMCC_GET_STARTUP_SIM_FAIL_FLAG \
+             (((CSMCC_PTR->startup_req) & CSMCC_STARTUP_SIM_FAIL_MASK) >0)
+
+#define CSMCC_SET_STARTUP_NVRAM_FAIL_FLAG \
+             CSMCC_PTR->startup_req |= CSMCC_STARTUP_NVRAM_FAIL_MASK;
+
+#define CSMCC_GET_STARTUP_NVRAM_FAIL_FLAG \
+             (((CSMCC_PTR->startup_req) & CSMCC_STARTUP_NVRAM_FAIL_MASK) > 0)
+
+#define CSMCC_SET_SIM_FILE_CHANGE_FAIL_FLAG \
+             CSMCC_PTR->startup_req |= CSMCC_SIM_FILE_CHANGE_FAIL_MASK;
+
+#define CSMCC_GET_SIM_FILE_CHANGE_FAIL_FLAG \
+             (((CSMCC_PTR->startup_req) & CSMCC_SIM_FILE_CHANGE_FAIL_MASK) >0)
+
+#define CSMCC_CONSTRUCT_LOCAL_PARA(local_para_ptr, local_para_struct) \
+        local_para_ptr = (local_para_struct *) \
+           construct_local_para((kal_uint16)sizeof(local_para_struct), \
+           TD_RESET);
+
+#define GET_CALL_STATUS( call_id ) \
+             csmcc_ctab_g.call_pool[call_id]
+             
+#define SET_CALL_STATUS( call_id, status ) \
+             csmcc_ctab_g.call_pool[call_id] = status;
+                          
+#define CALL_ENTRY( call_id ) \
+             csmcc_ctab_g.call_tab[call_id-1]
+
+#define CALL_DATA( call_id, var ) \
+             csmcc_ctab_g.call_tab[call_id-1].var
+             
+#define GET_CALL_STATE( call_id ) \
+             csmcc_ctab_g.call_tab[call_id-1].call_state
+
+
+/* MAUI_01315252, update call state */
+#define SET_CALL_STATE( call_id, state)   csmcc_set_call_state(call_id, state);
+             
+#define GET_MPTY_STATE( call_id ) \
+             csmcc_ctab_g.call_tab[call_id-1].mpty_state             
+
+#define SET_MPTY_STATE( call_id, state) \
+             csmcc_ctab_g.call_tab[call_id-1].mpty_state = state; \
+             MD_TRC_CSMCC_TRACE_MPTY_STATE_CHANGE(\
+                       call_id, \
+                       csmcc_ctab_g.call_tab[call_id-1].call_state, \
+                       state, \
+                       csmcc_ctab_g.call_tab[call_id-1].src_id);
+                       
+#define GET_CALL_TYPE( call_id ) \
+             csmcc_ctab_g.call_tab[call_id-1].\
+             bc[csmcc_ctab_g.call_tab[call_id-1].cur_call_type]
+             
+#define SET_CALL_TYPE( call_id, call_type) \
+             csmcc_ctab_g.call_tab[call_id-1].\
+             bc[csmcc_ctab_g.call_tab[call_id-1].cur_call_type] = call_type;
+
+#define FILL_ACM_VAL( data, value ) \
+             data[2] = (kal_uint8)(value & 0x000000ff); \
+             data[1] = (kal_uint8)((value & 0x0000ff00)>>8); \
+             data[0] = (kal_uint8)((value & 0x00ff0000)>>16); 
+
+#define SET_ACM_VAL( data ) \
+             CSMCC_PTR->acm = data[2]+(data[1]<<8)+(data[0]<<16);\
+             CSMCC_PTR->pre_acm = data[2]+(data[1]<<8)+(data[0]<<16);
+
+#define SET_ACMMAX_VAL( data ) \
+             CSMCC_PTR->acmmax = data[2]+(data[1]<<8)+(data[0]<<16);
+
+#define SET_EMLPP_VAL( data ) \
+             CSMCC_PTR->default_call_priority = data[0];
+
+#define SET_AAEM_VAL( data ) \
+             CSMCC_PTR->auto_answer_priority_level = data[0];
+
+#define AUTO_ANSWER( call_id ) \
+             (((1 << (7 - csmcc_ctab_g.call_tab[call_id-1].call_priority)) & CSMCC_PTR->auto_answer_priority_level) > 0)
+
+#define CSD_USER_ID_LEN      32
+#define CSD_USER_PWD_LEN     32
+
+
+#if defined(__GEMINI__)
+/*Get current sim card by module id*/
+#define  CSMCC_SIM_INTERFACE  (CSMCC_PTR->csmcc_sim_interface) 
+#define CSMCC_MOD_ID (CSMCC_PTR->csmcc_sim_interface + MOD_CSM)
+#else
+#define  CSMCC_SIM_INTERFACE  
+#define CSMCC_MOD_ID MOD_CSM
+#endif
+
+#define CSMCC_MOD_SIM_INDEX (CSMCC_MOD_ID - MOD_CSM)
+
+#if (defined(__CSMCC_UT__) && defined(__MTK_INTERNAL__))
+#define  CSMCC_SIM_SERVICE_TABLE_QUERY(x) (csmcc_ut_sim_service_table_query(x))
+#define  CSMCC_CHECK_SIM_STATUS (csm_ut_check_sim_status())
+#define  CSMSS_SIM_SERVICE_TABLE_QUERY(x) (csmcc_ut_sim_service_table_query(x))
+#define  CSMSS_CHECK_SIM_STATUS (csm_ut_check_sim_status())
+#else
+#if defined(__GEMINI__)
+/*Get current sim card by module id*/
+/*If defined GEMINI, add another parameter in sim service table query API*/
+#define  CSMCC_SIM_SERVICE_TABLE_QUERY(x) (sim_service_table_query(x, CSMCC_PTR->csmcc_sim_interface))
+#define  CSMCC_CHECK_SIM_STATUS (check_sim_status(CSMCC_PTR->csmcc_sim_interface))
+#define  CSMSS_SIM_SERVICE_TABLE_QUERY(x) (sim_service_table_query(x, (kal_uint8)(csmss_cur_mod-MOD_CSM)))
+#define  CSMSS_CHECK_SIM_STATUS (check_sim_status((kal_uint8)(csmss_cur_mod-MOD_CSM)))
+#else
+#define  CSMCC_SIM_SERVICE_TABLE_QUERY(x) (sim_service_table_query(x))
+#define  CSMCC_CHECK_SIM_STATUS (check_sim_status())
+#define  CSMSS_SIM_SERVICE_TABLE_QUERY(x) (sim_service_table_query(x))
+#define  CSMSS_CHECK_SIM_STATUS (check_sim_status())
+#endif
+#endif
+
+#if !defined(__MTK_TARGET__) && !defined(__UE_SIMULATOR__) // UT
+#define CSMCC_ALLOC_CALL_ID_FROM_VDM(x)
+#define CSMCC_DEALLOC_CALL_ID_FROM_VDM(x)
+#else
+#define CSMCC_ALLOC_CALL_ID_FROM_VDM(x) (vdm_external_alloc_call_context(KAL_FALSE, &x, CSMCC_PTR->csmcc_sim_interface))
+#define CSMCC_DEALLOC_CALL_ID_FROM_VDM(x) (vdm_external_dealloc_call_context(x, CSMCC_PTR->csmcc_sim_interface))
+#endif
+
+#define CSMCC_SIM_TOTAL (MAX_SIM_NUM) 
+#define CSMCC_DEFAULT_INTERFACE (15)
+
+#endif /* _CSMCC_DEFS_H */
+
diff --git a/mcu/protocol/layer4/l4/include/csmcc_types.h b/mcu/protocol/layer4/l4/include/csmcc_types.h
new file mode 100644
index 0000000..61e8305
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/csmcc_types.h
@@ -0,0 +1,548 @@
+/*****************************************************************************
+*  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_types.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 _CSMCC_TYPES_H
+#define _CSMCC_TYPES_H
+
+//#include "event_shed.h"       
+//#include "stack_timer.h"      
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "kal_public_api.h"
+//#include "event_shed.h"
+//#include "stack_timer.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "csmcc_defs.h"
+#include "csmcc_common_enums.h"
+#include "csmcc_enums.h"
+#include "csmcc_bc_types.h"
+#include "mncc_struct.h"
+//#include "ps2sat_struct.h"
+#include "l4c2csm_cc_struct.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"     
+#include "l4_nvram_def.h"
+#include "l4_nvram_editor.h"
+
+typedef kal_uint16 csmcc_ret_t;
+
+typedef enum
+{
+   CSMCC_CALL_FREE,
+   CSMCC_CALL_BLK,
+   CSMCC_CALL_UNUSED
+} csmcc_call_alloc_enum;
+
+typedef enum
+{
+   CSMCC_AUTO_DTMF,
+   CSMCC_MANUAL_DTMF,
+   CSMCC_VTS_DTMF,
+   CSMCC_INVALID_DTMF_MODE = 255
+} csmcc_dtmf_mode_enum;
+
+typedef enum
+{
+   CSMCC_CALL_IDLE            = 0x0000, /*0*/
+   CSMCC_CALL_INIT            = 0x0001, /*1*/
+   CSMCC_CALL_ALERT           = 0x0002, /*2*/
+   CSMCC_CALL_ACCEPT          = 0x0004, /*4*/
+   CSMCC_CALL_ACTIVE          = 0x0008, /*8*/
+   CSMCC_MS_CALL_DISC         = 0x0010, /*16*/
+   CSMCC_NW_CALL_DISC         = 0x0020, /*32*/
+   CSMCC_NW_CALL_DISC_ON_HOLD = 0x0040, /*64*/
+   CSMCC_CALL_MODIFY          = 0x0080, /*128*/
+   CSMCC_CALL_HOLD_REQ        = 0x0100, /*256*/
+   CSMCC_CALL_HOLD            = 0x0200, /*512*/
+   CSMCC_CALL_RETRIEVE_REQ    = 0x0400, /*1024*/
+   CSMCC_CALL_PRESENT_IND     = 0x0800  /*2048*/
+} csmcc_call_state_enum;
+
+typedef enum
+{
+    CSMCC_CALL_NUM_TYPE_NO_VALID,
+    CSMCC_CALL_NUM_TYPE_URI,
+    CSMCC_CALL_NUM_TYPE_BCD
+    
+} csmcc_call_number_type_enum;
+
+
+#define CSMCC_ALL_DISC_STATES (CSMCC_MS_CALL_DISC|   \
+                               CSMCC_NW_CALL_DISC|   \
+                               CSMCC_NW_CALL_DISC_ON_HOLD)   \
+                               
+#ifdef __CCBS_SUPPORT__
+typedef enum
+{
+   CSMCC_CCBS_NONE,
+   CSMCC_CCBS_POSSIBLE,
+   CSMCC_CCBS_ACTIVATED,
+   CSMCC_CCBS_INVOKED
+} csmcc_ccbs_status_enum;
+#endif /*__CCBS_SUPPORT__*/
+
+typedef enum
+{
+   CSMCC_MPTY_IDLE,
+   CSMCC_MPTY_REQ,
+   CSMCC_MPTY_ACTIVE,
+   CSMCC_SPLIT_REQ
+} csmcc_mpty_state_enum;
+
+typedef struct csmcc_dtmf_struct
+{
+   kal_uint8          *digit;
+   kal_uint8          cur_digit_index;
+   kal_uint8          count;  
+} csmcc_dtmf_struct;
+
+typedef struct csmcc_inv_info_struct
+{
+   kal_uint32          inv_id;
+   kal_uint8          opcode;
+   kal_bool           used;
+} csmcc_inv_info_struct;
+
+typedef struct csmcc_cug_info_struct
+{
+   kal_uint16 cug_index;
+   kal_uint8 cug_suppress;
+} csmcc_cug_info_struct;
+
+/*mtk01602: Replace 3 stack timer(DTMF, AoC, RLC) by event scheduler*/
+typedef struct csmcc_timer_struct
+{
+	kal_uint8 	call_id;
+	eventid	  	event_id;
+	kal_uint32	timer_duration; 
+} csmcc_timer_struct;
+
+typedef struct csmcc_call_context_struct
+{
+   kal_uint8                   call_id;
+   kal_uint8                   src_id;
+   kal_uint8                   ti;
+   csmcc_call_state_enum       call_state;
+   csmcc_call_mode_enum        call_mode;
+   kal_uint8                   cur_call_type;
+   csmcc_call_orig_enum        call_orig;
+   csmcc_call_type_enum        bc[2];
+   csmcc_dtmf_mode_enum        dtmf_mode;
+   kal_bool                    wait_stop_dtmf;   
+   csmcc_dtmf_struct           dtmf;
+   kal_bool                    cw_flag;                   
+   kal_bool                    cug_info;
+   kal_uint8                   clir_info;
+   csmcc_inv_info_struct       inv_info; 
+   csmcc_mpty_state_enum       mpty_state;
+   /* store previous state, when send or receive DISC */
+   csmcc_call_state_enum       pre_call_state; 
+#ifdef __AOC_SUPPORT__
+   kal_uint32                  ccm_per_call;
+   kal_uint32			 aoc_cdur;  
+#endif 
+   /* save rlc_timer_status, this timer is started for REL_COMP_REQ will not immediately sent until timer expired. */
+   csmcc_timer_struct          rlc_timer;
+   kal_uint8				   csmcc_rlc_status;
+   /* the following variable is for:
+      1. sending connect indication after data activation in case of MO data or fax call 
+      2. sending incoming call indication after sending alerting request in case of 
+         early assignment */
+   local_para_struct                *local_para_ptr;
+#ifdef __EMLPP_SUPPORT__
+   csmcc_call_priority_enum    call_priority;
+#endif 
+#ifdef __CCBS_SUPPORT__   
+   csmcc_ccbs_status_enum      ccbs_status;
+   kal_uint8                   ccbs_index;
+#endif /*__CCBS_SUPPORT__*/
+#ifdef __SAT__
+   kal_uint8   sat_call_type;
+   kal_uint8   type_of_modification; //mtk01602: Store tom for SAT modified call to avoid L4C retry but send call ctrl again
+#endif
+
+   /*mtk01602: R4 new feature, Emergency Call Category*/
+#ifdef __REL4__
+   kal_uint8                service_category;
+#endif
+   kal_bool                    number_present;
+   l4_addr_bcd_struct          number;
+   kal_bool                    connected_number_present;
+   l4_addr_bcd_struct          connected_number;
+#ifdef __SUBADDR_SUPPORT__
+   kal_bool                    sub_addr_present;
+   l4ccsm_cc_sub_addr_struct   sub_addr;
+#endif
+
+   kal_bool ctrl_by_sim_with_mod;                /* call control by SIM with modified number */
+   l4_addr_bcd_struct ctrl_by_sim_tmp_number;
+
+   kal_bool cli_present;
+   kal_uint8 cli;
+   kal_bool alpha_present;
+   kal_char alpha[MAX_PS_NAME_SIZE + 1];
+   kal_uint8 number_type;
+   kal_bool uri_present;
+   kal_char uri[MAX_SIP_URI_LEN];
+
+#if defined(__IMS_SUPPORT__)
+   kal_uint8 srvcc_call;
+#endif
+   kal_uint8 cli_validity;
+   kal_bool is_facility_ind_pending;
+   mncc_facility_struct facility_ind;
+} csmcc_call_context_struct;
+
+typedef struct csmcc_v120_param_struct
+{
+   csmcc_v120_rah_enum          v120_rah;
+   csmcc_v120_mfm_enum          v120_mfm;
+   csmcc_v120_mode_enum         v120_mode;
+   csmcc_v120_llineg_enum       v120_llineg;
+   csmcc_v120_assign_enum       v120_assign;
+   csmcc_v120_negtype_enum      v120_negtype;
+} csmcc_v120_param_struct;
+
+typedef struct csmcc_rlp_param_struct
+{
+   kal_uint8           rlp_iws;
+   kal_uint8           rlp_mws;
+   kal_uint8           rlp_T1;
+   kal_uint8            rlp_N2;
+   kal_uint8            rlp_ver;
+   kal_uint8            rlp_T4;
+} csmcc_rlp_param_struct;
+
+typedef struct csmcc_data_compression_param_struct
+{
+   csmcc_data_compression_dir_enum         dir;
+   csmcc_data_compression_nego_enum        negotiation;
+   kal_uint16                              max_dict;
+   kal_uint8                               max_string;
+} csmcc_data_compression_param_struct;
+
+typedef struct csmcc_data_bc_param_struct
+{
+   csmcc_sync_enum             sync;
+   csmcc_bearer_ce_enum        ce;
+   csmcc_itc_enum              itc;
+   csmcc_other_itc_enum        other_itc;
+   csmcc_user_rate_enum        ur;
+   csmcc_fnur_enum             fnur;
+   csmcc_rate_adaptation_enum                ra;
+   csmcc_other_rate_adaptation_enum          other_ra;
+   csmcc_modem_type_enum                     mt;
+   csmcc_other_modem_type_enum               other_mt;
+   csmcc_v120_param_struct                   v120_param;
+   csmcc_rlp_param_struct                    rlp_param;
+   csmcc_data_compression_param_struct       data_compression_param;
+   csmcc_nsb_enum              nsb;
+   csmcc_ndb_enum              ndb;
+   csmcc_parity_enum           parity;
+   
+} csmcc_data_bc_param_struct;
+
+typedef struct csmcc_bearer_service_type_struct
+{
+   csmcc_bearer_speed_enum      bearer_speed;
+   csmcc_bearer_name_enum       bearer_name;
+   csmcc_bearer_ce_enum         bearer_ce;
+} csmcc_bearer_service_type_struct;
+
+
+typedef struct csmcc_cf_param_struct
+{
+   csmcc_cf_format_enum          cf_format;
+   csmcc_cf_parity_enum          cf_parity;
+} csmcc_cf_param_struct;
+
+
+typedef struct csmcc_cug_param_struct
+{
+   csmcc_cug_temporary_mode_enum    cug_temporary_mode;
+   kal_uint8                        cug_index;
+   csmcc_cug_suppress_enum          cug_suppress;
+} csmcc_cug_param_struct;
+
+typedef struct csmcc_at_param_struct
+{
+   csmcc_addr_type_enum          addr_type;
+   csmcc_call_mode_enum          call_mode;
+   csmcc_bearer_service_type_struct     bearer_service_type;
+   csmcc_sns_mode_enum           sns_mode;
+   csmcc_data_compression_param_struct  data_compression_param;
+   csmcc_cf_param_struct                cf_param;
+   csmcc_v120_param_struct              v120_param;
+   csmcc_rlp_param_struct               rlp_param;
+   csmcc_aoc_mode_enum                  aoc_mode;
+   csmcc_cug_param_struct               cug_param;
+   csmcc_fclass_mode_enum               fclass_mode;
+} csmcc_at_param_struct;
+
+typedef struct csmcc_nego_bc_struct
+{
+   kal_bool  bc1_present;
+   csmcc_bc_struct  bc1;
+   kal_bool  bc2_present;
+   csmcc_bc_struct  bc2;
+   kal_bool  repeat_present;
+   mncc_repeat_ind_struct   bc_repeat_ind;
+} csmcc_nego_bc_struct;
+
+/*[MAUI_00740014] Supported Codec List
+   Supported UMTS codec should also be considered after Rel 4 onward. */
+
+/*MAUI_02601973 remove rel 4 compile option */
+typedef struct csmcc_mscap_struct
+{
+   kal_uint8   speech_version;   
+   kal_uint8   acc;   
+   kal_uint16  data_cap;
+   kal_uint8   speech_version_byte2;   /*second byte for GSM supported speech codec*/
+   kal_uint8   umts_supported_speech;  /*first byte for UMTS supported speech codec*/
+   kal_uint8   umts_supported_speech_byte2; /*second byte for UMTS supported speech codec*/
+   kal_uint8   disable_call; /*MAUI_02907137 block CS call for DATA CARD*/
+   kal_uint8   tdd_supported_speech;
+   kal_uint8   tdd_supported_speech_byte2;
+} csmcc_mscap_struct;   
+
+
+typedef struct csmcc_evshed_struct
+{
+	event_scheduler	*evshed_ptr;
+	
+} csmcc_evshed_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+ /*cosine: 20080512, [SMS BOOTSTRAP]*/
+typedef struct
+{
+    kal_uint16 rec_num;     /* total record numbers */
+    kal_uint16 rec_size;    /* one record size */
+    kal_uint16 batch_num;   /* batch record numbers */
+    kal_uint16 current_rec; /* current record number */
+} csmcc_nvram_struct;
+
+#ifdef __CPHS__
+typedef struct csmcc_als_struct
+{
+   kal_uint8   line_id;
+} csmcc_als_struct;
+#endif
+
+
+typedef struct csmcc_context_struct
+{
+   csmcc_req_enum                   cur_req;
+   kal_uint8                        req_call_id;
+   csmcc_crss_req_enum              crss_req;
+   kal_bool                         sat_file_change_req; /* ALPS00439699 */
+   kal_bool                         starup_sim_read_req;
+   kal_bool                          is_tch;     /*mtk00924 add 041210 for ECPI*/
+   kal_bool                          is_ibt;      /*mtk00924 add 041210 for ECPI*/
+   kal_uint8			             rat;
+   kal_uint8                         rat_mode;   /* MAUI_00740014 : add for rel4 new IE, SCL*/
+#ifdef __REL6__
+   /*[MAUI_01712442]CC R6 change request*/ 
+   kal_bool                          umts_only_service;
+#endif
+   kal_uint8   csmcc_sim_interface;
+   csmcc_mscap_struct               mscap;
+   csmcc_evshed_struct		    csmcc_timer; 
+   csmcc_timer_struct		    csmcc_timer_pool[CSMCC_GTIMER_NUM];
+   csmcc_data_bc_param_struct       data_bc_param;
+   csmcc_at_param_struct            at_param;
+   csmcc_nego_bc_struct             nego_bc;
+   kal_uint8                        default_call_priority;
+   kal_uint8                        auto_answer_priority_level;   
+   //csmcc_timer_struct             csmcc_timer;   /* used by auto dtmf pause */
+   //csmcc_timer_struct             csmcc_timer_2;   /* used by AoC update SIM ACM */   
+   kal_uint32			    rlc_duration;
+   kal_bool                         call_reest;
+   csmcc_attach_status_enum         attach_status;   
+   csmcc_channel_info_enum          channel_info;
+   kal_uint8                        channel_mode;
+   kal_uint8                        channel_type;
+   kal_uint8                        req_src_id;
+   /*Cosine: 20080503*/
+   csmcc_req_enum                   prev_req;
+   kal_uint8                        prev_req_src_id;
+   kal_uint8                        prev_req_call_id;
+   /*csmcc_req_enum*/kal_uint8                   aux_req;
+   kal_uint8                        startup_req;/*only used in startup sim phase*/
+   kal_uint8                        aux_req_call_id;
+   kal_bool                         is_aux_req_processed;
+   csmcc_req_enum                   cur_non_l4c_req;
+   kal_uint8                        cur_non_l4c_req_call_id;
+   /*mtk01602, 070718: MMI needs opcode in CHLD_RSP, otherwise when there's multiple CHLD_REQ,
+    MMI may confused with CHLD_RSP.*/
+   kal_uint32                       pause_duration;
+   kal_uint32                       inv_id_count;
+   kal_uint32                       inv_id_received;
+   kal_bool                          is_sat_dtmf;
+   kal_uint8                         dtmf_src_id;
+   /*Michael: add for SAT retry, to store ccp from L4C or SIM until send SAT_CALL_SETUP_CNF*/
+   kal_uint8                        ccp_temp[MAX_SAT_SIZE_OF_CCP];
+   kal_uint8                         size_of_ccp_temp;
+   kal_uint8                         ctm_status;
+   kal_uint8			     activate_data_call_id;
+   kal_uint8 			     iwf;
+   csmcc_bearer_ce_enum   activate_data_call_ce; /* MAUI_01789039 */
+   kal_uint8  csmcc_emergency_call_id;
+#ifdef __AOC_SUPPORT__
+   kal_uint32                       acm;
+   kal_uint32                       pre_acm;
+   kal_uint32                       acmmax;
+   kal_uint32                       acmmax_update_temp;
+   kal_uint32                       last_ccm;
+   kal_bool                         acm_valid;
+   kal_bool                         update_acm_flag;
+   kal_uint32 acm_before_write_sim;//MAUI_02866587 , because ACM might be increased during increasing SIM(before CNF), therefore.save before increase SIM
+#endif 
+/* __CNAP_SUPPORT__*/
+   /* [Cosine 070327] CNAP */
+   l4ccsm_cc_name_ind_struct  	cnap_info;
+#ifdef __CPHS__
+   kal_uint8                              temp_als_id;
+   csmcc_als_struct                   als;
+#endif
+
+   kal_bool  rscd_P;
+   csmcc_csd_prof_rate_enum prof_type; //add profile type for CSD prof, SAT prof, and SIM provisioing prof.
+   kal_uint8                              seq_num; //MAUI_01964704
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+   kal_uint8  csmcc_ecall_id;
+   ecall_type_enum ecall_type;
+#endif
+   kal_bool dup_sim_file_change_req;//ALPS00437346, true when there is unfinished sim file change
+//ALPS00596537, store the newest call id for build MPTY call.
+   kal_uint8 csmcc_last_call_id;
+   kal_uint16 connected_call_count; /*only active call can be counted in*/
+   kal_bool call_id_assign_not_send; /* ALPS01888671 */
+#ifdef __TC7__CS__SUPPORT__
+   kal_bool call_exist_status_to_rrce;
+   kal_bool is_mt_call_type_notified_to_rrce;
+#endif
+#if defined(__MODEM_EM_MODE__)
+   kal_bool em_event_report;
+#endif /*__MODEM_EM_MODE__*/
+   kal_uint8 srvcc_smallest_ti;
+   kal_uint8 sim_slot_id;
+   nvram_ef_plmn_for_esvc_struct plmn_for_esvc;
+   kal_uint32 plmn_info;
+} csmcc_context_struct;
+
+typedef struct
+{
+    event_scheduler *event_scheduler_ptr;  // to save original protocol event scheduler ptr
+} csmcc_ps_context_struct;
+
+typedef struct csmcc_ctab_struct
+{
+   csmcc_call_alloc_enum            call_pool[CSMCC_MAX_CALL_NUM+1];
+   csmcc_call_context_struct        call_tab[CSMCC_MAX_CALL_NUM];
+} csmcc_ctab_struct;   
+   
+extern csmcc_ctab_struct csmcc_ctab_g;
+extern csmcc_ctab_struct *csmcc_ctab_ptr_g;
+
+#if defined(__GEMINI__)
+extern module_type csmcc_ctab_mod_id;
+#endif /*__GEMINI__*/
+
+extern csmcc_context_struct *csmcc_ptr_g;
+extern csmcc_context_struct csmcc_context_g[CSMCC_SIM_TOTAL];
+extern csmcc_ps_context_struct csmcc_ps_context_g[CSMCC_SIM_TOTAL];
+extern kal_uint32 csmcc_call_capability; 
+
+#if defined(__GEMINI__)
+#define CSMCC_PTR   (csmcc_ptr_l)
+#else
+#define CSMCC_PTR   (csmcc_context_g)
+#endif
+
+/*every ILM from L4C, which relates one call
+  shall be having the following header */
+  
+typedef struct l4ccsm_cc_local_para_hdr_struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 call_id;
+} l4ccsm_cc_local_para_hdr_struct;
+
+typedef l4_addr_bcd_struct mncc_called_num_struct;
+typedef l4ccsm_cc_peer_addr_struct   mncc_calling_num_struct;
+typedef l4ccsm_cc_sub_addr_struct mncc_sub_addr_struct;
+typedef void (*csmcc_timer_hdlr_t)(kal_uint32 data);
+
+#endif /* _CSMCC_TYPES_H */
+
+
diff --git a/mcu/protocol/layer4/l4/include/csmss_atfunc.h b/mcu/protocol/layer4/l4/include/csmss_atfunc.h
new file mode 100644
index 0000000..e9f783f
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/csmss_atfunc.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:
+ * ---------
+ *	csmss_atfunc.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for aux. handler of messages from L4C and SS.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _CSMSS_ATFUNC_H
+#define _CSMSS_ATFUNC_H
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif //__CSMSS_UT__
+
+extern kal_bool l4ccsm_ss_set_essp_mode(kal_uint32 mode);
+extern kal_uint32 l4ccsm_ss_get_essp_mode(void);
+extern kal_bool l4ccsm_ss_check_if_operation_for_all_bs_code(void);
+extern void l4ccsm_ss_reset_ss_request_for_all_bs_code(void);
+
+#endif /* End of file csmss_atfunc.h */
+
+
diff --git a/mcu/protocol/layer4/l4/include/l4c2csm_ss_lcs_struct.h b/mcu/protocol/layer4/l4/include/l4c2csm_ss_lcs_struct.h
new file mode 100644
index 0000000..ffe0c65
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/l4c2csm_ss_lcs_struct.h
@@ -0,0 +1,191 @@
+/*****************************************************************************
+*  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_ss_lcs_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+/*******************************************************************************
+*  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_ss_lcs_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2CSM_SS_LCS_STRUCT_H
+#define _L4C2CSM_SS_LCS_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ss_asn.h"
+
+//SSAGPS
+//to L4C
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LocationNotificationArg   ssLocationNotificationArg;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_mtlr_begin_ind_struct;
+//MSG_ID_L4CCSM_CISS_MTLR_BEGIN_IND,
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LCS_AreaEventRequestArg   ssLCSAreaEventRequestArg;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_aerq_begin_ind_struct;
+//MSG_ID_L4CCSM_CISS_AERQ_BEGIN_IND,
+
+//null
+//MSG_ID_L4CCSM_CISS_AERP_FAC_IND,
+// for parallel SS
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_aerp_fac_ind_struct;
+//MSG_ID_L4CCSM_CISS_AERP_FAC_IND,
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 return_code;
+    kal_uint8 cause_present;
+    kal_uint16 cause;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_aerp_end_cnf_struct;
+//MSG_ID_L4CCSM_CISS_AERP_END_CNF,
+
+typedef l4ccsm_ciss_aerp_end_cnf_struct l4ccsm_ciss_molr_end_cnf_struct;
+//MSG_ID_L4CCSM_CISS_MOLR_END_CNF,
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LCS_AreaEventCancellationArg ssLCSAreaEventCancellationArg;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_aecl_begin_ind_struct;
+//MSG_ID_L4CCSM_CISS_AECL_BEGIN_IND,
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LCS_MOLRRes ssLCSMOLRRes;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_molr_fac_ind_struct;
+//MSG_ID_L4CCSM_CISS_MOLR_FAC_IND,
+
+
+
+//to CISS
+
+//MT response
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LocationNotificationRes ssLocationNotificationRes;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_mtlr_end_rsp_struct;
+//MSG_ID_L4CCSM_CISS_MTLR_END_RSP,
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    kal_uint8 cause_value;
+    kal_uint8 ss_id; // for parallel SS
+} l4ccsm_ciss_aerq_end_rsp_struct;
+//or null?
+//MSG_ID_L4CCSM_CISS_AERQ_END_RSP,
+
+//MO request
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LCS_AreaEventReportArg ssLCSAreaEventReportArg; 
+    kal_uint8 ss_id; // for parallel SS
+    kal_uint8 rat_info; //for CISS to recognize the operating rat: 0:2/3G, 1:4G
+} l4ccsm_ciss_aerp_req_struct;
+//MSG_ID_L4CCSM_CISS_AERP_REQ,
+
+typedef  l4ccsm_ciss_aerp_req_struct l4ccsm_ciss_aerp_fac_res_struct;
+//MSG_ID_L4CCSM_CISS_AERP_FAC_RES
+
+typedef  l4ccsm_ciss_aerq_end_rsp_struct l4ccsm_ciss_aerp_end_req_struct;
+typedef  l4ccsm_ciss_aerq_end_rsp_struct l4ccsm_ciss_aecl_end_rsp_struct;
+typedef  l4ccsm_ciss_aerq_end_rsp_struct l4ccsm_ciss_molr_end_req_struct;
+//MSG_ID_L4CCSM_CISS_AERP_END_REQ,
+//MSG_ID_L4CCSM_CISS_AECL_END_RSP,
+//MSG_ID_L4CCSM_CISS_MOLR_END_REQ
+typedef  l4ccsm_ciss_aerq_end_rsp_struct l4ccsm_ciss_lcs_end_req_struct; // for general used
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 src_id;
+    SS2_LCS_MOLRArg ssLCSMOLRArg;
+    kal_uint8 ss_id; // for parallel SS
+    kal_uint8 rat_info; //for CISS to recognize the operating rat: 0:2/3G, 1:4G
+} l4ccsm_ciss_molr_req_struct;
+//MSG_ID_L4CCSM_CISS_MOLR_REQ
+
+typedef  l4ccsm_ciss_molr_req_struct l4ccsm_ciss_molr_fac_res_struct;
+//MSG_ID_L4CCSM_CISS_MOLR_FAC_RES
+
+#endif
+
+
diff --git a/mcu/protocol/layer4/l4/include/l4c2csm_ss_struct.h b/mcu/protocol/layer4/l4/include/l4c2csm_ss_struct.h
new file mode 100644
index 0000000..8b99339
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/l4c2csm_ss_struct.h
@@ -0,0 +1,333 @@
+/*****************************************************************************
+*  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_ss_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * 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 : l4c2csm_ss_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _L4C2CSM_SS_STRUCT_H
+#define _L4C2CSM_SS_STRUCT_H
+
+#include "ps_public_enum.h" 
+#include "ps_public_struct.h" 
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_common_enum.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 result;
+} l4ccsm_ciss_startup_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 op_code;
+   kal_uint8 ss_code;
+   kal_uint8 bs_code;
+   kal_uint8 no_reply_timer;
+   kal_uint8 subaddress_flag;
+   l4_addr_bcd_struct address;
+   l4_addr_bcd_struct subaddress;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cf_begin_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 op_code;
+   kal_uint8 bs_code;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cw_begin_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 op_code;
+   kal_uint8 ss_code;
+   kal_uint8 bs_code;
+   kal_uint8 old_pw[4];
+   kal_uint8 new_pw1[4];
+   kal_uint8 new_pw2[4];
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cb_begin_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 op_code;
+   kal_uint8 ss_code;
+   kal_uint8 default_priority_level;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_emlpp_begin_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 ss_code;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cli_begin_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 op_code;
+   kal_uint8 ccbs_index;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_ccbs_begin_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 ussd_dcs;
+   kal_uint8 ussd_string[MAX_DIGITS_USSD];
+   kal_uint8 ussd_string_length;
+   kal_bool change_phase_req;   
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_pussr_begin_req_struct;
+
+typedef l4ccsm_ciss_pussr_begin_req_struct l4ccsm_ciss_ussr_begin_ind_struct;
+typedef l4ccsm_ciss_pussr_begin_req_struct l4ccsm_ciss_ussn_begin_ind_struct;
+typedef l4ccsm_ciss_pussr_begin_req_struct l4ccsm_ciss_ussr_fac_res_struct;
+typedef l4ccsm_ciss_pussr_begin_req_struct l4ccsm_ciss_ussn_fac_res_struct;
+typedef l4ccsm_ciss_pussr_begin_req_struct l4ccsm_ciss_ussr_fac_ind_struct;
+typedef l4ccsm_ciss_pussr_begin_req_struct l4ccsm_ciss_ussn_fac_ind_struct;
+
+typedef struct {
+   kal_uint8 cause_present;
+   kal_uint16 cause_value;
+   kal_uint8 para_present;
+#ifdef __SAT__
+   kal_uint8 res;
+   kal_uint8 size_of_additional_info;
+   kal_uint8 additional_info[255];
+#endif
+} ss_return_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 op_code;
+   kal_uint8 ss_code;
+   kal_uint8 bs_count;
+   forwarding_list_struct forwarding_list[13];
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cf_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 op_code;
+   kal_uint8 bs_count;
+   kal_uint8 bs_code[13];
+   kal_uint8 ss_status;
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cw_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 op_code;
+   kal_uint8 ss_code;
+   kal_uint8 bs_count;
+   barring_list_struct barring_list[13];
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cb_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 op_code;
+   kal_uint8 ss_status;
+   kal_uint8 default_priority_level;
+   kal_uint8 maximum_priority_level;
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_emlpp_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 ss_code;
+   kal_uint8 ss_status;
+   kal_uint8 clir_option;
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_cli_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 op_code;
+   kal_uint8 ccbs_count;
+   ccbs_list_struct ccbs_list[5];
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_ccbs_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   kal_uint8 op_code;
+   kal_uint8 ussd_dcs;
+   kal_uint8 ussd_string[MAX_DIGITS_USSD];
+   kal_uint8 ussd_string_length;
+   ss_return_struct ss_return;
+#ifdef WISDOM_MMI
+// MAUI_01652364
+   kal_uint8 ussd_return_type; //l4c_ussd_return_type_enum
+#endif
+   kal_bool change_phase_ind;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_pussr_end_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 return_code;
+   ss_return_struct ss_return;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_ussd_end_cnf_struct;
+
+typedef l4ccsm_ciss_ussd_end_cnf_struct l4ccsm_ciss_ussr_end_cnf_struct;
+typedef l4ccsm_ciss_ussd_end_cnf_struct l4ccsm_ciss_ussn_end_cnf_struct;
+#ifdef __SAT__
+typedef l4ccsm_ciss_ussd_end_cnf_struct l4ccsm_ciss_sim_end_cnf_struct;
+#endif
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 guidance_info;
+} l4ccsm_ciss_cb_fac_ind_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 password[4];
+} l4ccsm_ciss_cb_fac_res_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 cause_value;
+   kal_uint8 ss_id; //MAUI_02857408, [AGPS][UP CP conflict] Support Parallel SS
+} l4ccsm_ciss_end_res_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 ton_npi;
+   kal_uint8 length;
+   kal_uint8 ss_dcs;
+   kal_uint8 ss_string[MAX_DIGITS_USSD];
+   kal_bool change_phase_req;
+   kal_uint8 type_of_modification;
+   kal_uint8 cf_number_length; /* [MAUI_01722785] add cf number interface */
+   kal_uint8 explicit_ss_op; //MAUI_02553565 explicit SS operation
+} l4ccsm_ciss_ss_parse_req_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 opcode;
+   kal_uint8 ss_dcs;
+   kal_uint8 ss_string[MAX_DIGITS_USSD];
+   kal_uint8 type_of_modification;
+   kal_uint8 cf_number_length; //MAUI_02547720
+   kal_uint8 explicit_ss_op; //MAUI_02553565
+} l4ccsm_ciss_ss_parse_cnf_struct;
+
+typedef struct {
+   LOCAL_PARA_HDR
+   kal_uint8 src_id;
+   kal_uint8 action;
+   kal_uint8 line_num;
+} l4ccsm_cphs_display_cfu_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/layer4/l4/include/l4c2tcm_func.h b/mcu/protocol/layer4/l4/include/l4c2tcm_func.h
new file mode 100644
index 0000000..14dda7b
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/l4c2tcm_func.h
@@ -0,0 +1,837 @@
+/*****************************************************************************
+*  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_FUNC.H
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file handles AT get and query command.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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_FUNC_H
+#define _L4C2TCM_FUNC_H
+
+//#include "ps_public_struct.h"
+//#include "tcm_common.h"
+//#include "kal_non_specific_general_types.h"
+//#include "mmi_l3_enums.h"
+//#include "l4c_common_enum.h"
+//#include "tcm_common_enums.h"
+//#include "l3_inc_enums.h"
+//#include "l4c2tcm_struct.h"
+
+#include "mmi_sm_enums.h"
+//#include "custom_mmi_default_value.h"
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "ps_public_enum_public.h"
+#include "tcm_context_enum.h"
+
+#include "tcm_api.h"
+
+#include "tcm_context.h"
+#include "l4c_utility.h"
+
+#include "ps_public_struct.h"
+
+#include "nvram_editor_data_item.h"  /* __MEDIATEK_SMART_QOS__ */
+
+// mtk04002_20120518: should NOT include tftlib_api.h here (will cause codegen error) => modify to include tftlib_common_struct.h
+#include "tftlib_common_struct.h"
+
+#include "c2k_irat_msg_struct.h"
+#include "mcd_l3_inc_struct.h"
+
+extern const kal_uint8 rmmi_sdu_err_ratio_string_table[8][3];
+extern const kal_uint8 rmmi_residual_ber_string_table[10][3];
+
+#ifdef __TCPIP__ /* ABM */
+typedef struct
+{
+   kal_uint8	cid;
+   kal_uint32	ext_rx_data;
+   kal_uint32	ext_tx_data;
+} l4c_ext_gprs_statistics_info_struct;
+#endif
+
+#ifdef __TCM_EXT_CALL_HISTORY_SUPPORT__
+typedef struct
+{
+    kal_uint64    call_history_total_ext_tx_data;
+    kal_uint64    call_history_total_ext_rx_data;
+    kal_uint64    call_history_last_ext_tx_data;
+    kal_uint64    call_history_last_ext_rx_data;
+    kal_uint64    call_history_total_ext_conn_duration_in_secs;
+    kal_uint32    call_history_last_ext_conn_duration_in_secs;
+    kal_uint8      which_cid_is_last_cid;
+}l4c_ext_gprs_call_history_info_struct;
+#endif // ~ __TCM_EXT_CALL_HISTORY_SUPPORT__
+
+//mtk04121
+typedef struct
+{
+    kal_uint8   context_id;
+    kal_uint8   bearer_id;
+    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;
+} l4c_prim_pdp_rdp_info_struct;
+
+//mtk04121
+typedef struct
+{
+    kal_uint8   context_id;
+    kal_uint8   primary_context_id;
+    kal_bool    bearer_id_present;
+    kal_uint8   bearer_id;
+    kal_bool    im_cn_signalling_flag_present;
+    kal_uint8   im_cn_signalling_flag;
+    kal_bool    wlan_offlad_present;
+    kal_uint8   wlan_offlad;
+    kal_bool    pdu_session_id_present;
+    kal_uint8   pdu_session_id;
+} l4c_sec_pdp_rdp_info_struct;
+
+typedef struct
+{
+   kal_uint8                   length;
+   l4c_prim_pdp_info_struct    prim_pdp_info[MAX_L4_PS_PDN_NUM];
+} l4c_prim_pdp_info_list_struct;
+ 
+typedef struct
+{
+   kal_uint8                   length;
+   l4c_sec_pdp_info_struct     sec_pdp_info[MAX_L4_PS_CID_NUM];
+} l4c_sec_pdp_info_list_struct;
+ 
+typedef struct
+{
+   kal_uint8          length;
+   l4c_qos_struct     qos_info[MAX_L4_PS_CID_NUM];
+} l4c_qos_list_struct;
+
+typedef struct
+{
+   kal_uint8          length;
+   l4c_eqos_struct     qos_info[MAX_L4_PS_CID_NUM];
+} l4c_eqos_list_struct;
+
+typedef struct
+{
+    kal_uint8 num_of_inactivity_timer;
+    l4c_apn_info_struct timer_info[TCM_APN_TABLE_SIZE];
+} l4ctcm_query_eapnsync_struct;
+
+//mtk04121
+typedef struct 
+{
+    kal_uint8   context_id;
+    kal_uint8   qci;
+    kal_bool    max_bitrate_present;
+    kal_uint8   max_bitrate_up_lnk;
+    kal_uint8   max_bitrate_down_lnk;
+    kal_uint8   ext_max_bitrate_up_lnk;
+    kal_uint8   ext_max_bitrate_down_lnk;
+    kal_uint8   ext2_max_bitrate_up_lnk;
+    kal_uint8   ext2_max_bitrate_down_lnk;
+    kal_bool    guarntd_bit_rate_present;
+    kal_uint8   guarntd_bit_rate_up_lnk;
+    kal_uint8   guarntd_bit_rate_down_lnk;
+    kal_uint8   ext_guarntd_bit_rate_up_lnk;
+    kal_uint8   ext_guarntd_bit_rate_down_lnk;
+    kal_uint8   ext2_guarntd_bit_rate_up_lnk;
+    kal_uint8   ext2_guarntd_bit_rate_down_lnk;
+    kal_uint8   apn_ambr_present;
+    kal_uint8   apn_ambr_up_lnk;
+    kal_uint8   apn_ambr_down_lnk;
+    kal_uint8   ext_apn_ambr_up_lnk;
+    kal_uint8   ext_apn_ambr_down_lnk;
+    kal_uint8   ext2_apn_ambr_up_lnk;
+    kal_uint8   ext2_apn_ambr_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;
+
+    kal_bool    is_use_ext_apn_ambr_for_dl;
+    kal_bool    is_use_ext_apn_ambr_for_ul;
+    kal_uint64  ext_apn_ambr_for_dl;
+    kal_uint64  ext_apn_ambr_for_ul;
+} l4c_eps_qos_rdp_struct;
+
+
+typedef struct 
+{
+    kal_uint8        context_id;
+    kal_uint8        num_of_vgqos; 
+    tcm_vgqos_struct vgqos[VGSM_MAX_QFI_NUM];
+} l4c_vgqos_rdp_struct; 
+
+//mtk04121
+typedef struct
+{
+    kal_uint8           length;
+    l4c_eps_qos_struct  qos_info[MAX_L4_PS_CID_NUM];
+} l4c_eps_qos_list_struct;
+
+typedef struct
+{
+    kal_uint8        length;
+    l4c_vgqos_struct qos_info[MAX_L4_PS_CID_NUM]; 
+} l4c_vgqos_list_struct;
+
+typedef struct
+{
+    kal_uint8 context_id;
+
+    kal_uint8 pri_dns[IPV4_ADDR_LEN];
+    kal_uint8 sec_dns[IPV4_ADDR_LEN];
+
+    l4c_tcm_activate_pdp_request_ipv4_dns_enum act_pdp_with_pco_req_v4_dns ;    
+    l4c_tcm_activate_pdp_request_ipv6_dns_enum act_pdp_with_pco_req_v6_dns; // only valid for IPv6 and IPv4v6, possible value: 
+                                          // TCM_ACTIVATE_PDP_NEED_REQUEST_IPV6_DNS & 
+                                          // TCM_ACTIVATE_PDP_NOT_REQUEST_IPV6_DNS
+    kal_bool    ipv6_dns1_present;
+    kal_uint8   ipv6_dns1[IPV6_ADDR_LEN];
+    kal_bool    ipv6_dns2_present;
+    kal_uint8   ipv6_dns2[IPV6_ADDR_LEN];
+    l4c_tcm_activate_pdp_request_ipv4_mtu_enum act_pdp_with_pco_req_v4_mtu;
+    kal_uint16 ipv4_mtu_size;
+    kal_uint8   initial_attach;
+    kal_uint32 op_pco_id;
+    plmn_id_rat_struct op_pco_plmn_id;
+    kal_uint8 op_pco_action;
+    kal_bool req_msisdn;
+    kal_bool pcscf_reselection_support;
+    kal_bool ps_data_off_support_present;
+    kal_uint8 ps_data_off_support_value;
+
+    kal_uint32 user_defined_op_pco_id;
+    plmn_id_rat_struct user_defined_op_pco_plmn_id;
+
+    kal_bool epdg_v6_addr_req; 
+    plmn_id_rat_struct epdg_v6_addr_req_cointainer; 
+
+    kal_bool epdg_v4_addr_req; 
+    plmn_id_rat_struct epdg_v4_addr_req_cointainer; 
+    
+    kal_bool vzw_5guw_req; 
+    plmn_id_rat_struct vzw_5guw_req_cointainer; 
+} l4c_config_option_struct;
+
+typedef struct
+{
+    kal_uint8 context_id;
+    kal_uint8 user_name[MAX_GPRS_USER_NAME_LEN];
+    kal_uint8 password[MAX_GPRS_PASSWORD_LEN];
+    kal_uint8 auth_type;
+} l4c_cgauth_info_struct;
+
+typedef struct
+{
+   kal_uint8          length;
+   l4c_config_option_struct     config_option_info[MAX_L4_PS_PDN_NUM];
+} l4c_config_option_list_struct;
+
+typedef struct
+{
+   kal_uint8          length;
+   l4c_cgauth_info_struct    cgauth_info[MAX_L4_PS_PDN_NUM];
+} l4c_cgauth_info_list_struct;
+
+
+kal_bool l4ctcm_is_emergency_pdn_by_context_id(kal_uint8 context_id);
+
+/* +CGDCONT */
+#ifdef __TC10__
+kal_bool l4ctcm_is_cid_activated(kal_uint8 cid);
+#endif /*__TC10__*/
+
+kal_bool l4ctcm_get_pri_pdp_info(l4c_prim_pdp_info_list_struct *p_info);
+void l4ctcm_get_pri_pdp_info_by_context_id(kal_uint8 context_id, l4c_prim_pdp_info_struct *p_info);
+void l4ctcm_get_old_psi_present_by_context_id(kal_uint8 context_id, kal_bool *p_val);
+
+/* +CGDSCONT */
+kal_bool l4ctcm_get_sec_pdp_info(l4c_sec_pdp_info_list_struct *p_info);
+
+/* +CGSCONTRDP */
+kal_bool l4ctcm_get_sec_pdp_rdp_info(kal_uint8 cid, l4c_sec_pdp_rdp_info_struct *p_info);
+
+//mtk04121
+/* +CGTFT */
+kal_bool l4ctcm_set_tft_info(tft_info_struct *p_info);
+kal_bool l4ctcm_get_tft_info(tft_info_list_struct *p_info);
+kal_bool l4ctcm_undef_cgtft(kal_uint8 cid) ;
+
+/* +EGDELPF */
+kal_bool l4ctcm_set_egdelpf(kal_uint8 cid, kal_uint8 pf_id) ;
+kal_bool l4ctcm_get_egdelpf(kal_uint8 cid, kal_uint8 *p_pf_total_num, kal_uint8 *p_pf_list);
+kal_bool l4ctcm_undef_egdelpf(kal_uint8 cid) ;
+
+/* +EGLNKPF */
+kal_bool l4ctcm_set_eglnkpf(kal_uint8 cid, kal_uint8 lnkpf_id) ;
+kal_bool l4ctcm_get_eglnkpf(kal_uint8 cid, kal_uint8 *p_pf_total_num, kal_uint8 *p_pf_list);
+kal_bool l4ctcm_undef_eglnkpf(kal_uint8 cid) ;
+
+//mtk04121
+/* +CGTFTRDP */
+kal_bool l4ctcm_get_tft_rdp_info(tft_info_list_struct *p_info);
+
+/* +CGQREQ / +CGQMIN */
+kal_bool l4ctcm_get_qos_info(atci_qos_enum type, l4c_qos_list_struct *p_info);
+
+/* +CGQREQ / +CGQMIN */
+kal_bool l4ctcm_get_eqos_info(atci_qos_enum type, l4c_eqos_list_struct *p_info);
+
+kal_bool l4ctcm_encode_sdu_size(kal_uint16 size, kal_uint16 *p_val);
+
+kal_bool l4ctcm_encode_transfer_delay(kal_uint16 delay, kal_uint16 *p_val);
+
+//mtk04121
+/* +CGEQOS */
+kal_bool l4ctcm_get_eps_qos_info(l4c_eps_qos_list_struct *p_info);
+kal_bool l4ctcm_get_vgqos_info(l4c_vgqos_list_struct *p_info); 
+
+//mtk04121
+/* +CGEQOSRDP */
+kal_bool l4ctcm_get_eps_qos_rdp_info(kal_uint8 cid, l4c_eps_qos_rdp_struct *p_info);
+kal_bool l4ctcm_get_vgqos_rdp_info(kal_uint8 cid, l4c_vgqos_rdp_struct *p_info);
+kal_bool l4ctcm_get_session_ambr(kal_uint8 cid, pdus_session_ambr_struct *p_session_ambr);
+
+kal_uint8 l4ctcm_get_pdp_type(kal_uint8 context_id);
+kal_bool l4ctcm_get_bearer_id_by_cid(kal_uint8 context_id, tcm_fic_type_enum fic_type, kal_uint8 *bearer_id);
+
+/* +EGPPPAUTH */
+kal_bool l4ctcm_get_config_option_info(l4c_config_option_list_struct *p_info);
+kal_bool l4ctcm_get_cgauth_info(l4c_cgauth_info_list_struct *p_info);
+
+/* EAPNSYNC */
+void l4ctcm_get_eapnsync_info(l4ctcm_query_eapnsync_struct *p_eapn_info);
+
+kal_bool l4ctcm_get_context_state(kal_uint8 *p_total_context, kal_uint8 *p_state_list);
+kal_bool l4ctcm_get_context_state_of_ap_view(kal_uint8 *p_total_context, kal_uint8 *p_state_list);
+
+#ifdef __HSDPA_SUPPORT__
+void l4ctcm_get_bearer_capability(kal_uint8 *p_valid_contexts, kal_uint8 *p_context_id, data_speed_activate_enum *p_bearer_capability); //hspa_mmi_h2
+#endif //__HSDPA_SUPPORT__
+
+// kal_bool l4ctcm_pdp_capability(kal_uint8 **rsp_str);
+
+#ifdef __TCPIP__ /* ABM */
+kal_bool l4ctcm_get_ext_gprs_statistics_info(kal_uint8 cid, l4c_ext_gprs_statistics_info_struct *p_info);
+#endif
+
+#ifdef __TCM_EXT_CALL_HISTORY_SUPPORT__
+kal_bool l4ctcm_query_ext_gprs_history(kal_uint8 last_cid, l4c_ext_gprs_call_history_info_struct * p_info);
+kal_bool l4ctcm_reset_ext_gprs_history(kal_bool reset_all, kal_bool reset_certain_cid_last_history, kal_uint8 context_id, kal_bool reset_total_history);
+kal_bool l4ctcm_reset_ext_gprs_history_command(kal_uint32 reset_command);
+#endif  // MAUI_01643919, mtk02285, 20090316
+
+kal_bool l4ctcm_set_sib_pdp_addr_type(kal_uint8 pdp_addr_type, kal_uint8 cid);
+kal_uint8 l4ctcm_get_nw_applied_pdp_addr_type(kal_uint8 cid);
+kal_bool l4ctcm_get_nw_applied_apn(kal_uint8 cid, apn_struct *apn);
+
+void l4ctcm_set_voice_centric(kal_bool is_voice_centric);
+
+kal_bool check_pdp_context_exist_func(void);
+
+kal_bool check_remote_pdp_context_exist_func(void);
+
+kal_bool l4ctcm_pid_to_cid(kal_uint8 profile_id, kal_uint8 *context_id);
+
+kal_bool l4ctcm_cmux_port_to_cid (kal_uint8 profile_id, kal_uint8 *context_id);
+
+extern kal_bool tcml4c_is_pseudo_imsi(void);
+
+/* +EGGRNTRSPT */
+extern kal_bool l4ctcm_set_sib_processing_time_limit_in_secs(kal_uint8 cid, kal_uint32 processing_time_limit_in_secs);
+extern kal_bool l4ctcm_set_sib_req_processing_info_unlimited(kal_uint8 cid);
+extern kal_bool l4ctcm_set_sib_req_processing_info_default(kal_uint8 cid);
+extern kal_uint32 l4ctcm_get_sib_processing_time_limit_in_secs(kal_uint8 cid);
+extern tcm_im_cn_signalling_enum l4ctcm_get_user_defined_im_cn_signalling_flag(kal_uint8 context_id);
+
+extern kal_bool l4ctcm_get_nw_applied_ladn_info(l4ctcm_ladn_info_list_struct *ladn_info_list);
+
+kal_bool l4aps_tcm_get_5g_qos_flow_action_table(kal_uint8 cid, qos_flow_action_table_struct *qf_action_table_result, kal_uint8 *qfi_with_default_rule);
+kal_bool l4ctcm_get_vzw_5GUW_Allowed(kal_uint8 *vzw_5GUW_Allowed);
+#ifdef __TCM_UT__
+void l4ctcm_get_eps_qos_info_tester(kal_char *p_case_num);
+void l4ctcm_get_eps_qos_rdp_info_tester(kal_char *p_case_num);
+
+void l4ctcm_get_vgqos_info_tester(kal_char *p_case_num);
+void l4ctcm_get_vgqos_rdp_info_tester(kal_char *p_case_num);
+void l4ctcm_get_session_ambr_tester(kal_char *p_case_num);
+#endif // __TCM_UT__ 
+
+#if (defined(__FAST_DORMANCY__) || defined(__NO_PSDATA_SEND_SCRI__))
+kal_bool check_if_has_activation_pending_pdp(void);
+kal_bool check_if_has_deactivation_pending_pdp(void);
+kal_bool check_if_has_modification_pending_pdp(void);
+kal_bool check_if_has_mt_activation_pending_pdp(void);
+#endif /* (defined(__FAST_DORMANCY__) || defined(__NO_PSDATA_SEND_SCRI__)) */
+
+#ifdef __ACL_SUPPORT__
+kal_uint8 l4ctcm_get_acl_type(void);
+#endif
+
+#endif /* ~_L4C2TCM_FUNC_H */
diff --git a/mcu/protocol/layer4/l4/include/l4c_context.h b/mcu/protocol/layer4/l4/include/l4c_context.h
new file mode 100644
index 0000000..71e96de
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/l4c_context.h
@@ -0,0 +1,1809 @@
+/*****************************************************************************
+*  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_context.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_CONTEXT_H
+#define _L4C_CONTEXT_H
+
+#include "l4c_common_enum.h"
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "lcd_lqueue.h"
+
+#include "ps_public_enum.h"
+#include "em_l4_public_struct.h"
+#include "kal_public_api.h"
+#include "rmmi_common_enum.h"
+#include "l3_inc_enums.h"
+#include "rmmi_context.h"
+#include "c2k_irat_msg_struct.h"
+#include "ps_public_struct.h"
+#include "tcm_context_enum.h"
+#include "ims_common_def.h"
+#include "l4_nvram_def.h"
+
+#include "ps_public_enum_public.h"
+
+#if !defined(__MTK_TARGET__) && defined(__RMMI_UT__)
+#include "lcd_lqueue.h"
+#endif
+
+#if defined(__SIM_ME_LOCK__)
+#include "smu_common_enums.h"
+#endif
+
+#include "upcm.h"
+#include "iwlan_l4c_struct.h"
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#include "l5_l4c_struct.h"
+#endif
+
+#ifdef __TC10__
+#define __PHB_SORT_ENABLE__ 0
+#else
+#define __PHB_SORT_ENABLE__
+#endif
+
+#ifdef DATA_DOWNLOAD
+//#include "fat_fs.h"
+#define L4C_ENCODE_BYTE 2
+#define L4C_MAX_DATA_DL_NAME_EXTENSION_WIDTH		(5*L4C_ENCODE_BYTE)													//NULL ermiante
+#define L4C_MAX_DATA_DL_NAME_WIDTH				((13*L4C_ENCODE_BYTE)	+	L4C_MAX_DATA_DL_NAME_EXTENSION_WIDTH + L4C_ENCODE_BYTE)
+
+typedef struct
+{
+	kal_uint8 filename[L4C_MAX_DATA_DL_NAME_WIDTH];
+	kal_uint16 file_id;
+}l4c_download_file_info;
+
+#endif/* DATA_DOWNLOAD */
+
+//#include "mcd_l3_inc_struct.h"
+//#include "l4c_hz_context.h"
+
+//#include "med_struct.h"
+
+/* For GPRS_FLC_UT mtk02508 */
+#if !defined(__MTK_TARGET__) && defined(__RMMI_UT__) && defined(__MOD_TCM__)
+#include "lcd_lqueue.h"
+#endif
+
+#if defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__)
+#include "l4c_ratdm_struct.h"
+#include "mmi_l3_enums.h"
+#endif
+
+#include "l3_inc_enums.h" //for rrc_state
+
+#define MAX_CONCAT_SMS_NUM    4
+
+//#define MAX_CEER_REPORT_LEN    80
+
+#define L4C_STATES      3
+
+//#define L4C_PTR      LAYER4_PTR(l4c_ptr)
+#define L4C_PTR        l4c_ptr_g
+
+//mtk01616_100419: to share SIM1/SIM2 L4C context in Gemini
+#define L4C_COMM_PTR   l4c_comm_ptr_g
+
+#define L4C_ROOT_PTR   l4c_root_ptr_g
+
+#define L4C_MIN_CONTEXT_ID              L4_PS_MIN_CID           //TCM_MIN_CONTEXT_ID
+#define L4C_MAX_CONTEXT_ID              L4_PS_MAX_CID           //TCM_MAX_CONTEXT_ID
+#define L4C_TOT_CONTEXT                 MAX_L4_PS_CID_NUM       //TCM_TOT_CONTEXT
+#define L4C_INVALID_CONTEXT_ID          L4_PS_NULL_CID          //0xEE //238
+#define L4C_DONT_CARE_CID               (L4_PS_MAX_CID + 1)     //MAX_L4_PS_CID_NUM //TCM_TOT_CONTEXT
+#define L4C_SRC_CID_TABLE_MAX_CID_SIZE  (MAX_L4_PS_CID_NUM + 1) //(TCM_TOT_CONTEXT+1) // NORMAL CID + Dont care CID in table need to check
+#define L4C_DONT_CARE 0xFF // cause?
+#define L4C_PS_MAX_BLOCK_APN    16
+
+#define L4C_CONTEXT_ID_IS_INVALID(cid)   (! L4_PS_IS_VALID_CID(cid)) //(cid < L4C_MIN_CONTEXT_ID || cid > L4C_MAX_CONTEXT_ID)
+#define L4C_CGACT_CONVERT_ACTION(opcode) ((opcode == TCM_PDP_ACTIVATE) ? CGACT_ACT_EXE : CGACT_DEACT_EXE);
+#define L4C_PRCOCESSING_TIME_LIMIT_IS_VALID(processing_time_limit_in_secs)	((processing_time_limit_in_secs >= TCM_MIN_PROCESSING_TIME_LIMIT) && (processing_time_limit_in_secs <= TCM_MAX_PROCESSING_TIME_LIMIT))
+
+#define L4C_ERFIDX_NUM_OF_FEATURE 4
+#define L4C_XL1_LCM_HOPPING_NUM_OF_RAT 6
+
+#define L4C_SINGLE_PS_DEST_MOD 0x01
+#define L4C_MULTI_PS_DEST_MOD  0x02
+
+#ifdef __L4C_GPRS_UT__
+#define L4C_PS_CALL_EXTERNAL_API(FUNC) FUNC##_ut
+#else
+#define L4C_PS_CALL_EXTERNAL_API(FUNC) FUNC
+#endif
+
+#ifdef __L4C_GPRS_UT__
+#define L4C_PS_ASSERT(e) ((e)?(void)0:l4c_ps_assert())
+#else
+#define L4C_PS_ASSERT(e) DEBUG_ASSERT(e)
+#endif
+
+
+/*#ifdef __HOMEZONE_SUPPORT__
+#define HZ_PTR     l4c_ptr_g->hz_ptr
+#endif*/
+
+#define L4C_PACK_ALLOC(ALLOC_FUNC, STRUCTID, STRUCT, MSG_PTR) \
+   mcd_pseudo_alloc(STRUCTID, l4_pun_src_buff ,sizeof(l4_pun_src_buff)); \
+   MSG_PTR = (STRUCT*)l4_pun_src_buff
+
+#define L4C_UNPACK_ALLOC(ALLOC_FUNC, STRUCTID, STRUCT, MSG_PTR)
+
+#define L4C_PACK_DEALLOC(DEALLOC_FUNC, MSG_PTR)
+
+#define L4C_UNPACK_DEALLOC(DEALLOC_FUNC, MSG_PTR)
+
+#define REMAP_UNPACK_DATA(MSG_LEN, MSG_PTR) \
+   kal_mem_cpy (l4_pun_dest_buff, MSG_PTR, MSG_LEN)
+
+#define COPY_UNPACK_DATA(MSG_LEN, MSG_PTR) \
+   ASSERT(MSG_LEN <2048); \
+   MSG_PTR = get_ctrl_buffer(MSG_LEN); \
+   kal_mem_cpy (MSG_PTR, l4_pun_dest_buff, MSG_LEN)
+
+#define FREE_COPY_UNPACK_DATA(MSG_PTR) \
+   free_ctrl_buffer (MSG_PTR)
+
+#define REMAP_PACK_DATA(MSG_LEN, MSG_PTR) \
+   kal_mem_cpy (l4_pun_src_buff, MSG_PTR, MSG_LEN)
+
+#define COPY_PACK_DATA(MSG_LEN, MSG_PTR) \
+   MSG_PTR = get_ctrl_buffer(MSG_LEN); \
+   ASSERT(MSG_LEN <2048); \
+   kal_mem_cpy (MSG_PTR, l4_pun_src_buff, MSG_LEN)
+
+#define FREE_COPY_PACK_DATA(MSG_PTR) \
+   free_ctrl_buffer (MSG_PTR)
+
+#define SUBFIELD(PARENT, CHILD) PARENT->CHILD
+
+#if 0 // L4C context reorg
+/* under construction !*/
+/* under construction !*/
+#endif
+
+#define L4C_GET_IPV4V6_INIT_CID(cid)    L4C_PTR->v4v6_act_ptr_init_cid[cid]
+#define L4C_MAX_NR_SRV_BAND	2 // same as RAC_NAS_SV_NR_SERV_CELL_NUM in rac_nas_sv_struct.h
+
+typedef void (*L4C_MSG_FUNCTION) ( local_para_struct *,
+                                   peer_buff_struct * );
+
+typedef void (*L4C_CMD_FUNCTION) ();
+
+typedef kal_bool (*l4c_nw_register_nitz_cb) (l4c_nw_time_zone_time_struct *nitz_ptr);
+
+typedef struct l4c_minilog_struct
+{
+    kal_bool mmrr_ready_flag;
+    kal_bool auto_attach;
+    kal_bool sub_modules_ready;
+    kal_uint8  uart_port_value;
+    kal_uint8 csm_state;
+    kal_uint8 cfun_state;
+    kal_uint8 ps_conf_test_mode;
+    smu_sim_status_enum sim_status;
+#if defined(__GEMINI__)
+    kal_uint8  dual_sim_mode_setting;
+#endif
+    kal_uint8 enhanced_ecc_id;
+#ifdef __GEMINI__
+    kal_uint8 cur_3g_capability;
+#endif
+
+#ifdef __MOD_TCM__
+#if defined(__PS_DIALUP__)
+    kal_uint16 ps_dialup_port[L4C_TOT_CONTEXT];
+#endif
+#endif /* __MOD_TCM__ */
+
+    //csmcc_mscap_struct mscap;
+    UART_PORT ps_uart_port;
+    kal_uint16 sim_error_cause;
+    kal_uint32 ps_conf_test_profile;
+    kal_uint32 flags;
+}l4c_minilog_struct;
+
+
+typedef struct
+{
+   kal_uint16   length;
+   void        *data;
+} l4c_parameter_struct;
+
+typedef struct
+{
+   kal_bool    is_valid;
+   kal_bool    need_retry;
+   kal_uint16  length;
+   void        *local_para;
+   void        *peer_buff;
+} l4c_concat_sms_buff_struct;
+
+typedef struct
+{
+   kal_uint8 type;
+   kal_uint8 length;
+   kal_uint8 number[MAX_CC_ADDR_LEN];
+} l4_number_struct;
+
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct
+{
+	kal_uint8	is_gsm_conn_exist;
+	kal_uint8	gsm_cipher_cond;
+	kal_uint8	gprs_cipher_cond;
+} cipher_ind_msg_struct;
+
+ #ifdef __NBR_CELL_INFO__
+ typedef struct
+ {
+    kal_uint32 src_id;
+    kal_bool already_cnf;
+ }cell_info_reg_table_struct;   /* Lexel: for Cell info */
+ #endif
+
+typedef struct l4c_nw_sysconfig_struct
+{
+   kal_uint8 rat_mode;
+   kal_uint8 prefer_rat;
+   kal_bool support_roaming;
+   kal_uint8 mobile_class;
+} l4c_nw_sysconfig_struct;
+
+typedef struct l4c_nw_syssel_struct
+{
+   kal_uint8 rat_mode;
+   kal_uint8 prefer_rat;
+   kal_uint8 mobile_class;
+} l4c_nw_syssel_struct;
+
+typedef enum
+{
+    L4C_IPV4V6_STATE_NONE = 0,
+    L4C_IPV4V6_STATE_ACCEPT,
+    L4C_IPV4V6_STATE_REJECT
+} l4c_ipv4v6_state_enum;
+
+typedef enum
+{
+    L4C_IPV4V6_PDP_ACTIVATOR_IS_L4C,
+    L4C_IPV4V6_PDP_ACTIVATOR_IS_PPP
+} l4c_ipv4v6_activator_enum;
+
+#define L4C_IPV4V6_ACT_TABLE_SIZE (3) //V4V6, V4, V6
+
+typedef struct
+{
+    kal_uint8 cid;
+    kal_uint8 pdp_type;
+    kal_uint8 state;
+    kal_uint8 __aligned;
+} l4c_gprs_ipv4v6_act_table_entry;
+
+typedef struct
+{
+    kal_uint8 src_id;
+    kal_uint8 init_cid;
+    kal_uint16 cause;
+    l4c_gprs_ipv4v6_act_table_entry table[L4C_IPV4V6_ACT_TABLE_SIZE];
+    kal_uint32 max_activation_count;
+} l4c_gprs_ipv4v6_act_struct;
+
+typedef struct {
+    kal_bool geran_tdma;
+    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;
+    mode_switch_cause_enum  request_cause;  //for rac command conflict checking
+} l4c_radio_access_setting_struct;
+
+typedef struct{
+    /*  This struct is used to queue informations
+     * 1. in LTE to C2K inter-RAT stage 1, record info to used after receiving ei3gppirat=1
+     * 2. in C2K to LTE stage 1, record info to used after attach_result_ind
+     */
+
+    /* used in L2C stage 1 */
+    irat_type_enum irat_type;
+
+    /* used in L2C/C2L stage 1 */
+    void *as_info_ptr;
+
+}l4c_c2k_irat_temp_info_struct;
+
+typedef struct{
+    gmss_rat_enum now_searching_rat;
+
+    irat_ps_type_enum attached_rat;
+
+    l4c_c2k_lwcg_pdn_context_transfer_state_enum pdn_transfer_state;
+
+    kal_bool enable_pdn_context_transfer_in_lwcg;
+
+    kal_bool already_fetch_ia; /* EHPRD to LTE inter-RAT used to check already fetch IA or not */
+
+    kal_bool already_transfer_pdn_to_c2k; /* LTE to EHPRD inter-RAT used to check already transfer PDN or not */
+
+
+}l4c_c2k_lwcg_irat_context_struct;
+
+typedef struct {
+	kal_uint8 mode;
+	kal_int32 upper_threshold;
+	kal_int32 lower_threshold;
+	kal_uint8 tup;
+	kal_uint8 tlo;
+	kal_bool tup_timer_running;
+	kal_bool tlo_timer_running;
+} l4c_power_level_threshold_struct;
+
+typedef struct{
+    /* Used in C2K -> LTE and LTE -> C2K inter-RAT, to indicate transection ID */
+    kal_uint8 c2k_tid;
+
+    /* Used to record C2K to LTE pdn establishing status(bitmap) */
+    kal_uint16 c2k_irat_pdn_establishing_status;
+
+    /* Used to record inter-RAT state */
+    l4c_c2k_irat_state_enum c2k_irat_state;
+
+    /* Used to we are waiting for AT+EI3GPPIRAT form AP or not */
+    kal_bool waiting_ei3gppirat;
+
+    /* Used to record the source rat in C2K to LTE inter-RAT */
+    irat_ps_type_enum c2k_to_lte_src_rat;
+
+    /* Used to record some temp info,
+     * 1. in LTE to C2K inter-RAT stage 1, record info to used after receiving ei3gppirat=1
+     * 2. in C2K to LTE stage 1, record info to used after attach_result_ind
+     */
+    l4c_c2k_irat_temp_info_struct irat_temp_info;
+
+    /* Used to record the deact fail PDN, used to indicate C2K_MD or AP this PDN need to DEACT again after I-RAT*/
+    kal_bool deact_retry[L4C_TOT_CONTEXT];
+
+}l4c_c2k_irat_context_struct;
+
+typedef struct {
+	kal_uint8 erfidx_srcid;
+	kal_bool is_rfidx_success;
+	kal_uint8 no_rfidx_response_needed;
+	kal_uint16 rfidx_feature;
+	kal_uint16 rfidx_scenario;
+} l4c_erfidx_context_struct;
+
+typedef struct {
+    lcm_hopping_priority_enum hopping_priority;
+    kal_uint32 mipiBitmap;
+} l4c_lcm_hopping_context_struct;
+
+typedef struct {
+	kal_uint8 mode;
+	kal_uint8 num_of_threshold;
+	kal_int32 threshold[IWLAN_L4C_MAX_THRES];
+	kal_int32 upper_threshold;
+	kal_int32 lower_threshold;
+	kal_uint16 timer;
+	l4c_power_level_threshold_range_enum threshold_timer_range;
+} l4c_pwl_thrhd_struct;
+
+typedef enum
+{
+    SIM_CARD_IN_ARREARS = 1,
+    SIM_CARD_KEEP_TO_OBSERVE,
+    SIM_CARD_NOT_IN_ARREARS,
+    SIM_CARD_STATUS_NONE
+} l4c_sim_card_arrears_enum;
+
+typedef enum
+{
+    SIM_ARREARS_PID_LAU_REJ = 0,
+    SIM_ARREARS_PID_23G_ATTACH_REJ,
+    SIM_ARREARS_PID_4G_ATTACH_REJ,
+    SIM_ARREARS_PID_ATTACH_BOSS_APN,
+    SIM_ARREARS_PID_MAX,
+}l4c_sim_arrears_pid_enum;
+
+/* [IMPORTANT] DO INITIALIZE data field or set it to NULL once you allocate the pending action item
+    data would be freed after the action could be successfully executed in dequeue utility
+*/
+typedef struct
+{
+    kal_uint8               sim_slot_id;
+    module_type             current_mod;
+    kal_bool                phb_ready_flag;
+    kal_bool                is_fdn_change;
+
+    /* init by l4cphb_start_cnf_hdlr */
+    kal_uint8 sim_phb_len;      //max length of name in SIM EFadn
+    kal_uint8 sim_fdn_len;      //max length of name in EFfdn
+    kal_uint8 msisdn_alpha_length; //max length of EFmsisdn
+    kal_uint8 sim_email_len;       // max length of email in EF_EMAIL
+    kal_uint8 sdn_alpha_length;    // max length of email in EF_SDN
+
+    rmmi_phb_type_enum phb_storage_type;
+
+    kal_uint8 phb_anr_occurrence;
+    kal_uint8 phb_email_occurrence;
+    kal_uint8 phb_sne_occurrence;
+    kal_uint8 phb_anr_length;
+    kal_uint8 phb_email_length;
+    kal_uint8 phb_sne_length;
+    kal_uint8 phb_grp_length;
+
+    kal_uint8 approve_src_id_mapping[L4C_PHB_APPROVE_SRC_TOTAL];
+} l4c_phb_context_struct;
+
+typedef struct
+{
+    kal_uint8               sim_slot_id;
+    l4c_phb_context_struct  *this_sim;
+} l4c_phb_ps_context_struct;
+
+typedef struct
+{
+    kal_uint8               sim_slot_id;
+    module_type             current_mod;
+    kal_bool                sms_ready_flag;
+
+} l4c_sms_context_struct;
+
+typedef struct
+{
+    kal_uint8               sim_slot_id;
+    l4c_sms_context_struct  *this_sim;
+} l4c_sms_ps_context_struct;
+
+
+typedef struct
+{
+    kal_uint8               sim_slot_id;
+    module_type             current_mod;
+} l4c_csmcc_context_struct;
+
+
+typedef struct
+{
+    kal_uint8                 sim_slot_id;
+    l4c_csmcc_context_struct  *this_sim;
+} l4c_csmcc_ps_context_struct;
+
+
+typedef struct
+{
+    l4c_pending_action_enum pending_action;
+    void *data;        // Pending action item that would be used by the specified action, if  not used, please set it to NULL
+} l4c_queue_pending_action_item_struct;
+
+typedef struct
+{
+    kal_bool follow_on_request;
+} l4c_queue_ps_attach_item_struct;
+
+typedef struct
+{
+    l4c_source_id_enum src_id;
+    mm_user_search_cause_enum search_cause;
+} l4c_queue_attach_item_struct;
+
+typedef struct
+{
+    l4c_source_id_enum src_id;
+    domain_id_enum service;
+    l4c_rac_detach_cause_enum detach_cause;
+    kal_bool is_poweroff;
+} l4c_queue_detach_item_struct;
+
+
+/* Used by L4C Pending Queue, to define its enqueue and dequeue handler */
+typedef kal_bool (*L4C_ENQUEUE_HDLR_FUNC)(l4c_queue_pending_action_item_struct *pending_action_item);
+typedef kal_bool (*L4C_DEQUEUE_HDLR_FUNC)(void *data);
+
+typedef struct {
+    l4c_pending_action_enum pending_action;
+    L4C_ENQUEUE_HDLR_FUNC   enqeue_func_ptr;
+    L4C_DEQUEUE_HDLR_FUNC   deqeue_func_ptr;
+} l4c_queue_pending_action_hdlr_item_struct;
+
+typedef struct {
+    kal_uint8 n3en_indicator;   /* Non-3GPP NW emergency number indicator */
+} l4c_non_3gpp_nw_policies_struct;   /* Non-3GPP NW provided policies IE */
+
+typedef struct {
+    kal_uint8 gsm_antenna_state;
+    kal_uint8 umts_antenna_state;
+    kal_uint8 lte_antenna_state1;
+    kal_uint8 lte_antenna_state2;
+    kal_uint8 lte_antenna_state3;
+    kal_uint8 c2k_1x_antenna_state;
+    kal_uint8 c2k_evdo_antenna_state;
+} l4c_antenna_state_struct;
+
+typedef struct
+{
+   kal_bool            in_use;
+   kal_uint8            ref_num;
+   msg_type             rsp_msg_id;
+} uac_transaction_struct;
+
+typedef struct
+{
+    /* fined flag check for each sub-module state in bitmap, update after INIT CNF with success,
+    ex: init flow fail due to dynamic SIM switch (the flag also need to be switched because the context of sub-module switch),
+    check each moudle state to re-init */
+    l4c_sub_module_enum    is_init_sub_mods_done;
+    kal_bool               init_sub_mods;  // coarse flag check for all sub-moudles state, update immediately and do not consider init fail
+} l4c_context_with_sim_slot_struct;
+
+typedef struct{
+    /*  This struct is used to store QCI information during PDP activation and modification.
+        So that these values can be taken when Deactivate_cnf is received.
+     */
+    kal_uint8   qci;
+
+} l4c_qci_info_struct;
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef struct{
+    kal_bool sim_black_list_lock_state;
+    kal_bool nw_black_list_lock_state;
+    nw_black_list_state_enum previous_state;
+    kal_uint8 cur_transaction_id;
+    kal_uint8 num_of_black_list;
+    kal_bool is_nw_black_list_setting;
+    nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+    nw_black_list_init_state_enum black_list_init_state;
+    kal_uint8 setting_num_of_black_list;
+    nw_black_list_provider_struct *setting_black_list;
+}l4c_nw_black_list_info_struct;
+#endif
+
+typedef enum
+{
+    NO_TUW_RUNNING = 0,
+    TUW1_RUNNING_CONN_1,
+    TUW1_RUNNING_IDLE,
+    TUW1_RUNNING_CONN_2,
+    TUW2_RUNNING,
+    TUW3_RUNNING,
+}tuw_state_enum;
+
+typedef struct
+{
+    kal_bool is_dspl_5guw;
+    kal_bool pco_5guw_allowed;
+    kal_bool is_n77_configured;
+    kal_bool is_fr2_configured;
+    tuw_state_enum tuw_state;
+} l4c_nw_5guw_context_struct;
+
+typedef struct
+{
+/*************************************************************************/
+/* Below context are placed in the front of L4C context                  */
+/* to increase immediate offset access , to reduce ROM size              */
+/* Please KEEP the position for the following frequent used variables    */
+/*************************************************************************/
+   kal_bool    route_thru_lmmi;
+   kal_uint8 route_thru_lmmi_user;
+   kal_bool retry_cc;
+   kal_bool retry_ss;
+   kal_uint8   retry_count;
+   kal_uint8 retry_src_id; //src_id that you want to retry
+   kal_uint8 cfun_state;
+   kal_uint8 c2k_cfun_state;
+
+   kal_bool ecc_mt_collision;
+
+   l4c_source_id_enum   smu_user;
+   l4c_source_id_enum   ss_user;
+   l4c_source_id_enum   eq_user;
+   l4c_source_id_enum   rac_user;
+   l4c_source_id_enum   eval_user;
+   l4c_source_id_enum   eval_essac_user;
+   l4c_source_id_enum   sat_user;
+#ifdef __MOD_TCM__
+   l4c_source_id_enum   tcm_user;
+#endif
+
+   kal_uint16   smu_current_action; /*l4c_action_enum*/
+   kal_uint16  ss_current_action;
+   kal_uint16  eq_current_action;
+   kal_uint16   rac_current_action;
+
+   kal_uint16   sat_current_action;
+#ifdef __MOD_TCM__
+
+   // L4C cid src_id mapping table
+   // ------------------------------------
+   // | cid\srcid | 0 | 1 |  2  |  3  | ..
+   // ------------------------------------
+   // |     0     |   |   |     | ACT | ..
+   // ------------------------------------
+   // |     1     |   |   | ACT |     | ..
+   // ------------------------------------
+
+   l4c_action_enum l4c_cid_srcid_action_table[L4C_SRC_CID_TABLE_MAX_CID_SIZE][MAX_SOURCE_NUM];
+   l4c_action_enum l4c_pdp_state[L4C_TOT_CONTEXT];
+   kal_uint32 l4c_pdp_apn_type[L4C_TOT_CONTEXT]; // ddm_apn_type_enum
+   kal_uint8 ongoing_ims_pdn_activation_num;
+#endif
+
+   event_scheduler            *event_scheduler_ptr;
+
+    /* ============================== action ============================== */
+   kal_uint16  cc_current_action[MAX_SOURCE_NUM];  /*l4c_action_enum*/
+   l4c_state_enum   cc_state[MAX_SOURCE_NUM];           /* l4c_state_enum */
+   //l4c_sub_state_enum   cc_sub_state[MAX_SOURCE_NUM];       /* l4c_sub_state_enum */
+    /* ============================== ~action ============================== */
+
+    /* ============================== timer ============================== */
+   eventid                    event_id[L4C_TIMER_ID_MAX];
+    /* ============================== ~timer ============================== */
+
+
+   /* ss_parameter is using to save local parameter for ss retry using*/
+   l4c_parameter_struct       ss_parameter; //MAUI_02354954 SS doesn't support concurrent multi-chnnel request
+   /* cc_parameter is using to save local parameter for cc retry using*/
+   l4c_parameter_struct       cc_parameter[MAX_SOURCE_NUM];
+
+   /* we using this local context to save local parameter if we have to send one message,
+   but we have to do another thing before it, we have to save in this parameter*/
+   l4c_parameter_struct       parameter[MAX_SOURCE_NUM];
+
+/***********************************************************************/
+/* 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 __SAT__ //MAUI_02354954
+   /* cc_peer_buf is using to save peer buffer for retry using*/
+   l4c_parameter_struct       cc_peer_buf; //for cc now, it is used by SAT call only
+#endif
+
+
+   l4c_parameter_struct       parameter_sim;
+
+    /* parameter_sat is using to save SAT cc/ss/ussd/sms/dtmf local parameter using*/
+   l4c_parameter_struct       parameter_sat;
+   sat_procomm_struct         parameter_satmenu;
+#ifdef __TC10__
+   kal_bool                   sat_need_check_fdn;
+   sat_call_ctrl_type_noti_enum sat_callctrl_type;
+   sat_call_ctrl_type_noti_enum cur_stk_cmd;
+#endif
+
+   /* this flag using to chek the retry mechineism working or not. so that we can ignore some message or clear*/
+   /* the queued message for retry */
+
+   /*retry timer timeout, sending queued message, rety_ongoing_flag will set as TRUE until receiving cnf*/
+   kal_bool    cc_retry_ongoing_flag;
+   /* keep the retry count value */
+   kal_uint8 mo_call_id;
+
+//#if !defined(__PHB_APPROVE_BY_MMI__)
+   kal_uint8 mo_call_ecc_info;
+//#endif
+
+   l4c_ussd_version_enum ussd_version; //MO USSD change phase retry
+
+   kal_uint8 enhanced_ecc_id; //MAUI_02554068
+
+   l4c_csmcc_ps_context_struct       l4c_csmcc_ps_context;
+
+    /* ============================== ~queue/retry ============================== */
+
+    /* ============================== other context ============================== */
+//   rmmi_context_struct        *rmmi_ptr;
+
+/*#ifdef __HOMEZONE_SUPPORT__
+   l4c_hz_context_struct *hz_ptr;
+#endif*/
+    /* ============================== ~other context ============================== */
+
+    /* ============================== flag ============================== */
+   /* this flag chek if rac is actived tru or fale , we can initila submodule, and can dial ECC call*/
+#ifdef __MOD_TCM__
+   /* keep the value of  GPRS PDP active form NW with auto answser mode */
+   kal_bool    tcm_auto_answer;
+   kal_uint8   tcm_activate_ind_context_id;
+#endif //mtk02285, 201003, 6251_ram
+   /* this flag using to identify the power on procedure with finish indcation, we can use it to chek */
+   /* if uper layer like to write sim as power on not finish, in reg_ind if power on not finish we need*/
+   /* inform MMI with attach_ind. however, if power on finish, we any reg_ind we will using reg_ind to*/
+   /* inform MMI with the registed stste changed. */
+   kal_bool    power_on_not_finish;
+   /* this flag is using for RMMI setting some equiement value but route to LMMI , it means we LMMI tigger*/
+   /* the set request , but we have to inform RMMI and afer confirm we should clear L4C state to default.*/
+
+   /* this flag using for detect the plmn sel cnf and reg_ind message and cehck if it is first camp on this PLMN*/
+   /* if true, CFU for CPHS to and SMS memory available message may be send out to NW */
+   kal_bool    first_camp_on;
+   /* this flag is using for SIM restart and wthin SIM_ERROR_IND with cause , we got to keep this value and when*/
+   /* security cnf will perform another proceure*/
+   kal_bool    sim_refresh;
+   /* this flag using to make sure SIM has receive detach form NW when SIM refesh procedure is running*/
+   //kal_bool    sim_reg_state_received;
+   /* This flag using to make sure SIM has read all reg required data and can be trigger RAC to reg*/
+   //kal_bool    sim_security_received;
+   /**/
+   //kal_bool    ph_reset;
+
+   kal_bool   mt_call_incoming; //mtk00468 add for remember one mt call coming , any action should be response as command conflict
+   kal_bool    adc_flag; /* using for active or deavtice EM ADC indication*/
+
+   /* sim_detected: sim inserted information after SMU start cnf
+      KAL_TRUE : SIM is inserted and SMU has loaded security information and SML
+      KAL_FALSE: otherwise
+   */
+   kal_bool    sim_detected;
+   kal_uint16  sim_error_cause;
+
+   /* sim_status_bitmask: a bit mask for different SIM detected status
+      the bitmask is defined as l4c_sim_flag_enum
+   */
+   // TODO: use this bitmask to replace sim_detected, single_sim_inserted_status, single_sim_exist_status
+   kal_uint8    sim_status_bitmask;
+
+
+   kal_uint8    csm_state; //l4c_csm_state_enum
+#ifdef __MOD_TCM__
+   kal_bool     tcm_ready_flag;
+#endif //mtk02285, 201003, 6251_ram
+
+
+   kal_bool   call_exist; /*copy from L4CCSM_CC_CALL_INFO_IND -> call_exist*/
+  // kal_bool   ps_abm_act; /*ABM_ACT by PS: TRUE or FALSE*/
+   kal_bool   csd_end_connect_race_flag; //this flag is using to avoid when we ever send connect indicatino to MMI
+#ifdef __UCM_SUPPORT__
+   kal_uint8  data_call_end_race_flag; //mtk01616_090408:this flag is used to handle ath_req to end data call after call_setup_cnf
+   kal_bool  csd_call_end; //MAUI_01801045 L4C local disconnects CSD call
+#endif
+   // but before we send it to MMI , END key press. MMI will send ATH to end call
+
+   kal_bool  call_alert; /*True: play alert tone, stop it when call connect or call release*/
+   //kal_bool  cipher_ind; //from l4csmu_mmrr_ready_ind, true: enable , false: disable
+   l4c_sim_state_enum sim_power_state;
+   kal_bool sms_init_sent; //true: MSG_ID_L4CSMSAL_INIT_REQ is sent
+
+   //ALPS00029231 l4c_sat_ussr_enum represents the different SAT USSR scenarios
+   l4c_sat_ussr_enum sat_ussr_flag; //mtk01616 070325 :for SAT_USSD ,get ussr fac
+   kal_bool mmrr_ready_flag;//mtk01616 070426:mmrr_ready_flag is used only in rac_act_cnf_hdlr to check whether mmrr_ready_ind is already received
+   #ifdef __TCPIP__ /* ABM */
+   kal_uint8 disc_dialup_req;
+   #endif
+
+    /* ============================== ~flag ============================== */
+
+    /* ============================== value ============================== */
+   /* save line number here so that l4c can prepare setup call type to CC according to this value*/
+   /* this value is set as default line 1 , but will be change when change line form MMI and keep */
+   /* right here.*/
+   kal_uint8   line_num;     /*Line_1 Line_2*/
+
+   /* because we will active rac and smu at the same time, therefore, we have to keep*/
+   /* if smu being active so that we can perform normal plmn selection. */
+   kal_uint8   smu_activated;/* L4C_SMU_INACTIVE, L4C_SMU_ACTIVE,L4C_SMU_ACTIVATE_FAIL*/
+
+   kal_uint8  present_call_id;
+   kal_uint8  mt_call_id; //keep the imcoimg call ID, this is make sure when release by NW we can clear the mt_call_imcoming flag correct
+   kal_uint8  crss_opcode;//MMI may using chld to accept one mt call , we need to keep it so that in crss cnf we can clear the above flag
+
+   kal_uint8 dtmf_call_id;
+
+   /* keep the CLI vlaue here so that we can fill in setup message using this variable CLIR_INVOKE,
+   CLIR_SUPPRESS, CLIR_AUTO*/
+   kal_uint8   clir_flag;
+#ifdef __MOD_TCM__
+   kal_uint32         gprs_em_send_data_size[3];   /* EM mode, GPRS send data left size */ //mtk02285, 20110506 //mtk00714 w0634
+   l4c_source_id_enum gprs_em_send_data_srcid[3];  /* EM mode, GPRS send data src id    */ //mtk02285, 20110506
+#endif //mtk02285, 201003, 6251_ram
+
+//   kal_uint8     ceer_report[MAX_CEER_REPORT_LEN];//this array save the last unsuccessful call
+   kal_uint16     ceer_report;
+   //setup or in call modification , the last call release.
+
+
+
+   kal_uint8 waiting_call_id; /*waiting call id for open/close waiting tone without MMI*/
+
+   cipher_ind_msg_struct cipher_ind_msg; /* Johnny: L4C will save cipher_ind_msg additionally and send it to MMI after CALL_RING_IND */
+
+#ifdef __MOD_TCM__
+
+   kal_uint8 disc_ppp_src_id;
+#ifdef __PS_DIALUP__
+   kal_uint16 ps_dialup_port[L4C_TOT_CONTEXT]; //L4CPPP_FB_2
+#endif
+
+   l4c_gprs_status_enum l4a_ps_gprs_last_status;
+   kal_uint8 l4a_ps_gprs_last_cell_support_egprs;
+   kal_uint8 l4a_ps_gprs_last_data_speed_support;
+   kal_uint8 l4a_ps_gprs_last_data_bearer_capability;
+
+#if defined(__TC10__)
+   l4c_qci_info_struct  qci_tab[TCM_TOT_CONTEXT];
+#if defined(__L4C_GPRS_UT__)
+   kal_char ut_sim_plmn[7];
+#endif /* defined(__L4C_GPRS_UT__) */
+#endif /* defined(__TC10__) */
+
+   //kal_uint8 src_id_table[ACTION_MAX][L4C_TOT_CONTEXT];  // Jeffery
+#endif //mtk02285, 201003, 6251_ram
+
+    l4c_c2k_irat_context_struct c2k_irat_context;
+
+    l4c_c2k_lwcg_irat_context_struct c2k_lwcg_irat_context;
+
+    kal_uint32 vzw_apn_enable_bitmap;
+
+#if 0
+#if defined(__DEACT_ABORT_CGACT__) && defined(__MOD_TCM__) //mtk02285, 201003, 6251_ram
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* 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 //mtk02285, DUMA00206863, abort_cgact_activation
+#endif
+    /*mtk80396, Add for EM PS conformance test Menu, read from NVRAM when power on*/
+
+    /* ============================== ~value ============================== */
+
+    /* ============================== other ============================== */
+
+#ifdef __IRDA_SUPPORT__
+   l4c_data_mode_enum      uart_data_mode;
+#endif
+
+ #if  defined(__FWP_NC_LAI_INFO__)
+	kal_uint8 is_cell_lock_call;
+#endif
+
+   kal_bool power_on_pin_check;
+   kal_bool data_signal_activate; /*indicate the CS signal path is setup or not for a data call*/
+    kal_uint8 max_retry_count;
+
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+//    kal_uint8 rat_mode;
+//    l4c_prefer_rat_enum prefer_rat;
+
+kal_uint8 single_sim_inserted_status; //first updated by reset sim result
+kal_uint8 single_sim_exist_status;
+
+#if defined(__GEMINI__)
+rmmi_edsim_set_mode_state_enum dual_sim_mode_setting_command;
+#endif /* __GEMINI__*/
+
+kal_uint8 mt_call_approval;
+
+    kal_bool ongoing_csd_dialup;	// MAUI_02284187, mtk02285
+    kal_bool disallow_gprs_and_csd; // karen
+
+#ifdef __NBR_CELL_INFO__
+cell_info_reg_table_struct cell_info_reg_table[10];
+kal_uint8 cell_info_reg_index;
+#endif
+
+    kal_bool sub_modules_ready;
+
+
+   /* [DUMA00005999], mtk02480
+     *   has_deregistered is set to KAL_TRUE while we have dereg network or attach limited service only
+     *   if has_deregistered=TRUE, we have to do reg_req before send PLMN_SEARCH_REQ
+     */
+    kal_bool has_deregistered;
+
+    kal_uint8 sig1;
+    kal_uint8 sig2;
+    kal_uint8 csq_level;
+    kal_uint8 ber;
+    kal_int32 rssi_in_qdbm;
+    kal_int32 RSCP_in_qdbm;
+    kal_int32 EcN0_in_qdbm;
+    kal_int32 RSRQ_in_qdbm;             // <LTE>: RSRQ
+    kal_int32 RSRP_in_qdbm;             // <LTE>: RSRP
+    kal_int32 RS_SNR_in_qdb;            // <LTE>: SINR
+    kal_int16 srxlev_in_qdb;            // <LTE>: Srxlev
+    kal_int16 squal_in_qdb;             // <LTE>: Squal
+
+    kal_int32 ss_RSRQ_in_qdb;          // <NR>: SS-RSRQ
+    kal_int32 ss_RSRP_in_qdbm;          // <NR>: SS-RSRP
+    kal_int32 ss_SINR_in_qdb;         // <NR>: SS-SINR
+    kal_int16 ss_srxlev_in_qdb;       // <NR>: SS-Srxlev
+    kal_int16 ss_squal_in_qdb;        // <NR>: SS-Squal
+    kal_int32 csi_RSRQ_in_qdb;         // <NR>: CSI-RSRQ
+    kal_int32 csi_RSRP_in_qdbm;         // <NR>: CSI-RSRP
+    kal_int32 csi_SINR_in_qdb;        // <NR>: CSI-SINR
+
+	kal_int16 serv_band;
+    kal_int16 ecband;    // AT+ECBDINFO
+    rat_enum serv_cell_rat;
+
+l4c_data_bearer_capablility_enum max_data_bearer_capa;//hspa_mmi_h2
+
+    /* ============================== ~other ============================== */
+/* For GPRS_FLC_UT MAUI_02419672 mtk02126 */
+#if !defined(__MTK_TARGET__) && defined(__RMMI_UT__) && defined(__MOD_TCM__)
+  lcd_lqueue *gprs_flc_queue;
+#endif
+
+//evshed_create, mtk02285, 20110328: remove base timer
+
+    l4c_nw_sysconfig_struct *nw_sysconfig;
+
+#if defined(__SYSSEL_SUPPORT__)
+    l4c_nw_syssel_struct *nw_syssel;
+#endif
+
+    /* the TON of MO call number in SETUP request to CSM. between 128~255
+       Refers to TS 24.008 10.5.4.7 the octet 3 of Called party BCD number IE */
+    kal_uint8 cc_ton;
+
+    sim_interface_enum cur_sim_slot_id; /* store the choosed physical SIMs */
+
+    kal_uint8 is_valid_ef_rat_mode;
+    kal_uint8 ef_rat_mode;
+
+    kal_uint8 file_changed_map;
+
+    kal_uint32 em_cell_lock_mode; /* Context for L4C EM cell lock feature, refer to em_cell_lock_mode_enum */
+
+#if defined(__DUAL_TALK_MODEM_SUPPORT__)
+    l4c_source_id_enum l1aud_spc_src_id;
+#endif
+
+#if defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__)
+    kal_uint8 fast_dormancy_mode; //0: disable, 1: enable
+    eventid fd_event;
+    kal_bool is_screen_on; //0: off, 1: on
+    kal_uint8 fd_timer_counter;
+    upcm_query_epsb_statistics_struct fd_pdp_table;
+    kal_bool scri_has_sent;
+    kal_uint8 fd_monitor_tick;
+    kal_uint8 fd_retry_count;
+    kal_bool fd_fop_received;
+    kal_bool need_resend;
+#endif /* defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__) */
+
+    rat_enum active_rat;
+    rat_enum active_3gpp_rat;
+
+    kal_bool mmi_info_received; //recipt flag of MSG_ID_L4CSMU_MMI_INFO_IND
+    kal_uint8 ecc_category; //used for the next ATDE command
+    kal_uint8 ecc_call_id; //used for telling MOD_LBS the roughly timing of ecc call
+
+    kal_bool ecc_full_control; // TRUE: control by AP
+
+    umts_rrc_state_enum rrc_state;
+    em_errc_state_enum errc_state;
+    kal_bool dl64qam;
+
+    cusats_uicc_state_enum uicc_state;
+    /* 0 Bit corresponds to Source ELT, 1 Bit corresponds to RMMI */
+    kal_uint8 em_info_state_tbl[NUM_OF_EM_INFO];
+
+    /* below informat are for thermal usage */
+    l4c_source_id_enum ethermal_src;
+    kal_int8 rf_tx_power; //tx power: -50 ~ 24, -127: invalid
+#ifdef __TX_PWR_EXTENSION__
+    l4c_tx_pwr_info_per_antenna rf_tx_power_ant[2];//per antenna
+    kal_int8 numRequest;
+#endif
+    kal_int16 rf_temperature;
+    kal_int16 rf_temperature_lte;
+    kal_int16 rf_temperature_nr;
+#if defined(__GEMINI__)
+#ifdef __LTE_RAT__
+    kal_bool disallow_irat;
+#endif
+#endif
+    l4c_source_id_enum txant_src;
+    l4c_source_id_enum txrx_time_src;
+
+#if defined(__L4C_GPRS_UT__)
+    kal_bool tst_inject_is_sglte_mode;
+    kal_bool tst_inject_is_ps_switch_ongoing;
+    kal_bool tst_inject_is_notify_cgact_fail;
+    l4c_gprs_cmd_conflict_cause_enum tst_inject_is_command_conflict;
+    kal_bool is_ipv4v6_table_free[L4C_TOT_CONTEXT];
+    rat_enum tst_inject_rat_mode;
+    kal_bool tst_inject_no_need_to_wait_ei3gppirat;
+    kal_bool tst_inject_ut_case;
+#endif
+
+    /* No PDP activated: L4C_PDP_DEACTIVED
+       There is one or more PDP activated: L4C_PDP_ACTIVED */
+    l4c_gprs_status_enum l4c_last_pdp_overall_status;
+
+    kal_uint8 v4v6_act_ptr_init_cid[L4C_TOT_CONTEXT];   /* duplicate from v4v6_act_ptr, because need to be used after free table */
+    l4c_gprs_ipv4v6_act_struct* v4v6_act_ptr[L4C_TOT_CONTEXT];
+    kal_bool ipv4v6_fallback_enable;
+    kal_bool ipv4v6_fallback_v4_first;
+
+    kal_bool retry_afr;
+
+    kal_bool eapprove_flag; /* EAPPROVE cmd is used or not */
+
+#ifdef __MODEM_EM_MODE__
+    kal_bool is_em_from_loggingTool;
+    l4c_em_event_enum l4c_em_event_bit_mask;
+#endif
+
+    kal_uint8 wfc_profile;
+    kal_uint8 drb_state;
+    kal_uint8 drb_state_nr;
+    l4c_radio_access_setting_struct csra_setting;
+    kal_uint8 cfun_before_csra;
+
+    /* +CGPIAF config */
+    kal_bool ipv6_address_format;
+    kal_bool ipv6_subnet_notation;
+    kal_bool ipv6_leading_zeros;
+    kal_bool ipv6_compress_zeros;
+
+    kal_bool is_ims_call_exist;  // from EIMSCI
+
+    /*  CALL_TYPE_INDICATION_NULL : means not in any call session
+         *  CALL_TYPE_INDICATION_XXX : means UE is in XXX call session
+         *  this value should be updated only in l4c_send_rac_call_status_req()
+         */
+    call_type_indication_enum in_call_session_type;
+
+    kal_bool is_cdma2000_supported;
+
+    /* refer to TS 31.111 Subclause 6.4.12 SEND USSD
+         * if alpha_id is present and not NULL object, we should inform user about this SAT USSD*/
+    kal_bool sat_ussd_need_inform_user;
+    kal_bool sat_report_cs_ussd_end;
+    kal_bool sat_report_cs_ss_end;
+
+    kal_uint32 sbp_id; //it is used for dynamic SBP when SIM switch happens. Convert SIM MCC/MNC to SBP ID when L4CSMU_MMI_INFO_IND is received.
+
+    kal_uint8 disabled_rat;  // Bitmap: b4|b3|b2|b1 = x|4G|3G|2G.  1: Rat is disabled, 0: RAT is not disabled.
+
+    kal_bool is_emergency_session;
+    kal_uint8 ims_reg_state;
+    kal_bool is_flight_mode_on_ecc;
+    kal_bool is_ecc_connected;
+    kal_bool is_ecc_cancelled;
+    kal_bool is_1x_service_available;
+    hvolte_enable_status_enum hvolte_enable;
+    hvolte_enable_status_enum hvolte_enable_for_roaming;
+    kal_bool delay_switch_to_SRLTE_mode;//only used for TC01
+    kal_bool delay_switch_to_VOPS_mode;
+    l4c_dial_c2k_state_enum l4c_dial_c2k_state;//for hvolte, not set to SRLTE mode until received c2k_csfb_start_ind
+    kal_uint8 rach_fail_t300_counter;
+    hvolte_mode_enum hvolte_mode;
+    kal_uint32 t_wwan_911;
+    kal_uint32 t_volte_hys;
+    kal_bool is_eimsps_need_to_wait_attach;
+
+    kal_bool is_on_hplmn;       // HPLMN is based on SIM card
+    kal_bool is_home_country;   // UE is in a domestic or foreign country, based on the location. The value is determined by NWSEL
+    kal_uint8 plmn_id[MAX_PLMN_LEN+1];
+    kal_uint8 last_camped_plmn_id[MAX_PLMN_LEN+1];   // This is used to record the last valid PLMN used by UE. Usage example: UE's last location
+
+    /* TxRx active time */
+    kal_uint32 tx_mode_time[NUM_TX_POWER_LEVELS]; // LWCTG
+    kal_uint32 rx_mode_time;    // LWCTG
+    kal_uint32 txrx_union_time;
+    kal_uint32 txrx_start_time;
+    rat_enum txrx_need_report_rat;
+
+    /* L1 LCM hopping */
+    l4c_lcm_hopping_context_struct lcm_hopping_info[L4C_XL1_LCM_HOPPING_NUM_OF_RAT];
+    kal_uint8 reported_lcm_hopping_rat_index;
+    kal_uint32 reported_lcm_mipiBitmap;
+    kal_bool has_pending_reported_lcm_hopping;
+    ostd_ap_core_status_enum ap_core_status;
+	/* AT%SIMIMSI */
+	#if defined(__TC01__)
+    kal_bool  is_imsi_valid;
+    kal_uint8 imsi_content[17];
+    kal_bool  pin_lock_check;
+	#endif
+
+
+    kal_bool is_ims_turned_on;
+    ims_cap_rat_enum ims_voice_rat;//is_ims_volte_turned_on;
+	kal_uint8 mo_call_mode;
+    kal_uint16 lce_cap_trc;     // Record the LCE config process on different RAT
+    kal_bool is_voice_over_ims_ongoing;
+    ims_access_rat_enum ims_access_rat;
+    kal_bool is_c2k_cs_call_ongoing;
+    rac_em_mdmi_rat_info_enum previous_mdmi_rat_info;
+
+    kal_uint8 attach_pdn_choose_which_cid_profile;
+    kal_uint8 at_cmd_define_attach_pdn_establish_on_which_cid;
+	kal_bool op20_ap_simlock;
+
+    /* context used for +EAPC */
+	kal_uint8 eapc_exe_wait_num;
+
+	kal_uint32 sim_sbp_id_to_set;
+    kal_uint32 sbp_reconfigure_type; //l4c_me_reconfig_enum
+    l4c_source_id_enum sbp_user;
+    kal_uint8 current_trans_id;  // trans_id from SIM READY IND, 1 ~ 255, value 0 reserved for user dsbp (AT command)
+
+    /* for power level with threshold implimentation*/
+	l4c_power_level_threshold_struct pl_threshold;
+
+    /* for CT3G card ps attach flow */
+    kal_bool is_ct3g_card_inserted;
+
+	/* For AT+ERFIDX command*/
+	l4c_erfidx_context_struct erfidx_info[L4C_ERFIDX_NUM_OF_FEATURE];
+
+    rat_enum global_rat_mode;
+
+    kal_bool is_op12_reg_lock;
+
+    /* save setting from MSG_ID_L4C_REGIONAL_PHONE_MODE_REQ */
+    kal_uint8 nv_regional_phone_mode;
+    kal_uint8 regional_phone_mode;
+
+    kal_bool is_data_allowed;
+	/*SET RAT MODE to 4G only if specific sim card*/
+	kal_uint8 mcc_in_plmn_found[3];
+	kal_bool is_4g_only_set;
+    kal_bool is_op01_sim_lock;
+
+#ifdef __DISABLE_SIM_RESET_DURING_DUPLEX_MODE_CHANGE__
+	l4c_sim_duplex_mode_reset_state_enum duplex_mode_sim_reset_state;
+#endif
+
+    /* For IWLAN Single monitoring*/
+	event_scheduler 		      *max_delay_event_scheduler_ptr;
+	eventid                        max_delay_event_id[L4C_PWL_THRHD_TIMER_ID_MAX+1];
+
+	l4c_pwl_thrhd_struct pwl_thrhd[L4C_MAX_SIG];
+	l4c_power_level_threshold_range_enum pwl_thrhd_reported_range[L4C_MAX_SIG];
+
+#ifdef __GEMINI__
+    kal_uint8 wait_auth_abort_src_id;
+    kal_uint8 wait_auth_abort_cfun_state;
+    l4c_rsim_pending_action_enum rsim_pending_action;
+#endif
+    /* If current action encountered cmd conflict situation, L4C could make use of this queue to suspend the action.
+          The item structure is l4c_queue_pending_action_item_struct */
+    lcd_lqueue  pending_action_queue;
+    lcd_lqueue *pending_action_queue_ptr;
+
+    kal_bool is_sim_refresh_with_pseudo_imsi;
+    kal_bool band_setting_nosave;
+    rat_enum  rat_mode_nosave;
+
+#ifdef __CHR_AB_INFO__
+    kal_bool epsnlte_next_iter_timer;
+#endif
+
+	kal_uint8 cops_src_id;
+	kal_bool    reinit_sub;
+
+    kal_bool emm_cmcc_attach_arrearage;
+    kal_uint8 emm_consecutive_attach_reject_with_integrity_protection;
+    l4c_sim_card_arrears_enum sim_arrearage_reported;
+    l4c_sim_arrears_pid_enum sim_arrearage_pid;
+    kal_uint8 sim_arrearage_cause;
+
+    /****************************/
+    /* L4C PHB variable section */
+    /****************************/
+    l4c_source_id_enum              phb_user;
+    kal_uint16                      phb_current_action;
+    //kal_bool                        phb_ready_flag;
+    l4_number_struct                l4cphb_approve_req_string;
+    kal_bool                        phb_update_from_crsm; // update PHB record if CRSM is used
+    //kal_bool                        is_fdn_change;
+    kal_bool                        phb_approve_ussd;
+
+
+
+    l4c_phb_ps_context_struct       l4c_phb_ps_context;
+
+    /***********************************/
+    /*    L4C SMS variable section     */
+    /***********************************/
+    kal_uint16   sms_current_action[MAX_SOURCE_NUM];   /*l4c_action_enum*/
+    kal_uint8    sms_num[MAX_SOURCE_NUM];
+    kal_uint8    sms_abort_ongoing;
+    kal_bool     sms_da_fdn_check; //using to check if da is approve now
+    void        *sms_da_number;
+    kal_uint8    pws_config;
+
+    l4c_sms_ps_context_struct       l4c_sms_ps_context;
+    /***********************************/
+    /* end of L4C SMS variable section */
+    /***********************************/
+
+
+
+    kal_bool is_rsvas_occupy_sent;
+    kal_uint16 nw_mcc;
+
+    l4c_non_3gpp_nw_policies_struct  non_3gpp_nw_policies;    /* Non-3GPP NW provided policies IE */
+    kal_bool is_imei_meid_blocked;
+    rat_enum rat_imei_meid_blocked;
+
+    kal_bool is_detach_reattach;
+
+    kal_uint32 extn_lce_ul_threshold;
+    kal_uint32 extn_lce_dl_threshold;
+
+    kal_bool is_unblock_op;
+
+    /* store for NSA lCE */
+    kal_uint8 is_ul_valid;
+    kal_uint8 is_dl_valid;
+    kal_uint32 ul_kbps;
+    kal_uint32 dl_kbps;
+
+
+    rat_enum atnusd_need_report_rat;
+    l4c_antenna_state_struct antenna_state;
+    l4c_antenna_state_struct old_antenna_state;
+    kal_bool is_antenna_timer_running;
+
+  	uac_transaction_struct uac_transaction[l4C_MAX_TRANS_NUM];
+
+    msg_type esrv_req_msg_id;       // To distinguish the source of EMERGENCY_SERVICE_REQ
+    msg_type esrv_fb_req_msg_id;    // To distinguish the source of EMERGENCY_SERVICE_FALLBACK_REQ
+
+    /* for security API */
+    kal_bool l4c_is_nitz_valid;
+    l4c_nw_time_zone_time_struct l4c_nitz_info;
+
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+    /* For ARFCN reporting to camera APP*/
+    kal_bool is_call_present;
+    kal_bool is_arfcn_valid;
+    kal_uint8 num_of_arfcn;
+    kal_uint32 arfcn[L4C_MAX_ARFCN_SUPPORTED];
+    kal_uint16 band[L4C_MAX_ARFCN_SUPPORTED];
+    rmmi_cscon_mode_enum is_connected;
+#endif
+    indicated_nrrc_state_enum indicated_nrrc_state;
+    kal_uint8 camera_hopping_endc_arfcn_cache;
+
+    kal_uint8 eops_plmn_id[MAX_PLMN_LEN+1];
+    kal_bool is_egreg_suspend;
+
+    rat_enum ecc_rat_save;
+    kal_bool integrity_status;
+    kal_bool ciphering_status;
+    kal_bool fake_security_status;
+
+    kal_bool ue_capability_action;
+
+    /* For VzW  SRLTE switch*/
+    kal_uint8 ims_pdn_result;
+    kal_uint8 inet_pdn_result;
+    kal_uint32 ims_pdn_reject_cause;
+    kal_uint32 throttling_timer_timestamp;
+	kal_bool is_uicc_activated;
+    sim_additional_error_cause_enum additional_error_cause;
+
+    kal_bool is_mrs_band_setting_nvram_save_needed;
+    kal_bool is_kor_lguplus_envelope_for_refresh;
+
+    /* For AT&T <CDR-WIFI-1510>*/
+    kal_uint8 num_rsrp_threshold;
+    kal_uint8 num_rs_snr_threshold;
+    kal_uint8 num_rsrq_threshold;
+    kal_uint8 num_nr_ss_rsrp_threshold;
+    kal_uint8 num_nr_ss_rsrq_threshold;
+    kal_uint8 num_nr_ss_sinr_threshold;
+
+    kal_int16 rsrp_threshold[16];
+    kal_int16 rs_snr_threshold[16];
+    kal_int16 rsrq_threshold[16];
+    kal_int16 nr_ss_rsrp_threshold[16];
+    kal_int16 nr_ss_rsrq_threshold[16];
+    kal_int16 nr_ss_sinr_threshold[16];
+
+    l4c_nw_register_nitz_cb nitz_cb;
+
+#ifdef __FEATURE_SAMSUNG_RF_SAR_EUR_CHK__
+    kal_uint8 is_eu_us_mcc;
+#endif
+
+    kal_uint8 plmn_list_num_src_id;
+    sim_error_cause_enum last_sim_error_ind;
+
+    /* pointer to access the l4c context which bind with sim_slot and need to switch by SIM switch */
+    l4c_context_with_sim_slot_struct *this_sim_context;
+
+    kal_uint8 plmn_list_block_apn_num;
+    kal_char* plmn_list_block_apn[L4C_PS_MAX_BLOCK_APN];
+
+#ifdef __IPC_NETWORK_SCAN__
+    kal_uint8 net_scan_src_id;
+#endif
+
+#ifdef __WHITE_CELL_LOCK__
+    kal_uint8 cell_meas_scan_src_id;
+#endif /*__WHITE_CELL_LOCK__*/
+
+    kal_uint8 exe_scan_src_id;
+
+    kal_bool rat_change_to_lte;
+    kal_bool is_rat_change_started;
+    kal_bool is_suspend;
+    kal_uint8 susp_id;
+    kal_bool is_2g_disable;
+    l4c_rat_mode_custom_type_enum rat_mode_setting;
+    kal_uint16 mo_disc_cause;
+
+    kal_uint8 pref_nw_type;
+
+    /* l4_pref_lid_write_bitmap is the bit map which stores the byte which is getting modified in NVRAM_EF_L4_PREFERENCE_LID.
+            This is set before the write req is sent ot NVRAM and reset when the write confirmation is received */
+    kal_uint8 l4_pref_lid_write_bitmap;
+
+#if defined(__TC01__)
+    kal_uint8 ims_pdn_reject_count;
+    kal_bool is_port_unlock_ongoing;
+    kal_uint8 *portunlockstr;
+#endif
+
+    sbp_reconfig_custom_param_struct sbp_parameters;
+
+#ifdef __TC01__
+	l4c_ecc_connected_status_enum ecc_call_connected_status;
+#endif /* __TC01__ */
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+	l4c_nw_black_list_info_struct ms_nw_black_list_info;
+#endif
+
+    kal_int8 time_zone_cclk;
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+    l4c_number_struct              ecallquery_number;
+    kal_uint8 ecall_reg_src_id;
+#endif /* (__ECALL_SUPPORT__) || (__NG_ECALL_SUPPORT__) */
+    /* For signal criteria set feature */
+    kal_bool is_gsm_criteria_set;
+    kal_bool is_umts_criteria_set;
+    kal_uint8 is_lte_criteria_set;
+    kal_uint8 is_nr_criteria_set;
+	kal_uint8 vgopt_act_operation;
+	kal_bool wait_for_lte_paging;
+	l4c_nw_5guw_context_struct l4c_5gnw_context;
+	endc_sib_status_enum endc_sib_status;
+#ifdef __CHANNEL_LOCK__
+    kal_bool read_ch_lock_mode_from_nv;
+#endif
+	kal_uint8 sa_nr_srv_bands_num;
+	kal_uint16 sa_nr_srv_bands[L4C_MAX_NR_SRV_BAND];
+	kal_uint8 endc_nr_srv_bands_num;
+	kal_uint16 endc_nr_srv_bands[L4C_MAX_NR_SRV_BAND];
+    kal_uint8 internet_cid;
+} l4c_context_struct;
+
+
+/* mtk01616_100419: L4C common context is created for RAM size optimization in Gemini platform
+   In Gemini, there will be two L4C context. However, some context can be shared in SIM1/SIM2.
+   Now we create L4C common context,there will be only one common context in Gemini
+   For context can be shared between SIM1/SIM2, please try to move to L4C common context. */
+typedef struct
+{
+   kal_uint32 cpi_mode;
+   kal_uint32 ps_conf_test_profile;
+   kal_uint8 ps_conf_test_mode;
+   kal_bool wap_init_flag;
+   kal_uint8 flightmode_state; //l4cmmi_flightmode_enum
+
+   /* 030618 mtk00468 add handle the power on mode in different mode , we have to keep this value.*/
+   /* when mode is not normal power , after uem_startup_cnf we dont need to initial other module*/
+   kal_uint8   poweron_mode; /* POWER_ON_KEYPAD  0 POWER_ON_ALARM 1 POWER_ON_CHARGER_IN  2 */
+   kal_uint8 poweroff_retry; // power off timer retry count
+   kal_uint8 usb_app; //remember usb app is USB_SWITCH_PORT_APP_DATA or USB_SWITCH_PORT_APP_DEBUG
+#ifdef __IP_NUMBER__
+	  kal_uint8 ip_string[21];
+#endif
+#if defined(__GEMINI__)
+    kal_uint8 dual_sim_mode_setting;
+    kal_uint8 dual_sim_inserted_status;
+    kal_bool during_sim_mode_switch;
+    kal_bool is_dual_sim_ind_sent;
+#endif
+#ifdef __AGPS_CONTROL_PLANE__
+    module_type agps_cp_active_module;
+#endif
+#ifdef __GEMINI__
+    kal_uint8 tmp_ps_sim_map[NVRAM_EF_PS_SIM_MAP_SIZE];    /* store the temp PS-SIM slot mapping */
+#endif
+    kal_uint8 drc_type;     /* For dynamic re-configure type */
+
+    /*
+       During SIM switch, drc_type is reset after receiving all L4C_ME_RECONFIG_CNF from PS1 because Duplex Mode Change will start.
+       Need another flag for ongoing dynamic re-configure type, which has longer life cycle than drc_type.
+       Set before sending L4C_ME_RECONFIG_REQ to all protocols.
+       Reset after receiving L4C_ME_RECONFIG_CNF from all protocols.
+    */
+    kal_uint8 drc_type_ongoing;
+
+#ifdef __ETWS_SUPPORT__
+    kal_uint8 etws_setting;
+#endif
+	kal_bool is_wea_geofencing_enabled;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+    kal_bool l4c_use_tnum;
+    kal_bool l4c_use_rnum;
+    l4_addr_bcd_struct l4c_tnum;
+    l4_addr_bcd_struct l4c_rnum;
+	l4_phb_uri_struct l4c_tnum_uri;
+	l4_phb_uri_struct l4c_rnum_uri;
+	kal_bool l4c_use_tnum_uri;
+	kal_bool l4c_use_rnum_uri;
+	ecall_format_enum format;
+	kal_uint8 msd_data_length;
+	kal_uint8 msd_data[MSD_MAX_LENGTH];
+#endif /*defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)*/
+
+    kal_uint8 rac_activated; //bit-map for GEMINI
+    kal_uint8 tcm_activated;
+    kal_bool uem_activated;
+
+    kal_bool  is_wait_for_audio_off;
+    kal_uint8 iratmode;
+
+    l4c_c2k_power_off_state_enum c2k_md_pwroff_state;//for MD1/MD3 pwroff handshake
+
+    l4c_dss_ongoing_state_enum dss_ongoing_state;
+
+	kal_uint8 notify_module_num;
+
+#ifdef __GEMINI__
+    kal_bool is_rsim_enable;
+    kal_bool is_aka_enable;
+	kal_bool is_aka_ready;
+
+	kal_uint8 aka_sim;
+	kal_bool aka_mode;
+    kal_uint8 rsim_auth_timeout;
+    l4c_rsva_aka_resource_occupy_enum rsva_aka_resource_occupy_state;
+    kal_uint8 aka_rsim_abort_src_id;
+    kal_bool is_rsim_virtual_connected;
+    kal_bool is_rsim_auth_resp_to_be_sent;
+    /* This variable is to track the rrc connection release on RSIM stack*/
+    kal_uint8 rsim_connection_release_counter;
+#endif
+
+#ifdef __DISABLE_SIM_RESET_DURING_DUPLEX_MODE_CHANGE__
+    kal_bool world_mode_without_sim_reset_completed;
+#endif
+
+    l4c_ct_volte_support_enum ct_volte_support;
+
+#if defined(__TC01__) && defined(__RMMI_EXTEND_CUSTOM_CMD__)
+    /* MUSE - ALPS01198329 */
+    /* The device will make SIM2 flight mode in the MUSE factory test state. */
+    kal_bool cust_flight_mode;
+#endif
+
+
+    /*
+      Workaround: AT+ESIMMAP responds ERROR if any one of PHB has not started up yet during power on.
+      Bitmap representing whether PHB has started up
+      0x01: PHB_1 protocol has started up
+      0x02: PHB_2 protocol has started up
+      0x04: PHB_3 protocol has started up
+      0x08: PHB_4 protocol has started up
+    */
+    kal_uint8 l4c_phb_startup_begin_flag;
+
+
+
+    kal_bool  g_sar_update_needed;
+    kal_bool  g_sar_txant_update_needed;
+    kal_uint8 g_sar_sensor_state;
+    kal_uint16 g_scenario_index;
+    kal_uint8 g_sar_tx_ant_cnf_pending;
+    kal_int8  g_customer_sar_setting;
+
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+    kal_bool is_camera_reporting_enabled;
+    kal_uint8 ap_test_mode;
+#endif
+
+    /* ALPS04275687: This variable is to check if startup IMEI verification is passed */
+    kal_bool power_on_imei_verify;
+    kal_uint8 scp_monitor;
+
+
+	kal_bool is_custom_fd_setting;
+    kal_bool is_custom_full_fd_setting;
+
+#if defined(__TC01__) /* at%ltecall */
+    l4c_cust_rft_mode_enum  cust_rft_mode;
+    kal_uint32              init_campreq_mode;
+	kal_uint8 is_port_locked;
+#endif
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+    /* For ECALL priority*/
+    kal_uint8 l4c_ecall_prio[L4C_ECALL_USIM_NUM];
+#endif /* __ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__ */
+
+}l4c_common_context_struct;
+
+/* -------------------------------------------------------
+  * L4C Root is the GEMINI controller in Dual SIM project.
+  * Control the power on/power off/SIM mode switching procedures.
+  * -------------------------------------------------------*/
+typedef struct
+{
+    kal_bool has_update_sim_statust;
+    kal_uint8 root_src_id;
+    kal_uint8 efun_state;
+    rfoff_cause_enum efun_cause;
+#if defined(__L4C_GEMINI_BT_HF__)
+    kal_uint8 last_dialed_sim;
+#endif
+#if defined(__SINGLE_AP_DUAL_MODEM__)
+    /* bitmap representing the power-on mode for each sim
+       0x01: SIM1 protocol is powered-on
+       0x02: SIM2 protocol is powered-on
+       0x04: SIM3 protocol is powered-on
+       0x08: SIM4 protocol is powered-on
+    */
+    kal_uint8 sim_support_mode;
+#endif
+#if defined(__SIM_ME_LOCK__)
+    /* below context is for link_SML */
+    smu_pending_password_id_enum root_pending_password[MAX_SIM_NUM];
+    link_sml_valid_sim_enum root_real_sim_verify_state[MAX_SIM_NUM];
+    link_sml_srv_state_enum root_sml_srv_state[MAX_SIM_NUM];
+#endif
+    kal_uint16 root_action;
+
+    /* below context is used for +CSRA */
+    l4c_radio_access_setting_struct root_csra_setting;
+    kal_uint32 duplex_mode_change_done;
+}l4c_root_context_struct;
+
+
+extern l4c_context_struct *l4c_ptr_g;
+extern l4c_common_context_struct *l4c_comm_ptr_g;
+extern module_type l4c_current_mod_id;
+extern l4c_context_struct l4c_cntxt_g[L4_MAX_SIM_NUM];
+extern l4c_context_with_sim_slot_struct l4c_cntxt_with_sim_slot_g[L4_MAX_SIM_NUM];
+/*#ifdef __HOMEZONE_SUPPORT__
+extern	l4c_hz_context_struct l4c_hz_cntxt_g[L4_MAX_SIM_NUM];
+#endif*/
+
+extern l4c_root_context_struct l4c_root_cntxt_g;
+extern l4c_root_context_struct *l4c_root_ptr_g;
+
+
+extern kal_uint8 PS_SIM_MAP[];
+
+
+extern l4c_phb_context_struct l4c_phb_context_g[L4_MAX_SIM_NUM];
+extern l4c_sms_context_struct l4c_sms_context_g[L4_MAX_SIM_NUM];
+extern l4c_csmcc_context_struct l4c_csmcc_context_g[L4_MAX_SIM_NUM];
+
+
+/*** If you wanna add new filed in the dump, please comply with the alphabet order  ***/
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    rat_enum    active_rat;
+    kal_bool    auto_attach;
+    kal_uint8   cfun_state;
+    kal_uint8   c2k_cfun_state;
+    kal_uint8   efun_state;
+    kal_bool    mmrr_ready_flag;
+
+    rat_enum    global_rat_mode;
+    rat_enum    rat_mode;
+    rat_enum    prefer_rat;
+
+    ps_conf_test_mode_enum  ps_conf_test_mode;
+    kal_uint32              ps_conf_test_profile;
+
+    kal_bool   rat_change_to_lte;
+    kal_bool   is_2g_disable;
+} l4c_nw_dump_context;
+
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    kal_bool    call_exist;
+    kal_bool    is_flight_mode_on_ecc;
+    kal_bool    is_emergency_session;
+
+    kal_bool    retry_cc;
+    kal_uint8   retry_count;
+    kal_uint8   retry_src_id;
+    kal_bool    retry_ss;
+
+} l4c_cc_dump_context;
+
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    kal_uint8   dummy;
+} l4c_sms_dump_context;
+
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    sim_interface_enum      cur_sim_map;
+    sim_interface_enum      cur_sim_slot_id;
+
+    l4c_dss_ongoing_state_enum dss_ongoing_state;
+
+    kal_bool                sim_detected;
+    kal_uint16              sim_error_cause;
+    kal_bool                sim_refresh;
+    kal_bool                mmrr_ready_flag;
+    kal_bool                is_test_sim;
+    kal_bool                is_c2k_app_exist;
+} l4c_sim_dump_context;
+
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    smu_pending_password_id_enum root_pending_password[MAX_SIM_NUM];
+    link_sml_valid_sim_enum root_real_sim_verify_state[MAX_SIM_NUM];
+} l4c_smu_dump_context;
+
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    kal_bool    is_ims_call_exist;
+    kal_bool    is_ims_turned_on;
+    ims_cap_rat_enum    ims_voice_rat;//is_ims_volte_turned_on;
+
+    hvolte_enable_status_enum hvolte_enable;
+    hvolte_enable_status_enum hvolte_enable_for_roaming;
+    hvolte_mode_enum          hvolte_mode;
+} l4c_ims_dump_context;
+
+typedef struct {
+    /* Please add the new field in increasing alphabet order */
+    kal_uint8   l4c_phb_startup_begin_flag;
+} l4c_phb_dump_context;
+
+typedef struct {
+    LOCAL_PARA_HDR
+
+    l4c_nw_dump_context     l4c_nw_dump;
+    l4c_cc_dump_context     l4c_cc_dump;
+    l4c_sms_dump_context    l4c_sms_dump;
+    l4c_sim_dump_context    l4c_sim_dump;
+    l4c_smu_dump_context    l4c_smu_dump;
+    l4c_ims_dump_context    l4c_ims_dump;
+    l4c_phb_dump_context    l4c_phb_dump;
+
+    l4c_action_enum         rac_current_action;
+    l4c_action_enum         smu_current_action;
+    l4c_action_enum         phb_current_action;
+    l4c_action_enum         sat_current_action;
+    l4c_root_action_enum    l4c_root_action;
+} l4c_dump_context_ind_struct;
+
+typedef void (*L4C_PHB_APPROVE_CNF_CALLBACK)(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+typedef struct
+{
+    l4c_phb_approve_src_enum approve_src;
+    L4C_PHB_APPROVE_CNF_CALLBACK cnf_callback_ptr;
+} l4c_phb_approve_cnf_callback_struct;
+extern const l4c_phb_approve_cnf_callback_struct l4c_phb_approve_cnf_callback_table[];
+
+/*
+** Structure used by L4C_PS to send
+** Initial attach PDN connectioninformation to L4C_NW.
+*/
+typedef struct{
+  kal_bool is_success;
+  ps_cause_enum cause;
+  kal_bool is_ims_pdn;
+} l4c_ia_pdn_info_struct;
+
+#ifdef  __L5_SUPPORT__
+typedef struct {
+    /* forward msg info */
+    msg_type    rcv_msg_id;
+    msg_type    fwr_msg_id;
+    module_type dest_mod_id;
+    sap_type    sap_id;
+    kal_uint8   specific_handle;
+} l4c_forward_struct;
+#endif
+
+#endif /* l4c_context.h */
+
+
diff --git a/mcu/protocol/layer4/l4/include/l4c_init.h b/mcu/protocol/layer4/l4/include/l4c_init.h
new file mode 100644
index 0000000..f3f1495
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/l4c_init.h
@@ -0,0 +1,87 @@
+/*****************************************************************************
+*  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_init.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * 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_INIT_H
+#define _L4C_INIT_H
+
+#include "kal_general_types.h"
+
+extern kal_bool l4c_init(void);
+
+extern kal_bool l4c_init_context (void);
+
+extern kal_bool l4c_init_common_context(void); 
+
+extern kal_bool l4c_init_root_context(void); 
+
+extern void l4c_start_base_timer(void *base_timer_ptr,
+                                 unsigned int time_out);
+
+extern void l4c_stop_base_timer(void *base_timer_ptr);
+
+
+
+#endif /* l4c_init.h */
+
+
diff --git a/mcu/protocol/layer4/l4/include/l4crac_func.h b/mcu/protocol/layer4/l4/include/l4crac_func.h
new file mode 100644
index 0000000..dd836a6
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/l4crac_func.h
@@ -0,0 +1,705 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	l4crac_func.h
+ *
+ * Project:
+ * --------
+ *  MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for functional interface between L4C and RAC.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef  _L4CRAC_FUNC_H
+#define  _L4CRAC_FUNC_H
+
+#include "kal_general_types.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_enums.h"
+#ifdef __GEMINI__ //__GEMINI_3G_SWITCH__
+#include "ps_public_enum.h"
+#include "sim_public_enum.h"
+#endif
+#include "l4crac_enums.h"
+#ifdef __VOLTE_SUPPORT__
+#include "ims_common_def.h"
+#endif /* __VOLTE_SUPPORT__ */
+#include "nas_as_inter_core_enum.h"
+#include "ps_public_struct.h"
+#include "rac_nas_sv_struct.h"
+
+/* 4.1 */
+extern void l4crac_get_attach_status (kal_uint8 * cs_status,kal_uint8 * ps_status,kal_uint8 *service);
+extern l4c_rac_gprs_status_enum l4crac_get_gprs_status(void); // MAUI_02316028, support L4C to get gprs status when RAB changed
+
+/* 4.2 */
+extern kal_uint8 l4crac_get_egprs_status (void); /* Erica 20070319: for edge status */
+extern data_speed_support_enum l4crac_get_cell_data_speed_support (void); /* mtk02475: for edge & hspa status */
+extern ms_mobile_class_enum l4crac_get_mobile_class (void);
+
+/* 4.3 */
+extern void l4crac_get_current_plmn(plmn_id_rat_struct  *current_plmn);
+extern void l4crac_get_current_plmn_before_reg(plmn_id_rat_struct  *current_plmn);
+/* 4.5 */
+
+extern plmn_selection_mode_enum l4crac_get_sel_mode(void);
+
+extern void l4crac_set_sel_mode(plmn_selection_mode_enum mode);
+
+extern kal_bool l4crac_get_imei(kal_uint8 *imei_bcd, kal_uint8 *imei_svn_bcd);
+
+extern kal_bool l4crac_test_mobile_class (kal_uint8 const ** buffer);
+
+extern kal_bool l4crac_set_gprs_follow_on_request (kal_bool is_turn_on);
+
+extern rat_enum l4crac_get_rat_mode(void);
+
+extern kal_bool l4crac_set_rat_mode(rat_enum rat_mode);
+
+extern rat_enum l4crac_get_prefer_rat(void);
+
+extern rat_enum l4crac_get_request_rat_mode(void);
+
+extern kal_bool l4crac_update_auto_attach(kal_bool auto_attach);
+
+extern kal_bool l4crac_get_auto_attach(void);
+
+extern kal_bool l4crac_set_auto_attach_setting(kal_bool auto_attach);
+
+extern kal_bool l4crac_save_auto_attach_context(kal_bool auto_attach);
+
+extern kal_bool l4crac_set_irat_preference(rat_enum preferred_rat);
+
+extern kal_bool l4crac_cancel_retry_action(void);
+
+extern kal_bool l4crac_is_deregistered(void);
+
+extern rat_enum l4crac_get_irat_preference(void);
+
+extern kal_bool l4crac_is_reported_rat_change_finished();
+
+extern rat_enum l4crac_get_egmc_disable_rat_mode(void);
+
+//#ifdef __KOR_CUSTOMIZATION__
+extern plmn_id_struct l4crac_get_rplmn(void);    /* Get RPLMN */
+
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+#if defined(__GSM_RAT__) || defined(__UMTS_RAT__)
+extern gprs_transfer_preference_enum l4crac_get_gprs_transfer_preference(void);
+extern void l4crac_set_gprs_transfer_preference(gprs_transfer_preference_enum transfer_perference);
+#endif /* defined(__GSM_RAT__) || defined(__UMTS_RAT__) */
+#endif
+
+//#ifdef __PLMN_LIST_PREF_SUPPORT__
+extern plmn_list_preference_enum l4crac_get_plmn_list_preference(void);
+extern void l4crac_set_plmn_list_preference(plmn_list_preference_enum preference);
+//#endif /* __PLMN_LIST_PREF_SUPPORT__ */
+
+//#ifdef __HSPA_PREFERENCE_SETTING__
+void l4crac_set_hspa_preference(hspa_preference_enum hspa_preference);
+hspa_preference_enum l4crac_get_hspa_preference(void);
+//#endif /* __HSPA_PREFERENCE_SETTING__ */
+
+extern rat_enum l4crac_get_current_rat(void); //mtk02475: for ECC retry other RAT feature
+extern rat_enum l4crac_get_current_camped_rat(void);
+extern rat_enum l4crac_get_nvram_rat_mode(void); //mtk02475: for ECC retry other RAT feature
+// #ifdef __GEMINI__ //__GEMINI_3G_SWITCH__
+extern void l4crac_update_nvram_rat_mode(rat_enum nvram_rat_mode, sim_interface_enum sim_id); //mtk02475: for 3G switchable feature
+// #endif
+//mtk02475: for AT%CAMP, L4C need to query current CS domain service status
+extern l4c_rac_response_enum l4crac_get_gsm_status(void); //rx_level need
+
+extern kal_bool l4crac_is_on_hplmn(void); //mtk02475: for EHPLMN, modem will provide the information of roaming
+
+#ifdef __GEMINI__ //__GEMINI_MONITOR_PAGE_DURING_TRANSFER__
+extern kal_bool l4crac_get_peer_gprs_transfer_preference(void);
+extern void l4crac_set_peer_gprs_transfer_preference(kal_bool peer_transfer_perference);
+#endif
+
+extern kal_uint16 l4crac_get_rnc_id(void);
+
+#ifdef __CSG_SUPPORT__
+//mtk02475: for Rel8 CSG autonomous search
+extern kal_bool l4crac_get_csg_auto_search_preference(void);
+extern void l4crac_set_csg_auto_search_preference(kal_bool preference);
+extern kal_bool l4crac_get_csg_info(csg_info_struct *csg_info);
+#endif /* __CSG_SUPPORT__ */
+
+extern kal_bool l4crac_get_roaming_mode(void);
+extern rat_enum l4crac_get_reported_rat(void);
+
+extern kal_bool l4crac_get_roaming_setting(roaming_setting_enum setting);
+extern void l4crac_set_roaming_setting(roaming_setting_enum setting, kal_bool is_turn_on);
+
+#ifdef __LTE_RAT__
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_ue_mode
+ *
+ * DESCRIPTION
+ *  get the current UE mode of operation
+ *
+ * PARAMETERS
+ *  runtime_ue_mode_ptr [OUT]   runtime ue mode
+ *  nvram_ue_mode_ptr   [OUT]   nvram ue mode
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_ue_mode(ue_mode_enum *runtime_ue_mode_ptr, ue_mode_enum *nvram_ue_mode_ptr);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_test_ue_mode
+ *
+ * DESCRIPTION
+ *  get the supported UE mode of operation
+ *
+ * PARAMETERS
+ *  is_basic    [IN]    if AT CMD is basic or not
+ *                      basic - AT+CEMODE
+ *                      exteneded - AT+EEMODE
+ *  buffer      [OUT]   buffer pointer to pointer
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_test_ue_mode(kal_bool is_basic, const kal_uint8 **buffer);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_sms_preference
+ *
+ * DESCRIPTION
+ *  get the current SMS preference
+ *
+ * PARAMETERS
+ *  sms_preference_ptr  [OUT]   SMS preference
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_sms_preference(l4c_rac_sms_preference_enum *sms_preference_ptr);
+
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_sms_over_sgs_config
+ *
+ * DESCRIPTION
+ *  get the enable/disable configuration of SMS over SGs
+ *
+ * PARAMETERS
+ *  none
+ *
+ * RETURNS
+ *  KAL_TRUE        - enable
+ *  KAL_FALSE       - disable
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_sms_over_sgs_config(void);
+
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_test_sms_preference
+ *
+ * DESCRIPTION
+ *  get the supported SMS preference
+ *
+ * PARAMETERS
+ *  buffer  [OUT]   buffer pointer to pointer
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_test_sms_preference(const kal_uint8 **buffer);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_ue_usage_setting
+ *
+ * DESCRIPTION
+ *  get the current UE's usage setting
+ *
+ * PARAMETERS
+ *  ue_usage_setting_ptr    [OUT]   UE's usage setting
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_ue_usage_setting(ue_usage_setting_enum *ue_usage_setting_ptr);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_test_ue_usage_setting
+ *
+ * DESCRIPTION
+ *  get the supported UE's usage setting
+ *
+ * PARAMETERS
+ *  buffer  [OUT]   buffer pointer to pointer
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_test_ue_usage_setting(const kal_uint8 **buffer);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_ims_voice_availability
+ *
+ * DESCRIPTION
+ *  get the current availability of IMS voice
+ *
+ * PARAMETERS
+ *  ims_voice_availability_ptr  [OUT]   availability of IMS voice
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_ims_voice_availability(kal_bool *ims_voice_availability_ptr);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_test_ims_voice_availability
+ *
+ * DESCRIPTION
+ *  get the supported availability of IMS voice
+ *
+ * PARAMETERS
+ *  buffer  [OUT]   buffer pointer to pointer
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_test_ims_voice_availability(const kal_uint8 **buffer);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_ims_sms_availability
+ *
+ * DESCRIPTION
+ *  get the current availability of IMS SMS
+ *
+ * PARAMETERS
+ *  ims_voice_availability_ptr  [OUT]   availability of IMS SMS
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_ims_sms_availability(kal_bool *ims_sms_availability_ptr);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_test_ims_sms_availability
+ *
+ * DESCRIPTION
+ *  get the supported availability of IMS SMS
+ *
+ * PARAMETERS
+ *  buffer  [OUT]   buffer pointer to pointer
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_test_ims_sms_availability(const kal_uint8 **buffer);
+
+#ifdef __VOLTE_SUPPORT__
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_mm_ims_voice_termination
+ *
+ * DESCRIPTION
+ *  get the support of mobile management for IMS voice termination
+ *
+ * PARAMETERS
+ *  mm_ivt_ptr  [OUT]   MM IMS voice termination
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_mm_ims_voice_termination(mm_ims_voice_termination *mm_ivt_ptr);
+#endif /* __VOLTE_SUPPORT__ */
+
+#endif /* __LTE_RAT__ */
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_get_voice_domain_preference
+ *
+ * DESCRIPTION
+ *  get the current voice domain preference
+ *
+ * PARAMETERS
+ *  rat                         [IN]    indicate voice domain preference of UTRAN or E-UTRAN
+ *  voice_domain_preference_ptr [OUT]   voice domain preference
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_get_voice_domain_preference(rat_enum rat, l4_voice_domain_preference_enum *voice_domain_preference_ptr);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_test_voice_domain_preference
+ *
+ * DESCRIPTION
+ *  get the supported voice domain preference
+ *
+ * PARAMETERS
+ *  rat     [IN]    indicate voice domain preference of UTRAN or E-UTRAN
+ *  buffer  [OUT]   buffer pointer to pointer
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_test_voice_domain_preference(rat_enum rat, const kal_uint8 **buffer);
+
+/*****************************************************************************
+ * FUNCTION
+ *  l4crac_send_attach_req
+ *
+ * DESCRIPTION
+ *  force to send attach req to mm/emm
+ *
+ * PARAMETERS
+ *  service [IN]    domain_id_enum to indicate domain_type
+ *
+ * RETURNS
+ *  KAL_TRUE        - success
+ *  KAL_FALSE       - failure
+ *
+ * GLOBALS AFFECTED
+ *  none
+ *
+ *****************************************************************************/
+kal_bool l4crac_send_attach_req(domain_id_enum service);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_set_ue_reattach_setting
+* DESCRIPTION
+*  Decide UE to stay EUTRAN or not when EUTRAN is disable
+*
+* PARAMETERS
+*  is_user_ps_reattach: TRUE/FALSE
+*
+* RETURNS
+*  none
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_set_ue_reattach_setting (kal_bool is_user_ps_reattach);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_ue_reattach_setting
+* DESCRIPTION
+*  Get the configure for UE stay EUTRAN or not when EUTRAN is disable
+*
+* PARAMETERS
+*  none
+*
+* RETURNS
+*  TRUE/FALSE
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_get_ue_reattach_setting (void);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_set_data_service_status
+* DESCRIPTION
+*  relay the user data connection setting to NWSEL
+*
+* PARAMETERS
+*  status: on/off
+*
+* RETURNS
+*  none
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_set_data_service_status(kal_bool status);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_is_ps_attach_always
+* DESCRIPTION
+*  reply auto_attach configure to L4
+*
+* PARAMETERS
+*  none
+*
+* RETURNS
+*  TRUE/FALSE
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_is_peer_ps_attach_always(kal_uint8 sim_interface);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_duplex_mode_setting
+* DESCRIPTION
+*  Get the configure for FDD/TDD setting
+*
+* PARAMETERS
+*  geran_tdma       [OUT]
+*  utran_fdd        [OUT]
+*  utran_tdd_lcr    [OUT]
+*  eutran_fdd       [OUT]
+*  eutran_tdd       [OUT]
+*
+* RETURNS
+*  TRUE/FALSE
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_get_duplex_mode_setting(kal_bool *geran_tdma,
+                                        kal_bool *utran_fdd,
+                                        kal_bool *utran_tdd_lcr,
+                                        kal_bool *eutran_fdd,
+                                        kal_bool *eutran_tdd);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_plmn_for_attach
+* DESCRIPTION
+*  Get the plmn_id received from EMMREG_EPS_ATTACH_NEEDED_IND
+*
+* PARAMETERS
+*  plmn_id_for_attach	[OUT]	plmn_id from EMMREG_EPS_ATTACH_NEEDED_IND
+*  simInterface		[IN]		Which SIM to be used
+*
+* RETURNS
+*  none
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+void l4crac_get_plmn_for_attach(plmn_id_struct *plmn_id_for_attach, sim_interface_enum simInterface);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_current_duplex_mode
+* DESCRIPTION
+*  Get the current Duple mode
+*
+* PARAMETERS
+*
+* RETURNS
+*  rat_duplex_type_enum
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+extern rat_duplex_type_enum l4crac_get_current_duplex_mode(void);
+/*****************************************************************************
+* FUNCTION
+*  l4crac_check_no_or_limited_service
+* DESCRIPTION
+*  Checks if the UE is in Limited or in No service
+*
+* PARAMETERS
+*  none
+* RETURNS
+*  TRUE/FALSE
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+extern kal_bool l4crac_check_no_or_limited_service(void);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_ims_support
+* DESCRIPTION
+*  This function retruns current ims_support or not
+*
+* PARAMETERS
+*
+* RETURNS
+*  TRUE or FALSE
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_get_ims_support(void);
+
+
+extern kal_bool l4crac_is_sim_invalid(void);
+extern void l4crac_set_is_sim_invalid(kal_bool setting);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_ims_support_by_ps_id
+*  l4crac_get_rat_mode_by_ps_id
+* DESCRIPTION
+*  This function retruns current ims_support or not/rat_mode by ps id
+*  ALPS03528285/MOLY00285562
+*
+* PARAMETERS
+*
+* RETURNS
+*  TRUE or FALSE
+* GLOBALS AFFECTED
+*  none
+*****************************************************************************/
+kal_bool l4crac_get_ims_support_by_ps_id (protocol_id_enum ps_id);
+
+rat_enum l4crac_get_rat_mode_by_ps_id (protocol_id_enum ps_id);
+
+/*****************************************************************************
+* FUNCTION
+*  l4crac_get_fplmns
+* DESCRIPTION
+*  Get list of FPLMNs and response to AT command AT+EFPLMN? request
+*  MOLY00293006
+*
+* PARAMETERS
+*  num_of_fplmn   -  to get number of FPLMNs
+*  read_fplmn_ptr -  to get FPLMNs in plmn_id_struct
+*
+* RETURNS
+*  void
+*****************************************************************************/
+extern void l4crac_get_fplmns(kal_uint8 *num_of_fplmn, plmn_id_struct *read_fplmn_ptr);
+
+void l4crac_send_search_ind(nwsel_status_enum nwsel_status);
+
+#ifndef __MTK_TARGET__
+extern void l4crac_ut_set_rat_mode(rat_enum rat_mode);
+#endif /* __MTK_TARGET__ */
+
+kal_bool rac_ug_check_is_abnormal_lu(mm_cause_enum cause);
+
+
+rat_enum l4crac_get_prefer_rat_by_ps_id (protocol_id_enum ps_id);
+
+extern void l4crac_reset_is_set_rat_triggered_by_ps_id(protocol_id_enum ps_id);
+extern void l4crac_set_deep_sleep_mode(protocol_id_enum ps_id, kal_bool is_deep_sleep_mode);
+
+
+extern kal_bool rac_is_vg_option_setting_valid(vg_option_enum target_vg_option_bitmap);
+
+extern kal_bool l4crac_save_vg_option(vg_option_enum vg_option_bitmap);
+
+#endif /* _L4CRAC_FUNC_H */
+
diff --git a/mcu/protocol/layer4/l4/include/layer4_init.h b/mcu/protocol/layer4/l4/include/layer4_init.h
new file mode 100644
index 0000000..71e2d89
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/layer4_init.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) 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_init.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 _LAYER4_INIT_H
+#define _LAYER4_INIT_H
+
+
+extern kal_bool layer4_init (void);
+
+extern kal_bool layer4_init_context (void);
+
+#endif /* layer4_init.h */
+
diff --git a/mcu/protocol/layer4/l4/include/mbmsal_defs.h b/mcu/protocol/layer4/l4/include/mbmsal_defs.h
new file mode 100644
index 0000000..68eca4f
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/mbmsal_defs.h
@@ -0,0 +1,459 @@
+/*****************************************************************************
+*  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) 2014
+*
+*  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:
+ * ---------
+ * mbmsal_defs.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ * The common header files in MBMSAL sub-module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ****************************************************************************/
+
+/****************************************************************************/
+/*! @file mbmsal_defs.h
+    @author Stan Chen
+    @date 11 JUL 2014
+
+    @brief The common header file in MBMSAL sub-module.
+
+    The header file is used by all components in MBMSAL, even in l4c_mbms and
+    rmmi_mbms. Common macros, constant definitions and structure prototypes
+    are placed here.
+*/
+/****************************************************************************/
+
+#ifndef _MBMSAL_DEFS_H
+#define _MBMSAL_DEFS_H
+/****************************************************************************/
+
+#include "kal_public_api.h"
+
+#include "mcd_l3_inc_struct.h"
+#include "mbmsal_errc_struct.h"
+#include "l4c_common_enum.h"
+#include "ps_public_utility.h"
+#include "l3_inc_enums.h"
+
+/****************************************************************************
+ * Definitions
+ ****************************************************************************/
+
+#define MBMSAL_ASSERT           ASSERT
+#define MBMSAL_DBG_ASSERT       DEBUG_ASSERT
+
+#define MBMSAL_FORCE_OUTPUT     KAL_TRUE
+
+#define MBMSAL_ERRC_NOCHANGE    0xFF
+
+#define MBMSAL_ERRC_INVALID8    0xFF
+#define MBMSAL_ERRC_INVALID16   0xFFFF
+
+#define MBMSAL_RMMI_MAX_UART_LEN        (1024)
+
+#define MBMSAL_DEACT_CAUSE_NORMAL       (0)
+#define MBMSAL_DEACT_CAUSE_ACTFAIL      (1)
+#define MBMSAL_DEACT_CAUSE_SESSIONLOST  (2)
+#define MBMSAL_DEACT_CAUSE_NONMBMSAREA  (3)
+#define MBMSAL_DEACT_CAUSE_LEAVELTE     (4)
+
+/* Subcause for activation failed */
+#define MBMSAL_ACT_FAIL_CAUSE_RESERVED              (0)
+#define MBMSAL_ACT_FAIL_CAUSE_UNKNOWN               (1)
+#define MBMSAL_ACT_FAIL_CAUSE_ALREADY_DONE          (2)
+#define MBMSAL_ACT_FAIL_CAUSE_SERVICE_DISABLED      (3)
+#define MBMSAL_ACT_FAIL_CAUSE_MISSING_CONTROL_INFO  (4)
+#define MBMSAL_ACT_FAIL_CAUSE_MISSING_TMGI          (5)
+#define MBMSAL_ACT_FAIL_CAUSE_MISSING_OOC           (6)
+#define MBMSAL_ACT_FAIL_CAUSE_MISSING_OOS           (7)
+#define MBMSAL_ACT_FAIL_CAUSE_FREQUENCY_CONFLICT    (8)
+#define MBMSAL_ACT_FAIL_CAUSE_MAXIMUM_SESSIONS      (9)
+
+#ifdef MBMS_CONFIG_INFO_SERVICE_NUM
+#if MBMS_CONFIG_INFO_SERVICE_NUM > 32
+#error MBMSAL cannot handle MBMS_CONFIG_INFO_SERVICE_NUM larger than 32.
+#endif
+#endif
+
+#define MBMSAL_MAX_LTEBAND  (64)
+
+#define MBMSAL_TST_AUTO_RESUME_MAX_SESSION  (16)
+
+#define MBMSAL_EMSLU_MAX_SESSION_NUM (MBMS_CONFIG_INFO_SERVICE_NUM * 3)
+
+#define MBMSAL_SIM_DEFAULT      (0xFF)
+
+#ifdef __GEMINI_LTE__
+#define MBMSAL_MAX_SIM_NUM      (2)
+#else
+#define MBMSAL_MAX_SIM_NUM      (1)
+#endif
+
+#define MBMSAL_PS_DEFAULT      (0xFF)
+
+/****************************************************************************
+ * Macro
+ ****************************************************************************/
+
+#define MBMSAL_BCD_DECODE(_n)   (((_n) & 0x0F) * 10 + ((_n) >> 4))
+
+/****************************************************************************
+ * Type definitions
+ ****************************************************************************/
+
+typedef enum
+{
+    MBMSAL_PCELL,
+    MBMSAL_SCELL,
+} mbmsal_cell_type;
+
+typedef enum
+{
+    MBMSAL_ACTION_SEND_EMSAIL_URC,
+    MBMSAL_ACTION_SEND_EMFRQ_URC,
+    MBMSAL_ACTION_SEND_EMSRV_URC,
+    MBMSAL_ACTION_SEND_EMSLU_URC,
+    MBMSAL_ACTION_SEND_EMSESS_URC,
+} mbmsal_action_type;
+
+typedef enum
+{
+    MBMSAL_COVERAGE_NO_SERVICE,
+    MBMSAL_COVERAGE_IN_LTE,
+    MBMSAL_COVERAGE_IN_MBMS,
+    MBMSAL_COVERAGE_IN_E911,
+    MBMSAL_COVERAGE_IN_SRLTE,
+    MBMSAL_COVERAGE_IN_FLIGHT_MODE,
+    MBMSAL_COVERAGE_IN_GEMINI_SUSPEND,
+    MBMSAL_COVERAGE_IN_GEMINI_VIRTUAL_SUSPEND
+} mbmsal_coverage_enum;
+
+typedef enum
+{
+    MBMSAL_EVENT_SCENARIO_NONE,
+    MBMSAL_EVENT_SCENARIO_E911,
+    MBMSAL_EVENT_SCENARIO_SRLTE,
+} mbmsal_event_scenario_enum;
+
+typedef enum
+{
+    MBMSAL_EVENT_STATUS_END,
+    MBMSAL_EVENT_STATUS_BEGIN,
+} mbmsal_event_status_enum;
+
+typedef enum
+{
+    MBMSAL_EMTSI_TYPE_NONE,
+    MBMSAL_EMTSI_TYPE_SIB16,
+    MBMSAL_EMTSI_TYPE_NITZ,
+} mbmsal_emtsi_type_enum;
+
+typedef enum
+{
+    MBMSAL_EMSESSCFG_INDEX_NONE = 0,
+    MBMSAL_EMSESSCFG_INDEX_TMGI_SEARCH_TIME = 1,
+    MBMSAL_EMSESSCFG_INDEX_INVALID,
+} mbmsal_emsesscfg_index_enum;
+
+typedef struct _mbmsal_tst_info
+{
+    struct {
+        kal_bool    isEnabled;
+        kal_uint8   last_index;
+        kal_uint8   num;
+        struct mbmsal_tst_resume_servsess_info {
+            tmgi_struct tmgi;
+            kal_uint16 sess_id; /* 0xffff = invalid */
+            kal_bool additional_info_valid;
+            struct {
+                kal_uint8 num_of_earfcn;
+                kal_uint32 earfcn[MBMS_SERVSESS_INFO_EARFCN_NUM];
+                kal_uint8 num_of_sai;
+                kal_uint16 sai[MBMS_SERVSESS_INFO_SAI_NUM];
+            } additional_info;
+        } servsess_info[MBMSAL_TST_AUTO_RESUME_MAX_SESSION];
+    } auto_resume;
+} mbmsal_tst_info;
+
+typedef struct _mbmsal_gtest_fp
+{
+    kal_bool (*msg_send5)(module_type _src_mod_id, module_type _dest_mod_id,
+        sap_type _sap_id, msg_type _msg_id,
+        local_para_struct *_local_para_ptr);
+
+    void (*rmmi_write_to_uart)(kal_uint8 *buffer, kal_uint16 length,
+        kal_bool stuff);
+    void (*rmmi_final_rsp_generator)(kal_bool ret_val, kal_uint8 *buffer,
+        kal_uint16 string_length);
+
+    kal_bool (*sbp_query_md_feature)(sbp_md_feature_enum feature);
+    kal_uint32 (*kal_get_systicks)(void);
+    rat_enum (*get_rat_mode)(void);
+    rat_enum (*get_request_rat_mode)(void);
+
+    void (*query_LteBand)(kal_uint32  lte_band[]);
+
+} mbmsal_gtest_fp;
+
+/****************************************************************************/
+
+typedef struct _mbms_config_req_info
+{
+    kal_bool    isValid;
+    mbmsal_errc_mbms_config_req_struct info;
+} mbms_config_req_info;
+
+typedef struct _mbms_sib13_servsess_info
+{
+    tmgi_struct tmgi;
+    kal_uint16 sess_id; /* 0xffff = invalid */
+    kal_bool status;
+} mbms_sib13_servsess_info;
+
+typedef struct _mbms_sib13_mbsfn_mch_info {
+    kal_bool isValid;
+    kal_uint8 mbsfn_area_id;
+    kal_uint16  servsess_count;
+    mbms_sib13_servsess_info servsess_info[MBMS_CONFIG_INFO_MCH_NUM * MBMS_CONFIG_INFO_SERVICE_NUM];
+} mbms_sib13_mbsfn_mch_info;
+
+typedef struct _mbms_service_info
+{
+    kal_uint8   validity;
+
+    kal_bool    isEmsrvOn;
+    kal_bool    isEmfrqOn;
+    kal_bool    isEmsluOn;
+
+    mbmsal_errc_mbms_status_enum coverage_status;
+    kal_bool    serving_earfcn_valid[ERRC_MBMS_MAX_CELL_NUM];
+    kal_uint32  serving_earfcn[ERRC_MBMS_MAX_CELL_NUM];
+
+    kal_uint8   num_of_mbsfn_area_id[ERRC_MBMS_MAX_CELL_NUM];
+    kal_uint8   mbsfn_area_id[ERRC_MBMS_MAX_CELL_NUM][MBMS_SERVICE_STATUS_MBSFN_AREA_NUM];
+
+    mbms_sib13_mbsfn_mch_info mbsfn_mch_info[ERRC_MBMS_MAX_CELL_NUM][MBMS_SERVICE_STATUS_MBSFN_AREA_NUM];
+} mbms_sib13_info;
+
+typedef struct _mbms_sib15_info
+{
+    kal_bool    isValid;
+    kal_bool    isEmsailOn;
+    mbmsal_errc_mbms_sib15_ind_struct info;
+
+    /* Support to Band 256 */
+    kal_uint32  lte_band[8];
+} mbms_sib15_info;
+
+typedef struct _mbms_sib16_info
+{
+    kal_bool    isValid;
+    mbmsal_errc_mbms_sib16_ind_struct info;
+} mbms_sib16_info;
+
+typedef struct _mbms_nw_time_info
+{
+    kal_bool    time_zone_valid;
+    nw_time_zone_time_struct time_zone;
+
+    kal_bool    daylight_saving_time_valid;
+    kal_uint8   daylight_saving_time;
+} mbms_nw_time_info;
+
+typedef struct _mbms_servsess_info
+{
+    kal_bool    isValid;
+
+    kal_bool act_servsess_valid;
+    struct {
+        kal_bool valid;
+        tmgi_struct tmgi;
+        kal_uint16 sess_id; /* 0xffff = invalid */
+    } act_servsess[MBMS_SERVSESS_STATUS_SERVICE_NUM];
+
+    kal_uint8   report_servsess_total;
+    kal_uint8   report_servsess_index;
+
+    kal_bool    report_servsess_activated;
+    kal_uint8   report_servsess_cause;
+    kal_uint8   report_servsess_subcause;
+    struct {
+        tmgi_struct tmgi;
+        kal_uint16 sess_id; /* 0xffff = invalid */
+    } report_servsess;
+
+} mbms_servsess_info;
+
+typedef struct _mbms_signal_info
+{
+    kal_bool    isValid;
+    mbmsal_errc_mbms_info_ind_struct info;
+} mbms_signal_info;
+
+typedef struct _mbms_binding_info
+{
+    kal_uint8           embind_src_id;    /*!< store l4c src id under embind
+                                                 procedure */
+    kal_bool            isEnabled;
+    l4c_tcm_l2p_enum    l2p_type;
+    kal_uint32          channel_id;
+    kal_uint32          netif_id;
+    kal_uint8 bind_ps;
+} mbms_binding_info;
+
+typedef struct _mbmsal_config_para
+{
+    kal_uint32  out_mbms_hysteresis_period;
+    kal_uint32  out_sess_hysteresis_period;
+    kal_uint32  in_mbms_hysteresis_period;
+
+} mbmsal_config_para;
+
+typedef struct _mbmsal_event_para
+{
+    mbmsal_event_scenario_enum scenario;
+    mbmsal_event_status_enum status;
+} mbmsal_event_para;
+
+typedef struct _mbmsal_emslu_data
+{
+    kal_uint32 total_servsess;
+    kal_uint8 *p_data;
+} mbmsal_emslu_data;
+
+typedef struct _mbmsal_emsesscfg_para
+{
+    kal_uint32 index;
+    kal_uint32 para_1;
+} mbmsal_emsesscfg_para;
+
+typedef struct _mbmsal_context
+{
+    kal_uint8               sim_current;
+    kal_uint8               sim_ongoing;
+
+    // MBMSAL configurations
+    kal_uint16              id;             /*!< context ID */
+
+    kal_bool                gtest_isOn;     /*!< gtest flag */
+    mbmsal_gtest_fp         *gtest_fp;      /*!< gtest function pointers */
+
+    // MBMSAL instances
+    mbms_binding_info       info_binding;   /*!< cache hif binding info from
+                                                 TE */
+
+    mbms_config_req_info    info_config_req;/*!< cache config request from
+                                                 TE */
+    mbms_servsess_info      info_servsess;  /*!< cache session status from
+                                                 eRRC */
+    mbms_sib13_info         info_sib13;     /*!< cache sib13 info from eRRC */
+    mbms_sib15_info         info_sib15;     /*!< cache sib15 info from eRRC */
+    mbms_sib16_info         info_sib16;     /*!< cache sib16 info from eRRC */
+    mbms_nw_time_info       info_nw_time;   /*!< cache NW time info from L4C */
+
+    // VZW: Configuration Parameters
+    mbmsal_config_para      para_config;
+
+    // AT+EMEVT related
+    mbmsal_event_para       para_event;
+
+    // MBMSAL tst related
+    mbmsal_tst_info         info_tst;
+
+    mbmsal_coverage_enum    last_mbms_status;
+    kal_uint32              last_frq[ERRC_MBMS_MAX_CELL_NUM + 1];
+    mbmsal_emslu_data       last_emslu_data;
+
+    // SIM cfun states updated by L4
+    kal_uint8               mbmsal_cfun_state[MBMSAL_MAX_SIM_NUM];
+
+    // For NITZ elapse time calculation 
+    kal_uint32              mbmsal_systicks;
+
+    // For TC10 Signal strength report
+    mbms_signal_info      info_signal;
+
+} mbmsal_context;
+
+typedef struct _mbmsal_internal_ind
+{
+    LOCAL_PARA_HDR
+
+    mbmsal_action_type  action;
+    mbms_servsess_info  info;
+    kal_bool            force_report;
+} mbmsal_internal_ind_struct;
+
+/****************************************************************************
+ * Macros
+ ****************************************************************************/
+
+/*#define mbmsal_trace(...)       kal_brief_trace(__VA_ARGS__)*/
+
+#ifndef __GTEST_ENABLE__
+#define mbmsal_mem_alloc(size)  get_ctrl_buffer(size)
+#define mbmsal_mem_free(ptr)    free_ctrl_buffer(ptr)
+#else
+#define mbmsal_mem_alloc(size)  mbmsal_tst_mem_alloc(size)
+#define mbmsal_mem_free(ptr)    mbmsal_tst_mem_free(ptr)
+
+extern void* mbmsal_tst_mem_alloc(kal_uint32 size);
+extern void mbmsal_tst_mem_free(void *buf);
+#endif
+
+/****************************************************************************
+ * Unit Test
+ ****************************************************************************/
+
+#ifdef __GTEST_ENABLE__
+#define STATIC
+#else
+#define STATIC  static
+#endif
+
+/****************************************************************************/
+#endif /* _MBMSAL_DEFS_H */
+
diff --git a/mcu/protocol/layer4/l4/include/psdm2l4c_func.h b/mcu/protocol/layer4/l4/include/psdm2l4c_func.h
new file mode 100644
index 0000000..e324823
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/psdm2l4c_func.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:
+ * ---------
+ * PSDM2L4C_FUNC.H
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file provide utility functions of PSDM to 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _PSDM2L4C_FUNC_H
+#define _PSDM2L4C_FUNC_H
+
+#include "kal_public_defs.h"
+#include "psdm2l4c_enum.h"
+#include "psdm2l4c_struct.h"
+
+extern void psdm_get_mmdc_config_param(
+        psdm_switch_pref_struct * switch_pref,
+        psdm_threshold_config_struct * threshd_conf,
+        psdm_timer_config_struct * timer_conf,
+        kal_bool * is_bgs_enable);
+
+
+#endif /* _PSDM2L4C_FUNC_H */
+
+
diff --git a/mcu/protocol/layer4/l4/include/rmmi_common_enum.h b/mcu/protocol/layer4/l4/include/rmmi_common_enum.h
new file mode 100644
index 0000000..b37c326
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/rmmi_common_enum.h
@@ -0,0 +1,1123 @@
+/*****************************************************************************
+*  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_common_enum.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 _RMMI_COMMON_ENUM_H
+#define _RMMI_COMMON_ENUM_H
+#ifdef __CMUX_SUPPORT__
+#include "cmux_vp_num.h"
+#endif
+
+#include "csmss_common_enums.h"
+#include "smu_common_enums.h"
+#include "ps_public_enum.h"
+#include "layer4_context.h"
+#include "atp_public_defs.h"
+#include "l4c_common_enum.h"
+#if defined(__SMART_PHONE_MODEM__) || defined(__AGPS_SUPPORT__)
+#include "agps_md_interface.h"
+#endif
+
+//For feature phone project which need long AT command support
+#if defined (__LONG_AT_CMD_SUPPORT__)||defined (__SMART_PHONE_MODEM__)//(__AGPS_SUPPORT__)
+#define MAX_DATA_QUEUE_LENGTH       2048
+#elif defined (__ULC_AT__)
+#define MAX_DATA_QUEUE_LENGTH       192
+#elif defined (__SLIM_AT__)
+#define MAX_DATA_QUEUE_LENGTH       350
+#elif defined (__GATI_ENABLE__)||defined (__GAS_SUPPORT__)
+#define MAX_DATA_QUEUE_LENGTH	1500
+#else
+#define MAX_DATA_QUEUE_LENGTH       2048
+#endif
+
+#if defined(__DISABLE_SIM2_AT_SUPPORT__)
+#define RMMI_MAX_SIM_NUM      (1)
+#else
+#define RMMI_MAX_SIM_NUM      (L4_MAX_SIM_NUM)
+#endif
+
+//mtk00924: output queue
+//#define MAX_DATA_OUTPUT_QUEUE_LENGTH       2048
+
+#define MAX_UART_LENGTH             128
+
+#ifdef __TC01__
+#define RMMI_MAX_EXT_CMD_NAME_LEN   12
+#else
+#define RMMI_MAX_EXT_CMD_NAME_LEN   10
+#endif
+
+#define RMMI_MAX_ERR_STR_LEN        80
+//#define RMMI_MAX_ERROR_NUM          256
+#define RMMI_MAX_ERROR_NUM          160
+
+#define RMMI_MAX_ARG_NUM            16
+
+#define RMMI_VALIDATOR_ERROR        255
+#define RMMI_DEF_VALUE              0
+
+#define RMMI_SHORT_RSP_LEN          80
+
+#define RMMI_MAX_MELODY_LEN         64
+
+#define RMMI_EXTEND_SYMBOL_HASH_BASE 79235168           // 38^5
+
+#define RMMI_MAX_MSG_BASED_AT_CHANNEL 20
+
+#define CMCC_AT_CMD_MAIN_VER   2
+#define CMCC_AT_CMD_MAJOR_VER  0
+#define CMCC_AT_CMD_MINOR_VER  0
+
+
+#ifdef __SMS_ADDR_INTERNATIONAL_FORMAT__
+#define SMS_ADDR_INTERNATIONAL_TYPE    0x91
+#endif
+
+#ifndef __MTK_TARGET__
+#define EXCGLA_APDU_SPLIT_MAX_LEN                  (200) /* bytes UT case*/
+#else
+#define EXCGLA_APDU_SPLIT_MAX_LEN                  (400) /* bytes */
+#endif
+
+#define RMMI_MAX_TIME_STR_LEN       25
+
+/*
+* this enum is used to caculate the value of RMMI_MAX_CHANNEL_NUMBER
+* Please don't remove any constant if you just think that it is not used in the code.
+*/
+enum
+{
+        RMMI_FIRST_CHANNEL,
+
+        RMMI_CMUX_CHANNELS_START = RMMI_FIRST_CHANNEL,
+        RMMI_CMUX_CHANNELS_END = RMMI_CMUX_CHANNELS_START + L4B_MAX_CHANNEL_NUMBER-1,
+
+    #if defined(__SMART_PHONE_MODEM__) && !defined(__LBS_LIO_SUPPORT__)//(__AGPS_SUPPORT__)
+        RMMI_GPS_CCCI_CHANNEL, //not exactly map to uart_port_gps_ccci, just make sure the amount of channel is sufficient
+    #endif
+
+    #ifdef __HIF_CCISM_SCP_SUPPORT__
+        RMMI_SCP_CCCI_CHANNEL,
+    #endif
+        RMMI_MAX_CHANNEL_NUMBER
+};
+
+
+
+enum
+{
+    RMMI_CHANNEL_ID_AGPS = 0,
+    RMMI_CHANNEL_ID_SCP,
+    RMMI_CHANNEL_ID_DUMP,
+    RMMI_CHANEEL_ID_MAX
+};
+
+//#if (RMMI_MAX_CHANNEL_NUMBER > 9) //from RMMI_SRC to RMMI_9 and exclude RMMI_SAT
+//#error rmmi source number is less than UART port number!!
+//#endif /* __USB_MULTIPLE_COMPORT_SUPPORT__, mtk02285_usb2 */
+
+enum
+{
+#if defined(__LONG_MULTIPLE_CMD_SUPPORT__)
+    MAX_MULTIPLE_CMD_INFO_LEN = 350,
+#elif defined(__SLIM_AT__)
+    /* mtk01616_100112: Only support multiple basic cmd(ex:ATL will use),no multiple extended cmd. 20 shall be enough */
+    MAX_MULTIPLE_CMD_INFO_LEN = 20,
+#else
+    MAX_MULTIPLE_CMD_INFO_LEN = 40,
+#endif
+    MAX_PRE_ALLOCATED_BASIC_CMD_STRUCT_NODES = 3
+};
+
+typedef enum
+{
+    RMMI_NONE_PRESENT = 0,
+    RMMI_EXTENDED_COMMAND_PRESENT,
+    RMMI_BASIC_COMMAND_PRESENT,
+    RMMI_WRONG_PREV_COMMAND,
+    RMMI_EXECUTION_COMMAND_PRESENT
+} rmmi_cmd_present_enum;
+
+typedef enum
+{
+    RMMI_ECHO_OFF,
+    RMMI_ECHO_ON
+} rmmi_cmd_echo_enum;
+
+typedef enum
+{
+    RMMI_INVALID_CMD_TYPE = 0,
+    RMMI_PREV_CMD,
+    RMMI_BASIC_CMD,
+    RMMI_EXTENDED_CMD,
+    RMMI_EXTENDED_CUSTOM_CMD,  // __RMMI_EXTEND_CUSTOM_CMD__
+    RMMI_CUSTOMER_CMD
+} rmmi_cmd_type_enum;
+
+typedef enum
+{
+    RMMI_EXTEND_HASH_PLUS = RMMI_EXTEND_SYMBOL_HASH_BASE*0,             // + : 0*38^5
+    RMMI_EXTEND_HASH_HAT = RMMI_EXTEND_SYMBOL_HASH_BASE*1,              // ^ : 1*38^5
+    RMMI_EXTEND_HASH_PERCENT = RMMI_EXTEND_SYMBOL_HASH_BASE*2,       // % : 2*38^5
+    RMMI_EXTEND_HASH_MONEY = RMMI_EXTEND_SYMBOL_HASH_BASE*3,         // $ : 3*38^5
+    RMMI_EXTEND_HASH_STAR = RMMI_EXTEND_SYMBOL_HASH_BASE*4          // * : 4*38^5
+} rmmi_extend_symbol_hash_enum;
+
+typedef enum
+{
+    RMMI_WRONG_MODE,
+    RMMI_SET_OR_EXECUTE_MODE,
+    RMMI_READ_MODE,
+    RMMI_TEST_MODE,
+    RMMI_ACTIVE_MODE
+} rmmi_cmd_mode_enum;
+
+typedef enum
+{
+    /* --- standard result codes, defined in V.25 Table1 --- */
+    RMMI_RCODE_OK,                //0
+    RMMI_RCODE_CONNECT,           //1
+    RMMI_RCODE_RING,              //2
+    RMMI_RCODE_NO_CARRIER,        //3
+    RMMI_RCODE_ERROR,             //4
+    //there is no 5 in V.25 spec.
+    //RMMI_RCODE_NO_DIALTONE = 6, //6
+    RMMI_RCODE_BUSY = 7,          //7
+    //RMMI_RCODE_NO_ANSWER = 8,   //8
+
+    /* --- MTK Proprietary result codes --- */
+    RMMI_RCODE_CONNECT_PS = 100, //MAUI_02956467, mtk02285, for PS call
+} rmmi_rsp_type_enum;
+
+typedef enum
+{
+    RMMI_SPACE = ' ',
+    RMMI_EQUAL = '=',
+    RMMI_COMMA = ',',
+    RMMI_SEMICOLON = ';',
+    RMMI_COLON = ':',
+    RMMI_AT = '@',
+    RMMI_HAT = '^',
+    RMMI_DOUBLE_QUOTE = '"',
+    RMMI_QUESTION_MARK = '?',
+    RMMI_EXCLAMATION_MARK = '!',
+    RMMI_FORWARD_SLASH = '/',
+    RMMI_L_ANGLE_BRACKET = '<',
+    RMMI_R_ANGLE_BRACKET = '>',
+    RMMI_L_SQ_BRACKET = '[',
+    RMMI_R_SQ_BRACKET = ']',
+    RMMI_L_CURLY_BRACKET = '{',
+    RMMI_R_CURLY_BRACKET = '}',
+    RMMI_CHAR_STAR = '*',
+    RMMI_CHAR_POUND = '#',
+    RMMI_CHAR_AMPSAND = '&',
+    RMMI_CHAR_PERCENT = '%',
+    RMMI_CHAR_PLUS = '+',
+    RMMI_CHAR_MINUS = '-',
+    RMMI_CHAR_DOT = '.',
+    RMMI_CHAR_ULINE = '_',
+    RMMI_CHAR_TILDE = '~',
+    RMMI_CHAR_REVERSE_SOLIDUS = '\\',
+    RMMI_CHAR_VERTICAL_LINE = '|',
+    RMMI_END_OF_STRING_CHAR = '\0',
+    RMMI_CHAR_0 = '0',
+    RMMI_CHAR_1 = '1',
+    RMMI_CHAR_2 = '2',
+    RMMI_CHAR_3 = '3',
+    RMMI_CHAR_4 = '4',
+    RMMI_CHAR_5 = '5',
+    RMMI_CHAR_6 = '6',
+    RMMI_CHAR_7 = '7',
+    RMMI_CHAR_8 = '8',
+    RMMI_CHAR_9 = '9',
+    RMMI_CHAR_A = 'A',
+    RMMI_CHAR_B = 'B',
+    RMMI_CHAR_C = 'C',
+    RMMI_CHAR_D = 'D',
+    RMMI_CHAR_E = 'E',
+    RMMI_CHAR_F = 'F',
+    RMMI_CHAR_G = 'G',
+    RMMI_CHAR_H = 'H',
+    RMMI_CHAR_I = 'I',
+    RMMI_CHAR_J = 'J',
+    RMMI_CHAR_K = 'K',
+    RMMI_CHAR_L = 'L',
+    RMMI_CHAR_M = 'M',
+    RMMI_CHAR_N = 'N',
+    RMMI_CHAR_O = 'O',
+    RMMI_CHAR_P = 'P',
+    RMMI_CHAR_Q = 'Q',
+    RMMI_CHAR_R = 'R',
+    RMMI_CHAR_S = 'S',
+    RMMI_CHAR_T = 'T',
+    RMMI_CHAR_U = 'U',
+    RMMI_CHAR_V = 'V',
+    RMMI_CHAR_W = 'W',
+    RMMI_CHAR_X = 'X',
+    RMMI_CHAR_Y = 'Y',
+    RMMI_CHAR_Z = 'Z',
+    rmmi_char_a = 'a',
+    rmmi_char_b = 'b',
+    rmmi_char_c = 'c',
+    rmmi_char_d = 'd',
+    rmmi_char_e = 'e',
+    rmmi_char_f = 'f',
+    rmmi_char_g = 'g',
+    rmmi_char_h = 'h',
+    rmmi_char_i = 'i',
+    rmmi_char_j = 'j',
+    rmmi_char_k = 'k',
+    rmmi_char_l = 'l',
+    rmmi_char_m = 'm',
+    rmmi_char_n = 'n',
+    rmmi_char_o = 'o',
+    rmmi_char_p = 'p',
+    rmmi_char_q = 'q',
+    rmmi_char_r = 'r',
+    rmmi_char_s = 's',
+    rmmi_char_t = 't',
+    rmmi_char_u = 'u',
+    rmmi_char_v = 'v',
+    rmmi_char_w = 'w',
+    rmmi_char_x = 'x',
+    rmmi_char_y = 'y',
+    rmmi_char_z = 'z',
+    RMMI_R_BRACKET = ')',
+    RMMI_L_BRACKET = '(',
+    RMMI_MONEY = '$',
+    RMMI_EURO = 0x80   /*to avoid build error due to wcxsubmit issue*/
+} rmmi_char_enum;
+
+typedef enum
+{
+    /* 07.07 Sec 9.2.1 */
+    RMMI_ERR_PHONE_FAILURE,
+    OPERATION_NOT_ALLOWED_ERR = 3,
+    RMMI_ERR_OPERATION_NOT_SUPPORTED = 4,
+    PH_SIM_PIN_REQUIRED = 5,
+   PH_FSIM_PIN_REQUIRED = 6, //Kinki: SIM-ME lock [MAUI_01264994]
+   PH_FSIM_PUK_REQUIRED = 7, //Kinki: SIM-ME lock [MAUI_01264994]
+    SIM_NOT_INSERTED = 10,
+    SIM_PIN_REQUIRED = 11,
+    SIM_PUK_REQUIRED = 12,
+    SIM_FAILURE = 13,
+    SIM_BUSY = 14,
+    SIM_WRONG = 15,
+    INCORRECT_PASSWD = 16,
+    SIM_PIN2_REQUIRED = 17,
+    SIM_PUK2_REQUIRED = 18,
+    RMMI_ERR_MEM_FULL = 20,
+    RMMI_ERR_INVALID_INDEX = 21,
+    RMMI_ERR_NO_FOUND = 22,
+    TEXT_ERRSTRING_TOO_LONG_ERR = 24,
+    INVALID_CHARACTERS_IN_TEXT_ERRSTRING_ERR = 25,
+    DIAL_ERRSTRING_TOO_LONG_ERR = 26,
+    INVALID_CHARACTERS_IN_DIAL_ERRSTRING_ERR = 27,
+    NO_NW_SERVICE = 30,
+    RMMI_ERR_NETWORK_TIMEOUT = 31,
+    RMMI_ERR_NETWORK_NOT_ALLOWED = 32,
+    RMMI_ERR_NW_PERSON_PIN_REQUIRED = 40,
+    RMMI_ERR_NW_PERSON_PUK_REQUIRED = 41,
+    RMMI_ERR_NW_SUB_PERSON_PIN_REQUIRED = 42,
+    RMMI_ERR_NW_SUB_PERSON_PUK_REQUIRED = 43,
+    RMMI_ERR_SP_PERSON_PIN_REQUIRED = 44,
+    RMMI_ERR_SP_PERSON_PUK_REQUIRED = 45,
+    RMMI_ERR_CORP_PERSON_PIN_REQUIRED = 46,
+    RMMI_ERR_CORP_PERSON_PUK_REQUIRED = 47,
+    RMMI_ERR_HIDDEN_KEY_REQUIRED = 48,
+    RMMI_ERR_EAP_NOT_SUPPORT = 49,
+    RMMI_ERR_INCORRECT_PARAM = 50,
+    RMMI_ERR_CMD_IMPLEMENT_BUT_CUR_DISABLED = 51,
+    RMMI_ERR_CMD_ABORT_BY_USER = 52,
+    RMMI_ERR_NOT_ATTACHED_TO_NETWORK = 53,
+    RMMI_ERR_MODEM_NOT_ALLOW = 54,
+    RMMI_ERR_OPERATION_NOT_ALLOW = 55,
+    RMMI_ERR_FIXED_DIAL_NUMBER_ONLY_ALLOW = 56,
+    RMMI_ERR_TEMP_OUT_OF_SERVICE = 57,
+    RMMI_ERR_LANG_NOT_SUPPORT = 58,
+    RMMI_ERR_UNEXPECTED_VALUE = 59,
+    RMMI_ERR_SYSTEM_FAILURE = 60,
+    RMMI_ERR_DATA_MISSING = 61,
+    RMMI_ERR_CALL_BARRED = 62,
+    RMMI_ERR_UNKNOWN = 100,
+
+
+    RMMI_ERR_ILLEGAL_MS = 103,
+    RMMI_ERR_ILLEGAL_ME = 106,
+    RMMI_ERR_GPRS_NOT_ALLOWED = 107,
+    RMMI_ERR_GPRS_NON_GPRS_NOT_ALLOWED = 108,
+    RMMI_ERR_PLMN_NOT_ALLOWED = 111,
+    RMMI_ERR_LA_NOT_ALLOWED = 112,
+    RMMI_ERR_ROAMING_AREA_NOT_ALLOWED = 113,
+    RMMI_ERR_GPRS_NOT_ALLOWED_IN_THIS_PLMN = 114,
+    RMMI_ERR_NO_SUITABLE_CELL = 115,
+    RMMI_ERR_CONGESTION = 122,
+    RMMI_ERR_NOT_AUTH_FOR_CSG = 125,
+
+    RMMI_ERR_INSUFF_RESOURCE = 126,
+    RMMI_ERR_MISSING_APN = 127,
+    RMMI_ERR_UNKNOWN_PDP_ADDR = 128,
+    RMMI_ERR_USER_AUTH_FAIL = 129,
+    RMMI_ERR_ACTIVATION_REJ_BY_GGSN = 130,
+    RMMI_ERR_ACTIVATION_REJ_UNSPECIFIED = 131,
+    RMMI_ERR_SERV_OPTION_NOT_SUPPORTED = 132,
+    RMMI_ERR_REQ_SERV_OPTION_NOT_SUBSCRIBED = 133,
+    RMMI_ERR_SERV_OPTION_TEMP_OUT_OF_ORDER = 134,
+    RMMI_ERR_PTI_ALREADY_IN_USE = 135,
+
+    RMMI_ERR_FEATURE_NOT_SUPPORTED = 140,
+    RMMI_ERR_SEMANTIC_ERR_IN_TFT = 141,
+    RMMI_ERR_SYNTACTICAL_ERR_IN_TFT = 142,
+    RMMI_ERR_UNKNOWN_PDP_CONTEXT = 143,
+    RMMI_ERR_SEMANTIC_ERR_IN_PF = 144,
+    RMMI_ERR_SYNTACTICAL_ERR_IN_PF = 145,
+    RMMI_ERR_PDP_CONTEXT_WO_TFT_ALREADY_ACTIVATED = 146,
+
+    RMMI_ERR_GPRS_UNSPECIFIED_ERROR = 148,
+    RMMI_ERR_PDP_AUTH_FAIL = 149,
+    RMMI_ERR_INVALID_MOBILE_CLASS = 150,
+    RMMI_ERR_LAST_PDN_DISC_NOT_ALLOWED = 171,
+
+    RMMI_ERR_SEMANTICALLY_INCORRECT_MSG = 172,
+    RMMI_ERR_MANDATORY_IE_ERR = 173,
+    RMMI_ERR_IE_NOT_EXIST = 174,
+    RMMI_ERR_COND_IR_ERR = 175,
+    RMMI_ERR_PROTOCOL_ERR_UNSPECIFIED = 176,
+
+    RMMI_ERR_OPERATOR_BARRING = 177,
+    RMMI_ERR_MAXIMUM_PDP_CONTEXT = 178,
+    RMMI_ERR_REQUESTED_APN_NOT_SUPPORTED = 179,
+    RMMI_ERR_REQUEST_REJ_BCM_MODE_VIOLATION = 180,
+    RMMI_ERR_REQUEST_REJ_UNSUPPORTED_QCI_VALUE = 181,
+
+    RMMI_ERROR_DIAL_MODIFIED_TO_DAIL = 246,  /* This is specified for TC09 */
+
+    RMMI_ERR_LINK_NS_SP_PERSON_PIN_REQUIRED = 257, //Kinki: SIM-ME lock [MAUI_01264994]
+    RMMI_ERR_LINK_NS_SP_PERSON_PUK_REQUIRED = 258, //Kinki: SIM-ME lock [MAUI_01264994]
+    RMMI_ERR_LINK_SIM_C_PERSON_PIN_REQUIRED = 259, //Kinki: SIM-ME lock [MAUI_01264994]
+    RMMI_ERR_LINK_SIM_C_PERSON_PUK_REQUIRED = 260, //Kinki: SIM-ME lock [MAUI_01264994]
+
+    /* The following error causes should be added into rmmi_result_code_fmttr() to be displayed in +CME ERROR */
+    RMMI_ERR_VERIFICATION_FAILED = 270,           /* for TMO */
+    RMMI_ERR_REBOOT_REQUIRED = 271,               /* for TMO */
+    RMMI_ERR_SMLRSU_DATA_LENGTH_MISMATCH = 272,
+    RMMI_ERR_SMLRSU_DATA_INVALID = 273,
+
+    /* for Subsidy lock requirement */
+    RMMI_ERR_SL_REBOOT_REQUIRED = 280,
+    RMMI_ERR_SL_BLOB_VALIDATION_FAILED = 281,
+    RMMI_ERR_SL_BLOB_CONFIG_DATA_INVALID = 282,
+    RMMI_ERR_SL_BLOB_IMEI_MISMATCH = 283,
+    RMMI_ERR_SL_BLOB_LENGTH_MISMATCH = 284,
+    RMMI_ERR_SL_BLOB_UNKNOWN_ERROR = 285,
+
+    /* following are proprietary error cause : the cause below WON'T be showed as +CME ERROR. */
+    RMMI_ERR_COMMAND_CONFLICT = 302,    //same as operation not allowed in 07.05 Sec 3.2.5
+    // will be convert to +CME ERROR: 3  or +CMS ERROR: 302
+//#ifdef __TC10__
+    RMMI_ERR_CM_FACILITY_REJECT = 401,
+    RMMI_ERR_SIM_NO_RESPONSE = 402,
+//#endif    
+    RMMI_NO_ERR = 600,
+
+    /* following: error is related to syntax, invalid parameters.. */
+    /* according to spec 07.07 Sec 9.1, only "ERROR" will be returned to TE side */
+    RMMI_ERR_UNRECOGNIZED_CMD = 601,
+    RMMI_ERR_RETURN_ERROR = 602,
+    RMMI_ERR_SYNTEX_ERROR = 603,
+    RMMI_ERR_UNSPECIFIED = 604, //unspecified parsing error
+    RMMI_ERR_DATA_TRANSFER_ALREADY = 605,
+    RMMI_ERR_ACTION_ALREADY = 606,
+    RMMI_ERR_NOT_AT_CMD = 607,
+    RMMI_ERR_MULTI_CMD_TOO_LONG = 608,
+    RMMI_ERR_ABORT_COPS = 609,
+    RMMI_ERR_NO_CALL_DISC = 610,
+    RMMI_ERR_BT_SAP_UNDEFINED = 611,
+    RMMI_ERR_BT_SAP_NOT_ACCESSIBLE = 612,
+    RMMI_ERR_BT_SAP_CARD_REMOVED = 613,
+    RMMI_ERR_AT_NOT_ALLOWED_BY_CUSTOMER = 614,
+    RMMI_ERR_MM_LU_REJ_17_IN_MANUAL_MODE = 615,
+    RMMI_ERR_CARD_TECHNICAL_PROBLEM = 616,
+    RMMI_ERR_BT_SAP_CARD_ALREADY_POWERED_OFF = 617,
+    RMMI_ERR_BT_SAP_CARD_ALREADY_POWERED_ON = 618,
+    RMMI_ERR_RMS_RFON_NOT_ALLOWED = 619,
+    RMMI_ERR_RMS_SIMON_NOT_ALLOWED = 620,
+#ifdef __GEMINI__
+    RMMI_ERR_RSIM_AUTH_PROC_ONGOING = 621
+#endif
+} rmmi_err_id_enum;
+
+typedef enum
+{
+    FAC_NOT_SUPPORTED,
+    SS_FAC_BEGIN = L4_BAOC,
+    SS_FAC_END = L4_BIC,
+#ifdef __MOD_SMU__
+    SIM_FAC_BEGIN = TYPE_CHV1,  /* need to add sim sec type */
+    SIM_FAC_END = TYPE_IMSI_LOCK
+#endif /* __MOD_SMU__ */
+} rmmi_clck_fac_enum;
+
+typedef enum
+{
+    RMMI_PLAY = 1,
+    RMMI_STOP,
+    RMMI_PAUSE,
+    RMMI_RESUME
+} rmmi_audio_mode_enum;
+
+typedef enum
+{
+    CCBS_Interrotage = 14,
+    CCBS_EarseCCEntry = 77
+} rmmi_ccbs_opcode_enum;
+
+typedef enum
+{
+    RMMI_FS_OPEN,
+    RMMI_FS_CLOSE,
+    RMMI_FS_READ,
+    RMMI_FS_WRITE,
+    RMMI_FS_DELETE,
+    RMMI_FS_DIR,
+    RMMI_FS_CREATEDIR,
+    RMMI_FS_DELETEDIR,
+    RMMI_FS_RENAME
+} rmmi_fs_opcode_enum;
+
+typedef enum
+{
+    CSSI_CFU_ACTIVE,
+    CSSI_CFC_ACTIVE,
+    CSSI_CALL_FORWARDED,
+    CSSI_CALL_WAITING,
+    CSSI_CUG_CALL,
+    CSSI_OUTGOING_BARRED,
+    CSSI_INCOMING_BARRED,
+    CSSI_CLIR_REJECTED,
+    CSSI_CALL_DEFLECTED
+} rmmi_cssi_enum;       //refer to 07.07 +CSSN
+
+typedef enum
+{
+    CSSU_FORWARDED_CALL,
+    CSSU_CUG_CALL,
+    CSSU_CALL_HOLD,
+    CSSU_CALL_RETRIEVED,
+    CSSU_MPTY_CALL,
+    CSSU_HOLDCALL_RELEASED,
+    CSSU_FORWARD_CHECK_SS,
+    CSSU_ECT_ALERTING,
+    CSSU_ECT_ACTIVE,
+    CSSU_DEFLECTED_CALL,
+    CSSU_INCOMING_FORWARDED
+} rmmi_cssu_enum;       //refer to 07.07 +CSSN
+
+/* mtk00714 add on 2004/03/02 */
+/* first 10 items (except GPRS_REQ)
+   should be consistant with "l4ccsm_cc_call_mode_enum" */
+typedef enum
+{
+    RMMI_CRING_VOICE,
+    RMMI_CRING_DATA,
+    RMMI_CRING_FAX,
+    RMMI_CRING_VOICE_DATA,
+    RMMI_CRING_ALT_VOICE_DATA,
+    RMMI_CRING_ALT_VOICE_FAX,
+    RMMI_CRING_DATA_VOICE,
+    RMMI_CRING_ALT_DATA_VOICE,
+    RMMI_CRING_ALT_FAX_VOICE,
+    RMMI_CRING_UNKNOWN_TYPE,
+    RMMI_CRING_GPRS,
+    RMMI_CRING_VOICE_AUX,
+    RMMI_CRING_VIDEO
+} rmmi_cring_type_enum;
+
+typedef enum
+{
+    RMMI_DCS_DEFAULT = 0x00,    /* GSM 7-bit */
+    RMMI_DCS_8BIT = 0x04,       /* 8-bit */
+    RMMI_DCS_UCS2 = 0x08        /* UCS2 */
+}
+rmmi_dcs_enum;
+
+typedef enum
+{
+    RMMI_PARSE_OK,
+    RMMI_PARSE_ERROR,   //out of range
+    RMMI_PARSE_NOT_FOUND,
+    RMMI_PARSE_TEXT_TOO_LONG
+} rmmi_validator_cause_enum;
+
+typedef enum
+{
+    RMMI_PHB_NONE,
+    RMMI_PHB_SM,
+    RMMI_PHB_ME,
+    RMMI_PHB_FD,
+    RMMI_PHB_LD,
+    RMMI_PHB_MC,
+    RMMI_PHB_RC,
+    RMMI_PHB_MT,
+    RMMI_PHB_EN,
+    RMMI_PHB_ON,
+    RMMI_PHB_DC,
+    /* mtk02514 ** MAUI_01321633  ** 2009/02/16 **********
+    * for the storage containing LD(DC), MC, RC                                     //mtk02514_la
+    * We only support AT+CPBS, AT+CPBR for the RMMI_PHB_LA
+    ************************************************/
+    RMMI_PHB_LA,
+    RMMI_PHB_SDN,			// MTK proprietory storage type
+} rmmi_phb_type_enum;
+
+typedef enum
+{
+    RMMI_EIND_SMS_READY_BIT,
+    RMMI_EIND_PHB_READY_BIT = 1,
+    RMMI_EIND_PLMN_CHANGED_BIT = 2,
+    RMMI_EIND_EONS_CHANGED_BIT = 3,
+    RMMI_EIND_INVALID_SIM_BIT = 4,
+    RMMI_EIND_PHB_NOT_READY_BIT = 5,
+    RMMI_EIND_TCM_READY_BIT = 6,
+    RMMI_EIND_AT_READY_BIT = 7
+} rmmi_eind_bit_enum;
+
+typedef enum
+{
+    RMMI_ESMLA_BIT,         /* bit 1 is for +ESMLA */
+    RMMI_ECFU_BIT,          /* bit 2 is for +ECFU */
+    RMMI_ECELLINFO_BIT,	    /* bit 3 is for +ECELLINFO */
+    RMMI_ENWINFO_BIT,       /* bit 4 is for +ENWINFO */
+    RMMI_ESPEECH_BIT,       /* bit 5 is for +ESPEECH */
+    RMMI_STKPCI_BIT,        /* bit 6 is for +STKPCI */
+    RMMI_ECIPH_BIT,         /* bit 7 is for +ECIPH */
+    RMMI_EMMRRS_BIT,        /* bit 8 is for +EMMRRS, for GEMINI project, report MMRR service status */
+    RMMI_EPKTFI_BIT,        /* bit 9 is for +EPKTFI, this is for RATDM to notify AP there is packet flush due to RB release, AP will do retransmission */
+    RMMI_EWARNING_BIT,      /* bit 10 is for +EWARNIN */
+    RMMI_STKCTRL_BIT       /* bit 11 is for +STKCTRL */
+
+} rmmi_einfo_bit_enum;
+
+typedef enum
+{
+    RMMI_IMEI_NO_ACTION = 0,
+    RMMI_IMEI_READ,
+    RMMI_IMEI_WRITE,
+    RMMI_IMEI_2_WRITE,
+    RMMI_IMEI_3_WRITE,
+    RMMI_IMEI_4_WRITE
+} rmmi_imei_action_enum;
+
+/* battchg    1 */
+/* signal     2 */
+/* service    3 */
+/* message    4 */
+/* call       5 */
+/* roam       6 */
+/* smsfull    7 */
+/* call_setup 8 */
+
+/*
+ * typedef enum
+ * {
+ * RMMI_CCSR_IDLE,
+ * RMMI_CCSR_CALLING,
+ * RMMI_CCSR_CONNECTING,
+ * RMMI_CCSR_ACTIVE,
+ * RMMI_CCSR_HOLD,
+ * RMMI_CCSR_WAITING,
+ * RMMI_CCSR_ALERTING,
+ * RMMI_CCSR_BUSY
+ *
+ * } rmmi_ccsr_rsp_code_enum;
+ *
+ */
+
+typedef enum
+{
+    RMMI_EADP_NO_ACTION = 0,
+    RMMI_EADP_GET,
+    RMMI_EADP_SET
+} rmmi_eadp_action_enum;
+
+typedef enum
+{
+    RMMI_EAPS_NO_ACION = 0,
+    RMMI_EAPS_GET,
+    RMMI_EAPS_SET,
+    RMMI_EAPS_WB_INPUT_FIR_GET,
+    RMMI_EAPS_WB_INPUT_FIR_SET,
+    RMMI_EAPS_WB_OUTPUT_FIR_GET,
+    RMMI_EAPS_WB_OUTPUT_FIR_SET,
+    RMMI_EAPS_WB_MODE_PARAM_GET,
+    RMMI_EAPS_WB_MODE_PARAM_SET
+} rmmi_eaps_action_enum;
+
+/* For VoIP, call management is controlled by MMI */
+typedef enum
+{
+    RMMI_CM_ATD = 0,
+    RMMI_CM_ATH,
+    RMMI_CM_ATA,
+    RMMI_CM_CHLD,
+    RMMI_CM_BLDN
+} rmmi_cm_action_enum;
+
+/* for +EMMISTR proprietary command */
+typedef enum
+{
+    RMMI_EMMISTR_DISABLE = 0,
+    RMMI_EMMISTR_ENABLE,
+    RMMI_EMMISTR_DATA_FROM_MMI
+} rmmi_emmistr_action_enum;
+
+#if defined(__GEMINI__)
+typedef enum
+{
+    RMMI_EDSIM_READ_FOR_WRITING_0 = 0, // corresponds to +edsim=0
+    RMMI_EDSIM_READ_FOR_WRITING_1, // corresponds to +edsim=1
+    RMMI_EDSIM_READ_FOR_WRITING_2, // corresponds to +edsim=2
+    RMMI_EDSIM_READ_FOR_WRITING_3, // corresponds to +edsim=3
+    RMMI_EDSIM_NORMAL=0xAA,
+    RMMI_EDSIM_WRITING=0xEE,
+    RMMI_EDSIM_READING=0xFF
+} rmmi_edsim_set_mode_state_enum;
+#endif /* defined(__GEMINI__)*/
+
+typedef enum
+{
+    RMMI_SML_BLOB_OP_SL_UPDATE_BLOB = 1,
+    RMMI_SML_BLOB_OP_SL_GET_STATUS = 2,
+    RMMI_SML_BLOB_OP_UPDATE_DEV_LOCK_STATE = 3,
+    RMMI_SML_BLOB_OP_UPDATE_GBLOB = 4,
+    RMMI_SML_BLOB_OP_QUERY_DEV_LOCK = 5,
+
+    RMMI_SML_BLOB_OP_MAX
+} rmmi_sml_blob_op_enum;
+
+typedef enum
+{
+    RMMI_SML_BLOBF_OP_UPDATE_RULE = 1,
+    RMMI_SML_BLOBF_OP_UPDATE_DEV_LOCK_KEY = 2,
+    RMMI_SML_BLOBF_OP_TEST_DEV_LOCK_KEY = 3,
+    RMMI_SML_BLOBF_OP_UPDATE_GBLOB = 4,
+    RMMI_SML_BLOBF_OP_UPDATE_IMEI = 5,
+#ifdef __CUST_SML_RULE__
+    RMMI_SML_BLOBF_OP_UPDATE_CUST_RULE = 6,
+#endif
+
+    RMMI_SML_BLOBF_OP_MAX
+} rmmi_sml_blobf_op_enum;
+
+typedef enum
+{
+    RMMI_SML_NP_CATEGORY,
+    RMMI_SML_NSP_CATEGORY,
+    RMMI_SML_SP_CATEGORY,
+    RMMI_SML_CP_CATEGORY,
+    RMMI_SML_SIM_CATEGORY,
+    RMMI_SML_NS_SP_CATEGORY,
+    RMMI_SML_SIM_CP_CATEGORY,
+
+    RMMI_SML_CATEGORY_SIZE
+} rmmi_sml_catagory_enum;
+
+#ifdef __CARRIER_RESTRICTION__
+typedef enum
+{
+    RMMI_CRRST_N_CATEGORY,
+    RMMI_CRRST_SPN_CATEGORY,
+    RMMI_CRRST_IMSI_PREFIX_CATEGORY,
+    RMMI_CRRST_GID1_CATEGORY,
+    RMMI_CRRST_GID2_CATEGORY
+} rmmi_crrst_catagory_enum;
+#endif
+
+/* mtk01616_090116: for atd> memory dial to distinguish call_type */
+typedef enum
+{
+    RMMI_MEM_DIAL_NONE = 0,
+    RMMI_MEM_DIAL_VOICE = 1,
+    RMMI_MEM_DIAL_DATA = 2
+} rmmi_mem_dial_enum;
+
+//mtk01616_091024: ATCI internal used enum,intended for rmmi_fax_support_check()
+typedef enum
+{
+    RMMI_SERV_CLASS_0   = 0x01,
+    RMMI_SERV_CLASS_1   = 0x02,
+    RMMI_SERV_CLASS_1_0 = 0x04,
+    RMMI_SERV_CLASS_2   = 0x08,
+    RMMI_SERV_CLASS_2_0 = 0x10
+} rmmi_fax_check_type_enum;
+
+typedef enum
+{
+  	RMMI_USM_ATCMD_CGSMS,
+	RMMI_USM_ATCMD_CSCA,
+	RMMI_USM_ATCMD_CSMP,
+	RMMI_USM_ATCMD_CSCB,
+  	RMMI_USM_ATCMD_CMGL,
+  	RMMI_USM_ATCMD_CMGR,
+  	RMMI_USM_ATCMD_CMSS,
+  	RMMI_USM_ATCMD_CMGW,
+  	RMMI_USM_ATCMD_CMGD,
+  	RMMI_USM_ATCMD_CNMI,
+  	RMMI_USM_ATCMD_NULL
+} rmmi_usm_atcmd_enum;
+typedef enum
+{
+	RMMI_USM_DOMAIN_PS_ONLY,
+	RMMI_USM_DOMAIN_CS_ONLY,
+	RMMI_USM_DOMAIN_PS_PREFERRED,
+	RMMI_USM_DOMAIN_CS_PREFERRED,
+	RMMI_USM_DOMAIN_NULL
+} rmmi_usm_domain_enum;
+typedef enum
+{
+  	RMMI_USM_SM = 0,
+  	RMMI_USM_ME = 1,
+  	RMMI_USM_SR = 2,
+  	RMMI_USM_BM =3,
+  	RMMI_USM_TA = 4,
+  	RMMI_USM_SM_PREFER = 5,
+  	RMMI_USM_ME_PREFER = 6,
+  	RMMI_USM_MT = 7,
+  	RMMI_USMSTORAGE_UNSPECIFIED = 7
+} rmmi_usm_memory_enum;
+typedef enum
+{
+  	RMMI_USM_REC_UNREAD = 0,
+	RMMI_USM_REC_READ,
+	RMMI_USM_STO_UNSENT,
+	RMMI_USM_STO_SENT,
+	RMMI_USM_ALL,
+	RMMI_USM_STAT_NULL
+}rmmi_usm_message_stat_enum;
+typedef enum
+{
+  	RMMI_FKPD_PRESS = 0,
+	RMMI_FKPD_RELEASE,
+	RMMI_FKPD_NULL
+}rmmi_fkpd_stat_enum;
+
+typedef enum
+{
+    RMMI_DIAG_FOR_TST = 0,
+    RMMI_DIAG_FOR_AT,
+    RMMI_DIAG_FOR_UNKNOWN = 0xff
+} rmmi_diag_func_enum; /* __USB_MULTIPLE_COMPORT_SUPPORT__, mtk02285_usb2 */
+
+
+typedef enum
+{
+   RMMI_FM_TURN_OFF,
+   RMMI_FM_SET,
+   RMMI_FM_SEARCH_UP,
+   RMMI_FM_SEARCH_DOWN
+}rmmi_fm_opcode_enum;
+
+typedef enum
+{
+   RMMI_CPBW_ENCODE_IRA,
+   RMMI_CPBW_ENCODE_UCS2,
+   RMMI_CPBW_ENCODE_UCS2_81,
+   RMMI_CPBW_ENCODE_UCS2_82,
+   RMMI_CPBW_ENCODE_UCS2_to_GSM,
+   RMMI_CPBW_ENCODE_KSC5601,
+   RMMI_CPBW_ENCODE_MAX
+}rmmi_cpbw_encode_enum;
+
+typedef enum
+{
+    RMMI_EPBUM_EF_ANR,
+    RMMI_EPBUM_EF_EMAIL,
+    RMMI_EPBUM_EF_SNE,
+    RMMI_EPBUM_EF_AAS,
+    RMMI_EPBUM_EF_GAS,
+    RMMI_EPBUM_EF_GRP,
+    RMMI_EPBUM_EF_MAX
+}rmmi_epbum_ef_type_enum;
+
+typedef enum
+{
+    RMMI_EPBUM_OP_QUERY,
+    RMMI_EPBUM_OP_READ,
+    RMMI_EPBUM_OP_WRITE,
+    RMMI_EPBUM_OP_DELETE,
+    RMMI_EPBUM_OP_MAX
+}rmmi_epbum_op_enum;
+
+/* for +CREG, +CGREG */
+typedef enum
+{
+   RMMI_REG_STATE_NOT_REGISTERED=0,
+   RMMI_REG_STATE_REGISTERED,
+   RMMI_REG_STATE_SEARCHING,
+   RMMI_REG_STATE_REG_DENIED,
+   RMMI_REG_STATE_UNKNOWN,
+   RMMI_REG_STATE_ROAMING,
+   RMMI_REG_STATE_SMS_ONLY_HOME,
+   RMMI_REG_STATE_SMS_ONLY_ROAMING,
+   RMMI_REG_STATE_EMERGENCY_ONLY,
+   RMMI_REG_STATE_CSFB_NOT_PREFERRED_HOME,
+   RMMI_REG_STATE_CSFB_NOT_PREFERRED_ROAMING
+} rmmi_reg_state_enum;
+
+typedef enum //for ^ORIG, ^CONF, ^CONN, ^CEND
+{
+    RMMI_MO_STATE_NONE,
+    RMMI_MO_STATE_ORIG,
+    RMMI_MO_STATE_CONF,
+    RMMI_MO_STATE_CONN,
+    RMMI_MO_STATE_CEND
+} rmmi_mo_state_enum;
+
+typedef enum
+{
+    RMMI_MO_CALL_TYPE_VOICE = 0,
+    RMMI_MO_CALL_TYPE_CS_DATA = 1,
+    RMMI_MO_CALL_TYPE_PS_DATA = 2,
+    RMMI_MO_CALL_TYPE_EMERGENCY = 9,
+    RMMI_MO_CALL_TYPE_UNKNOWN
+} rmmi_mo_call_type_enum;
+
+typedef enum
+{
+    CM_CALL_END_OFFLINE = 0, //respond NO CARRIER, no ^CEND
+    CM_CALL_END_NO_SRV = 27, //respond NO CARRIER, no ^CEND
+    CM_CALL_END_CLIENT_END = 29,
+    CM_CALL_END_CONF_FAILED = 101,
+    CM_CALL_END_NETWORK_END = 104
+} rmmi_cm_call_end_status_enum;
+
+typedef enum //refer to clcc_state_enum
+{
+    RMMI_DSCI_STATE_ACTIVE = 0,
+    RMMI_DSCI_STATE_HELD,
+    RMMI_DSCI_STATE_MO_DIALING,
+    RMMI_DSCI_STATE_MO_ALERT,
+    RMMI_DSCI_STATE_MT_INCOMING,
+    RMMI_DSCI_STATE_MT_WAITING,
+    RMMI_DSCI_STATE_CALL_END,
+    RMMI_DSCI_STATE_NONE
+} rmmi_dsci_call_state_enum;
+
+typedef enum
+{
+    RMMI_DSCI_TYPE_VOICE = 0,
+    RMMI_DSCI_TYPE_DATA
+} rmmi_dsci_call_type_enum;
+
+typedef enum
+{
+    RMMI_DSCI_ASYNC = 0,
+    RMMI_DSCI_SYNC,
+    RMMI_DSCI_REL_ASYNC,
+    RMMI_DSCI_REL_SYNC,
+    RMMI_DSCI_UNKNOWN_DATA_TYPE
+} rmmi_dsci_data_type_enum;
+
+typedef enum
+{
+    RMMI_ETWS_IS_NEEDED = 0x01,
+    RMMI_ETWS_IS_SECURITY_NEEDED = 0x02,
+    RMMI_ETWS_IS_TESTING_ON = 0x04,
+    RMMI_ETWS_SETTING_MAX = 0x07    /*Please update this value if adding setting flag*/
+}rmmi_etws_setting_enum;
+
+#if 0 //move to ATP
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+/* refer to DCL_UART_DEV defined in dcl_uart.h */
+    ETSTLP_UART_PORT1,
+    ETSTLP_UART_PORT2,
+    ETSTLP_USB1,
+    ETSTLP_USB2,
+    ETSTLP_DT_PORT
+} rmmi_etstlp_port_enum;
+
+typedef enum
+{
+    RMMI_IPV6_PARSE_TOKEN_OK,
+    RMMI_IPV6_PARSE_SUBNET_OK,
+    RMMI_IPV6_PARSE_ERROR,
+    RMMI_IPV6_PARSE_NOT_FOUND,
+    RMMI_IPV6_PARSE_NOT_FOUND_SUBNET_OK,
+    RMMI_IPV6_PARSE_END
+} rmmi_ipv6_addr_validator_cause_enum;
+
+/* refer to TS 27.007 10.1.30 +CSCON */
+typedef enum
+{
+    RMMI_CSCON_MODE_IDLE = 0,
+    RMMI_CSCON_MODE_CONNECTED,
+
+    RMMI_CSCON_MODE_UNKNOWN = 0xff
+} rmmi_cscon_mode_enum;
+
+typedef enum
+{
+    RMMI_CSCON_STATE_UTRAN_URA_PCH = 0,
+    RMMI_CSCON_STATE_UTRAN_CELL_PCH,
+    RMMI_CSCON_STATE_UTRAN_CELL_FACH,
+    RMMI_CSCON_STATE_UTRAN_CELL_DCH,
+    RMMI_CSCON_STATE_GERAN_CS_CONNECTED,
+    RMMI_CSCON_STATE_GERAN_PS_CONNECTED,
+    RMMI_CSCON_STATE_GERAN_CS_PS_CONNECTED,
+    RMMI_CSCON_STATE_EUTRAN_CONNECTED,
+    RMMI_CSCON_STATE_NR_RAN_CONNECTED,
+    RMMI_CSCON_STATE_NR_RAN_INACTIVE,
+
+    RMMI_CSCON_STATE_UNKNOWN = 0xff
+} rmmi_cscon_state_enum;
+
+typedef enum
+{
+    RMMI_CSCON_ACCESS_GERAN = 0,
+    RMMI_CSCON_ACCESS_UTRAN_TDD,
+    RMMI_CSCON_ACCESS_UTRAN_FDD,
+    RMMI_CSCON_ACCESS_EUTRAN_TDD,
+    RMMI_CSCON_ACCESS_EUTRAN_FDD,
+    RMMI_CSCON_ACCESS_NR,
+
+    RMMI_CSCON_ACCESS_UNKNOWN = 0xff
+} rmmi_cscon_access_enum;
+
+typedef enum
+{
+    RMMI_CSCON_CORE_NETWORK_EPC = 0,
+    RMMI_CSCON_CORE_NETWORK_5GCN,
+
+    RMMI_CSCON_CORE_NETWORK_UNKNOWN = 0xff
+} rmmi_cscon_core_network_enum;
+
+
+typedef enum
+{
+    RMMI_NW_ERR_TYPE_MM = 0x01,
+    RMMI_NW_ERR_TYPE_CM = 0x02,
+    RMMI_NW_ERR_TYPE_GMM_PS = 0x03,
+    RMMI_NW_ERR_TYPE_SM = 0x04,
+    RMMI_NW_ERR_TYPE_GMM_CS = 0x05,
+    RMMI_NW_ERR_TYPE_GMM_CS_PS = 0x06,
+    RMMI_NW_ERR_TYPE_EMM_PS = 0x07,
+    RMMI_NW_ERR_TYPE_EMM_CS = 0x08,
+    RMMI_NW_ERR_TYPE_EMM_CS_PS = 0x09,
+    RMMI_NW_ERR_TYPE_ESM = 0x0A,
+} rmmi_nw_error_type_enum;
+
+
+typedef enum
+{
+    RMMI_RMS_NONE = 0,
+    RMMI_RMS_ONLY_ALLOW_RFOFF,
+    RMMI_RMS_ONLY_ALLOW_SIMOFF,
+    RMMI_RMS_ENUM_MAX
+}rmmi_rms_enum;
+
+typedef enum
+{
+    RMMI_LCE_REPORT_STOP = 0,
+    RMMI_LCE_REPORT_PUSH,
+    RMMI_LCE_REPORT_PULL,
+}rmmi_lce_report_type_enum;
+
+typedef enum
+{
+    RMMI_ETWMODE_READ,
+    RMMI_ETWMODE_WRITE
+} rmmi_etwmode_op_enum;
+
+typedef enum
+{
+    RMMI_ETWMODE_LG_WG
+} rmmi_etwmode_mode_enum;
+
+typedef enum
+{
+    RMMI_NOT_USED,
+    RMMI_ACCEPT,
+    RMMI_REJECT,
+    RMMI_ACCEPT_FOR_PS_ONLY
+} rmmi_proc_result_type_enum;
+
+#if defined(__TC01__) && defined ( __AS_SPECIFIC_CHANNEL_SRCH__) //AT_CAMPREQ
+/* MUSE - ALPS01198329 */
+/* The device will make SIM2 flight mode in the MUSE factory test state. */
+typedef enum
+{
+    CUST_RFT_MODE_OFF,
+    CUST_RFT_MODE_ENTERING,
+    CUST_RFT_MODE_ON
+}l4c_cust_rft_mode_enum;
+#endif /*defined(__TC01__) && defined ( __AS_SPECIFIC_CHANNEL_SRCH__)*/
+
+#endif /* _RMMI_COMMON_ENUM_H */
diff --git a/mcu/protocol/layer4/l4/include/smsal_l4c_defs.h b/mcu/protocol/layer4/l4/include/smsal_l4c_defs.h
new file mode 100644
index 0000000..5ba58cc
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/smsal_l4c_defs.h
@@ -0,0 +1,72 @@
+/*****************************************************************************
+*  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_defs.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file contains the defined constants which related to 
+ *   interface of SMSAL and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _SMSAL_L4C_DEFS_H
+#define _SMSAL_L4C_DEFS_H
+
+#include "ps_public_enum.h"     //mtk02589 MPM
+
+#endif /* _SMSAL_L4C_DEFS_H */
+
+
diff --git a/mcu/protocol/layer4/l4/include/smsal_l4c_funcs.h b/mcu/protocol/layer4/l4/include/smsal_l4c_funcs.h
new file mode 100644
index 0000000..204b99b
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/smsal_l4c_funcs.h
@@ -0,0 +1,255 @@
+/*****************************************************************************
+*  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_funcs.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is the header file of smsal_l4c_funcs.c  
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _SMSAL_L4C_FUNCS_H
+#define _SMSAL_L4C_FUNCS_H
+
+#include "l4c2smsal_struct.h"
+#include "kal_general_types.h"
+#include "kal_public_api.h"
+#include "ps_public_struct.h"
+#include "ps_public_utility.h"
+
+extern void smsal_get_common_para(kal_uint8  *fo,
+                           kal_uint8  *bearer,
+                           kal_uint8  *reply_path,
+                           kal_uint8  *status_report);
+
+extern void smsal_get_mailbox_addr(kal_uint8 *mailbox_num, 
+                                   kal_uint8 *alpha_length,
+                                   kal_uint8 *max_num_length,
+                                   smsal_mailbox_addr_struct *mailbox_addr);
+
+
+extern void smsal_get_mbi(kal_uint8 *mbi_rec_num, 
+                          smsal_mbi_struct *mbi);
+
+extern void smsal_get_selected_msp(kal_uint8 *selected_msp);
+extern kal_uint16 smsal_set_selected_msp(kal_uint8 selected_msp);
+
+
+extern void smsal_normal_service_ind(void);
+
+extern smsal_inbox_list_struct *smsal_get_inbox_list(kal_uint16 start_msg,
+                                                     kal_uint8 num_msg);
+
+extern smsal_outbox_list_struct *smsal_get_outbox_list(kal_uint16 start_msg,
+                                                       kal_uint8 num_msg);
+
+extern 
+kal_bool smsal_get_msgbox_num(kal_bool  *is_sms_ready,
+                              kal_bool  *is_sim_card_change,
+                              kal_uint16 *inbox_sim_num,
+                              kal_uint16 *inbox_me_num,
+                              kal_uint16 *outbox_sim_num,
+                              kal_uint16 *outbox_me_num,
+                              kal_uint16 *unread_msg_num,
+                              kal_uint16 *total_sim_num,
+                              kal_uint16 *total_me_num);                             
+                                 
+extern void smsal_get_profile_info(kal_uint8 *profile_num,
+                                   kal_uint8 *profile_name_len);
+
+extern kal_bool smsal_get_profile_name(kal_uint8 profile_no,
+                                       l4_name_struct *profile_name);
+
+/*
+extern kal_uint16 smsal_set_bearer_service(
+                     kal_uint8 bearer);
+extern void smsal_get_bearer_service(kal_uint8 *bearer);
+*/
+
+/*****************************************************************************
+ * 
+ * Following functions are for fulfilling AT-Commands
+ * 
+ *  smsal_xxxx_set   : set parameters for command xxxx
+ *  smsal_xxxx_query : get current parameters of command xxxx
+ *  smsal_xxxx_test  : TEST for command xxxx, return string of supporting 
+ *                     values of servies/parameter
+ *  smsal_xxxx_exe   : EXECUTE for command xxxx
+ *
+ ****************************************************************************/
+
+extern void smsal_cgsms_query(kal_uint8 *service);
+
+extern void smsal_cgsms_test(kal_uint8 const **test_str);
+
+extern kal_uint16 smsal_cnma_exe(kal_uint8 id,
+                                      kal_uint8 mode,                                      
+                                      peer_buff_struct *peer_buff_ptr);
+
+extern kal_uint16 smsal_csms_set(
+                            kal_uint8 service);
+
+extern void smsal_csms_query(kal_uint8 *service, 
+                      smsal_service_mode_struct *service_info);
+
+extern void smsal_csms_test(kal_uint8 const **test_str);
+
+/*
+extern kal_uint16 smsal_cpms_set(  kal_uint8 mem1,
+                                   kal_uint8 mem2,
+                                   kal_uint8 mem3
+                                 );
+*/
+extern void smsal_cpms_query(smsal_prefer_storage_struct *mem_info);
+extern void smsal_cpms_test(kal_uint8 const **test_str);
+
+
+extern kal_uint16 smsal_cmgf_set(kal_uint8 msg_format);
+
+extern void smsal_cmgf_query(kal_uint8 *msg_format);
+
+extern void smsal_cmgf_test(kal_uint8 const **test_str);
+
+extern kal_uint16 smsal_csca_set(l4_addr_bcd_struct sca); 
+extern kal_bool smsal_is_csca_set(void); 
+
+
+extern void smsal_csca_query(l4_addr_bcd_struct *sca, 
+                      kal_uint8 profile_no);
+
+extern kal_uint16 smsal_csmp_set(kal_uint8 profile_no,
+                                      kal_uint8 para_ind,
+                                      kal_uint8 fo,
+                                      kal_uint8 vp,
+                                      kal_uint8 pid,
+                                      kal_uint8 dcs
+                                     );
+
+extern void smsal_csmp_query(kal_uint8 profile_no,
+                      kal_uint8 *fo,
+                      kal_uint8 *vp,
+                      kal_uint8 *pid,
+                      kal_uint8 *dcs
+                     );
+
+extern kal_uint16 smsal_csdh_set(kal_uint8 show);
+
+extern void smsal_csdh_query(kal_uint8 *show);
+
+extern void smsal_csdh_test(kal_uint8 const **test_str);
+
+extern kal_uint16 smsal_cres_set(kal_uint8 profile_id);
+extern void smsal_cres_test(kal_uint8 const **test_str);
+
+extern void smsal_csas_test(kal_uint8 const **test_str);
+
+extern kal_uint16 smsal_esmss_set(kal_uint8 esmss_val);
+extern void smsal_esmss_test(kal_uint8 const **test_str);
+extern void smsal_esmss_query(kal_uint8 *esmss_val);
+
+extern kal_bool smsal_eqsi_query(kal_uint8  mem,
+                          kal_uint16 *beg_index,
+                          kal_uint16 *end_index,
+                          kal_uint16 *used);
+
+extern void smsal_emems_query(kal_uint8 storage_type, kal_uint8 *is_full);
+extern void smsal_emems_set(kal_uint8 storage_type, kal_uint8 is_full);
+#if defined(__IMS_SUPPORT__) || defined(__SMS_IMS_SUPPORT__)
+extern void smsal_esmma_set(kal_uint8 smma);
+#endif
+
+extern kal_uint16 smsal_cnmi_set(
+                               smsal_mt_msg_route_struct mt_route);
+
+extern void smsal_cnmi_query(smsal_mt_msg_route_struct *mt_route);
+
+extern void smsal_cnmi_test(kal_uint8 const **test_str);
+
+extern void smsal_eqsi_test(kal_uint8 const **test_str);
+
+extern void smsal_cmgl_test(kal_uint8 const **test_str);
+extern void smsal_cmgd_test(kal_uint8 const **test_str);
+extern kal_uint16 smsal_cmms_set(kal_uint8 mms);
+
+extern void smsal_cmms_query(kal_uint8 *mms);
+
+extern void smsal_cmms_test(kal_uint8 const **test_str);
+extern void smsal_cnma_test(kal_uint8 const **test_str);
+#if 0
+/* under construction !*/
+#endif
+
+#ifdef __CB__
+extern 
+void smsal_cb_get_status(kal_uint8    *on_off,
+                         kal_uint8    *mi_num,
+		         kal_uint8    *mir_num,
+		         kal_uint8    *dcs_num,                                   
+                         l4c_cb_info_struct *cb_info); 
+
+extern kal_uint16 smsal_cb_conver_ISO639_to_CBDCS(kal_uint16 ISO639);
+
+#endif/*__CB__*/
+
+extern kal_bool smsal_reg_port_num(kal_uint8 enable, kal_uint16 *cause, 
+                                   kal_uint32 port_num, kal_uint16 mod_id ) ;   
+
+extern smsal_dest_no_enum smsal_get_current_profile_id(void);
+
+
+#endif /* _SMSAL_L4C_FUNCS_H */
+
+
diff --git a/mcu/protocol/layer4/l4/include/smu_deinit.h b/mcu/protocol/layer4/l4/include/smu_deinit.h
new file mode 100644
index 0000000..174523b
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/smu_deinit.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) 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:
+ * ---------
+ *  smu_deinit.h
+ *
+ * Project:
+ * --------
+ *  MAUI
+ *
+ * Description:
+ * ------------
+ *  
+ *
+ * Author:
+ * -------
+ *  
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+
+#ifndef _SMU_DEINIT_H_
+#define _SMU_DEINIT_H_
+
+extern kal_bool smu_deinit( void );
+
+#endif /* End of file uem_deinit.h */
+
+
diff --git a/mcu/protocol/layer4/l4/include/smu_init.h b/mcu/protocol/layer4/l4/include/smu_init.h
new file mode 100644
index 0000000..ada493a
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/smu_init.h
@@ -0,0 +1,76 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	smu_init.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * 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 _SMU_INIT_H
+#define _SMU_INIT_H
+
+extern kal_bool smu_init
+(
+   void
+);
+
+#endif /* uem_init.h */
+
+
diff --git a/mcu/protocol/layer4/l4/include/smu_reset.h b/mcu/protocol/layer4/l4/include/smu_reset.h
new file mode 100644
index 0000000..f37d904
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/smu_reset.h
@@ -0,0 +1,68 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	smu_reset.h
+ *
+ * Project:
+ * --------
+ *   MT6208
+ *
+ * Description:
+ * ------------
+ *   This file defines the data structure, enum and constant for SMU.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+*  Copyright Statement:
+*  --------------------
+*
+*  This product has been developed using a protocol stack
+*  developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef SMU_RESET_H
+#define SMU_RESET_H
+extern kal_bool smu_reset(void);
+#endif  
+
diff --git a/mcu/protocol/layer4/l4/include/tcm2app_func.h b/mcu/protocol/layer4/l4/include/tcm2app_func.h
new file mode 100644
index 0000000..e525477
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/tcm2app_func.h
@@ -0,0 +1,105 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ * TCM2APP_FUNC.H
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file provides function to application 
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * 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 _TCM2APP_FUNC_H
+#define _TCM2APP_FUNC_H
+
+#ifndef _MMI_SM_ENUMS_H
+   #error include mmi_sm_enums.h before tcm2app_func.h
+#endif
+
+#ifndef _L4C2ABM_STRUCT_H
+   #error include l4c2abm_struct.h before tcm2app_func.h
+#endif
+
+#if 0
+#ifdef __APP_SECONDARY_PDP_SUPPORT__ //mtk00714 streaming
+/* under construction !*/
+#endif
+#endif // ~ #if 0
+
+#endif /* ~_TCM2APP_FUNC_H */
+
diff --git a/mcu/protocol/layer4/l4/include/tcm_context_enum.h b/mcu/protocol/layer4/l4/include/tcm_context_enum.h
new file mode 100644
index 0000000..957e20e
--- /dev/null
+++ b/mcu/protocol/layer4/l4/include/tcm_context_enum.h
@@ -0,0 +1,141 @@
+/*****************************************************************************
+*  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_context_enum.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!
+ *
+ *------------------------------------------------------------------------------
+ * 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_CONTEXT_ENUM_H
+#define _TCM_CONTEXT_ENUM_H
+
+#define TCM_TOT_CONTEXT 15  // -> TCM_MAX_PIC_NUM
+
+#define __TCM_CID_0_SUPPORT__
+
+#ifdef __TCM_CID_0_SUPPORT__
+#define TCM_MIN_CONTEXT_ID 0    // -> TCM_MIN_PIC_INDEX
+#else  /* __TCM_CID_0_SUPPORT__ */
+#define TCM_MIN_CONTEXT_ID 1
+#endif /* __TCM_CID_0_SUPPORT__ */
+
+#define TCM_MAX_CONTEXT_ID (TCM_MIN_CONTEXT_ID+TCM_TOT_CONTEXT-1) // 14 -> TCM_MAX_PIC_INDEX
+
+#define TCM_APN_TABLE_SIZE 20
+
+#define TCM_MIN_PROCESSING_TIME_LIMIT   5                           /* Minimum processing time limit for PDP/PDN command is 5 secs */
+#define TCM_MAX_PROCESSING_TIME_LIMIT   0xffffffff                  /* Maximum processing time limit for PDP/PDN command is 0xffffffff secs */
+#define TCM_PROCESSING_TIME_LIMIT_SOFT_DEADLINE     720             /* Soft deadline of  processing time limit for PDP/PDN command is 12 mins */
+#define TCM_MAX_TIMESTAMP   0xffffffff                              /* Maximum timestamp is 0xffffffff */
+
+typedef enum {
+    TCM_BEARER_RAT_23G,
+    TCM_BEARER_RAT_4G,
+    TCM_BEARER_RAT_5G,
+    TCM_BEARER_RAT_MAX_NUM,
+} tcm_bearer_rat_enum;
+
+#endif /* tcm_context_enum.h */