[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/protocol/interface/l4misc/atp_l4b_struct.h b/mcu/protocol/interface/l4misc/atp_l4b_struct.h
new file mode 100644
index 0000000..d148bcc
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_l4b_struct.h
@@ -0,0 +1,219 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l4b_atp_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _L4B_ATP_STRUCT_H
+#define _L4B_ATP_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+
+
+/* MSG_ID_ATP_L4B_AT_CMD_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+} atp_l4b_at_cmd_req_struct;
+
+/* MSG_ID_ATP_L4B_AT_CMD_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ atp_channel_enum ch_id;
+ proxy_cmd_result_enum result;
+ atp_err_id_enum cause;
+ kal_bool stuff;
+} atp_l4b_at_cmd_cnf_struct;
+
+/* MSG_ID_ATP_L4B_AT_URC_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ch_id;
+ kal_bool stuff;
+} atp_l4b_at_urc_ind_struct; //align to l4b_atci_at_urc_ind_struct
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 lock_mode;//0:unlock;1:lock
+ kal_bool attach_type;//0: no attach/detach;1:attach when lcok/detach when unlock
+} atp_l4bnw_sim_lock_req_struct; //align to atp_l4bnw_sim_lock_req_struct
+/* MSG_ID_ATP_L4BNW_SIM_LOCK_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+} atp_l4bnw_sim_lock_cnf_struct; //align to atp_l4bnw_sim_lock_cnf_struct
+
+//MSG_ID_ATP_L4BSBP_AT_CH_LOCK_REQ/ MSG_ID_ATP_L4BSBP_AT_CH_UNLOCK_REQ
+typedef struct
+{
+ LOCAL_PARA_HDR
+} atp_l4bsbp_at_ch_lock_req_struct, atp_l4bsbp_at_ch_unlock_req_struct, l5io_l4bsbp_at_ch_lock_req_struct, l5io_l4bsbp_at_ch_unlock_req_struct;
+
+//MSG_ID_ATP_L4BSBP_AT_CH_LOCK_CNF/ MSG_ID_ATP_L4BSBP_AT_CH_UNLOCK_CNF
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result; // 0: fail, 1: success
+} atp_l4bsbp_at_ch_lock_cnf_struct, atp_l4bsbp_at_ch_unlock_cnf_struct, l5io_l4bsbp_at_ch_lock_cnf_struct, l5io_l4bsbp_at_ch_unlock_cnf_struct;
+
+//MSG_ID_L5IO_L4BSBP_SBP_ID_CHANGE_IND
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 sbp_id;
+} l5io_l4bsbp_sbp_id_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint8 fun;
+ kal_uint8 cause;
+} atp_l4bpwr_efun_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_efun_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint8 fun;
+ kal_uint8 rst;
+} atp_l4bpwr_cfun_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_cfun_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+} atp_l4bpwr_epof_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_epof_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+} atp_l4bpwr_get_nr_ps_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ kal_uint8 target_nr_ps; // bitmap for protocols which can connect NR
+} atp_l4bpwr_set_nr_ps_req_struct;
+
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_get_nr_ps_cnf_struct;
+typedef atp_l4b_at_cmd_cnf_struct atp_l4bpwr_set_nr_ps_cnf_struct;
+
+#endif /* _L4B_ATP_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/atp_l4c_struct.h b/mcu/protocol/interface/l4misc/atp_l4c_struct.h
new file mode 100644
index 0000000..e8f11fa
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_l4c_struct.h
@@ -0,0 +1,193 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * atp_l4c_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _ATP_L4C_STRUCT_H
+#define _ATP_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+#if defined(__IMS_SUPPORT__) && (__WFC_SUPPORT__) && defined(__ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__) && defined(__GEMINI__)
+#include "ims_common_def.h"
+#endif
+
+
+/* MSG_ID_ATP_L4C_EN3GPECP_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint8 urc_report_mode;
+} atp_l4c_en3gpecp_req_struct;
+
+/* MSG_ID_ATP_L4C_EN3GPECP_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint8 n3en_indicator;
+ proxy_cmd_result_enum result;
+} atp_l4c_en3gpecp_cnf_struct;
+
+/* MSG_ID_ATP_L4C_ANBR_REQ */
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 ebi;
+ // over NR: when ebi = 0, refer to psi and qfi
+ kal_uint8 psi;
+ kal_uint8 qfi;
+ kal_bool is_ul;
+ kal_uint32 bitrate;
+} atp_l4c_anbr_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ vg_option_enum vg_option;
+ atp_cmd_mode_enum cmd_mode;
+ proxy_cmd_result_enum result;
+} atp_l4c_e5gopt_cnf_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ kal_uint8 vg_option;
+ kal_uint8 act_operation;
+} atp_l4c_e5gopt_req_struct;
+
+/* MSG_ID_ATP_L4C_CSFB_PAGE_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 csfb_page_req;
+ kal_uint8 add_info; // if csfb_page_config is 3 or 4, add_info will be the new timer value
+} atp_l4c_csfb_page_req_struct;
+
+#if defined(__IMS_SUPPORT__) && (__WFC_SUPPORT__) && defined(__ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__) && defined(__GEMINI__)
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_access_rat_enum target_rat;
+} atp_l4c_call_handover_ind_struct;
+#endif
+
+
+#endif /* _ATP_L4C_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/atp_sms_struct.h b/mcu/protocol/interface/l4misc/atp_sms_struct.h
new file mode 100644
index 0000000..af2642c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_sms_struct.h
@@ -0,0 +1,107 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * atp_sms_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _ATP_SMS_STRUCT_H
+#define _ATP_SMS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+
+
+
+/* MSG_ID_ATP_SMS_C5GUSMS_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint8 sms_requested;
+} atp_sms_status_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ atp_cmd_mode_enum cmd_mode;
+ proxy_cmd_result_enum result;
+ kal_uint8 sms_available;
+ kal_uint8 sms_allowed;
+} atp_sms_status_cnf_struct;
+
+
+/*
+ * (only exist in non-IMS project)
+ * MSG_ID_ATP_SMS_STATUS_URC_IND
+ * +C5GUSMS: <sms_available>, <sms_allowed>
+ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sms_available;
+ kal_uint8 sms_allowed;
+} atp_sms_status_urc_ind_struct;
+
+
+#endif /* _ATP_SMS_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/atp_smsal_struct.h b/mcu/protocol/interface/l4misc/atp_smsal_struct.h
new file mode 100644
index 0000000..56d6ff6
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/atp_smsal_struct.h
@@ -0,0 +1,89 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * atp_smsal_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _ATP_SMSAL_STRUCT_H
+#define _ATP_SMSAL_STRUCT_H
+
+#include "kal_general_types.h"
+#include "atp_public_defs.h"
+
+
+/* MSG_ID_ATP_SMSAL_C5GSMS_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint8 service;
+} atp_smsal_c5gsms_req_struct;
+
+/* MSG_ID_ATP_SMSAL_C5GSMS_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ atp_channel_enum ch_id;
+ atp_cmd_mode_enum cmd_mode;
+ proxy_cmd_result_enum result;
+ kal_uint8 service;
+} atp_smsal_c5gsms_cnf_struct;
+
+
+#endif /* _ATP_SMSAL_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/csmcc_atfunc.h b/mcu/protocol/interface/l4misc/csmcc_atfunc.h
new file mode 100644
index 0000000..2ead62b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/csmcc_atfunc.h
@@ -0,0 +1,438 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * csmcc_atfunc.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for exporting function declaration used by L4C module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _CSMCC_ATFUNC_H
+#define _CSMCC_ATFUNC_H
+
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+typedef struct l4c_call_entry_struct
+{
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 call_orig;
+ kal_uint8 call_state;
+ kal_uint8 call_mode;
+ kal_uint8 call_type;
+ kal_uint8 mpty;
+ l4_addr_bcd_struct number;
+ kal_uint8 priority;
+
+ kal_uint8 number_type;
+ kal_bool alpha_present;
+ kal_char alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+ kal_bool uri_present;
+ kal_char uri[MAX_SIP_URI_LEN];
+ kal_bool cli_present;
+ kal_uint8 cli;
+ kal_uint8 cli_validity;
+} l4c_call_entry_struct;
+
+extern kal_bool l4ccsm_cc_get_call_info (
+ kal_uint8 call_id,
+ l4c_call_entry_struct *call_info,
+ kal_uint8 *next_call_id);
+
+extern kal_bool l4ccsm_cc_get_acm(
+ kal_uint32 *acm,
+ kal_uint32 *acmmax);
+
+extern kal_bool l4ccsm_cc_get_ccm(
+ kal_uint8 call_id,
+ kal_uint32 *ccm);
+
+extern kal_bool
+l4ccsm_cc_get_data_rate(kal_uint32 *rate);
+
+extern kal_bool
+l4ccsm_cc_get_data_call_info(kal_uint8 *data_call_type);
+
+extern kal_bool l4ccsm_cc_get_mt_call(
+ kal_uint8 *call_id);
+
+extern kal_bool l4ccsm_cc_get_in_call(
+ kal_uint8 *call_id);
+
+extern kal_bool l4ccsm_cc_get_outgoing_call(kal_uint8 *call_id);
+
+extern kal_bool l4ccsm_cc_get_active_call(
+ kal_uint8 *call_id);
+
+extern kal_bool l4ccsm_cc_set_addr_type(
+ kal_uint8 addr_type);
+
+extern kal_bool l4ccsm_cc_get_addr_type(
+ kal_uint8 *addr_type);
+
+#if 0
+/* under construction !*/
+#endif //[MAUI_00736467]
+
+extern kal_bool l4ccsm_cc_set_call_mode (
+ kal_uint8 call_mode);
+
+extern kal_bool l4ccsm_cc_get_call_mode(
+ kal_uint8 *call_mode);
+
+extern kal_bool l4ccsm_cc_test_call_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool csmcc_check_cbst_para_supported(
+ kal_uint8 bearer_speed,
+ kal_uint8 bearer_name,
+ kal_uint8 bearer_ce,
+ kal_bool need_check_fax);
+
+extern kal_bool l4ccsm_cc_set_bearer_service_type (
+ kal_uint8 bearer_speed,
+ kal_uint8 bearer_name,
+ kal_uint8 bearer_ce);
+
+#if 0 /*mtk01602, 070606*/
+#ifdef __SATCE__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif /*mtk01602, 070606*/
+extern kal_bool l4ccsm_cc_get_bearer_service_type (
+ kal_uint8 *bearer_speed,
+ kal_uint8 *bearer_name,
+ kal_uint8 *bearer_ce);
+
+extern kal_bool l4ccsm_cc_test_bearer_service_type(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_set_sns_mode (
+ kal_uint8 sns_mode);
+
+extern kal_bool l4ccsm_cc_get_sns_mode (
+ kal_uint8 *sns_mode);
+
+extern kal_bool l4ccsm_cc_test_sns_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_set_char_framing (
+ kal_uint8 cf_format,
+ kal_uint8 cf_parity);
+
+extern kal_bool l4ccsm_cc_get_char_framing (
+ kal_uint8 *cf_format,
+ kal_uint8 *cf_parity);
+
+extern kal_bool l4ccsm_cc_test_char_framing(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_set_v120_param (
+ kal_uint8 v120_rah,
+ kal_uint8 v120_mfm,
+ kal_uint8 v120_mode,
+ kal_uint8 v120_llineg,
+ kal_uint8 v120_assign,
+ kal_uint8 v120_negtype);
+
+extern kal_bool l4ccsm_cc_get_v120_param (
+ kal_uint8 *v120_rah,
+ kal_uint8 *v120_mfm,
+ kal_uint8 *v120_mode,
+ kal_uint8 *v120_llineg,
+ kal_uint8 *v120_assign,
+ kal_uint8 *v120_negtype);
+
+#if 0
+/* under construction !*/
+#endif //[MAUI_00736467]
+
+extern kal_bool l4ccsm_cc_set_rlp_param (
+ kal_uint8 rlp_iws,
+ kal_uint8 rlp_mws,
+ kal_uint8 rlp_T1,
+ kal_uint8 rlp_N2,
+ kal_uint8 rlp_ver,
+ kal_uint8 rlp_T4);
+
+extern kal_bool l4ccsm_cc_get_rlp_param (
+ kal_uint8 *rlp_iws,
+ kal_uint8 *rlp_mws,
+ kal_uint16 *rlp_T1,
+ kal_uint8 *rlp_N2,
+ kal_uint8 *rlp_ver,
+ kal_uint8 *rlp_T4);
+
+extern kal_bool l4ccsm_cc_test_rlp_param(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_set_data_compression_param (
+ kal_uint8 dir,
+ kal_uint8 negotiation,
+ kal_uint16 max_dict,
+ kal_uint8 max_string);
+
+extern kal_bool l4ccsm_cc_get_data_compression_mode(
+ kal_uint8 *dir,
+ kal_uint8 *negotiation,
+ kal_uint16 *max_dict,
+ kal_uint8 *max_string);
+
+extern kal_bool l4ccsm_cc_test_data_compression_param(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_aoc_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_set_cug_param (
+ kal_uint8 cug_temporary_mode,
+ kal_uint8 cug_index,
+ kal_uint8 cug_suppress);
+
+extern kal_bool l4ccsm_cc_get_cug_param (
+ kal_uint8 *cug_temporary_mode,
+ kal_uint8 *cug_index,
+ kal_uint8 *cug_suppress);
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif //[MAUI_00736467]
+
+extern kal_bool l4ccsm_cc_set_fclass_mode(
+ kal_uint8 fclass_mode);
+
+extern kal_bool l4ccsm_cc_get_fclass_mode(
+ kal_uint8 *fclass_mode);
+
+extern kal_bool l4ccsm_cc_test_fclass_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_chld_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_vts_mode(kal_uint8 const **supp_ptr);
+
+extern kal_bool l4ccsm_cc_test_cpas_mode(kal_uint8 const **supp_ptr);
+
+extern kal_uint8 csmcc_get_line_id(void);
+
+extern kal_bool l4ccsm_cc_set_ctm_status(kal_uint8 ctm_status);
+
+extern kal_bool l4ccsm_cc_set_call_capability(kal_uint32 capability);
+
+extern kal_bool l4ccsm_cc_set_iwf(kal_uint8 iwf);
+
+extern kal_bool l4ccsm_cc_get_iwf(kal_uint8 * iwf);
+
+extern kal_bool l4ccsm_cc_get_hold_call(kal_uint8 *call_id);
+
+extern kal_bool check_call_exist_in_either_SIM(kal_uint8 which_sim);
+
+extern kal_bool l4ccsm_cc_set_rat_mode(kal_uint8 rat_mode);
+
+extern kal_bool l4ccsm_cc_mt_call_not_approved(kal_uint8 call_id);
+
+/* MAUI_01618869 CSM provide l4ccsm_cc_get_CSM_call_id function */
+extern kal_bool l4ccsm_cc_get_CSM_call_id(kal_uint8* call_id_ptr);
+
+extern kal_uint8 csmcc_get_clcc_mode(kal_uint8 call_id);
+
+extern void csmcc_find_next_call(kal_uint8 call_id, kal_uint8 *next_call_id);
+
+kal_uint16 l4ccsm_cc_ctrl_by_sim_replace_cause(kal_uint8 call_id, kal_uint16 cause);
+
+extern void l4ccsm_cc_set_cli_validity(kal_uint8 call_id, kal_uint8 cli_validity);
+
+extern kal_uint8 l4ccsm_cc_get_emergency_call_id(void);
+
+extern kal_bool l4ccsm_check_SIM_interface_for_cs_call(kal_uint8 sim_index);
+
+#endif /* _CSMCC_EXT_FUNC_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/ddm_eval_struct.h b/mcu/protocol/interface/l4misc/ddm_eval_struct.h
new file mode 100644
index 0000000..3f0aa54
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_eval_struct.h
@@ -0,0 +1,126 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * ddm_eval_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ *
+ * .
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ *
+ * .
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ * .
+ *
+ * 10 22 2020 xinchun.guo
+ * [MOLY00582161] EMM´¥·¢DDM¶Ï¿ªinternet PDN for garbage paging feature
+ *
+ * .
+ *
+ * 05 15 2018 dennis.tsai
+ * [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE
+ * add MSPM feature for DDM.
+ *
+ * 02 13 2018 dennis.tsai
+ * [MOLY00307271] [UMOLYE][top]ã彩信ã?设å?1为主å¡ï¼ç¨çµä¿¡å¡2å彩信åä¸åºå?
+ * add ddm_eval mms pdn start/stop control.
+ *
+ * 01 15 2018 zanya.peng
+ * [MOLY00302408] [Zion][MT6739][O1][MP2][RDIT][VzW][LTE][DR][5.5_IMSRoam]RRCConnectionRequest TimeOut when T3417 10th expired.
+ *
+ * .
+ *
+ * 10 30 2017 dennis.tsai
+ * add t3346 feature.
+ *
+ ****************************************************************************/
+
+#ifndef _DDM_EVAL_STRUCT_H
+#define _DDM_EVAL_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+
+#include "ps_public_struct.h"
+
+typedef enum
+{
+ T_T3346,
+ T_THROTTLING
+
+}ddm_eval_backoff_timer_id_enum;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ at_cabtsri_ind_struct cabtsri_ind;
+ ddm_eval_backoff_timer_id_enum backoff_timer_id;
+
+} ddm_eval_cabtsri_ind_struct ;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+} ddm_eval_paging_protected_timer_max_ind_struct ;
+
+
+#endif
diff --git a/mcu/protocol/interface/l4misc/ddm_l4aps_struct.h b/mcu/protocol/interface/l4misc/ddm_l4aps_struct.h
new file mode 100644
index 0000000..fd06696
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_l4aps_struct.h
@@ -0,0 +1,318 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * ddm_l4aps_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _DDM_L4APS_STRUCT_H
+#define _DDM_L4APS_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ddm_common_struct.h"
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+
+#include "ps_public_struct.h"
+#include "mcd_l3_inc_struct.h"
+
+#include "l4aps_l4bpdn_struct.h"
+#include "l4aps_public_enum.h"
+
+#if 1 /* MSG: DDM -> L4APS */
+/*********************************************************************************************************
+ * MSG: DDM -> L4APS: Start *
+ *********************************************************************************************************/
+
+typedef l4aps_l4bpdn_cmd_common_header_req_struct ddm_l4aps_cmd_common_header_req_struct;
+
+typedef l4aps_l4bpdn_nw_applied_cache_data_notify_struct ddm_l4aps_nw_applied_cache_data_notify_struct;
+
+typedef l4aps_l4bpdn_cgdcont_req_struct ddm_l4aps_cgdcont_req_struct;
+
+typedef l4aps_l4bpdn_cgdscont_req_struct ddm_l4aps_cgdscont_req_struct;
+
+typedef l4aps_l4bpdn_cgtft_req_struct ddm_l4aps_cgtft_req_struct;
+
+typedef l4aps_l4bpdn_cgqreq_req_struct ddm_l4aps_cgqreq_req_struct;
+
+typedef l4aps_l4bpdn_cgqmin_req_struct ddm_l4aps_cgqmin_req_struct;
+
+typedef l4aps_l4bpdn_cgeqreq_req_struct ddm_l4aps_cgeqreq_req_struct;
+
+typedef l4aps_l4bpdn_cgeqmin_req_struct ddm_l4aps_cgeqmin_req_struct;
+
+typedef l4aps_l4bpdn_cgeqneg_req_struct ddm_l4aps_cgeqneg_req_struct;
+
+typedef l4aps_l4bpdn_cgact_req_struct ddm_l4aps_cgact_req_struct;
+
+typedef l4aps_l4bpdn_cgcmod_req_struct ddm_l4aps_cgcmod_req_struct;
+
+typedef l4aps_l4bpdn_cgpaddr_req_struct ddm_l4aps_cgpaddr_req_struct;
+
+typedef l4aps_l4bpdn_cgauto_req_struct ddm_l4aps_cgauto_req_struct;
+
+typedef l4aps_l4bpdn_cgans_req_struct ddm_l4aps_cgans_req_struct;
+
+typedef l4aps_l4bpdn_cgerep_req_struct ddm_l4aps_cgerep_req_struct;
+
+typedef l4aps_l4bpdn_cgcontrdp_req_struct ddm_l4aps_cgcontrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgscontrdp_req_struct ddm_l4aps_cgscontrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgtftrdp_req_struct ddm_l4aps_cgtftrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgeqos_req_struct ddm_l4aps_cgeqos_req_struct;
+
+typedef l4aps_l4bpdn_cgeqosrdp_req_struct ddm_l4aps_cgeqosrdp_req_struct;
+
+typedef l4aps_l4bpdn_c5gqos_req_struct ddm_l4aps_c5gqos_req_struct;
+
+typedef l4aps_l4bpdn_c5gqosrdp_req_struct ddm_l4aps_c5gqosrdp_req_struct;
+
+typedef l4aps_l4bpdn_cgdel_req_struct ddm_l4aps_cgdel_req_struct;
+
+typedef l4aps_l4bpdn_cgauth_req_struct ddm_l4aps_cgauth_req_struct;
+
+typedef l4aps_l4bpdn_cladn_req_struct ddm_l4aps_cladn_req_struct;
+
+typedef l4aps_l4bpdn_ecncfg_req_struct ddm_l4aps_ecncfg_req_struct;
+
+typedef l4aps_l4bpdn_egdcont_req_struct ddm_l4aps_egdcont_req_struct;
+
+typedef l4aps_l4bpdn_vzwapnetmr_req_struct ddm_l4aps_vzwapnetmr_req_struct;
+
+typedef l4aps_l4bpdn_vzwapne_req_struct ddm_l4aps_vzwapne_req_struct;
+
+typedef l4aps_l4bpdn_egpau_req_struct ddm_l4aps_egpau_req_struct;
+
+typedef l4aps_l4bpdn_egact_req_struct ddm_l4aps_egact_req_struct;
+
+typedef l4aps_l4bpdn_cgsdata_req_struct ddm_l4aps_cgsdata_req_struct;
+
+typedef l4aps_l4bpdn_acttest_req_struct ddm_l4aps_acttest_req_struct;
+
+typedef l4aps_l4bpdn_psbearer_req_struct ddm_l4aps_psbearer_req_struct;
+
+typedef l4aps_l4bpdn_egfb_req_struct ddm_l4aps_egfb_req_struct;
+
+typedef l4aps_l4bpdn_egdelpf_req_struct ddm_l4aps_egdelpf_req_struct;
+
+typedef l4aps_l4bpdn_eglnkpf_req_struct ddm_l4aps_eglnkpf_req_struct;
+
+typedef l4aps_l4bpdn_egpcordp_req_struct ddm_l4aps_egpcordp_req_struct;
+
+typedef l4aps_l4bpdn_egpco_req_struct ddm_l4aps_egpco_req_struct;
+
+typedef l4aps_l4bpdn_cgdata_req_struct ddm_l4aps_cgdata_req_struct;
+
+typedef l4aps_l4bpdn_egld_req_struct ddm_l4aps_egld_req_struct;
+
+typedef l4aps_l4bpdn_edallow_req_struct ddm_l4aps_edallow_req_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_define_needed_rsp_struct ddm_l4aps_lte_attach_pdn_define_needed_rsp_struct;
+
+typedef l4aps_l4bpdn_set_default_sim_ind_struct ddm_l4aps_set_default_sim_ind_struct;
+
+typedef l4aps_l4bpdn_set_eimsroam_config_value_req_struct ddm_l4aps_set_eimsroam_config_value_req_struct;
+
+typedef l4aps_l4bpdn_cmd_not_yet_support_req_struct ddm_l4aps_cmd_not_yet_support_req_struct;
+
+typedef l4aps_l4bpdn_eapnsync_req_struct ddm_l4aps_eapnsync_req_struct;
+
+typedef l4aps_l4bpdn_evzwapfcia_req_struct ddm_l4aps_evzwapfcia_req_struct;
+
+typedef l4aps_l4bpdn_eggrntrspt_req_struct ddm_l4aps_eggrntrspt_req_struct;
+
+typedef l4aps_l4bpdn_egpcap_req_struct ddm_l4aps_egpcap_req_struct;
+
+typedef l4aps_l4bpdn_notify_pdn_type_req_struct ddm_l4aps_notify_pdn_type_req_struct;
+
+typedef l4aps_l4bpdn_escontind_ind_struct ddm_l4aps_escontind_ind_struct;
+
+typedef l4aps_l4bpdn_escontind_req_struct ddm_l4aps_escontind_req_struct;
+
+typedef ia_apn_change_req_struct ddm_l4aps_ia_apn_change_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 ap_cid;
+ kal_uint8 d2_cid;
+} ddm_l4aps_update_cid_mapping_req_struct;
+
+/*********************************************************************************************************
+ * MSG: DDM -> L4APS: End *
+ *********************************************************************************************************/
+#endif
+
+#if 1 /* MSG: L4APS -> DDM */
+/*********************************************************************************************************
+ * MSG: L4APS -> DDM: Start *
+ *********************************************************************************************************/
+/* A general purpose AT-CMD confirm message */
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_cnf_struct cmd;
+
+ /* In the above field (cmd),
+ * if cmd.is_success == KAL_FALSE, the cmd.err_cause is a converted cause according to 27.007.
+ * The below original_cause is an "unconverted" counterpart for reference. */
+ kal_bool is_original_cause_from_3gpp_present; /* True: If (cmd.is_success == KAL_FALSE) AND (is from 3GPP MD) */
+ ps_cause_enum original_cause_from_3gpp; /* Valid if is_original_cause_from_3gpp_present == KAL_TRUE */
+
+ l4aps_retry_type_enum retry_type;
+} ddm_l4aps_cmd_cnf_struct;
+
+
+typedef l4aps_l4bpdn_cgev_ind_struct ddm_l4aps_cgev_ind_struct;
+
+typedef l4aps_l4bpdn_cgdcont_ind_struct ddm_l4aps_cgdcont_ind_struct;
+
+typedef l4aps_l4bpdn_cgdscont_ind_struct ddm_l4aps_cgdscont_ind_struct;
+
+typedef l4aps_l4bpdn_cgtft_ind_struct ddm_l4aps_cgtft_ind_struct;
+
+typedef l4aps_l4bpdn_cgqreq_ind_struct ddm_l4aps_cgqreq_ind_struct;
+
+typedef l4aps_l4bpdn_cgqmin_ind_struct ddm_l4aps_cgqmin_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqreq_ind_struct ddm_l4aps_cgeqreq_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqmin_ind_struct ddm_l4aps_cgeqmin_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqneg_ind_struct ddm_l4aps_cgeqneg_ind_struct;
+
+typedef l4aps_l4bpdn_cgact_ind_struct ddm_l4aps_cgact_ind_struct;
+
+typedef l4aps_l4bpdn_cgpaddr_ind_struct ddm_l4aps_cgpaddr_ind_struct;
+
+typedef l4aps_l4bpdn_cgauto_ind_struct ddm_l4aps_cgauto_ind_struct;
+
+typedef l4aps_l4bpdn_cgerep_ind_struct ddm_l4aps_cgerep_ind_struct;
+
+typedef l4aps_l4bpdn_cgcontrdp_ind_struct ddm_l4aps_cgcontrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgscontrdp_ind_struct ddm_l4aps_cgscontrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgtftrdp_ind_struct ddm_l4aps_cgtftrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqos_ind_struct ddm_l4aps_cgeqos_ind_struct;
+
+typedef l4aps_l4bpdn_cgeqosrdp_ind_struct ddm_l4aps_cgeqosrdp_ind_struct;
+
+typedef l4aps_l4bpdn_c5gqos_ind_struct ddm_l4aps_c5gqos_ind_struct;
+
+typedef l4aps_l4bpdn_c5gqosrdp_ind_struct ddm_l4aps_c5gqosrdp_ind_struct;
+
+typedef l4aps_l4bpdn_cgdel_ind_struct ddm_l4aps_cgdel_ind_struct;
+
+typedef l4aps_l4bpdn_cgauth_ind_struct ddm_l4aps_cgauth_ind_struct;
+
+typedef l4aps_l4bpdn_cladn_ind_struct ddm_l4aps_cladn_ind_struct;
+
+typedef l4aps_l4bpdn_cladnu_ind_struct ddm_l4aps_cladnu_ind_struct;
+
+typedef l4aps_l4bpdn_psbearer_ind_struct ddm_l4aps_psbearer_ind_struct;
+
+typedef l4aps_l4bpdn_egfb_ind_struct ddm_l4aps_egfb_ind_struct;
+
+typedef l4aps_l4bpdn_egdelpf_ind_struct ddm_l4aps_egdelpf_ind_struct;
+
+typedef l4aps_l4bpdn_eglnkpf_ind_struct ddm_l4aps_eglnkpf_ind_struct;
+
+typedef l4aps_l4bpdn_egpcordp_ind_struct ddm_l4aps_egpcordp_ind_struct;
+
+typedef l4aps_l4bpdn_egpco_ind_struct ddm_l4aps_egpco_ind_struct;
+
+typedef l4aps_l4bpdn_cgdata_cnf_struct ddm_l4aps_cgdata_cnf_struct;
+
+typedef l4aps_l4bpdn_egld_cnf_struct ddm_l4aps_egld_cnf_struct;
+
+typedef l4aps_l4bpdn_egev_ind_struct ddm_l4aps_egev_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_needed_ind_struct ddm_l4aps_lte_attach_needed_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_define_needed_ind_struct ddm_l4aps_lte_attach_pdn_define_needed_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_activate_success_ind_struct ddm_l4aps_lte_attach_pdn_activate_success_ind_struct;
+
+typedef l4aps_l4bpdn_lte_attach_pdn_activate_failure_ind_struct ddm_l4aps_lte_attach_pdn_activate_failure_ind_struct;
+
+typedef l4aps_l4bpdn_vzwapne_ind_struct ddm_l4aps_vzwapne_ind_struct;
+
+typedef l4aps_l4bpdn_vzwapnetmr_ind_struct ddm_l4aps_vzwapnetmr_ind_struct;
+
+typedef l4aps_l4bpdn_pdn_modify_ind_struct ddm_l4aps_pdn_modify_ind_struct;
+
+typedef l4aps_l4bpdn_eapnsync_ind_struct ddm_l4aps_eapnsync_ind_struct;
+
+typedef l4aps_l4bpdn_evzwapfcia_ind_struct ddm_l4aps_evzwapfcia_ind_struct;
+
+typedef l4aps_l4bpdn_eggrntrspt_ind_struct ddm_l4aps_eggrntrspt_ind_struct;
+
+typedef l4aps_l4bpdn_egpcap_test_mode_ind_struct ddm_l4aps_egpcap_test_mode_ind_struct;
+
+typedef l4aps_l4bpdn_backoff_timer_status_ind_struct ddm_l4aps_backoff_timer_status_ind_struct;
+
+typedef l4aps_tcm_update_cid_mapping_cnf_struct ddm_l4aps_update_cid_mapping_cnf_struct;
+
+/*********************************************************************************************************
+ * MSG: L4APS -> DDM: End *
+ *********************************************************************************************************/
+#endif
+
+#endif /* _DDM_L4APS_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/ddm_l4bnw_struct.h b/mcu/protocol/interface/l4misc/ddm_l4bnw_struct.h
new file mode 100644
index 0000000..f0ba1fc
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_l4bnw_struct.h
@@ -0,0 +1,112 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * ddm_l4bnw_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _DDM_L4BNW_STRUCT_H
+#define _DDM_L4BNW_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l3_inc_enums.h"
+#include "l4bnw_public_struct.h"
+#include "ps_public_enum.h"
+#include "nas_sv_struct.h"
+
+//typedef struct {
+// LOCAL_PARA_HDR
+
+ /** Only expects the below values from rat_enum:
+ * RAT_NONE = 0,
+ * RAT_GSM = 1,
+ * RAT_UMTS = 2,
+ * RAT_LTE = 4,
+ * RAT_C2K = 16,
+ * RAT_1xRTT = 32,
+ * RAT_HRPD = 64,
+ */
+// rat_enum currently_attached_rat;
+// l4bnw_public_attached_network_info_struct attached_network_info;
+//} ddm_l4bnw_attached_rat_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4_ps_type_config_enum ps_type;
+ kal_bool follow_on_request; // TS 24.008 -FOR, make GMM prolong an established PS signalling connection
+} ddm_l4bnw_ps_type_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4_ps_config_result_enum result;
+} ddm_l4bnw_ps_type_config_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_reattach;
+} ddm_l4bnw_ps_reattach_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 cause;
+} ddm_l4bnw_ims_pdn_rej_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mmi_event_enum event_id; //mmi_event_enum
+} ddm_l4bnw_ps_event_report_ind_struct; // same as l4crac_ps_event_report_ind_struct
+
+typedef nas_sv_emm_t3402_stop_ind_struct ddm_l4bnw_t3402_stop_ind_struct;
+
+#endif /* _DDM_L4BNW_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/ddm_l4c_struct.h b/mcu/protocol/interface/l4misc/ddm_l4c_struct.h
new file mode 100644
index 0000000..a33edfe
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/ddm_l4c_struct.h
@@ -0,0 +1,75 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2013
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+* Filename:
+* ------------
+* ddm_l4c_struct.h
+*
+* Project:
+* ------------
+* VMOLY
+*
+* Description:
+* ------------
+* This file is intends for L4C/DDM interface
+*
+* Author:
+* -----------
+ * -------
+*****************************************************************************/
+
+#ifndef _DDM_L4C_STRUCT_H
+#define _DDM_L4C_STRUCT_H
+
+#include "kal_public_defs.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+
+/* MSG_ID_DDM_L4C_UE_USAGE_SETTING_REQ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+} ddm_l4c_ue_usage_setting_req_struct;
+
+/* MSG_ID_DDM_L4C_UE_USAGE_SETTING_CNF */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ue_usage_setting_enum ue_usage_setting;
+} ddm_l4c_ue_usage_setting_cnf_struct;
+
+#endif /* _DDM_L4C_STRUCT_H */
\ No newline at end of file
diff --git a/mcu/protocol/interface/l4misc/iwlan_l4c_struct.h b/mcu/protocol/interface/l4misc/iwlan_l4c_struct.h
new file mode 100644
index 0000000..76a02b1
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/iwlan_l4c_struct.h
@@ -0,0 +1,189 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * iwlan_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 06 29 2020 star.kuo
+ * [MOLY00536845] AT&T CDR-WiFi-1510 (MD part) Cell measurement 500 ms in MP6MP7 precheckin
+ * Cell measurement 500ms in NR15.R3.MP
+ *
+ * 08 26 2019 jani.manninen
+ * [MOLY00433041] [Gen97][EPSFB] IT related issues
+ *
+ * VMOLY.APOLLO.SQC - IMS 5G Voice Support Changes
+ *
+ * 08 14 2019 jani.manninen
+ * [MOLY00431762] [VONR] IWLAN Changes for 5G Voice Support - IWLAN
+ *
+ * VMOLY.V.5GVOICE.DEV - IWLAN (Interface / ATP / IWLAN / UT)
+ *
+ * 07 12 2019 star.kuo
+ * [MOLY00421387] [VMOLY][Submarine] Merge code protocol IWLAN interface
+ * Merge code protocol IWLAN interface
+ *
+ * 10 16 2018 star.kuo
+ * [MOLY00353278] Cellular signaling power level config with flexible number of thresholds
+ * Cellular signaling power level config with flexible number of thresholds
+ *
+ * 07 24 2018 star.kuo
+ * [MOLY00338861] Phase out IMS_CAP_IND from IWLAN to L4C
+ * Phase out ! IWLAN gives IMS_CAP_IND to L4C
+ *
+ * 06 19 2018 star.kuo
+ * [MOLY00329730] Sprint needs to monitor 1x (C2K) signaling
+ * LR13.R0 sync Sprint monitoring 1x (C2K) signaling
+ *
+ * 05 21 2018 hsin-jun.tang
+ * [MOLY00325423] [IWLAN] Debug enhancement - A. IWLAN log enhancement, B. KAL legacy API DHL new API
+ * [IWLAN] log enhancemnet -
+ * A. apply DHL new log API
+ * B. log enhancement - primitives number to enum
+ * change:
+ * D2RM, L4C, SDM, ATP
+ * no change:
+ * WO, L4BNW, SIM, L4BPWR, IMC
+ *
+ * ATP:
+ * 1. ESRVSTATE
+ * 2. ECNCFG
+ * 3. EWIFIEN
+ * 4. EWFCPREF
+ * 5. EWIFIASC
+ * 6. Remove EPLWTH, EGREG
+ * 7. EIWLPING
+ * 8. EIRAT
+ *
+ * 03 14 2018 star.kuo
+ * [MOLY00313309] [WW FT][ZION][MT6739][O1][MP2][SQC][VzW][Internal FT][Irvine][V-SMS-008] VoLTE Function - SMS cannot be sent when Advanced Calling is turned OFF
+ * Manual sync. with R3
+ * New ILM - L4 IMSCFG
+ *
+ * 03 14 2018 star.kuo
+ * [MOLY00313309] [WW FT][ZION][MT6739][O1][MP2][SQC][VzW][Internal FT][Irvine][V-SMS-008] VoLTE Function - SMS cannot be sent when Advanced Calling is turned OFF
+ * Send ILM to L4 for sync. with IMC IMSCFG.
+ * NWSEL needs LTE IMS infomation to attach LTE.
+ *
+ * 03 02 2018 mt.tsai
+ * [MOLY00309820] [IWLAN][L4] SSAC information for VoWiFi requirement "VzW_2016Feb_VZ_REQ_VoWiFi_37627"
+ * [IF][IWLAN][L4] SSAC information for VoWiFi requirement "VzW_2016Feb_VZ_REQ_VoWiFi_37627"
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _IWLAN_L4C_STRUCT_H
+#define _IWLAN_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l4c_eval_struct.h"
+#include "custom_iwlan_config.h"
+
+#define IWLAN_L4C_MAX_THRES 8
+
+typedef enum {
+ IWLAN_L4C_GSM_RSSI = 0,
+ IWLAN_L4C_UTRAN_RSCP,
+ IWLAN_L4C_UTRAN_ECNO,
+ IWLAN_L4C_LTE_RSRP,
+ IWLAN_L4C_LTE_RSRQ,
+ IWLAN_L4C_LTE_RSSNR,
+ IWLAN_L4C_1X_RSSI = 6,
+ IWLAN_L4C_1X_ECIO,
+ IWLAN_L4C_EVDO_RSSI,
+ IWLAN_L4C_EVDO_ECIO = 9,
+ IWLAN_L4C_NR_SS_RSRP,
+ IWLAN_L4C_NR_SS_RSRQ,
+ IWLAN_L4C_NR_SS_SINR,
+ IWLAN_L4C_NR_CSI_RSRP,
+ IWLAN_L4C_NR_CSI_RSRQ,
+ IWLAN_L4C_NR_CSI_SINR
+} iwlan_l4c_sig_type_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ iwlan_l4c_sig_type_enum signal_type;
+ kal_bool mode; /* 0: Disable, 1: Enabled */
+ kal_uint8 num_thresholds; // the number of thresholds
+ kal_int32 array_threshold[IWLAN_L4C_MAX_THRES];
+ kal_int32 upper_threshold; // Need to phase out
+ kal_int32 lower_threshold; // Need to phase out
+ kal_uint16 timer_ms;
+ iwlan_l4c_sig_meas_timer_level timer_level;
+} iwlan_l4c_set_pwl_thrhd_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool result;
+} iwlan_l4c_set_pwl_thrhd_cnf_struct;
+
+typedef enum {
+ SIGNAL_STATUS_BAD = 0,
+ SIGNAL_STATUS_GOOD = 1,
+ SIGNAL_STATUS_FAIR = 2,
+ SIGNAL_STATUS_INVALID = 3,
+ SIGNAL_STATUS_CNT,
+} iwlan_l4c_signal_status_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ iwlan_l4c_sig_type_enum signal_type;
+ iwlan_l4c_signal_status_enum signal_status;
+ kal_int32 signal_value;
+} l4c_iwlan_pwr_level_ind_struct;
+
+typedef l4c_eval_ims_sys_info_ind_struct iwlan_l4c_ims_sys_info_ind_struct;
+
+#endif /* _IWLAN_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l3_inc_enums.h b/mcu/protocol/interface/l4misc/l3_inc_enums.h
new file mode 100644
index 0000000..a56e4b0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l3_inc_enums.h
@@ -0,0 +1,5824 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l3_inc_enums.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+#ifndef _l3_INC_ENUMS_H
+#define _l3_INC_ENUMS_H
+
+//------------------------------ suggest Add ------------------------------
+//#include "kal_non_specific_general_types.h"
+
+//#include "ps_public_enum.h"
+
+//------------------------------ suggest Add ------------------------------
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+
+/* Temp solution fro MM Pre-integration */
+#include "irat_common_enums.h"
+#include "l3_inc_enums_public.h"
+#include "as_inter_core_enum.h"
+
+/* UAS/GAS <-> RATCM begin */
+#define MAX_RECOVERY_TIMER_NUM 23 /* Should in range 1 ~ 256 */
+#define RECOVERY_TIMER_PERIOD_MULTIPLIER 1
+
+/* move to cross core */
+//#ifdef __R7_EHPLMN__
+//#define MAX_NUM_HPLMN 4
+//#else
+//#define MAX_NUM_HPLMN 1
+//#endif
+
+
+#define MAX_NUM_EMC_FPLMN 32
+
+#define MAX_NUM_SNIFFER_PLMN (MAX_NUM_EQ_PLMN + MD1_MAX_NUM_HPLMN - 1)
+
+/* Consider Share network for signal_appear_ind */
+#define MAX_NUM_SIGNAL_APPEAR_PLMN 12
+
+#ifdef __SEARCH_ALL_EHPLMN_TOGETHER__
+/* __SEARCH_ALL_EHPLMN_TOGETHER__ is dependent on __R7_EHPLMN__, so MAX_NUM_HPLMN == 4 here. */
+#define MAX_NUM_SEARCH_PLMN (MAX_NUM_EQ_PLMN + MD1_MAX_NUM_HPLMN - 1)
+#else
+#define MAX_NUM_SEARCH_PLMN (MAX_NUM_EQ_PLMN + 1)
+#endif
+
+#define EXTRA_INFO_BITMASK_DSAC (0x01)
+#define EXTRA_INFO_BITMASK_DATA_SPEED_SUPPORT (0x02)
+#define EXTRA_INFO_BITMASK_PPACR (0x04)
+#define EXTRA_INFO_BITMASK_CSG (0x08)
+#define EXTRA_INFO_BITMASK_BAND_INFO (0x10)
+
+
+#define MAX_NUM_PLMN_PER_RAT 16
+/* <CDR-FEM-620> CSG Aware UICC Configuration�XEF-Operator CSG Lists
+The device shall support at least 35 CSG ID's */
+#ifdef UNIT_TEST
+#define MAX_CSG_NUM 10
+#else
+#define MAX_CSG_NUM 50
+#endif
+
+#define MAX_LEN_OF_IMSI_LOCI_GLOCI (9+11+14)
+
+#define PS_INVALID_PLMN_SEARCH_TRX_ID 0xff /* Ripple */
+
+/* UAS/GAS <-> RATCM end */
+
+/* L4C <-> ENAS/EAS begin */
+#define EARFCN_RANGE_NUM 3
+#define PCI_RANGE_NUM 3
+#define MAX_NUM_FPLMNS 255
+/* L4C <-> ENAS/EAS end */
+
+/* ERAC <-> ENAS/EAS begin */
+#define SIZE_IMSI 9
+#define SIZE_IMEI 9
+#define SIZE_EPSLOCI 18
+#define SIZE_EPSNSC 54
+#define SIZE_DRX_DATA 2
+#define MAX_SUPPORTED_CODEC_LEN 8
+/* ERAC <-> ENAS/EAS end */
+
+/* VGRAC <-> VGMM begin */
+#define SIZE_OF_IMEISV 9
+
+#define LEN_OF_NSSAI_LIST_LONG 144 // Space for 16 S-NSSAI
+#define LEN_OF_NSSAI_LIST_SHORT 72 // Space for 8 S-NSSAI
+
+#define VGS_NSSAI_DEFAULT_CONFIGURED 0x01
+#define VGS_NSSAI_REJECTED 0x02
+#define VGS_NSSAI_CONFIGURED 0x04
+#define VGS_NSSAI_ALLOWED 0x08
+#define VGS_NSSAI_PREFERRED 0x10
+
+#define NUM_NSSAI_PLMN_IDS 16
+
+#define VGS_CLEAR_PREFERRED_NSSAI_3GPP 0x01
+#define VGS_CLEAR_PREFERRED_NSSAI_NON3GPP 0x02
+
+/* VGRAC <-> VGMM end */
+
+#define EMM_T3402_DEFAULT_VAL 720
+
+/* move to cross core */
+//#define NWSEL_MAX_NUM_PLMNS (32)
+
+//0xAE(ActivE)
+#define NWSEL_TRX_ID_TO_SET_ACTIVE_RAT 0xAE
+
+/* GMSS <-> NWSEL */
+#define MAX_MCC_SEARCH_RAT_NUM 3
+
+/* NWSEL -> xAS */
+#define MAX_NUM_OF_MCC 12
+/* PAM <-> NWSEL */
+#define MAX_THROTTLING_APN_BLOCK_NUM 32
+
+/*NWSEL/RAC <-> EMM/GMM/MM*/
+#define DOS_ENHANCEMENT_MAX_RETRY_VALUE 3
+
+/* VGMM <-> VGSM/LPP */
+#define MAX_NUM_OF_OPT_IE_MULTI 4
+#define MAX_LEN_OF_OPT_IE_MULTI 260
+
+/* IEI used in MULTIPLE PAYLOAD */
+#define VGMM_REQ_TYPE_IEI 0x08
+#define VGMM_PDU_SESSION_ID_IEI 0x12
+#define VGMM_S_NSSAI_IEI 0x22
+#define VGMM_ADDITIONAL_INFORMATION_IEI 0x24
+#define VGMM_DNN_IEI 0x25
+#define VGMM_T_BACK_OFF_IEI 0x37
+#define VGMM_CAUSE_IEI 0x58
+#define VGMM_OLD_PDU_SESSION_ID_IEI 0x59
+
+/* Interworking Definitions */
+#define S1_N1_NAS_TRANSPARENT_CONTAINER_IE_LENGTH 8
+
+typedef enum
+{
+ CH_MODE_NONE = 0xff,
+ SIGNALLING_ONLY = 0x00,
+ SPEECH_FULL_OR_HALF_VER_1 = 0x01,
+ SPEECH_FULL_OR_HALF_VER_1_VAMOS = 0xc1, /* SPEECH Ver3 in VAMOS */
+ SPEECH_FULL_OR_HALF_VER_2 = 0x21,
+ SPEECH_FULL_OR_HALF_VER_2_VAMOS = 0xc2, /* SPEECH Ver3 in VAMOS */
+ SPEECH_FULL_OR_HALF_VER_3 = 0x41, /* is also referred as AMR */
+ SPEECH_FULL_OR_HALF_VER_3_VAMOS = 0xc3, /* SPEECH Ver3 in VAMOS */
+ /*ZY: add for AMR-WB*/
+ SPEECH_FULL_OR_HALF_VER_4 = 0x81, /* OFR AMR-WB or OHR AMR-WB */
+ SPEECH_FULL_OR_HALF_VER_5 = 0x82, /* FR AMR-WB */
+ SPEECH_FULL_OR_HALF_VER_5_VAMOS = 0xc5, /* SPEECH Ver5 in VAMOS */
+
+ DATA_43_5_DL_PLUS_14_5_UL = 0x61,
+ DATA_29_0_DL_PLUS_14_5_UL = 0x62,
+ DATA_43_5_DL_PLUS_29_0_UL = 0x64,
+ DATA_14_5_DL_PLUS_43_5_UL = 0x67,
+ DATA_14_5_DL_PLUS_29_0_UL = 0x65,
+ DATA_29_0_DL_PLUS_43_5_UL = 0x66,
+ DATA_43_5_RADIO_INTF_RATE = 0x27,
+ DATA_32_0_RADIO_INTF_RATE = 0x63,
+ DATA_29_0_RADIO_INTF_RATE = 0x43,
+ DATA_14_5_RADIO_INTF_RATE = 0x0f,
+ DATA_12_0_RADIO_INTF_RATE = 0x03,
+ DATA_06_0_RADIO_INTF_RATE = 0x0b,
+ DATA_03_6_RADIO_INTF_RATE = 0x13,
+
+/*
+ * mtk02374 20110801 setting of channel mode in SLCE is as following table
+ * zwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww{
+ * x CS Over HSPA x
+ * uwwwwwwwwwwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt
+ * x YES x NO x
+ * uwwwwwwwwwwwqwwwwswwwswwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwt
+ * x x x x TTI x
+ * x uwwwwqwwwqwwwwwwwwwwwwwwswwwwwwwwwwwwwwswwwwwwwwwwt
+ * x x x x 10 or 20 x 40 x 80 x
+ * x (R8) uwwwwqwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwqwwwwwwwwwwt
+ * x UMTS_RAB_HSPA_SPEECH x x<500 x UMTS_RAB_SPEECH xUMTS_RAB_CONVERSATIONAL_DATAx x
+ * x x uwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwt x
+ * x x Max RLCx 576 xUMTS_RAB_CONVERSATIONAL_DATAx UMTS_RAB_STREAMING_DATA x x
+ * x x size uwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwtUMTS_RAB_UNSPECIFIEDx
+ * x x x 640 xUMTS_RAB_CONVERSATIONAL_DATAx UMTS_RAB_UNSPECIFIED x x
+ * x x uwwwqwwwwwwwwwwwwwwqwwwwwwwwwwwwwwt x
+ * x x xothersx UMTS_RAB_UNSPECIFIED xUMTS_RAB_CONVERSATIONAL_DATAx x
+ * |wwwwwwwwwwwrwwwwrwwwrwwwwwwwwwwwwwwrwwwwwwwwwwwwwwrwwwwwwwwww}
+ */
+ UMTS_RAB_SPEECH = 0x70,
+ UMTS_RAB_HSPA_SPEECH,
+ UMTS_RAB_CONVERSATIONAL_DATA, /* Just for reference, it might be not precise */
+ UMTS_RAB_STREAMING_DATA, /* Just for reference, it might be not precise */
+ UMTS_RAB_NON_DECIDED,
+ UMTS_RAB_UNSPECIFIED= 0xff
+} channel_mode_enum;
+
+#if 0
+#ifdef __APP_SECONDARY_PDP_SUPPORT__ //mtk00714 streaming
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#endif
+
+typedef enum {
+ SUBSCRIBED_PEAK_THROUGHPUT_CLASS = 0,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_1000_OCTET_PER_SEC = 1,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_2000_OCTET_PER_SEC = 2,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_4000_OCTET_PER_SEC = 3,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_8000_OCTET_PER_SEC = 4,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_16000_OCTET_PER_SEC = 5,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_32000_OCTET_PER_SEC = 6,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_64000_OCTET_PER_SEC = 7,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_128000_OCTET_PER_SEC = 8,
+ SM_QOS_PEAK_THROUGHPUT_UP_TO_256000_OCTET_PER_SEC = 9,
+ SM_QOS_RESERVED_PEAK_THROUGHPUT_CLASS = 15
+} sm_readable_peak_throughput_class_enum;
+
+typedef enum {
+ RADIO_PRIORITY_1 = 1,
+ RADIO_PRIORITY_2,
+ RADIO_PRIORITY_3,
+ RADIO_PRIORITY_4,
+ RADIO_PRIORITY_NOT_CHECK
+} rp_enum;
+
+typedef enum {
+ RP_1,
+ RP_2,
+ RP_3,
+ RP_4,
+ RP_INVALID
+} radio_priority;
+
+typedef enum {
+ RLC_SUSPEND,
+ RLC_RESUME,
+ RLC_FAILED,
+ RLC_RECEIVE_NOT_READY,
+ RLC_RECEIVE_READY
+} grr_cause_enum;
+
+typedef enum {
+ SUBSCRIBED_RELIABILITY_CLASS = 0,
+ SM_QOS_UNUSED_RELIABILITY_CLASS = 1,
+ SM_QOS_RELIABILITY_CLASS_2_GTP_UNACK_LLC_ACK_RLC_ACK_PROTECTED_DATA = 2,
+ SM_QOS_RELIABILITY_CLASS_3_GTP_UNACK_LLC_UNACK_RLC_ACK_PROTECTED_DATA = 3,
+ SM_QOS_RELIABILITY_CLASS_4_GTP_UNACK_LLC_UNACK_RLC_UNACK_PROTECTED_DATA = 4,
+ SM_QOS_RELIABILITY_CLASS_5_GTP_UNACK_LLC_UNACK_RLC_UNACK_UNPROTECTED_DATA = 5,
+ SM_QOS_RELIABILITY_CLASS_7_RESERVED = 7
+} sm_readable_reliability_class_enum;
+
+typedef enum {
+ SUBSCRIBED_PRECEDENCE_CLASS = 0,
+ SM_QOS_PRECEDENCE_CLASS1_HIGH_PRIORITY = 1,
+ SM_QOS_PRECEDENCE_CLASS2_NORMAL_PRIORITY = 2,
+ SM_QOS_PRECEDENCE_CLASS3_LOW_PRIORITY = 3,
+ SM_QOS_RESERVED_PRECEDENCE_CLASS = 7
+} sm_readable_precedence_class_enum;
+
+typedef enum {
+ SUBSCRIBED_MEAN_THROUGHPUT_ = 0,
+ SM_QOS_MEAN_THROUGHPUT_100_OCTET_PER_HOUR = 1,
+ SM_QOS_MEAN_THROUGHPUT_200_OCTET_PER_HOUR = 2,
+ SM_QOS_MEAN_THROUGHPUT_500_OCTET_PER_HOUR = 3,
+ SM_QOS_MEAN_THROUGHPUT_1000_OCTET_PER_HOUR = 4,
+ SM_QOS_MEAN_THROUGHPUT_2000_OCTET_PER_HOUR = 5,
+ SM_QOS_MEAN_THROUGHPUT_5000_OCTET_PER_HOUR = 6,
+ SM_QOS_MEAN_THROUGHPUT_10000_OCTET_PER_HOUR = 7,
+ SM_QOS_MEAN_THROUGHPUT_20000_OCTET_PER_HOUR = 8,
+ SM_QOS_MEAN_THROUGHPUT_50000_OCTET_PER_HOUR = 9,
+ SM_QOS_MEAN_THROUGHPUT_100000_OCTET_PER_HOUR = 10,
+ SM_QOS_MEAN_THROUGHPUT_200000_OCTET_PER_HOUR = 11,
+ SM_QOS_MEAN_THROUGHPUT_500000_OCTET_PER_HOUR = 12,
+ SM_QOS_MEAN_THROUGHPUT_1000000_OCTET_PER_HOUR = 13,
+ SM_QOS_MEAN_THROUGHPUT_2000000_OCTET_PER_HOUR = 14,
+ SM_QOS_MEAN_THROUGHPUT_5000000_OCTET_PER_HOUR = 15,
+ SM_QOS_MEAN_THROUGHPUT_10000000_OCTET_PER_HOUR = 16,
+ SM_QOS_MEAN_THROUGHPUT_20000000_OCTET_PER_HOUR = 17,
+ SM_QOS_MEAN_THROUGHPUT_50000000_OCTET_PER_HOUR = 18,
+ SM_QOS_RESERVEDMEAN_THROUGHPUT = 30,
+ SM_QOS_MEAN_THROUGHPUT_BEST_EFFORT = 31
+} sm_readable_mean_throughput_enum;
+
+/* SM RATDM common enum begin */
+typedef enum{
+ RATDM_TRAFFIC_CLASS_CONVERSATIONAL = 1,
+ RATDM_TRAFFIC_CLASS_STREAMING = 2,
+ RATDM_TRAFFIC_CLASS_INTERACTIVE = 3,
+ RATDM_TRAFFIC_CLASS_BACKGROUND = 4,
+ RATDM_TRAFFIC_CLASS_UNKNOWN = 0xFF
+}ratdm_traffic_class_enum;
+/* SM RATDM common enum end */
+
+typedef enum {
+ SUBSCRIBED_TRAFFIC_CLASS_ = 0,
+ SM_QOS_CONVERSATIONAL_CLASS = 1,
+ SM_QOS_STREAMING_CLASS = 2,
+ SM_QOS_INTERACTIVE_CLASS = 3,
+ SM_QOS_BACKGROUND_CLASS = 4,
+ SM_QOS_RESERVED_TRAFFIC_CLASS = 7
+} sm_readable_traffic_class_enum;
+
+typedef enum {
+ SUBSCRIBED_DELIVERY_ORDER_ = 0,
+ SM_QOS_DELIVERY_ORDER_YES = 1,
+ SM_QOS_DELIVERY_ORDER_NO = 2,
+ SM_QOS_RESERVED_DELIVERY_ORDER = 3
+} sm_readable_delivery_order_enum;
+
+typedef enum {
+ SUBSCRIBED_DELIVERY_OF_ERRONEOUS_SDU= 0,
+ SM_QOS_DELIVERY_OF_ERRONEOUS_SDU_NO_DETECT = 1,
+ SM_QOS_DELIVERY_OF_ERRONEOUS_SDU_YES = 2,
+ SM_QOS_DELIVERY_OF_ERRONEOUS_SDU_NO = 3,
+ SM_QOS_RESERVED_DELIVERY_OF_ERRONEOUS_SDU = 7
+} sm_readable_delivery_of_err_sdu_enum;
+
+typedef enum {
+ SUBSCRIBED_BIT_ERROR_RATE_ = 0,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_5_10_2 = 1,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_2 = 2,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_5_10_3 = 3,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_4_10_3 = 4,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_3 = 5,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_4 = 6,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_5 = 7,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_1_10_6 = 8,
+ SM_QOS_RESIBUAL_BIT_ERROR_RATE_6_10_8 = 9,
+ SM_QOS_RESERVED_RESIBUAL_BIT_ERROR_RATE = 15
+} sm_readable_residual_bit_error_rate_enum;
+
+typedef enum {
+ SUBSCRIBED_SDU_ERR_RATIO_ = 0,
+ SM_QOS_SDU_ERR_RATIO_1_10_2 = 1,
+ SM_QOS_SDU_ERR_RATIO_7_10_3 = 2,
+ SM_QOS_SDU_ERR_RATIO_1_10_3 = 3,
+ SM_QOS_SDU_ERR_RATIO_1_10_4 = 4,
+ SM_QOS_SDU_ERR_RATIO_1_10_5 = 5,
+ SM_QOS_SDU_ERR_RATIO_1_10_6= 6,
+ SM_QOS_SDU_ERR_RATIO_1_10_1 = 7,
+ SM_QOS_RESERVED_SDU_ERR_RATIO = 15
+} sm_readable_sdu_err_ratio_enum;
+
+typedef enum {
+ SUBSCRIBED_TRAFFIC_HANDLING_PRIORITY = 0,
+ SM_QOS_TRAFFIC_HANDLING_PRIORITY_1 = 1,
+ SM_QOS_TRAFFIC_HANDLING_PRIORITY_2 = 2,
+ SM_QOS_TRAFFIC_HANDLING_PRIORITY_3 = 3
+} sm_readable_traffic_hndl_priority_enum;
+
+//#ifdef __REL6__ // increase QoS Length from 11 to 12
+typedef enum {
+ SM_NOT_OPTIMISED_FOR_SIGNALING_TRAFFIC= 0,
+ SM_OPTIMISED_FOR_SIGNALING_TRAFFIC = 1
+} signaling_indication_enum;
+
+typedef enum {
+ SM_QOS_SIGNALING_INDICATION_NOT_OPTIMISED_FOR_SIGNALING_TRAFFIC= 0,
+ SM_QOS_SIGNALING_INDICATION_OPTIMISED_FOR_SIGNALING_TRAFFIC = 1
+} sm_readable_signaling_indication_enum;
+
+typedef enum {
+ SM_UNKNOWN_SOURCE_STATISTICS_DESCRIPTOR= 0,
+ SM_SPEECH_SOURCE_STATISTICS_DESCRIPTOR = 1
+} source_statistics_descriptor_enum;
+
+typedef enum {
+ SM_QOS_SOURCE_STATISTICS_DESCRIPTOR_UNKNOWN_SOURCE_STATISTICS_DESCRIPTOR= 0,
+ SM_QOS_SOURCE_STATISTICS_DESCRIPTOR_SPEECH_SOURCE_STATISTICS_DESCRIPTOR = 1
+} sm_readable_source_statistics_descriptor_enum;
+//#endif // ~ __REL6__ // increase QoS Length from 11 to 12
+
+typedef enum
+{
+ MANUAL_RESELECTION = 0,
+ AUTO_RESELECTION = 1
+} plmn_reselection_enum;
+
+/*20130716, Bowu: MMDC B3&B39 Co_existing issue*/
+
+typedef enum
+{
+ PLMN_STATUS_NONE = 0,
+ PLMN_STATUS_AVAILABLE = 1,
+ PLMN_STATUS_CURRENT = 2,
+ PLMN_STATUS_FORBIDDEN = 3
+} plmn_status_enum;
+
+typedef enum{
+ GAS_EMERGENCY_CALL = 0,
+ GAS_REGISTRATION = 1,
+ GAS_DETACH = 2,
+ GAS_LOW_PRIORITY_SIG = 3,
+ GAS_CALL_RE_ESTABLISHMENT = 4,
+ GAS_SPEECH_CALL = 5,
+ GAS_DATA_CALL = 6,
+ GAS_PAGE_RESP = 7,
+ GAS_SS_DATA = 8
+}gas_est_cause_enum;
+
+
+typedef enum{
+ CSFB_SESSION_START = 0,
+ CSFB_SESSION_END = 1
+}cs_status_enum;
+
+typedef enum{
+ PLMN_LOSS_NORMAL = 0,
+ PLMN_LOSS_IRRDT_FAIL = 1
+}plmn_loss_reason_enum;
+
+/* Used for giving paging cause to MM and estab. cause to AS. Also
+ * used upto application */
+typedef enum
+{
+ ORIG_CONVER_CALL = 0,
+ ORIG_STREAMING_CALL = 1,
+ ORIG_INTERACTIVE_CALL = 2,
+ ORIG_BACKGROUND_CALL = 3,
+ ORIG_SUBSCRIBED_CALL = 4,
+ TERM_CONVER_CALL = 5,
+ TERM_STREAMING_CALL = 6,
+ TERM_INTERACTIVE_CALL = 7,
+ TERM_BACKGROUND_CALL = 8,
+ EMERGENCY_CALL = 9,
+ INTER_RAT_CELL_RESELECTION = 10,
+ INTER_RAT_CELL_CHANGE_ORDER = 11,
+ REGISTRATE = 12,
+ DETACH = 13,
+ HIGH_PRIORITY_SIG = 14,
+ LOW_PRIORITY_SIG = 15,
+ CALL_RE_ESTABLISHMENT = 16,
+ SPEECH_CALL = 17,
+ DATA_CALL = 18,
+ LOC_UPDATE = 19,
+ SMS_DATA = 20,
+ TCHF_OR_SDCCH_NEEDED = 21,
+ PAGE_RESP = 22,
+ MEAS_REPORT = 23,
+ IMSI_DETACH_PROC = 24,
+ MM_PROC = 25,
+ SS_DATA = 26,
+ VIDEO_CALL = 27 /* __REL6__ */
+} est_cause_enum;
+
+/*
+ * the mm_cause_enum includes
+ * 1. MM, GMM, EMM causes
+ * 2. MTK defined internal causes
+ */
+typedef enum {
+ CAUSE_NONE = 0x00,
+ IMSI_UNKNOWN_IN_HLR = 0x02,
+ ILLEGAL_MS = 0x03,
+ IMSI_UNKNOWN_IN_VLR = 0x04,
+ IMEI_NOT_ACCEPTED = 0x05,
+ ILLEGAL_ME = 0x06,
+ GPRS_NOT_ALLOWED = 0x07,
+ GPRS_NON_GPRS_NOT_ALLOWED = 0x08,
+ MS_ID_NOT_DERIVED_BY_NW = 0x09,
+ IMPLICIT_DETACH = 0x0a,
+ PLMN_NOT_ALLOWED = 0x0b,
+ LOCATION_AREA_NOT_ALLOWED = 0x0c,
+ ROAMING_AREA_NOT_ALLOWED = 0x0d,
+ GPRS_NOT_ALLOWED_IN_PLMN = 0x0e,
+ NO_SUITABLE_CELLS_IN_LA = 0x0f,
+ MSC_TEMP_NOT_REACHABLE = 0x10,
+ NETWORK_FAILURE = 0x11,
+ CS_DOMAIN_NOT_AVAILABLE = 0X12, /* LTE specific */
+ ESM_FAILURE = 0x13, /* LTE specific */
+ MAC_FAILURE = 0x14,
+ SYNC_FAILURE = 0x15,
+ CONGESTION = 0x16,
+ GSM_AUTHEN_UNACCEPTABLE = 0x17,
+ UE_SECURITY_CAPA_MISMATCH = 0x17,
+ SECURITY_REJECTED_UNSPECIFIED = 0x18, /* LTE specific */
+ NOT_AUTHORIZED_FOR_THIS_CSG = 0x19,
+ NON_EPS_AUTHEN_UNACCEPTABLE = 0x1a, /* LTE specific */
+ N1_MODE_NOT_ALLOWED = 0x1b, /* NR specific */
+ RESTRICTED_SERVICE_AREA = 0x1c, /* NR specific */
+ SERV_OPTION_NOT_SUPPORTED = 0x20,
+ REQ_SERV_OPTION_NOT_SUBSCRIBED = 0x21,
+ SERV_OPTION_TEMP_OUT_OF_ORDER = 0x22,
+ REQ_SERV_OPTION_NOT_AUTH_IN_PLMN = 0x23,
+ CALL_CANNOT_BE_IDENTIFIED = 0x26,
+ CS_DOMAIN_TEMP_NOT_AVAILABLE = 0x27, /* LTE specific */
+ NO_PDP_CONTEXT_ACTIVATED = 0x28,
+ SEVERE_NETWORK_FAILURE = 0x2A, /* LTE specific */
+ LADN_NOT_AVAILABLE = 0x2b,
+ MAX_NUM_PDU_SESSIONS_REACHED = 0x41,
+
+ RETRY_UPON_ENTRY_INTO_NEWCELL_MIN = 0x30, /* 30..3f */
+ RETRY_UPON_ENTRY_INTO_NEWCELL_MAX = 0x3f,
+
+ INSUFF_RESOURCES_SLICE_AND_DNN = 0x43,
+ INSUFF_RESOURCES_SLICE = 0x45,
+ NGKSI_ALREADY_IN_USE = 0x47,
+ N3GPP_ACCESS_TO_5GCN_NOT_ALLOWED = 0x48,
+ SERVING_NETWORK_NOT_AUTHORIZED = 0x49, /* NR specific */
+ PAYLOAD_NOT_FORWARDED = 0x5a,
+ DNN_NOT_SUP_SLICE = 0x5b,
+ INSUFF_UP_RES_FOR_PDU_SESSION = 0x5c,
+
+ SEMANTICALLY_INCORRECT_MSG = 0x5f,
+ INVALID_MM_MAND_INFO = 0x60,
+ MSG_TYPE_NON_EXISTENT = 0x61,
+ MSG_TYPE_NOT_IMPLEMENTED = 0x61,
+ MSG_TYPE_INCOMPAT_WITH_PROTO_STATE = 0x62,
+ IE_NOT_IMPLEMENTED = 0x63,
+ CONDITIONAL_MM_IE_ERROR = 0x64,
+ MSG_NOT_COMPAT_WITH_PROTO_STATE = 0x65, /* 65..6f */
+ PROTO_ERROR_UNSPECIFIED = 0x6f,
+ /* Incase if any more standard cause values are to be added then
+ * the cause having the greatest value should be placed just before
+ * the internal cause values.
+ */
+ /* The following cause are internal to Tcm and Gmm */
+ FORBIDDEN_PLMN = 0x70,
+ MODEM_INTERNAL_CAUSE_START = FORBIDDEN_PLMN, /* 0x70 */
+ ACCESS_CLASS_BARRED,
+ NO_COVERAGE,
+ GPRS_SERV_NOT_ALLOWED,
+ TIMER_EXPIRY,
+ SIM_INSERTED,
+ SIM_REMOVED,
+ SIM_ABSENT,
+ SIM_INVALID_FOR_PS,
+ SIM_INVALID_FOR_CS,
+ SIM_INVALID_FOR_CS_AND_PS,
+ LOW_LAYER_FAIL,
+ MM_CONN_IN_PROGRESS, /* 0x7c */
+ MM_NOT_UPDATED,
+ RR_CONN_ESTAB_FAILURE,
+ RRC_CONN_ABORT, /* 0x7f */
+ MM_CONN_FAILURE, /* 0x80 */
+ MM_EMERGENCY_NOT_ALLOWED,
+ NO_GPRS_COVERAGE,
+ MM_ABNORMAL_LU,
+ MM_ABNORMAL_LU_LESS_THEN_4_TIMES,
+ /* 24.008 CR# 1791 Start */
+ MM_ABNORMAL_LU_CONGESSION_CONTROL,
+ /* 24.008 CR# 1791 End */
+ MM_DO_NOT_NEED_PLMN_SEARCH,
+ MM_SAME_LAI_IMSI_ATTACHING, //erica tier one
+ MM_RECOVERY_SEARCH, //mtk02475
+ SEARCH_FINISHED,
+ MM_WAIT_FOR_RELEASE,
+ MM_REJ_CUZ_RR_IN_SUSPEND_MODE, /* for ATTACH_REJ *///0x8a
+ MM_IDLE_OOS_IND,
+ GPRS_IN_LIMITED_SERVICE, /* 0x8c */
+ AUTH_FAIL,
+ GMM_T3346_RUNNING,
+ MM_ABNORMAL_LU_LESS_THEN_4_TIMES_AFR_NEEDED, /* ALPS01811710: When LU Abnormal during CSFB happened, notify RAC special cause to hide the LU abnormal from UI. */
+ SIM_INVALID_FOR_LTE_BECAUSE_NON_USIM_INSERTED,
+ MM_ABNORMAL_LU_REJ17_MANUAL_MODE,
+ GMM_IN_VIRTUAL_MODE,
+ NWSEL_IVSR_START,
+ PLMN_LOSS, /* For report PLMN_LOSS when control by GMSS */
+ ABORTED_BY_UPPER_LAYER,
+ MM_IN_VIRTUAL_MODE,
+ MM_CAUSE_ENUM_END = MM_IN_VIRTUAL_MODE
+}mm_cause_enum;
+
+typedef enum
+{
+ MM_CAUSE_SOURCE_OTHER =0,
+ MM_CAUSE_SOURCE_LU_REJECT =1,
+ MM_CAUSE_SOURCE_CMSERVICE_REJECT =2,
+ MM_CAUSE_SOURCE_ABORT =3,
+ MM_CAUSE_SOURCE_ATTACH_REJECT =4,
+ MM_CAUSE_SOURCE_COMBINED_ATTACH_NON_GPRS =5,
+ MM_CAUSE_SOURCE_RAU_REJECT =6,
+ MM_CAUSE_SOURCE_COMBINED_RAU_NON_GPRS =7,
+ MM_CAUSE_SOURCE_SERVICE_REJECT =8,
+ MM_CAUSE_SOURCE_NW_DETACH =9,
+}mm_cause_source_enum;
+
+
+typedef enum
+{
+ isABSENT = 0,
+ isPRESENT = 1
+}isPresent_enum;
+
+typedef enum
+{
+ is_absent = 0,
+ is_present = 1
+}is_present_enum;
+
+typedef enum
+{
+ CS_SERVICE = 0,
+ PS_SERVICE,
+ CS_PS_SERVICE,
+ NONE_SERVICE
+}mm_user_regn_type_enum;
+
+typedef enum
+{
+ CS_SERVICE_DETACH = 0,
+ PS_SERVICE_DETACH,
+ CS_PS_SERVICE_DETACH
+}mm_user_srv_detach_enum;
+
+typedef enum
+{
+ MMI_SEARCH_ANY,
+ MMI_SEARCH_NORMAL,
+ MMI_SEARCH_NONE
+} mm_user_search_type_enum;
+
+typedef enum
+{
+ SEARCH_CAUSE_NONE=0,
+ SEARCH_CAUSE_UNBLOCK_ILLEGAL_ME, /*the search is triggered by illeagl sim unblock*/
+ SEARCH_CAUSE_COPS_AUTO
+} mm_user_search_cause_enum;
+
+typedef enum {
+ STORED_AND_FULL_BAND,
+ STORED_ONLY,
+ FULL_BAND,
+} scan_type_enum ;
+
+typedef enum {
+ FINISHED,
+ NOT_FINISHED,
+} fullband_result_enum ;
+
+typedef enum {
+ NOT_USED_SEARCH_PERIOD, // not switch
+ SHORT_SEARCH_PERIOD, // ECC or MCC search
+ NORMAL_SEARCH_PERIOD, // other fullband
+} search_period_enum;
+
+typedef enum {
+ CALL_STATUS_START, // start of user view call
+ CALL_STATUS_STOP // end of user view call
+} call_status_enum;
+
+typedef enum {
+ SMS_STATUS_START, // start of SMS session
+ SMS_STATUS_STOP, // end of SMS session
+ SMS_STATUS_NUM,
+} sms_status_enum;
+
+typedef enum {
+ IMCSMS_STATUS_START, // start of SMS session
+ IMCSMS_STATUS_STOP, // end of SMS session
+ IMCSMS_STATUS_NUM,
+} imcsms_status_enum;
+
+typedef enum {
+ SMS_MO = 0,
+ SMS_MT
+}sms_direction_enum;
+
+typedef enum {
+ CALL_TYPE_INDICATION_NORMAL, // the call is normal call
+ CALL_TYPE_INDICATION_EMERGENCY, // the call is emergency call
+ CALL_TYPE_INDICATION_NULL // NULL
+} call_type_indication_enum;
+
+typedef enum {
+ NO_ERROR_PLMN_LIST_RESULT = 0,
+ CANNOT_PROCESS_PLMN_LIST_RESULT = 1,
+} plmn_list_result_enum ;
+
+typedef enum {
+ AS_PLMN_LIST_RESULT_SUCCESS,
+ AS_PLMN_LIST_RESULT_FAILURE
+} as_plmn_list_result_enum;
+
+typedef enum {
+ NO_ACTION_FOR_PLMN_SEARCH = 0,
+ NO_ACTION_FOR_PLMN_LIST = 1
+} no_action_cause_enum;
+
+typedef enum
+{
+ CAPABILITY_DISABLED,
+ CAPABILITY_ENABLED,
+ CAPABILITY_INVALID, // For initialization
+} capability_switch_enum;
+
+typedef enum
+{
+ NAS_SV_CAP_GSM_FDD,
+ NAS_SV_CAP_UMTS,
+#ifdef __UMTS_TDD128_MODE__
+ NAS_SV_CAP_GSM_TDD,
+ NAS_SV_CAP_TDSCDMA,
+#endif
+ NAS_SV_CAP_LTE,
+ NAS_SV_CAP_NR,
+ NAS_SV_CAP_TOTAL,
+} nas_sv_capability_rat_enum;
+
+typedef enum
+{
+ NAS_SV_CAP_UPDATE_PROC_SYS_INFO,
+ NAS_SV_CAP_UPDATE_PROC_ATTACH,
+} nas_sv_capability_update_procedure_type_enum;
+
+typedef enum
+{
+ NAS_SV_LOCAL_REL_WAIT_TO_IDLE = 0,
+ NAS_SV_LOCAL_REL_FORCE_RELEASE = 0x1,
+ NAS_SV_LOCAL_REL_ENALBE_S1_N1_MODE = 0x2,
+ NAS_SV_LOCAL_REL_USER_TRIGGER = 0x4,
+} nas_sv_local_release_cause_enum;
+
+typedef enum {
+ NWSEL_IMS_NORMAL_SERVICE = 0, /* NAS registration success */
+ NWSEL_IMS_LIMITED_SERVICE,
+ NWSEL_IMS_NO_SERVICE /* plmn loss/idle oos happen */
+} nwsel_ims_service_enum;
+
+typedef enum
+{
+ NWSEL_PLMN_LIST_INVALID = 0,
+ NWSEL_PLMN_LIST_AVAILABLE = 1,
+ NWSEL_PLMN_LIST_CURRENT = 2,
+ NWSEL_PLMN_LIST_FORBIDDEN = 3
+}nwsel_plmn_list_status_enum;
+
+typedef enum
+{
+ NWSEL_INTERNATIONAL_ROAMING_NOT_ALLOW = 1,
+ NWSEL_NATIONAL_ROAMING_NOT_ALLOW = 2,
+ NWSEL_FPLMN_NOT_ALLOW = 3,
+ NWSEL_NON_EXISING_NOT_ALLOW = 4,
+ NWSEL_FAILURE_NOT_ALLOW = 5,
+ NWSEL_CUSTOMER_FPLMN_NOT_ALLOW = 6,
+ NWSEL_CUSTOMER_TEST_MODE_FPLMN_NOT_ALLOW = 7,
+ NWSEL_SPRINT_INT_LTE_ROAMING_NOT_ALLOW = 8,
+ NWSEL_LTE_ROAMING_NOT_ALLOW = 9,
+ NWSEL_NR_ROAMING_NOT_ALLOW = 10,
+ NWSEL_MCC_NOT_IN_ALLOWED_MCC_LIST = 11
+}nwsel_plmn_not_allow_reason_enum;
+
+/* Define the search action after receiving specific reject cause in AUTO/MANUAL mode*/
+typedef enum
+{
+ NWSEL_SEARCH_ACTION_DEFAULT,
+
+ /* Reject 13 */
+ NWSEL_AUTO_SEARCH_NEXT_PLMN_RAT_AFTER_REJ13,
+ NWSEL_AUTO_SEARCH_NEXT_PLMN_AFTER_REJ13,
+ NWSEL_AUTO_SEARCH_CURR_PLMN_RAT_AFTER_REJ13,
+ NWSEL_MANUAL_SEARCH_NEXT_PLMN_RAT_AFTER_REJ13,
+ NWSEL_MANUAL_SEARCH_NEXT_PLMN_AFTER_REJ13,
+ NWSEL_MANUAL_SEARCH_CURR_PLMN_RAT_AFTER_REJ13,
+
+ /* Reject 15 */
+ NWSEL_AUTO_SEARCH_NEXT_PLMN_RAT_AFTER_REJ15,
+ NWSEL_AUTO_SEARCH_CURR_PLMN_RAT_AFTER_REJ15,
+ NWSEL_MANUAL_SEARCH_NEXT_PLMN_RAT_AFTER_REJ15,
+ NWSEL_MANUAL_SEARCH_CURR_PLMN_RAT_AFTER_REJ15,
+
+ NWSEL_SEARCH_ACTION_NUM_MAX
+} nwsel_search_action_for_reject_cause_enum;
+
+typedef enum
+{
+ NWSEL_PLMN_TIMER_REASON_NONE,
+ NWSEL_PLMN_TIMER_REASON_REJ_42,
+ NWSEL_PLMN_TIMER_ATNT_BACKOFF,
+ NWSEL_PLMN_TIMER_EUTRAN_NO_SUITABLE,
+ NWSEL_PLMN_TIMER_NO_PDN_AVAILABLE,
+#ifdef UNIT_TEST
+ NWSEL_PLMN_TIMER_UT_IMS_PDN_THROTTLING,
+#endif
+ /* For VzW CDMA-less, we need to start TPLMN_barring for PLMN where voice is not possible on EUTRAN */
+ NWSEL_PLMN_TIMER_VZW_EUTRAN_BARRING,
+
+ /* For VzW CDMA-less, we need to start T5GNRSA_barring timer for PLMN where voice is not possible on NR */
+ NWSEL_PLMN_TIMER_VZW_5GNRSA_BARRING,
+
+ /* TS 24.301 subclause 4.5
+ * As an implementation option, the UE may start a timer for enabling E-UTRA when the UE's attach attempt
+ * counter or tracking area updating attempt counter reaches 5 and the UE disables E-UTRA capability for cases
+ * described in subclauses 5.5.1.3.4.3, 5.5.1.3.6, 5.5.3.3.4.3 and 5.5.3.3.6.
+ */
+ NWSEL_PLMN_TIMER_EUTRAN_ABNORMAL,
+ /* TS 23.122 subclause 3.1
+ * If MS that has disabled its E-UTRA capability re-enables it when PLMN selection is performed, then the MS
+ * should, for duration of timer TD, memorize the PLMNs where E-UTRA capability was disabled as PLMNs where voice
+ * service was not possible.
+ */
+ NWSEL_PLMN_TIMER_EUTRAN_VOICE_NOT_POSSIBLE,
+ /* TS 23.122 subclause 3.1
+ * The MS should maintain a list of PLMNs where the N1 mode capability was disabled due to receipt of a reject
+ * from the network with 5GMM cause #27, as PLMNs where N1 mode is not allowed...
+ * the MS should add the identity of the PLMN to the list of PLMNs wherre N1 mode is not allowed and should
+ * start timer TG if timer TG is not already running.
+ */
+ NWSEL_PLMN_TIMER_N1_MODE_NOT_ALLOW,
+ /* TS 24.501 subclause 4.9 R15
+ If the UE attempts to establish an emergency PDU session in a PLMN where N1 mode capability was disabled due
+ to the UE`s registration attempt counter have reached 5, the UE may enable N1 mode capability for that PLMN
+ memorized by the UE.
+
+ NOTE 2: the value of the timer for re-enabling N1 mode capability is recommended to be the same as the value
+ of T3502 which follows the handling specified in subclause 5.3.8.
+ */
+ NWSEL_PLMN_TIMER_N1_ABNORMAL,
+ /* TS 23.122 subclause 3.1 R15
+ * When the MS disables its N1 mode capability due to IMS voice not available and the MS`s usage setting was
+ * "voice centric":the MS should add the identity of the PLMN to the list of PLMNs where voice service was not
+ * possible in N1 mode and should start timer TF if timer TF is not already running.
+ */
+ NWSEL_PLMN_TIMER_N1_VOICE_NOT_POSSIBLE,
+ NWSEL_PLMN_TIMER_HPLMN_REJ_14,
+ NWSEL_PLMN_TIMER_VZW_VGMM_T3502,
+ NWSEL_PLMN_TIMER_VZW_VGMM_T3525,
+ NWSEL_PLMN_TIMER_VZW_VGMM_SR_THROTTLING,
+
+ NWSEL_PLMN_TIMER_N1_MAX_PDU_EST_TIMEOUT_REACHED, /* ATT LTE-N37-1-3706 step 5 */
+ NWSEL_PLMN_TIMER_N1_DISABLE_4G5_IRAT_FAIL_FTA,
+}nwsel_plmn_timer_reason_enum;
+
+/* the enum is used in ICD, please append new added enum, not insert it */
+typedef enum
+{
+ NWSEL_REASON_NONE = 0,
+ NWSEL_GPRS_FPLMN,
+ NWSEL_ESM_FPLMN,
+ NWSEL_CUSTOM_EUTRAN_DISABLE,
+ NWSEL_CUSTOM_N1_DISABLE,
+ NWSEL_CUSTOM_ENDC_DISABLE,
+ NWSEL_ATNT_BACKOFF,
+ NWSEL_REJ_42,
+ NWSEL_VZW_HVOLTE_IMS_NOT_ROAMING_CS_18,
+ NWSEL_ATNT_DISABLE_LTE,
+ NWSEL_CS_PS_CAUSE,
+ NWSEL_DATA_OFF_IMS_OFF,
+ NWSEL_DATA_ROAMING_OFF_IMS_OFF,
+ NWSEL_ROAMING_NOT_ALLOW,
+ NWSEL_VOICE_CENTRIC_S1_DISABLED,
+ NWSEL_5G_SA_OPTION_2_NOT_ENABLED,
+ NWSEL_RAT_IS_NOT_ENABLED,
+ NWSEL_CANNOT_HAVE_PS_NORMAL_SERVICE,
+ NWSEL_DISABLE_PLMN_BASE_TIMER_RUNNING,
+
+ /* PLMN BASE TIMER start */
+ NWSEL_DISABLE_TIMER_REASON_REJ_42,
+ NWSEL_DISABLE_TIMER_ATNT_BACKOFF,
+ NWSEL_DISABLE_TIMER_NO_SUITABLE,
+ NWSEL_DISABLE_TIMER_NO_PDN_AVAILABLE,
+ NWSEL_DISABLE_TIMER_EUTRAN_VZW_BARRING,
+ NWSEL_DISABLE_TIMER_EUTRAN_ABNORMAL,
+ NWSEL_DISABLE_TIMER_EUTRAN_VOICE_NOT_POSSIABLE,
+ NWSEL_DISABLE_TIMER_N1_NOT_ALLOW,
+ NWSEL_DISABLE_TIMER_N1_ABNORMAL,
+ NWSEL_DISABLE_TIMER_N1_VOICE_NOT_POSSIABLE,
+ NWSEL_DISABLE_TIMER_5GNRSA_VZW_BARRING,
+ NWSEL_DISABLE_TIMER_EUTRAN_HPLMN_REJ_14,
+ NWSEL_DISABLE_TIMER_N1_DISABLE_4G5_IRAT_FAIL_FTA,
+
+ /* NAS not allow cause */
+ NWSEL_NAS_NOT_ALLOW_NO_PDN,
+ NWSEL_NAS_NOT_ALLOW_T3402,
+ NWSEL_NAS_NOT_ALLOW_THROTTLING_APN,
+ NWSEL_NAS_NOT_ALLOW_EMC_BS,
+
+ /* VzW VGMM NAS not allow cause */
+ NWSEL_NAS_NOT_ALLOW_VZW_VGMM_T3502,
+ NWSEL_NAS_NOT_ALLOW_VZW_VGMM_T3525,
+ NWSEL_NAS_NOT_ALLOW_VZW_VGMM_SR_THROTTLING,
+ NWSEL_NAS_NOT_ALLOW_VZW_VGMM_N1_MODE_NOT_ALLOWED,
+
+ /* PLMN BASE TIMER start */
+ NWSEL_DISABLE_TIMER_N1_ABNORMAL_IRAT_FAIL,
+
+ /* common reason*/
+ NWSEL_DISABLE_BASED_ON_MRS_CONFIG,
+ NWSEL_IMS_OFF_AND_CS_UNAVAILABLE,
+
+ NWSEL_DISABLE_TIMER_N1_MAX_PDU_EST_TIMEOUT_REACHED,
+
+ /* VzW VGMM NAS not allow cause */
+ NWSEL_NAS_NOT_ALLOW_VZW_VGMM_N1_MODE_NOT_ALLOWED_TG,
+} nwsel_capability_disabled_reason_enum;
+
+typedef enum {
+ COUNTRY_NOT_CAMPED,
+ COUNTRY_UNKNOWN,
+ COUNTRY_INDIA
+}nwsel_country_enum;
+
+typedef enum
+{
+ FOUND_IND_DURING_SEARCH = 0,
+ FOUND_IND_DURING_USER_LIST = 1,
+}found_ind_source_enum;
+
+typedef enum
+{
+ LIST_IND_SYS_INFO = 0,
+ LIST_IND_AVAILABLE = 1,
+ LIST_IND_USER = 2,
+ LIST_IND_FIRST_FOUND = 3,
+ LIST_IND_FOUND_IND = 4,
+}list_ind_source_enum;
+
+
+typedef enum
+{
+ USER_LIST_TYPE_NORMAL = 0,
+ USER_LIST_TYPE_FAST = 1,
+ USER_LIST_TYPE_GIVEN_TIMER_NUMBER = 3,
+ USER_LIST_TYPE_IPC_NW_SCAN = 4,
+ USER_LIST_TYPE_CELL_MEAS = 5,
+}user_list_type_enum;
+
+/* MM Peer to Peer Message type values */
+/* the general format of value if 0x-- ---- where x stands
+ * for send sequence number.The peer messages from n/w will set it to
+ * 0 see section 10.4 of GSM 04.08.In the case of MO peer messages,RR
+ * will add send sequence number. The value filled by MM for x is
+ * zero. */
+
+typedef enum{
+ MM_PEER_MSG_BEGIN = 0x01, /* 1 */
+ MM_PEER_IMSI_DETACH_IND_MSG = MM_PEER_MSG_BEGIN,
+ MM_PEER_LOC_UPDATING_ACC_MSG = 0x02, /* 2 */
+ MM_PEER_LOC_UPDATING_REJ_MSG = 0x04, /* 4 */
+ MM_PEER_LOC_UPDATING_REQ_MSG = 0x08, /* 8 */
+ MM_PEER_AUTHEN_REJ_MSG = 0x11, /* 17 */
+ MM_PEER_AUTHEN_REQ_MSG = 0x12, /* 18 */
+ MM_PEER_AUTHEN_RSP_MSG = 0x14, /* 20 */
+ MM_PEER_AUTHEN_FAIL_MSG = 0x1C, /* 28 */
+ MM_PEER_IDENTITY_REQ_MSG = 0x18, /* 24 */
+ MM_PEER_IDENTITY_RSP_MSG = 0x19, /* 25 */
+ MM_PEER_TMSI_REALLOC_CMD_MSG = 0x1a, /* 26 */
+ MM_PEER_TMSI_REALLOC_CMPL_MSG = 0x1b, /* 27 */
+ MM_PEER_CM_SERVICE_ACC_MSG = 0x21, /* 33 */
+ MM_PEER_CM_SERVICE_REJ_MSG = 0x22, /* 34 */
+ MM_PEER_CM_SERVICE_ABRT_MSG = 0x23, /* 35 */
+ MM_PEER_CM_SERVICE_REQ_MSG = 0x24, /* 36 */
+ MM_PEER_CM_SERVICE_PRMPT_MSG = 0x25, /* 37 */
+ MM_PEER_PAGING_RSP_MSG = 0x27, /* 39 */
+ MM_PEER_CM_REEST_REQ_MSG = 0x28, /* 40 */
+ MM_PEER_ABORT_MSG = 0x29, /* 41 */
+ MM_PEER_MM_NULL_MSG = 0x30, /* 48 */
+ MM_PEER_MM_STATUS_MSG = 0x31, /* 49 */
+ MM_PEER_MM_INFORMATION_MSG = 0x32, /* 50 */
+ MM_TOT_PEER_MSG
+} mm_peer_msg_type_enum;
+
+#define MAX_VAL(VAL_A, VAL_B) (((VAL_A) > (VAL_B)) ? (VAL_A):(VAL_B))
+
+/* Lanslo 20060621: modify type size for VC simulator environment */
+ #ifdef __MTK_TARGET__
+ #define RLC_UL_CTRL_HEADER_LENGTH 14 //sizeof rlc_peer_data_info_struct
+ #else
+ #define RLC_UL_CTRL_HEADER_LENGTH 32 //sizeof rlc_peer_data_info_struct
+ #endif
+/* eo Lanslo 20060621 */
+
+#define RLC_DL_CTRL_HEADER_LENGTH 3 //sizeof rlc_dl_blk_struct
+/* Claire 041116 change : Adapt EGPRS DL interface */
+#ifdef __EGPRS_MODE__
+#define RLC_DL_EGPRS_CTRL_HEADER_LENGTH 3 //sizeof rlc_dl_egprs_blk_struct
+#endif
+
+#define SND_DL_CTRL_HEADER_LENGTH 12 //The size of snd_nsapi_dl_snpdu_buff_struct
+#define LLC_HEADER_LENGTH 5
+#define LLC_TAIL_LENGTH 3
+
+//The size of (24, llsnd_unitdata_req_struct, llsnd_data_req_struct, LLC_HEADER_LENGTH+RLC_UL_CTRL_HEADER_LENGTH)
+/* #define SND_UL_FREE_HEADER_LENGTH 24 */
+#define SND_UL_FREE_HEADER_LENGTH MAX_VAL(24, (LLC_HEADER_LENGTH+RLC_UL_CTRL_HEADER_LENGTH))
+
+
+typedef enum
+{
+ LLC_SAPI_NOT_ASSIGNED = 0,
+ LLC_SAPI1 = 1,
+ LLC_SAPI2 = 2,
+ LLC_SAPI3 = 3,
+ LLC_SAPI5 = 5,
+ LLC_SAPI7 = 7,
+ LLC_SAPI8 = 8,
+ LLC_SAPI9 = 9,
+ LLC_SAPI11 = 11
+}llc_sapi_enum;
+
+typedef enum {
+ SUBSCRIBED_TRANSFER_DELAY = 0,
+ RESERVED_NW_TO_MS_TRANSFER_DELAY = 0,
+ TRANSFER_DELAY1 = 1,
+ TRANSFER_DELAY2 = 15,
+ TRANSFER_DELAY3 = 16,
+ TRANSFER_DELAY4 = 31,
+ TRANSFER_DELAY5 = 32,
+ TRANSFER_DELAY6 = 62,
+ RESERVED_BIDIRECT_TRANSFER_DELAY = 63
+} transfer_delay_enum;
+
+typedef enum {
+ RESERVED_NW_TO_MS_MAX_SDU_SIZE = 0,
+ SUBSCRIBED_MS_TO_NW_MAX_SDU_SIZE = 0,
+ SDU_SIZE_1502_OCTETS = 151,
+ SDU_SIZE_1510_OCTETS = 152,
+ SDU_SIZE_1520_OCTETS = 153,
+ RESERVED_BIDIRECT_MIN_SDU_SIZE = 154,
+ RESERVED_BIDIRECT_MAX_SDU_SIZE = 255
+} max_sdu_size_enum;
+
+typedef enum {
+ SUBSCRIBED_MAX_BIT_RATE_UPLINK = 0,
+ RESERVED_NW_TO_MS_MAX_BIT_RATE_UPLINK = 0,
+ MAX_BIT_RATE_UPLINK1 = 1,
+ MAX_BIT_RATE_UPLINK2 = 63,
+ MAX_BIT_RATE_UPLINK3 = 64,
+ MAX_BIT_RATE_UPLINK4 = 127,
+ MAX_BIT_RATE_UPLINK5 = 128,
+ MAX_BIT_RATE_UPLINK6 = 254,
+ MAX_BIT_RATE_UPLINK_ZERO = 255 // erica __SM_3G__
+ //RESERVED_BIDIRECT_MAX_BIT_RATE_UPLINK = 255 // meaning is changed in R99 according to 24.008
+} max_bit_rate_uplink_enum;
+
+typedef enum {
+ SUBSCRIBED_MAX_BIT_RATE_DOWNLINK= 0,
+ RESERVED_NW_TO_MS_MAX_BIT_RATE_DOWNLINK = 0,
+ MAX_BIT_RATE_DOWNLINK1 = 1,
+ MAX_BIT_RATE_DOWNLINK2 = 63,
+ MAX_BIT_RATE_DOWNLINK3 = 64,
+ MAX_BIT_RATE_DOWNLINK4 = 127,
+ MAX_BIT_RATE_DOWNLINK5 = 128,
+ MAX_BIT_RATE_DOWNLINK6 = 254,
+ MAX_BIT_RATE_DOWNLINK_ZERO = 255 // erica __SM_3G__
+ //RESERVED_BIDIRECT_MAX_BIT_RATE_DOWNLINK= 255 // meaning is changed in R99 according to 24.008
+} max_bit_rate_downlink_enum;
+
+typedef enum {
+ SUBSCRIBED_GUARANTD_BIT_RATE_UPLINK = 0,
+ RESERVED_NW_TO_MS_GUARANTD_BIT_RATE_UPLINK = 0,
+ GUARANTD_BIT_RATE_UPLINK1 = 1,
+ GUARANTD_BIT_RATE_UPLINK2 = 63,
+ GUARANTD_BIT_RATE_UPLINK3 = 64,
+ GUARANTD_BIT_RATE_UPLINK4 = 127,
+ GUARANTD_BIT_RATE_UPLINK5 = 128,
+ GUARANTD_BIT_RATE_UPLINK6 = 254,
+ RESERVED_BIDIRECT_GUARANTD_BIT_RATE_UPLINK = 255
+} guarantd_bit_rate_uplink_enum;
+
+typedef enum {
+ SUBSCRIBED_GUARANTD_BIT_RATE_DOWNLINK= 0,
+ RESERVED_NW_TO_MS_GUARANTD_BIT_RATE_DOWNLINK = 0,
+ GUARANTD_BIT_RATE_DOWNLINK1 = 1,
+ GUARANTD_BIT_RATE_DOWNLINK2 = 63,
+ GUARANTD_BIT_RATE_DOWNLINK3 = 64,
+ GUARANTD_BIT_RATE_DOWNLINK4 = 127,
+ GUARANTD_BIT_RATE_DOWNLINK5 = 128,
+ GUARANTD_BIT_RATE_DOWNLINK6 = 254,
+ RESERVED_BIDIRECT_GUARANTD_BIT_RATE_DOWNLINK= 255
+} guarantd_bit_rate_downlink_enum;
+
+
+typedef kal_uint8 band_selection_enum;
+#define BAND_P900 0x01
+#define BAND_E900 0x02
+#define BAND_R900 0x04
+#define BAND_1800 0x08
+#define BAND_1900 0x10
+#define BAND_DUAL (BAND_P900|BAND_E900|BAND_1800)
+#define BAND_850 0x80
+
+typedef enum
+{
+ CELL_CHANGED ,
+ LA_CHANGED,
+ PLMN_CHANGED,
+ NUM_OF_GS_CHANGED
+} cb_geography_enum;
+
+/* UAS/GAS <-> RATCM begin */
+
+typedef enum {
+ NM_1 = 0,
+ NM_2 = 1,
+ NM_3 = 2,
+ NM_NONE = 3
+}network_mode_enum;
+
+
+typedef enum {
+ PLMN_NOT_FOUND = 0,
+ PLMN_FOUND = 1,
+ CANNOT_PROCESS = 2,
+ GEMINI_SUSPENDED_FAILURE = 3
+} plmn_search_result_enum;
+
+typedef enum {
+ CANT_PROC_REASON_NONE = 0,
+ CANT_PROC_REASON_SIM_NOT_VALID
+} plmn_search_cant_proc_reason_enum;
+
+typedef enum {
+ PLMN_SEARCH_UNRELATED = 0,
+ PLMN_SEARCH_FINISHED = 1,
+ PLMN_SEARCH_STARTED = 2,
+} plmn_search_status_enum;
+
+typedef enum {
+ DISABLE_INTERNATIONAL_ROAMING_SETTING = 0,
+ DISABLE_NATIONAL_ROAMING_SETTING = 1,
+ DISABLE_HPPLMN_SEARCH_SETTING = 2
+} roaming_setting_enum;
+
+typedef enum {
+ NWSEL_PAM_NO_AVAILABLE_PDN = 0,
+ NWSEL_PAM_HAS_AVAILABLE_PDN = 1
+} pdn_update_event_enum;
+
+typedef enum {
+ CELL_TYPE_SUITABLE = 0,
+ CELL_TYPE_ACCEPTABLE = 1,
+ CELL_TYPE_CAMPED_NOT_ALLOWED = 2,
+ CELL_TYPE_NOT_APPLICABLE = 3
+} as_cell_type_enum;
+
+
+typedef enum {
+ CELL_BAND_INFO_TYPE_NONE = 0,
+ CELL_BAND_INFO_TYPE_MRU = 1,
+ CELL_BAND_INFO_TYPE_RAL = 2,
+} cell_band_info_type_enum;
+
+#if 0 /* move to cross core */
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+typedef enum {
+ NWSEL_MSG_PLMN_LOSS = 0,
+ NWSEL_MSG_PLMN_SEARCH_CNF = 1,
+ NWSEL_MSG_EUTRAN_DISABLE_INFO = 2
+}nwsel_interlayer_msg_enum; //add for auto test tool
+
+typedef enum {
+ ADD_CSG = 0,
+ DEL_CSG = 1
+} csg_update_type_enum;
+
+typedef enum{
+ FORBID_LA_FOR_REG_PROV_SERVICE = 0,
+ FORBID_LA_FOR_ROAMING = 1
+} forbidden_la_type_enum;
+
+typedef enum
+{
+ /* UTRAN has not used IE "Ciphering Info" in SECURITY MODE COMMAND to start controlling the ciphering. */
+ CipheringNotStarted = 0,
+ CipheringUEA0, /* Use algorithm UEA0 for ciphering*/
+ CipheringUEA1 /* Use algorithm UEA1 for ciphering*/
+#ifdef __UMTS_R7__
+ ,
+ CipheringUEA2 /* Use algorithm UEA2 for ciphering*/
+#endif
+} Ciphering_Status;
+
+typedef enum{
+ PROC_STATUS_NONE = 0,
+ ATTACH_PROCEDURE_START = 1,
+ ATTACH_PROCEDURE_SUCCESS = 2,
+ RAU_PROCEDURE_START = 3,
+ RAU_PROCEDURE_SUCCESS = 4,
+ SERVICE_PROCEDURE_START = 5,
+ SERVICE_PROCEDURE_SUCCESS = 6,
+ ATTACH_PROCEDURE_FAILURE = 7,
+ RAU_PROCEDURE_FAILURE = 8,
+ SERVICE_PROCEDURE_FAILURE = 9,
+ NW_INIT_DETACH_PROCEDURE = 10,
+ CS_DETACH_START = 11,
+ PS_DETACH_START = 12,
+ CS_PS_DETACH_START = 13,
+ LU_PROCEDURE_SUCCESS = 14,
+ LU_PROCEDURE_FAILURE = 15,
+ CM_SERVICE_FAILURE = 16,
+ CS_AUTH_REJ = 17,
+ CS_AUTH_FAIL = 18,
+ PS_AUTH_REJ = 19,
+ PS_AUTH_FAIL = 20,
+ CS_PS_POWER_OFF = 21,
+ DETACH_PROCEDURE_END = 22,
+ MS_IN_LIMITED_SERVICE = 23, /* for FAST_RECOVERY */
+ MS_IN_NO_SERVICE = 24, /* for FAST_RECOVERY */
+ MS_STATE_CHANGE = 25,
+ LTE_REG_PROCEDURE_SUCCESS = 26,
+ ATTACH_PROCEDURE_FOR_PS_SWITCH_SUCCESS = 27, // for __SGLTE__ usage
+ MS_IN_GEMINI_SUSPEND = 28, // for Gemini suspend state notify to 4G
+ MS_STOP_SNIFF = 29,
+ MS_PLMN_LOSS = 30, /* for report PLMN_LOSS when control by GMSS*/
+}regn_proc_status_enum;
+
+/* Ripple */
+typedef enum {
+ MMAS_NO_CHG_IN_REGN_STATUS = 0,
+ MMAS_CS_ATTACHED = 1,
+ MMAS_PS_ATTACHED = 2,
+ MMAS_CS_PS_ATTACHED = 3,
+ MMAS_CS_DETACHED = 4,
+ MMAS_PS_DETACHED = 5,
+ MMAS_CS_PS_DETACHED = 6
+}mmas_regn_status_enum;
+
+typedef enum {
+ AS_REL_SCOPE_SIGNALING,
+ AS_REL_SCOPE_CONNECTION,
+}as_rel_scope_enum;
+
+typedef enum {
+ AS_SNIFF_SERVICE_INVALID,
+ AS_SNIFF_FOR_PWS_AND_BETTER_SERVICE,
+ AS_SNIFF_FOR_LIMITED_AND_BETTER_SERVICE,
+ AS_SNIFF_FOR_NORMAL_SERVICE,
+}as_sniffer_req_service_enum;
+
+typedef enum {
+ AS_SNIFFER_TARGET_LIST,
+ AS_SNIFFER_TARGET_ANY_LIST,
+}as_sniffer_plmn_list_operate_type_enum;
+
+typedef enum {
+ CAUSE_AUTH_FAIL,
+#ifdef __GEMINI__
+ CAUSE_RSIM_ABORT,
+ CAUSE_LEAVE_VIRTUAL_CONNECTED,
+#endif
+ CAUSE_OTHERS
+}conn_rel_cause_enum;
+
+typedef enum
+{
+ IMSI_TYPE = 0x01,
+ TMSI_TYPE = 0x04,
+ PTMSI_TYPE = 0x04,
+ INVALID_UE_ID_TYPE = 0xff
+} ue_id_type_enum;
+
+typedef enum
+{
+ AS_CONN_EST_SUCC = 0,
+ ACCESS_BARRED = 1,
+ IMM_ASSGN_REJECT_RCVD = 2,
+ RAND_ACC_FAILURE = 3,
+ RR_NO_SERVICE = 4,
+ GIBI_TAG_MISMATCH = 5,
+ UAS_CONN_EST_FAILURE = 6,
+ RR_PLMN_SRCH_REJ_EMERGENCY = 7,
+ REDIRECT_SUCC = 8,
+ /*Byron: 2007/05/08: Add reject cause for CCO activation timer is running*/
+ CCO_ACTIVATION_TIME_ONGOING= 9,
+ CONN_EST_ABORTED = 10
+#ifdef __GEMINI__ //20080922
+ ,
+ AS_IN_SUSPEND_MODE = 11 /* for AS suspend mode in dual RR task */
+#endif /* __GEMINI__ */
+ , CSFB_SEARCH_OTHER_RAT = 12,
+ CELL_CHANGE_START=13
+#ifdef __GEMINI__
+ ,
+ AS_IN_VIRTUAL_CONNECTED_MODE = 14, /* for AS virtual connected mode in dual RR task */
+ AS_MSPM_SESSION_NOT_ALLOWED = 15, /* AS is not able to acquired MSPM AS session */
+ AS_CONN_EST_ABORTED_DUE_TO_GEMINI = 16 /* AS connection aborted due to GEMINI scenario */
+#endif /* __GEMINI__ */
+} as_est_cnf_cause_enum; /* ps_cause_enum need modify, too. */
+
+/* ~ Ripple */
+
+/* ENUMERATED PagingCause */
+typedef enum
+{
+ PagingCause_terminatingConversationalCall = 0,
+ PagingCause_terminatingStreamingCall = 1,
+ PagingCause_terminatingInteractiveCall = 2,
+ PagingCause_terminatingBackgroundCall = 3,
+ PagingCause_terminatingHighPrioritySignalling = 4,
+ PagingCause_terminatingLowPrioritySignalling = 5,
+ PagingCause_terminatingCauseUnknown = 6
+}
+RATCM_RRC_PagingCause;
+
+/*2013/03/26, local release enhancement*/
+/* ENUMERATED LocalReleaseType */
+typedef enum
+{
+ LocalReleaseType_detect_macthed_utran_paging = 0,
+ LocalReleaseType_gemini_abort_ps_rab = 1,
+ LocalReleaseType_key_change_on_the_fly = 2
+}
+RATCM_RRC_LocalReleaseType;
+
+/* ENUMERATED ReleaseCause */
+typedef enum
+{
+ normalEvent = 0,
+ ReleaseCause_unspecified = 1,
+ pre_emptiveRelease = 2,
+ ReleaseCause_congestion = 3,
+ re_establishmentReject = 4,
+ directedsignallingconnectionre_establishment = 5,
+ userInactivity = 6,
+ IDT_notSent = 7
+}
+RATCM_RRC_ReleaseCause;
+
+typedef enum
+{
+ SAPI_0_High = 0,
+ SAPI_3_Low = 1
+} DC_Priority;
+
+typedef enum
+{
+ DC_Status_SUCCESS = 0,
+ /* NAS message is discarded because of GAS cell reselection */
+ DC_Status_GAS_CellResel_Discard = 1,
+ /* RRCE couldn't deliver this NAS message successfully to peer entity, e.g., InterRAT or OOS */
+ DC_Status_Normal_FAILURE = 2,
+ /* RLC reset, NAS message is discarded */
+ DC_Status_RLC_Discard_FAILURE = 3,
+ /* NAS message is discarded because of gibi mismatch */
+ DC_Status_GIBI_TagMismatch = 4,
+ /* RLC release, NAS message is sent completely but not receive ack yet */
+ DC_Status_RLC_Release_Tx_Not_Acked = 5,
+ /* RLC release, NAS message is discarded */
+ DC_Status_RLC_Release_Discard = 6,
+ /* RB Reestablish, NAS message is sent completely but not receive ack yet */
+ DC_Status_RB_Reestablish_Tx_Not_Acked = 7,
+ /* RB Reestablish, NAS message is discarded */
+ DC_Status_RB_Reestablish_Discard = 8,
+ /* NAS message cannot be sent while 3G2 CCO activation time is ongoing */
+ DC_Status_RLC_CCO_Activation_Time_Ongoing = 9,
+ /* NAS message is discarded because of GAS suspend */
+ DC_Status_GAS_RLC_GPRS_Resume_Discard = 10,
+ /* RLC(2G only?) drop the NAS message due to no cell coverage, not sure if NW RLC have received this msg or not */
+ DC_Status_RLC_No_Cell_Coverage_Discard = 11,
+ /* GMM does not relay SM msg to lower layers due to PLMN search ongoing. NW must not receive this msg */
+ DC_Status_PLMN_Search_Ongoing_Discard = 12,
+ // Carlson 2013.07.22 please check the gmmsm_cause_enum and the DC_Status together
+ // 1. For suspend due to CM/MM/GMM procedure, GMM will send GMMSM_SUSPEND_REQ to SM, using only one of the 2 causes: PS_SUSPEND_LR / PS_SUSPEND_CM
+ // 2. For Gemini suspend, GMM will not relay UNITDATA_REQ if other SIM is busy, and GMM will send UNITDATA_CNF.DC_Status_Gemini_Suspend_Discard to SM
+ // 3. For gmmsm_cause_enum: GMMSM_INSUFFICIENT_RESOURCE, it is only used in GMMSM_ATTACH_REJ due to Gemini
+ /* GMM does not relay SM msg to lower layers due to Gemini suspension (ex. Suspended by CS call of another SIM). NW must not receive this msg */
+ DC_Status_Gemini_Suspend_Discard = 13,
+ /* GMM does not relay SM msg to lower layers due to no GPRS coverage. NW must not receive this msg */
+ DC_Status_GMM_No_Cell_Discard = 14,
+ /* GMM used to indicate SM that unitdata_req send fail because of GMM suspend */
+ DC_Status_GMM_Suspend = 15,
+ /* RLc/LLC will indicate TX failure if unable to aquire GEMINI PS high semaphore*/
+ DC_Status_Gemini_Fail = 16,
+/* GMM does not relay SM message to lower layer due to No FOP in ATTACH ACCEPT, hence wait for connection to be released*/
+ DC_Status_GMM_No_FOP_Discard = 17
+
+ #ifdef __GEMINI__
+ ,
+ DC_Status_Gemini_Virtual_Connected_Fail = 18 /* for AS virtual connected mode in dual RR task */
+ #endif /* __GEMINI__ */
+
+} DC_Status;
+
+typedef enum{
+ READY_TMR_ACT = 0,
+ READY_TMR_DEACT = 1
+}action_on_ready_timer_enum;
+
+typedef enum{
+ READY_TMR_EXPIRES = 0,
+ READY_TMR_REVIVE = 1,
+ READY_TMR_DEACTIVED = 2
+}ready_timer_status_enum;
+
+typedef enum{
+ CIPHER_CMD = 0,
+ TCH_ASSIGN = 1,
+ CHMODE_MODIFY = 2,
+ CHANNEL_RELEASE = 3,
+ UAS_RAB_MODIFY = 4,
+ UAS_RAB_EST = 5
+}sync_ind_cause_enum;
+
+/* UAS/GAS <-> RATCM end */
+
+typedef enum{
+ SIM_NORM_OP = 0x00,
+ SIM_TYPE_APPROV_OP = 0x80,
+ SIM_NORM_OP_AND_SPEC_FACILITY = 0x01,
+ SIM_TYPE_APPROV_OP_AND_SPEC_FACILITY = 0x81,
+ SIM_MAINTENANCE = 0x02,
+ SIM_CELL_TEST_OP = 0x04,
+ SIM_INVALID_OP = 0xFF
+} sim_op_mode_enum;
+
+typedef enum
+{
+ SGSNR_0,
+ SGSNR_1,
+ SGSNR_NOT_PRESENT
+} rr_mm_sgsnr_flag_enum;
+
+
+#ifdef __GEMINI__
+
+typedef enum
+{
+ RR_IN_NORMAL_MODE = 0, //for monza
+ RR_NOT_IN_SUSPEND_MODE = RR_IN_NORMAL_MODE, //for maui
+ RR_IN_SUSPEND_MODE_FOR_CS_SIG = 1,
+ RR_IN_SUSPEND_MODE_FOR_CS_CALL = 2,
+ RR_IN_SUSPEND_MODE_FOR_PS_SIG = 3,
+ RR_IN_SUSPEND_MODE_FOR_PS_DATA = 4,
+ RR_IN_SUSPEND_MODE_UNSPECIFIED = 5 //for MM use
+} rr_suspend_mode_reason_enum;
+
+typedef enum
+{
+ AS_NORMAL_MODE = 0,
+ AS_IN_SUSPEND_MODE_FOR_CS_SIG = 1,
+ AS_IN_SUSPEND_MODE_FOR_CS_CALL = 2,
+ AS_IN_SUSPEND_MODE_FOR_PS_SIG = 3,
+ AS_IN_SUSPEND_MODE_FOR_PS_DATA = 4,
+ AS_IN_SUSPEND_MODE_UNSPECIFIED = 5 //for MM use
+} as_suspend_mode_reason_enum; //identical as rr_suspend_mode_reason_enum
+
+typedef enum
+{
+ AS_IN_IDLE = 0,
+ AS_IN_CONNECTED_TRANSIENT = 1,
+ AS_IN_VIRTUAL_CONNECTED = 2,
+ AS_IN_CONNECTED = 3,
+ AS_IN_VIRTUAL_IDLE = 4
+} as_gemini_status_enum;
+
+#if defined(__UMTS_RAT__) || defined(__LTE_RAT__)
+
+typedef enum {
+ GAS_USER_PLMN_SEARCH = 0,
+ GAS_USER_NO_SERVICE_PLMN_LIST = 1,
+ GAS_USER_IN_SERVICE_PLMN_LIST = 2,
+ GAS_MM_PLMN_SEARCH = 3,
+ GAS_AS_CELL_SELECTION = 4,
+ GAS_MM_PLMN_LIST = 5,
+ GAS_AS_REPORT_CGI = 6,
+ GAS_FAST_RECOVERY = 7,
+ GAS_MM_PLMN_SEARCH_POWER_ON = 8, //for CMCC case 5.1.1: is first search after power on
+ GAS_FREQ_SCAN_NULL = 9,
+ GAS_CSG_FINGER_PRINT = 10,
+ GAS_RSIM_VC_RESUME = 11
+
+}gas_freq_scan_type_enum;
+
+typedef enum {
+ GAS_FREQ_SCAN_ACCEPT = 0,
+ GAS_FREQ_SCAN_WAIT = 1
+}gas_freq_scan_result_enum;
+
+typedef enum {
+ GAS_FREQ_SCAN_FINISHED = 0,
+ GAS_FREQ_SCAN_PREEMPTED = 1
+}gas_freq_scan_stop_cause_enum;
+
+#endif /* defined(__UMTS_RAT__) || defined(__LTE_RAT__) */
+
+#ifdef __LTE_RAT__
+typedef enum {
+ EAS_USER_NO_SERVICE_PLMN_LIST = 0x00000001,
+ EAS_USER_PLMN_SEARCH = 0x00000002,
+ EAS_USER_IN_SERVICE_PLMN_LIST = 0x00000004,
+ EAS_MM_PLMN_SEARCH = 0x00000008,
+ EAS_AS_AFR = 0x00000010,
+ EAS_AS_CELL_SELECTION = 0x00000020,
+ EAS_AS_CSG_CELL_EVALUATION = 0x00000040,
+ EAS_AS_BACKGROUND_SEARCH = 0x00000080,
+ EAS_MM_PLMN_LIST = 0x00000100,
+ EAS_AS_CSG_AUTONOMOUS_SEARCH = 0x00000200,
+ EAS_AS_FINGERPRINT = 0x00000400,
+ EAS_AS_MCC_LEARNING = 0x00000800,
+ EAS_SIM_PROTECTION = 0x00001000,
+ EAS_MM_PLMN_SEARCH_POWER_ON = 0x00002000,
+ EAS_EMC_SESSION = 0x00004000,
+ EAS_GEMINI_RESUME = 0x00008000,
+ EAS_AS_CELL_SELECTION_CALL = 0x00010000,
+ EAS_FREQ_SCAN_NULL = 0x00020000
+}eas_freq_scan_type_enum;
+
+typedef enum {
+ EAS_FREQ_SCAN_FINISHED,
+ EAS_FREQ_SCAN_PREEMPTED
+}eas_freq_scan_stop_cause_enum;
+
+#endif /* __LTE_RAT__ */
+
+#endif /* __GEMINI__ */
+
+#ifdef __NR_RAT__
+typedef enum {
+ NRRC_AS_AFR,
+ NRRC_EMC_SESSION,
+ NRRC_USER_NO_SERVICE_PLMN_LIST,
+ NRRC_USER_PLMN_SEARCH,
+ NRRC_USER_IN_SERVICE_PLMN_LIST,
+ NRRC_MM_PLMN_SEARCH_POWER_ON,
+ NRRC_MM_PLMN_SEARCH,
+ NRRC_AS_CELL_SELECTION,
+ NRRC_AS_CELL_SELECTION_CALL,
+ NRRC_AS_BACKGROUND_SEARCH,
+ NRRC_MM_PLMN_LIST,
+ NRRC_GEMINI_RESUME,
+ NRRC_AUTO_GAP,
+ NRRC_GEMINI_ABORT,
+ NRRC_FREQ_SCAN_NULL
+}nrrc_freq_scan_type_enum;
+
+typedef enum {
+ NRRC_FREQ_SCAN_FINISHED,
+ NRRC_FREQ_SCAN_PREEMPTED,
+ NRRC_FREQ_SCAN_INVALID
+}nrrc_freq_scan_stop_cause_enum;
+
+#endif /* __NR_RAT__ */
+
+typedef enum {
+ NRRC_AC1_SELECTION_ASSISTANCE_INFO_A,
+ NRRC_AC1_SELECTION_ASSISTANCE_INFO_B,
+ NRRC_AC1_SELECTION_ASSISTANCE_INFO_C,
+ NRRC_AC1_SELECTION_ASSISTANCE_INFO_INVALID
+} nrrc_ac1_selection_assistance_info_enum;
+
+#if (defined( __AGPS_CONTROL_PLANE__) || defined( __ETWS_SUPPORT__))
+typedef enum{
+ APP_CMD_OR_FINAL_RESP = 0,
+ APP_NOT_CMD_OR_FINAL_RESP = 1
+}app_data_cr_enum;
+
+#ifdef __AGPS_CONTROL_PLANE__
+typedef enum{
+ ABORT_CAUSE_CONN_RELEASE =0,
+ ABORT_CAUSE_RR_MANAGE_MESG =1
+
+}abort_rrlp_cause_enum;
+#endif /* __AGPS_CONTROL_PLANE__ */
+#endif /* ( __AGPS_CONTROL_PLANE__) || defined( __ETWS_SUPPORT__) */
+
+/* TCM, RAC Share with L4C */
+typedef enum
+{
+ NW_CONTEXT_REJ_EVENT = 1,
+ NW_CONTEXT_REACT_EVENT,
+ NW_CONTEXT_DEACT_EVENT, // Replacd to NW_DEACT_EVENT (27.007 R9 CR0221)
+ ME_CONTEXT_DEACT_EVENT, // Replacd to ME_DEACT_EVENT (27.007 R9 CR0221)
+ NW_DETACH_EVENT,
+ ME_DETACH_EVENT,
+ ME_PDN_ACT_EVENT, //IPV6_TODO: add a new event type for "+CGEV: ME PDN ACT <cid>"
+
+ //Primary PDP Context, Merge to "+CGEV: NW/ME ACT/DEACT" enum s
+ //NW_PDN_ACT_EVENT, //LTE: add a new event type for "+CGEV: NW PDN ACT <cid>" <= EPS not applicable
+ //ME_PDN_ACT_EVENT, //LTE: add a new event type for "+CGEV: ME PDN ACT <cid>"
+ //NW_PDN_DEACT_EVENT, //LTE: add a new event type for "+CGEV: NW PDN DEACT <cid>"
+ //ME_PDN_DEACT_EVENT, //LTE: add a new event type for "+CGEV: ME PDN DEACT <cid>"
+
+ //Secondary PDP Context
+ NW_ACT_EVENT, //LTE: add a new event type for "+CGEV: NW ACT <p_cid>, <cid>, <event_type>
+ ME_ACT_EVENT, //LTE: add a new event type for "+CGEV: ME ACT <p_cid>, <cid>, <event_type>
+ NW_DEACT_EVENT, //LTE: add a new event type for "+CGEV: NW DEACT <p_cid>, <cid>, <event_type>
+ ME_DEACT_EVENT, //LTE: add a new event type for "+CGEV: ME DEACT <p_cid>, <cid>, <event_type>
+
+ NW_MODIFY_EVENT, //LTE: add a new event type for "+CGEV: NW MODIFY <cid>, <change_reason>, <event_type>
+ ME_MODIFY_EVENT, //LTE: add a new event type for "+CGEV: ME MODIFY <cid>, <change_reason>, <event_type>
+ ME_REATTACH_EVENT //SGLTE: After RAU_Reject with #10 and reattach succ, notify AP to active PDP ASAP.
+}mmi_event_enum;
+
+typedef enum
+{
+ PAM_EVENT_NOTIFY_CLEAR_VZW_APN_TABLE,
+ PAM_EVENT_NOTIFY_VZW_AP_FULLY_CONTROL_IA,
+ PAM_EVENT_NOTIFY_VZW_AP_NOT_FULLY_CONTROL_IA
+} pam_event_notify_enum;
+
+//#ifdef __PLMN_LIST_PREF_SUPPORT__
+typedef enum
+{
+ ACCURACY_PREFERED,
+ SPEED_PREFFERED
+} plmn_list_preference_enum;
+//#endif /* __PLMN_LIST_PREF_SUPPORT__ */
+
+typedef enum
+{
+ HSPA_OFF = 0,
+ HSDPA_ON = 1,
+ HSDPA_HSUPA_ON = 2,
+ HSPAPLUS_ON = 3
+} hspa_preference_enum;
+
+typedef enum
+{
+ PPAC_NOT_RESTRICTED,
+ PPAC_PAGING_ALLOWED,
+ PPAC_LR_ALLOWED
+}
+ppac_checked_type_enum;
+
+typedef enum
+{
+ PS_CBS0_GERMAN = 0,
+ PS_CBS0_ENGLISH,
+ PS_CBS0_ITALIAN,
+ PS_CBS0_FRENCH,
+ PS_CBS0_SPANISH,
+ PS_CBS0_DUTCH,
+ PS_CBS0_SWEDISH,
+ PS_CBS0_DANISH,
+ PS_CBS0_PORTUGUESE,
+ PS_CBS0_FINNISH,
+ PS_CBS0_NORWEGIAN,
+ PS_CBS0_GREEK,
+ PS_CBS0_TURKISH,
+ PS_CBS0_HUNGARIAN,
+ PS_CBS0_POLISH,
+ PS_CBS0_LANG_UNSPECIFIED,
+
+ PS_CBS1_CZECH = 16,
+ PS_CBS1_HEBREW,
+ PS_CBS1_ARABIC,
+ PS_CBS1_RUSSIAN,
+ PS_CBS1_ICELANDIC,
+
+ PS_CBS2_AA, // AFAR, 20
+ PS_CBS2_AB, // ABKHAZIAN
+ PS_CBS2_AF, // AFRIKAANS
+ PS_CBS2_AM, // AMHARIC
+ //CBS2_AR, // ARABIC
+ PS_CBS2_AS, // ASSAMESE
+ PS_CBS2_AY, // AYMARA
+ PS_CBS2_AZ, // AZERBAIJANI
+
+ PS_CBS2_BA, // BASHKIR
+ PS_CBS2_BE, // BYELORUSSIAN
+ PS_CBS2_BG, // BULGARIAN, 30
+ PS_CBS2_BH, // BIHARI
+ PS_CBS2_BI, // BISLAMA
+ PS_CBS2_BN, // BENGALI; BANGLA
+ PS_CBS2_BO, // TIBETAN
+ PS_CBS2_BR, // BRETON
+
+ PS_CBS2_CA, // CATALAN
+ PS_CBS2_CO, // CORSICAN
+ //CBS2_CS, // CZECH
+ PS_CBS2_CY, // WELSH
+
+ //CBS2_DA, // DANISH, 40
+ //CBS2_DE, // GERMAN
+ PS_CBS2_DZ, // BHUTANI
+
+ //CBS2_EL, // GREEK
+ //CBS2_EN, // ENGLISH
+ PS_CBS2_EO, // ESPERANTO
+ //CBS2_ES, // SPANISH
+ PS_CBS2_ET, // ESTONIAN
+ PS_CBS2_EU, // BASQUE
+
+ PS_CBS2_FA, // PERSIAN
+ //CBS2_FI, // FINNISH, 50
+ PS_CBS2_FJ, // FIJI
+ PS_CBS2_FO, // FAROESE
+ //CBS2_FR, // FRENCH
+ PS_CBS2_FY, // FRISIAN
+
+ PS_CBS2_GA, // IRISH
+ PS_CBS2_GD, // SCOTS GAELIC
+ PS_CBS2_GL, // GALICIAN
+ PS_CBS2_GN, // GUARANI
+ PS_CBS2_GU, // GUJARATI
+
+ PS_CBS2_HA, // HAUSA, 60
+ //CBS2_HE, // HEBREW (FORMERLY IW)
+ PS_CBS2_HI, // HINDI
+ PS_CBS2_HR, // CROATIAN
+ //CBS2_HU, // HUNGARIAN
+ PS_CBS2_HY, // ARMENIAN
+
+ PS_CBS2_IA, // INTERLINGUA
+ PS_CBS2_ID, // INDONESIAN (FORMERLY IN)
+ PS_CBS2_IE, // INTERLINGUE
+ PS_CBS2_IK, // INUPIAK
+ PS_CBS2_IS, // ICELANDIC, 70
+ //CBS2_IT, // ITALIAN
+ PS_CBS2_IU, // INUKTITUT
+
+ PS_CBS2_JA, // JAPANESE
+ PS_CBS2_JW, // JAVANESE
+
+ PS_CBS2_KA, // GEORGIAN
+ PS_CBS2_KK, // KAZAKH
+ PS_CBS2_KL, // GREENLANDIC
+ PS_CBS2_KM, // CAMBODIAN
+ PS_CBS2_KN, // KANNADA
+ PS_CBS2_KO, // KOREAN, 80
+ PS_CBS2_KS, // KASHMIRI
+ PS_CBS2_KU, // KURDISH
+ PS_CBS2_KY, // KIRGHIZ
+
+ PS_CBS2_LA, // LATIN
+ PS_CBS2_LN, // LINGALA
+ PS_CBS2_LO, // LAOTHIAN
+ PS_CBS2_LT, // LITHUANIAN
+ PS_CBS2_LV, // LATVIAN, LETTISH
+
+ PS_CBS2_MG, // MALAGASY
+ PS_CBS2_MI, // MAORI, 90
+ PS_CBS2_MK, // MACEDONIAN
+ PS_CBS2_ML, // MALAYALAM
+ PS_CBS2_MN, // MONGOLIAN
+ PS_CBS2_MO, // MOLDAVIAN
+ PS_CBS2_MR, // MARATHI
+ PS_CBS2_MS, // MALAY
+ PS_CBS2_MT, // MALTESE
+ PS_CBS2_MY, // BURMESE
+
+ PS_CBS2_NA, // NAURU
+ PS_CBS2_NE, // NEPALI, 100
+ //CBS2_NL, // DUTCH
+ //CBS2_NO, // NORWEGIAN
+
+ PS_CBS2_OC, // OCCITAN
+ PS_CBS2_OM, // (AFAN) OROMO
+ PS_CBS2_OR, // ORIYA
+
+ PS_CBS2_PA, // PUNJABI
+ //CBS2_PL, // POLISH
+ PS_CBS2_PS, // PASHTO, PUSHTO
+ //CBS2_PT, // PORTUGUESE
+
+ PS_CBS2_QU, // QUECHUA, 110
+
+ PS_CBS2_RM, // RHAETO-ROMANCE
+ PS_CBS2_RN, // KIRUNDI
+ PS_CBS2_RO, // ROMANIAN
+ //CBS2_RU, // RUSSIAN
+ PS_CBS2_RW, // KINYARWANDA
+
+ PS_CBS2_SA, // SANSKRIT
+ PS_CBS2_SD, // SINDHI
+ PS_CBS2_SG, // SANGHO
+ PS_CBS2_SH, // SERBO-CROATIAN
+ PS_CBS2_SI, // SINHALESE, 120
+ PS_CBS2_SK, // SLOVAK
+ PS_CBS2_SL, // SLOVENIAN
+ PS_CBS2_SM, // SAMOAN
+ PS_CBS2_SN, // SHONA
+ PS_CBS2_SO, // SOMALI
+ PS_CBS2_SQ, // ALBANIAN
+ PS_CBS2_SR, // SERBIAN
+ PS_CBS2_SS, // SISWATI
+ PS_CBS2_ST, // SESOTHO
+ PS_CBS2_SU, // SUNDANESE, 130
+ //CBS2_SV, // SWEDISH
+ PS_CBS2_SW, // SWAHILI
+
+ PS_CBS2_TA, // TAMIL
+ PS_CBS2_TE, // TELUGU
+ PS_CBS2_TG, // TAJIK
+ PS_CBS2_TH, // THAI
+ PS_CBS2_TI, // TIGRINYA
+ PS_CBS2_TK, // TURKMEN
+ PS_CBS2_TL, // TAGALOG
+ PS_CBS2_TN, // SETSWANA, 140
+ PS_CBS2_TO, // TONGA
+ //CBS2_TR, // TURKISH
+ PS_CBS2_TS, // TSONGA
+ PS_CBS2_TT, // TATAR
+ PS_CBS2_TW, // TWI
+
+ PS_CBS2_UG, // UIGHUR
+ PS_CBS2_UK, // UKRAINIAN
+ PS_CBS2_UR, // URDU
+ PS_CBS2_UZ, // UZBEK
+
+ PS_CBS2_VI, // VIETNAMESE, 150
+ PS_CBS2_VO, // VOLAPUK
+
+ PS_CBS2_WO, // WOLOF
+
+ PS_CBS2_XH, // XHOSA
+
+ PS_CBS2_YI, // YIDDISH (FORMERLY JI)
+ PS_CBS2_YO, // YORUBA
+
+ PS_CBS2_ZA, // ZHUANG
+ PS_CBS2_ZH, // CHINESE
+ PS_CBS2_ZU, // ZULU, 158
+ PS_CBS_INVALID = 255
+} cbs_language_enum;
+
+
+typedef enum
+{
+ CBS_GSM7_BIT = 0x00, /* GSM 7-bit */
+ CBS_EIGHT_BIT = 0x04, /* 8-bit */
+ CBS_UCS2 = 0x08, /* UCS2 */
+ CBS_ALPHABET_RESERVED = 0x0C /* RESERVED */
+} cbs_alphabet_enum;
+
+typedef enum
+{
+ CBS_CLASS0 = 0,
+ CBS_CLASS1,
+ CBS_CLASS2,
+ CBS_CLASS3,
+ CBS_CLASS_UNSPECIFIED
+} cbs_msgclass_enum;
+
+typedef enum
+{
+ PBCCH = 0,
+ PRACH = 1,
+ PCCCH = 2,
+ PDTCH = 3,
+ PACCH = 4,
+ BCCH = 5,
+ N_BCCH = 6,
+ E_BCCH = 7,
+ CCCH = 8,
+ PAG_CH = 9,
+ RACH = 10,
+ SDCCH4_0 = 11,
+ SDCCH4_1 = 12,
+ SDCCH4_2 = 13,
+ SDCCH4_3 = 14,
+ SDCCH8_0 = 15,
+ SDCCH8_1 = 16,
+ SDCCH8_2 = 17,
+ SDCCH8_3 = 18,
+ SDCCH8_4 = 19,
+ SDCCH8_5 = 20,
+ SDCCH8_6 = 21,
+ SDCCH8_7 = 22,
+ SDCCH = 23,
+ SACCH = 24,
+ FACCH = 25,
+ TCH_EF = 26,
+ TCH_F = 27,
+ TCH_H_0 = 28,
+ TCH_H_1 = 29,
+ TCH_H = 30,
+ CBCH = 31,
+ PPCH = 32
+} channel_type_enum;
+
+typedef enum
+{
+ ul_amr_rate_t0,
+ ul_amr_rate_t1,
+ ul_amr_rate_t2,
+ ul_amr_rate_t3,
+ ul_amr_rate_t4,
+ ul_amr_rate_t5,
+ ul_amr_rate_t6,
+ ul_amr_rate_t7,
+ ul_amr_rate_t8,
+ ul_amr_rate_default
+} ul_amr_rate_enum;
+
+/* Temp solution fro MM Pre-integration */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+ ON_OTHER_COUNTRY = 0,
+ ON_HPLMN = 1,
+ ON_HOME_COUNTRY = 2,
+ ON_HPLMN_HOME_COUNTRY = ON_HPLMN | ON_HOME_COUNTRY //3 //3
+} hplmn_status_enum;
+
+typedef enum
+{
+ FPLMN_NONE = 0,
+ FPLMN = 1, /* #11 */
+ FPLMNGPRS = 2, /* #14 */
+ FPLMN_FPLMNGPRS = FPLMN | FPLMNGPRS,
+ FPLMNCS = 4, /* EMM cause #18 */
+ FPLMN_FPLMNCS = FPLMN | FPLMNCS,
+ FPLMNGPRS_FPLMNCS = FPLMNGPRS | FPLMNCS,
+ FPLMN_FPLMNGPRS_FPLMNCS = FPLMN | FPLMNGPRS | FPLMNCS
+} fplmn_status_enum;
+
+typedef enum
+{
+ NOT_ON_ABNORMAL_REGN_AREA = 0,
+ ON_ABNORMAL_LA = 1,
+ ON_ABNORMAL_RA = 2,
+ ON_ABNORMAL_LA_RA = ON_ABNORMAL_LA | ON_ABNORMAL_RA,
+ ON_ABNORMAL_TA
+} abnormal_regn_area_enum;
+
+/* Temp solution fro MM Pre-integration */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+ LR_NOT_RELATED = 0,
+ LR_ACCEPT,
+ LR_REJECT,
+ LR_ABNORMAL,
+ LR_ACCEPT_PS_ONLY,
+ LR_NO_NEEDED, /* SGLTE DSDS: PS @SIM2, just perform search but do not attach */
+} lr_result_enum;
+
+typedef enum
+{
+ MM_EVENT_NONE = 0,
+ MM_EVENT_LU = 1, // LU is initiated
+ MM_EVENT_CM_IND = 2, // MT CM is established
+ MM_EVENT_CM_NORMAL_REQ = 3, // MO CM except ECC is requested by user
+ MM_EVENT_CM_ECC_REQ = 4, // MO ECC is requested by user
+ MM_EVENT_CM_ACC = 5, // MO CM is accepted by NW
+ MM_EVENT_CM_ABORT = 6, // MO CM is aborted by user
+ MM_EVENT_ACCESS_BARRED = 7, // LR while access class barred
+ MM_EVENT_ECALL_TEST_CALL = 8,
+ MM_EVENT_GMM_READY_STATE_IND = 9, //for NWSEL R7 "2G ready state don't allowe HPPLMN search feature", switch ready_state status
+ MM_EVENT_T3246_RUNNING = 11, // LR while T3246 running
+ MM_EVENT_T3346_RUNNING = 12, // LR while T3346 running
+ MM_EVENT_SEARCH_OTHER_RAT_IND = 13, //CSFB REDIR REJ, SEARCH OTHER RAT TO FINISH CALL
+ MM_EVENT_RECEIVE_PDP_ACT_REJ_IND = 14,
+ MM_EVENT_CM_REJ_TO_CC_FOR_RETRY =15, /*MM_EVENT_CM_REJ_TO_CC_FOR_RETRY must be added by NWSEL or MM*/
+ MM_EVENT_MT_CSFB_SEARCH_ABORT = 16 /*MM sends to NWSEL to abort the plmn search for MT CSFB session*/
+} mm_event_type_enum;
+
+typedef enum
+{
+ MM_ECALL_ONLY,
+ MM_ECALL_ONLY_LU_ALLOWED,
+ MM_ECALL_ONLY_RESTRICTION_REMOVED,
+ MM_NOT_ECALL_ONLY
+} mm_check_ecall_status_enum;
+
+typedef enum {
+ LTE_DUPLEX_TYPE_FDD = 0x00,
+ LTE_DUPLEX_TYPE_TDD = 0x01,
+ LTE_DUPLEX_TYPE_UNKNOWN = 0xFE, /* if no cell, ERRC reports this value */
+ LTE_DUPLEX_TYPE_NO_RESTRICTION = 0xFF /* if no need to separate TD/FDD, NWSEL use this value in REQ msg */
+} lte_duplex_type_enum;
+
+typedef enum
+{
+ MM_GMM_ECALL_ONLY = 0, // For when__NG_ECALL_SUPPORT__ is only enabled
+ MM_GMM_NOT_ECALL_ONLY
+} mm_gmm_check_ecall_status_enum;
+
+typedef enum {
+ DUPLEX_TYPE_FDD = 0x00,
+ DUPLEX_TYPE_TDD = 0x01,
+ DUPLEX_TYPE_UNKNOWN = 0xFE, /* if no cell, AS reports this value */
+ DUPLEX_TYPE_NO_RESTRICTION = 0xFF /* if no need to separate TDD/FDD, NWSEL use this value in REQ msg */
+} duplex_type_enum;
+
+typedef enum
+{
+ EVENT_TYPE_CSFB = 0x01,
+ EVENT_TYPE_UPDATE_EPLMN = 0x02,
+ EVENT_TYPE_RETURN_NORMAL = 0x04,
+ EVENT_TYPE_PROC_RESULT = 0x08,
+ EVENT_TYPE_UPDATE_STATE = 0x10,
+ EVENT_TYPE_RETURN_ABNORMAL = 0x20,
+ EVENT_TYPE_PROC_RESULT_WITH_EPLMN = EVENT_TYPE_UPDATE_EPLMN | EVENT_TYPE_PROC_RESULT, //0x0A, for MM use
+ EVENT_TYPE_PROC_RESULT_UPDATE_STATE = EVENT_TYPE_PROC_RESULT | EVENT_TYPE_UPDATE_STATE //0x18, for MM and EVAL use
+ ,EVENT_TYPE_CONGESTION_TIMER_ACTIVE = 0x80 // __REL10__: t3346
+ ,EVENT_TYPE_THROTTLING_TIMER_ACTIVE = 0x100 /* VZ_REQ_LTEDATARETRY_7735 */
+ ,EVENT_TYPE_NO_AVAILABLE_PDN = 0x200
+ ,EVENT_TYPE_CSFB_EMC = 0x400
+ ,EVENT_TYPE_AC_BAR = 0x800
+} event_type_enum;
+
+
+typedef enum
+{
+ TIN_DELETED = 0,
+ TIN_PTMSI,
+ TIN_RAT_RELATED_TMSI,
+ TIN_GUTI
+} tin_enum;
+
+//__LTE__
+typedef enum
+{
+ GMM_RAT_STATE_IR_INVALID = 0,
+ GMM_RAT_STATE_IR_ONGOING,
+ GMM_RAT_STATE_IS_INACTIVE_NAS,
+ GMM_RAT_STATE_IS_ACTIVE_NAS
+} gmm_rat_state_enum;
+
+/* TS 24.008 */
+typedef enum
+{
+ CS_VOICE_ONLY = 0,
+ IMS_PS_VOICE_ONLY,
+ CS_VOICE_PREFERRED_IMS_PS_VOICE_AS_SECONDARY, /* CS voice preferred, IMS PS Voice as secondary */
+ IMS_PS_VOICE_PREFERRED_CS_VOICE_AS_SECONDARY /* IMS PS voice preferred, CS Voice as secondary */
+} voice_domain_preference_enum;
+/* ERAC <-> ENAS/EAS end */
+
+/* ERAC <-> NWSEL begin */
+typedef enum
+{
+ IMS_REG_STATUS_UNSPECIFIED = 0,
+ IMS_REG_STATUS_REGISTERED,
+ IMS_REG_STATUS_UNREGISTERED
+} ims_reg_status_enum;
+/* ERAC <-> NWSEL end */
+
+/* MM <-> EMM begin */
+typedef enum
+{
+ MM_EMM_TMSI_STATUS_INVALID = 0,
+ MM_EMM_TMSI_STATUS_VALID
+} mm_emm_tmsi_status_enum;
+
+typedef enum {
+ MM_NO_CHANGE,
+ MM_CELL_CHANGE,
+ MM_RAI_CHANGE,
+ MM_LAI_CHANGE,
+ MM_PERIODIC_RA_CHANGE,
+ MM_REG_REQ
+}mm_cell_change_enum;
+
+
+#ifdef __CS_SERVICE__
+typedef enum
+{
+ MM_U1_UPDATED = 0,
+ MM_U2_NOT_UPDATED = 1,
+ MM_U3_ROAMING_NOT_ALLOWED = 3,
+ MM_U4_UPDATING_DISABLED = MM_U2_NOT_UPDATED,
+ MM_UPDATE_STATUS_INVALID = 4
+} gsm_update_status_enum;
+
+typedef enum {
+ MM_START_UP = 1,
+ MM_IMSI_ATTACH_INIT,
+ MM_IMSI_ATTACHED,
+ MM_LU_REJECT,
+ MM_IMSI_DETACH_INIT,
+ MM_IMSI_DETACHED
+} gsm_state_enum;
+#endif
+
+#ifdef __PS_SERVICE__
+typedef enum
+{
+ GU1_UPDATED = 0,
+ GU2_NOT_UPDATED = 1,
+ GU3_ROAMING_NOT_ALLOWED = 2,
+ RA_NOT_ALLOWED = 3 /* 3G Modify, not used */
+}gprs_update_status_enum;
+//typedef gprs_update_status_enum gmm_update_status_enum;
+
+typedef enum
+{
+ STARTUP = 1,
+ ATTACHED_INIT,
+ GMM_ATTACHED,
+ DETACHED,
+ DETACHED_INIT
+}gprs_state_enum; /* 3G Modify: gprs_state_enum */
+
+typedef enum
+{
+ GPRS_TRAFFIC_CHANNNEL_DORMANT = 0,
+ GPRS_TRAFFIC_CHANNNEL_ACTIVE
+} gprs_traffic_channel_status_enum;
+#endif
+
+typedef enum
+{
+ EMM_EU1_UPDATED = 0,
+ EMM_EU2_NOT_UPDATED = 1,
+ EMM_EU3_ROAMING_NOT_ALLOWED = 2
+} eps_update_status_enum;
+
+typedef enum
+{
+ VGMM_UPDATED = 0,
+ VGMM_NOT_UPDATED = 1,
+ VGMM_ROAMING_NOT_ALLOWED = 2
+} vgmm_5g_update_status_enum;
+
+typedef enum
+{
+ EMM_STARTUP = 1,
+ EMM_ATTACHED_INIT,
+ EMM_ATTACHED,
+ EMM_DETACHED_INIT,
+ EMM_DETACHED
+} eps_state_enum;
+
+typedef enum
+{
+ GMM_MSG_ATTACH_REQUEST = 1,
+ GMM_MSG_ATTACH_ACCEPT,
+ GMM_MSG_ATTACH_COMPLETE,
+ GMM_MSG_ATTACH_REJECT,
+ GMM_MSG_DETACH_REQUEST,
+ GMM_MSG_DETACH_ACCEPT,
+ GMM_MSG_RAU_REQUEST,
+ GMM_MSG_RAU_ACCEPT,
+ GMM_MSG_RAU_COMPLETE,
+ GMM_MSG_RAU_REJECT,
+ GMM_MSG_SERVICE_REQUEST,
+ GMM_MSG_SERVICE_ACCEPT,
+ GMM_MSG_SERVICE_REJECT,
+ GMM_MSG_PTMSI_REALLOC_COMMAND,
+ GMM_MSG_PTMSI_REALLOC_COMPLETE,
+ GMM_MSG_AUTH_AND_CIPHER_REQ,
+ GMM_MSG_AUTH_AND_CIPHER_RSP,
+ GMM_MSG_AUTH_AND_CIPHER_REJ,
+ GMM_MSG_AUTH_AND_CIPHER_FAIL,
+ GMM_MSG_IDENITY_REQ,
+ GMM_MSG_IDENITY_RSP,
+ GMM_MSG_GMM_STATUS,
+ GMM_MSG_GMM_INFORMATION,
+ GMM_MSG_INVALID
+} gmm_msg_type_enum;
+
+typedef enum
+{
+ GMM_ATTACH_TYPE_GPRS_ATTACH = 1,
+ GMM_ATTACH_TYPE_COMBINED_ATTACH = 3,
+ GMM_ATTACH_TYPE_EMERGENCY_ATTACH = 4,
+
+ GMM_GPRS_ATTACH_ONLY = 1,
+ GPRS_ATTACH_WHILE_IMSI_ATTACH = 2,
+ COMBINED_ATTACH = 3,
+ GMM_ATTACH_TYPE_INVALID = 5
+} gmm_attach_type_enum;
+
+typedef enum
+{
+ GMM_UPDATE_TYPE_RAU = 0,
+ GMM_UPDATE_TYPE_COMBINED_RAU,
+ GMM_UPDATE_TYPE_COMBINED_RAU_IMSI_ATTACH,
+ GMM_UPDATE_TYPE_PERIODIC_RAU,
+ GMM_UPDATE_TYPE_INVALID,
+
+ RAU_UPDATE = 0,
+ COMBINED_RAU_LAU = 1,
+ COMBINED_RAU_LAU_WITH_IMSI = 2,
+ PERIODIC_RAU_UPDATE = 3
+} gmm_update_type_enum;
+
+typedef enum
+{
+ GMM_ATTACH_RESULT_GPRS_ONLY_ATTACHED = 1,
+ GMM_ATTACH_RESULT_COMBINED_ATTACHED = 3,
+
+ MM_GPRS_ONLY_ATTACHED = 1,
+ COMBINED_GPRS_IMSI_ATTACHED = 3,
+ GMM_ATTACH_RESULT_INVALID
+} gmm_attach_result_enum;
+
+typedef enum
+{
+ GMM_UPDATE_RESULT_RA_UPDATED = 0,
+ GMM_UPDATE_RESULT_COMBINED_UPDATED = 1,
+ GMM_UPDATE_RESULT_RA_UPDATED_ISR_ACTIVATED = 4,
+ GMM_UPDATE_RESULT_COMBINED_UPDATED_ISR_ACTIVATED = 5,
+ GMM_UPDATE_RESULT_INVALID
+} gmm_update_result_enum;
+
+typedef enum
+{
+ GMM_CAUSE_IMSI_UNKNOWN_IN_HLR = 0x02,
+ GMM_CAUSE_ILLEGAL_MS = 0x03,
+ GMM_CAUSE_IMEI_NOT_ACCEPTED = 0x05,
+ GMM_CAUSE_ILLEGAL_ME = 0x06,
+ GMM_CAUSE_GPRS_NOT_ALLOWED = 0x07,
+ GMM_CAUSE_GPRS_NON_GPRS_NOT_ALLOWED = 0x08,
+ GMM_CAUSE_MS_ID_NOT_DERIVED_BY_NW = 0x09,
+ GMM_CAUSE_IMPLICIT_DETACH = 0x0a,
+ GMM_CAUSE_PLMN_NOT_ALLOWED = 0x0b,
+ GMM_CAUSE_LA_NOT_ALLOWED = 0x0c,
+ GMM_CAUSE_ROAMING_NOT_ALLOWED_IN_LA = 0x0d,
+ GMM_CAUSE_GPRS_NOT_ALLOWED_IN_PLMN = 0x0e,
+ GMM_CAUSE_NO_SUITABLE_CELL_IN_LA = 0x0f,
+ GMM_CAUSE_MSC_NOT_REACHABLE = 0x10,
+ GMM_CAUSE_NW_FAILURE = 0x11,
+ GMM_CAUSE_MAC_FAILURE = 0x14,
+ GMM_CAUSE_SYNCH_FAILURE = 0x15,
+ GMM_CAUSE_CONGESTION = 0x16,
+ GMM_CAUSE_GSM_AUTH_UNACCEPTABLE = 0x17,
+ GMM_CAUSE_NOT_AUTH_FOR_CSG = 0x19,
+ GMM_CAUSE_NO_PDP_CTXT_ACT = 0x28,
+ GMM_CAUSE_SEMANTIC_INCORRECT = 0x5f,
+ GMM_CAUSE_INVALID_MANDATORY_INFO = 0x60,
+ GMM_CAUSE_MSG_TYPE_NOT_EXIST = 0x61,
+ GMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE = 0x62,
+ GMM_CAUSE_IE_NOT_EXIST = 0x63,
+ GMM_CAUSE_CONDITIONAL_IE_ERROR = 0x64,
+ GMM_CAUSE_MESSAGE_NOT_COMPATIBLE = 0x65,
+ GMM_CAUSE_PROTOCOL_ERROR = 0x6f,
+} gmm_cause_enum;
+
+typedef enum
+{
+ MM_EMM_MT_CAUSE_UNSPECIFIED = 0,
+ MM_EMM_MT_CAUSE_PS_PAGING_WITH_IMSI
+} mm_emm_mt_cause_enum;
+
+typedef enum
+{
+ GMM_DETACH_TYPE_MO_GPRS_DETACH = 1,
+ GMM_DETACH_TYPE_MO_IMSI_DETACH,
+ GMM_DETACH_TYPE_MO_COMBINED_DETACH,
+ GMM_DETACH_TYPE_MT_REATTACH_REQUIRED,
+ GMM_DETACH_TYPE_MT_REATTACH_NOT_REQUIRED,
+ GMM_DETACH_TYPE_MO_POWEROFF_GPRS_DETACH,
+ GMM_DETACH_TYPE_MO_POWEROFF_COMBINED_DETACH,
+ GMM_DETACH_TYPE_INVALID
+} gmm_detach_type_enum;
+
+#ifdef __FIVEG_NAS__
+typedef enum
+{
+ VGMM_DETACH_TYPE_MO_GPRS_DETACH = 1,
+ VGMM_DETACH_TYPE_MO_POWEROFF_DETACH,
+ VGMM_DETACH_TYPE_MT_REATTACH_REQUIRED,
+ VGMM_DETACH_TYPE_MT_REATTACH_NOT_REQUIRED,
+} vgmm_detach_type_enum;
+#endif
+
+typedef enum
+{
+ EMM_MSG_ATTACH_REQUEST = 0x41,
+ EMM_MSG_ATTACH_ACCEPT = 0x42,
+ EMM_MSG_ATTACH_COMPLETE = 0x43,
+ EMM_MSG_ATTACH_REJECT = 0x44,
+ EMM_MSG_DETACH_REQUEST = 0x45,
+ EMM_MSG_DETACH_ACCEPT = 0x46,
+ EMM_MSG_TAU_REQUEST = 0x48,
+ EMM_MSG_TAU_ACCEPT = 0x49,
+ EMM_MSG_TAU_COMPLETE = 0x4A,
+ EMM_MSG_TAU_REJECT = 0x4B,
+ EMM_MSG_EXT_SERVICE_REQUEST = 0x4C,
+ EMM_MSG_SERVICE_REJECT = 0x4E,
+ EMM_MSG_GUTI_REALLOC_COMMAND = 0x50,
+ EMM_MSG_GUTI_REALLOC_COMPLETE = 0x51,
+ EMM_MSG_AUTH_REQ = 0x52,
+ EMM_MSG_AUTH_RSP = 0x53,
+ EMM_MSG_AUTH_REJ = 0x54,
+ EMM_MSG_AUTH_FAIL = 0x5C,
+ EMM_MSG_IDENTITY_REQ = 0x55,
+ EMM_MSG_IDENTITY_RSP = 0x56,
+ EMM_MSG_SEC_MODE_COMMAND = 0x5D,
+ EMM_MSG_SEC_MODE_COMPLETE = 0x5E,
+ EMM_MSG_SEC_MODE_REJECT = 0x5F,
+ EMM_MSG_EMM_STATUS = 0x60,
+ EMM_MSG_EMM_INFORMATION = 0x61,
+ EMM_MSG_DL_NAS_TRANSPORT = 0x62,
+ EMM_MSG_UL_NAS_TRANSPORT = 0x63,
+ EMM_MSG_CS_SERVICE_NOTIFY = 0x64,
+ EMM_MSG_DL_NAS_GENERIC_TRANSPORT = 0x68,
+ EMM_MSG_UL_NAS_GENERIC_TRANSPORT = 0x69,
+ EMM_MSG_SERVICE_REQUEST = 0xFE,
+ EMM_MSG_INVALID = 0xFF
+} emm_msg_type_enum;
+
+typedef enum
+{
+ EMM_ATTACH_TYPE_NONE = 0,
+ EMM_ATTACH_TYPE_EPS_ATTACH = 1,
+ EMM_ATTACH_TYPE_COMBINED_ATTACH = 2,
+ EMM_ATTACH_TYPE_EMERGENCY_ATTACH = 6
+} emm_attach_type_enum;
+
+typedef enum
+{
+ EMM_UPDATE_TYPE_TAU = 0,
+ EMM_UPDATE_TYPE_COMBINED_TAU,
+ EMM_UPDATE_TYPE_COMBINED_TAU_IMSI_ATTACH,
+ EMM_UPDATE_TYPE_PERIODIC_TAU,
+ EMM_UPDATE_TYPE_INVALID
+} emm_update_type_enum;
+
+typedef enum
+{
+ EMM_ATTACH_RESULT_NONE = 0,
+ EMM_ATTACH_RESULT_EPS_ONLY_ATTACHED,
+ EMM_ATTACH_RESULT_COMBINED_ATTACHED
+} emm_attach_result_enum;
+
+typedef enum
+{
+ EMM_UPDATE_RESULT_TA_UPDATED = 0,
+ EMM_UPDATE_RESULT_COMBINED_UPDATED = 1,
+ EMM_UPDATE_RESULT_TA_UPDATED_ISR_ACTIVATED = 4,
+ EMM_UPDATE_RESULT_COMBINED_UPDATED_ISR_ACTIVATED = 5,
+ EMM_UPDATE_RESULT_INVALID
+} emm_update_result_enum;
+
+typedef enum
+{
+ EMM_CAUSE_CAUSE_NONE = 0x00,
+ EMM_CAUSE_IMSI_UNKNOWN_IN_HSS = 0x02,
+ EMM_CAUSE_ILLEGAL_UE = 0x03,
+ EMM_CAUSE_IMEI_NOT_ACCEPTED = 0x05,
+ EMM_CAUSE_ILLEGAL_ME = 0x06,
+ EMM_CAUSE_EPS_NOT_ALLOWED = 0x07,
+ EMM_CAUSE_EPS_NON_EPS_NOT_ALLOWED = 0x08,
+ EMM_CAUSE_UE_ID_NOT_DERIVED_BY_NW = 0x09,
+ EMM_CAUSE_IMPLICIT_DETACH = 0x0a,
+ EMM_CAUSE_PLMN_NOT_ALLOWED = 0x0b,
+ EMM_CAUSE_TA_NOT_ALLOWED = 0x0c,
+ EMM_CAUSE_ROAMING_NOT_ALLOWED_IN_TA = 0x0d,
+ EMM_CAUSE_EPS_NOT_ALLOWED_IN_PLMN = 0x0e,
+ EMM_CAUSE_NO_SUITABLE_CELL_IN_TA = 0x0f,
+ EMM_CAUSE_MSC_NOT_REACHABLE = 0x10,
+ EMM_CAUSE_NW_FAILURE = 0x11,
+ EMM_CAUSE_CS_NOT_AVAILABLE = 0x12,
+ EMM_CAUSE_ESM_FAILURE = 0x13,
+ EMM_CAUSE_MAC_FAILURE = 0x14,
+ EMM_CAUSE_SYNCH_FAILURE = 0x15,
+ EMM_CAUSE_CONGESTION = 0x16,
+ EMM_CAUSE_UE_SEC_CAPA_MISMATCH = 0x17,
+ EMM_CAUSE_SEC_MODE_REJ_UNSPECIFIED = 0x18,
+ EMM_CAUSE_NOT_AUTH_FOR_CSG = 0x19,
+ EMM_CAUSE_NON_EPS_AUTH_UNACCEPTABLE = 0x1a,
+ EMM_CAUSE_REQUEST_SERVICE_OPTION_NOT_AUTHORIZED_IN_PLMN = 0x23,
+ EMM_CAUSE_CS_TEMP_NOT_AVAILABLE = 0x27,
+ EMM_CAUSE_NO_EPS_CTXT_ACT = 0x28,
+ EMM_CAUSE_SEVERE_NW_FAILURE = 0x2a, /* R11 CP#120594 CR#1473 */
+ EMM_CAUSE_SEMANTIC_INCORRECT = 0x5f,
+ EMM_CAUSE_INVALID_MANDATORY_INFO = 0x60,
+ EMM_CAUSE_MSG_TYPE_NOT_EXIST = 0x61,
+ EMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE = 0x62,
+ EMM_CAUSE_IE_NOT_EXIST = 0x63,
+ EMM_CAUSE_CONDITIONAL_IE_ERROR = 0x64,
+ EMM_CAUSE_MESSAGE_NOT_COMPATIBLE = 0x65,
+ EMM_CAUSE_PROTOCOL_ERROR = 0x6f,
+ /* Incase if any more standard cause values are to be added then
+ * the cause having the greatest value should be placed just before
+ * the internal cause values.
+ */
+ /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
+
+ EMM_CAUSE_FORBIDDEN_PLMN = FORBIDDEN_PLMN, /* 0x70 */
+ EMM_CAUSE_NO_COVERAGE = NO_COVERAGE,
+ EMM_CAUSE_EPS_SERV_NOT_ALLOWED = GPRS_SERV_NOT_ALLOWED, /* for GEMINI, PS can NOT attach in SIM1 and SIM2 */
+ EMM_CAUSE_SIM_REMOVED = SIM_REMOVED,
+ EMM_CAUSE_SIM_INVALID_FOR_PS = SIM_INVALID_FOR_PS,
+ EMM_CAUSE_SIM_INVALID_FOR_CS = SIM_INVALID_FOR_CS,
+ EMM_CAUSE_SIM_INVALID_FOR_CS_AND_PS = SIM_INVALID_FOR_CS_AND_PS,
+ EMM_CAUSE_EAS_IN_SUSPEND_MODE = MM_REJ_CUZ_RR_IN_SUSPEND_MODE,
+ EMM_CAUSE_LIMITED_SERVICE = GPRS_IN_LIMITED_SERVICE,
+ EMM_CAUSE_SIM_INVALID_FOR_LTE_BECAUSE_NON_USIM_INSERTED = 0x8f,
+ EMM_CAUSE_OOS_IND = 0x90,
+ EMM_CAUSE_ECALL_INACTIVE = 0x91
+} emm_cause_enum;
+
+typedef enum
+{
+ CSFB_INFO_EMM_CAUSE_CAUSE_NONE = 0x00,
+ CSFB_INFO_EMM_CAUSE_IMSI_UNKNOWN_IN_HSS = 0x02,
+ CSFB_INFO_EMM_CAUSE_ILLEGAL_UE = 0x03,
+ CSFB_INFO_EMM_CAUSE_IMEI_NOT_ACCEPTED = 0x05,
+ CSFB_INFO_EMM_CAUSE_ILLEGAL_ME = 0x06,
+ CSFB_INFO_EMM_CAUSE_EPS_NOT_ALLOWED = 0x07,
+ CSFB_INFO_EMM_CAUSE_EPS_NON_EPS_NOT_ALLOWED = 0x08,
+ CSFB_INFO_EMM_CAUSE_UE_ID_NOT_DERIVED_BY_NW = 0x09,
+ CSFB_INFO_EMM_CAUSE_IMPLICIT_DETACH = 0x0a,
+ CSFB_INFO_EMM_CAUSE_PLMN_NOT_ALLOWED = 0x0b,
+ CSFB_INFO_EMM_CAUSE_TA_NOT_ALLOWED = 0x0c,
+ CSFB_INFO_EMM_CAUSE_ROAMING_NOT_ALLOWED_IN_TA = 0x0d,
+ CSFB_INFO_EMM_CAUSE_EPS_NOT_ALLOWED_IN_PLMN = 0x0e,
+ CSFB_INFO_EMM_CAUSE_NO_SUITABLE_CELL_IN_TA = 0x0f,
+ CSFB_INFO_EMM_CAUSE_MSC_NOT_REACHABLE = 0x10,
+ CSFB_INFO_EMM_CAUSE_NW_FAILURE = 0x11,
+ CSFB_INFO_EMM_CAUSE_CS_NOT_AVAILABLE = 0x12,
+ CSFB_INFO_EMM_CAUSE_ESM_FAILURE = 0x13,
+ CSFB_INFO_EMM_CAUSE_MAC_FAILURE = 0x14,
+ CSFB_INFO_EMM_CAUSE_SYNCH_FAILURE = 0x15,
+ CSFB_INFO_EMM_CAUSE_CONGESTION = 0x16,
+ CSFB_INFO_EMM_CAUSE_UE_SEC_CAPA_MISMATCH = 0x17,
+ CSFB_INFO_EMM_CAUSE_SEC_MODE_REJ_UNSPECIFIED = 0x18,
+ CSFB_INFO_EMM_CAUSE_NOT_AUTH_FOR_CSG = 0x19,
+ CSFB_INFO_EMM_CAUSE_NON_EPS_AUTH_UNACCEPTABLE = 0x1a,
+ CSFB_INFO_EMM_CAUSE_CS_TEMP_NOT_AVAILABLE = 0x27,
+ CSFB_INFO_EMM_CAUSE_NO_EPS_CTXT_ACT = 0x28,
+ CSFB_INFO_EMM_CAUSE_SEMANTIC_INCORRECT = 0x5f,
+ CSFB_INFO_EMM_CAUSE_INVALID_MANDATORY_INFO = 0x60,
+ CSFB_INFO_EMM_CAUSE_MSG_TYPE_NOT_EXIST = 0x61,
+ CSFB_INFO_EMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE = 0x62,
+ CSFB_INFO_EMM_CAUSE_IE_NOT_EXIST = 0x63,
+ CSFB_INFO_EMM_CAUSE_CONDITIONAL_IE_ERROR = 0x64,
+ CSFB_INFO_EMM_CAUSE_MESSAGE_NOT_COMPATIBLE = 0x65,
+ CSFB_INFO_EMM_CAUSE_PROTOCOL_ERROR = 0x6f,
+ /* Incase if any more standard cause values are to be added then
+ * the cause having the greatest value should be placed just before
+ * the internal cause values.
+ */
+ /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
+
+ CSFB_INFO_EMM_CAUSE_FORBIDDEN_PLMN = FORBIDDEN_PLMN, /* 0x70 */
+ CSFB_INFO_EMM_CAUSE_NO_COVERAGE = NO_COVERAGE,
+ CSFB_INFO_EMM_CAUSE_EPS_SERV_NOT_ALLOWED = GPRS_SERV_NOT_ALLOWED, /* for GEMINI, PS can NOT attach in SIM1 and SIM2 */
+ CSFB_INFO_EMM_CAUSE_SIM_REMOVED = SIM_REMOVED,
+ CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_PS = SIM_INVALID_FOR_PS,
+ CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_CS = SIM_INVALID_FOR_CS,
+ CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_CS_AND_PS = SIM_INVALID_FOR_CS_AND_PS,
+ CSFB_INFO_EMM_CAUSE_EAS_IN_SUSPEND_MODE = MM_REJ_CUZ_RR_IN_SUSPEND_MODE,
+ CSFB_INFO_EMM_CAUSE_LIMITED_SERVICE = GPRS_IN_LIMITED_SERVICE,
+ CSFB_INFO_EMM_CAUSE_SIM_INVALID_FOR_LTE_BECAUSE_NON_USIM_INSERTED = 0x8f,
+ CSFB_INFO_EMM_T3442_IS_RUNNING,
+ CSFB_INFO_EMM_SS_EPS_ONLY_CAUSE_18
+} emm_csfb_failure_info_enum;
+
+typedef enum
+{
+ EMM_CAUSE_SOURCE_OTHER = 0,
+ EMM_CAUSE_SOURCE_ATTACH_REJECT = 1,
+ EMM_CAUSE_SOURCE_TAU_REJECT = 2,
+ EMM_CAUSE_SOURCE_NW_DETACH = 3,
+ EMM_CAUSE_SOURCE_SERVICE_REJECT = 4,
+ EMM_CAUSE_SOURCE_AUTH_REJECT = 5,
+}emm_cause_source_enum;
+
+typedef enum
+{
+ ESM_MSG_INVALID = 0x00,
+ ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST = 0xC1,
+ ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_ACCEPT = 0xC2,
+ ESM_MSG_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REJECT = 0xC3,
+ ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REQUEST = 0xC5,
+ ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_ACCEPT = 0xC6,
+ ESM_MSG_ACTIVATE_DEDICATED_EPS_BEARER_CONTEXT_REJECT = 0xC7,
+ ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_REQUEST = 0xC9,
+ ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_ACCEPT = 0xCA,
+ ESM_MSG_MODIFY_EPS_BEARER_CONTEXT_REJECT = 0xCB,
+ ESM_MSG_DEACTIVATE_EPS_BEARER_CONTEXT_REQUEST = 0xCD,
+ ESM_MSG_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT = 0xCE,
+ ESM_MSG_PDN_CONNECTIVITY_REQUEST = 0xD0,
+ ESM_MSG_PDN_CONNECTIVITY_REJECT = 0xD1,
+ ESM_MSG_PDN_DISCONNECT_REQUEST = 0xD2,
+ ESM_MSG_PDN_DISCONNECT_REJECT = 0xD3,
+ ESM_MSG_BEARER_RESOURCE_ALLOCATION_REQUEST = 0xD4,
+ ESM_MSG_BEARER_RESOURCE_ALLOCATION_REJECT = 0xD5,
+ ESM_MSG_BEARER_RESOURCE_MODIFICATION_REQUEST = 0xD6,
+ ESM_MSG_BEARER_RESOURCE_MODIFICATION_REJECT = 0xD7,
+ ESM_MSG_ESM_INFORMATION_REQUEST = 0xD9,
+ ESM_MSG_ESM_INFORMATION_RESPONSE = 0xDA,
+ ESM_MSG_NOTIFICATION = 0xDB,
+ ESM_MSG_ESM_STATUS = 0xE8
+
+} esm_msg_type_enum;
+
+typedef enum
+{
+ EMM_SR_TYPE_SR,
+ EMM_SR_TYPE_EXSR
+} emm_sr_type_enum;
+
+typedef enum
+{
+ BCM_NONE = 0,
+ BCM_MS_ONLY,
+ BCM_MS_NW
+
+} bcm_enum;
+
+typedef enum
+{
+ ETFT_NOT_SUPPORT = 0,
+ ETFT_SUPPORT
+
+} etft_enum;
+
+typedef enum
+{
+ EMM_DETACH_TYPE_MO_EPS_DETACH = 1,
+ EMM_DETACH_TYPE_MO_IMSI_DETACH,
+ EMM_DETACH_TYPE_MO_COMBINED_DETACH,
+ EMM_DETACH_TYPE_MT_REATTACH_REQUIRED,
+ EMM_DETACH_TYPE_MT_REATTACH_NOT_REQUIRED,
+ EMM_DETACH_TYPE_MT_IMSI_DETACH,
+ EMM_DETACH_TYPE_MO_POWEROFF_EPS_DETACH,
+ EMM_DETACH_TYPE_MO_POWEROFF_COMBINED_DETACH
+} emm_detach_type_enum;
+
+typedef enum
+{
+ MM_MSG_IMSI_DETACH_IND = 1,
+ MM_MSG_LU_ACCEPT,
+ MM_MSG_LU_REJECT,
+ MM_MSG_LU_REQUEST,
+ MM_MSG_AUTH_REJ,
+ MM_MSG_AUTH_REQ,
+ MM_MSG_AUTH_RSP,
+ MM_MSG_IDENITY_REQ,
+ MM_MSG_IDENITY_RSP,
+ MM_MSG_TMSI_REALLOC_COMMAND,
+ MM_MSG_TMSI_REALLOC_COMPLETE,
+ MM_MSG_CM_SERVICE_ACCEPT,
+ MM_MSG_CM_SERVICE_REJECT,
+ MM_MSG_CM_SERVICE_ABORT,
+ MM_MSG_CM_SERVICE_REQUEST,
+ MM_MSG_CM_SERVICE_PROMPT,
+ MM_MSG_CM_REEST_REQUEST,
+ MM_MSG_ABORT,
+ MM_MSG_MM_NULL,
+ MM_MSG_MM_STATUS,
+ MM_MSG_MM_INFORMATION,
+ MM_MSG_INVALID
+} mm_msg_type_enum;
+
+typedef enum
+{
+ MM_REJ_CAUSE_IMSI_UNKNOWN_IN_HLR = 0x02,
+ MM_REJ_CAUSE_ILLEGAL_MS = 0x03,
+ MM_REJ_CAUSE_IMEI_NOT_ACCEPTED = 0x05,
+ MM_REJ_CAUSE_ILLEGAL_ME = 0x06,
+ MM_REJ_CAUSE_PLMN_NOT_ALLOWED = 0x0b,
+ MM_REJ_CAUSE_LA_NOT_ALLOWED = 0x0c,
+ MM_REJ_CAUSE_ROAMING_NOT_ALLOWED_IN_LA = 0x0d,
+ MM_REJ_CAUSE_GPRS_NOT_ALLOWED_IN_PLMN = 0x0e,
+ MM_REJ_CAUSE_NO_SUITABLE_CELL_IN_LA = 0x0f,
+ MM_REJ_CAUSE_NW_FAILURE = 0x11,
+ MM_REJ_CAUSE_MAC_FAILURE = 0x14,
+ MM_REJ_CAUSE_SYNCH_FAILURE = 0x15,
+ MM_REJ_CAUSE_CONGESTION = 0x16,
+ MM_REJ_CAUSE_GSM_AUTH_UNACCEPTABLE = 0x17,
+ MM_REJ_CAUSE_NOT_AUTH_FOR_CSG = 0x19,
+ MM_REJ_CAUSE_SERV_OPT_NOT_SUPPORT = 0x20,
+ MM_REJ_CAUSE_SERV_OPT_NOT_SUBSCRIBE = 0x21,
+ MM_REJ_CAUSE_SERV_OPT_TEMP_OUT_OF_ORDER = 0x22,
+ MM_REJ_CAUSE_CALL_NOT_IDENTIFIED = 0x26,
+ MM_CAUSE_SEMANTIC_INCORRECT = 0x5f,
+ MM_CAUSE_INVALID_MANDATORY_INFO = 0x60,
+ MM_CAUSE_MSG_TYPE_NOT_EXIST = 0x61,
+ MM_CAUSE_MSG_TYPE_NOT_COMPATIBLE = 0x62,
+ MM_CAUSE_IE_NOT_EXIST = 0x63,
+ MM_CAUSE_CONDITIONAL_IE_ERROR = 0x64,
+ MM_CAUSE_MESSAGE_NOT_COMPATIBLE = 0x65,
+ MM_CAUSE_PROTOCOL_ERROR = 0x6f
+} mm_rej_cause_enum;
+
+typedef enum
+{
+ MM_EMM_CSFB_REQ_TYPE_INVALID = 0,
+ MM_EMM_CSFB_REQ_TYPE_NORMAL_CALL,
+ MM_EMM_CSFB_REQ_TYPE_EMERGENCY_CALL,
+ MM_EMM_CSFB_REQ_TYPE_SS,
+ MM_EMM_CSFB_REQ_TYPE_LCS,
+ MM_EMM_CSFB_REQ_TYPE_RESERVED
+} mm_emm_csfb_req_type_enum;
+
+typedef enum
+{
+ MM_EMM_CSFB_PAGING_ID_INVALID = 0,
+ MM_EMM_CSFB_PAGING_ID_IMSI,
+ MM_EMM_CSFB_PAGING_ID_TMSI
+} mm_emm_csfb_paging_id_enum;
+
+typedef enum
+{
+ MM_EMM_CSFB_SUCCESS = 0,
+ MM_EMM_CSFB_FAILURE
+} mm_emm_csfb_result_enum;
+
+typedef enum
+{
+ MM_EMM_EVENT_NONE = 0,
+ MM_EMM_T3312_EXPIRATION,
+ MM_EMM_T3323_EXPIRATION,
+ MM_EMM_T3412_EXPIRATION,
+ MM_EMM_T3423_EXPIRATION
+} mm_emm_isr_event_enum;
+
+typedef enum
+{
+ MM_EMM_U1_UPDATED = 0,
+ MM_EMM_U2_NOT_UPDATED,
+ MM_EMM_U3_ROAMING_NOT_ALLOWED,
+ MM_EMM_U4_UPDATING_DISABLED,
+ MM_EMM_UPDATE_STATUS_INVALID
+} mm_emm_update_status_enum;
+
+typedef enum
+{
+ MM_EMM_PROC_DIR_UE_INITIATED = 0,
+ MM_EMM_PROC_DIR_NW_INITIATED,
+ MM_EMM_PROC_DIR_INVALID
+} gmm_proc_direction_enum;
+
+/* MM <-> EMM end */
+
+typedef enum {
+ ATTACH_DETACH_NOT_REQURED_BY_NW = 0,
+ ATTACH_DETACH_REQURED_BY_NW
+}att_flag_enum;
+
+/* Temp solution fro MM Pre-integration */
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+ NO_ADDITIONAL_INFO = 0,
+ CSFB_NOT_PREFERRED = 1,
+ SMS_ONLY = 2,
+ AUR_RESERVED
+} additional_update_result_enum;
+
+
+typedef enum
+{
+ NO_STATUS = 1,
+ PROC_STARTED,
+ PROC_SUCCESSFUL,
+ PROC_FAILED,
+ PROC_REJECTED,
+ PROC_NEED_RETRY
+}proc_status_enum;
+
+typedef enum
+{
+ UMTS_RRC_IDLE,
+ UMTS_RRC_CELL_FACH,
+ UMTS_RRC_CELL_PCH,
+ UMTS_RRC_URA_PCH,
+ UMTS_RRC_CELL_DCH,
+ UMTS_RRC_INACTIVE
+} umts_rrc_state_enum;
+
+typedef enum
+{
+ PS_DOMAIN_CONN_INACTIVE,
+ PS_DOMAIN_CONN_DORMANT,
+ PS_DOMAIN_CONN_ACTIVE
+} ps_conn_status_enum;
+
+typedef enum
+{
+ GSM_RRM_NULL,
+ GSM_RRM_INACTIVE,
+ GSM_RRM_SELECTION,
+ GSM_RRM_IDLE,
+ GSM_RRM_ACCESS,
+ GSM_RRM_PKT_TRANSFER,
+ GSM_RRM_DEDICATED,
+ GSM_RRM_RESELCTION,
+} gsm_rrm_state_enum;
+
+//#ifdef __VOLTE_SUPPORT__
+typedef enum
+{
+ EMC_STATUS_RELEASED = 0,
+ EMC_STATUS_REQUIRED = 1
+} emc_status_enum;
+
+typedef enum
+{
+ EMC_PDN_STATUS_NONE = 0,
+ EMC_PDN_STATUS_EMC_ONLY = 1,
+ EMC_PDN_STATUS_EMC_AND_NORMAL = 2
+} emc_pdn_status_enum;
+
+//#endif /* __VOLTE_SUPPORT__ */
+
+typedef enum
+{
+ RAT_DUPLEX_TYPE_UNKNOWN = 0,
+ RAT_DUPLEX_TYPE_FDD,
+ RAT_DUPLEX_TYPE_TDD
+} rat_duplex_type_enum;
+
+#if defined(__CDMA2000_RAT__)
+typedef enum
+{
+ MMDC_SEARCH_AP_TRIGGER = 0,
+ MMDC_SEARCH_2G_CELL_CHANGE,
+ MMDC_SEARCH_2G_HO,
+}mmdc_recovery_search_enum;
+
+typedef enum
+{
+ PLMN_SEARCH_ABORT_2G = 0,
+ PLMN_SEARCH_ABORT_3G = 1,
+ PLMN_SEARCH_ABORT_4G = 2
+}plmn_search_abort_cause_enum;
+
+typedef enum
+{
+ ABORT_STATUS_SUCCESS = 0,
+ ABORT_STATUS_FAIL,
+ ABORT_STATUS_UNKNOWN = 255
+} plmn_search_abort_proc_status_enum;
+
+typedef enum
+{
+ MMDC_SUITABLE_CELL = 0,
+ MMDC_ACCEPTABLE_CELL = 1,
+ MMDC_NO_CELL = 2
+} mmdc_camp_on_status_enum;
+
+typedef enum
+{
+ MMDC_PSD_SWITCH_CAUSE_PSDM = 0,
+ MMDC_PSD_SWITCH_CAUSE_MANUAL_SELECTION,
+ MMDC_PSD_SWITCH_CAUSE_AUTO_RESELECTION,
+ MMDC_PSD_SWITCH_CAUSE_NC0,
+ MMDC_PSD_SWITCH_CAUSE_QUERY_CURRENT,
+ MMDC_PSD_SWITCH_CAUSE_UNKNOWN = 255
+} mmdc_psd_switch_cause_enum;
+#endif /* __SGLTE__ */
+
+
+typedef enum
+{
+ AS_IND_CELL_CHANGE_IND = 0x01,
+ AS_IND_HO_CHANGE_IND = 0x02,
+ AS_IND_RR_STATE_CHANGE_IND = 0x04,
+ AS_IND_3G_SYS_IR_CRITERIA_IND = 0x08,
+ AS_IND_4G_SYS_IR_CRITERIA_IND = 0x10,
+ AS_IND_SRV_CELL_INFO_IND = 0x20,
+ AS_IND_NBR_INFO_IND = 0x40,
+ AS_IND_OOS_TRIGER_IND = 0x80,
+ AS_IND_2G_SYS_IR_CRITERIA_IND = 0x100
+} as_ind_type_enum;
+
+#define EMM_PROC_BASE (100)
+typedef enum
+{
+ NAS_PROC_NONE = 0,
+ MM_PROC_NONE = NAS_PROC_NONE,
+ MM_PROC_LU,
+ MM_PROC_CM_SERVICE,
+ MM_PROC_ATTACH,
+ MM_PROC_ATTACH_COMBINED,
+ MM_PROC_DETACH_MO_GPRS,
+ MM_PROC_DETACH_MO_IMSI,
+ MM_PROC_DETACH_MO_COMBINED,
+ MM_PROC_DETACH_MT_REATTACH_REQD,
+ MM_PROC_DETACH_MT_REATTACH_NOT_REQD,
+ MM_PROC_DETACH_MT_IMSI_DETACH_N_TO_MS,
+ MM_PROC_RAU,
+ MM_PROC_RAU_COMBINED,
+ MM_PROC_SERVICE_REQUEST,
+ MM_PROC_AUTH,
+ MM_PROC_ABORT,
+
+ EMM_PROC_NONE = NAS_PROC_NONE,
+ EMM_ATTACH = EMM_PROC_BASE,
+ EMM_ATTACH_COMBINED,
+ EMM_ATTACH_EMERGENCY,
+ EMM_DETACH_MO_EPS,
+ EMM_DETACH_MO_IMSI,
+ EMM_DETACH_MO_COMBINED,
+ EMM_DETACH_MT_REATTACH_REQD,
+ EMM_DETACH_MT_REATTACH_NOT_REQD,
+ EMM_DETACH_MT_IMSI_DETACH,
+ EMM_TAU,
+ EMM_TAU_PERIODIC,
+ EMM_TAU_COMBINED,
+ EMM_SERVICE_REQUEST,
+ EMM_SERVICE_REQUEST_CSFB,
+ EMM_AUTH,
+
+ VGMM_REGISTRATION,
+ VGMM_PROC_BEGIN = VGMM_REGISTRATION,
+ VGMM_REGISTRATION_UPDATE,
+ VGMM_DEREGISTRATION,
+ VGMM_DEREGISTRATION_MT_RE_REGISTRATION_REQD,
+ VGMM_DEREGISTRATION_MT_RE_REGISTRATION_NOT_REQD,
+ VGMM_SERVICE_REQUEST,
+ VGMM_SERVICE_REQUEST_EMCFB,
+ VGMM_AUTH,
+ VGMM_EMC_REGISTRATION,
+ VGMM_PROC_END = VGMM_AUTH,
+}nas_proc_enum;
+
+typedef nas_proc_enum emm_proc_enum;
+typedef nas_proc_enum mm_proc_enum;
+
+typedef enum
+{
+ IMS_VOICE_OVER_PS_SESSION_IN_S1_MODE_NOT_SUPPORT = 0,
+ IMS_VOICE_OVER_PS_SESSION_IN_S1_MODE_SUPPORT
+} ims_ind_enum;
+
+typedef enum
+{
+ EMERGENCY_BEARER_SERVICE_IN_S1_MODE_NOT_SUPPORT = 0,
+ EMERGENCY_BEARER_SERVICE_IN_S1_MODE_SUPPORT
+} emergency_service_ind_enum;
+
+typedef enum
+{
+ LOCATION_SERVICE_VIA_EPS_NOT_SUPPORT = 0,
+ LOCATION_SERVICE_VIA_EPS_SUPPORT
+} location_service_epc_ind_enum;
+
+typedef enum
+{
+ NO_INFO_ABOUT_SUPPORT_OF_LOCATION_SERVICE_VIA_CS_DOMAIN = 0,
+ LOCATION_SERVICE_VIA_CS_DOMAIN_SUPPORT,
+ LOCATION_SERVICE_VIA_CS_DOMAIN_NOT_SUPPORT,
+ RESERVED
+} location_service_cs_ind_enum;
+
+typedef enum
+{
+ EXT_SERVICE_REQUEST_FOR_PS_NOT_SUPPORT = 0,
+ EXT_SERVICE_REQUEST_FOR_PS_SUPPORT
+} ext_service_request_for_ps_enum;
+
+typedef enum
+{
+ NAS_NW_EXT_PCO_NOT_SUPPORT = 0,
+ NAS_NW_EXT_PCO_SUPPORT = 1,
+ NAS_NW_EXT_PCO_UNKNOWN = 2
+} ext_pco_enum;
+
+typedef enum
+{
+ NAS_NW_DCNR_NOT_RESTRICT = 0,
+ NAS_NW_DCNR_RESTRICT = 1,
+ NAS_NW_DCNR_UNKNOWN = 2
+} restrict_dcnr_enum;
+
+typedef enum
+{
+ NAS_NW_IWK_WITHOUT_N26_NOT_SUPPORT = 0,
+ NAS_NW_IWK_WITHOUT_N26_SUPPORT = 1,
+ NAS_NW_IWK_WITHOUT_N26_UNKNOWN = 2
+} iwk_n26_enum;
+
+
+
+typedef enum
+{
+ Module_Invalid = 0x00,
+ Module_PSDM = 0x01,
+ Module_AP = 0x02,
+ Module_PSDM_AP = 0x03,
+} target_module_enum;
+
+
+
+/* LCS (CISS/LPP) between EMM */
+typedef enum
+{
+ LCS_EMM_STATUS_SUCCESS = 0, /* PDU is sent or received successfully */
+ LCS_EMM_STATUS_ERR_CONN_FAIL, /* EMM connection failure */
+ LCS_EMM_STATUS_ERR_NW_NO_LCS, /* NW does not support LCS on 2G/3G/4G */
+ LCS_EMM_STATUS_ERR_CS_LCS_ONLY, /* NW does not support LCS on 4G, may CSFB to 2G/3G */
+ LCS_EMM_STATUS_ERR_MCD_ENCODE_FAIL, /* MCD encode fail */
+ LCS_EMM_STATUS_ERR_MCD_DECODE_FAIL /* MCD decode fail */
+} lcs_emm_status_enum;
+
+
+typedef enum
+{
+ LCS_VGMM_STATUS_SUCCESS = 0, /* PDU is sent or received successfully */
+ LCS_VGMM_STATUS_ERR_CONN_FAIL, /* VGMM connection failure */
+ LCS_VGMM_STATUS_ERR_MCD_ENCODE_FAIL, /* MCD encode fail */
+ LCS_VGMM_STATUS_ERR_MCD_DECODE_FAIL, /* MCD decode fail */
+ LCS_VGMM_DATA_CNF_FAIL_DUE_TO_PS_SUSPEND,
+} lcs_vgmm_status_enum;
+
+
+typedef enum
+{
+ TIMER_ID_T3246 = 1,
+ TIMER_ID_T3346,
+ TIMER_ID_T3246_AND_T3346
+} mm_emm_common_timer_id_enum, xmm_common_timer_id_enum; // __REL10__: t3346
+
+typedef enum
+{
+ ADD_ARAL,
+ DEL_ARAL
+} aral_op_enum;
+
+#ifdef __LTE_RAT__
+typedef enum
+{
+ ERRC_SIM_PROTECT_PURPOSE_NONE,
+ ERRC_SIM_PROTECT_PURPOSE_POWER_ON,
+ ERRC_SIM_PROTECT_PURPOSE_CSFB_FR,
+ ERRC_SIM_PROTECT_PURPOSE_DUPLEX_MODE_CHG
+} errc_sim_protect_purpose_enum;
+#endif //__LTE_RAT__
+
+typedef enum
+{
+ IMS_VOICE_OVER_PS_IU_MODE_A_GB_MODE_NOT_SUPPORT = 0,
+ IMS_VOICE_OVER_PS_IU_MODE_SUPPORT_A_GB_MODE_NOT_SUPPORT
+} ug_ims_ind_enum;
+
+typedef enum
+{
+ EMERGENCY_BEARER_SERVICE_IN_IU_MODE_A_GB_MODE_NOT_SUPPORT = 0,
+ EMERGENCY_BEARER_SERVICE_IN_IU_MODE_SUPPORT_A_GB_MODE_NOT_SUPPORT
+} ug_emergency_service_ind_enum;
+
+typedef enum
+{
+ UMTS_PRIORITY_NORMAL = 0,
+ UMTS_PRIORITY_HIGH
+} umts_service_priority_enum; // [Gemini][Two PS attach]
+
+// Priority class used by GMSS
+typedef enum
+{
+ PRIO_CLASS_NONE = 0x00, /* No priority class */
+ PRIO_CLASS_RPLMN = 0x01, /* Priority class RPLMN. Only for 3GPP */
+ PRIO_CLASS_HOME = 0x02, /* Priority class Home */
+ PRIO_CLASS_R_H = 0x03, /* 0011 = 3 */
+ PRIO_CLASS_PREF = 0x04, /* Priority class Home + Preferred */
+ PRIO_CLASS_R_P = 0x05, /* 0101 = 5 */
+ PRIO_CLASS_H_P = 0x06, /* 0110 = 6 */
+ PRIO_CLASS_R_H_P = 0x07, /* 0111 = 7 */
+ PRIO_CLASS_NOT_PREFERRED= 0x08, /* Priority class Any */
+ PRIO_CLASS_R_NP = 0x09, /* 1001 = 9 */
+ PRIO_CLASS_H_NP = 0x0A, /* 1010 = 10 */
+ PRIO_CLASS_R_H_NP = 0x0B, /* 1011 = 11 */
+ PRIO_CLASS_P_NP = 0x0C, /* 1100 = 12 */
+ PRIO_CLASS_R_P_NP = 0x0D, /* 1101 = 13 */
+ PRIO_CLASS_H_P_NP = 0x0E, /* 1110 = 14 */
+ PRIO_CLASS_R_H_P_NP = 0x0F, /* 1111 = 15 */
+ PRIO_CLASS_LIMITED = 0x10 /* Priority class limited. Only for 3GPP */
+
+} prio_class_enum;
+
+typedef enum
+{
+ GMSS_SELECTED_RAT = 0, /* means select such rat*/
+ GMSS_SELECTED_ATTACHED = 1, /* means result is attached*/
+ GMSS_SELECTED_LIMITED = 2 /* means result is a limited service */
+} gmss_selected_rat_status_enum;
+
+typedef enum
+{
+ EMDSTATUS_MD_CONFIG_MD1_ACTIVE, /* only MD1 active */
+ EMDSTATUS_MD_CONFIG_MD1_REMOTE_SIM_ACCESS_ONLY, /* MD1s' RF is closed, but MD1's SIM task is still working only for MD3 SIM remote access and MD3 active */
+ EMDSTATUS_MD_CONFIG_MD1_MD3_ACTIVE, /* both MD1 and MD3 active */
+
+} emdstatus_md_config_enum;
+
+typedef enum
+{
+ EMDSTATUS_SIM_CONFIG_NO_REMOTE_ACCESS, /* MD3 access local card */
+ EMDSTATUS_SIM_CONFIG_REMOTE_ACCESS_SIM1, /* MD3 access MD1's SIM task1 */
+ EMDSTATUS_SIM_CONFIG_REMOTE_ACCESS_SIM2 /* MD3 access MD1's SIM task2 */
+
+} emdstatus_sim_config_enum;
+
+typedef enum
+{
+ CT_MODE_SVLTE,
+ CT_MODE_TDD_DATA_ONLY,
+ CT_MODE_4G_SWITCH_OFF
+
+} ct_mode_enum;
+
+typedef enum
+{
+ MODE_SWITCH_NORMAL = 0x00,
+ MODE_SWITCH_PLMN_CHANGE = 0x01,
+ MODE_SWITCH_OUT_OF_SERVICE = 0x02,
+ MODE_SWITCH_SIM_REFRESH = 0x03,
+ MODE_SWITCH_MT_CSFB = 0x04,
+ MODE_SWITCH_MCC_RESULT = 0x05,
+ MODE_SWITCH_OTHER_SIM_LOC_LOSS = 0x06, //GMSS internal usage, other SIM location loss
+ MODE_SWITCH_ECC_SEARCH = 0x07, //not used in Gen97
+ MODE_SWTICH_EMC_SEARCH_BY_VDM = 0x08, //duplex mode change for VDM trigged limited search
+ MODE_SWTICH_EMC_SEARCH_BY_GMSS = 0x09, //duplex mode change for GMSS trigged limited search
+} mode_switch_cause_enum;
+
+typedef enum
+{
+ WM_POLICY_NONE = 0,
+ WM_POLICY_OP01_A = 1,
+ WM_POLICY_OP01_B = 2,
+ WM_POLICY_OM = 3,
+ WM_POLICY_OP02 = 4
+} wm_policy_enum;
+
+typedef enum
+{
+ SR_FAILURE_CAUSE_AC_BARRED = 0,
+ SR_FAILURE_CAUSE_NW_REJ_CONN = 1,
+ SR_FAILURE_CAUSE_T3346_START = 2,
+ SR_FAILURE_CAUSE_T3346_STOP = 3,
+ SR_FAILURE_CAUSE_T3346_EXPIRY = 4,
+ SR_FAILURE_CAUSE_CONN_FAIL = 5,
+ SR_FAILURE_CAUSE_T3525_START = 6,
+ SR_FAILURE_CAUSE_T3540_START = 7
+}sr_failure_cause_enum;
+
+typedef enum
+{
+ TAU_FAILURE_CAUSE_NONE = 0
+}tau_failure_cause_enum;
+
+typedef enum
+{
+ MRU_CMD_CLEAR,
+ MRU_CMD_EDIT,
+ MRU_CMD_QUERY,
+} mru_cmd_type_enum;
+
+typedef enum
+{
+ GMSS_C2K_SUPPORT_NONE,
+ GMSS_C2K_SUPPORT_SVLTE,
+ GMSS_C2K_SUPPORT_SRLTE,
+ GMSS_C2K_SUPPORT_UNKNOWN
+
+} gmss_c2k_support_enum;
+
+typedef enum
+{
+ NWSEL_EVENT_NONE = 0,
+ NWSEL_EVENT_CM_NORMAL_REQ = 1,
+ NWSEL_EVENT_CM_ECC_REQ = 2,
+ NWSEL_EVENT_CM_ABORT = 3,
+ NWSEL_EVENT_LR_ACCEPT = 4,
+ NWSEL_EVENT_DUPLEX_CHANGE_IND = 5,
+} nwsel_event_type_enum;
+
+typedef enum
+{
+ LTECA_BAND_CMD_QUERY,
+ LTECA_BAND_CMD_SET,
+} lteca_band_cmd_type_enum;
+
+typedef enum
+{
+ LTECA_MODE_CMD_QUERY,
+ LTECA_MODE_CMD_SET,
+} lteca_mode_cmd_type_enum;
+
+typedef enum {
+ LTECA_DISABLED = 0x00,
+ LTECA_ENABLED = 0x01
+} lteca_mode_enum;
+
+typedef enum
+{
+ EMM_NWSEL_EVENT_NONE = 0,
+ EMM_NWSEL_EVENT_REDIRECT_L2C = 1,
+} emm_nwsel_event_enum;
+
+typedef enum
+{
+ NWSEL_NV_CNF_NOT_WAIT = 0x00,
+ NWSEL_NV_CNF_WAIT_ACCESS_ID_START = 0x10,
+ NWSEL_NV_CNF_WAIT_ACCESS_ID_END = 0x1F
+} nwsel_report_nvram_write_cnf_trx_id_enum;
+
+typedef enum
+{
+ NAS_SV_NO_ACTIVE_AS,
+ NAS_SV_ACTIVE_2G,
+ NAS_SV_ACTIVE_3G,
+ NAS_SV_ACTIVE_4G,
+ NAS_SV_ACTIVE_1X_PS,
+ NAS_SV_ACTIVE_1X_CS,
+ NAS_SV_ACTIVE_5G,
+}nas_sv_active_as_enum;
+
+typedef enum
+{
+ NAS_SV_REASON_NO_REASON,
+ NAS_SV_REASON_SIM_ERROR,
+ NAS_SV_REASON_RFOFF,
+ NAS_SV_REASON_SET_RAT_MODE,
+ NAS_SV_REASON_IRAT,
+ NAS_SV_REASON_ABORT_BY_NWSEL,
+}nas_sv_cancel_reason_enum;
+
+typedef enum
+{
+ NAS_SV_EVENT_UPDATE_NONE = 0x0,
+ NAS_SV_EVENT_CS_LEAVE_IDLE,
+ NAS_SV_EVENT_CS_ENTER_IDLE,
+ NAS_SV_EVENT_PS_LEAVE_IDLE,
+ NAS_SV_EVENT_PS_ENTER_IDLE,
+ NAS_SV_EVENT_ENTER_HVOLTE_LTE_ONLY_MODE,//deactivate C2K CS/PS since LTE only mode
+ NAS_SV_EVENT_ENTER_HVOLTE_VOPS_MODE, //deactivate C2K CS/PS since VOPS mode
+ NAS_SV_EVENT_ENTER_SLEEP_STATE_CS_PS, //deactivate C2K CS/PS when SLEEP state
+ NAS_SV_EVENT_ENTER_SLEEP_STATE_PS_ONLY, //keep C2K CS is available when only CS doamin request
+ NAS_SV_EVENT_EMC_SERVICE_FOUND, //only keep target rat active emergency service found
+ NAS_SV_EVENT_EMC_SEARCH_3GPP, //deactivate C2K CS to prevent from searching preemption
+ NAS_SV_EVENT_LIST_START, // for nas_sv to cancel search
+ NAS_SV_EVENT_HPPLMN_LIST_END, // for nas_sv to dequeue, only send when HPPLMN list finish no further action shall be done.
+ NAS_SV_EVENT_CM_SERVICE_START,
+ NAS_SV_EVENT_CM_SERVICE_END,
+ NAS_SV_EVENT_EMM_CONN_IDLE,
+ NAS_SV_EVENT_EMM_CONN_NON_IDLE,
+ NAS_SV_EVENT_TYPE_CSFB,
+ NAS_SV_EVENT_TYPE_RETURN_NORMAL,
+ NAS_SV_EVENT_TYPE_RETURN_ABNORMAL,
+ NAS_SV_EVENT_TYPE_CONGESTION_TIMER_ACTIVE,
+ NAS_SV_EVENT_TYPE_THROTTLING_TIMER_ACTIVE,/* VZ_REQ_LTEDATARETRY_7735 */
+ NAS_SV_EVENT_EVENT_TYPE_NO_AVAILABLE_PDN,
+ NAS_SV_EVENT_TYPE_NO_AVAILABLE_PDN,
+ NAS_SV_EVENT_TYPE_CSFB_EMC,
+ NAS_SV_EVENT_TYPE_AC_BAR,
+ NAS_SV_EVENT_APN_DISABLED_CS_PS, //deactivate C2K CS/PS since vzw apn disabled
+ NAS_SV_EVENT_RAT_MODE_NO_C2K, //deactivate C2K CS/PS since rat mode did not contain C2K
+ NAS_SV_EVENT_VGMM_CONN_CONNECTED,
+ NAS_SV_EVENT_VGMM_CONN_IDLE,
+ NAS_SV_EVENT_VGMM_CONN_INACTIVE,
+ NAS_SV_EVENT_IR_REDIRECT_FROM_LTE_START,
+ NAS_SV_EVENT_LTE_REJECT_IR_REDIRECT_TO_UMTS_GSM,
+ NAS_SV_EVENT_ENTER_SLEEP_STATE_FOR_LVI, //deactivate C2K CS/PS when SLEEP state under limited virtual idle mode
+ NAS_SV_EVENT_EMM_DEACT_ERRC_FOR_RAT_MODE_CHANGE,
+} nas_sv_any_event_update_ind_enum;
+
+typedef enum
+{
+ NAS_SV_BROADCAST_EVENT_UPDATE_NONE = 0x0,
+ NAS_SV_BROADCAST_EVENT_TYPE_CSFB,
+ NAS_SV_BROADCAST_EVENT_TYPE_RETURN_NORMAL,
+ NAS_SV_BROADCAST_EVENT_TYPE_RETURN_ABNORMAL,
+ NAS_SV_BROADCAST_EVENT_TYPE_CONGESTION_TIMER_ACTIVE,
+ NAS_SV_BROADCAST_EVENT_TYPE_THROTTLING_TIMER_ACTIVE,/* VZ_REQ_LTEDATARETRY_7735 */
+ NAS_SV_BROADCAST_EVENT_TYPE_NO_AVAILABLE_PDN,
+ NAS_SV_BROADCAST_EVENT_TYPE_CSFB_EMC,
+ NAS_SV_BROADCAST_EVENT_TYPE_AC_BAR,
+ NAS_SV_BROADCAST_EVENT_TYPE_EMM_IR_REDIRECT_FAILED, /* NAS_SV reject IRAT without informing RATCHG, need to send this event to change state */
+} nas_sv_any_event_update_req_enum;
+
+
+typedef enum
+{
+ NAS_SV_TRACE_TYPE_REG_STATUS,
+} nas_sv_trace_type;
+
+typedef enum
+{
+ NAS_SV_BOOL_IN_A_MEETING,
+ NAS_SV_BOOL_IS_PLMN_STATUS_IND_SENT,
+ NAS_SV_BOOL_IS_RESULT_IND_SENT,
+ NAS_SV_BOOL_IS_REG_STATUS_IND_SENT,
+} nas_sv_bool_name;
+
+typedef enum
+{
+ NAS_SV_L4_EVENT_UPDATE_NONE = 0x0,
+ /* previous registered and plmn_loss, first requirement is L4 needs to inform UPCM data suspend. */
+ NAS_SV_L4_EVENT_AS_DEACTIVATED_START,
+ /* guarantee paired */
+ NAS_SV_L4_EVENT_AS_DEACTIVATED_END,
+} nas_sv_l4_event_update_ind_enum;
+
+
+// REL12 feature SCM
+typedef enum
+{
+ IMS_SCM_MMTEL_VOICE = 0,
+ IMS_SCM_MMTEL_VIDEO,
+ IMS_SCM_SMSOIP,
+ IMS_SCM_REG,
+ IMS_SCM_MAX,
+} ims_scm_info_type_enum;
+
+typedef enum
+{
+ OMADM_CMD_GET,
+ OMADM_CMD_SET
+} omadm_cmd_type_enum;
+
+typedef enum
+{
+ AUTONOMOUS_GAP = 0,
+ MPSR_DURATION = 1,
+ SCAN_DURATION = 2,
+ SLEEP_DURATION = 3,
+ MPSR_MAX_DURATION = 4,
+ LONG_MPSR_DURATION = 5,
+ TPLMN_BARRING_TIMER = 6,
+ LTE_HPUE = 7,
+ T_WWAN_911_TIMER = 8,
+ MPSR_MAX_STAGE = 9,
+ LTE_DL256QAM = 10,
+ LTE_UL64QAM = 11,
+ LTE_TDD_TM9 = 12,
+ LTE_FDD_TM9 = 13,
+ LTE_B25_4x4MIMO = 14,
+ LTE_B41_4x4MIMO = 15,
+ T5GNRSA_BARRING_TIMER = 16,
+ MAX_OMADM_NODE
+} omadm_node_type_enum;
+
+typedef enum
+{
+ IMS_SCM_ACTION_START = 1,
+ IMS_SCM_ACTION_END,
+} ims_scm_info_action_enum;
+
+typedef enum
+{
+ RAT_MODE_USER_CHANGE = 0,
+ RAT_MODE_GMSS_MCC_SEARCH = 1,
+ RAT_MODE_GMSS_PLMN_SEARCH = 2,
+ RAT_MODE_GMSS_HVOLTE_MODE_CHANGE = 3
+} rat_mode_change_cause_enum;
+
+typedef enum
+{
+ PLMN_RESTRICT_INFO_NONE = 0,
+ PLMN_RESTRICT_MO_IMS_SR = 1,
+ PLMN_RESTRICT_LR_ACCEPT_PS_ONLY = 2
+} plmn_restrict_additional_information_enum;
+
+typedef enum
+{
+ LTE_MODULATION_CMD_QUERY,
+ LTE_MODULATION_CMD_SET,
+} lte_modulation_cmd_type_enum;
+
+typedef enum {
+ LTE_MODULATION_DISABLED = 0x00,
+ LTE_MODULATION_ENABLED = 0x01
+} lte_modulation_mode_enum;
+
+typedef enum {
+ LINK_DIRECTION_DOWNLINK = 0x00,
+ LINK_DIRECTION_UPLINK = 0x01
+} link_direction_enum;
+
+typedef enum
+{
+ CA_BAND_COMB_LIST_CMD_QUERY,
+ CA_BAND_COMB_LIST_CMD_SET,
+ CA_BAND_COMB_LIST_CMD_APPEND
+} ca_band_comb_list_cmd_type_enum;
+
+typedef enum {
+ CA_BAND_COMB_LIST_TYPE_WHITE = 0x00,
+ CA_BAND_COMB_LIST_TYPE_BLACK = 0x01,
+ ENDC_BAND_COMB_LIST_TYPE_WHITE = 0x02,
+ ENDC_BAND_COMB_LIST_TYPE_BLACK = 0x03,
+ SA_BAND_COMB_LIST_TYPE_WHITE = 0x04,
+ SA_BAND_COMB_LIST_TYPE_BLACK = 0x05
+} ca_band_comb_list_type_enum;
+
+
+typedef enum
+{
+ GMSS_OP01_MODE_CHECK_NONE =0,
+ GMSS_OP01_MODE_CHECK_TDSCDMA_MODE_ACTIVATED = 1,
+ GMSS_OP01_MODE_CHECK_CMCC_NETWORK = 2
+} gmss_op01_mode_type_enum;
+
+typedef enum
+{
+ OPERATOR_UNKNOWN = 0,
+ OPERATOR_CT = 1,
+ OPERATOR_VZW = 2,
+ OPERATOR_SPRINT = 3,
+ OPERATOR_CMCC = 4,
+} network_operator_enum;
+
+typedef enum
+{
+ EMMCONN_EST_IND_FAIL_CAUSE_EST_SUCCESS,
+ EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED,
+ EMMCONN_EST_IND_FAIL_CAUSE_NW_REJ_CONN,
+ EMMCONN_EST_IND_FAIL_CAUSE_CONN_FAIL,
+ EMMCONN_EST_IND_FAIL_CAUSE_IRAT_CELL_RESEL,
+ EMMCONN_EST_IND_FAIL_CAUSE_CELL_RESEL,
+ EMMCONN_EST_IND_FAIL_CAUSE_NAS_REQUEST,
+ EMMCONN_EST_IND_FAIL_CAUSE_TRANSID_NOT_MATCH,
+ EMMCONN_EST_IND_FAIL_CAUSE_IDLE_OOS,
+ EMMCONN_EST_IND_FAIL_CAUSE_IRCCO_TIMER_EXPR,
+ EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_MO_DATA,
+ EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_MO_CSFB,
+ EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_EAB,
+ EMMCONN_EST_IND_FAIL_CAUSE_AC_BARRED_ACDC,
+ EMMCONN_EST_IND_FAIL_CAUSE_GEMINI_FAIL,
+ EMMCONN_EST_IND_FAIL_CAUSE_CONGESTION
+
+} emm_est_ind_cause_enum;
+
+typedef enum
+{
+ DELETE_FPLMN,
+ ADD_FPLMN
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+ ,UPDATE_BLACKLIST_PLMN
+#endif
+} fplmn_action_enum;
+
+typedef enum
+{
+ CUSTOM_PREFER_OPLMN = 0,
+ CUSTOM_FORBIDDEN_PLMN = 1
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+ ,CUSTOM_BLACKLIST_PLMN = 2
+#endif
+}custom_plmn_type_enum;
+
+typedef enum
+{
+ INTEG_PROTECTED,
+ INTEG_NON_PROTECTED,
+ INTEG_PROTECTED_INSIGNIFICANT
+
+} integ_protect_status_enum;
+
+typedef enum
+{
+ TW_MODE_LG_WG = 0
+} gmss_tw_mode_enum;
+
+
+typedef enum
+{
+ GMSS_SEARCH_TYPE_NORMAL = 0x00, /* 0000 */
+ GMSS_SEARCH_TYPE_STORED = 0x01, /* 0001 */
+ GMSS_SEARCH_TYPE_QUICK = 0x02, /* 0010 */
+ GMSS_SEARCH_TYPE_STORED_QUICK = 0x03 /* 0011 */
+
+} gmss_search_type_enum;
+
+typedef enum {
+ PAM_APN_TYPE_UNKNOWN = 0x00000000,
+ PAM_APN_TYPE_DEFAULT = 0x00000001,
+ PAM_APN_TYPE_IMS = 0x00000002,
+ PAM_APN_TYPE_MMS = 0x00000004,
+ PAM_APN_TYPE_SUPL = 0x00000008,
+ PAM_APN_TYPE_DUN = 0x00000010,
+ PAM_APN_TYPE_HIPRI = 0x00000020,
+ PAM_APN_TYPE_FOTA = 0x00000040,
+ PAM_APN_TYPE_CBS = 0x00000080,
+ PAM_APN_TYPE_EMERGENCY = 0x00000100,
+ PAM_APN_TYPE_IA = 0x00000200,
+ PAM_APN_TYPE_DM = 0x00000400,
+ PAM_APN_TYPE_WAP = 0x00000800,
+ PAM_APN_TYPE_NET = 0x00001000,
+ PAM_APN_TYPE_CMMAIL = 0x00002000,
+ PAM_APN_TYPE_TETHERING = 0x00004000,
+ PAM_APN_TYPE_RCSE = 0x00008000,
+ PAM_APN_TYPE_XCAP = 0x00010000,
+ PAM_APN_TYPE_RCS = 0x00020000,
+} pam_nwsel_apn_type_enum;
+typedef enum
+{
+ RECOVER_CAUSE_T3245_EXPIRY = 0,
+ RECOVER_CAUSE_IVSR_START = 1,
+ RECOVER_CAUSE_VZW_PERMANENT_IVSR = 2,
+} recover_cause_enum;
+
+typedef enum
+{
+ DUPLEX_MODE_RESET_SIM_PARA_TO_AS = 0,
+ DUPLEX_MODE_SET_SIM_PARA_TO_AS = 1
+} duplex_mode_change_action_enum;
+
+typedef enum
+{
+ SET_HVOLTE_MODE_CAUSE_IMS_REG_STATUS_CHANGE = 0,//default value
+ SET_HVOLTE_MODE_CAUSE_SILENT_REDIAL,
+} set_hvolte_mode_cause_enum;
+
+typedef enum
+{
+ HVOLTE_MODE_CHANGE_CAUSE_CS_REG_SENT = 0,
+ HVOLTE_MODE_CHANGE_CAUSE_L2C2L_WITH_C2K_CS_REGISTERRED,
+ HVOLTE_MODE_CHANGE_CAUSE_L2C2L_WITHOUT_C2K_CS_REGISTERRED
+} hvolte_mode_change_cause_enum;
+
+#ifdef __GEMINI__
+typedef enum {
+ RSIM_AUTH_FINISH_INVALID,
+ RSIM_AUTH_FINISH_COMPLETE,
+ RSIM_AUTH_FINISH_LOWER_LAYER_FAILURE,
+} rsim_auth_finish_result_enum;
+#endif /* __GEMINI__ */
+
+typedef enum
+{
+ ABORT_SEARCH_EMERGENCY = 0, //equivalent to XXX_ABORT_EMERGENCY_PLMN_SEARCH_REQ
+ ABORT_SEARCH_TVZW_SEARCH_23G = 1
+}enwsel_search_abort_cause_enum;
+
+typedef enum {
+ ENASAS_SSAC_AC_BARRINGFACTOR_p00, // bar
+ ENASAS_SSAC_AC_BARRINGFACTOR_p05,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p10,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p15,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p20,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p25,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p30,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p40,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p50,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p60,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p70,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p75,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p80,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p85,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p90,
+ ENASAS_SSAC_AC_BARRINGFACTOR_p95,
+ ENASAS_SSAC_AC_BARRINGFACTOR_INVALID, // not bar
+} enasas_ssac_ac_barringfactor_enum;
+
+typedef enum
+{
+ LTE_TM9_CMD_QUERY = 0,
+ LTE_TM9_CMD_SET = 1,
+} lte_tm9_cmd_type_enum;
+
+typedef enum
+{
+ LTE_TM9_FDD_DISABLE = 0,
+ LTE_TM9_FDD_ENABLE = 1
+} lte_tm9_fdd_enum;
+
+typedef enum
+{
+ LTE_TM9_TDD_DISABLE = 0,
+ LTE_TM9_TDD_ENABLE = 1
+} lte_tm9_tdd_enum;
+
+typedef enum
+{
+ VGMM_MSG_BEGIN = 0x41,
+ VGMM_MSG_REG_REQUEST = VGMM_MSG_BEGIN,
+ VGMM_MSG_REG_ACCEPT = 0x42,
+ VGMM_MSG_REG_COMPLETE = 0x43,
+ VGMM_MSG_REG_REJECT = 0x44,
+ VGMM_MSG_MO_DEREG_REQUEST = 0x45,
+ VGMM_MSG_MO_DEREG_ACCEPT = 0x46,
+ VGMM_MSG_MT_DEREG_REQUEST = 0x47,
+ VGMM_MSG_MT_DEREG_ACCEPT = 0x48,
+ VGMM_MSG_SERVICE_REQUEST = 0x4C,
+ VGMM_MSG_SERVICE_REJECT = 0x4D,
+ VGMM_MSG_SERVICE_ACCEPT = 0x4E,
+ VGMM_MSG_CONFIG_UPDATE_COMMAND = 0x54,
+ VGMM_MSG_CONFIG_UPDATE_COMPLETE = 0x55,
+ VGMM_MSG_AUTH_REQ = 0x56,
+ VGMM_MSG_AUTH_RSP = 0x57,
+ VGMM_MSG_AUTH_REJ = 0x58,
+ VGMM_MSG_AUTH_FAIL = 0x59,
+ VGMM_MSG_AUTH_RESULT = 0x5A,
+ VGMM_MSG_IDENTITY_REQ = 0x5B,
+ VGMM_MSG_IDENTITY_RSP = 0x5C,
+ VGMM_MSG_SEC_MODE_COMMAND = 0x5D,
+ VGMM_MSG_SEC_MODE_COMPLETE = 0x5E,
+ VGMM_MSG_SEC_MODE_REJECT = 0x5F,
+ VGMM_MSG_5GMM_STATUS = 0x64,
+ VGMM_MSG_5GMM_NOTIFICATION = 0x65,
+ VGMM_MSG_5GMM_NOTIFICATION_RSP = 0x66,
+ VGMM_MSG_UL_NAS_TRANSPORT = 0x67,
+ VGMM_MSG_DL_NAS_TRANSPORT = 0x68,
+ // WARNING: do not forget to update VGMM_MSG_END if last message is changed
+ VGMM_MSG_END = VGMM_MSG_DL_NAS_TRANSPORT,
+ VGMM_MSG_INVALID = 0xFF
+} vgmm_msg_type_enum;
+
+typedef enum
+{
+ VGMM_CAUSE_CAUSE_NONE = 0x00,
+ VGMM_CAUSE_ILLEGAL_UE = 0x03,
+ VGMM_CAUSE_PEI_NOT_ACCEPTED = 0x05,
+ VGMM_CAUSE_ILLEGAL_ME = 0x06,
+ VGMM_CAUSE_5GS_SERVICES_NOT_ALLOWED = 0x07,
+ VGMM_CAUSE_UE_ID_NOT_DERIVED_BY_NW = 0x09,
+ VGMM_CAUSE_IMPLICITLY_DEREGISTERED = 0x0a,
+ VGMM_CAUSE_PLMN_NOT_ALLOWED = 0x0b,
+ VGMM_CAUSE_TA_NOT_ALLOWED = 0x0c,
+ VGMM_CAUSE_ROAMING_NOT_ALLOWED_IN_TA = 0x0d,
+ VGMM_CAUSE_NO_SUITABLE_CELL_IN_TA = 0x0f,
+ VGMM_CAUSE_MAC_FAILURE = 0x14,
+ VGMM_CAUSE_SYNCH_FAILURE = 0x15,
+ VGMM_CAUSE_CONGESTION = 0x16,
+ VGMM_CAUSE_SECURITY_CAPABILITIES_MISMATCH = 0x17,
+ VGMM_CAUSE_SECURITY_MODE_REJECT_UNSPECIFIED = 0x18,
+ VGMM_CAUSE_NON_5G_AUTH_UNACCEPTABLE = 0x1a,
+ VGMM_CAUSE_N1_MODE_NOT_ALLOWED = 0x1b,
+ VGMM_CAUSE_RESTRICTED_SERVICE_AREA = 0x1c,
+ VGMM_CAUSE_LADN_NOT_AVAILABLE = 0x2b,
+ VGMM_CAUSE_MAX_NUM_PDU_SESSIONS_REACHED = 0x41,
+ VGMM_CAUSE_INSUFF_RESOURCES_SLICE_AND_DNN = 0x43,
+ VGMM_CAUSE_INSUFF_RESOURCES_SLICE = 0x45,
+ VGMM_CAUSE_NGKSI_ALREADY_IN_USE = 0x47,
+ VGMM_CAUSE_N3GPP_ACCESS_TO_5GCN_NOT_ALLOWED = 0x48,
+ VGMM_CAUSE_SERVING_NW_NOT_AUTHORIZED = 0x49,
+ VGMM_CAUSE_PAYLOAD_NOT_FORWARDED = 0x5a,
+ VGMM_CAUSE_DNN_NOT_SUP_SLICE = 0x5b,
+ VGMM_CAUSE_INSUFF_UP_RES_FOR_PDU_SESSION = 0x5c,
+ VGMM_CAUSE_SEMANTICALLY_INCORRECT_MSG = 0x5f,
+ VGMM_CAUSE_INVALID_MANDATORY_INFO = 0x60,
+ VGMM_CAUSE_MSG_TYPE_NON_EXISTENT = 0x61,
+ VGMM_CAUSE_MSG_TYPE_NOT_COMPATIBLE = 0x62,
+ VGMM_CAUSE_IE_NON_EXISTENT = 0x63,
+ VGMM_CAUSE_CONDITIONAL_IE_ERROR = 0x64,
+ VGMM_CAUSE_MESSAGE_NOT_COMPATIBLE = 0x65,
+ VGMM_CAUSE_PROTOCOL_ERROR = 0x6f,
+
+
+ /* MTK internal-defined causes */
+ /* NOTE: the values of MTK internal-defined causes should be the same as mm_cause_enum */
+ VGMM_CAUSE_NO_COVERAGE = NO_COVERAGE,
+ VGMM_CAUSE_SIM_REMOVED = SIM_REMOVED,
+ VGMM_CAUSE_VGNAS_IN_SUSPEND_MODE = MM_REJ_CUZ_RR_IN_SUSPEND_MODE,
+ VGMM_CAUSE_LIMITED_SERVICE = GPRS_IN_LIMITED_SERVICE,
+} vgmm_cause_enum;
+
+typedef enum
+{
+ VGMM_REGN_DEREGISTERED_UPDATE = 0,
+ VGMM_REGN_REGISTERED_UPDATE,
+ VGMM_REGN_INVLAID_ENUM
+}vgmm_bcast_regn_update_enum;
+
+typedef enum
+{
+ VGMM_REG_TYPE_INITIAL_REGISTRATION = 1,
+ VGMM_REG_TYPE_MOBILITY_REGISTRATION_UPDATING = 2,
+ VGMM_REG_TYPE_PERIODIC_REGISTRATION_UPDATING = 3,
+ VGMM_REG_TYPE_EMERGENCY_REGISTRATION = 4,
+ VGMM_REG_TYPE_VGS_REG_TYPE_RESERVED = 7
+} vgmm_reg_type_enum;
+
+typedef enum
+{
+ EMM_REGN_DEREGISTERED_UPDATE = 0,
+ EMM_REGN_REGISTERED_UPDATE,
+ EMM_REGN_INVLAID_ENUM
+}emm_bcast_regn_update_enum;
+
+typedef enum
+{
+ D_VGS_MOBILE_ID_NO_ID = 0,
+ D_VGS_MOBILE_ID_SUCI = 1,
+#ifdef __MCD_VGNAS_24501_SPEC_2018SEP__
+ D_VGS_MOBILE_ID_GUTI = 6,
+#else
+ D_VGS_MOBILE_ID_GUTI = 2,
+#endif /* __MCD_VGNAS_24501_SPEC_2018SEP__ */
+ D_VGS_MOBILE_ID_IMEI = 3,
+ D_VGS_MOBILE_ID_S_TMSI = 4,
+ D_VGS_MOBILE_ID_IMEISVI = 5
+} vgs_mobile_id_type_enum;
+
+typedef enum
+{
+ VGMM_NSSAI_CMD_C5GNSSAI = 0,
+ VGMM_NSSAI_CMD_C5GNSSAIRDP = 1,
+ VGMM_NSSAI_CMD_C5GPNSSAI = 2
+} vgs_nssai_cmd_type_enum;
+
+typedef enum {
+ NWSEL_LIST_TYPE_INVALID,
+ NWSEL_LIST_TYPE_MANUAL_LIST,
+ NWSEL_LIST_TYPE_HIGH_PRIORITY_LIST,
+ NWSEL_LIST_TYPE_MPSR_LIST
+} nwsel_list_type_enum;
+
+/*
+typedef enum
+{
+ N1_IMS_VOPS_NOT_SUPPORTED,
+ N1_IMS_VOPS_SUPPORTED_3GPP,
+ N1_IMS_VOPS_SUPPORTED_NON_3GPP,
+} vgmm_ims_vops_indicator_enum;
+
+typedef enum
+{
+ N1_EMC_NOT_SUPPORTED,
+ N1_EMC_SUPPORTED_NR_5GCN_ONLY,
+ N1_EMC_SUPPORTED_EUTRAN_5GCN_ONLY,
+ N1_EMC_SUPPORTED_NR_5GCN_EUTRAN_5GCN,
+} vgmm_emc_support_indicator_enum;
+
+typedef enum
+{
+ N1_EMC_FALLBACK_NOT_SUPPORTED,
+ N1_EMC_FALLBACK_SUPPORTED_NR_5GCN_ONLY,
+ N1_EMC_FALLBACK_SUPPORTED_EUTRAN_5GCN_ONLY,
+ N1_EMC_FALLBACK_SUPPORTED_NR_5GCN_EUTRAN_5GCN,
+} vgmm_emc_fallback_support_indicator_enum;
+*/
+
+typedef enum
+{
+ N1_IMS_VOPS_NOT_SUPPORT_OVER_3GPP_ACCESS = 0,
+ N1_IMS_VOPS_NOT_SUPPORTED = N1_IMS_VOPS_NOT_SUPPORT_OVER_3GPP_ACCESS,
+ N1_IMS_VOPS_SUPPORT_OVER_3GPP_ACCESS = 1,
+ N1_IMS_VOPS_SUPPORTED_3GPP = N1_IMS_VOPS_SUPPORT_OVER_3GPP_ACCESS,
+} vg_ims_3gpp_ind_enum;
+
+typedef enum
+{
+ N1_IMS_VOPS_NOT_SUPPORT_OVER_NON_3GPP_ACCESS = 0,
+ N1_IMS_VOPS_SUPPORT_OVER_NON_3GPP_ACCESS = 1,
+ N1_IMS_VOPS_SUPPORTED_NON_3GPP = N1_IMS_VOPS_SUPPORT_OVER_NON_3GPP_ACCESS
+} vg_ims_n3gpp_ind_enum;
+
+typedef enum
+{
+ N1_EMC_NOT_SUPPORT = 0,
+ N1_EMC_SUPPORT_NR_5GCN_ONLY = 1,
+ N1_EMC_SUPPORT_EUTRA_5GCN_ONLY = 2,
+ N1_EMC_SUPPORT_NR_5GCN_EUTRA_5GCN = 3
+} vg_emergency_service_ind_enum;
+
+typedef enum
+{
+ N1_EMC_FALLBACK_NOT_SUPPORT = 0,
+ N1_EMC_FALLBACK_SUPPORT_NR_5GCN_ONLY = 1,
+ N1_EMC_FALLBACK_SUPPORT_EUTRA_5GCN_ONLY = 2,
+ N1_EMC_FALLBACK_SUPPORT_NR_5GCN_EUTRA_5GCN = 3
+} vg_emergency_fallback_ind_enum;
+
+typedef enum
+{
+ ACCESS_IDENTITY_1_NOT_VALID_IN_RPLMN_EPLMN = 0,
+ ACCESS_IDENTITY_1_VALID_IN_RPLMN_EPLMN = 1
+} mps_ind_enum;
+
+typedef enum
+{
+ N1_EMC_NOT_SUPPORT_OVER_NON_3GPP_ACCESS = 0,
+ N1_EMC_SUPPORT_OVER_NON_3GPP_ACCESS = 1
+} vg_emergency_service_n3gpp_ind_enum;
+
+typedef enum
+{
+ ACCESS_IDENTITY_2_NOT_VALID_IN_RPLMN_EPLMN = 0,
+ ACCESS_IDENTITY_2_VALID_IN_RPLMN_EPLMN = 1
+} mcs_ind_enum;
+
+/* refer to AT+EICPG usage */
+typedef enum {
+ CSFB_PAGE_CONFIG_DISABLED =0,
+ CSFB_PAGE_CONFIG_ENABLE_REPORT_MANUAL,
+ CSFB_PAGE_CONFIG_ENABLE_REPORT_AUTO_REJECT,
+ CSFB_PAGE_CONFIG_T_CSFB_USER_RSP,
+ CSFB_PAGE_CONFIG_T_IGNORE_SAME_NUMBER_OF_CS_SERVICE_NOTIFICATION,
+ CSFB_PAGE_CONFIG_MAX
+} csfb_page_config_enum;
+
+typedef enum
+{
+ NAS_SV_ANY_OPERATION_INVALID = 0,
+ NAS_SV_ANY_OPERATION_LOCAL_RELEASE = 1,
+ NAS_SV_ANY_OPERATION_TRICK_RELEASE = 2,
+ NAS_SV_ANY_OPERATION_PLMN_SEARCH = 4, // Only for VGMM
+ NAS_SV_ANY_OPERATION_CAP_UPDATE = 8
+} nas_sv_any_operation_enum;
+
+typedef enum
+{
+ NAS_SV_MANIPULATE_CONNECTION_TRICK_RELEASE,
+ NAS_SV_MANIPULATE_CONNECTION_LOCAL_RELEASE,
+ NAS_SV_MANIPULATE_CONNECTION_LOCAL_RELEASE_MANUAL_LIST
+} nas_sv_manipulate_connection_enum;
+
+
+/********************************************
+ * VGMM IW DEBUG Facility *
+ ********************************************/
+typedef enum {
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_UPDATE_TYPE ,
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_MSG_TYPE ,
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_REG_TYPE ,
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_DETACH_TYPE ,
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_CAUSE ,
+ DEBUG_VGMM_IW_GET_BROADCAST_REGN_CAUSE ,
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_ATTEMP_CNT ,
+ DEBUG_VGMM_IW_SET_BROADCAST_REGN_VOPS_SUPPORT ,
+ DEBUG_VGMM_IW_RESET_BROADCAST_REGN ,
+ DEBUG_VGMM_IW_IS_POWER_OFF_DETACH ,
+ DEBUG_VGMM_IW_IS_VALID_BROADCAST_NAS_PROC ,
+ DEBUG_VGMM_IW_IS_MOBILITY_UPDATE_REQUIRED ,
+ DEBUG_VGMM_IW_IS_FROM_LTE ,
+ DEBUG_VGMM_IW_IS_EPS_NAS_MESSAGE_REQUIRED
+} debug_vgmm_iw_type_enum;
+
+/* For interworking from LTE to NR, there is the same algorithm what used for NR. */
+typedef enum
+{
+ INT_EIA0=0,
+ INT_128_EIA1,
+ INT_128_EIA2,
+ INT_EIA3,
+ INT_EIA4,
+ INT_EIA5,
+ INT_EIA6,
+ INT_EIA7,
+ INT_EIA_NO_SET
+} emm_integrity_algorithm_enum;
+
+/* For interworking from LTE to NR, there is the same algorithm what used for NR. */
+typedef enum
+{
+ ENC_EEA0=0,
+ ENC_128_EEA1,
+ ENC_128_EEA2,
+ ENC_EEA3,
+ ENC_EEA4,
+ ENC_EEA5,
+ ENC_EEA6,
+ ENC_EEA7,
+ ENC_EEA_NO_SET
+} emm_ciphering_algorithm_enum;
+
+typedef enum {
+ PREFER_RAT_TYPE_MOST_PREFERRED,
+ PREFER_RAT_TYPE_RAT_ORDER
+} prefer_rat_type_enum;
+typedef enum {
+ MM_CALL_CAUSE_NONE,
+ MM_CALL_CAUSE_START,
+ MM_CALL_CAUSE_SUCCESS,
+ MM_CALL_CAUSE_FAILURE,
+ MM_CALL_CAUSE_PAGING_GUARD_TIMER_EXPIRED,
+ MM_CALL_CAUSE_T3240_TIMEOUT,
+ MM_CALL_CAUSE_AUTH_FAIL,
+ MM_CALL_CAUSE_AUTH_REJECT,
+ MM_CALL_CAUSE_CONN_EST_FAIL,
+ MM_CALL_CAUSE_LAU_REJECT,
+ MM_CALL_CAUSE_LAU_ACCEPT,
+ MM_CALL_CAUSE_PLMN_LOSS_IND_RECEIVED,
+ MM_CALL_CAUSE_SIM_ERROR_IND_RECEIVED,
+ MM_CALL_CAUSE_PAGING_RESPONSE_SENT,
+ MM_CALL_CAUSE_PAGING_BLOCKED_BY_ACCESS_BARRED,
+ MM_CALL_CAUSE_RR_REL_IND_RECEIVED,
+ MM_CALL_CAUSE_LU_ABNORMAL,
+ MM_CALL_CAUSE_CM_SERV_REJECT,
+ MM_CALL_CAUSE_ACCESS_CLASS_BARRED,
+ MM_CALL_CAUSE_T3230_TIMEOUT,
+} mm_cs_call_fail_cause_enum;
+
+typedef enum {
+ TRY_SWITCH_RAT_RESULT_INVALID,
+ TRY_SWITCH_RAT_RESULT_FAIL
+} try_switch_rat_result_enum;
+
+typedef enum
+{
+ VDM_GMSS_FAILURE_CAUSE_NONE = 0,
+ VDM_GMSS_FAILURE_CAUSE_RF_OFF = 1,
+ VDM_GMSS_FAILURE_CAUSE_NO_ALLOWED_DOMAIN = 2,
+ VDM_GMSS_FAILURE_CAUSE_MAX
+} vdm_gmss_failure_cause_enum;
+
+typedef enum {
+ LTE_NO_LOSS = 0, //UE is in 4G normal service
+ LTE_ENTER_SEARCHING, //4G normal service change to searching state
+ LTE_NORMAL_SERVICE_LOSS_WITHOUT_SEARCHING, //4G normal service change to limited service
+ LTE_IRAT_GSM_UMTS, //4G normal service change to 23G normal service
+} lte_normal_service_loss_reason_enum;
+
+typedef enum {
+ NR_NO_LOSS = 0, //UE is in 5G normal service
+ NR_ENTER_SEARCHING, //5G normal service change to searching state
+ NR_NORMAL_SERVICE_LOSS_WITHOUT_SEARCHING, //5G normal service change to limited service
+ NR_IRAT_GSM_UMTS_LTE, //5G normal service change to 234G normal service
+} nr_normal_service_loss_reason_enum;
+
+typedef enum FDD_powerMonitorType
+{
+ FDD_MEME_CELL_POWER_MONITOR_RSCP,
+ FDD_MEME_CELL_POWER_MONITOR_ECNO,
+ FDD_MEME_CELL_POWER_MONITOR_NONE,
+ FDD_MEME_CELL_POWER_MONITOR_TYPE_MAX = FDD_MEME_CELL_POWER_MONITOR_NONE
+} FDD_powerMonitorType;
+
+typedef enum
+{
+ ESM_PRECHECK_PASS = 0,
+ ESM_PRECHECK_SIM_IDX_OUT_OF_RANGE = 1,
+ ESM_PRECHECK_SMIC_EPSB_CONTEXT_POINTER_SHOULD_NOT_NULL = 2,
+ ESM_PRECHECK_PDP_CTXT_PTR_SHOULD_NOT_NULL = 3,
+ ESM_PRECHECK_EBI_VALUE_SHOULD_BE_VALID = 4,
+ ESM_PRECHECK_CURRENT_SIM_DPC_CTXT_PTR_SHOULD_NOT_NULL = 5,
+ ESM_PRECHECK_APN_LENGTH_SHOULD_NOT_NULL = 6,
+ ESM_PRECHECK_BEARER_SHOULD_MAPPING_RB_IDX = 7,
+ ESM_PRECHECK_QOS_PARAMETER_SHOULD_BE_VALID = 8,
+ ESM_PRECHECK_OTHER_FAILS = 9,
+ ESM_PRECHECK_EMM_IS_DEREGISTERD = 10,
+} esm_5g4_precheck_ret_value_enum;
+
+
+typedef enum {
+ PAM_ACCESS_GRANTED = 0,
+ PAM_ACCESS_REJECT_BACK_OFF_TIMER_RUNNING_WITH_VALUE,
+ PAM_ACCESS_REJECT_BACK_OFF_TIMER_DEACTIVATED,
+ PAM_ACCESS_REJECT_OTHERS // Back-off timer not existing but congested due to some other causes (ex. #46)
+} pam_access_check_result_enum;
+
+typedef enum {
+ IRAT_HANDOFF_SYSLOSS = 0,
+ IRAT_HANDOFF_REDIRECTION,
+ IRAT_HANDOFF_RESELECTION,
+ IRAT_HANDOFF_HIGH_PRIORITY_RESELECTION,
+ IRAT_HANDOFF_NONE = 0xFF
+} irat_handoff_cause_enum;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef enum {
+ ENTER_ECALL_INACTIVITY_PROCEDURE = 0, // deregister from NW, enter the eCall inactivity procedure
+ LEAVE_ECALL_INACTIVITY_PROCEDURE // register to NW, leave the eCall inactivity procedure (not support, reserved for future use)
+} ecall_registration_state_enum;
+#endif
+
+
+typedef enum {
+ NWSEL_EUTRAN_CAP_UPDATE_NONE = 0,
+ NWSEL_EUTRAN_CAP_UPDATE_WAIT
+}eutran_cap_update_wait_status_enum ;
+
+typedef enum {
+ TA_LIST_TYPE_00 = 0x00,
+ TA_LIST_TYPE_01 = 0x20,
+ TA_LIST_TYPE_10 = 0x40
+} vgs_ta_list_type_enum;
+#endif // ifndef _l3_INC_ENUMS_H
diff --git a/mcu/protocol/interface/l4misc/l3_inc_local.h b/mcu/protocol/interface/l4misc/l3_inc_local.h
new file mode 100644
index 0000000..fe07b38
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l3_inc_local.h
@@ -0,0 +1,1226 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * L3_INC_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common enums of L3.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L3_INC_LOCAL_H
+#define _L3_INC_LOCAL_H
+
+#include "kal_general_types.h"
+//#include "kal_non_specific_general_types.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum_public.h"
+#include "ps_public_enum.h"
+#include "irat_common_enums.h"
+#include "global_type.h"
+#include "l3_inc_enums_public.h"
+#include "gmss_public.h"
+
+/*****************************************************************************
+ * Constant Definitions
+ *****************************************************************************/
+/* RAT capability configuration */
+#if defined (__GSM_RAT__)
+#define IS_GSM_RAT_SUPPORTED 1
+#else
+#define IS_GSM_RAT_SUPPORTED 0
+#endif
+
+#if defined (__UMTS_RAT__)
+#define IS_UMTS_RAT_SUPPORTED 1
+#else
+#define IS_UMTS_RAT_SUPPORTED 0
+#endif
+
+#if defined (__LTE_RAT__)
+#define IS_LTE_RAT_SUPPORTED 1
+#else
+#define IS_LTE_RAT_SUPPORTED 0
+#endif
+
+#if defined (__NR_RAT__)
+#define IS_NR_RAT_SUPPORTED 1
+#else
+#define IS_NR_RAT_SUPPORTED 0
+#endif
+
+#define MAX_SUPPORTED_RAT (IS_GSM_RAT_SUPPORTED+IS_UMTS_RAT_SUPPORTED+IS_LTE_RAT_SUPPORTED+IS_NR_RAT_SUPPORTED)
+
+#if MAX_SUPPORTED_RAT == 0
+#error "Shall at least define 1 valid RAT!"
+#endif /* RAT capability configuration */
+
+#define RAC_MAX_NUM_LISTED_PLMNS 16*MAX_SUPPORTED_RAT
+
+#define SYS_MAX_MRU_LIST_NUM 12
+
+#define MAX_FORBIDDEN_NETWORK_NUM 32
+
+#define MAX_REDIRECT_FREQ_NUM 6
+
+#define GMSS_LTE_UNAVAIL_DB_SIZE 128
+
+#define MAX_PLMN_BAND_NUM 48
+
+#define NRRC_KAMF_LENGTH (32)
+
+/*****************************************************************************
+ * Type Definitions
+ *****************************************************************************/
+
+#define PACKET_FILTER_CONTENT_LEN 53 /* Poying: 29+(32-8) */
+
+// LOCAL_PARA_HDR + kal_uint8 nsapi (SM code assume nsapi is the first parameter of some primitive)
+#define NSAPI_STRUCT_HDR \
+ LOCAL_PARA_HDR \
+ kal_uint8 nsapi;
+
+#define MAX_LEN_OF_ALL_ALLOWED_NSSAI 144
+
+typedef struct {
+ kal_uint8 pfi;
+ kal_uint8 epi;
+ kal_uint8 contents_len; /* in bytes*/
+ kal_uint8 contents[PACKET_FILTER_CONTENT_LEN];
+} packet_filter_struct;
+
+typedef struct {
+ kal_uint8 tft_op_code;
+ kal_uint8 spare;
+ kal_uint8 num_packet_filters;
+ packet_filter_struct packet_list[8];
+} tft_struct;
+
+typedef struct {
+ kal_uint16 req_n201u; //erica 20070112
+} pdp_auxinfo_struct;
+
+
+typedef struct {
+ kal_uint8 length; /* LENGTH*/
+ kal_uint8 digit0; /* DIGIT 0*/
+ kal_uint8 odd_or_even; /* ODD OR EVEN*/
+ kal_uint8 identity_type; /* IDENTITY TYPE*/
+ kal_uint8 digit_byte[7];
+} imsi_struct;
+
+typedef struct {
+ kal_uint16 bcch_list[8];
+} bcchs_struct;
+
+
+typedef struct {
+ kal_uint8 length;
+ kal_uint8 digit0;
+ kal_uint8 odd_or_even;
+ kal_uint8 identity_type;
+ kal_uint8 digit_byte[7];
+} imei_struct;
+
+typedef struct {
+ plmn_id_struct plmn_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ra_code; /* RA CODE*/
+ kal_uint8 ta_code[3];
+ kal_uint32 cell_id; /* CELL ID*/
+ kal_uint16 bandwidth;
+ kal_bool is_csg_cell;
+ csg_info_struct csg_info;
+#ifdef __VOLTE_SUPPORT__
+ kal_bool ims_emergency_support;
+#endif
+#ifdef __NG_ECALL_SUPPORT__
+ kal_bool ecall_over_ims_support;
+#endif
+} cell_info_struct;
+
+typedef struct {
+ kal_bool is_cell_valid;
+ kal_uint32 cell_id;
+ kal_bool is_la_valid;
+ kal_uint8 la_code[2];
+ plmn_id_struct plmn_id;
+} emc_forbidden_nw_list_struct;
+
+typedef struct
+{
+ kal_uint32 cell_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ra_code;
+
+ /* Defined by IOT spec (reserved) */
+ kal_uint8 active_time;
+ kal_uint8 periodic_rau;
+} gsm_cell_struct;
+
+typedef struct
+{
+ kal_uint32 cell_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ra_code;
+
+ /* Defined by IOT spec (reserved) */
+ kal_uint8 active_time;
+ kal_uint8 periodic_rau;
+} umts_cell_struct;
+
+typedef struct
+{
+ kal_uint32 cell_id;
+ kal_uint8 ta_code[2];
+
+ /* Defined by IOT spec (reserved) */
+ kal_uint8 active_time;
+ kal_uint8 periodic_tau;
+
+ kal_uint16 bandwidth;
+ kal_bool ims_emergency_support;
+
+ /* ENDC usage for 5G within 4G */
+ endc_sib_status_enum endc_sib_status;/* "endc_sib_status" will be set to "ENDC_SIB_STATUS_SUPPORT" if the corresponding
+ * bit of selected PLMN in PLMN-InfoList-r15 from SIB2 is TRUE.
+ */
+ kal_bool endc_available; /* "endc_available" wil be set to TRUE if any bit in PLMN-InfoList-r15 from SIB2 is TRUE */
+#ifdef __NG_ECALL_SUPPORT__
+ kal_bool ecall_over_ims_support;
+#endif /* __NG_ECALL_SUPPORT__ */
+} lte_cell_struct;
+
+typedef struct
+{
+ /* 5G extends the Cell ID to 36-bit */
+ kal_uint64 cell_id;
+ kal_uint8 ta_code[3];
+
+ kal_bool ims_emergency_support;
+} nr_cell_struct;
+
+typedef union {
+ gsm_cell_struct gsm_cell;
+ umts_cell_struct umts_cell;
+ lte_cell_struct lte_cell;
+ nr_cell_struct nr_cell;
+} cell_info_union;
+
+typedef struct {
+ rat_enum rat;
+ cell_info_union cell_info;
+
+ kal_bool is_csg_cell;
+ csg_info_struct csg_info;
+
+ rat_duplex_type_enum duplex_type;
+
+ plmn_id_struct plmn_id;
+ kal_bool is_on_hplmn;
+ kal_bool is_home_country; //AT&T requirement CDR-WiFi-1560: WiFi need to know domestic roaming and international roaming
+} cell_info_and_rat_struct;
+
+typedef struct
+{
+ integ_protect_status_enum is_integ_protected;
+ kal_uint8 invalid_cs_sim_counter;
+ kal_uint8 invalid_ps_sim_counter;
+ kal_bool is_dos_enhance_enable;
+}dos_enhance_info_struct;
+
+typedef enum
+{
+ MS_NULL_STATE = 0,
+ MS_READY_STATE,
+ MS_STANDBY_STATE,
+ MS_FORCED_TO_STANDBY_STATE
+}gmm_ms_state_enum;
+
+typedef enum {
+ CELL_CONNECTION_NONE = 0, // Cell is not a serving cell.
+ CELL_CONNECTION_PRIMARY_SERVING, // UE has connection to cell for signalling and possibly data (3GPP 36.331, 25.331).
+ CELL_CONNECTION_SECONDARY_SERVING, // UE has connection to cell for data (3GPP 36.331, 25.331).
+} cell_connection_status_enum;
+
+/*5G Part*/
+typedef struct
+{
+ /* Cell Identity NR */
+ kal_uint16 pci; // PCID
+
+ /**
+ * NR Cell Identity in range [0, 68719476735] (36 bits) described in 3GPP TS 38.331, which
+ * unambiguously identifies a cell within a PLMN. This value must be valid for registered or
+ * camped cells; LONG_MAX (2^63-1) means invalid/unreported.
+ */
+ kal_uint8 cell_id[5]; //CI
+ kal_bool reg_status; // 0 for non-serving cell; 1 for serving cell
+ cell_connection_status_enum cell_connection_status;
+ NRARFCN ssb_arfcn;
+
+ /* Signal Strength NR */
+ kal_int16 ss_rsrp_in_qdbm; // RSRP, 0x8000 for invalid
+ kal_int16 ss_rsrq_in_qdb; // RSRQ, 0x8000 for invalid
+ kal_int16 ss_sinr_in_qdb; // SINR, 0x8000 for invalid
+
+ kal_int16 csi_rsrp_in_qdbm; // not support, 0x8000
+ kal_int16 csi_rsrq_in_qdb; // not support, 0x8000
+ kal_int16 csi_sinr_in_qdb; // not support, 0x8000
+} cell_info_5g_output_struct;
+
+/*4G Part*/
+typedef struct
+{
+ /* Cell Identity LTE */
+ kal_uint16 pci; // PCID
+ kal_uint32 cell_id; // CI
+ kal_bool reg_status; // 0 for non-serving cell; 1 for seving cell
+ cell_connection_status_enum cell_connection_status;
+ EARFCN dl_arfcn;
+ EARFCN ul_arfcn;
+ /* Signal Strength LTE */
+ kal_int16 rssi; // RSSI
+ kal_int16 rsrp; // RSRP
+ kal_int16 rsrq; // RSRQ
+ kal_int16 snr; // SNR
+} cell_info_4g_output_struct;
+
+/*3G Part*/
+typedef struct
+{
+ /* Cell Identity UMTS*/
+ kal_uint16 psc; // PSC
+ kal_uint32 cell_id; // CI
+ kal_bool reg_status; // Registration Status (Serving Cell/Non Serving cell)
+ cell_connection_status_enum cell_connection_status;
+ umts_duplex_mode_type umts_duplex_mode; // Duplex mode(UMTS_WCDMA_DUPLEX_MODE)
+ EARFCN dl_arfcn;
+ EARFCN ul_arfcn;
+ /* Signal Strength UMTS*/
+ kal_int16 rscp; // rscp
+ kal_int16 ecno; // EcNO
+ kal_int32 rssi; // RSSI
+
+} cell_info_3g_output_struct;
+
+/* 2G Part*/
+typedef struct
+{
+ /* Cell Identity 2G*/
+ kal_uint16 cell_id; // CI
+ kal_uint16 gsm_bsic;
+ kal_uint16 gsm_arfcn;
+ cell_connection_status_enum cell_connection_status;
+ /* Signal Strength 2G */
+ kal_int16 rssi; //RSSI
+ kal_bool reg_status; // 0: non-Serving cell; 1: Serving cell
+
+} cell_info_2g_output_struct;
+
+typedef union
+{
+ cell_info_2g_output_struct plmn_list_2g_output;
+ cell_info_3g_output_struct plmn_list_3g_output;
+ cell_info_4g_output_struct plmn_list_4g_output;
+ cell_info_5g_output_struct plmn_list_5g_output;
+} cell_info_output_union_type;
+
+/* UAS/GAS <-> RATCM begin */
+typedef struct {
+ plmn_id_struct plmn_id;
+ kal_uint8 la_or_ta_code[3];
+ kal_int16 power_level;
+ kal_bool may_suitable_cell_exist;
+ //TRUE(1) for suitable cell may exist;
+ //FALSE(0) for no suitable cell exist.
+ kal_bool may_suitable_cell_exist_higher_pri;
+ lte_duplex_type_enum lte_type;
+#ifdef __VOLTE_SUPPORT__
+ kal_bool ims_emergency_support;
+#endif
+#ifdef __NG_ECALL_SUPPORT__
+ kal_bool ecall_over_ims_support;
+#endif /* __NG_ECALL_SUPPORT__ */
+ kal_bool not_suitable_for_select;
+ // AS will report this flag according to SBP_DISPLAY_NOT_SELECTABLE_PLMN and cell status
+ kal_uint32 time_scan_start;
+ kal_uint32 time_scan_end;
+ kal_uint16 band_ind;
+ endc_sib_status_enum endc_sib_status; /* upperLayerIndication-r15 in SIB2 */
+ cell_info_output_union_type plmn_list_output;
+} available_plmn_struct;
+
+typedef struct {
+ kal_uint8 plmn_count;
+ plmn_id_rat_struct plmn_id_rat[RAC_MAX_NUM_LISTED_PLMNS];
+ kal_uint8 la_code[RAC_MAX_NUM_LISTED_PLMNS][3];
+ nwsel_plmn_list_status_enum status[RAC_MAX_NUM_LISTED_PLMNS];
+ endc_sib_status_enum endc_sib_status[RAC_MAX_NUM_LISTED_PLMNS]; /* upperLayerIndication-r15 in SIB2 */
+ kal_bool may_suitable_cell_exist[RAC_MAX_NUM_LISTED_PLMNS];
+ available_plmn_struct available_list[RAC_MAX_NUM_LISTED_PLMNS];
+} rac_plmn_list_struct;
+
+typedef struct {
+ kal_uint8 plmn_count;
+ kal_uint8 high_quality_plmn_count;
+ available_plmn_struct available_plmn[MAX_NUM_PLMN_PER_RAT];
+} as_plmn_list_struct;
+
+typedef struct {
+ plmn_id_rat_struct plmn_id_rat;
+ kal_uint8 csg_count;
+ csg_info_struct *csg_info_list;
+} available_plmn_csg_struct;
+
+typedef struct {
+ kal_uint8 plmn_count;
+ available_plmn_csg_struct available_plmn_csg[MAX_NUM_PLMN_PER_RAT];
+} as_csg_list_struct;
+
+typedef struct
+{
+ kal_uint8 plmn_count;
+ available_plmn_csg_struct available_plmn_csg[MAX_NUM_PLMN_PER_RAT];
+ kal_uint8 sorted_csg_count;
+ available_plmn_csg_struct sorted_plmn_csg[MAX_CSG_NUM];
+} rac_csg_list_struct;
+
+typedef struct{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ kal_bool is_cs_cipher_key_info_present; /* if GSM CS cipher key present */
+ kal_uint8 cs_cipher_key_info[KC_LEN]; /* GSM CS domain cipher key (Kc) */
+ kal_bool is_cs_cipher_key128_info_present; /* if GSM CS cipher key128 present */
+ kal_uint8 cs_cipher_key128_info[KC128_LEN]; /* GSM CS domain cipher key128 (Kc128) */
+ kal_uint8 cksn; /* cipher key sequence number */
+}ratcm_gas_security_mode_req_struct;
+
+typedef struct{
+ domain_id_enum domain_id; //The domain of security context
+ kal_uint8 umts_ciphering_key[CK_LEN]; //UMTS ciphering key
+ kal_uint8 umts_integrity_key[IK_LEN]; //UMTS integrity key
+}uas_security_context_struct;
+
+/* UAS/GAS <-> RATCM end */
+
+typedef struct {
+ domain_id_enum pag_resp_rest_ind;
+ domain_id_enum loc_reg_rest_ind;
+ kal_uint16 loc_reg_ppacr;
+} ppacr_info_struct ;
+
+/* L4C <-> ENAS/EAS begin */
+
+/* Cell restriction related definitions */
+#define REST_CELL_ARRAY_SIZE 8
+#define REST_FREQ_ARRAY_SIZE 8
+
+typedef enum {
+ REST_MODE_NULL,
+ REST_MODE_RESTRICTED_LIST,
+ REST_MODE_PERMITTED_LIST
+} rest_mode_enum;
+
+typedef struct {
+ EARFCN earfcn; /* EARFCN */
+ kal_uint16 lower_cell_id; /* Lower Physical Cell Identity */
+ kal_uint16 higher_cell_id; /* Higher Physical Cell Identity */
+} rest_cell_range_struct;
+
+typedef struct{
+ kal_uint16 lower_earfcn; /* Lower EARFCN */
+ kal_uint16 higher_earfcn; /* Higher EARFCN */
+} rest_freq_range_struct;
+
+typedef struct{
+ rest_mode_enum mode; /* Restricted list mode */
+ kal_uint8 rest_cell_range_num; /* Number of restricted cell list */
+ kal_uint8 rest_freq_range_num; /* Number of restricted frequency list */
+ rest_cell_range_struct rest_cell_range_list[REST_CELL_ARRAY_SIZE]; /* Restricted cell list */
+ rest_freq_range_struct rest_freq_range_list[REST_FREQ_ARRAY_SIZE]; /* Restricted frequency list */
+ kal_bool is_umts_rest; /* If all umts cells are restricted */
+ kal_bool is_gsm_rest; /* If all gsm cells are restricted */
+ kal_bool is_c2k_rest; /* If all c2k cells are restricted */
+} rest_command_struct;
+
+/* Monitor mode struct */
+typedef struct{
+ kal_bool is_monitor_mode_set; /* Is monitor mode is switched on or off */
+} monitor_mode_command_struct;
+
+/* L4C <-> ENAS/EAS end */
+
+/* ETCM <-> ENAS/EAS begin */
+#define MIN_APN_LEN 1
+
+typedef struct
+{
+ kal_uint8 length;
+ kal_uint8 data[MAX_APN_LEN];
+
+} apn_struct;
+
+/* ETCM <-> ENAS/EAS end */
+
+/* NWSEL <-> ENAS/EAS begin */
+typedef struct
+{
+kal_uint8 addr_length;
+kal_uint8 addr_bcd[MAX_NW_ECC_NUM_LENGTH];
+} l3_addr_bcd_struct;
+
+typedef struct {
+ kal_uint8 category;
+ l3_addr_bcd_struct tel_number;
+} ecc_number_struct;
+
+/* RATCM -> MM -> NWSEL */
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint32 cell_id;
+ kal_bool is_la_valid;
+ kal_uint8 la_code[2];
+ kal_bool is_ra_valid;
+ kal_uint8 ra_code;
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+} mm_cell_global_identity_info_ind_struct;
+
+/* RATCM -> MM -> NWSEL */
+typedef struct
+{
+ kal_uint16 band;
+ plmn_id_struct plmn_id; /* chann */
+} cell_band_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 gibi_tag;
+ rat_enum rat;
+ kal_bool is_data_pending;
+ kal_bool is_sys_info_present;
+#if defined(__UMTS_FDD_MODE__) || defined(__TD_NETWORK_SHARING__) || defined (UNIT_TEST)
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_plmn_cell_type[MAX_NUM_MULTI_PLMN];
+#endif
+ plmn_id_struct plmn_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ra_code;
+ kal_uint32 cell_id; //mtk02475: extended cell id in UMTS
+ kal_bool cell_support_cs;
+ kal_bool cell_support_ps; /* if FALSE, nmo and ra_code should not refer. */
+ kal_bool is_acc_class_present;
+ kal_uint16 acc_class;
+ kal_uint8 extra_info_bitmask; /* mtk02475: for DSAC/data_speed_support update in connected mode*/
+#if defined (__R6_DSAC__) || defined (UNIT_TEST)
+ kal_uint8 dsac_plmn_bitmask;
+ kal_uint16 cs_dsac[MAX_NUM_MULTI_PLMN];
+ kal_uint16 ps_dsac[MAX_NUM_MULTI_PLMN];
+#endif
+ kal_uint8 t3212_timer_val;
+ network_mode_enum nmo;
+ as_cell_type_enum cell_type;
+ att_flag_enum att_flag;
+ kal_bool mscr;
+ rr_mm_sgsnr_flag_enum sgsnr;
+#if defined (__PS_SERVICE__) || defined (UNIT_TEST)
+ data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */
+#endif
+
+#if defined (__PPACR_SUPPORT__) || defined (UNIT_TEST)
+ kal_uint8 ppacr_plmn_bitmask;
+ ppacr_info_struct ppacr_info_plmn_list[MAX_NUM_MULTI_PLMN];
+#endif
+
+ csg_access_mode_enum csg_access_mode;
+ csg_info_struct csg_info;
+
+#ifdef __LTE_RAT__
+ kal_bool is_gprs_info_in_si13_deferred;
+#endif
+ kal_uint8 band;
+} mm_sys_info_ind_struct;
+
+typedef struct
+{
+ capability_switch_enum s1_cap;
+ capability_switch_enum n1_cap;
+
+ /* gsm/umts not yet implement, put here for extension. Always set to ENABLE */
+ capability_switch_enum gsm_cap;
+ capability_switch_enum umts_cap;
+
+ vg_option_enum vg_option;
+} ue_capability_struct;
+
+typedef struct
+{
+ ue_capability_struct ue_cap;
+ kal_bool is_mrs_endc_supported; // query result of "mrs_nras_is_endc_support()"
+ kal_bool is_nw_endc_disabled; // is EN-DC disabled for specific SIM/network
+} nas_sv_ue_capability_struct;
+
+typedef struct
+{
+ kal_bool wait_emc_pdn_status;
+ plmn_id_struct rplmn;
+ kal_uint8 eq_plmn_byte_count;
+ kal_uint8 eq_plmn_id[MAX_NUM_EQ_PLMN*3];
+} update_eplmn_struct;
+
+/* NWSEL <-> ENAS/EAS end */
+
+typedef struct
+{
+ vg_ims_3gpp_ind_enum vg_ims_3gpp_ind;
+ vg_ims_n3gpp_ind_enum vg_ims_n3gpp_ind;
+ vg_emergency_service_ind_enum vg_emergency_service_ind;
+ vg_emergency_fallback_ind_enum vg_emergency_fallback_ind;
+ iwk_n26_enum iwk_n26_ind;
+ mps_ind_enum mps_ind;
+ vg_emergency_service_n3gpp_ind_enum vg_emergency_service_n3gpp_ind;
+ mcs_ind_enum mcs_ind;
+} vgmm_nw_feature_support_struct;
+
+typedef struct {
+ kal_uint8 ie_content[MAX_LEN_OF_OPT_IE_MULTI];
+} vgmm_payload_opt_ie_struct;
+
+typedef struct
+{
+ ims_ind_enum ims_ind;
+ emergency_service_ind_enum emergency_service_ind;
+ location_service_epc_ind_enum location_service_epc_ind;
+ location_service_cs_ind_enum location_service_cs_ind;
+ ext_service_request_for_ps_enum ext_service_request_for_ps_ind;
+ ext_pco_enum ext_pco_ind;
+ restrict_dcnr_enum restrict_dcnr_ind;
+ iwk_n26_enum iwk_n26_ind;
+} emm_nw_feature_support_struct;
+
+typedef struct
+{
+ ug_ims_ind_enum ims_voice_over_ps_ind;
+ ug_emergency_service_ind_enum emergency_service_ind;
+} gmm_nw_feature_support_struct;
+
+
+/* NWSEL <-> ENAS/EAS end */
+
+#ifdef __LTE_RAT__
+typedef struct {
+ LOCAL_PARA_HDR
+ errc_sim_protect_purpose_enum purpose;
+ kal_bool need_protect;
+} errc_sim_protect_req_struct;
+#endif //__LTE_RAT__
+
+typedef struct
+{
+ gmss_rat_enum rat;
+ plmn_id_struct loc;
+ prio_class_enum prio_class;
+
+} gmss_mru_info_struct;
+
+typedef struct {
+ kal_uint32 num_mcc;
+ plmn_id_struct mcc[MAX_NUM_OF_MCC];
+} found_mcc_info_struct;
+typedef struct
+{
+ kal_uint32 entry_index;
+ irat_system_type_enum rat;
+ kal_uint8 band;
+ plmn_id_struct plmn_id;
+ kal_uint16 channel; // There is no PLMN ID in C2K, only channel number
+} vzwmru_entry_struct;
+
+typedef struct
+{
+ domain_id_enum updated_domain; /* The domain to be updated */
+
+ reg_state_enum cs_state;
+ reg_state_enum ps_state;
+
+ cell_info_and_rat_struct cell_type;
+ data_speed_support_enum cell_data_speed_support;
+
+ kal_uint8 cause_type; /* 0: defined by spec 1: internal cause, defined by manufacture */
+ mm_cause_enum reject_cause;
+
+ /* Combined attach, CS/PS may register with different PLMN in NAS view
+ Amid TMO network, if CS is in PLMN-A, PS in PLMN-B, and LTE does not support CS, that means
+ UE cannot perform CSFB but VoLTE */
+ lai_struct cs_lai;
+
+ kal_bool is_skip; /* Network display optimization (reserved) */
+
+ kal_bool dcnr_restricted;
+ kal_uint8 vgmm_allowed_nssai_length; /* Number of bytes in allowed NSSAI */
+ kal_uint8 vgmm_allowed_nssai[MAX_LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */
+} reg_state_ind_struct;
+
+typedef struct
+{
+ plmn_id_struct plmn_id;
+ kal_uint16 band;
+} plmn_band_struct;
+
+#define INVALID_CAMPING_INFO_ID 0xffff
+#define INVALID_CAMPING_INFO_MASK 0x0f
+
+typedef struct
+{
+ ue_capability_struct capability; // new capability
+ rat_enum rat_mode;
+} ue_capability_update_params_struct;
+
+/*
+ * Structure represents the KAMF key.
+ */
+typedef struct {
+ /* KAMF for deriving new KgNB and NH when required by NRRC.
+ * MSB of key[0] is the first bit of key. */
+ kal_uint8 key[NRRC_KAMF_LENGTH];
+} nrrc_kamf_struct;
+
+
+
+#define D_MAX_MMEGID_SIZE 2
+#define D_MTMSI_LEN 4
+
+typedef struct
+{
+ kal_uint8 value;
+ kal_uint8 tsc;
+} nas_ksi_struct;
+
+
+typedef struct {
+ kal_uint8 length_of_guti;
+ kal_uint8 type_of_identity;
+ plmn_id_struct plmn_id;
+ kal_uint8 mme_gid[D_MAX_MMEGID_SIZE];
+ kal_uint8 mme_code;
+ kal_uint8 mtmsi[D_MTMSI_LEN];
+} guti_struct;
+
+
+#define VGNAS_TAC_LEN 3 /* 5G Tracking Area Code size */
+#define VGNAS_MAX_TAI_LIST 16 /* Max number of entries in TA list */
+#define MAX_LADN_INFO 8
+#define MAX_CRLADN_LEN 808
+#define MAX_LADN_INFO_LEN 1712
+
+/**
+ * TA structure to store tracking area identity
+ */
+typedef struct vgnas_tai_struct {
+ plmn_id_struct plmn_id;
+ kal_uint8 ta_code[VGNAS_TAC_LEN];
+} vgnas_tai_struct;
+
+
+/**
+* Structure to store different TA lists: registered TAs,
+* allowed TA list and non-allowed TA list.
+*/
+typedef struct vgnas_ta_list_struct {
+ kal_uint8 number_of_ta;
+ vgnas_tai_struct ta_list[VGNAS_MAX_TAI_LIST];
+
+} vgnas_ta_list_struct;
+
+/**
+* Structure to store LADN information
+*/
+typedef struct {
+ apn_struct dnn;
+ vgnas_ta_list_struct ta_list;
+} ladn_info_struct;
+
+/**
+* Structure for LADN information primitive forwarding
+*/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 num_of_ladn_info;
+ ladn_info_struct ladn_info[MAX_LADN_INFO];
+
+ kal_bool is_ladn_raw_data_valid;
+ kal_uint16 ladn_raw_data_len;
+ kal_uint8 ladn_raw_data[MAX_LADN_INFO_LEN];
+
+} ladn_info_update_ind_struct;
+
+/*
+ * Structure for L4 Context
+ */
+typedef struct
+{
+ kal_uint8 num_of_ladn_info;
+ ladn_info_struct ladn_info[MAX_LADN_INFO];
+
+ kal_bool is_ladn_raw_data_valid;
+ kal_uint16 ladn_raw_data_len;
+ kal_uint8 ladn_raw_data[MAX_LADN_INFO_LEN];
+} l4ctcm_ladn_info_list_struct;
+
+#endif
diff --git a/mcu/protocol/interface/l4misc/l4_defs.h b/mcu/protocol/interface/l4misc/l4_defs.h
new file mode 100644
index 0000000..fba0b72
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4_defs.h
@@ -0,0 +1,89 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4_defs.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for type definition used in CSM(CC) module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+
+#ifndef _L4_DEFS_H
+#define _L4_DEFS_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "stack_config.h"
+//#include "stack_msgs.h"
+//#include "app_ltlcom.h"
+
+#ifdef __L4_MAX_NAME_60__
+#define L4_MAX_NAME (62)
+#else
+#define L4_MAX_NAME (32)
+#endif
+
+#define MAX_MMI_NAME_LEN (10)
+#define MAX_CALLED_BCD_NUM_LEN (40)
+/*by Yuchuan*/
+#define L4_MAX_ADDR_BCD 41
+
+
+#endif /* _L4_DEFS_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4_trc.h b/mcu/protocol/interface/l4misc/l4_trc.h
new file mode 100644
index 0000000..9bd3aca
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4_trc.h
@@ -0,0 +1,108 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4_trc.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This is trace map definition.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+#ifndef _L4_TRC_H
+#define _L4_TRC_H
+#if 0 //rhr
+#ifndef GEN_FOR_PC
+ #ifndef _STACK_CONFIG_H
+/* under construction !*/
+ #endif
+#else
+/* under construction !*/
+#endif /* GEN_FOR_PC */
+#ifndef _KAL_TRACE_H
+/* under construction !*/
+#endif
+#endif
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "kal_trace.h"
+#if !defined(GEN_FOR_PC)
+#if defined(__TST_MODULE__) || defined(__CUSTOM_RELEASE__)
+#endif /* TST Trace Defintion */
+#endif
+/* TRACE_GROUP_1 for CC/SS/CTM */
+#define L4C_CCSS_TRC TRACE_GROUP_1
+#define L4C_CTM_TRC TRACE_GROUP_1
+/* TRACE_GROUP_2 for GPRS */
+#define L4C_GPRS_TRC TRACE_GROUP_2
+/* TRACE_GROUP_3 for EQ/EM */
+#define L4C_EQ_TRC TRACE_GROUP_3
+#define L4C_EM_TRC TRACE_GROUP_3
+/* TRACE_GROUP_4 for SMS/PHB */
+#define L4C_SMS_TRC TRACE_GROUP_4
+#define L4C_PHB_TRC TRACE_GROUP_4
+/* TRACE_GROUP_5 for NW/SMU/HomeZone */
+#define L4C_NW_TRC TRACE_GROUP_5
+#define L4C_SMU_TRC TRACE_GROUP_5
+#define L4C_HZ_TRC TRACE_GROUP_5
+/* TRACE_GROUP_6 for Misc.*/
+#define L4C_MISC_TRC TRACE_GROUP_6
+/* TRACE_GROUP_7 for CID and PORT. */
+#define L4C_CID_TRC TRACE_GROUP_7
+/* TRACE_GROUP_8 for EONS */
+#ifdef __EONS_SUPPORT__
+#define L4C_EONS_TRC TRACE_GROUP_8
+#endif
+#if !defined(GEN_FOR_PC)
+#include"l4_trc_mod_l4c_utmd.h"
+#endif
+#endif
diff --git a/mcu/protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json b/mcu/protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json
new file mode 100644
index 0000000..79b0d77
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4_trc_mod_l4c_utmd.json
@@ -0,0 +1,5146 @@
+{
+ "endGen": "-",
+ "legacyParameters": {},
+ "module": "MOD_L4C",
+ "startGen": "Legacy",
+ "traceClassDefs": [
+ {
+ "TRACE_INFO": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "Baseline",
+ "TRACE_INFO"
+ ],
+ "traceType": "DesignInfo"
+ }
+ },
+ {
+ "TRACE_WARNING": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "Baseline",
+ "TRACE_WARNING"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_ERROR": {
+ "debugLevel": "Ultra-High",
+ "tag": [
+ "Baseline",
+ "TRACE_ERROR"
+ ],
+ "traceType": "Public"
+ }
+ },
+ {
+ "TRACE_FUNC": {
+ "debugLevel": "Low",
+ "tag": [
+ "Baseline",
+ "TRACE_FUNC"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_STATE": {
+ "debugLevel": "Medium",
+ "tag": [
+ "Baseline",
+ "TRACE_STATE"
+ ],
+ "traceType": "DesignInfo"
+ }
+ },
+ {
+ "TRACE_GROUP_1": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_2": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_3": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_4": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_5": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_6": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_7": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_8": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_9": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_GROUP_10": {
+ "debugLevel": "Ultra-Low",
+ "tag": [
+ "Baseline"
+ ],
+ "traceType": "InternalDesign"
+ }
+ },
+ {
+ "TRACE_SENSITIVE_USIR": {
+ "debugLevel": "High",
+ "tag": [
+ "Baseline",
+ "USIR"
+ ],
+ "traceType": "Public"
+ }
+ }
+ ],
+ "traceDefs": [
+ {
+ "FUNC_L4C_CC_HANDFREE_CALLHELD_RIND": {
+ "apiType": "index",
+ "format": "l4c_cc_handfree_callheld_rind()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_GET_PENDING_PASSWORD_ID_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_root_get_pending_password_id(),sim:%hd,%02X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_UPDATE_LOCK_STATUS_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_root_update_lock_status_ind()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_LOCK_STATUS_IND": {
+ "apiType": "index",
+ "format": "l4c_root_lock_status_ind()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_LINK_SML_SUPER_VERIFY_REQ": {
+ "apiType": "index",
+ "format": "l4c_root_sml_super_verify_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_LINK_SML_RESTORE_LOCK_REQ": {
+ "apiType": "index",
+ "format": "l4c_root_sml_restore_lock_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_LINK_SML_SERVICE_LOCK_EXE": {
+ "apiType": "index",
+ "format": "l4c_root_link_sml_service_lock_exe()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_UPDATE_PENDING_PASSWORD_ID_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_root_update_sim_plugin_lock_status_ind(), SIM Slot: %hd, Password: %02X",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SIM_SECURITY_CHECK": {
+ "apiType": "index",
+ "format": "l4c_sim_security_check()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_MAIN_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_main()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_NVRAM_STARTUP_CNF_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "nvram_startup_cnf_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_NVRAM_READ_CNF_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "nvram_read_cnf_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_NVRAM_WRITE_CNF_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "nvram_write_cnf_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_SIM_READ_CNF_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "sim_read_cnf_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_SIM_WRITE_CNF_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "sim_write_cnf_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_CSM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_csm()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_CSM_CISS_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_csm_ciss()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_SMU_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_smu()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_RAC_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_rac()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_PSDM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_psdm()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_SMSAL_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_smsal()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_UEM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_uem()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_PHB_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_phb()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_TCM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_tcm()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_DHL_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_dhl()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_SM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_sm()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_EVAL_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_eval()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_ESM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_esm()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_PPP_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_ppp()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_WAP_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_wap()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_NVM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_nvm()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_SIM_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_sim()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_RSVAS_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_rsvas()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_MED_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_med()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_FD_CHECK_PDP_STATISTICS_ENTRY": {
+ "apiType": "index",
+ "format": "[FD]l4c_fd_check_pdp_statistics()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_NW_END_PS_DATA_SESSION_REQ_ENTRY": {
+ "apiType": "index",
+ "format": "[FD]l4c_nw_end_ps_data_session_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_PS_UPDATE_CURRENT_REG_RIND": {
+ "apiType": "index",
+ "format": "l4c_ps_update_current_reg_rind()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_NOTIFY_RAC_CGACT_EVENT": {
+ "apiType": "index",
+ "format": "l4c_notify_rac_cgact_event()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_POWER_OFF_NOTIFY_OTHERS": {
+ "apiType": "index",
+ "format": "l4c_power_off_notify_others()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_RF_OFF_REQ": {
+ "apiType": "index",
+ "format": "l4c_root_rf_off_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_PS_SET_TFT_REQ": {
+ "apiType": "index",
+ "format": "l4c_ps_set_tft_req(): %Mkal_bool",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_PS_GET_TFT_REQ": {
+ "apiType": "index",
+ "format": "l4c_ps_get_tft_req(): %Mkal_bool",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_PSEUDO_BS_DETECT_IND_HDLR": {
+ "apiType": "index",
+ "format": "l4c_rrm_rrms_pseudo_bs_detect_ind_hdlr()",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_PSEUDO_BS_QUERY_CNF_HDLR": {
+ "apiType": "index",
+ "format": "l4c_rrm_rrms_pseudo_bs_query_cnf_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_PSEUDO_BS_LIST_RRSP_HDLR": {
+ "apiType": "index",
+ "format": "l4c_nw_get_pseudo_bs_list_rrsp()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_APC_EXE_CNF": {
+ "apiType": "index",
+ "format": "receive apc exe cnf from as, expected cnf number:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_INTERNAL_GMC_PROCESS": {
+ "apiType": "index",
+ "format": "l4c_internal_gmc_process",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_EGMC_SET_RRSP": {
+ "apiType": "index",
+ "format": "l4c_egmc_set_rrsp()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_EGMC_QUERY_RRSP": {
+ "apiType": "index",
+ "format": "l4c_egmc_query_rrsp()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_T30_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_t30()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SEND_MSG_TO_IRDA_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_irda()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SS_STRING_PARSING_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_ss_string_parsing()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_IS_SIM_STRING_ENTRY": {
+ "apiType": "index",
+ "format": "is_sim_string()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_SETUP_SIM_STRUCT_ENTRY": {
+ "apiType": "index",
+ "format": "setup_sim_struct()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_IS_GPRS_STRING_ENTRY": {
+ "apiType": "index",
+ "format": "is_gprs_string()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_SETUP_PDP_ACT_STRUCT_ENTRY": {
+ "apiType": "index",
+ "format": "setup_pdp_act_struct()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_SETUP_IP_PDP_ACT_STRUCT_ENTRY": {
+ "apiType": "index",
+ "format": "setup_ip_pdp_act_struct()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_IS_CC_STRING_ENTRY": {
+ "apiType": "index",
+ "format": "is_cc_string()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_SETUP_NUMBER_STRUCT_ENTRY": {
+ "apiType": "index",
+ "format": "setup_number_struct()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_GET_INT_BEFORE_STAR_ENTRY": {
+ "apiType": "index",
+ "format": "get_int_before_star()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_GET_UINT32_BEFORE_STAR_ENTRY": {
+ "apiType": "index",
+ "format": "get_uint32_before_star()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_GET_STRING_BEFORE_STAR_ENTRY": {
+ "apiType": "index",
+ "format": "get_string_before_star()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_GET_DN_BEFORE_STAR_ENTRY": {
+ "apiType": "index",
+ "format": "get_dn_before_star()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_CONVERT_TO_BCD_ENTRY": {
+ "apiType": "index",
+ "format": "convert_to_bcd()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_CONVERT_TO_BCD_WILD_ENTRY": {
+ "apiType": "index",
+ "format": "L4C: convert_to_bcd_wild()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_CONVERT_TO_DIGIT_ENTRY": {
+ "apiType": "index",
+ "format": "L4C: convert_to_digit()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_CONVERT_TO_DIGIT_EXT_ENTRY": {
+ "apiType": "index",
+ "format": "L4C: convert_to_digit_ext()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_CONVERT_TO_DIGIT_24008_ENTRY": {
+ "apiType": "index",
+ "format": "L4C: convert_to_digit_24008()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_CONVERT_TO_DIGIT_WILD_ENTRY": {
+ "apiType": "index",
+ "format": "L4C: convert_to_wild()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_PLMN_CONVERT_TO_BCD_ENTRY": {
+ "apiType": "index",
+ "format": "plmn_convert_to_bcd()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_PLMN_CONVERT_TO_STRUCT_ENTRY": {
+ "apiType": "index",
+ "format": "plmn_convert_to_struct()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_PLMN_CONVERT_TO_DIGIT_ENTRY": {
+ "apiType": "index",
+ "format": "plmn_convert_to_digit()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_PLMN_CONVERT_INT_TO_STRUCT_ENTRY": {
+ "apiType": "index",
+ "format": "plmn_convert_int_to_struct()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_IS_CMD_CONFLICT_ENTRY": {
+ "apiType": "index",
+ "format": "is_cmd_conflict()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_TST_INJECT_STRING_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "tst_injext_string_hdlr()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_EQ_FS_FILELIST_REQ_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_eq_fs_filelist_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_EQ_FS_ACCESS_REQ_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_eq_fs_access_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_EQ_FS_FOLDER_ACTION_REQ_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_eq_fs_folder_action_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_EQ_FS_AV_DISK_SIZE_REQ_ENTRY": {
+ "apiType": "index",
+ "format": "l4c_eq_fs_av_disk_size_req()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_NW_BAND_INFO_HDLR_ENTRY": {
+ "apiType": "index",
+ "format": "l4cps_nw_band_info_ind_hdlr",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_C2K_SEND_MSG_TO_VAL": {
+ "apiType": "index",
+ "format": "l4c_send_msg_to_val()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_C2K_EGCONTRDP_RIND": {
+ "apiType": "index",
+ "format": "l4c_egcontrdp_report_rind(), cid: %d",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_SET_DYNAMIC_SBP_ID": {
+ "apiType": "index",
+ "format": "l4c_set_dynamic_sbp_id()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "FUNC_L4C_ROOT_DYNAMIC_CFG_PROCESSING": {
+ "apiType": "index",
+ "format": "l4c_root_dynamic_cfg_processing()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_ATH_NO_CALL_HANGUP": {
+ "apiType": "index",
+ "format": "ath: no call to hangup",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ATH_REQ_ATD_ABORT": {
+ "apiType": "index",
+ "format": "ath_req: ATD aborted!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_LOCAL_DISCONNECT": {
+ "apiType": "index",
+ "format": "L4C local disconnect call:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_UCM_END_CSD_CALL_DISC": {
+ "apiType": "index",
+ "format": "UCM might end all while previous CSD call disconnection is processing",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CHLD_CLEAR_RETRY": {
+ "apiType": "index",
+ "format": "CHLD clear retry call,orignal cc_action[%Ml4c_source_id_enum]= %Ml4c_action_enum,further action=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NO_CALL_EXIST": {
+ "apiType": "index",
+ "format": "ath_req: no call exist!!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLEAR_QUEUED_CHLD": {
+ "apiType": "index",
+ "format": "Clear queued chld if force release is received",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NOT_PRINT_NO_CARRIER": {
+ "apiType": "index",
+ "format": "We don't have to print URC NO_CARRIER when ATH or +chld to hangup call",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_UPDATE_MMI_CALL_ID": {
+ "apiType": "index",
+ "format": "To update MMI call_id byl DIAL_IND with call_id =%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RETRY_FLAG": {
+ "apiType": "index",
+ "format": "retry_ss=%hd, retry_count=%hd, retry_src_id=%Ml4c_source_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_STOP_RETRY": {
+ "apiType": "index",
+ "format": "stop retry & clear msg!, current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CELL_LOCK_CALL": {
+ "apiType": "index",
+ "format": "is_cell_lock_call= %hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SHORT_STRING_IS_ECC_NUMBER": {
+ "apiType": "index",
+ "format": "This short string is a ECC number",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CUSTOM_SHORT_STRING_AS_CALL_RETURN_TRUE": {
+ "apiType": "index",
+ "format": "custom_short_string_as_call() return TRUE!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CUSTOM_IDLE_STRING_AS_CALL_RETURN_TRUE": {
+ "apiType": "index",
+ "format": "custom_idle_string_as_call() return TRUE!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RETRY": {
+ "apiType": "index",
+ "format": "retry!, src_id=%Ml4c_source_id_enum, current_action=%Ml4c_action_enum, retry_ss=%hd, retry_count=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_START_CHANGE_PHASE_RETRY_TIMER_HDLR_START_TIMER": {
+ "apiType": "index",
+ "format": "l4c_start_change_phase_retry_timer_hdlr() start a timer with 2 sec",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_START_SAT_REDIAL_DURATION_TIMER": {
+ "apiType": "index",
+ "format": "L4C start sat redial duration timer!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_SAT_REDIAL_FLAG": {
+ "apiType": "index",
+ "format": "L4C set sat_redial_flag =%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ATD_MEMORY_DIAL": {
+ "apiType": "index",
+ "format": "ATD memory dial : PHB return entry with empty number",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CONTINGOUS_CALL_DISC_REQUEST": {
+ "apiType": "index",
+ "format": "Contingous disconnect request,call_id = %hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SWITCH_CSM_CONTEXT": {
+ "apiType": "index",
+ "format": "Switch CSM context to SIM:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_MT_CALL_APPROVAL": {
+ "apiType": "index",
+ "format": "mt_call_approval =%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ENABLE_MT_CALL_APPROVAL": {
+ "apiType": "index",
+ "format": "MT call approval mechanism is activated",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLEAR_ROUTE_THRU_LMMI": {
+ "apiType": "index",
+ "format": "Clear route_thru_lmmi",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ECALL_TYPE": {
+ "apiType": "index",
+ "format": "eCall Type =%Mecall_type_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ECC_CALL_NO_RETRY": {
+ "apiType": "index",
+ "format": "Do not do change RAT retry for cause:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PURE_ASCII": {
+ "apiType": "index",
+ "format": "l4c_ss_exe_ussd_req(): pure_ascii=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLEAR_SAT_USSR_FLAG": {
+ "apiType": "index",
+ "format": "clear L4C_PTR->sat_ussr_flag",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ALPHABET_TYPE": {
+ "apiType": "index",
+ "format": "SAT USSD: alphabet_type=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SET_SAT_USSR_FLAG": {
+ "apiType": "index",
+ "format": "set L4C_PTR->sat_ussr_flag=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USSD_CONTAINS_SS": {
+ "apiType": "index",
+ "format": "USSD req but contains SS string",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SAT_USSD": {
+ "apiType": "index",
+ "format": "SAT USSR",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAT_USSD_INFORM_USER": {
+ "apiType": "index",
+ "format": "[SAT] sat_ussd_need_inform_user: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_KT_TRANSFER_SS_STATUS": {
+ "apiType": "index",
+ "format": "KT transfer SS stauts : %x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L4C_PS_EXE_SEND_DATA": {
+ "apiType": "index",
+ "format": "%Ml4c_tcm_em_pdp_cid_enum, cid=%hd, poolid=%d, size=%d, src_id=%Ml4c_source_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L4C_PS_GET_MAX_HSPA_SUPPORT_MODE": {
+ "apiType": "index",
+ "format": "l4c_nw_get_max_hspa_support_mode(), UL1_dpa_cat=%MFDD_HSDPA_CATEGORY_E, UL1_upa_cat=%MFDD_HSUPA_CATEGORY_E, return=%Ml4c_hspa_preference_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_NDIS_FDN_CHECK_RESULT_AND_ENABLE": {
+ "apiType": "index",
+ "format": "PHB approve result=%hd; custom_l4c_ndis_fdn_enable()=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_ALREADY_1_ONGOING_ACTIVATION": {
+ "apiType": "index",
+ "format": "[IPV4V6] already 1 ongoing IPV4V6 activation: cid=%hd, src_id=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_SRC_CID_CAUSE": {
+ "apiType": "index",
+ "format": "[IPV4V6][ACT TABLE] src_id=%hd, init_cid=%hd, cause=%Mps_cause_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_ENTRY": {
+ "apiType": "index",
+ "format": "[IPV4V6][ACT TABLE][%d] Type=%Mpdp_addr_type_enum, Cid=%hd, State=%Ml4c_ipv4v6_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_CONSTRUCTION": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_act_table_construct(), init_cid=%hd, src_id=%hd, v4_first=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_ACT_TABLE_FREE": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_act_table_free(), init_cid=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_CHECK_CID_IN_ACT_TABLE": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_check_cid_existence(), cid=%hd, return %hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_OPERATOR_CHECK": {
+ "apiType": "index",
+ "format": "Check Operator Card (PS%d): %Msim_operator_type_enum - found:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_ARREARAGE": {
+ "apiType": "index",
+ "format": "SIM arrearage info (PS%d): sim_arrearage=%Ml4c_sim_card_arrears_enum, sim_arrearage_reported=%Ml4c_sim_card_arrears_enum, count=%d, arrearage_flag=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_GET_THE_OTHER_CID": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_get_the_other_cid(), cid=%hd, result cid=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_UPDATE_STATE_BY_PDP_TYPE": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_update_state_by_type(), type=%Mpdp_addr_type_enum, new_state=%Ml4c_ipv4v6_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_UPDATE_CID_BY_PDP_TYPE": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_update_cid_by_type(), type=%Mpdp_addr_type_enum, new_cid=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_PREPARE_NEW_CID_ENTRY": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_prepare_new_cid() for %Mpdp_addr_type_enum, init_cid=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_PREPARE_NEW_CID_COMPLETE": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_prepare_new_cid() completes, new_cid=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_RUN_ACTIVATION": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_gprs_ipv4v6_run_activation(), init_cid=%hd, max_activation_count=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_FALLBACK_OFF": {
+ "apiType": "index",
+ "format": "[IPV4V6] fallback is disabled!!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_IPV4V6_CHECK_IF_IPV4V6_FALLBACK_NEEDED": {
+ "apiType": "index",
+ "format": "[IPV4V6] l4c_check_if_ipv4v6_fallback_needed(tcm_act_rej_cause:%Mps_cause_enum), result: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_DEBUG_SET_7_SEGMENT_LED": {
+ "apiType": "index",
+ "format": "[TCM H Icon] Status:%Ml4c_rac_response_enum, FromRAC:%Ml4c_data_speed_support_enum, FromTCM:%Ml4c_data_bearer_capablility_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_SWITCH_ONGOING": {
+ "apiType": "index",
+ "format": "[IPV4V6] Fallback disabled due to PS switch ongoing.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GPRS_CHANGE_REQ_TYPE": {
+ "apiType": "index",
+ "format": "Reset cid %d request_type from %Mtcm_request_type_enum to REQUEST_TYPE_INITIAL_REQUEST",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_T3396_DETECTED": {
+ "apiType": "index",
+ "format": "tcm_pdp_activate_rej_hdlr(): T3396 detected.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_USE_CID_ATTACH": {
+ "apiType": "index",
+ "format": "[L4C] Use CID %d profile to establish attach PDN on CID %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "INFO_L4C_PS_GET_ACTION_BY_CID_N_SRC": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_get_action_by_cid_n_src(): [cid:%d, src_id:%d] => action:%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_GET_ACTION_BY_CID": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_get_action_by_cid(): cid:%d => action:%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_GET_ACTION_BY_SRC": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_get_action_by_src(): src_id:%d => action:%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_GET_SRC_BY_CID_N_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_get_src_by_cid_n_action(): [cid:%d action:%Ml4c_action_enum] => src_id:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_GET_SRC_FOR_SET_CMD": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_get_src_for_set_cmd(): [cid:%d src_id:%d] => action:%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CHECK_IS_SRC_FREE": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_check_is_src_free(): src_id:%d => is_src_free:%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CHECK_IS_CID_FREE": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_check_is_cid_free(): cid:%d => is_src_free:%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CHECK_IS_TABLE_FREE": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_check_is_table_free(): is_table_free:%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_GET_STATE_BY_CID": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_get_state_by_cid(): cid:%d => state:%Ml4c_tcm_internal_cid_state",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_SET_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_set_action():[cid:%d, src_id:%d]: %Ml4c_action_enum >> %Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CLEAN_CID_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_clean_cid_action(): cid:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CLEAN_SRC_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] l4c_ps_clean_src_action(): src:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_PRINT_ACTION_TABLE": {
+ "apiType": "index",
+ "format": "[L4C Action Table] [cid:%d, src_id:%d] => action:%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_PRINT_ACTION_TABLE_END": {
+ "apiType": "index",
+ "format": "[L4C Action Table] print done.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_UPDATE_STATUS_TO_SIM": {
+ "apiType": "index",
+ "format": "l4c_ps_update_overall_pdp_status_to_sim(): %Ml4c_gprs_status_enum >> %Ml4c_gprs_status_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_PDN_ACTIVE_BUT_NOT_BIND": {
+ "apiType": "index",
+ "format": "cid %d active but not bind, no need to transfer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": " L4C_PS cmd conflict : %Ml4c_gprs_cmd_conflict_cause_enum, check:0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CHECK_NEED_TO_TRANSFER_PDN": {
+ "apiType": "index",
+ "format": "l4c_ps_check_need_to_transfer_pdn_to_ehrpd : %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_SET_VZW_APN_ENABLE_BITMAP": {
+ "apiType": "index",
+ "format": "l4c_ps_set_vzw_apn_enable_bitmap: class %d, is_enable %Mkal_bool, bitmap 0x%x -> 0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CHECK_CLASS1_CLASS2_BOTH_ENABLE": {
+ "apiType": "index",
+ "format": "l4c_ps_check_if_both_class_1_and_class_2_are_enable: bitmap 0x%x, return %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CLEAR_VZW_APN_ENABLE_BITMAP": {
+ "apiType": "index",
+ "format": "l4c_ps_clear_vzw_apn_enable_bitmap: bitmap 0x%x -> 0xFFFFFFFF",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_INTERNET_CID_VALUE_SET_TO_CONTEXT_ID": {
+ "apiType": "index",
+ "format": "[L4C] Internet APN activated is stored in INTERNET_CID: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_ACTIVATE_REJECT_HANDLER_FOR_ADDITIONAL_CID": {
+ "apiType": "index",
+ "format": "[L4C] Activate reject handler for EPNWCAUSE when INTERNET CID is: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_ACTIVATE_REJECT_HANDLER_FOR_INTERNET_CID": {
+ "apiType": "index",
+ "format": "[L4C] Activate reject,when INTERNET CID is: %d, EPNWCAUSE not reported here",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_DEACTIVATE_IND_HANDLER_FOR_INTERNET_CID": {
+ "apiType": "index",
+ "format": "[L4C] Deact Indication handler for EPNWCAUSE when INTERNET CID is: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_ATTACH_REJECT_HANDLER_FOR_INTERNET_CID": {
+ "apiType": "index",
+ "format": "[L4C] IA reject handler for EPNWCAUSE when INTERNET CID is: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_DEBUG_ENUM": {
+ "apiType": "index",
+ "format": "%Ml4c_ps_debug_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_DEBUG_PARSE_RESULT_ERROR": {
+ "apiType": "index",
+ "format": "L4C_PS_DEBUG %s_parse_result Error",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_MAP_L4C_SRC_ID_TO_DDM_SRC_ID": {
+ "apiType": "index",
+ "format": "l4c_ps_map l4c_src_id: %d to ddm_src_id: %d",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_L4C_PS_MAP_DDM_SRC_ID_TO_L4C_SRC_ID": {
+ "apiType": "index",
+ "format": "l4c_ps_map ddm_src_id: %d to l4c_src_id: %d",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_L4C_PS_CMD_CNF_ERROR": {
+ "apiType": "index",
+ "format": "AT Error:%d->%d, %Mps_cause_enum or %Mrmmi_err_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGACT_CMD_STATUS": {
+ "apiType": "index",
+ "format": "[L4C] EGACT command status: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_SIM_SLOT_TO_PS_ID": {
+ "apiType": "index",
+ "format": "sim slot id: %d ps id %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_ONGOING_IMS_PDN_ACTIVATION_NUM": {
+ "apiType": "index",
+ "format": "l4c_ps_ongoing_ims_pdn_activation_num: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CURRENT_PLMN_ID": {
+ "apiType": "index",
+ "format": "[L4C] Current Plmn Id: mcc1: %x mcc2: %x mcc3: %x mnc1: %x mnc2: %x mnc3: %x ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_ENPDCP_DATA_USAGE_NTF": {
+ "apiType": "index",
+ "format": "l4c_ps_epdcp_data_usage_ntf() tx_bytes: %d tx_packets: %d rx_bytes: %d rx_packets: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IA_PDN_INFO": {
+ "apiType": "index",
+ "format": "l4c_ps_send_ia_pdn_info_to_l4c_nw() : is_success : %Mkal_bool, cause : %Mps_cause_enum, is_ims_pdn : %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IS_FDN_CHECK_NOT_NEEDED_SIM_PLMN": {
+ "apiType": "index",
+ "format": "fdn_check attribute: sim-plmn: %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IS_FDN_CHECK_NOT_NEEDED_FOR_PLMN": {
+ "apiType": "index",
+ "format": "fdn_check attribute: plmn in plmn_list: %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IS_FDN_CHECK_NOT_NEEDED_RESULT": {
+ "apiType": "index",
+ "format": "l4c_ps_is_fdn_check_not_needed_for_plmn(): fdn_check_not_needed: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IMS_PDN_ACTIVATION_SUCCESS": {
+ "apiType": "index",
+ "format": "l4c_ps_send_ims_pdn_status_success",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IMS_PDN_ACTIVATION_FAIL": {
+ "apiType": "index",
+ "format": "l4c_ps_send_ims_pdn_status_fail",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_TRANSFER_INIT_ATTACH_PDN_CID": {
+ "apiType": "index",
+ "format": "Transfer initial_attach PDN cid from %d to 0",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_TRANSFER_SECONDARY_LINKED_PDP_CID": {
+ "apiType": "index",
+ "format": "Transfer secondary PDP[cid:%d]'s primary_context_id cid to %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_DEACT_RETRY": {
+ "apiType": "index",
+ "format": "l4c_c2k_config_deact_retry() deact_retry[%d] old %Mkal_bool -> new %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_WAIT_EI3GPPIRAT": {
+ "apiType": "index",
+ "format": "l4c_c2k_config_waiting_ei3gppirat() old %d -> new %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_TO_LTE_SRC_RAT": {
+ "apiType": "index",
+ "format": "l4c_c2k_config_c2k_to_lte_src_rat() old %Mirat_ps_type_enum -> new %Mirat_ps_type_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_IRAT_STATE": {
+ "apiType": "index",
+ "format": "l4c_c2k_config_irat_state() old %Ml4c_c2k_irat_state_enum -> new %Ml4c_c2k_irat_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_PDN_ESTABLISH_STATUS": {
+ "apiType": "index",
+ "format": "l4c_c2k_config_pdn_establishing_status(),action %Ml4c_c2k_func_action_enum, cid %d, c2k_irat_pdn_establishing_status %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_NORMAL_CONFLICT_CONDITION": {
+ "apiType": "index",
+ "format": "[No Prolbem] under C2K to LTE inter-RAT initial attach procedure, we pass this conflict ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_ATTACHED_RAT": {
+ "apiType": "index",
+ "format": "l4c_c2k_config attached_rat from %Mirat_ps_type_enum to %Mirat_ps_type_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_NOW_SEARCHING_RAT": {
+ "apiType": "index",
+ "format": "l4c_c2k_config now_searching_rat from %Mgmss_rat_enum to %Mgmss_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CONFIG_PDN_TRANSFER_STATE": {
+ "apiType": "index",
+ "format": "Set pdn_transfer_state %Ml4c_c2k_lwcg_pdn_context_transfer_state_enum -> %Ml4c_c2k_lwcg_pdn_context_transfer_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_IA_PDN_QUERY_CNF_MOVE_CID": {
+ "apiType": "index",
+ "format": "l4c_lte_c2k_ia_pdn_query_cnf_hdlr move IA context id %d to 0",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_CHECK_NOW_RAT_MODE": {
+ "apiType": "index",
+ "format": "Current reported RAT: %Mrat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_SET_SUPPORT_EPDNCTRANS": {
+ "apiType": "index",
+ "format": "Set enable_pdn_context_transfer_in_lwcg : %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_NEED_PDN_CONTEXT_TRANSFER_IN_LWCG": {
+ "apiType": "index",
+ "format": "Need PDN context transfer in lwcg : %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_FIND_REPLACE_TARGET_CID": {
+ "apiType": "index",
+ "format": "l4c_c2k_find_replace_target_cid : %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_ADJUST_CONTENT_OF_TRANSFERRED_PDN": {
+ "apiType": "index",
+ "format": "l4c_c2k_adjust_content_of_transferred_pdn : Hit condition %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_ALREADY_FETCH_IA": {
+ "apiType": "index",
+ "format": "already_fetched_ia : %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_ALREADY_TRANSFERRED_PDN_TO_C2K": {
+ "apiType": "index",
+ "format": "already_transferred_pdn_to_c2k : %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_LC_DEBUG_TRACE": {
+ "apiType": "index",
+ "format": "[Debug Trace]: %Ml4c_c2k_lc_irat_debug_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_LC_FIND_USELESS_CID": {
+ "apiType": "index",
+ "format": "FIND USELESS CID : %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_C2K_LC_SET_CID_OF_RAT_CHANGE_REQ": {
+ "apiType": "index",
+ "format": "Set c2k_lte_rat_change_req cid from %d to %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CAL_DATA_DL_STATUS": {
+ "apiType": "index",
+ "format": "cal_data_valid:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_TX_POWER": {
+ "apiType": "index",
+ "format": "[Thermal]tx_pwr:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_BOOT_MODE": {
+ "apiType": "index",
+ "format": "[KAL] Boot mode = %Mboot_mode_type",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PS_CONF_TEST_MODE": {
+ "apiType": "index",
+ "format": "[Test Mode] %Mps_conf_test_mode_enum, [Profile] 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RMMI_CB_INFO": {
+ "apiType": "index",
+ "format": "[RMMI][CB]rmmi_cb_info, cb_on_off = %d, mid_num = %d, mir_num = %d, dcs_num = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USE_NEW_CBMI_CBMIR_CONFIG": {
+ "apiType": "index",
+ "format": "[RMMI][CB]rmmi_ecscbcfg(), use new mid, mir config",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USE_OLD_CBMI_CBMIR_CONFIG": {
+ "apiType": "index",
+ "format": "[RMMI][CB]rmmi_ecscbcfg(), use old mid, mir config",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USE_NEW_DCS_CONFIG": {
+ "apiType": "index",
+ "format": "[RMMI][CB]rmmi_ecscbcfg(), use new dcs config",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USE_OLD_DCS_CONFIG": {
+ "apiType": "index",
+ "format": "[RMMI][CB]rmmi_ecscbcfg(), use old dcs config",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SMS_REINIT_DSS": {
+ "apiType": "index",
+ "format": "[L4C_SMS] re-init SMSAL after DSS(dynamic SIM switch)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SMS_CONTEXT_SWITCH": {
+ "apiType": "index",
+ "format": "[L4C_SMS] l4c_sms_context_switch: reconfig_type: %Ml4c_me_reconfig_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CUSTOM_SMSAL_GET_WEA_TEST_DATA": {
+ "apiType": "index",
+ "format": "[WEA_TEST]There is no corresponding WAC data message in custom file for this mode = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CUSTOM_SMSAL_GET_CB_TEST_DATA": {
+ "apiType": "index",
+ "format": "[WEA_TEST]There is no corresponding CB message in custom file for this mode value = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PHB_REINIT_DSS": {
+ "apiType": "index",
+ "format": "re-init L4C PHB after DSS(dynamic SIM switch)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PHB_SEND_READY": {
+ "apiType": "index",
+ "format": "[L4C_PHB] check PHB ready indication: is_allowed:%Mkal_bool, rtn_value:%Mkal_bool, type:%Msmu_pending_password_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PHB_IS_CDMA_CARD": {
+ "apiType": "index",
+ "format": "[L4C_PHB] is CDMA card:%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PHB_WAIT_CDMA_READY": {
+ "apiType": "index",
+ "format": "[L4C_PHB] need wait CDMA card ready: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PHB_CONTEXT_SWITCH": {
+ "apiType": "index",
+ "format": "[L4C_PHB] l4c_phb_context_switch: reconfig_type: %Ml4c_me_reconfig_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FD_START_MONITOR": {
+ "apiType": "index",
+ "format": "[FD]start FD monitor",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FD_PDP_STATISTICS_CHANGE": {
+ "apiType": "index",
+ "format": "[FD]PDP statistics changed, reset fd_timer:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FD_PDP_STATISTICS_UNCHANGED": {
+ "apiType": "index",
+ "format": "[FD]PDP not changed! counter:%d, inactivity_time[%d]r:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FD_INACTIVITY_TIMEOUT": {
+ "apiType": "index",
+ "format": "[FD]Inactivity time-out, fd_mode:%hd, scri_sent:%hd, fd_counter:%d, pdp:%hd, bearer:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FD_BEARER_CAPABILITY_IND": {
+ "apiType": "index",
+ "format": "[FD]bearer capability, status:%hd, fd:%hd, pre:%hd, next:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_BLOCK_PLMN_LIST_WHEN_RRC_STATE": {
+ "apiType": "index",
+ "format": "PLMN list fail due to rrc state:%Mumts_rrc_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_BLOCK_PLMN_LIST_WHEN_ERRC_STATE": {
+ "apiType": "index",
+ "format": "PLMN list fail due to errc state:%Mem_errc_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CHECK_MODEM_CAPABILITY": {
+ "apiType": "index",
+ "format": "supported capability:0x%x , check capability:%Ml4c_modem_capability_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_EF_RAT_MODE": {
+ "apiType": "index",
+ "format": "[L4C][NW] EF RAT valid:%d, ef_rat_mode:%d, rat_mode:%Ml4c_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DUAL_PS_ATTACH_CONFLICT": {
+ "apiType": "index",
+ "format": "[L4C][Single PS] Another SIM PS detach action is not complete",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DUAL_ALWAYS_ATTACH_CONFLICT": {
+ "apiType": "index",
+ "format": "[L4C][Single PS] Both SIM cannot do PS attach at the same time",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_UBIN_SAME_CSRA_PARAM": {
+ "apiType": "index",
+ "format": "[UBIN]The same CSRA param",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_TIME_INFO": {
+ "apiType": "index",
+ "format": "Time Info: utc(%d), daylight saving time (%d), leap seconds (%d), local time offset (%d), current tick (%d) ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ERAT_LOCKED": {
+ "apiType": "index",
+ "format": "The +ERAT is locked (erat_lock:%d), sent AT+ERAT=<rat_mode>,,0 to unlock!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "INFO_L4C_ERAT_NO_SAVED": {
+ "apiType": "index",
+ "format": " +ERAT :<is_no_saved>:%d, 1: Rat Mode no saved to NVRAM!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_RAT_BALANCING": {
+ "apiType": "index",
+ "format": "change RAT for RAT balancing, rat_mode:%Ml4c_rat_enum, l4crac_get_rat_mode():%Ml4c_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ENWBDINFO_MODE": {
+ "apiType": "index",
+ "format": "RMMI_PTR->enwbdinfo_mode = 0;",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SELECT_AUTO_MODE_FROM_MANUAL": {
+ "apiType": "index",
+ "format": "Select AUTO mode from MANUAL if Refresh type reset",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] root_action = %Ml4c_root_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OSTD_INFINITE_SLEEP_ONGOING": {
+ "apiType": "index",
+ "format": "[L4C] OSTD_MD_Infinite_Sleep() is Ongoing",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OSTD_INFINITE_SLEEP_DONE": {
+ "apiType": "index",
+ "format": "[L4C] OSTD_MD_Infinite_Sleep() Done",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_PARSE_PARAM_EMPTY": {
+ "apiType": "index",
+ "format": "[EGMC] parse param %2d result: empty",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_PARSE_PARAM_INTEGER": {
+ "apiType": "index",
+ "format": "[EGMC] parse param %2d result: unsign integer: %u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_PARSE_PARAM_SIGN_INT": {
+ "apiType": "index",
+ "format": "[EGMC] parse param %2d result: sign integer: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_PARSE_PARAM_STRING": {
+ "apiType": "index",
+ "format": "[EGMC] parse param %2d result: small string: \\\"%s\\\"",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_PARSE_PARAM_UNKNOWN_STR": {
+ "apiType": "index",
+ "format": "[EGMC] parse param %2d result: unknown string: %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_CONSTRUCT_PARAM_EMPTY": {
+ "apiType": "index",
+ "format": "[EGMC] construct param %2d: empty",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_CONSTRUCT_PARAM_INTEGER": {
+ "apiType": "index",
+ "format": "[EGMC] construct param %2d: unsign integer: %u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_CONSTRUCT_PARAM_SIGN_INT": {
+ "apiType": "index",
+ "format": "[EGMC] construct param %2d: sign integer: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EGMC_CONSTRUCT_PARAM_STRING": {
+ "apiType": "index",
+ "format": "[EGMC] construct param %2d: small string: \\\"%s\\\"",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_INTERNAL_GMC_PROCESS_MATCH_RLT": {
+ "apiType": "index",
+ "format": "l4c_internal_gmc_process: %Ml4c_at_cmd_process_type_enum, match %d with MAX table size %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EPSNLTE_MRS_INFO": {
+ "apiType": "index",
+ "format": "EPSNLTE: is_valid:%d, as_reason:%d, nas_reason:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CS_PS_REG_STATE": {
+ "apiType": "index",
+ "format": "CS reg state is : %Mrmmi_reg_state_enum, PS reg state is : %Mrmmi_reg_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OP01_SET_RAT_MODE_FAIL": {
+ "apiType": "index",
+ "format": "l4c op01 set rat mode fail",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ENQUE_OP01_PENDING_ACTION_RESULT": {
+ "apiType": "index",
+ "format": "l4c enque op01 pending action,action:%Ml4c_pending_action_enum,result:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OP01_LOCK_FILTER_ERAT_TO_GSM": {
+ "apiType": "index",
+ "format": "l4c_op01_lock_filter_rat_to_gsm",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OP01_LOCK_FILTER_ERAT_TO_WG": {
+ "apiType": "index",
+ "format": "l4c_op01_lock_filter_rat_to_wg",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OP01_LOCK_FILTER_RAT_MODE_TO_GSM": {
+ "apiType": "index",
+ "format": "l4c_op01_filter_rat_mode_to_gsm,old:%Ml4c_rat_enum,new:%Ml4c_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OP01_LOCK_FILTER_RAT_MODE_TO_WG": {
+ "apiType": "index",
+ "format": "l4c_op01_filter_rat_mode_to_wg,old:%Ml4c_rat_enum,new:%Ml4c_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OP01_LOCK_FILTER_ERAT": {
+ "apiType": "index",
+ "format": "l4c_op01_lock_filter_erat,rat_mode:%Ml4c_rat_enum,prefer_rat:%Ml4c_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_BEARER_UPDATED": {
+ "apiType": "index",
+ "format": "[L4C][PS] L4C PS bearer updated",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L4C_PS_CLEAR_PLMN_LIST_BLOCK_APN": {
+ "apiType": "index",
+ "format": "[L4C][PS] l4c ps clear plmn list block apn, cause = %Mps_cause_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4CSMU_START_CNF_INFO": {
+ "apiType": "index",
+ "format": "sim_power_state=%Ml4c_sim_state_enum, smu_activated=%d, sim_refresh=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4CSMU_VSIM_RAT_CONFLICT": {
+ "apiType": "index",
+ "format": "[VSIM] VSIM(%s) can not enable in current RAT MODE: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PENDING_PASSWD_OF_OTHER": {
+ "apiType": "index",
+ "format": "[SML] slot[%d] root pending password : %Msmu_pending_password_id_enum sim_inserted : %Ml4c_single_sim_inserted_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EPOF_AUDIO_WAITING": {
+ "apiType": "index",
+ "format": "[L4C] Wait for AUDIO ACK",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EPOF_AUDIO_ACK": {
+ "apiType": "index",
+ "format": "[L4C] AUDIO ACK for audio power-off done",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ERTTSTR_AUDIO_IND": {
+ "apiType": "index",
+ "format": "AUDIO indication for rtt string",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_PS_ID": {
+ "apiType": "index",
+ "format": "PS ID = %Mprotocol_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_ID_INFO": {
+ "apiType": "index",
+ "format": "%Mprotocol_id_enum SBP ID = %d, SBP SubID= %d, MD CCCI SBP = %d, MD CCCI SubID = %d, OLD_SBP_ID = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_DSBP_ID_INFO": {
+ "apiType": "index",
+ "format": "Current SIM SBP ID = %d, D-SBP Mode 1 SBP ID: %d, D-SBP Mode 2 SBP ID: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_ID_CURRENT": {
+ "apiType": "index",
+ "format": "SBP ID [current] = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_ID_TO_CHANGE": {
+ "apiType": "index",
+ "format": "SBP ID [to change] = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_MCC_MNC": {
+ "apiType": "index",
+ "format": "SBP [MCC MNC] = %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_ID_FROM_MCC_MNC": {
+ "apiType": "index",
+ "format": "SBP ID [from mcc mnc] = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_RECONGIGURE_REQ": {
+ "apiType": "index",
+ "format": "Send REQ to SBP table[%d]=%Mmodule_type, gemini_check: 0x%02x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_RECONGIGURE_CNF": {
+ "apiType": "index",
+ "format": "Receive CNF from SBP table[%d]=%Mmodule_type, gemini_check: 0x%02x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_WAIT_RECONGIGURE_CNF": {
+ "apiType": "index",
+ "format": "Wait for CNF from SBP table[%d]=%Mmodule_type, gemini_check: 0x%02x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_RECONFIGURE_TBL": {
+ "apiType": "index",
+ "format": "[SBP] call custom function from SBP table[%d]=%Mmodule_type, reconfigure type: 0x%02x, gemini_check: 0x%02x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_L4C_FEATURE": {
+ "apiType": "index",
+ "format": "[SBP]%Msbp_md_feature_enum:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_L4C_DATA": {
+ "apiType": "index",
+ "format": "[SBP data]%Msbp_md_feature_data_enum:%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_DSS_ONGOING": {
+ "apiType": "index",
+ "format": "[SBP] DSS ongoing! Not allow DSBP",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_NOT_ALLOWED_RECONFIG_TYPE": {
+ "apiType": "index",
+ "format": "[SBP] Unexpected Reconfig type! Not allow DSBP",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_DSBP_ONGOING": {
+ "apiType": "index",
+ "format": "[SBP] DSBP of PS%d ongoing",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_TXID_L4C_SET": {
+ "apiType": "index",
+ "format": "[SBP] set l4c trans_id %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_UNEXPECTED_RECONFIG_TYPE": {
+ "apiType": "index",
+ "format": "[SBP] Unexpected Reconfig type %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PARA": {
+ "apiType": "index",
+ "format": "parameter[%Ml4c_source_id_enum].length=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_UART_CTRLDCD": {
+ "apiType": "index",
+ "format": "UART_CtrlDCD(), port =%hd,value=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NO_GPRS_DIALUP_EXIST": {
+ "apiType": "index",
+ "format": "Already no GPRS dialup exist",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RETURN_DUE_TO_UART_IN_DATA_MODE": {
+ "apiType": "index",
+ "format": "rmmi_write_to_uart(): return due to uart in data mode",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_START_TIMER": {
+ "apiType": "index",
+ "format": "[L4C] Start timer: %Ml4c_timer_id_enum, length:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_STOP_TIMER": {
+ "apiType": "index",
+ "format": "[L4C] Stop timer: %Ml4c_timer_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_TIMER_EXPIRED": {
+ "apiType": "index",
+ "format": "[L4C] timer expired: %Ml4c_timer_id_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CANCEL_EVENT": {
+ "apiType": "index",
+ "format": "cancel L4C timer!, event_id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_TIMEROUT_EVENT": {
+ "apiType": "index",
+ "format": "L4C timer timeout!, event_id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_START_EVENT": {
+ "apiType": "index",
+ "format": "start L4C timer!, event_id=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_STARTUP": {
+ "apiType": "index",
+ "format": "poweron, current action=%Ml4c_action_enum, smu_activated=%hd, is_rac_activated()=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SERVICE_MODE_CHANGE_EXE": {
+ "apiType": "index",
+ "format": "[L4C][Service Mode Change] Skip PS %d at line %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_FUNCTION_NAME_AND_RETURN_LINE": {
+ "apiType": "index",
+ "format": "[L4C] Function %s return %Mkal_bool at line %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ANTENNA_STATE_PENDING_RAT": {
+ "apiType": "index",
+ "format": "[L4C] get_antenna_state_pending_rat: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "RMMI_PROCESS_MULTI_CMD_AFTER_PROCESS_MMI_MSG": {
+ "apiType": "index",
+ "format": "Check multi-cmd after processing MMI message,is_ucm_action = %hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_HVOLTE_MODE": {
+ "apiType": "index",
+ "format": "hVoLTE_enable=%Mhvolte_enable_status_enum, hVoLTE_mode=%Mhvolte_mode_enum, ims_voice_rat=%Mims_cap_rat_enum, hVoLTE_enable_for_roaming=%Mhvolte_enable_status_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_IS_IMS_SUPPORT": {
+ "apiType": "index",
+ "format": "is_ims_turned_on=%Mkal_bool, ims_voice_rat=%Mims_cap_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NOT_SEND_CIEV_DEFAULT": {
+ "apiType": "index",
+ "format": "do not send +ciev:2,0 when crss_cnf, due to there is still hold call exist",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CALL_DISC_CNF_HDLR_ATD_ABORT": {
+ "apiType": "index",
+ "format": "call_disc_cnf_hdlr: ATD aborted!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ATH_FOR_DATA_CALL": {
+ "apiType": "index",
+ "format": "call_disc_cnf_hdlr: ATH for data call!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RETURN_NO_CARRIER": {
+ "apiType": "index",
+ "format": "retrun NO CARRIER for ata when answering data call fail",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RETURN_OK_FOR_ATA": {
+ "apiType": "index",
+ "format": "retrun OK for ata when answering data call",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NOT_SEND_CIEV_STATUS": {
+ "apiType": "index",
+ "format": "+ciev status should not be sent before final result of ATH or CHLD is given",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLEAR_FD": {
+ "apiType": "index",
+ "format": "Clear previous fd[2]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_EIMG_EMDY_RETURN_OK": {
+ "apiType": "index",
+ "format": "EIMG/EMDY return OK directly",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLEAR_PREVIOUS_PATH": {
+ "apiType": "index",
+ "format": "clear previous path",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DISK": {
+ "apiType": "index",
+ "format": "disk=%x,%c",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EQ_USBUART_SWITCH_PORT_REQ_CALL_UART_SWITCHPORT": {
+ "apiType": "index",
+ "format": "l4c_eq_usbuart_switch_port_req() call UART_SwitchPort():PS_UART_PORT=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EQ_USBUART2_TST_USAGE": {
+ "apiType": "index",
+ "format": "TST_PORT=%d, TST_PORT_L1=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_FREE_CHANNEL_IS_FOUND": {
+ "apiType": "index",
+ "format": "Free rmmi channel is found, cid=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_USBUART2_IS_FOUND_OR_NOT": {
+ "apiType": "index",
+ "format": "uart_port_usb2 is found=%d, cid=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_ON_ALARM": {
+ "apiType": "index",
+ "format": "POWER_ON_ALARM",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USB_CABLE_PLUGOUT": {
+ "apiType": "index",
+ "format": "USB cable plugout when eimg/emdy",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SET_PENDING_ATTACH_SETTING": {
+ "apiType": "index",
+ "format": "Set pending attach setting=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SMS_FDN_CHECK_DA_ADDRESS": {
+ "apiType": "index",
+ "format": "SMS FDN check DA address only",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DISALLOW_DIALUP_DUT_TO_CAMERA_RUNUNG": {
+ "apiType": "index",
+ "format": "Disallow dialup service due to camera runing,temp_src=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CPHS_LOCK_BLOCKED": {
+ "apiType": "index",
+ "format": "CPHS lock blocked!!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_IN_L4CSMSAL_DELETE_CNF_HDLR": {
+ "apiType": "index",
+ "format": "ERROR:In l4csmsal_delete_cnf_hdlr ,index =%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_INVALID_OA_ADDR_LENGTH": {
+ "apiType": "index",
+ "format": "L4CSMSAL_NEW_MSG_INDEX: Invalid OA address length = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_IN_L4CSMSAL_STATUS_CNF_HDLR": {
+ "apiType": "index",
+ "format": "ERROR:In l4csmsal_set_status_cnf_hdlr ,index =%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_OBTAIN_UART_CONTROL_CALL_UART_SWITCHPORT": {
+ "apiType": "index",
+ "format": "l4c_obtain_uart_control() call UART_SwitchPort():PS_UART_PORT=%d,uart_port_value=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DUAL_SIM_TO_FLIGHT_MODE": {
+ "apiType": "index",
+ "format": "dual SIM to fligt mode when SIM2 is doing %Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PLMN_SELECTION_FOR_ECC_CALL_RETRY": {
+ "apiType": "index",
+ "format": "PLMN SELECTION for ECC call retry",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RAC_CURRENT_ACTION_IS_COPS_TEST": {
+ "apiType": "index",
+ "format": "l4c_previous_rac_action_rsp(), rac_current_action=COPS_TEST,rac_user=%hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DEVICE_AND_ON_OFF": {
+ "apiType": "index",
+ "format": "device=%d, on_off=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_UPDATE_CALL_ID": {
+ "apiType": "index",
+ "format": "To update call_id=%d for mo data call",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FC": {
+ "apiType": "index",
+ "format": "FC = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_TEMP_VALUE": {
+ "apiType": "index",
+ "format": "temp_value=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NO_LENGH_INPUT": {
+ "apiType": "index",
+ "format": "no length input",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_INVALID_LENGH_INPUT": {
+ "apiType": "index",
+ "format": "invalid length input",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FINDCLOSE": {
+ "apiType": "index",
+ "format": "FindClose",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_FINDFIRST": {
+ "apiType": "index",
+ "format": "FindFirst",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ONLINE_STATE": {
+ "apiType": "index",
+ "format": "online state",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLRTXBUFFER": {
+ "apiType": "index",
+ "format": "ClrTxBuffer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SEND_SEL_IND": {
+ "apiType": "index",
+ "format": "send sel_ind",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_LMMI_STATE_AND_CURRENT_ACTION": {
+ "apiType": "index",
+ "format": "LMMI: state = %hd, current_action = %hd\\n",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_STATE_AND_CURRENT_ACTION": {
+ "apiType": "index",
+ "format": "RMMMI: state = %hd, current_action = %hd\\n",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RMMI_KEYPRESS": {
+ "apiType": "index",
+ "format": "key press, keycode=%d, keycode idx = %d, windex = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RMMI_KEYRELEASE": {
+ "apiType": "index",
+ "format": "key release, keycode=%d, keycode idx = %d, windex = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RMMI_KEYLONGPRESS": {
+ "apiType": "index",
+ "format": "key long press, keycode=%d, keycode idx = %d, windex = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RMMI_KEYREPEAT": {
+ "apiType": "index",
+ "format": "key repeat, keycode=%d, keycode idx = %d, windex = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_KBDGETKEY": {
+ "apiType": "index",
+ "format": "l4c_kbd_getkeydata(), keyevent = %Mkbd_event, keycode=%d, rindex = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_ABORT_PLMN_SEL": {
+ "apiType": "index",
+ "format": "abort plmn sel!, opcode=%d, plmn_id=%d%d%d%d%d%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PREVENT_SEND_CPI_FOR_RETRY_CALL": {
+ "apiType": "index",
+ "format": "Prevent to send CPI related to retry call(call_id=%d)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4CUEM_USBDETECT_IND": {
+ "apiType": "index",
+ "format": "l4cuem_usbdetect_ind() ,action=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_USBUART_SWITCH_PORT": {
+ "apiType": "index",
+ "format": "l4c_eq_usbuart_switch_port_req() ,src_id=%d,app=%d,new_port=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_START_SAT_REDIAL": {
+ "apiType": "index",
+ "format": "L4C start sat redial!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CURRENT_SIM_MAPPING_FOR_3G_SWITCH": {
+ "apiType": "index",
+ "format": "cur_sim_map: %Msim_interface_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_IS_DATA_SIM": {
+ "apiType": "index",
+ "format": "Current protocol is data sim: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_PENDING_PASSWD": {
+ "apiType": "index",
+ "format": "[LINK_SML] pending_passwd[slot%d]:%Msmu_pending_password_id_enum, need_unlock_table:%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PREFER_PLMN_FILE": {
+ "apiType": "index",
+ "format": "PLMN file: %Msim_file_index_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ACTIVE_RAT": {
+ "apiType": "index",
+ "format": "Active RAT: %Mrat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ACTIVE_3GPP_RAT": {
+ "apiType": "index",
+ "format": "Active 3GPP_RAT: %Mrat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SEND_IPC_MSG": {
+ "apiType": "index",
+ "format": "Send IPC msg_id=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_REC_IPC_MSG": {
+ "apiType": "index",
+ "format": "Receive IPC msg_id=%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_MCCMNC_USIR": {
+ "apiType": "index",
+ "format": "[Regional Phone]mcc_mnc: %S",
+ "traceClass": "TRACE_SENSITIVE_USIR"
+ }
+ },
+ {
+ "INFO_REGIONAL_PHONE_MODE": {
+ "apiType": "index",
+ "format": "[Regional Phone]mode:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_DISALLOW_IRAT": {
+ "apiType": "index",
+ "format": "Disallow IRAT due to RSVA suspend or abort service",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RECONGIGURE_REQ": {
+ "apiType": "index",
+ "format": "Send REQ to module_tbl[%d], gemini_check: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RECONGIGURE_CNF": {
+ "apiType": "index",
+ "format": "Receive CNF from module_tbl[%d] gemini_check: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_RESEND_AFR": {
+ "apiType": "index",
+ "format": "Start to retry AFR",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PWS_IGNORE_IN_HPLMN": {
+ "apiType": "index",
+ "format": "[PWS] Ignore PWS messages in HPLMN",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PWS_IGNORE_IN_VPLMN": {
+ "apiType": "index",
+ "format": "[PWS] Ignore PWS messages in VPLMN",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_WORLD_MODE": {
+ "apiType": "index",
+ "format": "WORLD_MODE: 0x%x (Format: 0|N|Lf|Lt|W|C|T|G)",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAT_CUSATD_ERROR": {
+ "apiType": "index",
+ "format": "[CUSATD ERROR] UICC STATE: %Mcusats_uicc_state_enum, UFC support: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CURRENT_ROOT_ACTION": {
+ "apiType": "index",
+ "format": "[L4C][ROOT]Current root_action=%Ml4c_root_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_POWEROFF_STATE_CHANGED": {
+ "apiType": "index",
+ "format": "[L4C] sim_power_state is changed from %Ml4c_sim_state_enum to %Ml4c_sim_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_POWEROFF_STATE": {
+ "apiType": "index",
+ "format": "[L4C] mod id : %Mmodule_type, sim_power_state = %Ml4c_sim_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_POWEROFF_RELATED_STATUS": {
+ "apiType": "index",
+ "format": "current mod: %Mmodule_type, sim_power_state related status: cfun_state : %u, poweron_mode = %Mpower_on_status_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_POWEROFF_RETRY_TIME": {
+ "apiType": "index",
+ "format": "[L4C] poweroff_retry = %u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_POWEROFF_CLEAR_RETRY_TIME": {
+ "apiType": "index",
+ "format": "[L4C] clear poweroff_retry = %u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_POWEROFF_NOT_READY": {
+ "apiType": "index",
+ "format": "[L4C] SIM Power off not ready",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_STATUS_BITMASK": {
+ "apiType": "index",
+ "format": "sim_status_bitmask: 0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_DSS_ONGOING": {
+ "apiType": "index",
+ "format": "SIM switch ongoing! Ignore SIM_ERROR",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_VERIFIED": {
+ "apiType": "index",
+ "format": "SIM is ready",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DELAY_SWITCH_TO_SRLTE": {
+ "apiType": "index",
+ "format": "delay_switch_to_SRLTE_mode=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DELAY_SWITCH_TO_VOPS": {
+ "apiType": "index",
+ "format": "delay_switch_to_VOPS_mode=%Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DIAL_C2K_STATE": {
+ "apiType": "index",
+ "format": "l4c_ptr->l4c_dial_c2k_state = %Ml4c_dial_c2k_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_GLOBAL_RAT_MODE": {
+ "apiType": "index",
+ "format": "AP global RAT mode=%Ml4c_rat_enum, Valid global RAT mode=%Ml4c_rat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_AKA_AUTH_ABORT_RECEIVED": {
+ "apiType": "index",
+ "format": "AKA AUTH Abort received from RSIM Stack",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_RSIM_PENDING_ACTION": {
+ "apiType": "index",
+ "format": "RSIM pending action =%Ml4c_rsim_pending_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_OP01_LOCK_STATE": {
+ "apiType": "index",
+ "format": "l4c_set_op01_lock_state:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_OP12_LOCK_STATE": {
+ "apiType": "index",
+ "format": " l4c_op12_lock_reg_by_vzw_adm_apn: %d -> %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_OP12_LOCK_STATE_RESET": {
+ "apiType": "index",
+ "format": " sim_error_ind_hdlr: op12 reg unlock:%d by %Msim_error_cause_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CHANGE_RAT_MODE": {
+ "apiType": "index",
+ "format": "Changing RAT MODE to 4G only",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_REVERT_RAT_MODE": {
+ "apiType": "index",
+ "format": "Reverting RAT MODE from 4G only to AP RAT MODE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_INVALID_RAT_MODE": {
+ "apiType": "index",
+ "format": "Trying to set invalid RAT mode. Return ERROR",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_DUPLEX_MODE_RESET_STATE": {
+ "apiType": "index",
+ "format": "[L4C] mod id : %Mmodule_type, duplex_mode_reset_state = %Ml4c_sim_duplex_mode_reset_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SIM_CURRENT_DUPLEX_MODE_RESET_STATE": {
+ "apiType": "index",
+ "format": "[L4C] duplex_mode_reset_state = %Ml4c_sim_duplex_mode_reset_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DELETE_PENDING_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] Delete pending action: %Ml4c_pending_action_enum, index:[%u]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ENQUEUE_PENDING_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] Enqueue pending action: %Ml4c_pending_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DEQUEUE_PENDING_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] Dequeue pending action: %Ml4c_pending_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PENDING_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] Pending action[%d]: %Ml4c_pending_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PENDING_ACTION_ALREADY_IN_QUEUE": {
+ "apiType": "index",
+ "format": "[L4C] Warning: The pending action has already been in the queue",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_NO_L4SUB_INIT": {
+ "apiType": "index",
+ "format": "[L4C] no re-init l4 submodule in %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SEND_ATTACH_RESULT": {
+ "apiType": "index",
+ "format": "[L4C] Send PS attach request result = %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_IS_INVALID_SIM": {
+ "apiType": "index",
+ "format": "[LINK_SML] Current SIM (slot%d) is not valid SIM, skip LINK SML update process",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_CUR_IS_CTRL_SIM": {
+ "apiType": "index",
+ "format": "[LINK_SML] Current SIM (slot%d) is Ctrl SIM, run LINK SML update process",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_INVALID_SIM": {
+ "apiType": "index",
+ "format": "[LINK_SML] SIM%d is valid SIM, no need to update SML status",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_VALID_SIM_IN_SRV": {
+ "apiType": "index",
+ "format": "[LINK_SML] SIM%d is valid SIM and still in service, no need to upgrade/downgrade SML status",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_INVALID_TO_VALID_SIM": {
+ "apiType": "index",
+ "format": "[LINK_SML] Detect SIM%d is invalid SIM but SUPER_VERIFIED",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_VALID_TO_INVALID_SIM": {
+ "apiType": "index",
+ "format": "[LINK_SML] Detect SIM%d is valid SIM but SUPER_LOCKED",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS": {
+ "apiType": "index",
+ "format": "[LINK_SML] Checking Result: No valid SIM in the slot, re-check and update SML status",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_TABLE": {
+ "apiType": "index",
+ "format": "[LINK_SML] SIM%d : %Mlink_sml_valid_sim_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_REAL_SIM_VERIFY_STATE": {
+ "apiType": "index",
+ "format": "[LINK_SML] real_sim_verify_state[slot%d]:%Mlink_sml_valid_sim_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_UPDATE_LOCK_STATUS_NOT_CTRL_SLOT": {
+ "apiType": "index",
+ "format": "[LINK_SML] skip process, SIM%d is not ctrl slot",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_SKIP_UPGRADE_AND_DOWNGRADE_PROCESS": {
+ "apiType": "index",
+ "format": "[LINK_SML] skip process, not valid sim or rule 9",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ROOT_SKIP_UPGRADE_AND_DOWNGRADE_PROCESS_UNKNOWN_OP": {
+ "apiType": "index",
+ "format": "[LINK_SML] skip process, unknown operation",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ERROR_L4C_EWSECMODE_NVM_FAIL_RAC": {
+ "apiType": "index",
+ "format": "[L4C][EWSECMODE]NVRAM write to RAC failed !!!",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "WARNING_L4C_EWSECMODE_CFUN_1": {
+ "apiType": "index",
+ "format": "[L4C][EWSECMODE]Command failed due to RF ON. CFUN State = 1 !!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "INFO_EONS_SET_STATE": {
+ "apiType": "index",
+ "format": "[EONS] set_state:%Meons_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_EONS_INIT": {
+ "apiType": "index",
+ "format": "[EONS] EONS Init",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_EONS_DUMP_ACT_RAT": {
+ "apiType": "index",
+ "format": "[EONS] act: %d rat: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_MRS_EBCELL_NUM": {
+ "apiType": "index",
+ "format": "[L4C][EBCELL] num = %u",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_EGMC_DETACH_REQ": {
+ "apiType": "index",
+ "format": "VoLTE Element changed. Perform DETACH & REATTACH",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAR_STATE_INDEX": {
+ "apiType": "index",
+ "format": "[L4C][SAR] g_sar_sensor_state= %d, scenario_index =%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAR_ANT_CNF_PEND": {
+ "apiType": "index",
+ "format": "[L4C][SAR] g_sar_tx_ant_cnf_pending = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAR_TXAN_UPDATE_NEEDED": {
+ "apiType": "index",
+ "format": "[L4C][SAR] g_sar_txant_update_needed = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAR_MD_PRODUCT_ID": {
+ "apiType": "index",
+ "format": "[L4C][SAR] md_product_model_id = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SAR_DATA_MD_to_AP": {
+ "apiType": "index",
+ "format": "[L4C][SAR] DATA sent to TTY port from MODEM to AP need_sar_enable = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CAMERA_URC_REPORTING": {
+ "apiType": "index",
+ "format": "[L4C][CAMERA] URC: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CAMERA_URC_REPORTING_STATE": {
+ "apiType": "index",
+ "format": "Camera reporting: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CHECK_EU_US_ZONE_WITH_SIM_SLOT": {
+ "apiType": "index",
+ "format": "Check_EuropeZone called [%d], [%d]",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_IS_EU_US_MCC_FOUND": {
+ "apiType": "index",
+ "format": "Europe/US MCC found: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_ON_IMEI_VERIFY": {
+ "apiType": "index",
+ "format": "Power on IMEI verification: %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_IMEI_VERIFICATION_WHEN_ATTACH": {
+ "apiType": "index",
+ "format": "Search ANY due to IMEI verification",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_NITZ_CALLBACK_RESULT": {
+ "apiType": "index",
+ "format": "[L4C] NITZ CB result = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_LEVEL_THRESHOLDS_VALUE_CHANGE": {
+ "apiType": "index",
+ "format": "Different thresholds. Stop timer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_LEVEL_THRESHOLDS_NUMBER_CHANGE": {
+ "apiType": "index",
+ "format": "Number of thresholds are different. Stop timer",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_LEVEL_THRESHOLDS_SINGNAL_RANGE": {
+ "apiType": "index",
+ "format": "signal value range is = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_LEVEL_THRESHOLDS_SINGNAL_RANGE_WITH_PREVIOUS_RANGE": {
+ "apiType": "index",
+ "format": "old range = %d, new range = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_POWER_LEVEL_THRESHOLDS_PREVIOUS_REPORT": {
+ "apiType": "index",
+ "format": "previous reported range = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NSSAI_DATA_IS_INVALID": {
+ "apiType": "index",
+ "format": "NSSAI data format is invalid : %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ICD_FILTER_NOT_ENABLED": {
+ "apiType": "index",
+ "format": "[L4C][ICD] filter is not enable, protocol: %d, event code: %Micd_event_code",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_ICD_SEND_EVENT_FAIL": {
+ "apiType": "index",
+ "format": "[L4C][ICD] send fail, event code: %Micd_event_code, error code: %Micd_error_code",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_NWSEL_SUSP": {
+ "apiType": "index",
+ "format": "nwsel suspended by L4C. Resume",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_RAT_CHANGE_DONE": {
+ "apiType": "index",
+ "format": "L4C rat change complete",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_RAT_CHANGE_NEEDED": {
+ "apiType": "index",
+ "format": "L4C NW - PLMN: %s, Is rat change needed %d, is lte set %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RAT_MODE_NOT_REVERT_DUE_TO_INVALID_PLMN": {
+ "apiType": "index",
+ "format": "[L4C NW]RAT mode not reverted to enable 2G because of invalid PLMN.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_TITAN_L4C_UTIL_KOR_SETTING": {
+ "apiType": "index",
+ "format": "[L4C][l4c_custom_rat_setting_needed]IMSI = %s, sim_card = %Ml4c_sim_oper_enum, is_kor_mcc = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_TITAN_L4C_UTIL_CUR_CUSTOM_SETTING": {
+ "apiType": "index",
+ "format": "[L4C][l4c_custom_rat_setting_needed]l4c_ptr->rat_mode_setting = %Ml4c_rat_mode_custom_type_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_TITAN_L4C_UTIL_RAC_RAT_SETTING": {
+ "apiType": "index",
+ "format": "[L4C][l4c_custom_rat_setting_needed]RAT mode settings NVRAM RAT mode = %Mrat_enum, Cur RAT mode = %Mrat_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_TITAN_SET_RAT_FAILED": {
+ "apiType": "index",
+ "format": "[L4C]Set RAT mode Failed !!!!!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_TITAN_SET_RAT_CUR_CUSTOM_SETTING": {
+ "apiType": "index",
+ "format": "[L4C][TITAN][l4c_nw_set_rat_mode_ext_req]l4c_ptr->rat_mode_setting = %Ml4c_rat_mode_custom_type_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CHANGE_RAT_MODE_FOR_DCM": {
+ "apiType": "index",
+ "format": "DCM SBP enabled.Inside l4c_nw_check_rat_change_needed_for_docomo()",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_COMMAND_USIR": {
+ "apiType": "index",
+ "format": "[L4C]command:%S",
+ "traceClass": "TRACE_SENSITIVE_USIR"
+ }
+ },
+ {
+ "INFO_L4C_PARTIAL_SENSITIVE_CMD_USIR": {
+ "apiType": "index",
+ "format": "[L4C]Sensitive command:%S",
+ "traceClass": "TRACE_SENSITIVE_USIR"
+ }
+ },
+ {
+ "INFO_L4C_SIM_TRAY_INFO": {
+ "apiType": "index",
+ "format": "[L4C]SIM tray info = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_NW_PHY_CFG_REPORT": {
+ "apiType": "index",
+ "format": "[L4C][NW] report physical config info, 4x4MIMO: %d, DL256QAM: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_EMC_ONGOING": {
+ "apiType": "index",
+ "format": "[L4C] EMC ongoing. ps_id=%d, emc=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_CHECK_VOPS_SETTING_FOR_SEARCH_TYPE_SKIP": {
+ "apiType": "index",
+ "format": "[L4C] Skip VOPS setting check for search type",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SAT_TURN_FDN_OFF": {
+ "apiType": "index",
+ "format": "[SAT] Next command should come from STK, no FDN needed",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SAT_CHECK_FOR_FDN": {
+ "apiType": "index",
+ "format": "[SAT] Check if FDN not needed, expected STK cmd: %Msat_call_ctrl_type_noti_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SAT_NO_FDN": {
+ "apiType": "index",
+ "format": "[SAT] No FDN needed",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SAT_ALREADY_CALL_CONTROL": {
+ "apiType": "index",
+ "format": "[SAT] This request already controlled by SIM",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CID_IS_NOT_PRIMARY": {
+ "apiType": "index",
+ "format": "[L4C PS] CID is not primary",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_SMS_CAP_PARAM_TYPE_ERROR": {
+ "apiType": "index",
+ "format": "[L4C] set SMS capability param type error: type1: %Ml4c_at_cmd_param_type, type2: %Ml4c_at_cmd_param_type",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_SMS_CAP_PARAM": {
+ "apiType": "index",
+ "format": "[L4C] set SMS capability param: rat_mode: %Mrat_enum, sms_cap: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SET_SMS_CAP_PERFORM_REATTACH": {
+ "apiType": "index",
+ "format": "[L4C] set SMS capability and perform re attach",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_QUERY_NR_BAND_COMB": {
+ "apiType": "index",
+ "format": "[L4C] index: %d, data: %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "STATE_L4C_CC_ACTION": {
+ "apiType": "index",
+ "format": "l4c_cc: src_id=%Ml4c_source_id_enum, state=%Ml4c_state_enum, cc_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_SS_ACTION": {
+ "apiType": "index",
+ "format": "l4c_ss: ss_user=%Ml4c_source_id_enum, ss_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_SMS": {
+ "apiType": "index",
+ "format": "l4c_sms: src_id=%Ml4c_source_id_enum, sms_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_PS_ABM": {
+ "apiType": "index",
+ "format": "l4c_ps_abm: current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_EQ_ACTION": {
+ "apiType": "index",
+ "format": "l4c_eq: eq_user=%Ml4c_source_id_enum, eq_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_RAC_ACTION": {
+ "apiType": "index",
+ "format": "l4c_rac: rac_user=%Ml4c_source_id_enum, rac_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_SMU_ACTION": {
+ "apiType": "index",
+ "format": "l4c_smu: smu_user=%Ml4c_source_id_enum, smu_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_TCM_ACTION": {
+ "apiType": "index",
+ "format": "l4c_tcm: tcm_user=%Ml4c_source_id_enum, tcm_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_TCM_CONTEXT_ACTION": {
+ "apiType": "index",
+ "format": "l4c_tcm: context_id=%d, tcm_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "STATE_L4C_PHB_ACTION": {
+ "apiType": "index",
+ "format": "l4c_phb: phb_user=%Ml4c_source_id_enum, phb_current_action=%Ml4c_action_enum",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_L4C_CFUN_STATE": {
+ "apiType": "index",
+ "format": "cfun_state: %d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_C2K_CFUN_STATE": {
+ "apiType": "index",
+ "format": "c2k_cfun_state: %d",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "STATE_ATH_DISC": {
+ "apiType": "index",
+ "format": "ath disc",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "STATE_CLEAR_IS_UCM_ACTION": {
+ "apiType": "index",
+ "format": "clear is_ucm_action",
+ "traceClass": "TRACE_STATE"
+ }
+ },
+ {
+ "WARNING_INVALID_NUMBER": {
+ "apiType": "index",
+ "format": "number containing invalid char %c",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ERROR_OUTGOING_CALL_FAIL": {
+ "apiType": "index",
+ "format": "Warning: get_outgoing_call fail in l4c_cc_exe_ath_req",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_MO_CALL_FAIL_DUE_TO_IN_CALL": {
+ "apiType": "index",
+ "format": "Warning: MO call fail due to in call",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CALLSETUP_FAIL_DUE_TO_PRESENT_CALL": {
+ "apiType": "index",
+ "format": "Warning: MO callsetup fail due to a existing MT present call,call_id=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_ATA_NOT_ALLOW_BEFORE_SEND_SETUP_IND": {
+ "apiType": "index",
+ "format": "alerting~",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_USSD_USED_USSR_STAGE": {
+ "apiType": "index",
+ "format": "Warning: USSD with dcs=UCS2 can only be used when USSR stage",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Error: cmd conflict error, current_action=%Ml4c_action_enum, new_action= %Ml4c_action_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SS_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: ss cmd conflict when action=PARSE_SS_EXE and src_id=RMMI_SRC !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SS_COMMAND_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: ss cmd conflict !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_IS_CTM_CONNECTED": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : action = ATD_APP , is_ctm_connected= TRUE",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_ACTIVE_CALL_TYPE": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : action = CHLD_EXE , active call type=CSMCC_CSD_CALL",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_RETRY_FLAG": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : action = ATD_APP , retry_flag= TRUE",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_MUTUAL_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : mutual conflict",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_CGDATA_DURING_CHANGE_RAT_RETRY": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : CGDATA_EXE during ECC change RAT Retry",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_NO_ECALL_NUMBER_AVAILABLE": {
+ "apiType": "index",
+ "format": "Warning: SIM Ecall number not available use ATEMSDTNUM or ATEMSDRNUM to set number",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_PHB_APPROVE_FAIL": {
+ "apiType": "index",
+ "format": "Warning: Phone book approve fail because %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_TCM_CMD_CONFLICT_DUE_TO_CFUN_STATE": {
+ "apiType": "index",
+ "format": "Warning: tcm cmd conflict due to cfun_state!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_TCM_CMD_CONFLICT_DUE_TO_SET_RAT_MODE_DETACH": {
+ "apiType": "index",
+ "format": "Warning: tcm cmd conflict due to SET_RAT_MODE_DETACH!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_TCM_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: tcm cmd conflict !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_ABORT_PDP_ACTIVATION_WITH_CID": {
+ "apiType": "index",
+ "format": "cid(%d) is activating, let CGACT=0 pass to abort it!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_ABORT_PDP_ACTIVATION_STATE": {
+ "apiType": "index",
+ "format": "cid(%d): ext_pdp_activating[]=%d, ext_pdp_src_id[]=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_GPRS_STRING_VALID_CMD_NOT_ALLOWED": {
+ "apiType": "index",
+ "format": "Warning: gprs string valid ,but cmd not allowed",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4CUPS_PORT_ACTIVATE_CNF_FAILURE": {
+ "apiType": "index",
+ "format": "l4cups_port_activate_cnf_hdlr - fail!!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4CUPS_PORT_MAYBE_NOT_AVALIABLE": {
+ "apiType": "index",
+ "format": "port=%d is not owned by L4C, real_owner=%Mmodule_type, rmmi_current=%Mmodule_type, PS_UART_PORT=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_PHB_APPROVE_BY_MMI_FAILURE": {
+ "apiType": "index",
+ "format": "custom_phb_xmgnt_approve_fdn(l4c_operation=d, cause=%d) return KAL_FALSE",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SPECIAL_CAUSE_HDLR": {
+ "apiType": "index",
+ "format": "SPECIAL CAUSE HANDLER : cid:%d, cause: %Mps_cause_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_INVALID_BINDING_ID": {
+ "apiType": "index",
+ "format": "[WARNING] INVALID binding_id",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_INVALID_OP_WHEN_FALLBACK": {
+ "apiType": "index",
+ "format": "[WARNING] INVALID operation, IPv4v6 fallback is ongoing, can't deact fallback target %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_HIT_ERROR_HANDLING": {
+ "apiType": "index",
+ "format": "[WARNING] Hit Error Handling Case, Please Check This !!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CID_IS_INACTIVE_OR_NOT_SECONDARY": {
+ "apiType": "index",
+ "format": "[WARNING] CID is inactive or not secondary",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4CPS_CANNOT_GET_QCI_BY_CONTEXT_ID": {
+ "apiType": "index",
+ "format": "[WARNING] L4C: l4c_ps_get_qci_by_context_id returns NULL, Please Check This",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_INVALID_IRAT_RESULT": {
+ "apiType": "index",
+ "format": "[WARNING] INVALID I-RAT Result %Mirat_result_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_INVALID_CONTEXT_TYPE": {
+ "apiType": "index",
+ "format": "[WARNING] C2K bring wrong context_type",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_WRONG_IP_ADDR_LEN": {
+ "apiType": "index",
+ "format": "[WARNING] wrong IP_ADDR_LEN",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_EI3GPPIRAT_IN_WORNG_STATE": {
+ "apiType": "index",
+ "format": "[WARNING] EI3GPPIRAT in non-iRAT state",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_FORCE_PERFORM_IRAT_WITHOUT_WAIT_EI3GPPIRAT": {
+ "apiType": "index",
+ "format": "[WARNING] Force perform L2C IRAT without waiting AT+EI3GPPIRAT=1",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_GET_NW_APPLIED_PDP_ADDR_FAIL": {
+ "apiType": "index",
+ "format": "[WARNING] l4ctcm_get_nw_applied_pdp_addr fail",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_GET_BINDING_CH_FAIL": {
+ "apiType": "index",
+ "format": "[WARNING] l4ctcm_get_binding_channel fail",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_C2K_INVALID_CONTEXT_ID": {
+ "apiType": "index",
+ "format": "[WARNING] L4C_CONTEXT_ID_IS_INVALID",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_C2K_IRAT": {
+ "apiType": "index",
+ "format": "[WARNING] C2K <-> LTE inter-RAT ongoing ",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_EQ_FS_RETURN_ERROR": {
+ "apiType": "index",
+ "format": "Warning: EQ fs action: %d return: %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SMSAL_UNEXPECTED_MTI": {
+ "apiType": "index",
+ "format": "Warning: the MTI is not the expected value",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_FD_INVALID_INACTIVITY_TIMER_ID": {
+ "apiType": "index",
+ "format": "[FD]Warning: Invalid Inactivity TID: %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RF_ON_FAIL": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: RF on fail, RAC RAT: %Mrat_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ROOT_SRC_ID_INTERRUPT": {
+ "apiType": "index",
+ "format": "[L4C][ROOT]Current root_src_id=%d, interrupt scr_id=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ROOT_ACTION_INTERRUPT": {
+ "apiType": "index",
+ "format": "[L4C][ROOT]Current root_action=%Ml4c_root_action_enum, interrupt root_action=%Ml4c_root_action_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_INVALID_DUPLEX_MODE_CHANGE_REQUEST": {
+ "apiType": "index",
+ "format": "Warning: requested duplex mode is not supported! WORLD_MODE: 0x%x (Format: 0|0|Lf|Lt|W|C|T|G), request mode: 0x%x",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RF_ON_FAIL_DUE_TO_MD3_EPOF": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: RF on fail due to MD3 EPOF!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CFUN0_DURING_POWERON_EXE": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: CFUN=0 is processing during POWERON_EXE",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CSRA_CONFLICT": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: change cfun fail",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_NO_MATCH_CFUN_STATE": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: no match state",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CC_ACTION": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: cc action not null",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RAT_MODE_NONE": {
+ "apiType": "index",
+ "format": "[L4C][NW]Warning: RAT mode is none",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SIM_POWEROFF_RETRY_REACH_MAX": {
+ "apiType": "index",
+ "format": "[L4C]Warning: poweroff_retry reach maximum, turn off modem directly",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CLEAR_PREVIOUS_RAC_ACTION": {
+ "apiType": "index",
+ "format": "[L4C] Clear previous RAC action: %Ml4c_action_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RSIM_AUTH_ONGOING": {
+ "apiType": "index",
+ "format": "[L4C][RSIM][NW]Warning: RSIM Authentication is ongoing",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_UPDATE_AUTO_ATTACH_FAIL": {
+ "apiType": "index",
+ "format": "[L4C] Failed to update auto_attach flag",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SAT_CALL_CTRL_WRONG_STATE": {
+ "apiType": "index",
+ "format": "[SAT] Call Control State Warning: %Msat_call_ctrl_type_noti_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CGDATA_GPRS_DIALUP_IS_NOT_ALLOWED": {
+ "apiType": "index",
+ "format": "Warning: l4c cmd_conflict: CGDATA GPRS dialup is not allowed when RFOFF/RAT_MODE_DETACH",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CGDATA_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: l4c cmd_conflict: CGDATA tcm or rac cmd conflict",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_NO_GPRS_DIALUP_CAN_BE_DICONNECTED": {
+ "apiType": "index",
+ "format": "Warning: No GPRS dialup can be disconnected from RMMI!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ERROR": {
+ "apiType": "index",
+ "format": "Warning: error",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_USBUART2_IS_ALREADY_OPENED": {
+ "apiType": "index",
+ "format": "uart_port_usb2 is already opened by AT, cid=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_NO_FREE_CHANNEL": {
+ "apiType": "index",
+ "format": "No free rmmi channel is found!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_MMS_FOLDER_STATUS_OUTPUT_REQ_DROP_RESULT_CODE": {
+ "apiType": "index",
+ "format": "Warning: l4c_mms_folder_status_output_req drop result code",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_MMS_UPLOAD_MSG_OUTPUT_REQ_DROP_RESULT_CODE": {
+ "apiType": "index",
+ "format": "Warning: l4c_mms_upload_msg_output_req drop result code",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_MMS_DELETE_MSG_REQ_DROP_RESULT_CODE": {
+ "apiType": "index",
+ "format": "Warning: l4c_mms_delete_msg_output_req drop result code",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_MMS_READ_MSG_PATH_REQ_DROP_RESULT_CODE": {
+ "apiType": "index",
+ "format": "Warning: l4c_mms_read_msg_path_res_req drop result code",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_MMI_JAVA_LOCAL_INSTALL_RES_REQ_DROP_RESULT_CODE": {
+ "apiType": "index",
+ "format": "Warning: l4c_mmi_java_local_install_res_req drop result code",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SOMETHING_STILL_IN_L4C_KBD_BUFFER": {
+ "apiType": "index",
+ "format": "Warning: Something still in l4c_kbd_buffer. windex=%d ,rindex=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_UART_OWNER_IS_NOT_L4C": {
+ "apiType": "index",
+ "format": "Warning: l4c_eq_usbuart_switch_port_req(): ERROR!! UART owner is not L4C ,owner is %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_INVALID_KEY": {
+ "apiType": "index",
+ "format": "Warning: invalid key",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_ABORT_PLMN_LIST_REQ_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: abort_plmn_list_req cmd conflict",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EFPUCT_IS_NOT_VALID": {
+ "apiType": "index",
+ "format": "Warning: EFpuct is not valid",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_NOT_VALID_SIM_OPERATION_STRING": {
+ "apiType": "index",
+ "format": "Warning: not a valid sim operation string",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_PHB_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: phb cmd conflict !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SMS_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: sms_cmd_conflict",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SMS_CMD_CONFLICT_SMS_ACTION_IS_NOT_ALLOWED": {
+ "apiType": "index",
+ "format": "Warning: sms_cmd_conflict , sms action is not allowed while background action",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SMS_CMD_CONFLICT_CUFN_STATE_IS_NOT_EQUAL_TO_1": {
+ "apiType": "index",
+ "format": "Warning: sms cmd conflict : cufn_state is not equal to 1",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RAC_CMD_CONFLICT_DUE_TO_CFUN_STATE": {
+ "apiType": "index",
+ "format": "Warning: rac cmd conflict due to cfun_state!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RAC_CMD_CONFLICT_DUE_TO_CALL_EXIST": {
+ "apiType": "index",
+ "format": "Warning: rac cmd conflict due to call exist!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RAC_CMD_CONFLICT_DUE_TO_IMS_CALL_EXIST": {
+ "apiType": "index",
+ "format": "Warning: rac cmd conflict due to IMS call exist!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RAC_CMD_CONFLICT_DUE_TO_NOT_ACTIVATE": {
+ "apiType": "index",
+ "format": "Warning: rac cmd conflict due to rac not activated!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_RAC_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: rac cmd conflict !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_SMU_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: smu cmd conflict !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_ACTION_AND_RAC_CURRENT_ACTION": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : action = ABM_ACT_APP , rac_current_action= PWROFF_DETACH",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_ACFUN_STATE": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : cfun_state=%hd",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_SIM_REFRESH": {
+ "apiType": "index",
+ "format": "Warning: comand conflict : sim_refresh= TRUE",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMD_CONFLICT_INCLUDE_CRSS_OPCODE_AND_SIM_REFRESH": {
+ "apiType": "index",
+ "format": "Warning: command conlict : L4C_PTR->crss_opcode=%Mcsmcc_crss_req_enum , L4C_PTR->sim_refresh=%hd",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_FILE_ERROR": {
+ "apiType": "index",
+ "format": "Warning: file error",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_WRONG_FUNCTION": {
+ "apiType": "index",
+ "format": "Warning: WRONG FUNCTION !!\\n",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_WRITE_FILE_FAIL": {
+ "apiType": "index",
+ "format": "Warning: Write FILE Fail!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_UART_INPUT_QUEUE_FULL": {
+ "apiType": "index",
+ "format": "Warning: RMMI uart_input_queue Full!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_CMUX_NOT_ENABLE_CURRENT_SRC_SHOULD_BE_RMMI_SRC": {
+ "apiType": "index",
+ "format": "Warning: CMUX not enable, current_src should be RMMI_SRC",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_LG_DB_OPEN_FAIL": {
+ "apiType": "index",
+ "format": "Warning: log.db open fail",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_TST_LOST_ONE_CMD": {
+ "apiType": "index",
+ "format": "Warning: tst lost one command !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_DATA_CALL_INVALID_CID": {
+ "apiType": "index",
+ "format": "Warning: data call cid is invalid",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EQ_CMD_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: EQ cmd conflict! ",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EQ_SRNTCH_FAILED": {
+ "apiType": "index",
+ "format": "Warning: EQ screen touch return: %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EQ_SCRN_PARA_GET_FAILED": {
+ "apiType": "index",
+ "format": "Warning: EQ screen parameter query return: %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_PLUGOUT_SRCID_IS_NOT_MATCH": {
+ "apiType": "index",
+ "format": "Warning: plugout_srcid(%d) is not match cid(%d) ",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ATCI_STATE_WRONG": {
+ "apiType": "index",
+ "format": "Warning: state wrong, ATCI state=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ATCI2_STATE_WRONG": {
+ "apiType": "index",
+ "format": "Warning: state wrong, ATCI2 state=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SCRI_REQ_NOT_SENT": {
+ "apiType": "index",
+ "format": "Warning: End PS data senssion req not sent (debug idx: %d, AFR retry: %d)",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_CELL_INFO_UNREG": {
+ "apiType": "index",
+ "format": "Warning: dereg non-reg module: %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_NULL_POINTER_CHECK": {
+ "apiType": "index",
+ "format": "Warning: get NULL pointer",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SIM_DOUBLE_POWEROFF": {
+ "apiType": "index",
+ "format": "Trying to POWER OFF SIM while L4C is just turning off SIM",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SIM_START_IN_POWEROFF_STATE": {
+ "apiType": "index",
+ "format": "SIM is started during L4C poweroff SIM, MSG is ignored",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_DROP_MSG_ON_WRONG_ACTION_STATE": {
+ "apiType": "index",
+ "format": "MSG is droped due to inconsistency action",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_INVALID_SRCID_CHECK": {
+ "apiType": "index",
+ "format": "Warning: L4C src_id check with an invalid value=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_VSIM_EF_META_OVERSIZE": {
+ "apiType": "index",
+ "format": "Warning: the VSIM EF meta oversize",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_VSIM_EF_DATA_OVERSIZE": {
+ "apiType": "index",
+ "format": "Warning: the VSIM EF meta oversize",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SIM_RESET_DURING_MODEM_POWEROFF": {
+ "apiType": "index",
+ "format": "Warning: Skip SIM reset during modem poweroff",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SIM_CARD_TYPE_SWITCHING": {
+ "apiType": "index",
+ "format": "Warning: SIM card type switching is running",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_SET_RAT_MODE_CONFLICT_DUE_TO_IRAT_NOT_FINISHED": {
+ "apiType": "index",
+ "format": "Warning: set rat mode conflict due to IRAT is not finished!!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_IGNORE_REGIONAL_PHONE_REQ": {
+ "apiType": "index",
+ "format": "Warning: Regional phone mode is updating",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_CHECK_AKA_AUTH_RESOURCE": {
+ "apiType": "index",
+ "format": "Warning: check AKA AUTH state: auth_aka_state = %d, current action = %Ml4c_rsim_pending_action_enum, cfun_state=%d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_ENQUEUE_FAILED": {
+ "apiType": "index",
+ "format": "Warning: L4C failed to enqueue pending action: %Ml4c_pending_action_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_OMIT_REPEAT_ACTION": {
+ "apiType": "index",
+ "format": "Warning: omit repeated action",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_PROTOCOL_NOT_SUPPORTED": {
+ "apiType": "index",
+ "format": "[L4C] Warning: PS %d is not supported",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_ABORT_SERVICE_MODE_CHANGE": {
+ "apiType": "index",
+ "format": "[L4C] Abort service mode change because of current action: %Ml4c_action_enum, sim_status: %Msmu_sim_inserted_enum",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_CO_DECK_PRODUCT": {
+ "apiType": "index",
+ "format": "Warning: co-deck product",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_APDU_LEN_ERROR": {
+ "apiType": "index",
+ "format": "CMD DATA LENGTH Inconsistent curr_length = %d offset = %d total_length = %d",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_UNEXPECTED_SIM_PARA_DATA": {
+ "apiType": "index",
+ "format": "Unexpected SIM Parameter data",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_UE_CAPABILITY_IND_PROCEDURE_CONFLICT": {
+ "apiType": "index",
+ "format": "Warning: UE Capability Action conflict !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_UE_CAPABILITY_IND_PROCEDURE_ONGOING": {
+ "apiType": "index",
+ "format": "Warning: UE Capability Action ongoing !!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EONS_FREE_EXISTING_TABLE": {
+ "apiType": "index",
+ "format": "[EONS]Existing EONS table (%Meons_file_idx_enum) free buffer!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_DOWNGRADE_SERVICE_START": {
+ "apiType": "index",
+ "format": "[L4C] Launch downgrade service procedure",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_RECOVERY_SERVICE_START": {
+ "apiType": "index",
+ "format": "[L4C] Launch recovery service procedure",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_L4C_NO_ECALL_NUMBER_AVAILABLE": {
+ "apiType": "index",
+ "format": "[L4C] Warning: No eCall number available",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EONS_START_ONGOING": {
+ "apiType": "index",
+ "format": "[EONS] Start already Ongoing!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "WARNING_EONS_INIT_ONGOING": {
+ "apiType": "index",
+ "format": "[EONS]Init already Ongoing!",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "ERROR_L4_SNPRINTF_FAIL": {
+ "apiType": "index",
+ "format": "[L4] l4_snprintf fail!",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_PHB_APPROVE_STRING_EXCEEDING": {
+ "apiType": "index",
+ "format": "Error: Construct PHB approve string=%hd",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_PHB_STARTUP_FAIL": {
+ "apiType": "index",
+ "format": "PHB startup FAIL! result cause: %Mphb_errno_enum",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_SET_PS_DIALUP_PORT_WITH_INVALID_CID": {
+ "apiType": "index",
+ "format": "L4C ERROR!! l4c_ps_dialup_set_port2cid() with invalid cid=%hd",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_GET_PS_DIALUP_PORT_WITH_INVALID_CID": {
+ "apiType": "index",
+ "format": "L4C ERROR!! l4c_ps_dialup_get_port() with invalid cid=%hd",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_FREE_PDP_CONTEXT_WITH_INVALID_CID": {
+ "apiType": "index",
+ "format": "L4C ERROR!! l4c_free_pdp_context() with invalid cid=%hd",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "ERROR_L4C_EQ_NVRAM_NULL_POINTER": {
+ "apiType": "index",
+ "format": "L4C ERROR!! Get null pointer",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_EQ_NVRAM_OVERFLOW": {
+ "apiType": "index",
+ "format": "L4C ERROR!! Length overflow",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_SMS_SMSAL_INIT_FAIL": {
+ "apiType": "index",
+ "format": "SMSAL init FAIL! result cause: %Msmsal_errno_enum, SMS function will have problems",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_SMS_GENERAL_ERROR": {
+ "apiType": "index",
+ "format": "L4C SMS ERROR!",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_INVALID_PORT": {
+ "apiType": "index",
+ "format": "Invalid port !",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_GET_SWITCHED_SIM_ID_INVALID": {
+ "apiType": "index",
+ "format": "L4C ERROR!! l4c_gemini_get_switched_sim_id(simId=%d) got invalid ps_id=%d, caller=%Mmodule_type",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_L4C_NVRAM_STATE": {
+ "apiType": "index",
+ "format": "Error: State error",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_RMMI_CC_NOT_STARTUP": {
+ "apiType": "index",
+ "format": "Error: CSMCC not startup yet",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_CKPD_INPUT_FORMAT_ERROR": {
+ "apiType": "index",
+ "format": "There are something wrong in the AT+CKPD input string",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_CMGL_NOT_END_BUT_ERROR": {
+ "apiType": "index",
+ "format": "Error: cmgl not end but error",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_SBP_GUARD_TIMER_EXPIRED": {
+ "apiType": "index",
+ "format": "Error: SBP guard timer is expired, force to next step !!!",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_SBP_MOD_WITHOUT_CNF": {
+ "apiType": "index",
+ "format": "Error: no L4C_ME_DSBP_RECONFIGURE_CNF from module %Mmodule_type !!!",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "ERROR_SBP_MOD_UNEXPECTED_CNF": {
+ "apiType": "index",
+ "format": "Error: received unexpected L4C_ME_DSBP_RECONFIGURE_CNF from module %Mmodule_type !!!",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "L4C_CC_PARA": {
+ "apiType": "index",
+ "format": "cc_parameter[%Ml4c_source_id_enum].length=%hd",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "L4C_SS_PARA": {
+ "apiType": "index",
+ "format": "ss_parameter.length=%hd",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "CC_PEER_BUF": {
+ "apiType": "index",
+ "format": "cc_peer_buf.length=%hd",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "FAX_SRC_ID_INFO": {
+ "apiType": "index",
+ "format": "L4C_PTR->fax_src_id = %hd",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "CPI_INFO_TYPE": {
+ "apiType": "index",
+ "format": "+ECPI: %Mcsmcc_cpi_msg_type_enum ,call_id=%hd,retry_ongoing_flag=%hd,mo_call_id=%hd",
+ "traceClass": "TRACE_GROUP_1"
+ }
+ },
+ {
+ "CTM_CURRENT": {
+ "apiType": "index",
+ "format": "[CTM current] ctm_current_action = %Ml4c_action_enum, ctm_user = %Ml4c_source_id_enum",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "CTM_CONTEXT": {
+ "apiType": "index",
+ "format": "[CTM context] is_ctm_connected = %d, connected_src_id = %Ml4c_source_id_enum, is_gpio_plug = %d",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "L4C_MMI_UCM_HF_CIEV_REQ": {
+ "apiType": "index",
+ "format": "l4c_mmi_ucm_hf_ciev_req(),ind_type=%Mrmmi_cind_enum,event=%d",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "L4C_MMI_UCM_RCODE_REQ": {
+ "apiType": "index",
+ "format": "l4c_mmi_ucm_rcode_req(),source_id=%Ml4c_source_id_enum,type=%Mrmmi_rcode_type_enum,call_id=%d",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "L4C_MMI_UCM_AT_RES_REQ": {
+ "apiType": "index",
+ "format": "l4c_mmi_ucm_at_res_req(),source_id=%Ml4c_source_id_enum,result=%d,cause=%Mrmmi_ucm_cause_enum",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "ATD_GPRS_DIALUP_ATTEMPT_BUT_FAIL": {
+ "apiType": "index",
+ "format": "ATD gprs dialup attempt but fail,src_id =%hd,port=%hd",
+ "traceClass": "TRACE_GROUP_2"
+ }
+ },
+ {
+ "HZ_STATE": {
+ "apiType": "index",
+ "format": "[HZ state] hz_sim_status = %Mhz_sim_status_enum, is_dedicated_mode = %d, is_is_pkt_transfer_mode = %d",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "HZ_CURRENT": {
+ "apiType": "index",
+ "format": "[HZ current] current_lac[0] = %d, current_lac[1] = %d, current_cell_id = %d, current_gsm_status = %d, current_hz_number = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "HZ_PARA": {
+ "apiType": "index",
+ "format": "[HZ para %d] a_flag = %d, is_cz = %d, xh= %d, yh = %d, r2h = %d, sim_c_size = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "HZ_CACHE": {
+ "apiType": "index",
+ "format": "[HZ cache %d] sim_cache[%d].lac[0] = %d, lac[1] = %d, cell_id = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "HZ_OTHER": {
+ "apiType": "index",
+ "format": "[HZ other] dynamic_cache_lastest = %d, dynamic_cache_size = %d, queue_cb = %d, queue_xc = %d, queue_yc = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "GPS_DESENSE_INFO_REQ": {
+ "apiType": "index",
+ "format": "[GPS Desense] set mode=%hd",
+ "traceClass": "TRACE_GROUP_5"
+ }
+ },
+ {
+ "EM_ADD_UPDATE_LIST": {
+ "apiType": "index",
+ "format": "Add mod_id:%d in the update_list",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "EM_EVENT_FOUND_IN_MAPPING_TABLE": {
+ "apiType": "index",
+ "format": "Event found in em_info_req_mod_tbl[%d],mod_id=%d,event=%d",
+ "traceClass": "TRACE_GROUP_6"
+ }
+ },
+ {
+ "EM_NO_MODULE_MAP_TO_EVENT": {
+ "apiType": "index",
+ "format": "No module mapped to em event :%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "L4_NVRAM_EXTERNAL_READ_DATA": {
+ "apiType": "index",
+ "format": "NVRAM external read data:0x%X",
+ "traceClass": "TRACE_GROUP_4"
+ }
+ },
+ {
+ "INFO_ALARM_RECURR": {
+ "apiType": "index",
+ "format": "rmmi_cala_hdlr(), alarm.recurr= 0x%X",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ANY_CMD_AFTER_CKPD_IN_MULTI_CMD_IS_NOT_ALLOWED": {
+ "apiType": "index",
+ "format": "RMMI ERROR: Any command coming after +CKPD in a multiple command line is not allowed",
+ "traceClass": "TRACE_GROUP_3"
+ }
+ },
+ {
+ "MCF_ETWS_CONTROL_BITMAP": {
+ "apiType": "index",
+ "format": "Bit Map Value for Protocol Stack %d is %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "SMS_DATA_NULL": {
+ "apiType": "index",
+ "format": "Warning: SMS DATA is NULL. No Indication will be sent to AP",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "CB_DATA_NULL": {
+ "apiType": "index",
+ "format": "Warning: CB DATA is NULL. No Indication will be sent to AP",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "LOAD_NVRAM_HVOLTE_CONFIG": {
+ "apiType": "index",
+ "format": "load nvram hvolte config, nvram_hvolte_e911_ptr->hvolte_enable=%Mhvolte_enable_status_enum, l4c_ptr->hvolte_enable=%Mhvolte_enable_status_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "WARNING_L4C_VDM_FREE_L4B_TRANSACTION_ERROR": {
+ "apiType": "index",
+ "format": "[L4C_VDM] Warning: free L4B transaction ERROR",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "FUNC_L4C_VDM_GET_L4B_TRANSACTION": {
+ "apiType": "index",
+ "format": "[L4C_VDM]l4c_vdm_get_l4b_transaction() result is %Mkal_bool",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "L4C_VDM_FREE_L4B_TRANSACTION_SUCCESS": {
+ "apiType": "index",
+ "format": "[L4C_VDM]l4c_vdm_free_l4b_transaction() is SUCCESS",
+ "traceClass": "TRACE_WARNING"
+ }
+ },
+ {
+ "INFO_CS_CALL_STATE_TO_SCP": {
+ "apiType": "index",
+ "format": "CS call_state to scp = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SCP_MONITOR_STATUS": {
+ "apiType": "index",
+ "format": "SCP monitor status:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SBP_ECSRA_ONGOING": {
+ "apiType": "index",
+ "format": "[SBP] ECSRA is ongoing! Not allow DSBP",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CBMI_DUP_INFO": {
+ "apiType": "index",
+ "format": "[CSCB]%d is is already there in context , no need to add",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CBMI_LIMIT": {
+ "apiType": "index",
+ "format": "[CSCB]Here CB channels from AP and CB channels in context exceeds maximum number",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CBMI_REMOVE": {
+ "apiType": "index",
+ "format": "[CSCB]%d is exists in context ,We got a request to remove it --> need to remove",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CBMIR_REMOVE": {
+ "apiType": "index",
+ "format": "[CSCB]%d to %d range exists in context ,We got a request to remove it --> need to remove",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CBCH_MODE": {
+ "apiType": "index",
+ "format": "[CSCB]We got a request to ADD/REMOVE CB channels MODE: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CSCB_ERROR": {
+ "apiType": "index",
+ "format": "[CSCB]Error cause is = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_NON_3GPP_POLICY_INDICATOR": {
+ "apiType": "index",
+ "format": "[L4C][N3EN]l4c=%d, msg=%d, urc_mode=%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "ERROR_L4C_INVALID_SIG_TYPE": {
+ "apiType": "index",
+ "format": "[L4C] Invalid Signal Type = %d",
+ "traceClass": "TRACE_ERROR"
+ }
+ },
+ {
+ "INFO_IMS_REG_TIMEOUT_VONR": {
+ "apiType": "index",
+ "format": "l4crac_ims_reg_timeout_ind_hdlr: VoNR register timeout, still keep in VOPS mode",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_HVOLTE_VOPS_MODE_BY_NR_CELL": {
+ "apiType": "index",
+ "format": "[L4C][hVolte] switch to VOPS by camping on NR cell",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_UICC_NOT_ACT_NOT_HVOLTE_MODE_SWITCH": {
+ "apiType": "index",
+ "format": "UICC not activated yet, do not swtich hvolte mode",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_LOAD_HVOLTE_E911_CONFIG": {
+ "apiType": "index",
+ "format": "l4c_load_hvolte_e911_config()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_HVOLTE_CONTEXT": {
+ "apiType": "index",
+ "format": "[L4][hVolte]: enable:%Mhvolte_enable_status_enum, mode:%Mhvolte_mode_enum, ct_volte_support:%d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_HVOLTE_CONTEXT_NOT_LOADED": {
+ "apiType": "index",
+ "format": "[L4][hVolte]: not load hVolte context yet",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CONSIDER_MO_DISC_CAUSE": {
+ "apiType": "index",
+ "format": "Consider MO DISC CAUSE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CONSIDER_CEER_REP_CAUSE": {
+ "apiType": "index",
+ "format": "Consider CEER REPORT CAUSE",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SAVE_MO_DISC_CAUSE": {
+ "apiType": "index",
+ "format": "SAVE MO DISC CAUSE = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_CLEAR_MO_DISC_CAUSE": {
+ "apiType": "index",
+ "format": "CLEAR MO DISC CAUSE = %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_SRVCC_UPDATE_BY_CEVDP_FAILURE": {
+ "apiType": "index",
+ "format": "Fail to update srvcc by AT+CEVDP",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_MS_BLACK_CELL_L4C_STATE": {
+ "apiType": "index",
+ "format": "[L4C][BLACKCELL] mmrr_ready_flag: %d, rac_active: %d, smu_active: %d, cfun_state: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_PORTLOCK_NVRAM_LID_MISMATCH": {
+ "apiType": "index",
+ "format": "[PORTLOCK]Mismatch in NVRAM LID value. Expected: %d Received: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_MS_BLACK_CELL_L4C_INIT_STATE": {
+ "apiType": "index",
+ "format": "[L4C][BLACKCELL] cur_transaction_id: %d, rac_active: %d, black_list_init_state: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_NRRC_STATE": {
+ "apiType": "index",
+ "format": "[L4C]current nrrc state: %Mindicated_nrrc_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_AFR_RAT": {
+ "apiType": "index",
+ "format": "AFR rat bitmap =0x%x",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_5GUW_TUW_STATE": {
+ "apiType": "index",
+ "format": "[5GUW] 5G UW tuw_state: %Mtuw_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_5GUW_UPDATE_STATE_ERRC_I2C_ENTRY": {
+ "apiType": "index",
+ "format": "[5GUW] l4c_nw_update_5guw_state_errc_idle_to_conn() 5G UW tuw_state: %Mtuw_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_5GUW_UPDATE_STATE_ERRC_C2I_ENTRY": {
+ "apiType": "index",
+ "format": "[5GUW] l4c_nw_update_5guw_state_errc_conn_to_idle() 5G UW tuw_state: %Mtuw_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_5GUW_UPDATE_STATE_ULI_DSPR_ENTRY": {
+ "apiType": "index",
+ "format": "[5GUW] l4c_nw_update_5guw_state_uli_disappear() 5G UW tuw_state: %Mtuw_state_enum",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_SET_PCO_5GUW_ALLOW_ENTRY": {
+ "apiType": "index",
+ "format": "[5GUW] l4c_nw_set_pco_5guw_allow() tuw_state: %Mtuw_state_enum, old_5guw_allowed: %Mkal_bool, new_5guw_allowed: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_5GUW_SET_UW_CONFIG_ENTRY": {
+ "apiType": "index",
+ "format": "[5GUW] l4c_nw_5guw_set_is_ultra_wb_configure() tuw_state: %Mtuw_state_enum, old_is_on_n77: %Mkal_bool, new_is_on_n77: %Mkal_bool, old_is_on_fr2: %Mkal_bool, new_is_on_fr2: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RECAL_5GUW_DSPL_RESULT": {
+ "apiType": "index",
+ "format": "[5GUW] is_dspl_5guw: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_RECAL_5GUW_DSPL_ENTRY": {
+ "apiType": "index",
+ "format": "[5GUW]l4c_nw_re_calculate_and_update_5guw_display()tuw_state: %Mtuw_state_enum, errc_state: %Mem_errc_state_enum, is_dspl_5guw: %Mkal_bool, 5guw_allowed: %Mkal_bool, is_on_n77: %Mkal_bool, is_on_fr2: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_NW_RESET_5GUW_CNTXT": {
+ "apiType": "index",
+ "format": "l4c_nw_reset_5guw_context()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_EPSFB_VONR_CALL_ESTABLISH": {
+ "apiType": "index",
+ "format": "[EPSFB] IMS call establishment: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_IS_EPSFB_NEEDED": {
+ "apiType": "index",
+ "format": "[EPSFB] l4c_is_epsfb_needed: ps_id: %Mprotocol_id_enum, source_rat: %Mrat_type_enum, target_rat: %Mrat_type_enum, ir_type: %Mirat_type_enum, result: %Mkal_bool",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "FUNC_L4C_CUSTOM_CONFIG_FD_SETTING": {
+ "apiType": "index",
+ "format": "l4c_custom_config_fd_setting()",
+ "traceClass": "TRACE_FUNC"
+ }
+ },
+ {
+ "INFO_L4C_PS_IS_EDALLOW_SET": {
+ "apiType": "index",
+ "format": "l4c_ps_is_data_allowed: is_data_allowed: %Mkal_bool, protocol_id: %d",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PS_CONF_TEST_PROFILE": {
+ "apiType": "index",
+ "format": "[L4C]ps_conf_test_profile = 0x%x, is_custom_fd_setting = %Mkal_bool, is_custom_full_fd_setting = %Mkal_bool ",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DSBP_PLMN_ID": {
+ "apiType": "index",
+ "format": "[L4C] DSBP PLMN ID = %s",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_FD_ALREADY_DISABLED": {
+ "apiType": "index",
+ "format": "[L4C] FD is already disabled. No Need for any modification.",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PLMN_CHECK_FAIL_FOR_FD": {
+ "apiType": "index",
+ "format": "[L4C] PLMN Check failed. Remove custom settings to enable FD again!!!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_PLMN_CHECK_FAIL_FOR_FULL_FD": {
+ "apiType": "index",
+ "format": "[L4C] PLMN Check failed. Remove custom settings to enable full R8 FD again!!!",
+ "traceClass": "TRACE_INFO"
+ }
+ },
+ {
+ "INFO_L4C_DRB_STATUS_UPDATE": {
+ "apiType": "index",
+ "format": "l4c DRB state change %d -> %d, report_mode: %d(rat bitmask)",
+ "traceClass": "TRACE_INFO"
+ }
+ }
+ ],
+ "traceFamily": "PS",
+ "userModule": ""
+}
\ No newline at end of file
diff --git a/mcu/protocol/interface/l4misc/l4aps_l4bpdn_struct.h b/mcu/protocol/interface/l4misc/l4aps_l4bpdn_struct.h
new file mode 100644
index 0000000..23a9839
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_l4bpdn_struct.h
@@ -0,0 +1,778 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4aps_l4bpdn_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ ****************************************************************************/
+
+
+#ifndef _L4APS_L4BPDN_STRUCT_H
+#define _L4APS_L4BPDN_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ddm_common_struct.h"
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+
+#include "ps_public_struct.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+
+#if 1 /* MSG: L4APS -> L4BPDN */
+/*********************************************************************************************************
+ * MSG: L4APS -> L4BPDN: Start *
+ *********************************************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_common_header_req_struct cmd;
+} l4aps_l4bpdn_cmd_common_header_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+ at_token_parse_result_enum cached_ff03_present;
+ kal_uint8 cached_ff03; // integer type
+} l4aps_l4bpdn_nw_applied_cache_data_notify_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdcont_req_struct cmd;
+ kal_uint8 psi;
+
+ /* Used for SSC Mode 3 PDU session re-restablishment in 5G. */
+ kal_bool old_psi_present;
+ kal_uint8 old_psi;
+
+ /* Used for L4 two params (URSP requirement).
+ * Condition:
+ * - If current is 5G-RAT and VGPDP/VGAPN is present (AT_TOKEN_PARSE_RESULT_OK)
+ -> Use the corresponding parameters in below
+ * - Otherwise: (non-5G-RAT or in 5G but VGPDP/VGAPN is NOT AT_TOKEN_PARSE_RESULT_OK
+ -> Use paramters in the above cmd (i.e., the normal CGDCONT command) . */
+ at_token_parse_result_enum VGPDP_type_parse_result;
+ kal_uint8 VGPDP_type[PDP_TYPE_STRING_LEN]; // string type
+ at_token_parse_result_enum VGAPN_parse_result;
+ kal_uint8 VGAPN[APN_STRING_LEN]; // string type
+
+ /* use to indicate is this dnn in ladn list */
+ at_token_parse_result_enum ladn_dnn_present;
+ kal_uint8 ladn_dnn; // integer type
+
+} l4aps_l4bpdn_cgdcont_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdscont_req_struct cmd;
+} l4aps_l4bpdn_cgdscont_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtft_req_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_cgtft_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqreq_req_struct cmd;
+} l4aps_l4bpdn_cgqreq_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqmin_req_struct cmd;
+} l4aps_l4bpdn_cgqmin_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqreq_req_struct cmd;
+} l4aps_l4bpdn_cgeqreq_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqmin_req_struct cmd;
+} l4aps_l4bpdn_cgeqmin_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqneg_req_struct cmd;
+} l4aps_l4bpdn_cgeqneg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgact_req_struct cmd;
+ ddm_apn_type_enum apn_type;
+} l4aps_l4bpdn_cgact_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgcmod_req_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_cgcmod_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgpaddr_req_struct cmd;
+} l4aps_l4bpdn_cgpaddr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauto_req_struct cmd;
+} l4aps_l4bpdn_cgauto_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgans_req_struct cmd;
+} l4aps_l4bpdn_cgans_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgerep_req_struct cmd;
+} l4aps_l4bpdn_cgerep_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgcontrdp_req_struct cmd;
+} l4aps_l4bpdn_cgcontrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgscontrdp_req_struct cmd;
+} l4aps_l4bpdn_cgscontrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtftrdp_req_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_cgtftrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqos_req_struct cmd;
+} l4aps_l4bpdn_cgeqos_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqosrdp_req_struct cmd;
+} l4aps_l4bpdn_cgeqosrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqos_req_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqos_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqosrdp_req_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqosrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdel_req_struct cmd;
+} l4aps_l4bpdn_cgdel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauth_req_struct cmd;
+ kal_uint8 psi;
+} l4aps_l4bpdn_cgauth_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cladn_req_struct cmd;
+} l4aps_l4bpdn_cladn_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_ecncfg_req_struct cmd;
+} l4aps_l4bpdn_ecncfg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egdcont_req_struct cmd;
+ kal_uint8 psi;
+} l4aps_l4bpdn_egdcont_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapnetmr_req_struct cmd;
+} l4aps_l4bpdn_vzwapnetmr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapne_req_struct cmd;
+} l4aps_l4bpdn_vzwapne_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpau_req_struct cmd;
+} l4aps_l4bpdn_egpau_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egact_req_struct cmd;
+ ddm_apn_type_enum apn_type;
+} l4aps_l4bpdn_egact_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgsdata_req_struct cmd;
+} l4aps_l4bpdn_cgsdata_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_acttest_req_struct cmd;
+} l4aps_l4bpdn_acttest_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_psbearer_req_struct cmd;
+} l4aps_l4bpdn_psbearer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egfb_req_struct cmd;
+} l4aps_l4bpdn_egfb_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egdelpf_req_struct cmd;
+} l4aps_l4bpdn_egdelpf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eglnkpf_req_struct cmd;
+} l4aps_l4bpdn_eglnkpf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpcordp_req_struct cmd;
+} l4aps_l4bpdn_egpcordp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpco_req_struct cmd;
+ kal_uint8 psi;
+} l4aps_l4bpdn_egpco_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdata_req_struct cmd;
+ network_interface_id_info_struct selected_network_interface_id_info;
+ apn_type_info_struct apn_type_info;
+} l4aps_l4bpdn_cgdata_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egld_req_struct cmd;
+} l4aps_l4bpdn_egld_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_edallow_req_struct cmd;
+} l4aps_l4bpdn_edallow_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_success;
+ kal_uint8 lte_attach_cid; /* used if (is_success == KAL_TRUE) */
+ ps_cause_enum err_cause; /* used if (is_success == KAL_FALSE) */
+} l4aps_l4bpdn_lte_attach_pdn_define_needed_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sim_slot_id;
+} l4aps_l4bpdn_set_default_sim_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_ims_roaming_enable;
+} l4aps_l4bpdn_set_eimsroam_config_value_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_common_header_req_struct cmd;
+ kal_uint32 dummy;
+} l4aps_l4bpdn_cmd_not_yet_support_req_struct; /* Only for UT */
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eapnsync_req_struct cmd;
+} l4aps_l4bpdn_eapnsync_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_evzwapfcia_req_struct cmd;
+} l4aps_l4bpdn_evzwapfcia_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eggrntrspt_req_struct cmd;
+} l4aps_l4bpdn_eggrntrspt_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpcap_req_struct cmd;
+} l4aps_l4bpdn_egpcap_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+ kal_uint32 apn_type; /* bit map refer to enum ddm_apn_type */
+} l4aps_l4bpdn_notify_pdn_type_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_escontind_ind_struct cmd;
+} l4aps_l4bpdn_escontind_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_escontind_req_struct cmd;
+} l4aps_l4bpdn_escontind_req_struct;
+
+/*********************************************************************************************************
+ * MSG: L4APS -> L4BPDN: End *
+ *********************************************************************************************************/
+#endif
+
+#if 1 /* MSG: L4BPDN -> L4APS */
+/*********************************************************************************************************
+ * MSG: L4BPDN -> L4APS: Start *
+ *********************************************************************************************************/
+/* A general purpose AT-CMD confirm message */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_cnf_struct cmd;
+
+ /* In the above field (cmd),
+ * if cmd.is_success == KAL_FALSE, the cmd.err_cause is a converted cause according to 27.007.
+ * The below original_cause is an "unconverted" counterpart for reference. */
+ kal_bool is_original_cause_from_3gpp_present; /* True: If (cmd.is_success == KAL_FALSE) AND (is from 3GPP MD) */
+ ps_cause_enum original_cause_from_3gpp; /* Valid if is_original_cause_from_3gpp_present == KAL_TRUE */
+
+} l4aps_l4bpdn_cmd_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgev_ind_struct cmd;
+
+ /* True: If (event is CGEV_EVENT_NW_PDN_DEACT or CGEV_EVENT_NW_DEACT or CGEV_EVENT_NW_REACT) AND (the CGEV is from 3GPP)
+ * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+ kal_bool is_cgev_deact_cause_from_3gpp;
+ ps_cause_enum cgev_deact_cause;
+
+ /* True: If (event is CGEV_EVENT_NW_MODIFY) AND (the CGEV is from 3GPP)
+ * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+ kal_bool is_cgev_modify_cause_from_3gpp;
+ ps_cause_enum cgev_modify_cause;
+} l4aps_l4bpdn_cgev_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdcont_ind_struct cmd;
+} l4aps_l4bpdn_cgdcont_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdscont_ind_struct cmd;
+} l4aps_l4bpdn_cgdscont_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtft_ind_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_cgtft_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqreq_ind_struct cmd;
+} l4aps_l4bpdn_cgqreq_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqmin_ind_struct cmd;
+} l4aps_l4bpdn_cgqmin_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqreq_ind_struct cmd;
+} l4aps_l4bpdn_cgeqreq_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqmin_ind_struct cmd;
+} l4aps_l4bpdn_cgeqmin_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqneg_ind_struct cmd;
+} l4aps_l4bpdn_cgeqneg_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgact_ind_struct cmd;
+} l4aps_l4bpdn_cgact_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgpaddr_ind_struct cmd;
+} l4aps_l4bpdn_cgpaddr_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauto_ind_struct cmd;
+} l4aps_l4bpdn_cgauto_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgerep_ind_struct cmd;
+} l4aps_l4bpdn_cgerep_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgcontrdp_ind_struct cmd;
+} l4aps_l4bpdn_cgcontrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgscontrdp_ind_struct cmd;
+} l4aps_l4bpdn_cgscontrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtftrdp_ind_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_cgtftrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqos_ind_struct cmd;
+} l4aps_l4bpdn_cgeqos_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqosrdp_ind_struct cmd;
+} l4aps_l4bpdn_cgeqosrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqos_ind_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqos_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqosrdp_ind_struct cmd;
+ kal_uint8 qfi;
+} l4aps_l4bpdn_c5gqosrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdel_ind_struct cmd;
+} l4aps_l4bpdn_cgdel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauth_ind_struct cmd;
+} l4aps_l4bpdn_cgauth_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cladn_ind_struct cmd;
+ kal_bool num_of_ladn_info_present;
+ kal_uint8 num_of_ladn_info;
+ kal_bool ladn_info_present;
+ ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4aps_l4bpdn_cladn_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cladnu_ind_struct cmd;
+ kal_bool num_of_ladn_info_present;
+ kal_uint8 num_of_ladn_info;
+ kal_bool ladn_info_present;
+ ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4aps_l4bpdn_cladnu_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_psbearer_ind_struct cmd;
+} l4aps_l4bpdn_psbearer_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egfb_ind_struct cmd;
+} l4aps_l4bpdn_egfb_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egdelpf_ind_struct cmd;
+} l4aps_l4bpdn_egdelpf_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eglnkpf_ind_struct cmd;
+} l4aps_l4bpdn_eglnkpf_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpcordp_ind_struct cmd;
+} l4aps_l4bpdn_egpcordp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpco_ind_struct cmd;
+} l4aps_l4bpdn_egpco_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_cnf_struct cmd;
+} l4aps_l4bpdn_cgdata_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_cnf_struct cmd;
+} l4aps_l4bpdn_egld_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egev_ind_struct cmd;
+} l4aps_l4bpdn_egev_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+} l4aps_l4bpdn_lte_attach_needed_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ /**
+ * KAL_TRUE: L4BPDN knows the eHRPD to LTE interRAT,
+ * so when L4BPDN detects currently it is an eHRPD to LTE interRAT scenario,
+ * L4 will suggest DDM to set handover flag
+ *
+ * Note: L4 only suggests DDM to set handover flag.
+ * DDM is the final decision maker and needs to consider other condistions.
+ *
+ * Ex. 1: L4 suggests DDM to set handover flag and DDM decides to use APN1 to do LTE ATTACH.
+ * However APN1 is not currently alive. In this case, DDM need to NOT SET handover flag
+ *
+ * Ex. 2: L4 suggests DDM to set handover flag and DDM decides to use APN1 to do LTE ATTACH.
+ * If APN1 get cause #54 during last LTE ATTACH, in this case DDM need to NOT SET handover flag
+ *
+ * Ex. 3: L4 suggests DDM to set handover flag and DDM decides to use APN1 to do LTE ATTACH.
+ * If APN1 get cause #54 during last LTE ATTACH, and DDM wants to use APN2 (alive) to do LTE ATTACH.
+ * in this case, DDM need to SET handover flag
+ */
+ kal_bool is_l4bpdn_suggested_to_set_handover;
+ plmn_id_struct current_plmn_id;
+} l4aps_l4bpdn_lte_attach_pdn_define_needed_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 lte_attach_cid;
+ kal_bool cause2_present;
+ ps_cause_enum err_cause2;
+ pdp_addr_type_enum nw_applied_pdp_type;
+} l4aps_l4bpdn_lte_attach_pdn_activate_success_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 lte_attach_cid;
+ ps_cause_enum cause;
+ kal_bool is_change_to_apn_class_present;
+ kal_uint8 change_to_apn_class;
+} l4aps_l4bpdn_lte_attach_pdn_activate_failure_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapne_ind_struct cmd;
+} l4aps_l4bpdn_vzwapne_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapnetmr_ind_struct cmd;
+} l4aps_l4bpdn_vzwapnetmr_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+ ip_addr_struct ip_addr;
+} l4aps_l4bpdn_pdn_modify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eapnsync_ind_struct cmd;
+} l4aps_l4bpdn_eapnsync_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_evzwapfcia_ind_struct cmd;
+} l4aps_l4bpdn_evzwapfcia_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eggrntrspt_ind_struct cmd;
+} l4aps_l4bpdn_eggrntrspt_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpcap_test_mode_ind_struct cmd;
+} l4aps_l4bpdn_egpcap_test_mode_ind_struct;
+
+typedef pam_backoff_timer_report_ind_struct l4aps_l4bpdn_backoff_timer_status_ind_struct;
+
+/*********************************************************************************************************
+ * MSG: L4BPDN -> L4APS: End *
+ *********************************************************************************************************/
+#endif
+
+#endif /* _L4APS_L4BPDN_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4aps_public_enum.h b/mcu/protocol/interface/l4misc/l4aps_public_enum.h
new file mode 100644
index 0000000..e7885d0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_public_enum.h
@@ -0,0 +1,84 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4aps_public_enum.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _L4APS_PUBLIC_ENUM_H
+#define _L4APS_PUBLIC_ENUM_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_enum.h"
+
+typedef enum
+{
+ L4APS_CAUSE_CATEGORY_UNKNOWN,
+ L4APS_CAUSE_CATEGORY_SM_NW_REJ,
+ L4APS_CAUSE_CATEGORY_ESM_NW_REJ,
+ L4APS_CAUSE_CATEGORY_VGSM_NW_REJ,
+} l4aps_cause_category_enum;
+
+typedef enum
+{
+ L4APS_RETRY_TYPE_NONE,
+ L4APS_RETRY_TYPE_IMMEDIATE,
+ L4APS_RETRY_TYPE_SUSPEND_RESUME,
+} l4aps_retry_type_enum;
+
+#endif /* _L4APS_PUBLIC_ENUM_H */
diff --git a/mcu/protocol/interface/l4misc/l4aps_public_utility.h b/mcu/protocol/interface/l4misc/l4aps_public_utility.h
new file mode 100644
index 0000000..ea4fb09
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_public_utility.h
@@ -0,0 +1,74 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4aps_public_utility.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _L4APS_PUBLIC_UTILITY_H
+#define _L4APS_PUBLIC_UTILITY_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "ps_public_enum.h"
+
+#include "l4aps_public_enum.h"
+
+/* This API is provided to DDM only to know the category of reject cause */
+l4aps_cause_category_enum l4aps_convert_cause_category(ps_cause_enum cause);
+
+#endif /* _DDM_L4APS_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4aps_tcm_struct.h b/mcu/protocol/interface/l4misc/l4aps_tcm_struct.h
new file mode 100644
index 0000000..fab6ae7
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4aps_tcm_struct.h
@@ -0,0 +1,69 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2019
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4aps_tcm_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ ****************************************************************************/
+
+#ifndef _L4APS_TCM_STRUCT_H
+#define _L4APS_TCM_STRUCT_H
+
+#if __GROUP_L4APS_TCM_INTERFACE_TYPEDEF_AREA__ || 1
+typedef ia_apn_change_req_struct l4aps_tcm_ia_apn_change_req_struct;
+#endif /* __GROUP_L4APS_TCM_INTERFACE_TYPEDEF_AREA__ */
+
+#if __GROUP_L4APS_TCM_INTERFACE_EXPLICIT_DEFINE_AREA__ || 1
+#endif /* __GROUP_L4APS_TCM_INTERFACE_EXPLICIT_DEFINE_AREA__ */
+
+#endif /* _L4APS_TCM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4b_atci_struct.h b/mcu/protocol/interface/l4misc/l4b_atci_struct.h
new file mode 100644
index 0000000..e14dcd1
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4b_atci_struct.h
@@ -0,0 +1,96 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l4b_atci_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _L4B_ATCI_STRUCT_H
+#define _L4B_ATCI_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l4b_internal_defs.h"
+#include "atp_public_defs.h"
+
+/* MSG_ID_L4B_ATCI_AT_CMD_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ l4b_channel_enum ch_id;
+} l4b_atci_at_cmd_req_struct;
+
+/* MSG_ID_L4B_ATCI_AT_CMD_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ l4b_channel_enum ch_id;
+ proxy_cmd_result_enum result;
+ kal_bool stuff;
+} l4b_atci_at_cmd_cnf_struct;
+
+/* MSG_ID_L4B_ATCI_AT_URC_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 ch_id;
+ kal_bool stuff;
+} l4b_atci_at_urc_ind_struct; //align to atp_l4b_at_urc_ind_struct
+
+/* MSG_ID_L4BPWR_ATCI_EPOF_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ l4b_channel_enum ch_id;
+} l4bpwr_atci_epof_req_struct;
+
+/* MSG_ID_L4BPWR_ATCI_EPOF_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ l4b_channel_enum ch_id;
+ proxy_cmd_result_enum result;
+} l4bpwr_atci_epof_cnf_struct;
+
+#endif /* _L4B_ATCI_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/l4bnw_l4c_struct.h b/mcu/protocol/interface/l4misc/l4bnw_l4c_struct.h
new file mode 100644
index 0000000..1aae8d2
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bnw_l4c_struct.h
@@ -0,0 +1,113 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4bnw_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:Allen Hsu
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ ****************************************************************************/
+
+
+#ifndef _L4BNW_L4C_STRUCT_H
+#define _L4BNW_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "rac_gmss_struct.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "atp_l4b_struct.h"
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+#include "l3_inc_local.h"
+#endif
+#include "l4c_common_enum.h"
+#include "ddm_l4bnw_struct.h"
+#include "rac2l4c_struct.h"
+
+typedef rac_gmss_suspend_egreg_update_ind_struct l4bnw_l4c_suspend_egreg_update_ind_struct;
+typedef rac_gmss_suspend_egreg_update_ind_struct l4bnw_l4c_suspend_egreg_update_cnf_struct;
+typedef l4crac_active_rat_ind_struct l4bnw_l4c_active_rat_ind_struct;
+typedef ddm_l4bnw_ps_type_config_req_struct l4bnw_l4c_ps_type_config_req_struct;
+typedef ddm_l4bnw_ps_type_config_cnf_struct l4bnw_l4c_ps_type_config_cnf_struct;
+typedef ddm_l4bnw_ps_reattach_config_req_struct l4bnw_l4c_ps_reattach_config_req_struct;
+typedef ddm_l4bnw_ims_pdn_rej_ind_struct l4bnw_l4c_ims_pdn_rej_ind_struct;
+
+
+typedef l4crac_reg_state_ind_struct l4bnw_l4c_reg_state_ind_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool protocol_lock;
+ l4c_imei_meid_action_enum lock_action;
+}l4bnw_l4c_imei_meid_lock_req_struct;
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct{
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn;
+ kal_uint8 carrier_id[6];
+}l4bnw_l4c_illegal_me_ind_struct;
+#endif
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_service_mode_op_enum op;
+} l4bnw_l4c_service_mode_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+} l4bnw_l4c_service_mode_cnf_struct;
+
+
+#endif /* _L4BNW_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4bnw_public_struct.h b/mcu/protocol/interface/l4misc/l4bnw_public_struct.h
new file mode 100644
index 0000000..69dafd9
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bnw_public_struct.h
@@ -0,0 +1,133 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4bnw_public_struct.h
+ *
+ *
+ * Description:
+ * ------------
+ * This is the header file of l4bnw_public_struct.c
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4BNW_PUBLIC_STRUCT_H
+#define _L4BNW_PUBLIC_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+#include "l3_inc_local.h"
+#endif
+#include "ps_public_enum.h"
+
+typedef struct {
+
+ /** Only expects the below values from rat_enum:
+ * RAT_NONE = 0,
+ * RAT_GSM = 1,
+ * RAT_UMTS = 2,
+ * RAT_LTE = 4,
+ * RAT_C2K = 16,
+ * RAT_1xRTT = 32,
+ * RAT_HRPD = 64,
+ */
+ rat_enum currently_attached_rat;
+ rat_enum cs_currently_attached_rat;
+
+ l4c_data_speed_support_enum data_speed_support;
+ l4c_data_speed_support_enum cs_data_speed_support;
+
+ kal_uint8 plmn[MAX_PLMN_LEN+1]; /* in string format, from +EOPS */
+ kal_uint8 cs_plmn[MAX_PLMN_LEN+1]; /* in string format, from +EOPS */
+
+ kal_uint32 lac; /* LAC or TAC within PS domain - 2/3/4G: 2-byte; 5G: 3-byte */
+ kal_uint32 cs_lac; /* LAC or TAC within CS domain - 2/3/4G: 2-byte; 5G: 3-byte */
+
+ kal_uint64 ci; /* from +CGREG */
+ kal_uint64 cs_ci; /* from +CREG */
+
+ kal_uint8 is_roaming;
+ kal_uint8 cs_is_roaming;
+
+ kal_uint8 ps_state; /* from +EGREG */
+ kal_uint8 cs_state; /* from +EREG */
+
+ kal_bool is_home_country;
+ kal_bool is_hplmn;
+
+ /* C2K cell info */
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint8 pzid;
+ kal_uint16 base_id;
+ kal_uint32 sector_id[4];
+ kal_uint8 subnet_length;
+ kal_uint8 carrier_id[7];
+ //kal_uint8 sid[IMC_MAX_SID_LEN]; /* in string format */
+ //kal_uint8 nid[IMC_MAX_NID_LEN]; /* in string format */
+ //kal_uint8 pzid[IMC_MAX_PZID_LEN]; /* in string format */
+ //kal_uint8 base_id[IMC_MAX_BASE_ID_LEN]; /* in string format */
+ //kal_uint8 sector_id[IMC_MAX_SECTOR_ID_LEN]; /* in string format */
+ //kal_uint8 subnet_length[IMC_MAX_SUBNET_LENGTH_LEN]; /* in string format */
+ //kal_uint8 carrier_id[IMC_MAX_CARRIER_ID_LEN]; /* in string format */
+} l4bnw_public_attached_network_info_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4bnw_public_attached_network_info_struct attached_network_info;
+} l4bnw_attached_rat_ind_struct, imsm_l4bnw_attached_rat_ind_struct, iwlan_l4bnw_attached_rat_ind_struct,ssds_l4bnw_attached_rat_ind_struct;
+
+#if (!defined(__MAUI_BASIC__)) && (!(defined(__NR_L1SIM__) || defined(__LTE_L1SIM__)))
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 barring_rat;
+ kal_uint16 barring_service;
+ plmn_id_struct plmn;
+ kal_uint8 carrier_id[6];
+} iwlan_l4bnw_force_bar_ind_struct;
+#endif
+
+#endif /* _L4BNW_PUBLIC_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/l4bnw_public_utility.h b/mcu/protocol/interface/l4misc/l4bnw_public_utility.h
new file mode 100644
index 0000000..2e1722a
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bnw_public_utility.h
@@ -0,0 +1,80 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4bnw_public_utility.h
+ *
+ *
+ * Description:
+ * ------------
+ * This is the header file of l4bnw_utility.c
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+#ifndef _L4BNW_PUBLIC_UTILITY_H_
+#define _L4BNW_PUBLIC_UTILITY_H_
+
+
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "l4b_internal_defs.h"
+#include "l4bnw_public_struct.h"
+
+extern l4bnw_public_attached_network_info_struct l4bnw_public_get_attached_network_info(); // TODO: to be phased-out
+extern kal_uint8 l4bpwr_public_get_old_efun_state();
+
+
+extern kal_bool l4bnw_public_is_registered_roaming(kal_uint8 ps_idx);
+
+extern kal_bool l4bnw_public_is_ps_registered_roaming(kal_uint8 ps_idx);
+
+extern kal_bool l4bnw_public_is_registered(kal_uint8 ps_idx);
+
+rat_enum l4bnw_public_get_user_rat_mode_by_ps_id(kal_uint8 ps_idx);
+
+extern kal_uint8 l4bnw_public_get_current_act_in_3gpp2();
+
+kal_bool l4bnw_public_get_plmn_service_info(kal_uint8 ps_idx, domain_id_enum service, kal_uint8 *plmn_id, kal_bool *in_service);
+rat_enum l4bnw_public_get_currently_attached_rat(kal_uint8 ps_idx);
+void l4bnw_public_get_cell_info(kal_uint8 ps_idx, l4bnw_cs_ps_cell_info_struct * cell_info);
+
+#endif /* _L4BNW_PUBLIC_UTILITY_H_*/
+
diff --git a/mcu/protocol/interface/l4misc/l4bpdn_l4c_struct.h b/mcu/protocol/interface/l4misc/l4bpdn_l4c_struct.h
new file mode 100644
index 0000000..c83a517
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bpdn_l4c_struct.h
@@ -0,0 +1,770 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4bpdn_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ ****************************************************************************/
+
+
+#ifndef _L4BPDN_L4C_STRUCT_H
+#define _L4BPDN_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "atcmd_struct.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "ddm_common_struct.h"
+
+#if 1 /* General purpose AT-CMD message */
+/*********************************************************************************************************
+ * General purpose AT-CMD: Start *
+ *********************************************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_common_header_req_struct cmd;
+} l4bpdn_l4c_cmd_common_header_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cmd_cnf_struct cmd;
+
+ /* In the above field (cmd),
+ * if cmd.is_success == KAL_FALSE, the cmd.err_cause is a converted cause according to 27.007.
+ * The below original_cause is an "unconverted" counterpart for reference. */
+ kal_bool is_original_cause_from_3gpp_present; /* True: If (cmd.is_success == KAL_FALSE) AND (is from 3GPP MD) */
+ ps_cause_enum original_cause_from_3gpp; /* Valid if is_original_cause_from_3gpp_present == KAL_TRUE */
+
+} l4bpdn_l4c_cmd_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgev_ind_struct cmd;
+
+ /* True: If (event is CGEV_EVENT_NW_PDN_DEACT or CGEV_EVENT_NW_DEACT or CGEV_EVENT_NW_REACT) AND (the CGEV is from 3GPP)
+ * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+ kal_bool is_cgev_deact_cause_from_3gpp;
+ ps_cause_enum cgev_deact_cause;
+
+ /* True: If (event is CGEV_EVENT_NW_MODIFY) AND (the CGEV is from 3GPP)
+ * False: If (event is not the above) OR (the CGEV is from 3GPP2) */
+ kal_bool is_cgev_modify_cause_from_3gpp;
+ ps_cause_enum cgev_modify_cause;
+
+} l4bpdn_l4c_cgev_ind_struct;
+/*********************************************************************************************************
+ * General purpose AT-CMD: End *
+ *********************************************************************************************************/
+#endif
+
+#if 1 /* MSG: L4PBDN -> L4C */
+/*********************************************************************************************************
+ * MSG: L4PBDN -> L4C: Start *
+ *********************************************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgpiaf_req_struct cmd;
+} l4bpdn_l4c_cgpiaf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+ at_token_parse_result_enum cached_ff03_present;
+ kal_uint8 cached_ff03; // integer type
+} l4bpdn_l4c_nw_applied_cache_data_notify_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdcont_req_struct cmd;
+ kal_uint8 psi;
+
+ /* Used for SSC Mode 3 PDU session re-restablishment in 5G. */
+ kal_bool old_psi_present;
+ kal_uint8 old_psi;
+
+ /* Used for L4 two params (URSP requirement).
+ * Condition:
+ * - If current is 5G-RAT and VGPDP/VGAPN is present (AT_TOKEN_PARSE_RESULT_OK)
+ -> Use the corresponding parameters in below
+ * - Otherwise: (non-5G-RAT or in 5G but VGPDP/VGAPN is NOT AT_TOKEN_PARSE_RESULT_OK
+ -> Use paramters in the above cmd (i.e., the normal CGDCONT command) . */
+ at_token_parse_result_enum VGPDP_type_parse_result;
+ kal_uint8 VGPDP_type[PDP_TYPE_STRING_LEN]; // string type
+ at_token_parse_result_enum VGAPN_parse_result;
+ kal_uint8 VGAPN[APN_STRING_LEN]; // string type
+
+ /* use to indicate is this dnn in ladn list */
+ at_token_parse_result_enum ladn_dnn_present;
+ kal_uint8 ladn_dnn; // integer type
+
+} l4bpdn_l4c_cgdcont_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdscont_req_struct cmd;
+} l4bpdn_l4c_cgdscont_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtft_req_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_cgtft_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqreq_req_struct cmd;
+} l4bpdn_l4c_cgqreq_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqmin_req_struct cmd;
+} l4bpdn_l4c_cgqmin_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqreq_req_struct cmd;
+} l4bpdn_l4c_cgeqreq_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqmin_req_struct cmd;
+} l4bpdn_l4c_cgeqmin_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqneg_req_struct cmd;
+} l4bpdn_l4c_cgeqneg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgact_req_struct cmd;
+ ddm_apn_type_enum apn_type;
+} l4bpdn_l4c_cgact_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgcmod_req_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_cgcmod_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdata_req_struct cmd;
+} l4bpdn_l4c_cgdata_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgpaddr_req_struct cmd;
+} l4bpdn_l4c_cgpaddr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauto_req_struct cmd;
+} l4bpdn_l4c_cgauto_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgans_req_struct cmd;
+} l4bpdn_l4c_cgans_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgerep_req_struct cmd;
+} l4bpdn_l4c_cgerep_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgcontrdp_req_struct cmd;
+} l4bpdn_l4c_cgcontrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgscontrdp_req_struct cmd;
+} l4bpdn_l4c_cgscontrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtftrdp_req_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_cgtftrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqos_req_struct cmd;
+} l4bpdn_l4c_cgeqos_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqosrdp_req_struct cmd;
+} l4bpdn_l4c_cgeqosrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqos_req_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_c5gqos_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqosrdp_req_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_c5gqosrdp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdel_req_struct cmd;
+} l4bpdn_l4c_cgdel_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauth_req_struct cmd;
+ kal_uint8 psi;
+} l4bpdn_l4c_cgauth_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cladn_req_struct cmd;
+} l4bpdn_l4c_cladn_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_ecncfg_req_struct cmd;
+} l4bpdn_l4c_ecncfg_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egdcont_req_struct cmd;
+ kal_uint8 psi;
+} l4bpdn_l4c_egdcont_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapnetmr_req_struct cmd;
+} l4bpdn_l4c_vzwapnetmr_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapne_req_struct cmd;
+} l4bpdn_l4c_vzwapne_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpau_req_struct cmd;
+} l4bpdn_l4c_egpau_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egact_req_struct cmd;
+ ddm_apn_type_enum apn_type;
+} l4bpdn_l4c_egact_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgsdata_req_struct cmd;
+} l4bpdn_l4c_cgsdata_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_acttest_req_struct cmd;
+} l4bpdn_l4c_acttest_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_psbearer_req_struct cmd;
+} l4bpdn_l4c_psbearer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egfb_req_struct cmd;
+} l4bpdn_l4c_egfb_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egld_req_struct cmd;
+} l4bpdn_l4c_egld_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egdelpf_req_struct cmd;
+} l4bpdn_l4c_egdelpf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eglnkpf_req_struct cmd;
+} l4bpdn_l4c_eglnkpf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpcordp_req_struct cmd;
+} l4bpdn_l4c_egpcordp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpco_req_struct cmd;
+ kal_uint8 psi;
+} l4bpdn_l4c_egpco_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_edallow_req_struct cmd;
+} l4bpdn_l4c_edallow_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sim_slot_id;
+} l4bpdn_l4c_set_default_sim_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+} l4bpdn_l4c_pdn_revive_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+} l4bpdn_l4c_pdn_revive_abort_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_success;
+ kal_uint8 lte_attach_cid; /* used if (is_success == KAL_TRUE) */
+ ps_cause_enum err_cause; /* used if (is_success == KAL_FALSE) */
+} l4bpdn_l4c_lte_attach_pdn_define_needed_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_ims_roaming_enable;
+} l4bpdn_l4c_set_eimsroam_config_value_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eapnsync_req_struct cmd;
+} l4bpdn_l4c_eapnsync_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_evzwapfcia_req_struct cmd;
+} l4bpdn_l4c_evzwapfcia_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eggrntrspt_req_struct cmd;
+} l4bpdn_l4c_eggrntrspt_req_struct;
+
+
+
+/*********************************************************************************************************
+ * MSG: L4PBDN -> L4C: End *
+ *********************************************************************************************************/
+#endif
+
+#if 1 /* MSG: L4C -> L4BPDN */
+/*********************************************************************************************************
+ * MSG: L4C -> L4BPDN: Start *
+ *********************************************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdcont_ind_struct cmd;
+
+ kal_uint8 psi;
+
+ kal_bool old_psi_present;
+ kal_uint8 old_psi;
+
+ kal_bool vgpdp_type_present;
+ kal_uint8 vgpdp_type[PDP_TYPE_STRING_LEN]; // string type
+ kal_bool vgapn_present;
+ kal_uint8 vgapn[MAX_APN_LEN]; // string type
+} l4bpdn_l4c_cgdcont_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdscont_ind_struct cmd;
+} l4bpdn_l4c_cgdscont_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtft_ind_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_cgtft_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqreq_ind_struct cmd;
+} l4bpdn_l4c_cgqreq_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgqmin_ind_struct cmd;
+} l4bpdn_l4c_cgqmin_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqreq_ind_struct cmd;
+} l4bpdn_l4c_cgeqreq_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqmin_ind_struct cmd;
+} l4bpdn_l4c_cgeqmin_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqneg_ind_struct cmd;
+} l4bpdn_l4c_cgeqneg_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgact_ind_struct cmd;
+} l4bpdn_l4c_cgact_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgpaddr_ind_struct cmd;
+} l4bpdn_l4c_cgpaddr_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauto_ind_struct cmd;
+} l4bpdn_l4c_cgauto_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgerep_ind_struct cmd;
+} l4bpdn_l4c_cgerep_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgcontrdp_ind_struct cmd;
+} l4bpdn_l4c_cgcontrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgscontrdp_ind_struct cmd;
+} l4bpdn_l4c_cgscontrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgtftrdp_ind_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_cgtftrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqos_ind_struct cmd;
+} l4bpdn_l4c_cgeqos_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgeqosrdp_ind_struct cmd;
+} l4bpdn_l4c_cgeqosrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqos_ind_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_c5gqos_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_c5gqosrdp_ind_struct cmd;
+ kal_uint8 qfi;
+} l4bpdn_l4c_c5gqosrdp_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgdel_ind_struct cmd;
+} l4bpdn_l4c_cgdel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cgauth_ind_struct cmd;
+} l4bpdn_l4c_cgauth_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cladn_ind_struct cmd;
+ kal_bool num_of_ladn_info_present;
+ kal_uint8 num_of_ladn_info;
+ kal_bool ladn_info_present;
+ ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4bpdn_l4c_cladn_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_cladnu_ind_struct cmd;
+ kal_bool num_of_ladn_info_present;
+ kal_uint8 num_of_ladn_info;
+ kal_bool ladn_info_present;
+ ladn_info_struct ladn_info[MAX_LADN_INFO];
+} l4bpdn_l4c_cladnu_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_psbearer_ind_struct cmd;
+} l4bpdn_l4c_psbearer_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egfb_ind_struct cmd;
+} l4bpdn_l4c_egfb_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egdelpf_ind_struct cmd;
+} l4bpdn_l4c_egdelpf_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eglnkpf_ind_struct cmd;
+} l4bpdn_l4c_eglnkpf_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpcordp_ind_struct cmd;
+} l4bpdn_l4c_egpcordp_ind_struct;
+
+ typedef struct {
+ LOCAL_PARA_HDR
+
+ at_egpco_ind_struct cmd;
+ } l4bpdn_l4c_egpco_ind_struct;
+
+ typedef struct {
+ LOCAL_PARA_HDR
+ gmss_rat_enum gmss_rat;
+ gmss_selected_rat_status_enum status;
+ kal_bool is_ehrpd; /* Indicate if PS type is EHRPD if current RAT is HRPD */
+} l4bpdn_l4c_rat_select_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+ kal_bool is_success;
+ ps_cause_enum err_cause;
+} l4bpdn_l4c_pdn_revive_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 cid;
+ kal_bool is_success;
+ ps_cause_enum err_cause;
+} l4bpdn_l4c_pdn_revive_abort_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+} l4bpdn_l4c_lte_attach_needed_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ plmn_id_struct current_plmn_id;
+} l4bpdn_l4c_lte_attach_pdn_define_needed_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapne_ind_struct cmd;
+} l4bpdn_l4c_vzwapne_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_vzwapnetmr_ind_struct cmd;
+}l4bpdn_l4c_vzwapnetmr_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint32 dummy;
+} l4bpdn_l4c_cmd_not_yet_support_ind_struct; /* Only for UT */
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 lte_attach_cid;
+ kal_bool cause2_present;
+ ps_cause_enum cause2;
+ pdp_addr_type_enum nw_applied_pdp_type;
+} l4bpdn_l4c_lte_attach_pdn_activate_success_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 lte_attach_cid;
+ ps_cause_enum cause;
+ kal_bool is_change_to_apn_class_present;
+ kal_uint8 change_to_apn_class;
+} l4bpdn_l4c_lte_attach_pdn_activate_failure_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eapnsync_ind_struct cmd;
+} l4bpdn_l4c_eapnsync_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_evzwapfcia_ind_struct cmd;
+} l4bpdn_l4c_evzwapfcia_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_eggrntrspt_ind_struct cmd;
+} l4bpdn_l4c_eggrntrspt_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_escontind_ind_struct cmd;
+} l4bpdn_l4c_escontind_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ at_escontind_req_struct cmd;
+} l4bpdn_l4c_escontind_req_struct;
+/*********************************************************************************************************
+ * MSG: L4C -> L4BPDN: End *
+ *********************************************************************************************************/
+#endif
+
+#endif /* _L4BPDN_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4bpdn_tcm_struct.h b/mcu/protocol/interface/l4misc/l4bpdn_tcm_struct.h
new file mode 100644
index 0000000..4389ba3
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bpdn_tcm_struct.h
@@ -0,0 +1,410 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4bpdn_tcm_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 09 22 2021 stun.wu
+ * [MOLY00728968] [ZM62] AT+EGPCO to get MSISDN
+ *
+ * 09 17 2021 judy.zhu
+ * [MOLY00704256] [VzW] 5G Ultra Wideband icon display
+ *
+ * Patch back from NR15.R3.MP branch
+ * .
+ *
+ * 09 08 2021 judy.zhu
+ * [MOLY00704256] [VzW] 5G Ultra Wideband icon display
+ *
+ * [VzW]5G Ultra Wideband icon display feature patch back
+ *
+ * .
+ *
+ * 04 19 2019 yu-hsin.lin
+ * [MOLY00399993] [Gen97][VMOLY] interworking withN26 features
+ * [MPD][Code] merge from 7781298, l4 ps with n26
+ *
+ * 03 26 2019 yu-hsin.lin
+ * [MOLY00393456] [Gen97][VMOLY] 45G InterRAT & interSystem feature
+ * [VMOLY][MPD][Interface] L4_PS Gen97 irat withou n26
+ *
+ * 12 14 2018 poying.chuang
+ * [MOLY00372635] [VMOLY] L4/TCM/TFTLIB/VGSM phase2 check-in
+ *
+ * - [L4] Phase 2 - Interfaces .
+ *
+ * 08 17 2018 poying.chuang
+ * [MOLY00346763] [6297] Gen97 L4 PS Check-In
+ *
+ * - interfaces .
+ *
+ * 05 21 2018 praveen.komatiguntla
+ * [MOLY00327084] [EIGER][MT3967]PS Data Off feature: PDP Modify procedure to update the PS Data Off Statusto NW side.
+ * PS Data off feature - L4/TCM changes.
+ *
+ * 12 11 2017 poying.chuang
+ * [MOLY00294886] [MT6763][Bianco][O1][MP2][TMO][simulator][in-house][Anritsu][Protocol_IMS & VoLTE][50905][L_IMS_VoLTE_6752_1]
+ * .
+ *
+ * 04 05 2017 poying.chuang
+ * [MOLY00209737] [MT6293] LWTG and C2K L4 integration check in
+ * [M3] Merge CL up to 3677934 - interface .
+ *
+ * 02 20 2017 poying.chuang
+ * [MOLY00209737] [MT6293] LWTG and C2K L4 integration check in
+ *
+ * - [M2] l4bpdn/tcm - interface (up to CL 3474533) .
+ *
+ ****************************************************************************/
+
+
+#ifndef _L4BPDN_TCM_STRUCT_H
+#define _L4BPDN_TCM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+
+#include "tftlib_common_enum.h"
+#include "tftlib_common_struct.h"
+
+#include "ps_public_enum_public.h"
+#include "l3_inc_enums_public.h"
+#include "ps_public_struct.h"
+
+
+#if __GROUP_L4BPDN_TCM_INTERFACE_DEFINE_AND_SUB_STRUCT__ || 1
+
+#define L4BPDN_TCM_PCSCF_4_TO_8_SIZE 5
+#define L4BPDN_TCM_BEARER_NUM 15
+
+#define L4BPDN_TCM_PDU_ADDR_LIFETIME_SIZE 2
+
+typedef struct {
+ pdp_addr_type_enum type;
+ pdp_addr_len_enum len;
+ kal_uint8 val[IPV4V6_ADDR_LEN];
+} l4bpdn_tcm_ip_addr_struct;
+
+typedef struct {
+ kal_uint8 mcc1;
+ kal_uint8 mcc2;
+ kal_uint8 mcc3;
+ kal_uint8 mnc1;
+ kal_uint8 mnc2;
+ kal_uint8 mnc3;
+} l4bpdn_tcm_plmn_id_struct;
+
+typedef struct {
+ kal_uint8 context_id; /* CID */
+
+ /**
+ * In 5G, indicate PDU session id
+ * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+ kal_uint8 pdu_session_id;
+
+ /**
+ * In 5G, indicate QoS flow id (qfi)
+ * Otherwise, indicate nsapi(23G) or ebi(4G) */
+ kal_uint8 bearer_id;
+
+ ps_cause_enum cause;
+} l4bpdn_tcm_deact_id_struct;
+
+typedef struct {
+ kal_uint8 apn_length;
+ kal_uint8 apn[MAX_APN_LEN];
+ kal_bool src_addr_sb_net_mask_present;
+ kal_uint8 src_addr_sb_net_mask[IPV4_ADDR_LEN * 2];
+ kal_bool ipv6_src_addr_sb_net_mask_present;
+ kal_uint8 ipv6_src_addr_sb_net_mask[IPV6_ADDR_LEN * 2];
+ kal_bool gw_addr_present;
+ kal_uint8 gw_addr[IPV4_ADDR_LEN];
+ kal_bool ipv6_gw_addr_present;
+ kal_uint8 ipv6_gw_addr[IPV6_ADDR_LEN];
+ kal_bool dns_present;
+ kal_uint8 dns[IPV4_ADDR_LEN];
+ kal_bool dns2_present;
+ kal_uint8 dns2[IPV4_ADDR_LEN];
+ kal_bool dns3_present;
+ kal_uint8 dns3[IPV4_ADDR_LEN];
+ kal_bool ipv6_dns_present;
+ kal_uint8 ipv6_dns[IPV6_ADDR_LEN];
+ kal_bool ipv6_dns2_present;
+ kal_uint8 ipv6_dns2[IPV6_ADDR_LEN];
+ kal_bool ipv6_dns3_present;
+ kal_uint8 ipv6_dns3[IPV6_ADDR_LEN];
+ kal_bool p_cscf_prim_addr_present;
+ kal_uint8 p_cscf_prim_addr[IPV4_ADDR_LEN];
+ kal_bool p_cscf_sec_addr_present;
+ kal_uint8 p_cscf_sec_addr[IPV4_ADDR_LEN];
+ kal_bool p_cscf_third_addr_present;
+ kal_uint8 p_cscf_third_addr[IPV4_ADDR_LEN];
+ kal_bool ipv6_p_cscf_prim_addr_present;
+ kal_uint8 ipv6_p_cscf_prim_addr[IPV6_ADDR_LEN];
+ kal_bool ipv6_p_cscf_sec_addr_present;
+ kal_uint8 ipv6_p_cscf_sec_addr[IPV6_ADDR_LEN];
+ kal_bool ipv6_p_cscf_third_addr_present;
+ kal_uint8 ipv6_p_cscf_third_addr[IPV6_ADDR_LEN];
+ kal_bool im_cn_signalling_flag_present;
+ kal_uint8 im_cn_signalling_flag;
+ kal_bool lipa_indication_present; // indicates that the PDP context provides connectivity using a LIPA PDN connection
+ kal_uint8 lipa_indication;
+ kal_bool v4_mtu_present; // shows the IPv4 MTU size in octets
+ kal_uint16 v4_mtu;
+ kal_bool wlan_offload_present; // indicates whether traffic can be offloaded using the specified PDN connection via a WLAN or not
+ kal_uint8 wlan_offload;
+ kal_bool local_addr_ind_present; // indicates whether or not the MS and the network support local IP address in TFTs
+ kal_uint8 local_addr_ind;
+ kal_bool p_cscf_fourth_to_eighth_addr_present[L4BPDN_TCM_PCSCF_4_TO_8_SIZE]; //add for CT support 8 p-cscf address requirement
+ kal_uint8 p_cscf_fourth_to_eighth_addr[L4BPDN_TCM_PCSCF_4_TO_8_SIZE][IPV4_ADDR_LEN]; //add for CT support 8 p-cscf address requirement
+ kal_bool ipv6_p_cscf_fourth_to_eighth_addr_present[L4BPDN_TCM_PCSCF_4_TO_8_SIZE]; //add for CT support 8 p-cscf address requirement
+ kal_uint8 ipv6_p_cscf_fourth_to_eighth_addr[L4BPDN_TCM_PCSCF_4_TO_8_SIZE][IPV6_ADDR_LEN]; //add for CT support 8 p-cscf address requirement
+ kal_bool ps_data_off_support_present;
+ kal_uint8 ps_data_off_support;
+ kal_bool ssc_mode_present;
+ l4c_tcm_ssc_mode_enum ssc_mode;
+ kal_bool s_nssai_present;
+ l4c_tcm_s_nssai_struct s_nssai;
+ kal_bool access_type_present;
+ l4c_tcm_access_type_enum access_type;
+ kal_uint32 rq_timer_value_in_sec;
+ l4c_tcm_always_on_pdu_enum always_on_pdu_by_nw;
+} l4bpdn_tcm_pdp_rdp_info_struct;
+
+typedef struct {
+ /* v4 dns -> Contained in l4bpdn_tcm_prim_pdp_rdp_info_struct */
+ /* v6 dns -> Contained in l4bpdn_tcm_prim_pdp_rdp_info_struct */
+ /* v4 mtu -> Contained in l4bpdn_tcm_prim_pdp_rdp_info_struct */
+
+ kal_bool msisdn_present;
+ kal_uint8 msisdn[MAX_MSISDN_LEN];
+ kal_uint8 msisdn_len;
+
+ /* pdu address lifetime */
+ kal_bool pdu_addr_lifetime_present;
+ kal_uint8 pdu_addr_lifetime[L4BPDN_TCM_PDU_ADDR_LIFETIME_SIZE];
+
+ /****************************************
+ * Operator Specific PCOs in VZW: Start *
+ ****************************************/
+ /* 0xFF00 */
+ kal_bool pdn_application_access_control_present;
+ l4bpdn_tcm_plmn_id_struct pdn_application_access_control_plmnid;
+ kal_uint8 pdn_application_access_control_action;
+
+ /* 0xFF01 */
+ kal_bool epdg_v6_plmnid_present;
+ l4bpdn_tcm_plmn_id_struct epdg_v6_plmnid;
+ kal_bool epdg_v6_addr_present;
+ kal_uint8 epdg_v6_addr[IPV6_ADDR_LEN];
+ kal_bool epdg_v6_addr2_present;
+ kal_uint8 epdg_v6_addr2[IPV6_ADDR_LEN];
+
+ /* 0xFF02 */
+ kal_bool epdg_v4_plmnid_present;
+ l4bpdn_tcm_plmn_id_struct epdg_v4_plmnid;
+ kal_bool epdg_v4_addr_present;
+ kal_uint8 epdg_v4_addr[IPV4_ADDR_LEN];
+ kal_bool epdg_v4_addr2_present;
+ kal_uint8 epdg_v4_addr2[IPV4_ADDR_LEN];
+
+ /* 0xFF03 */
+ kal_bool vzw_5guw_present;
+ kal_uint8 vzw_5guw;
+ /****************************************
+ * Operator Specific PCOs in VZW: End *
+ ****************************************/
+} l4bpdn_tcm_pco_rdp_info_struct;
+
+#endif // __GROUP_L4BPDN_TCM_INTERFACE_DEFINE_AND_SUB_STRUCT__
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 context_id;
+
+ /**
+ * Indicate how to interpret the below ids: pdu_session_id, bearer_id, linked_bearer_id */
+ kal_bool is_5g_id;
+
+ /**
+ * In 5G, indicate PDU session id
+ * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+ kal_uint8 pdu_session_id;
+
+ /**
+ * In 5G, indicate QoS flow id (qfi)
+ * Otherwise, indicate nsapi(23G) or ebi(4G) */
+ kal_uint8 bearer_id;
+
+ /**
+ * If the PDP is secondary, indicate UPCM which primary PDP context the bearer is linked with.
+ * If the PDP is primary, indicate the linked_nspai = nsapi.
+ * If in 5G, indicate the qfi which contains default qos rule */
+ kal_uint8 linked_bearer_id;
+
+ /**
+ * TFTLIB output: pkt_filter_act_list_struct
+ * - Needs to convert to pkt_filters_act_list_node_struct for UPCM use
+ * - In 5G, the conversion is done by VGSM
+ * - In 234G, the conversions are done by UGTCM and ETCM, respectively */
+ pkt_filters_act_list_node_struct *pf_action_list_node;
+
+ /* Address acquired by PDP context activation. */
+ l4bpdn_tcm_ip_addr_struct ip_addr;
+
+ kal_bool pdp_rdp_present;
+ l4bpdn_tcm_pdp_rdp_info_struct pdp_rdp;
+} l4bpdn_tcm_bearer_act_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 bearer_num; /* indicate number of nsapi/EBI entries carried in deact_nsapi_list.*/
+ l4bpdn_tcm_deact_id_struct deact_id_list[L4BPDN_TCM_BEARER_NUM]; /* CID/NSAPI/EBI list of the deactivated PDP contexts*/
+} l4bpdn_tcm_bearer_deact_ind_struct;
+
+typedef struct {
+ kal_uint8 context_id;
+
+ /**
+ * Indicate how to interpret the below ids: pdu_session_id, bearer_id, linked_bearer_id */
+ kal_bool is_5g_id;
+
+ /**
+ * In 5G, indicate PDU session id
+ * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+ kal_uint8 pdu_session_id;
+
+ /**
+ * In 5G, indicate QoS flow id (qfi)
+ * Otherwise, indicate nsapi(23G) or ebi(4G) */
+ kal_uint8 bearer_id;
+
+ /**
+ * If the PDP is secondary, indicate UPCM which primary PDP context the bearer is linked with.
+ * If the PDP is primary, indicate the linked_nspai = nsapi.
+ * If in 5G, indicate the qfi which contains default qos rule */
+ kal_uint8 linked_bearer_id;
+
+ /**
+ * TFTLIB output: pkt_filter_act_list_struct
+ * - Needs to convert to pkt_filters_act_list_node_struct for UPCM use
+ * - In 5G, the conversion is done by VGSM
+ * - In 234G, the conversions are done by UGTCM and ETCM, respectively */
+ pkt_filters_act_list_node_struct *pf_action_list_node;
+
+ /* Address acquired by PDP context activation. */
+ l4bpdn_tcm_ip_addr_struct ip_addr;
+
+ kal_bool pdp_rdp_present;
+ l4bpdn_tcm_pdp_rdp_info_struct pdp_rdp;
+} l4bpdn_tcm_act_id_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ /* Indicate UPCM the packet filter modification is triggered by which PDP context/EPS bearer context */
+ kal_uint8 context_id;
+
+ /**
+ * Indicate how to interpret the below ids: pdu_session_id, bearer_id, linked_bearer_id */
+ kal_bool is_5g_id;
+
+ /**
+ * In 5G, indicate PDU session id
+ * Otherwise, simply fill-in 0 (or the mapped PDU session id?) */
+ kal_uint8 pdu_session_id;
+
+ /**
+ * In 5G, indicate QoS flow id (qfi)
+ * Otherwise, indicate nsapi(23G) or ebi(4G) */
+ kal_uint8 bearer_id;
+
+ /**
+ * TFTLIB output: pkt_filter_act_list_struct
+ * - Needs to convert to pkt_filters_act_list_node_struct for UPCM use
+ * - In 5G, the conversion is done by VGSM
+ * - In 234G, the conversions are done by UGTCM and ETCM, respectively */
+ pkt_filters_act_list_node_struct *pf_action_list_node;
+} l4bpdn_tcm_pf_update_ind_struct;
+
+/* Use this ILM to update PCO RDP info
+ * when it is changed by activate/modify/deactivate procedures */
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 context_id;
+
+ l4bpdn_tcm_pco_rdp_info_struct pco_rdp;
+
+ kal_bool pdp_rdp_present;
+ l4bpdn_tcm_pdp_rdp_info_struct pdp_rdp;
+
+} l4bpdn_tcm_pco_rdp_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 deact_bearer_num; /* indicate number of nsapi/EBI entries carried in deact_bearer_list.*/
+ l4bpdn_tcm_deact_id_struct deact_bearer_list[L4BPDN_TCM_BEARER_NUM]; /* CID/NSAPI/EBI list of the deactivated PDP contexts*/
+
+ kal_bool is_4g5_irat;
+
+ kal_uint8 act_bearer_num; /* indicate number of nsapi/EBI entries carried in act_bearer_list.*/
+ l4bpdn_tcm_act_id_struct act_bearer_list[L4BPDN_TCM_BEARER_NUM]; /* CID/NSAPI/EBI list of the activated PDP contexts*/
+
+} l4bpdn_tcm_45g_irat_bearer_update_ind_struct;
+
+#endif /* _L4BPDN_TCM_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4bpwr_l4c_struct.h b/mcu/protocol/interface/l4misc/l4bpwr_l4c_struct.h
new file mode 100644
index 0000000..f018e33
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4bpwr_l4c_struct.h
@@ -0,0 +1,161 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4bnw_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:Allen Hsu
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 07 19 2021 johnny.ding
+ * [MOLY00648557] [MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ *
+ * porting code.
+ *
+ * 07 13 2021 johnny.ding
+ * [MOLY00648557] [MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ *
+ * porting code.
+ *
+ * 04 21 2021 cosmo.sung
+ * [MOLY00648557] [Blocking][MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ *
+ * .
+ *
+ * 04 16 2021 cosmo.sung
+ * [MOLY00648557] [Blocking][MT6885][Petrus][Q0][Rogers][WW FT][Canada][Toronto][5GMM][SA][TCID: SA_Self-Cer_FT_06_008]:-DUT does not able to do SA 5G registration VoNR on a SIM2 for SA Area.
+ *
+ * .
+ *
+ * 09 21 2020 chun-yu.chien
+ * [MOLY00569501] [Gen97] TC10 patch back
+ *
+ * trigger auto sync to fix TC10 build error (remove redundant space)
+ *
+ * 08 25 2020 titi.wu
+ * [MOLY00561872] [SQC Excluded][MCF Sanity] [Colgin][MT6880_EVB(NLWG)] MCF set OPOTA file fail
+ * dummy check-in for T700
+ *
+ * 02 18 2019 lucien.li
+ * [MOLY00384683] [SML] Single Modem Bin SIM ME Lock
+ * [Subsidy Lock][L4]
+ *
+ * 10 31 2017 lucien.li
+ * [MOLY00286407] [L4 & DDM] EGTYPE refactoring
+ * [R3] L4C PS action control enhancement
+ *
+ * 09 15 2017 wenxiu.zhao
+ * [MOLY00275991] [CMCC][6293]OP01 LOCK support- L4C part
+ * .l4c-15
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _L4BPWR_L4C_STRUCT_H
+#define _L4BPWR_L4C_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l4c_common_enum.h"
+
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool sim_lock;
+ kal_bool rat_lock;
+ l4_op01_action_enum op01_action;
+}l4bpwr_l4c_op01_lock_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool result;//reseved
+}l4bpwr_l4c_op01_lock_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ /* bitmap: each bit represents one protocol
+ 1: PS 1 / 2: PS 2 / 3: PS 1 + PS 2 ....
+ */
+ kal_uint8 target_ps;
+} l4bpwr_l4c_service_mode_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ /* L4 might add new parameters here in future */
+} l4bpwr_l4c_service_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_bool result;
+ kal_uint8 cause; // (Reserved field)
+} l4bpwr_l4c_service_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 efun_state;
+} l4bpwr_l4c_auto_startup_ind_struct;
+
+#if defined(__NR_SA__) && defined(__NR_PLUS_L_ONLY__)
+typedef struct{
+ LOCAL_PARA_HDR
+ vg_option_enum vg_option;
+}l4bpwr_l4c_5gopt_set_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_bool result;
+}l4bpwr_l4c_5gopt_set_cnf_struct;
+#endif
+#endif /* _L4BNW_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h b/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h
new file mode 100644
index 0000000..7da68e5
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2csm_cc_struct.h
@@ -0,0 +1,1264 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l4c2csm_cc_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2002
+*
+*******************************************************************************
+ * FILENAME : l4c2csm_cc_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _L4C2CSM_CC_STRUCT_H
+#define _L4C2CSM_CC_STRUCT_H
+
+//#include "ps2sat_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_common_enum.h"
+//#include "csmcc_enums.h"
+#include "csmcc_common_enums.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+//pohan,For CMCC AT command requirement
+#include "csmcc_atfunc.h"
+#include "sim_public_enum.h"
+#include "kal_public_defs.h"
+
+
+typedef enum
+{
+ RDN_ALLOWED,
+ RDN_RESTRICTED,
+ RDN_UNAVAILABLE,
+ RDN_RESTRICTEDADDR
+} l4ccsm_cc_rdn_enum;
+
+typedef enum
+{
+ CNAP_ALLOWED,
+ CNAP_RESTRICTED,
+ CNAP_UNAVAILABLE,
+ CNAP_RESTRICTEDNAME
+} l4ccsm_cc_cnap_enum;
+
+typedef enum
+{
+ BSC_BS,
+ BSC_TS
+} l4ccsm_cc_bsc_enum;
+
+typedef enum
+{
+ CALL_RETRIEVED,
+ CALL_ONHOLD
+} l4ccsm_cc_hold_ind_enum;
+
+typedef enum
+{
+ ECT_ALERTING,
+ ECT_ACTIVE
+} l4ccsm_cc_ect_state_enum;
+
+typedef enum
+{
+ GEN_UNRECOGNIZED_COMP,
+ GEN_MISTYPED_COMP,
+ GEN_BAD_STRUCT_COMP
+} l4ccsm_cc_ss_gen_prob_enum;
+
+typedef enum
+{
+ INV_DUP_INV_ID,
+ INV_UNRECOGNIZED_OP,
+ INV_MISTYPED_PARA,
+ INV_RESOURCE_LIMIT,
+ INV_INIT_RELEASE,
+ INV_UNRECOGNIZED_LINK_ID,
+ INV_LINK_ID_RSP_UNEXPECTED,
+ INV_UNEXPECTED_LINK_OP
+} l4ccsm_cc_ss_inv_prob_enum;
+
+typedef enum
+{
+ RR_UNRECOGNIZED_INV_ID,
+ RR_UNEXPECTED,
+ RR_MISTYPED_PARA
+} l4ccsm_cc_ss_rr_prob_enum;
+
+typedef enum
+{
+ RE_UNRECOGNIZED_INV_ID,
+ RE_UNEXPECTED,
+ RE_UNRECOGNIZED_ERROR,
+ RE_UNEXPECTED_ERROR,
+ RE_MISTYPED_PARA
+} l4ccsm_cc_ss_re_prob_enum;
+
+typedef enum
+{
+ L4C_MODIFY_CMD_NONE,
+ L4C_MODIFY_ATA,
+ L4C_MODIFY_ATD
+} l4ccsm_cc_modify_cmd_enum;
+
+typedef enum
+{
+ L4CCSM_CC_STARTUP_NVRAM,
+ L4CCSM_CC_STARTUP_SIM,
+ L4CCSM_CC_STARTUP_INVALID
+} l4ccsm_cc_startup_enum; /* MAUI_01747506 separte startup to SIM and NVRAM */
+
+typedef enum
+{
+ L4C_SRVCC_CALL_MODE_VOICE,
+ L4C_SRVCC_CALL_MODE_VIDEO,
+ L4C_SRVCC_CALL_MODE_EMERGENCY,
+ L4C_SRVCC_CALL_MODE_VOICE_CONFERENCE,
+ L4C_SRVCC_CALL_MODE_VIDEO_CONFERENCE,
+ L4C_SRVCC_CALL_MODE_VOICE_CONFERENCE_PARTS, // conference voice call participant
+ L4C_SRVCC_CALL_MODE_VIDEO_CONFERENCE_PARTS, // conference video call participant
+ L4C_SRVCC_CALL_MODE_MAX
+} l4ccsm_srvcc_call_mode_enum;
+
+typedef enum
+{
+ L4C_SRVCC_CALL_DIRECTION_MO,
+ L4C_SRVCC_CALL_DIRECTION_MT,
+ L4C_SRVCC_CALL_DIRECTION_MAX
+} l4ccsm_srvcc_call_direction_enum;
+
+typedef enum
+{
+ L4C_SRVCC_CALL_STATE_EARLY,
+ L4C_SRVCC_CALL_STATE_EARLY_WITH_MEDIA,
+ L4C_SRVCC_CALL_STATE_ACTIVE,
+ L4C_SRVCC_CALL_STATE_ONHOLD,
+ L4C_SRVCC_CALL_STATE_PRE_ALERTING,
+ L4C_SRVCC_CALL_STATE_PRE_ALERTING_WITH_MEDIA,
+ L4C_SRVCC_CALL_STATE_ACTIVE_RETRY_CC_CONNECT,
+ L4C_SRVCC_CALL_STATE_MAX
+} l4ccsm_srvcc_call_state_enum;
+
+/* mtk01602: REL4, TS 24.008 Table 10.5.135d
+ Define Emergency Service Categories Enum */
+typedef enum
+{
+ SRVCC_ECC_CATEGORY_UNSPECIFIED = 0,
+ SRVCC_ECC_CATEGORY_POLICE = 0x0001,
+ SRVCC_ECC_CATEGORY_AMBULANCE = 0x0002,
+ SRVCC_ECC_CATEGORY_FIRE_BRIGADE = 0x0004,
+ SRVCC_ECC_CATEGORY_MARINE_GUARD = 0x0008,
+ SRVCC_ECC_CATEGORY_MOUNTAIN_RESCUE = 0x0010,
+ SRVCC_ECC_CATEGORY_GAS = 0x0100,
+ SRVCC_ECC_CATEGORY_ANIMAL = 0x0200,
+ SRVCC_ECC_CATEGORY_PHYSICIAN = 0x0400,
+ SRVCC_ECC_CATEGORY_POISON = 0X0800,
+ SRVCC_ECC_CATEGORY_TRAFFIC = 0X1000,
+ SRVCC_ECC_CATEGORY_INVALID = 0XFFFF
+}l4ccsm_srvcc_ecc_category_enum;
+
+typedef struct {
+ kal_uint8 call_id;
+ l4ccsm_srvcc_call_mode_enum call_mode;
+ l4ccsm_srvcc_call_direction_enum call_dir;
+ l4ccsm_srvcc_call_state_enum call_state;
+ l4ccsm_srvcc_ecc_category_enum ecc_category;
+
+ kal_uint8 srvcc_number_type;
+ kal_bool srvcc_number_present;
+ kal_char srvcc_number[MAX_SIP_URI_LEN];
+ kal_bool srvcc_alpha_present;
+ kal_char srvcc_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+ kal_bool cli_present;
+ kal_uint8 cli;
+
+} l4ccsm_srvcc_call_cntxt_struct;
+
+typedef struct {
+ kal_uint8 addr_ind_present;
+ kal_uint8 addr_ind;
+ l4_addr_bcd_struct addr;
+} l4ccsm_cc_peer_addr_struct;
+
+typedef struct {
+ kal_uint8 sub_addr_len;
+ kal_uint8 sub_addr[21];
+} l4ccsm_cc_sub_addr_struct;
+
+typedef struct {
+ l4_addr_bcd_struct partyNumber;
+ kal_uint8 partyNumberSubaddress_present;
+ l4ccsm_cc_sub_addr_struct partyNumberSubaddress;
+} l4ccsm_cc_rdn_addr_struct;
+
+typedef struct {
+ kal_uint8 ect_rdn_present;
+ l4ccsm_cc_rdn_enum rdn_choice_tag;
+ union {
+ l4ccsm_cc_rdn_addr_struct presentationAllowedAddress;
+ kal_uint8 presentationRestricted;
+ kal_uint8 numberNotAvailableDueToInterworking;
+ l4ccsm_cc_rdn_addr_struct presentationRestrictedAddress;
+ } rdn_choice_value;
+} l4ccsm_cc_ect_rdn_struct;
+
+typedef struct {
+ kal_uint8 callingName_present;
+ l4ccsm_cc_cnap_enum callingName_choice_tag;
+ union {
+ l4_cnap_struct cnapPresentationAllowed;
+ l4_name_struct namePresentationAllowed;
+ kal_uint8 presentationRestricted;
+ kal_uint8 nameUnavailable;
+ l4_cnap_struct cnapPresentationRestricted;
+ l4_name_struct namePresentationRestricted;
+ } callingName_choice_value;
+} l4ccsm_cc_name_ind_struct;
+
+typedef struct {
+ kal_uint8 ccbs_index_present;
+ kal_uint8 ccbs_index;
+ kal_uint8 b_subscriberNumber_present;
+ l4_addr_bcd_struct b_subscriberNumber;
+ kal_uint8 b_subscriberSubaddress_present;
+ l4ccsm_cc_sub_addr_struct b_subscriberSubaddress;
+ kal_uint8 bs_code_present;
+ kal_uint8 bs_code;
+} l4ccsm_cc_ccbs_feature_struct;
+
+typedef struct {
+ kal_uint8 ccbs_feature_present;
+ l4ccsm_cc_ccbs_feature_struct ccbs_feature;
+ kal_uint8 alertingPattern_present;
+ kal_uint8 altertingPattern;
+} l4ccsm_cc_ccbs_ind_struct;
+
+typedef struct {
+ kal_uint8 type;
+ kal_bool ss_code_present;
+ kal_uint8 ss_code;
+ kal_bool status_present;
+ kal_uint8 status;
+ kal_bool notification_present;
+ kal_uint8 notification;
+ kal_uint16 cug_index;
+ l4ccsm_cc_ect_rdn_struct ect_rdn;
+ l4ccsm_cc_name_ind_struct name_ind;
+ l4ccsm_cc_ccbs_ind_struct ccbs_ind;
+} l4ccsm_cc_notify_ss_arg_struct;
+
+/*mtk01602, 053007: SATe Open Channel for CSD*/
+typedef struct {
+ kal_uint8 is_addr_present;
+ l4_addr_bcd_struct addr;
+ kal_uint8 is_subaddr_present;
+ l4ccsm_cc_sub_addr_struct subaddr;
+ kal_uint8 is_user_id_present;
+ kal_uint8 user_id[32];
+ kal_uint8 is_user_pwd_present;
+ kal_uint8 user_pwd[32];
+ kal_uint8 is_local_addr_present;
+ kal_uint8 local_addr[16]; //To be confirmed, Nick set it as length 16
+ sat_csd_bearer_para_struct sat_cbst; //refer 11.14 6.6.27; mandatory IE, no matter SIM provided or Default case.
+}l4ccsm_cc_sat_prof_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} l4ccsm_cc_dummy_local_para_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 init_type; /* MAUI_01747506 separte startup to SIM and NVRAM */
+} l4ccsm_cc_startup_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 init_type; /* MAUI_01747506 separte startup to SIM and NVRAM */
+ kal_uint8 response;
+ kal_uint16 cause;
+} l4ccsm_cc_startup_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 channel_mode;
+ kal_uint8 rat;
+ kal_uint8 irho_speech_on_off;
+} l4ccsm_cc_attach_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat;
+ kal_uint8 irho_speech_on_off;
+} l4ccsm_cc_detach_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} l4ccsm_cc_acm_reset_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint16 cause;
+} l4ccsm_cc_acm_reset_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint32 acmmax;
+} l4ccsm_cc_acmmax_set_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 response;
+ kal_uint16 cause;
+} l4ccsm_cc_acmmax_set_cnf_struct;
+
+/* MAUI_01938414 [CSMCC][Revise] support reset last ccm */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} l4ccsm_cc_last_ccm_reset_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} l4ccsm_cc_abort_call_req_struct;
+
+
+/* MAUI_01938414 [CSMCC][Revise] support reset last ccm */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint8 error_cause;
+} l4ccsm_cc_last_ccm_reset_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 digit_count;
+ kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];
+} l4ccsm_cc_auto_dtmf_start_ind_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN.
+ The extra last one entry is for null terminal. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+} l4ccsm_cc_auto_dtmf_complete_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ l4_addr_bcd_struct redirect_num;
+ kal_uint8 redirect_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct redirect_sub_addr;
+} l4ccsm_cc_call_deflection_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+} l4ccsm_cc_call_deflection_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id_present;
+ kal_uint8 call_id;
+ kal_uint8 crss_req;
+} l4ccsm_cc_crss_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id_present;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ kal_uint8 crss_req; //mtk01602, 070718
+} l4ccsm_cc_crss_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint32 ccm;
+ kal_uint32 acm;
+ kal_uint8 ccwv;
+} l4ccsm_cc_ccm_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 connected_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct connected_sub_addr;
+} l4ccsm_cc_call_accept_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+} l4ccsm_cc_call_accept_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 alert;
+} l4ccsm_cc_call_alert_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 call_type;
+ kal_uint8 connected_number_present;
+ l4ccsm_cc_peer_addr_struct connected_number;
+ kal_uint8 connected_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct connected_sub_addr;
+} l4ccsm_cc_call_connect_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+} l4ccsm_cc_call_disc_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+} l4ccsm_cc_rel_comp_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_mt_call_allowed;
+ kal_uint8 call_id;
+ kal_uint8 seq_num;
+ kal_uint16 reject_cause;
+} l4ccsm_cc_call_present_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 call_type;
+ kal_uint32 ccm;
+} l4ccsm_cc_call_disc_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ l4ccsm_cc_modify_cmd_enum modify_cmd;
+} l4ccsm_cc_call_modify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 cur_call_type;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+} l4ccsm_cc_call_modify_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 cur_call_type;
+} l4ccsm_cc_call_modify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 preempt_type;
+} l4ccsm_cc_call_preempt_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ kal_uint8 call_type;
+ kal_uint32 ccm;
+ kal_bool is_diagnostic_present;
+ kal_uint8 diagnostic;
+} l4ccsm_cc_call_rel_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ l4_addr_bcd_struct called_number;
+ kal_uint8 called_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct called_sub_addr;
+ kal_uint8 cug_info;
+ kal_uint8 clir_info_present;
+ kal_uint8 clir_info;
+ kal_uint8 call_priority_present;
+ kal_uint8 call_priority;
+ kal_uint8 call_type;
+ kal_uint8 redial;
+ //kal_uint8 csd_prof_id;
+ sat_csd_bearer_para_struct sat_cbst;
+ kal_uint8 is_cell_lock_call; //[MAUI_00751970]
+ kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+ kal_uint8 als_type; //MAUI_01647491 ALS_DIAL_BY_SETTING
+ kal_bool l4c_retry; //for_lv
+ kal_bool is_ecall;
+ ecall_type_enum ecall_type;
+} l4ccsm_cc_call_setup_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id_present;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ kal_uint8 call_type;
+ sat_csd_bearer_para_struct sat_cbst;
+ kal_uint8 terminal_res;
+ kal_uint8 add_res;
+ kal_bool is_diagnostic_present;
+ kal_uint8 diagnostic;
+} l4ccsm_cc_call_setup_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 signal_value_present;
+ kal_uint8 signal_value;
+ kal_uint8 alerting_pattern_present;
+ kal_uint8 alerting_pattern;
+ kal_uint8 cw_flag;
+ kal_uint8 auto_answer;
+ kal_uint8 call_type;
+ kal_uint8 calling_number_present;
+ l4ccsm_cc_peer_addr_struct calling_number;
+ kal_uint8 calling_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct calling_sub_addr;
+ kal_uint8 redirecting_number_present;
+ l4ccsm_cc_peer_addr_struct redirecting_number;
+ kal_uint8 redirecting_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+ kal_uint8 no_cli_cause_present;
+ kal_uint8 no_cli_cause;
+ kal_uint8 call_priority_present;
+ kal_uint8 call_priority;
+} l4ccsm_cc_call_setup_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 ccbs_possible_present;
+ kal_uint8 ccbs_possible;
+ kal_uint16 cause;
+ kal_uint8 call_type;
+ kal_bool is_diagnostic_present;
+ kal_uint8 diagnostic;
+} l4ccsm_cc_call_disc_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+} l4ccsm_cc_data_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+} l4ccsm_cc_data_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ l4_addr_bcd_struct called_number;
+ /*Cosine 070415: R4 new IE, Emergency Call Category*/
+ kal_uint8 service_category;
+ kal_bool l4c_retry; //for_lv
+ kal_bool is_ecall;
+ ecall_type_enum ecall_type;
+} l4ccsm_cc_emergency_call_setup_req_struct;
+
+typedef l4ccsm_cc_call_setup_cnf_struct l4ccsm_cc_emergency_call_setup_cnf_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ l4ccsm_cc_notify_ss_arg_struct notify_ss_arg;
+ kal_uint8 ccbs_recall_numP;
+ l4_addr_bcd_struct ccbs_recall_num;
+} l4ccsm_cc_notify_ss_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 tone;
+} l4ccsm_cc_start_dtmf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 tone;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+} l4ccsm_cc_start_dtmf_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 tone;
+} l4ccsm_cc_stop_dtmf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 tone;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+} l4ccsm_cc_stop_dtmf_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 sat_call_type;
+ kal_uint8 called_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct called_sub_addr;
+ kal_uint8 ccp_present;
+ kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 size_of_ccp;
+///// kal_uint8 is_changed_from_ss;
+ kal_uint8 type_of_modification;//mtk01616_070521
+ /* MAUI_01736966 [L4C][CSM] STK support clir */
+ kal_uint8 clir_info_present;
+ kal_uint8 clir_info;
+ /*Michael:the following parameter is added for SAT retry*/
+ kal_bool l4c_retry;
+ kal_bool is_emergency_call; //Cosine, 070831
+} l4ccsm_cc_sat_setup_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 response;
+ kal_uint8 terminal_res;
+ kal_uint8 additional_res;
+ kal_uint8 connected_number_present;
+ l4ccsm_cc_peer_addr_struct connected_number;
+ kal_uint8 connected_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct connected_sub_addr;
+//// kal_uint8 is_changed_from_ss;
+ kal_uint8 type_of_modification;//mtk01616_070523
+ /*Michael: following 4 parameters are added for SAT retry*/
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ kal_uint8 size_of_ccp;
+ kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+} l4ccsm_cc_sat_setup_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_esc_off;
+ kal_uint8 port;
+} l4ccsm_cc_uart_transfer_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 port;
+ kal_bool is_esc;
+} l4ccsm_cc_uart_transfer_ind_struct;
+/* Ripple: must the same with csm_l2r/tdt_esc_on_ind_struct, becasue CSM uses hold_local_para(). */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 call_type;
+// kal_uint8 csd_prof_id;
+ kal_uint32 user_rate;
+ kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+} l4ccsm_cc_csd_est_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 digit_count;
+ kal_uint8 dtmf_digit[MAX_CC_DTMF_BCD_LEN];
+} l4ccsm_cc_auto_dtmf_start_req_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN.
+ The extra last one entry is for null terminal. */
+
+#ifdef __TCPIP__
+//#include "custom_nvram_editor_data_item.h"
+/*MAUI_02560318 remove the dependency of header file*/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ l4ccsm_cc_sat_prof_struct sat_prof; //mtk01602, 070530: add for Nick SATe
+ kal_uint8 profile_type; //__DTCNT_SIM_PROFILES_SUPPORT__
+} l4ccsm_cc_set_csd_prof_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint8 error_cause;
+ sat_csd_bearer_para_struct sat_cbst; //mtk01602: use to send SIM modify indication
+} l4ccsm_cc_set_csd_prof_cnf_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 line_id;
+} l4ccsm_cphs_display_als_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 line_id;
+} l4ccsm_cc_update_als_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint16 error_cause;
+} l4ccsm_cc_update_als_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_bool call_exist;
+} l4ccsm_cc_call_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 no_dtmf;
+ kal_uint8 dtmf[MAX_CC_DTMF_BCD_LEN];
+} l4ccsm_cc_sat_send_dtmf_req_struct;
+/* no_dtmf shold be less than MAX_CC_ADDR_BCD_LEN.
+ The extra last one entry is for null terminal. */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+} l4ccsm_cc_sat_abort_dtmf_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 res;
+ kal_uint8 cause;
+} l4ccsm_cc_sat_send_dtmf_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ csmcc_cpi_msg_type_enum msg_type;
+ kal_bool is_ibt;
+ kal_bool is_tch;
+ kal_bool numberP;
+ l4_addr_bcd_struct number;
+ kal_uint16 disc_cause; //Add for WM FTA
+ kal_bool is_diagnostic_present;
+ kal_uint8 diagnostic;
+ l4c_call_entry_struct call_entry;
+} l4ccsm_cc_cpi_ind_struct; /*mtk00924 add 041208 for +ECPI*/
+
+/* MAUI_01315252, update call state */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 call_state;
+ l4c_call_entry_struct call_entry;
+} l4ccsm_cc_update_call_state_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+} l4ccsm_cc_call_sync_ind_struct; /*mtk00924 add 050727 for indicate MMI to get call info*/
+
+#ifdef __VIDEO_CALL_SUPPORT__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 action;/*csmcc_video_call_action_enum*/
+ kal_bool result;
+ kal_uint8 cause;
+} l4ccsm_cc_video_call_status_ind_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 call_id;
+ kal_uint8 signal_value_present;
+ kal_uint8 signal_value;
+ kal_uint8 alerting_pattern_present;
+ kal_uint8 alerting_pattern;
+ kal_uint8 cw_flag;
+ kal_uint8 auto_answer;
+ kal_uint8 call_type;
+ kal_uint8 calling_number_present;
+ l4ccsm_cc_peer_addr_struct calling_number;
+ kal_uint8 calling_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct calling_sub_addr;
+ kal_uint8 called_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct called_sub_addr;
+ kal_uint8 redirecting_number_present;
+ l4ccsm_cc_peer_addr_struct redirecting_number;
+ kal_uint8 redirecting_sub_addr_present;
+ l4ccsm_cc_sub_addr_struct redirecting_sub_addr;
+ kal_uint8 no_cli_cause_present;
+ kal_uint8 no_cli_cause;
+ kal_uint8 call_priority_present;
+ kal_uint8 call_priority;
+ kal_uint8 seq_num;
+}l4ccsm_cc_call_present_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 num_of_call;
+ l4ccsm_srvcc_call_cntxt_struct call_tbl[L4C_MAX_CALL_LIST_LEN];
+} l4ccsm_cc_srvcc_transfer_req_struct;
+
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ csmcc_cpi_msg_type_enum type;
+ csmcc_call_orig_enum direction;
+ kal_uint8 number[MAX_CC_ADDR_LEN + 1];
+ kal_bool is_far_end;
+ kal_uint16 disc_cause;
+} l4ccsm_ims_call_progress_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool call_status;
+
+} l4ccsm_ims_call_status_ind_struct;
+
+//if l4ccsm_cc_srvcc_transfer_cnf_struct.num_of_call = 0, means fail.
+typedef l4ccsm_cc_srvcc_transfer_req_struct l4ccsm_cc_srvcc_transfer_cnf_struct;
+
+#ifdef __TC7__CS__SUPPORT__
+
+typedef enum {
+ CALL_EXIST = 0,
+ CALL_NO_EXIST
+} cs_call_status_enum;
+
+typedef struct {
+ kal_uint8 ref_count;
+ kal_uint16 msg_len;
+ cs_call_status_enum call_status;
+ kal_uint8 is_mt_call;
+}l4cuas_cs_status_req_struct;
+#endif
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c2phb_enums.h b/mcu/protocol/interface/l4misc/l4c2phb_enums.h
new file mode 100644
index 0000000..774127c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2phb_enums.h
@@ -0,0 +1,78 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c2phb_enums.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for NVRAM.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C2PHB_ENUMS_H
+#define _L4C2PHB_ENUMS_H
+
+typedef enum {
+ PHB_BYNAME,
+ PHB_BYNAME_EXACT,
+ PHB_BYNUMBER
+} phb_query_method_enum;
+
+
+#define PHB_TYPE_TOTAL PHB_TYPE_ENUM_MAX
+
+#endif
+
diff --git a/mcu/protocol/interface/l4misc/l4c2phb_struct.h b/mcu/protocol/interface/l4misc/l4c2phb_struct.h
new file mode 100644
index 0000000..1318e88
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2phb_struct.h
@@ -0,0 +1,370 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c2phb_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for structure definition between PHB and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2002
+*
+*******************************************************************************
+ * FILENAME : l4c2phb_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _L4C2PHB_STRUCT_H
+#define _L4C2PHB_STRUCT_H
+
+//#include "l4c2uem_struct.h"
+#include "l4c_aux_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "common_nvram_editor_data_item.h"
+#include "l4c2phb_enums.h"
+
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+#include "nvram_editor_data_item.h"
+#include "l4_nvram_editor.h"
+#include "ps_public_struct.h"
+#include "kal_public_defs.h"
+
+#include "sim_ps_enum.h"
+
+#ifndef NVRAM_PHB_SIZE
+#define NVRAM_PHB_SIZE (54+MAX_PS_NAME_SIZE)
+#endif
+#ifndef PHB_EMAIL_SIZE
+#define PHB_EMAIL_SIZE 66
+#endif
+
+#ifndef PHB_ANR_SIZE
+#define PHB_ANR_SIZE 49
+#endif
+
+typedef struct {
+ kal_uint16 index; /* index maintained by PHB*/
+ phb_storage_enum storage; /* phb_storage_enum; Physical storage*/
+ phb_type_enum type; /* amanda add */
+ kal_uint8 num_index;
+ kal_uint8 aas_id;
+ kal_uint16 record_index; /* Record index in physical storage*/
+ l4_name_struct alpha_id; /* Alpha identifier*/
+ l4_addr_bcd_struct tel_number; /* Telephone number*/
+ kal_uint8 cap_cnf_id; /* Capability/Configuration identifier*/
+} phb_entry_struct;
+
+typedef struct {
+ kal_uint16 no_array;
+ kal_uint16 array_size;
+ phb_entry_struct *array; /* Array of raw data entry(ies), each element is type of phb_entry_struct.*/
+} l4cphb_phb_entry_array_struct;
+
+typedef struct {
+ kal_uint16 record_index; /* Record index in physical storage*/
+ kal_uint16 adn_record_index; /* adn record index */
+ kal_uint8 anr_type; /* ANRA, ANRB or ANRC */
+ kal_uint8 aas_id; /* anr alhpha id identifier */
+ l4_addr_bcd_struct tel_number; /* Telephone number*/
+ kal_uint8 cap_cnf_id; /* Capability/Configuration identifier*/
+} phb_anr_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ sim_dn_enum dn_type; /* Dial number type*/
+ kal_bool is_fdn_change;
+} l4cphb_startup_req_struct;
+
+/* EF descriptor */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result; /* phb_errno_enum; Operation result*/
+ /* obsolete */
+ kal_uint16 adn_size;
+ kal_uint16 phb_size;
+ kal_uint8 adn_alpha_length;
+ kal_uint8 fdn_alpha_length;
+ kal_uint8 bdn_alpha_length;
+ kal_uint8 msisdn_alpha_length;
+ kal_uint8 email_length;
+ /* obsolete */
+ kal_uint8 is_sim_refresh;
+ l4c_phb_desc_struct desc[PHB_TYPE_TOTAL]; /* start from (PHB_NONE + 1) */
+} l4cphb_startup_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_phb_desc_struct desc[PHB_TYPE_TOTAL];
+} l4cphb_startup_begin_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* Required for L4C*/
+ phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+ phb_storage_enum storage; /* Specifies storage*/
+ kal_uint8 num_index;
+ kal_uint16 index; /* Index of phone number entries*/
+ kal_uint16 record_index; /* Record index of physical storage*/
+ kal_uint16 total; /* Number of entries to read*/
+} l4cphb_read_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* The 'src_id' of the corresponding reqest is forwarded back in this field.*/
+ phb_errno_enum result; /* phb_errno_enum; Operation result*/
+ kal_uint16 cause;
+ kal_uint16 total; /* Number of entries*/
+} l4cphb_read_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* Required for L4C*/
+ phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+ kal_uint16 total; /* Number of entires to piggyback*/
+} l4cphb_write_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* The `src_id' of the corresponding reqest is forwarded back in this field.*/
+ phb_errno_enum result; /* phb_errno_enum; Operation result*/
+ kal_uint16 cause;
+ kal_uint16 total; /* Number of entries*/
+ kal_uint16 old_index;
+} l4cphb_write_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* Required for L4C*/
+ phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+ kal_uint8 num_index;
+ phb_storage_enum storage;
+ kal_uint8 total_piggyback; /* Number of entires to piggyback*/
+ kal_uint16 index; /* Index of phone number entries*/
+ kal_uint16 total; /* Number of entries*/
+ kal_uint16 record_index;
+} l4cphb_delete_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* The 'src_id' of the corresponding reqest is forwarded back in this field.*/
+ phb_errno_enum result; /* phb_errno_enum; Operation result*/
+ kal_uint16 cause;
+ kal_uint16 total; /* Number of entries*/
+ phb_type_enum type;
+ kal_uint16 old_index;
+} l4cphb_delete_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* Required for L4C*/
+ kal_uint16 total; /* Number of entires to piggyback*/
+ phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+ phb_query_method_enum pattern_tag;
+ union {
+ l4_name_struct alpha_id;
+ l4_addr_bcd_struct tel_number;
+ } pattern_value;
+} l4cphb_search_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* The 'src_id' of the corresponding reqest is forwarded back in this field.*/
+ phb_errno_enum result; /* phb_errno_enum; Operation result*/
+ kal_uint16 cause;
+ kal_uint16 total; /* Number of entries*/
+} l4cphb_search_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* Required for L4C*/
+ l4_addr_bcd_struct tel_number; /* The telephone number to be approved*/
+ kal_uint8 is_retrieve; /* Whether retrieving the hit entry of the given number is required*/
+ l4c_phb_approval_type_enum approval_type; /* l4c_phb_approval_type_enum */
+} l4cphb_approve_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* The `src_id' of the corresponding reqest is forwarded back in this field.*/
+ phb_errno_enum result; /* phb_errno_enum; Operation result*/
+ kal_uint16 cause;
+ phb_type_enum type; /* phb_type_enum; Type of phone number entries*/
+ kal_uint8 esc;
+} l4cphb_approve_cnf_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ l4_addr_bcd_struct number;
+} l4cphb_fdn_get_name_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ phb_errno_enum result;
+ kal_uint16 cause;
+ l4_name_struct alpha_id;
+} l4cphb_fdn_get_name_cnf_struct;
+
+/* __REL5__ */
+typedef struct {
+ kal_uint8 category;
+ l4_addr_bcd_struct tel_number;
+}l4_ecc_number_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 no_ecc;
+ l4_ecc_number_struct ecc_list[16];
+}l4cphb_update_nw_ecc_req_struct;
+
+typedef struct {
+ kal_uint8 max_name_len;
+ kal_uint8 max_num_len;
+ kal_uint16 free_num;
+ kal_uint16 total_num;
+ kal_uint16 ext_free_num;
+}l4cphb_file_info_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ phb_type_enum type;
+ kal_uint16 record_index;
+ kal_uint8 occurrence;
+} l4cphb_read_usim_req_struct;
+
+typedef l4cphb_read_usim_req_struct l4cphb_write_usim_req_struct;
+typedef l4cphb_read_usim_req_struct l4cphb_delete_usim_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ phb_errno_enum result;
+ kal_uint16 cause;
+ phb_type_enum type;
+ kal_uint16 record_index;
+ kal_uint8 occurrence;
+} l4cphb_read_usim_cnf_struct;
+
+typedef l4cphb_read_usim_cnf_struct l4cphb_write_usim_cnf_struct;
+typedef l4cphb_read_usim_cnf_struct l4cphb_delete_usim_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 file_bitmap[PHB_TYPE_TOTAL];
+ kal_uint16 record_index;
+} l4cphb_check_write_usim_entry_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ phb_errno_enum result;
+ kal_uint8 occurrence;
+ kal_uint16 record_index;
+} l4cphb_check_write_usim_entry_cnf_struct;
+
+
+//MSG_ID_L4C_PHB_UT_REQ
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool update_phb_user;
+ kal_uint32 phb_user;
+
+ kal_bool update_phb_current_action;
+ kal_uint16 phb_current_action;
+
+ kal_bool update_phb_ready_flag;
+ kal_bool phb_ready_flag;
+
+ //l4_number_struct l4cphb_approve_req_string;
+
+ kal_bool update_phb_update_from_crsm;
+ kal_bool phb_update_from_crsm; // update PHB record if CRSM is used
+
+ kal_bool update_phb_approve_ussd;
+ kal_bool phb_approve_ussd;
+
+ kal_bool update_is_fdn_change;
+ kal_bool is_fdn_change;
+
+}l4c_phb_ut_req_struct;
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c2smsal_struct.h b/mcu/protocol/interface/l4misc/l4c2smsal_struct.h
new file mode 100644
index 0000000..d8610eb
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2smsal_struct.h
@@ -0,0 +1,1242 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l4c2smsal_struct.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+/*******************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2002
+*
+*******************************************************************************
+ * FILENAME : l4c2smsal_struct.h
+ * SYNOPSIS : Functions for encoding/decoding.
+ *
+ * R E V I S I O N H I S T O R Y
+ *
+ */
+#ifndef _L4C2SMSAL_STRUCT_H
+#define _L4C2SMSAL_STRUCT_H
+
+#include "ps_public_struct.h"
+//#include "l4c_aux_struct.h"
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "irat_common_enums.h"
+#include "l3_inc_enums.h"
+#include "smsal_l4c_enum.h"
+
+
+typedef struct
+{
+ kal_uint8 fo;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 ori_dcs;
+
+ kal_uint8 vp_format;
+ kal_uint8 vp;
+
+ kal_uint16 no_msg_data;
+ l4_addr_bcd_struct sca;
+ l4_addr_bcd_struct da;
+
+} smsal_submit_msg_hdr_struct;
+/* to replace smsal_submit_msg_struct */
+
+typedef struct
+{
+ kal_uint8 fo;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 ori_dcs;
+
+ kal_uint8 pading;
+ kal_uint8 scts[7];
+
+ kal_uint16 no_msg_data;
+ l4_addr_bcd_struct sca;
+ l4_addr_bcd_struct oa;
+
+} smsal_deliver_msg_hdr_struct;
+/* to replace smsal_deliver_msg_struct */
+
+typedef struct
+{
+ kal_uint8 fo;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 ori_dcs;
+
+ kal_uint8 mr;
+ kal_uint8 scts[7];
+
+ kal_uint16 no_msg_data;
+ l4_addr_bcd_struct ra;
+ kal_uint8 dt[7];
+ kal_uint8 st;
+
+} smsal_status_report_msg_hdr_struct;
+/* to replace smsal_status_report_msg_struct; */
+
+typedef struct
+{
+ kal_uint8 fo;
+ kal_uint8 ct;
+ kal_uint8 mn;
+ kal_uint8 pid;
+ kal_uint16 no_msg_data;
+ l4_addr_bcd_struct da;
+} smsal_command_msg_hdr_struct;
+/* to replace smsal_command_msg_struct; */
+
+typedef struct
+{
+ kal_uint8 profile_no_tag;
+ kal_uint8 profile_no;
+ kal_uint16 para_ind;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 vp;
+ kal_uint8 udhi;
+ kal_uint8 tp_srr;
+ kal_uint8 tp_rp;
+ kal_uint8 da_tag;
+ l4_addr_bcd_struct da;
+ l4_addr_bcd_struct sc_addr;
+} smsal_send_msg_req_hdr_struct;
+/* to replace smsal_send_msg_req_struct */
+
+typedef struct
+{
+ kal_uint16 para_ind;
+ kal_uint8 tp_mms;
+ kal_uint8 tp_rp;
+ kal_uint8 tp_udhi;
+ kal_uint8 tp_sri;
+
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ kal_uint8 tp_scts[7];
+ l4_addr_bcd_struct oa;
+ l4_addr_bcd_struct sc_addr;
+} smsal_receive_msg_hdr_struct;
+
+typedef union {
+ smsal_deliver_msg_hdr_struct deliver;
+ smsal_submit_msg_hdr_struct submit;
+ smsal_status_report_msg_hdr_struct status_rep;
+} smsal_header_info_union;
+
+typedef struct {
+ kal_uint8 mt; /* MT Service Mode*/
+ kal_uint8 mo; /* MO Service Mode*/
+ kal_uint8 bm; /* Broadcast Message Service Mode*/
+} smsal_service_mode_struct;
+
+typedef struct {
+ kal_uint8 mode; /* Buffering Mode*/
+ kal_uint8 mt; /* MT Message Route Mode*/
+ kal_uint8 ds; /* Status Report Route Mode*/
+ kal_uint8 bm; /* Broadcast Message Route Mode*/
+} smsal_mt_msg_route_struct;
+
+typedef struct {
+ kal_uint8 mem1; /* Storage type for Memory1*/
+ kal_uint8 mem2; /* Storage type for Memory2*/
+ kal_uint8 mem3; /* Storage type for Memory3*/
+} smsal_select_mem_struct;
+
+typedef struct {
+ l4_name_struct name;
+ l4_addr_bcd_struct addr;
+ kal_uint8 capability_id;
+ kal_uint8 extension_id;
+} smsal_mailbox_addr_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id; /* Source Code*/
+ kal_uint8 is_sim_change; /* TRUE: if last IMSI changed */
+ kal_uint8 init_type;
+} l4csmsal_init_req_struct;
+
+typedef l4csmsal_init_req_struct l4csmsal_init_me_sms_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} l4csmsal_de_init_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id; /* Source Code*/
+ kal_uint8 req_type; /* Request Type*/
+ kal_uint8 status; /* Status*/
+ kal_uint8 change_status; /* change status*/
+ kal_uint16 index; /* Message Index*/
+} l4csmsal_read_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 dest_no; /* Specify set target, profile_no or line_no*/
+ kal_uint16 para_ind; /* Specify which parameters shall be set*/
+ kal_uint8 fo;
+ kal_uint8 support_concat;
+ kal_uint8 direct_display;
+ kal_uint8 bearer_serivce;
+ smsal_select_mem_struct prefer_mem;
+ smsal_mailbox_addr_struct mailbox_addr;
+ kal_uint8 vp;
+ kal_uint8 pid;
+ kal_uint8 dcs;
+ l4_addr_bcd_struct sca;
+ l4_name_struct profile_name;
+ kal_uint8 cbch_req;
+ kal_bool is_all_language_on;
+} l4csmsal_set_parameter_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 profile_no; //if para_ind=SMSAL_PARA_SAVE_PROFILE, only this field is available. (For AT only)
+ kal_uint16 para_ind; /* Specify which parameters shall be set*/
+ kal_uint8 pid; //SMSAL_PARA_PID
+ kal_uint8 dcs; //SMSAL_PARA_DCS
+ kal_uint8 vp; //SMSAL_PARA_VP
+ l4_addr_bcd_struct sca; //SMSAL_PARA_SCA
+ l4_name_struct profile_name; //SMSAL_PARA_PROFILE_NAME
+} l4csmsal_set_profile_para_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 dest_no; /* index of mailbox list based on smsal_get_mailbox_addr */
+ kal_uint16 para_ind; /* Specify which parameters shall be set*/
+ kal_uint8 fo; //SMSAL_COM_PARA_FO
+ kal_uint8 bearer_serivce; //SMSAL_COM_PARA_BEARER
+ kal_uint8 status_report; //SMSAL_COM_STATUS_REP
+ kal_uint8 reply_path; //SMSAL_COM_REPLY_PATH
+ kal_uint8 cbch_req; //SMSAL_COM_CBCH_REQ
+ kal_uint8 is_all_language_on; //SMSAL_COM_PARA_ALL_CB_LANG
+ smsal_select_mem_struct prefer_mem; //SMSAL_COM_PARA_PREFER_MEM
+ smsal_mailbox_addr_struct mailbox_addr; //SMSAL_COM_PARA_MAILBOX_ADDR
+ kal_uint8 msp_no;
+ smsal_mbi_struct mbi;
+} l4csmsal_set_common_para_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 line_no; /* message waiting line no */
+ kal_uint8 waiting_num; /* message waiting number */
+ kal_uint8 ind_type; /* message waiting type */
+}l4csmsal_set_msg_waiting_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 req_type;
+ kal_uint8 seq_num;
+ kal_uint8 fdn_check; /* true: FDN enable */
+ kal_uint8 mms_mode;
+ kal_uint16 reply_index;
+ kal_uint16 message_len; /* Length of Message*/
+ union {
+ smsal_send_msg_req_hdr_struct submit;
+ smsal_command_msg_hdr_struct command;
+ } msg_header;
+} l4csmsal_send_req_struct, l4csmsal_ims_send_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ sms_addr_struct sc_addr; /* service centre address*/
+} l4csmsal_ims_sms_deliver_req_struct, l4csmsal_ims_sms_status_req_struct,l4csmsal_ims_recv_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 mr; /* Message reference*/
+ l4_addr_bcd_struct sc_addr;
+
+} l4csmsal_ims_send_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+
+} l4csmsal_ims_recv_cnf_struct, l4csmsal_ims_sms_deliver_cnf_struct, l4csmsal_ims_sms_status_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id; /* identify background sending or else */
+} l4csmsal_ims_send_smma_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 mr; /* Message Reference*/
+ kal_uint8 src_id; /* identify background sending or else */
+} l4csmsal_ims_send_smma_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 smma; /* 0:abort, 1:send smma */
+} l4csmsal_ims_send_smma_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 result; /* Result */
+} l4csmsal_ims_send_smma_result_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 seq_num;
+} l4csmsal_send_abort_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 seq_num;
+ kal_uint8 fdn_check; //true: FDN enable
+ kal_uint16 index;
+ kal_uint16 reply_index;
+ kal_uint8 da_tag; /* Indicate whether to use da as destination address*/
+ l4_addr_bcd_struct da; /* Destination Address*/
+ kal_uint8 profile_no_tag;
+ kal_uint8 profile_no;
+ #ifdef __IMS_SUPPORT__
+ sms_addr_struct sca;
+ kal_bool is_retry;
+ kal_uint8 msg_ref;
+ smsal_domain_enum domain;
+ #endif
+} l4csmsal_send_from_storage_req_struct, l4csmsal_ims_send_from_storage_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 status;
+ kal_uint8 scts[7];
+ kal_uint16 replace_index;
+ kal_uint16 message_len; /* Length of Message*/
+ union{
+ smsal_receive_msg_hdr_struct mt_sms_hdr;
+ smsal_send_msg_req_hdr_struct mo_sms_hdr;
+ }hdr;
+} l4csmsal_write_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 del_flag;
+ kal_uint16 index;
+ kal_uint8 msg_bitmap[480]; /* length is not final value */
+
+} l4csmsal_delete_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 seq_num;
+ kal_uint8 is_sms_packed_required;
+ l4_addr_bcd_struct sc_addr;
+ kal_uint8 tpdu_length;
+ kal_uint8 tpdu[175];
+} l4csmsal_sat_send_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+} l4csmsal_init_cnf_struct;
+
+typedef l4csmsal_init_cnf_struct l4csmsal_init_me_sms_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+} l4csmsal_de_init_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 line_no; /* Number of Line*/
+ kal_uint8 msp_no;
+ kal_uint8 waiting_num;
+ kal_uint8 ind_type;
+ kal_bool is_show_num;
+ kal_bool is_clear;
+ kal_bool is_from_storage;
+
+ kal_uint8 ext_indicator; // indicate how many "message waiting" follows
+ l4csmsal_msg_waiting_ind_ext_struct msg_waiting[5];
+} l4csmsal_msg_waiting_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 dest; /* Destination Code*/
+ kal_uint8 storage_type;
+ kal_uint16 index; /* Message Index*/
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ smsal_concat_struct concat_info; /* Concat. Info*/
+
+ l4_addr_bcd_struct oa; /* Originating Address */
+
+ kal_uint8 mti;
+ kal_uint8 scts[7];
+
+} l4csmsal_new_msg_index_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 dest; /* Destination Code*/
+ kal_uint8 id; /* Id for distinguish CNMA*/
+ kal_uint8 mti; /* Message Type Identifier*/
+ kal_uint16 message_len; /* Length of Message*/
+} l4csmsal_new_msg_pdu_ind_struct, l4csmsal_ims_new_msg_pdu_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 dest; /* Destination Code*/
+ kal_uint8 id; /* Id for distinguish CNMA*/
+ kal_uint16 index;
+ kal_uint8 mti; /* Message Type Identifier*/
+ kal_uint8 rmi_use_hex;
+ kal_uint8 display_type;
+ kal_uint8 storage_type;
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint16 message_len; /* Length of Message*/
+ smsal_concat_struct concat_info; /* Concat. Info*/
+ smsal_header_info_union msg_header;
+} l4csmsal_new_msg_text_ind_struct, l4csmsal_ims_new_msg_text_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 status; /* Message Status*/
+ kal_uint8 new_status; /* For +CMGR and sync. to MMI */
+ kal_uint8 mti; /* Message Type Identifier*/
+ kal_uint8 storage_type;
+ kal_uint8 rmi_use_hex;
+ kal_uint16 index; /* For +CMGL*/
+ kal_uint16 next_index; /* Indicate the next index*/
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint8 scts[7];
+ kal_uint8 padding;
+ kal_uint16 message_len; /* Length of Message*/
+ smsal_concat_struct concat_info; /* Concat. Info*/
+ smsal_header_info_union msg_header;
+} l4csmsal_read_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 profile;
+} l4csmsal_set_parameter_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 profile;
+} l4csmsal_set_profile_para_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 profile;
+} l4csmsal_set_common_para_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_bool result;
+ kal_uint16 cause;
+ kal_uint8 src_id;
+ kal_uint8 line_no; /* message waiting line no */
+ kal_uint8 waiting_num; /* message waiting number */
+ kal_uint8 ind_type; /* message waiting type */
+}l4csmsal_set_msg_waiting_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 mr; /* Message reference*/
+ kal_uint8 seq_num;
+ kal_uint8 scts[7];
+ smsal_concat_struct concat_info; /* Concat. Info*/
+
+} l4csmsal_send_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint16 index;
+ kal_uint8 status; /* status of msg */
+ kal_uint8 storage_type;
+} l4csmsal_write_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint16 index;
+ kal_uint8 del_flag;
+ kal_uint8 storage_type;
+ kal_uint8 msg_bitmap[480]; /* length is not final value */
+} l4csmsal_delete_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 seq_num;
+}l4csmsal_send_abort_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+} l4csmsal_mem_full_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+} l4csmsal_mem_exceed_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+} l4csmsal_mem_available_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 length; //length of peer buf data; unit:byte
+ kal_uint8 access_id;
+} l4csmsal_sms_depersonalization_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 response;
+ kal_uint8 cause_present;
+ kal_uint16 cause;
+ kal_uint16 length; //length of peer buf data; unit:byte
+ kal_uint8 access_id; //SMU piggy-back
+} l4csmsal_sms_depersonalization_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 res; /* SAT response code*/
+ kal_uint8 cause; /* Error Cause*/
+} l4csmsal_sat_send_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 cbch_req;
+} l4csmsal_cbch_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint16 mi[60]; // = [SMSAL_MMI_CBMI_MAX_ENTRY]
+ kal_uint16 dcs[30]; // = [SMSAL_CB_MAX_ENTRY]
+ kal_bool mi_mask[60]; // = [SMSAL_MMI_CBMI_MAX_ENTRY]
+ kal_bool dcs_mask[30]; // = [SMSAL_CB_MAX_ENTRY]
+
+ /* follows added by Kevin */
+ kal_bool mir_mask[30]; // = [SMSAL_CB_MAX_ENTRY]
+ kal_uint16 mir[60]; // = [SMSAL_CB_MAX_ENTRY*2]
+ kal_uint8 is_all_language_on;
+ kal_uint8 para_ind;/* smsal_cb_para_enum */
+
+ l4c_cb_set_type_enum set_type;
+ smsal_cb_cmd_enum cb_cmd;
+} l4csmsal_cb_update_req_struct;
+
+/* CB UPDATE CNF added by Kevin */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ smsal_cb_cmd_enum cb_cmd;
+} l4csmsal_cb_update_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 mi;
+ kal_uint8 dcs;
+ kal_uint16 msg_length; /* max length is 93 x 15 = 1395 */
+ kal_uint8 msg_data[1];
+} l4csmsal_cb_msg_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 dest; /* RMMI or LMMI*/
+ kal_uint16 sn;
+ kal_uint16 mi;
+ kal_uint8 dcs;
+ kal_uint8 page;
+ kal_uint8 pages;
+ kal_uint8 rmi_use_hex;
+ kal_uint16 msg_length; /* max length is 93 x 15 = 1395 */
+ kal_uint8 msg_data[1];
+} l4csmsal_cb_msg_text_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 geography_type;
+} l4csmsal_cb_gs_change_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 dest;
+ kal_uint16 msg_length;
+ kal_uint8 msg_data[CB_MAX_DATA_NUM_PER_PAGE];
+ rat_enum rat;
+} l4csmsal_cb_msg_pdu_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 plmn[MAX_PLMN_LEN+1];
+ rat_enum rat;
+} l4csmsal_cb_service_by_plmn_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 mid;
+ kal_uint16 sn;
+} l4csmsal_cb_msg_removal_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint16 dest_mod_id;
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ kal_uint8 dcs;
+ kal_uint8 mti; /* Message Type Identifier*/
+
+ kal_uint8 scts[7];
+ smsal_concat_struct concat_info; /* Concat. Info*/
+ l4_addr_bcd_struct oa; /* Originating Address */
+ kal_uint16 message_len; /* Length of Message*/
+
+}l4csmsal_app_data_ind_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 dest; /* Destination Code*/
+ kal_uint8 startup_seq_num;
+ kal_uint8 mti; /* Message Type Identifier*/
+ kal_uint8 status;
+ kal_uint8 storage_type;
+ kal_uint8 scts[7];
+ kal_uint8 padding;
+ kal_uint16 index;
+ kal_uint16 message_len; /* Length of Message*/
+ kal_uint16 dest_port;
+ kal_uint16 src_port;
+ smsal_concat_struct concat_info; /* Concat. Info*/
+ smsal_header_info_union msg_header;
+} l4csmsal_startup_read_msg_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 access_id;
+ l4_addr_bcd_struct sc_addr;
+ l4_addr_bcd_struct da;
+} l4csmsal_fdn_check_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 result; //true: in FDN list(send), false: not in FDN list
+ kal_uint16 cause; //PHB_L4C_ERROR
+} l4csmsal_fdn_check_rsp_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 action;
+ kal_uint8 dst_storage;
+ kal_uint16 src_index;
+ kal_uint8 src_id;
+}l4csmsal_copy_msg_req_struct;
+
+/* __UNIFIED_MESSAGE_BACKGROUND_SEND_SUPPORT__ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 new_status; /* smsal_status_enum */
+ kal_uint16 index;
+ kal_uint8 src_id;
+}l4csmsal_set_status_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 action;
+ kal_uint8 dst_storage;
+ kal_uint16 src_index;
+ kal_uint16 dst_index;
+ kal_uint8 src_id;
+}l4csmsal_copy_msg_cnf_struct;
+
+/* __UNIFIED_MESSAGE_BACKGROUND_SEND_SUPPORT__ */
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint16 index;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 src_id;
+}l4csmsal_set_status_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 action;
+}l4csmsal_hz_cb_act_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 dest; /* not used */
+ kal_uint16 sn;
+ kal_uint16 mi;
+ kal_uint8 dcs;
+ kal_uint8 page;
+ kal_uint8 pages;
+ kal_uint8 rmi_use_hex; /* not used */
+ kal_uint16 msg_length;
+ kal_uint8 msg_data[1];
+} l4csmsal_hz_cb_msg_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+}l4csmsal_get_mailbox_num_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 src_id;
+}l4csmsal_get_mailbox_num_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint16 index; // Message Index
+} l4csmsal_read_raw_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; // Result Code
+ kal_uint16 error_cause; // Error Cause
+ kal_uint16 index; // Message Index
+ kal_uint8 status; // Status of msg
+ kal_uint8 storage_type; // SMSAL_SM or SMSAL_ME
+ kal_uint16 data_len; // Message length
+} l4csmsal_read_raw_data_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 storage_type; // SMSAL_SM or SMSAL_ME
+} l4csmsal_write_raw_data_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result; // Result Code
+ kal_uint16 error_cause; // Error Cause
+ kal_uint16 index; // Message Index
+ kal_uint8 status; // Status of msg
+ kal_uint8 storage_type; // SMSAL_SM or SMSAL_ME
+} l4csmsal_write_raw_data_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint32 error_cause;
+ kal_uint8 uid;
+}l4csmsal_send_deliver_report_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 result;
+ kal_uint32 error_cause;
+ kal_uint8 uid;
+}l4csmsal_send_deliver_report_cnf_struct;
+
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint32 sm_max_num;
+ kal_uint32 sm_current_num;
+ kal_uint32 me_max_num;
+ kal_uint32 me_current_num;
+ kal_uint32 sr_max_num;
+ kal_uint32 sr_current_num;
+ }l4csmsal_sync_msg_storage_req_struct;
+
+ typedef struct
+ {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ kal_uint32 cause;
+ }l4csmsal_mt_sms_final_ack_ind_struct;
+
+// typedef smsal_evmi_struct l4csmsal_enhanced_voice_mail_ind_struct;
+// l4csmsal_enhanced_voice_mail_ind_struct should be the same as smsal_evmi_struct
+typedef struct
+{
+ kal_uint8 evm_pdu_type;
+ kal_uint8 multi_sub_profile;
+ kal_uint8 is_store;
+ kal_uint8 vm_almost_full;
+ kal_uint8 vm_full;
+ kal_uint8 vm_status_ext_flg;
+
+ l4_addr_bcd_struct vm_access_addr;
+ kal_uint8 number_of_vm_unread; // should be stored in (U)SIM
+ kal_uint8 number_of_vm_notify; // max 15
+ kal_uint8 number_of_vm_delete; // max 31
+
+ kal_uint8 l4_status; // 0:init, 1: sent to MMI, 2:free
+
+ kal_uint8 vm_status_ext_len;
+ kal_uint8 *vm_status_ext_data;
+
+ smsal_evmi_msg_struct *vm_msg[32];
+
+}l4csmsal_enhanced_voice_mail_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+} l4csmsal_rat_change_start_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+} l4csmsal_rat_change_finish_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint16 error_cause; /* Error Cause*/
+ kal_uint8 mr; /* Message reference*/
+ l4_addr_bcd_struct sc_addr;
+ smsal_domain_enum domain;
+
+} l4csmsal_ims_send_from_storage_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+ kal_uint8 mr; /* Message reference*/
+} l4csmsal_ims_update_msgbox_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ kal_uint8 src_id;
+ kal_uint8 result; /* Result Code*/
+} l4csmsal_ims_update_msgbox_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool enable;
+} l4csmsal_update_sms_over_sgs_cfg_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_full_changed;
+} l4csmsal_sync_msg_ind_struct;
+
+
+typedef struct
+{
+ /* smsal_mb_entry_state_enum */
+ kal_uint8 state;
+ /* state of the entry */
+
+ /* smsal_storage_enum */
+ kal_uint8 storage_type;
+ /* storage type of the entry */
+
+ /* smsal_mti_enum */
+ kal_uint8 mti;
+ /* message type identifier */
+
+ kal_uint8 status;
+ /* status of the message */
+
+ kal_uint16 record_no;
+ /* indicate record number in storage */
+
+ kal_uint16 mb_type_ind;
+ /* bitmap for specific type SM, ie. PID with replace type, */
+ /* FO with reply path. */
+
+} smsal_mb_entry_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 domain;
+ kal_uint8 direction;
+} l4csmsal_sms_end_ind_struct;
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c2tcm_struct.h b/mcu/protocol/interface/l4misc/l4c2tcm_struct.h
new file mode 100644
index 0000000..d62195d
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c2tcm_struct.h
@@ -0,0 +1,758 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * L4C2TCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of TCM and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C2TCM_STRUCT_H
+#define _L4C2TCM_STRUCT_H
+
+#include "ps_public_struct.h"
+
+#include "l4c2abm_struct.h"
+#include "kal_public_api.h"
+#include "tcm_api.h"
+#include "ps_public_enum.h"
+#include "l4c2tcm_func.h"
+#include "irat_common_struct.h"
+#include "l4c_common_enum.h"
+
+/* __MEDIATEK_SMART_QOS__ */
+#include "nvram_editor_data_item.h"
+
+#include "c2k_irat_msg_struct.h"
+
+/* __APP_SECONDARY_PDP_SUPPORT__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+} tcm_pdp_reactivate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+} l4c_tcm_eps_attach_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool cause2_present;
+ ps_cause_enum cause2;
+} l4c_tcm_eps_attach_pdn_act_ind_struct; // convert it to CGEV
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ l4ctcm_act_reason req_reason; /* Used by ETCM */
+ l4ctcm_egact_support_rat_enum rat;
+ //l4ctcm_egact_cause_enum cause;
+} tcm_pdp_activate_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+} tcm_pdp_activate_rej_rsp_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 qfi; // Used only by vgtcm, 0 for activate flow, 0xff for normal modify, others for deactivate specified flow
+} tcm_pdp_modify_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ #ifdef __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ kal_bool local_deactivate_pdp; /* __LOCAL_DEACTIVATE_PDP_SUPPORT__ */
+ #endif // ~ __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ tcm_pdp_deact_reason_enum deact_reason; // Used only in RAT_TCM >> ETCM >> ESM (due to MSG_ID_TCM_RAT_TCM_INIT_DEACTIVATE_CONTEXT_IND).
+ l4ctcm_egact_support_rat_enum rat;
+} tcm_pdp_deactivate_req_struct;
+
+/* for __APP_SECONDARY_PDP_SUPPORT__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool is_qos_present; // indicates if QoS modification
+ nvram_editor_qos_struct modify_qos; // modifying QoS value
+} ltcm_pdp_qos_tft_modify_req_struct;
+/* ~for __APP_SECONDARY_PDP_SUPPORT__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 apn_length;
+ kal_uint8 apn[100];
+ kal_uint8 dcomp_algo;
+ kal_uint8 hcomp_algo;
+ kal_uint8 pdp_type;
+ kal_uint8 pdp_addr_len;
+ kal_uint8 addr_val[16]; // AT+CGDCONT should not set static IPv6 address, so 16*u8 size is okay?
+ kal_uint8 ipv4addralloc; // __REL8__
+ kal_uint8 p_cscf_discovery; //R10
+ kal_uint8 im_cn_signalling_flag; //R10
+ kal_uint8 request_type; //R12
+ l4c_cmd_conflict_check_option_enum check_option;
+ nas_priority_config_enum nas_priority_config ; // __MTC_SUPPORT__
+ eab_override_config_enum eab_override_config ; // __MTC_SUPPORT__
+ l4c_tcm_securepco_enum secure_pco; // no use?
+ l4c_tcm_activate_pdp_request_ipv4_mtu_enum act_pdp_with_pco_req_v4_mtu;
+ l4c_tcm_local_addr_ind_enum local_addr_ind; //no use?
+ l4c_tcm_non_ip_mtu_discovery_enum non_ip_mtu_discovery;
+ l4c_tcm_reliable_data_service_enum reliable_data_service;
+ l4c_tcm_ssc_mode_enum ssc_mode;
+ kal_bool s_nssai_present;
+ l4c_tcm_s_nssai_struct s_nssai;
+ l4c_tcm_access_type_enum access_type;
+ l4c_tcm_rqos_ind_enum rqos_ind;
+ l4c_tcm_mh6_pdu_enum mh6_pdu;
+ l4c_tcm_always_on_pdu_enum always_on_pdu;
+ kal_uint8 psi;
+ kal_bool old_psi_present;
+ kal_uint8 old_psi;
+ kal_bool vgpdp_type_present;
+ kal_uint8 vgpdp_type;
+ kal_bool vgapn_present;
+ kal_uint8 vgapn_length;
+ kal_uint8 vgapn[100];
+ l4c_tcm_ladn_dnn_enum ladn_dnn;
+} l4ctcm_set_pri_pdp_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+} l4ctcm_set_this_is_an_invalid_apn_notify_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ pdp_addr_type_enum roaming_ip_type;
+ kal_uint8 psi;
+} l4ctcm_set_extended_pdp_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool clear_all_apn_info;
+ kal_uint8 apn_idx; /* apn table entry index */
+ kal_uint8 apn_length;
+ kal_uint8 apn[MAX_APN_LEN];
+ kal_uint16 inactivity_time;
+}l4ctcm_sync_apn_info_req_struct;
+
+typedef struct {
+ kal_bool is_mobile_data_enable_present;
+ kal_bool is_mobile_data_enable;
+ kal_bool is_mobile_data_roaming_enable_present;
+ kal_bool is_mobile_data_roaming_enable;
+ kal_bool is_volte_enable_present;
+ kal_bool is_volte_enable;
+ kal_bool is_vzw_ims_test_mode_enable_present;
+ kal_bool is_vzw_ims_test_mode_enable;
+} l4c_cellular_network_config;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_cellular_network_config config;
+}l4ctcm_cellular_network_config_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 prim_context_id;
+ kal_uint8 dcomp_algo;
+ kal_uint8 hcomp_algo;
+ kal_uint8 im_cn_signalling_flag; //R10
+} l4ctcm_set_sec_pdp_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 qos_type;
+ kal_uint8 delay_class;
+ kal_uint8 reliability_class;
+ kal_uint8 peak_throughput;
+ kal_uint8 precedence_class;
+ kal_uint8 mean_throughput;
+} l4ctcm_set_qos_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 qos_type;
+ kal_uint8 traffic_class;
+ kal_uint8 delivery_order;
+ kal_uint8 delivery_of_err_sdu;
+ kal_uint8 max_sdu_size;
+ kal_uint8 max_bitrate_up_lnk;
+ kal_uint8 max_bitrate_down_lnk;
+ kal_uint8 residual_bit_err_rate;
+ kal_uint8 sdu_err_ratio;
+ kal_uint8 transfer_delay;
+ kal_uint8 traffic_hndl_priority;
+ kal_uint8 guarntd_bit_rate_up_lnk;
+ kal_uint8 guarntd_bit_rate_down_lnk;
+ kal_uint8 signalling_indication;
+ kal_uint8 source_statistics_descriptor;
+ kal_uint8 ext_max_bitrate_down_lnk;
+ kal_uint8 ext_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext_max_bitrate_up_lnk;
+ kal_uint8 ext_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext2_max_bitrate_down_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext2_max_bitrate_up_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk;
+} l4ctcm_set_eqos_info_req_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ kal_uint8 pdn_num; /**< PDN No. */
+ pdn_info_struct pdn[MAX_PDN_NUM]; /**< PDN information */
+}l4ctcm_set_multiple_pdn_info_req_struct;
+
+
+typedef struct{
+ LOCAL_PARA_HDR
+
+ kal_uint8 action_context_id;
+
+ /** Set target field to this value */
+ kal_uint32 value;
+
+ /** Used to indicate which field we want to change */
+ l4ctcm_session_info_block_field_enum field;
+}l4ctcm_set_specific_context_req_struct;
+
+//mtk04121
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 qci;
+ kal_uint8 max_bitrate_up_lnk;
+ kal_uint8 max_bitrate_down_lnk;
+ kal_uint8 guarntd_bit_rate_up_lnk;
+ kal_uint8 guarntd_bit_rate_down_lnk;
+ kal_uint8 ext_max_bitrate_up_lnk;
+ kal_uint8 ext_max_bitrate_down_lnk;
+ kal_uint8 ext_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext_guarntd_bit_rate_down_lnk;
+ kal_uint8 ext2_max_bitrate_up_lnk;
+ kal_uint8 ext2_max_bitrate_down_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_up_lnk;
+ kal_uint8 ext2_guarntd_bit_rate_down_lnk;
+
+ kal_bool is_use_ext_qos_for_dl_gbr;
+ kal_bool is_use_ext_qos_for_ul_gbr;
+ kal_bool is_use_ext_qos_for_dl_mbr;
+ kal_bool is_use_ext_qos_for_ul_mbr;
+ kal_uint64 ext_eps_qos_dl_gbr;
+ kal_uint64 ext_eps_qos_ul_gbr;
+ kal_uint64 ext_eps_qos_dl_mbr;
+ kal_uint64 ext_eps_qos_ul_mbr;
+} l4ctcm_set_eps_qos_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4c_vgqos_struct qos_info;
+} l4ctcm_set_vgqos_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+} l4ctcm_start_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 auth_type;
+} l4ctcm_set_ppp_auth_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+
+ l4c_cgauth_info_struct cgauth_info;
+ kal_uint8 psi;
+} l4ctcm_set_cgauth_info_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint32 channel_id;
+ pdp_addr_type_enum pdp_type;
+}l4ctcm_enter_data_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+}l4ctcm_leave_data_mode_req_struct;
+
+/* __MEDIATEK_SMART_QOS__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_msq_on ; /* True: Use R6 QOS if the current PLMN (NW/SIM) is on MSQ list (nvram_ef_msq_list_struct). */
+} l4ctcm_set_msq_mode_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nvram_ef_msq_entry_struct entry ;
+} l4ctcm_set_msq_entry_req_struct;
+/* __MEDIATEK_SMART_QOS__ */
+
+/* mtk00714 w0637: AT definition */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint16 undefine_action; //l4c_action_enum
+} l4ctcm_undefine_pdp_info_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 on_off;
+} l4ctcm_set_acl_mode_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 start_index;
+ kal_uint16 max_read_entries;
+} l4ctcm_get_acl_entries_req_struct;
+
+typedef struct
+{
+ kal_uint8 apn[MAX_APN_LEN];
+} tcm_acl_entry_struct;
+
+typedef struct
+{
+ kal_uint8 context_id;
+ kal_bool is_success;
+ ps_cause_enum error_cause;
+} l4ctcm_at_report_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 index;
+ tcm_acl_entry_struct acl_entry;
+} l4ctcm_set_acl_entry_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ tcm_acl_entry_struct acl_entry;
+} l4ctcm_add_acl_entry_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool del_all;
+ kal_uint16 index;
+ tcm_acl_entry_struct acl_entry;
+} l4ctcm_del_acl_entry_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 query_id;
+ kal_uint8 last_cid;
+} l4ctcm_query_ext_gprs_history_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 reset_id;
+ kal_bool reset_all;
+ kal_bool reset_certain_cid_last_history;
+ kal_uint8 context_id;
+ kal_bool reset_total_history;
+} l4ctcm_reset_ext_gprs_history_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_main_ps;
+} l4ctcm_data_allow_req_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool clean_egpco_context;
+
+ kal_bool req_v4_dns;//000D
+
+ kal_bool req_v6_dns; //0003
+
+ kal_bool req_msisdn; //000E
+
+ kal_bool req_pcscf_reselection_support; //0012
+
+ kal_bool ps_data_off_support_present; //0017
+ kal_uint8 ps_data_off_support_value;
+
+ kal_bool req_op_pco_id; //FF00
+ kal_uint32 op_pco_id;
+ plmn_id_rat_struct op_pco_plmn_id;
+
+ kal_bool req_v6_epdg; //FF01
+ plmn_id_rat_struct epdg_v6_cointainer; // VZ_REQ_LTEDATA_40923 : always set to 311480
+
+ kal_bool req_v4_epdg; //FF02
+ plmn_id_rat_struct epdg_v4_cointainer; // VZ_REQ_LTEDATA_40923 : always set to 311480
+
+ kal_bool req_vzw_5guw; //FF03
+ plmn_id_rat_struct vzw_5guw_cointainer; // Unified_5G_Icon_Logic : always set to 311480
+
+ kal_uint8 psi;
+}l4ctcm_set_egpco_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_ims_roaming_enable;
+} l4ctcm_set_eimsroam_config_value_req_struct;
+
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/l4c_cc_cmd.h b/mcu/protocol/interface/l4misc/l4c_cc_cmd.h
new file mode 100644
index 0000000..a6384b2
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_cc_cmd.h
@@ -0,0 +1,222 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_cc_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_CC_CMD_H
+#define _L4C_CC_CMD_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_aux_struct.h"
+//#include "ps2sat_struct.h"
+//#include "l4c_common_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+#include "l4c2csm_cc_struct.h"
+#include "l4_vdm_enum.h"
+
+extern kal_bool l4c_cc_exe_reset_acm_req(kal_uint8 src_id, kal_uint8 *pin);
+
+extern kal_bool l4c_cc_get_acm_value_req(kal_uint8 src_id, kal_uint32 *acm);
+
+extern kal_bool l4c_cc_set_acm_max_req(kal_uint8 src_id, kal_uint8 *pin, kal_uint32 val);
+
+extern kal_bool l4c_cc_get_acm_max_req(kal_uint8 src_id, kal_uint32 *acm_max);
+
+extern kal_bool l4c_cc_get_ccm_value_req(kal_uint8 src_id, kal_uint32 *ccm);
+
+extern kal_bool l4c_cc_exe_reset_ccm_req(kal_uint8 src_id);
+
+extern void l4c_cc_send_csm_call_abort_req(void);
+
+
+extern kal_bool l4c_cc_set_bearer_service_req(kal_uint8 src_id, kal_uint8 speed, kal_uint8 name, kal_uint8 ce);
+
+extern kal_bool l4c_cc_get_bearer_service_req(kal_uint8 src_id, kal_uint8 *speed, kal_uint8 *name, kal_uint8 *ce);
+
+extern kal_bool l4c_cc_set_line_req(kal_uint8 src_id, kal_uint8 line);
+
+extern kal_bool l4c_cc_set_cug_params_req(kal_uint8 src_id, kal_uint8 index, kal_uint8 mode, kal_uint8 info);
+
+extern kal_bool l4c_cc_get_cug_params_req(kal_uint8 src_id, kal_uint8 *index, kal_uint8 *mode, kal_uint8 *info);
+
+extern kal_bool l4c_cc_exe_chld_req(
+ kal_uint8 src_id,
+ kal_uint8 opcode, /* csmcc_crss_req_enum */
+ kal_uint8 call_id);
+
+extern kal_bool l4c_cc_exe_hangup_active_call_req(kal_uint8 src_id);
+
+extern kal_bool l4c_cc_get_call_list_req(kal_uint8 src_id, l4c_call_list_struct *call_list, kal_bool is_clccs);
+
+extern kal_bool l4c_cc_set_call_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_cc_set_call_capability(kal_uint32 capability);
+
+extern kal_bool l4c_cc_get_call_mode_req(kal_uint8 src_id, kal_uint8 *mode);
+
+extern kal_bool l4c_cc_get_phone_activity_req(kal_uint8 src_id, kal_uint8 *act);
+
+extern kal_bool l4c_cc_set_single_num_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_cc_get_single_num_req(kal_uint8 src_id, kal_uint8 *mode);
+
+extern kal_bool l4c_cc_exe_call_deflect_req(
+ kal_uint8 src_id,
+ l4c_number_struct dest,
+ kal_bool sub_addr_flag,
+ l4c_sub_addr_struct sub_dest);
+
+extern kal_bool l4c_cc_exe_send_dtmf_req(kal_uint8 src_id, kal_uint8 digit,kal_uint8 call_id,l4_dtmf_action_enum cmd);
+
+extern kal_bool l4c_cc_exe_stop_dtmf_req(kal_uint8 src_id,kal_uint8 call_id);
+
+extern kal_bool l4c_cc_exe_start_auto_dtmf_req(kal_uint8 src_id, kal_uint8 *digit);
+
+extern kal_bool l4c_cc_exe_ata_req(kal_uint8 src_id);
+
+#ifdef __SATCE__
+extern kal_bool l4c_sat_csd_call_setup_req(
+ kal_uint8 src_id,
+ kal_uint8 size_of_addr,
+ kal_uint8 *addr,
+ kal_uint8 size_of_subaddr,
+ kal_uint8 *subaddr,
+ kal_uint8 call_type,
+ sat_csd_bearer_para_struct bearer_para);
+#endif /* __SATCE__ */
+extern kal_bool l4c_cc_exe_call_setup_req(
+ kal_uint8 src_id,
+ l4c_number_struct dest,
+ kal_uint8 redial_count,
+ kal_uint8 call_type,
+ kal_uint8 clir_flag, /* csmcc_clir_info_enum */
+ kal_bool cug_option,
+ kal_uint8 als_type,
+ kal_uint8 ecc_info);
+
+extern kal_bool l4c_cc_exe_call_modify_req(kal_uint8 src_id);
+
+#ifndef __UCM_SUPPORT__
+extern kal_bool l4c_cc_exe_ath_req(kal_uint8 src_id, l4c_ath_req_enum op_code);
+#endif /*__UCM_SUPPORT__*/
+
+extern void append_short_list(
+ l4c_call_list_struct *output,
+ kal_uint8 index,
+ kal_uint8 call_id,
+ kal_uint8 call_state,
+ kal_uint8 mpty,
+ kal_uint8 *number);
+
+extern kal_bool l4c_cc_exe_disc_aux_req(kal_uint8 src_id);
+
+extern kal_bool l4c_cc_rel_comp_req(kal_uint8 src_id, kal_uint8 call_id);
+
+extern kal_bool l4c_cc_get_inter_working_func_req(kal_uint8 src_id, kal_uint8 *iwf);
+
+extern kal_bool l4c_cc_set_inter_working_func_req(kal_uint8 src_id, kal_uint8 iwf);
+
+extern void l4c_mmi_ucm_at_res_req(kal_uint8 source_id, kal_uint8 result, kal_uint8 cause);
+
+extern void l4c_mmi_ucm_rcode_req(
+ kal_uint8 source_id,
+ kal_uint8 type,
+ kal_uint8 call_id,
+ kal_uint8 call_type,
+ l4c_number_struct number);
+
+extern void l4c_mmi_ucm_hf_ciev_req(kal_uint8 ind_type, kal_uint8 event);
+
+extern void l4c_cc_call_present_res_req(kal_uint8 is_mt_call_allowed,kal_uint8 call_id,kal_uint8 seq_num, kal_uint16 reject_cause);
+
+extern void l4c_cc_exe_cpi_req(kal_uint32 mode);
+
+extern void l4c_set_current_action(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool l4c_cc_get_ton_req(kal_uint8 *ton_type);
+
+extern kal_bool l4c_cc_set_ton_req(kal_uint8 ton_type);
+
+extern void l4c_ctm_set_status_req(kal_uint8 mode);
+
+extern kal_bool l4c_rtt_str_req(kal_uint8 call_id, kal_uint8 *rtt_str, kal_uint16 rtt_str_len);
+
+extern kal_bool l4c_cc_exe_srvcc_req(kal_uint8 src_id,
+ kal_uint8 num_call,
+ l4ccsm_srvcc_call_cntxt_struct *call_tbl);
+
+#if defined(__IMS_SUPPORT__)
+extern kal_bool l4c_cc_ims_call_progress_req(kal_uint8 call_id,
+ kal_uint8 type,
+ kal_uint8 direction,
+ kal_uint8 *number,
+ kal_bool is_far_end,
+ kal_uint32 disc_cause);
+
+#endif
+
+extern void l4c_cc_call_release_ind(void);
+
+extern void l4c_cc_call_connect_ind(void);
+
+extern void l4c_cc_call_chld_ind(kal_uint8 call_id);
+
+extern void l4c_cc_call_wait_ind(void);
+
+extern void l4c_cc_call_alert_ind(kal_uint8 alert);
+
+extern void l4c_cc_context_switch(l4c_me_reconfig_enum reconfig_type);
+#endif /* _L4C_CC_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_ciss_cmd.h b/mcu/protocol/interface/l4misc/l4c_ciss_cmd.h
new file mode 100644
index 0000000..262b004
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ciss_cmd.h
@@ -0,0 +1,211 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_ciss_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_CISS_CMD_H
+#define _L4C_CISS_CMD_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_aux_struct.h"
+//#include "l4c_common_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+extern kal_bool l4c_ss_exe_emlpp_req(
+ kal_uint8 src_id,
+ kal_uint8 opcode, /* op_code_enum */
+ kal_uint8 priority);
+
+extern kal_bool l4c_ss_exe_repeat_CCFC_req(
+ kal_uint8 src_id,
+ kal_uint8 mode, /* op_code_enum */
+ kal_uint8 reason, /* ss_code_enum */
+ kal_uint8 bs_code, /* (class) bs_code_enum */
+ kal_uint8 timer,
+ l4c_number_struct dest,
+ kal_bool sub_addr_flag,
+ l4c_sub_addr_struct sub_dest);
+
+extern kal_bool l4c_ss_exe_call_forward_req(
+ kal_uint8 src_id,
+ kal_uint8 opcode, /* op_code_enum */
+ kal_uint8 type, /* ss_code_enum */
+ kal_uint8 bs_code, /* bs_code_enum */
+ kal_uint8 timer,
+ l4c_number_struct dest,
+ kal_bool sub_addr_flag,
+ l4c_sub_addr_struct sub_dest);
+
+extern kal_bool l4c_ss_exe_repeat_CCWA_req(
+ kal_uint8 src_id,
+ kal_uint8 mode, /* op_code_enum */
+ kal_uint8 classx /* (class) bs_code_enum */ );
+
+extern kal_bool l4c_ss_exe_call_wait_req(
+ kal_uint8 src_id,
+ kal_uint8 opcode, /* op_code_enum */
+ kal_uint8 bs_code); /* bs_code_enum */
+
+extern kal_bool l4c_ss_exe_interrogate_req(kal_uint8 src_id, kal_uint8 type);
+
+extern kal_bool l4c_ss_exe_repeat_CLCK_SS_req(
+ kal_uint8 src_id,
+ kal_uint8 mode, /* op_code_enum */
+ kal_uint8 reason, /* ss_code_enum */
+ kal_uint8 classx, /* (class) bs_code_enum */
+ kal_uint8 *passwd);
+
+extern kal_bool l4c_ss_exe_call_barring_req(
+ kal_uint8 src_id,
+ kal_uint8 opcode, /* op_code_enum */
+ kal_uint8 type, /* ss_code_enum */
+ kal_uint8 bs_code,
+ kal_uint8 *passwd);
+
+extern kal_bool l4c_ss_get_priority_status_req(kal_uint8 src_id, kal_uint8 *priority);
+
+extern kal_bool l4c_ss_set_clir_flag_req(kal_uint8 src_id, kal_uint8 clir_flag); /* rmmi_clir_enum */
+
+extern kal_bool l4c_ss_exe_change_password_req(
+ kal_uint8 src_id,
+ kal_uint8 type, /* ss_code_enum */
+ kal_uint8 *old,
+ kal_uint8 *new1,
+ kal_uint8 *new2);
+
+extern kal_bool l4c_ss_exe_ussd_req_ext(kal_uint8 src_id,
+ kal_uint8 action,
+ kal_uint8 *str,
+ kal_uint8 dcs,
+ kal_uint8 length);
+
+extern kal_bool l4c_ss_exe_ussd_req(kal_uint8 src_id, kal_uint8 *str, kal_uint8 dcs, kal_uint16 length);
+
+extern kal_bool l4c_ss_exe_ecusd_req(kal_uint8 src_id, kal_uint8 *str, kal_uint8 dcs, kal_uint16 length);
+
+extern kal_bool l4c_ss_exe_ccbs_req(kal_uint8 src_id, kal_uint8 op_code, kal_uint8 index);
+
+extern kal_bool l4c_ss_exe_abort_req(kal_uint8 src_id);
+
+extern kal_bool l4c_ss_exe_ack_req (kal_uint8 src_id,kal_uint8 cause);
+
+extern kal_bool l4c_sat_send_ussd_req(kal_uint8 input[MAX_DIGITS_USSD],
+ kal_uint8 dcs,
+ kal_uint8 length,
+ kal_uint8 type_of_modification);
+
+extern kal_bool l4c_sat_send_ss_req(kal_uint8 input[MAX_DIGITS_USSD],
+ kal_uint8 dcs,
+ kal_uint8 length,
+ kal_uint8 type_of_modification);
+
+extern kal_bool l4c_em_set_essp_req(kal_uint32 mode);
+extern kal_uint32 l4c_em_get_essp_req(void);
+#endif /* _L4C_CISS_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_common_enum.h b/mcu/protocol/interface/l4misc/l4c_common_enum.h
new file mode 100644
index 0000000..dad258f
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_common_enum.h
@@ -0,0 +1,1929 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_common_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+#ifndef _L4C_COMMON_ENUM_H
+#define _L4C_COMMON_ENUM_H
+
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "l4c_common_enum_public.h"
+
+
+#include "global_def.h"
+
+#include "ps_public_def.h"
+#include "atp_public_defs.h"
+
+#define L4C_MAX_NAME_LEN 10
+
+#define MAX_PIN_LENGTH 8 /* to be removed */
+
+/*#define MAX_CC_SUB_ADDR_BCD_LEN 21 -move to ps_public_enum.h*/
+
+
+#define MAX_SS_PASSWD_LEN 9
+#define MAX_SS_PASSWD_BCD_LEN 5
+
+#define MAX_PLMN_BCD_LEN 3
+
+
+#define MAX_SIM_PASSWD_BCD_LEN 5
+
+#define INVALID_BS_CODE 0
+
+#define L4C_USE_DEFAULT_VALUE 255
+#define L4C_MAX_RETRY_COUNT 2
+
+#define MAX_CREE_STR_LEN 75
+
+#define l4C_MAX_TRANS_NUM 12
+
+
+#if ((!defined(__MTK_TARGET__)) && defined(__TCM_UT__)) // only used for UT Regression
+#define TCM_MAX_ACL_FILE_SIZE_SUPPORT 1000
+#else // #if ((!defined(__MTK_TARGET__)) && defined(__TCM_UT__)) // only used for UT Regression
+#define TCM_MAX_ACL_FILE_SIZE_SUPPORT 255
+#endif // ~ #if ((!defined(__MTK_TARGET__)) && defined(__TCM_UT__)) // only used for UT Regression
+
+#define TCM_BINDING_ID_NOT_BIND 0xFFFF
+
+#define L4C_LONGPRESS_TIMER 20 /* 2 sec */
+#define L4C_REPEATED_TIMER 10 /* 2 sec */
+
+#define L4C_DOWNLOAD_ERROR_TIMER 100 /* 10 sec */
+#define L4C_DOWNLOAD_SLEEP_TIMER 10 /* 1 sec */
+/*
+ MAUI_02598495, custom gprs detach timer
+ #define L4C_GPRS_CONNECT_TIEMR 20
+*/
+
+#define L4C_MAX_EM_PDP_NUM 3 //mtk00714 w0634
+
+#define L4C_SET_PS_CONF_TEST_PROFILE_OK 0
+#define L4C_SET_PS_CONF_TEST_PROFILE_CONFLICT -1
+#define L4C_SET_PS_CONF_TEST_PROFILE_WRITE_FAIL -2
+
+#define INFO_EVENT 0
+#define INFO_REQ 1
+
+// hannu.huusko move the definition L4C_INVALID_RS_SNR to ps_public_def.h for ERRC LMOB in L1 reference
+#define L4C_INVALID_SERV_BAND 0xffff
+#define L4C_QOS_BITRATE_10_GBPS ((kal_uint64)10000000) // 10Gbps == 10M Kbps
+
+#define L4C_ECELL_INVALID_VALUE 0x0fffffff
+#define L4C_ECELL_INVALID_BSIC 0xffff
+#define L4C_ECELL_MAX_BUFFER_SIZE 2048
+#define L4C_ECELL_MAX_DATA_SIZE_PER_CELL 392 // refer to the max increasing size of rmmi_ecell_result_code_fmttr()
+#define L4C_ECELL_MAX_DATA_SIZE_OF_C2K_CELL 192 // refer to the max increasing size of l4c_nw_ecell_append_c2k_nbr_cell_info()
+
+
+#define L4C_NW_INVALID_CELL_ID 0x0FFFFFFF
+#define L4C_NW_INVALID_LAC 0xFFFF
+#define L4C_NW_INVALID_RAC 0xFF
+
+#define L4C_NSSAI_BUFFER_SIZE 2048
+#define L4C_PREFERRED_3GPP_NSSAI 0x01
+#define L4C_PREFERRED_NON3GPP_NSSAI 0x02
+
+#define L4C_NW_INVALID_SRXLEV L4C_INVALID_SIGNAL_INT16
+#define L4C_NW_INVALID_SQUAL L4C_INVALID_SIGNAL_INT16
+
+
+
+typedef enum
+{
+ L4C_KEY_FROM_DRVKPD = 0,
+ L4C_KEY_FROM_CKPD
+}l4c_keypad_press_type_enum;
+
+typedef enum {
+ ACL_NOT_SUPPORT,
+ ACL_DISABLE,
+ ACL_ENABLE
+} l4c_acl_mode_enum;
+
+enum
+{
+ GSM_ONLY,
+ GPRS_ONLY,
+ GSM_AND_GPRS
+};
+
+typedef enum
+{
+ TCM_INVALID_L2P,
+ TCM_CCMNI_L2P,
+ TCM_RNDIS_L2P,
+ TCM_MBIM_L2P,
+ //TCM_IPCORE_L2P,
+ //TCM_UPS_L2P,
+ //TCM_WM_L2P,
+ TCM_PPP_L2P,
+ TCM_LHIF_L2P,
+}l4c_tcm_l2p_enum;
+
+typedef enum{
+ EI3GPPIRAT_SROUCE_RAT_START = 1,
+ EI3GPPIRAT_TARGET_RAT_START = 2,
+ EI3GPPIRAT_SOURCE_RAT_FINISH = 3,
+ EI3GPPIRAT_TARGET_RAT_FINISH = 4,
+} ei3gppirat_action_enum;
+
+
+typedef enum{
+ EPDNCTRANS_SRC_RAT_PDN_TRANSFER_START = 1,
+ EPDNCTRANS_TARGET_RAT_PDN_RECEIVE_START = 2,
+ EPDNCTRANS_SRC_RAT_PDN_TRANSFER_END = 3,
+ EPDNCTRANS_TARGET_RAT_PDN_RECEIVE_END = 4,
+} epdnctrans_action_enum;
+
+
+typedef enum{
+ L4C_C2K_SET_ONE,
+ L4C_C2K_RESET_ONE,
+ L4C_C2K_FORCE_SET_ONE,
+} l4c_c2k_func_action_enum;
+
+
+typedef enum{
+ L4C_C2K_LWCG_PDN_TRANSFER_STATE_NONE,
+ L4C_C2K_LWCG_WAITING_IA_QUERY_CNF,
+ L4C_C2K_LWCG_WAITING_TCM_SET_IA_PDN_CNF,
+ L4C_C2K_LWCG_SETTING_PDN_RECEIVED_FROM_C2K,
+} l4c_c2k_lwcg_pdn_context_transfer_state_enum;
+
+typedef enum{
+ L4C_C2K_IRAT_NONE,
+ L4C_C2K_IRAT_ONGOING_C2K_TO_LTE,
+ L4C_C2K_IRAT_ONGOING_LTE_TO_C2K,
+} l4c_c2k_irat_state_enum;
+
+typedef enum{
+ L4C_C2K_LC_md3_transfer_cid0_with_ia,
+ L4C_C2K_LC_md3_transfer_cid0_without_ia,
+ L4C_C2K_LC_md3_transfer_other_cid_with_ia,
+ L4C_C2K_LC_md3_not_transfer_cid0_but_with_other_cid_ia,
+ L4C_C2K_LC_md3_not_transfer_cid0_and_any_ia,
+} l4c_c2k_lc_irat_debug_enum;
+
+typedef enum{
+ L4C_PS_DEBUG_CMD_MODE_NOT_SUPPORT,
+
+ L4C_PS_DEBUG_EGPCO_CID_ERROR,
+ L4C_PS_DEBUG_EGPCO_IEID_IDENTIFY_ERROR,
+ L4C_PS_DEBUG_EGPCO_0017_ERROR,
+ L4C_PS_DEBUG_EGPCO_FF00_ERROR,
+ L4C_PS_DEBUG_EGPCO_FF01_ERROR,
+ L4C_PS_DEBUG_EGPCO_FF02_ERROR,
+ L4C_PS_DEBUG_EGPCO_FF03_ERROR,
+
+
+ L4C_PS_DEBUG_CGEQ_MaxBitRateUL_DecodeError,
+ L4C_PS_DEBUG_CGEQ_MaxBitRateDL_DecodeError,
+ L4C_PS_DEBUG_CGEQ_GuaranteeBitrateUL_DecodeError,
+ L4C_PS_DEBUG_CGEQ_GuaranteeBitrateDL_DecodeError,
+ L4C_PS_DEBUG_CGEQ_MaxSduSize_DecodeError,
+ L4C_PS_DEBUG_CGEQ_SduErrorRatio_Error,
+ L4C_PS_DEBUG_CGEQ_ResidualBitErrRate_Error,
+ L4C_PS_DEBUG_CGEQ_TransferDelay_Error,
+ L4C_PS_DEBUG_NotSupport_PfDirection,
+ L4C_PS_DEBUG_GetEpsQosError,
+ L4C_PS_DEBUG_CGDCONT_PdpType_Error,
+ L4C_PS_DEBUG_CGDCONT_PdpType_parse_result_Error,
+ L4C_PS_DEBUG_CGDCONT_APN_len_100_Error,
+ L4C_PS_DEBUG_CGTFT_PacketFilterIdentifier_parse_result_Error,
+ L4C_PS_DEBUG_CGTFT_ProtocolNumberNextHeader_parse_result_Error,
+ L4C_PS_DEBUG_CGTFT_LocalPortRange_Error,
+ L4C_PS_DEBUG_CGTFT_RemotePortRange_Error,
+ L4C_PS_DEBUG_CGTFT_IpsecSpi_Error,
+ L4C_PS_DEBUG_CGTFT_TosTrafficClassAndMask_Error,
+ L4C_PS_DEBUG_CGTFT_FlowLabel_parse_result_Error,
+ L4C_PS_DEBUG_CGTFT_PfDirection_Error,
+ L4C_PS_DEBUG_CGTFT_PfDirection_parse_result_Error,
+ L4C_PS_DEBUG_CGTFT_LocalAddrAndSubnetMask_Error,
+ L4C_PS_DEBUG_CGTFT_QRI_Error,
+ L4C_PS_DEBUG_CGQREQ_PrecedenceClass_Error,
+ L4C_PS_DEBUG_CGQREQ_DelayClass_Error,
+ L4C_PS_DEBUG_CGQREQ_ReliabilityClass_Error,
+ L4C_PS_DEBUG_CGQREQ_PeakThroughput_Error,
+ L4C_PS_DEBUG_CGQREQ_MeanThroughput_Error,
+ L4C_PS_DEBUG_CGQMIN_PrecedenceClass_Error,
+ L4C_PS_DEBUG_CGQMIN_DelayClass_Error,
+ L4C_PS_DEBUG_CGQMIN_ReliabilityClass_Error,
+ L4C_PS_DEBUG_CGQMIN_PeakThroughput_Error,
+ L4C_PS_DEBUG_CGQMIN_MeanThroughput_Error,
+ L4C_PS_DEBUG_CGEQ_UndefineCommandConflict,
+ L4C_PS_DEBUG_CGEQ_Traffic_class_Bigger_Than_3,
+ L4C_PS_DEBUG_CGEQ_TrafficClass_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_MaxBitRateUL_EncodeError,
+ L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_MaxBitRateUL,
+ L4C_PS_DEBUG_CGEQ_MaxBitRateUL_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_MaxBitRateDL_EncodeError,
+ L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_MaxBitRateDL,
+ L4C_PS_DEBUG_CGEQ_MaxBitRateDL_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_GuaranteeBitRateUL_EncodeError,
+ L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_GuaranteeBitRateUL,
+ L4C_PS_DEBUG_CGEQ_GuaranteedBitrateUL_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_GuaranteeBitRateDL_EncodeError,
+ L4C_PS_DEBUG_CGEQ_RealTimeQoS_MustNeed_GuaranteeBitRateDL,
+ L4C_PS_DEBUG_CGEQ_GuaranteedBitrateDL_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_DeliveryOrder_BiggerThan_1,
+ L4C_PS_DEBUG_CGEQ_DeliveryOrder_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_MaxSduSize_Encode_Error,
+ L4C_PS_DEBUG_CGEQ_MaxSduSize_Value_Unexpected,
+ L4C_PS_DEBUG_CGEQ_MaxSduSize_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_SduErrorRatio_Value_Unexpected,
+ L4C_PS_DEBUG_CGEQ_SduErrorRatio_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_ResidualBitErrorRatio_Value_Unexpected,
+ L4C_PS_DEBUG_CGEQ_ResidualBitErrorRatio_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_DeliveryOfErroneousSdu_Value_Unexpected,
+ L4C_PS_DEBUG_CGEQ_DeliveryOfErroneousSdu_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_TransferDelay_EncodeError,
+ L4C_PS_DEBUG_CGEQ_TransferDelay_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_TrafficHandlingPriority_Error,
+ L4C_PS_DEBUG_CGEQ_TrafficHandlingPriority_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_SourceStatisticsDescriptor_Error,
+ L4C_PS_DEBUG_CGEQ_SourceStatisticsDescriptor_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_SignallingIndication_Error,
+ L4C_PS_DEBUG_CGEQ_SignallingIndication_ParseResult_Error,
+ L4C_PS_DEBUG_CGEQ_CommandConflict,
+ L4C_PS_DEBUG_CGACT_CID_Error,
+ L4C_PS_DEBUG_CGCMOD_CID_Error,
+ L4C_PS_DEBUG_CGPADDR_GetAddr_Error,
+ L4C_PS_DEBUG_CGAUTO_CgautoN_Error,
+ L4C_PS_DEBUG_CGANS_L2P_OnlyCanBe_PPP_Error,
+ L4C_PS_DEBUG_CGANS_CID_Error,
+ L4C_PS_DEBUG_CGEREP_mode_Error,
+ L4C_PS_DEBUG_CGEREP_bfr_Error,
+ L4C_PS_DEBUG_CGEQOS_Qci_parse_result_Error,
+ L4C_PS_DEBUG_CGEQOS_QCI_0_Error,
+ L4C_PS_DEBUG_CGEQOS_QCI_65_66_69_70_Error,
+ L4C_PS_DEBUG_CGEQOS_DlGbr_encode_Error,
+ L4C_PS_DEBUG_CGEQOS_DlGbr_parse_result_Error,
+ L4C_PS_DEBUG_CGEQOS_UlGbr_encode_Error,
+ L4C_PS_DEBUG_CGEQOS_UlGbr_parse_result_Error,
+ L4C_PS_DEBUG_CGEQOS_DlMbr_encode_Error,
+ L4C_PS_DEBUG_CGEQOS_DlMbr_parse_result_Error,
+ L4C_PS_DEBUG_CGEQOS_UlMbr_encode_Error,
+ L4C_PS_DEBUG_CGEQOS_UlMbr_parse_result_Error,
+ L4C_PS_DEBUG_CGAUTH_AuthPort_Error,
+ L4C_PS_DEBUG_ECNCFG_MobileData_parse_result_Error,
+ L4C_PS_DEBUG_ECNCFG_DataRoaming_parse_result_Error,
+ L4C_PS_DEBUG_ECNCFG_volte_parse_result_Error,
+ L4C_PS_DEBUG_ECNCFG_ImsTtestMode_parse_result_Error,
+ L4C_PS_DEBUG_EGDCONT_RoamingIpType_Error,
+ L4C_PS_DEBUG_VZWAPNE_apnb_parse_result_Error,
+ L4C_PS_DEBUG_VZWAPNE_apned_parse_result_Error,
+ L4C_PS_DEBUG_EGACT_CID_Error,
+ L4C_PS_DEBUG_ACTTEST_CID_Error,
+ L4C_PS_DEBUG_EGDELPF_pfid_parse_result_Error,
+ L4C_PS_DEBUG_EGDELPF_pfid_Error,
+ L4C_PS_DEBUG_EGLNKPF_pfid_parse_result_Error,
+ L4C_PS_DEBUG_EGLNKPF_pfid_Error,
+ L4C_PS_DEBUG_EDALLOW_mode_Error,
+
+ L4C_PS_DEBUG_EAPNSYNC_APN_len_100_Error,
+ L4C_PS_DEBUG_EAPNSYNC_inactivity_time_Error,
+
+ L4C_PS_DEBUG_CMD_MODE_NOT_SUPPORT_IN_U64_HANDLER,
+ L4C_PS_DEBUG_UNEXPECTED_ILM_SENT_TO_U64_HANDLER,
+
+ L4C_PS_DEBUG_C5GQOS_VQI_parse_result_Error,
+ L4C_PS_DEBUG_C5GQOS_VQI_0_Error,
+ L4C_PS_DEBUG_C5GQOS_VQI_65_66_69_70_Error,
+ L4C_PS_DEBUG_C5GQOS_DL_GFBR_parse_result_Error,
+ L4C_PS_DEBUG_C5GQOS_UL_GFBR_parse_result_Error,
+ L4C_PS_DEBUG_C5GQOS_DL_MFBR_parse_result_Error,
+ L4C_PS_DEBUG_C5GQOS_UL_MFBR_parse_result_Error,
+
+ L4C_PS_DEBUG_GetVgQosError,
+ L4C_PS_DEBUG_GetPduSessionAmbrError,
+ L4C_PS_DEBUG_CLADN_Parse_Error,
+ L4C_PS_DEBUG_CLADNU_Length_Error,
+}l4c_ps_debug_enum;
+
+typedef enum
+{
+ TCM_REJECT_PDP_ACT,
+ TCM_ACCEPT_PDP_ACT
+}l4c_tcm_manual_answer_enum;
+
+typedef enum
+{
+ L4C_TCM_CID_STATE_NONE = 0,
+ L4C_TCM_CID_STATE_ACTING,
+ L4C_TCM_CID_STATE_MODING,
+ L4C_TCM_CID_STATE_DEACTING,
+ L4C_TCM_CID_STATE_DEACT_ABORTING,
+}l4c_tcm_internal_cid_state;
+
+typedef enum {
+ L4B_FIRST_CHANNEL,
+ L4B_ATP_FIRST_CHANNEL = L4B_FIRST_CHANNEL,
+ L4B_ATP_LAST_CHANNEL = L4B_FIRST_CHANNEL + ATP_CHANNEL_NUMBER-1,
+
+ /* channels for L4BXXX, just estimation */
+ L4B_L4BXXX_FIRST_CHANNEL,
+ L4B_L4BXXX_LAST_CHANNEL = L4B_L4BXXX_FIRST_CHANNEL + 20,
+
+ L4B_MAX_CHANNEL_NUMBER,
+
+ L4B_INVALID_CHANNEL = 0xff
+} l4b_channel_enum;
+
+typedef enum
+{
+ LMMI_SRC,
+ LMMI_SRC2, /* currently only for MMI SMS backgraound action */
+ SAT_SRC,
+ WAP_SRC,
+ L4C_SRC,
+ RMMI_SRC, /*UART or CMUX virtual port 1*/
+ RMMI_SRC_END = RMMI_SRC + L4B_MAX_CHANNEL_NUMBER -1,
+ RMMI_SAT, /*SAT inject AT*/
+#if defined(__MESSAGE_BASED_AT_SUPPORT__)
+ RMMI_MSG_AT_SRC,
+ RMMI_MSG_AT_SRC_END = RMMI_MSG_AT_SRC + RMMI_MAX_MSG_BASED_AT_CHANNEL-1,
+#endif
+#if 0 //move to ATP_IO
+/* under construction !*/
+/* under construction !*/
+#endif
+ RMMI_ALL, /*for rmmi indication*/
+#ifdef __TC01_IMS_SUPPORT__
+ RMMI_SMS_IMS_SRC,
+#endif
+ L4BPWR_SRC, // move to here temporarily (by usage and meaning, it shall be put before RMMI_SRC or L4C_SRC)
+ VDM_SRC, // not used after MOLY00442497
+ MAX_SOURCE_NUM,
+ L4C_NO_USER, /*no user register action*/
+ L4C_NVRAM_ACCESS_SRC, /*NVRAM access source for MMI read/write NVRAM */
+ SSDS_SRC,
+ RMMI_URC_SRC_2,
+ INVALID_SRC/*Invalid source for MT*/
+} l4c_source_id_enum;
+
+#define RMMI_UNSOLICITED RMMI_ALL
+#ifdef __CMUX_SUPPORT__
+#define RMMI_UNSOLICITED_2 (RMMI_URC_SRC_2)
+#ifdef __TC01_IMS_SUPPORT__
+#define RMMI_UNSOLICITED_3 RMMI_SMS_IMS_SRC
+#endif /* __TC01_IMS_SUPPORT__ */
+#endif /* __CMUX_SUPPORT__ */
+
+
+typedef enum
+{
+ L4C_COMMAND_STATE = 0,
+ L4C_ONLINE_COMMAND_STATE,
+ L4C_ONLINE_DATA_STATE,
+ L4C_ONLINE_DATA_GPRS_STATE,
+ L4C_ONLINE_STATE//mtk01616_080322:either CSD or GPRS data state
+} l4c_state_enum;
+
+/*
+typedef enum
+{
+ L4C_IDLE_STATE = 0,
+ L4C_CMD_FORWARDED_FOR_ACTION_STATE,
+ L4C_INTERMEDIATE_RESULT_CODE_SENT_STATE
+} l4c_sub_state_enum;
+*/
+
+typedef enum
+{
+ L4C_CC,
+ L4C_SS,
+ L4C_SMS,
+ L4C_RAC,
+ L4C_TCM,
+ L4C_PHB,
+ L4C_EQ,
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+#endif
+ L4C_SMU,
+ L4C_SAT,
+ L4C_MAX_MODULE_ID_NUM
+}l4c_module_id;
+
+typedef enum
+{
+ L4C_NO_ACTION,
+ L4C_FIRST_ACTION,
+ NVM_R_EXE = L4C_FIRST_ACTION,
+ NVM_W_EXE,
+ //UART_READ_EXE,
+ UART_WRITE_EXE,
+ UART_PORT_READ,
+ SIM_R_EXE,
+ SIM_W_EXE,
+ CCSP_EXE,
+ SIM_FILE,
+ CSD_PROF_SET,
+ ABM_ACT_APP,
+ ABM_ACT,
+ ABM_ACT_ECC,
+ PPP_ACT,
+ ABM_DEACT,
+ ABM_DISC,
+ FIRST_CC_ACTION,
+ CHLD_EXE = FIRST_CC_ACTION,
+#ifdef __MOD_SMU__
+ CACM_EXE,
+ CAMM_EXE,
+#endif /* __MOD_SMU */
+ CHUP_EXE,
+ CTFR_EXE,
+ ATA_EXE,
+ ATD_APP,
+ ATD_EXE,
+ ATD_ECC,
+ ATD_ECC_CHANGE_RAT, //MAUI_02554068
+ ATD_ECC_CHANGE_RAT_ABORT, //MAUI_02554068
+ CMOD_EXE,
+ ATH_EXE,
+ PARSE_SS_EXE,
+ CPHS_ALS_UPDATE,
+ CHLD_CSD_DEACT, /* this action is to handle CSD active and incoming call coming */
+ VTS_EXE,
+ EVTS_EXE,
+ EMSD_EXE,
+ EMSDSET_EXE,
+ EMSDPUSH_EXE,
+ EPSAP_EXE,
+ EPSAPPULL_EXE,
+ CLCC_READ,
+ LAST_CC_ACTION = CLCC_READ,
+ FIRST_SS_ACTION,
+ CAEMLPP_EXE = FIRST_SS_ACTION,
+ CCFC_REPEAT,
+ CCFC_EXE,
+ CCWA_REPEAT,
+ CCWA_EXE,
+ ITRG_EXE,
+ CDIP_EXE,
+ CLCK_SS_REPEAT,
+ CLCK_SS_EXE,
+ CLIP_EXE,
+ CLIR_EXE,
+ CNAP_EXE,
+ COLP_EXE,
+ COLR_EXE,
+ CPWD_SS_EXE,
+ CB_FAC_IND,
+ CCBS_EXE,
+ CUSD_EXE,
+ USSR_FAC_IND,
+ USSN_FAC_IND,
+ LAST_SS_ACTION = USSN_FAC_IND,
+#ifdef CSD_SUPPORT
+ //FIRST_DATA_ACTION,
+ //LAST_DATA_ACTION,
+#endif
+ FIRST_EQ_ACTION,
+ VOL_SET = FIRST_EQ_ACTION,
+ AUDI_NAME_PLAY,
+ AUDI_NAME_STOP,/* mtk00468 add for play audio by name*/
+ AUDI_STRING_PLAY,
+ AUDI_STRING_STOP, /* mtk00468 add for play audio by string */
+ AUDI_SET, /* for audio profile set 030627 mtk00468*/
+ AUDI_PARAM_SET,
+ GAIN_SET,
+ CMUT_SET,
+ CSIL_SET,
+ CALM_SET, /* alert, removed later */
+ CKPD_EXE,
+ CIND_SET,
+ CALA_SET,
+ CALD_EXE,
+ CSDF_SET,
+ CSTF_SET,
+ CLAN_SET,
+ GPIO_SET,
+ CSGT_SET,
+ CGCI_SET,
+ CVIB_SET,
+ CLVL_READ,
+ CRSL_READ,
+ ATIPR_SET,
+ HW_PROF_SET,
+ MS_SN_READ,
+ MS_SV_READ, //mtk02508_090310 add for SV read
+ MS_SN_SET,
+ MS_SV_SET, //mtk02508_090310 add for SV set
+ LOCK_NVRAM,
+ TEST_REPORT_READ, //mtk00714 add for autotest report read
+ RF_TEST_SET,
+#ifdef __TC01__
+ RX_RSSI_GET, //to get the RSSI
+#endif
+//#ifdef VM_SUPPORT
+ VM_GET_EXE,
+ VM_REC_EXE,
+ VM_PLAY_EXE,
+ VM_DEL_EXE,
+ VM_STOP_EXE,
+ VM_ABT_EXE,
+ VM_PAU_EXE,
+ VM_RES_EXE,
+ VM_APP_EXE,
+ VM_REN_EXE,
+//#endif
+
+ POWERON_EXE,
+ POWEROFF_EXE,
+#ifdef __MOBILE_BROADBAND_PROVISION_CONTEXT__
+ MOBILE_BROADBAND_PROVISION_CONTEXT_GET,
+ MOBILE_BROADBAND_PROVISION_CONTEXT_GET_ALL,
+ MOBILE_BROADBAND_PROVISION_CONTEXT_SET,
+#endif /* __MOBILE_BROADBAND_PROVISION_CONTEXT__ */
+
+ PS_CONF_TEST_PROFILE_SET,
+
+ ENFC_EXE,
+ ESDS_SET,
+ LAST_EQ_ACTION = ESDS_SET,
+
+#ifdef __IRDA_SUPPORT__
+ FIRST_IRDA_ACTION,
+ PPP_DEACT_EXE = FIRST_IRDA_ACTION, /* add to keep PPP deactive */
+ LAST_IRDA_ACTION = PPP_DEACT_EXE,
+#endif /*__IRDA_SUPPORT__*/
+
+
+#ifdef __MOD_TCM__
+ FIRST_GPRS_ACTION,
+ CGACT_ACT_EXE = FIRST_GPRS_ACTION,
+ CGACT_DEACT_EXE,
+ CGACT_TEST,
+ CGACT_ATTACH_EXE,
+ CGANS_EXE,
+ CGCMOD_EXE,
+ CGDCONT_EXE,
+ //GPRS_COUNTER_RESET,
+ CGDSCONT_EXE,
+ CGQMIN_EXE,
+ CGQREQ_EXE,
+ CGEQMIN_EXE,
+ CGEQREQ_EXE,
+ //mtk04121
+ CGEQOS_EXE,
+ C5GQOS_EXE,
+ CGTFT_EXE,
+ EGPAU_EXE, // mtk00468 add for ppp auth info set 031015
+ CGDATA_EXE,
+ CGAUTH_EXE,
+ EGDCONT_EXE,
+ EAPNSYNC_EXE,
+ EGPCO_EXE,
+
+#ifdef __MEDIATEK_SMART_QOS__
+ SMART_QOS_ENTRY_SET,
+ SMART_QOS_MODE_SET,
+#endif /* __MEDIATEK_SMART_QOS__ */
+
+ /* VZW_SUPPORT */
+ VZWAPNE_SET,
+ VZWAPNETMR_SET,
+ VZWAPNRDP_SET,
+ REVIVE_PDN_EXE,
+
+ TCM_START_EXE,
+
+ CGUNDEF_EXE,
+ LAST_GPRS_ACTION = CGUNDEF_EXE,
+#endif
+#ifdef __MOD_RAC__
+ FIRST_NW_ACTION,
+ CGATT_ATTACH_EXE = FIRST_NW_ACTION,
+ CGATT_DETACH_EXE,
+ ATTACH_EXE,
+ DETACH_EXE,
+ CGCLASS_SET,
+
+ /* Johnny: we use SET_GPRS_CON_TYPE trickly:
+ 1. we set it but send RSP to MMI without CNF
+ 2. we clear it when we receive CNF
+ 3. we will check command conflict in l4c_nw_set_gprs_connect_type_req() */
+ SET_GPRS_CON_TYPE, /* '04/01/07 mtk00468 add for set gprs connect type*/
+ SET_HSPA_MODE,//mtk02285, hspa_mmi
+ CBND_SET,
+ COPS_EXE,
+ COPS_ATTACH_EXE,
+ PSDM_ATTACH_EXE,
+ NWSEL_EXE,
+ PWROFF_DETACH,
+ RFOFF_DETACH,
+ RFOFF_SIM_POWEROFF,
+ RFON_SET_RAT_MODE,
+ RFON_ATTACH,
+ COPS_TEST,
+ COPS_TEST_STOP, //mtk01616_070910
+ CSG_TEST,
+ CSG_TEST_STOP,
+ SET_RAT_MODE_DETACH,
+ SET_RAT_MODE,
+ SET_RAT_MODE_ATTACH,
+ PWRON_SET_RAT_MODE,
+ PWRON_ATTACH,
+ SYS_SEL,
+ SYS_CONFIG,
+ SET_CT_MODE,
+ CSRA_RF_OFF,
+ CSRA_SIM_OFF,
+ CSRA_EXE,
+ CSRA_FINISH_PHASE1,
+ CSRA_FINISH_PHASE2,
+ EACTS_EXE,
+ EUEDRX_EXE,
+ CNTI_EXE,
+ LAST_NW_ACTION = CNTI_EXE,
+#endif
+ FIRST_PHB_ACTION,
+ CPBF_EXE= FIRST_PHB_ACTION,
+ PHB_FDN_CHECK,//action for fdn check for sms sca and da
+ PHB_NUMBER_CHECK, // for wise, check if phone number is ECC or FDN
+ PHB_FDN_GET_NAME,
+ CPBR_EXE,
+ ECPBR_EXE,
+ CPBR_RANGE_EXE,
+ SCPBR_EXE,
+ EPBUM_EXE,
+ CNUM_EXE,
+ CPBW_EXE,
+ ECPBW_EXE,
+ CPBW_USIM_CHECK,
+ CPBD_EXE,
+ CPBR_LN,
+ CPBW_LN,
+ SYNC_LN,
+ EAPPROVE_EXE,
+ CPBD_LN,
+ LAST_PHB_ACTION = CPBD_LN,
+ FIRST_SIM_ACTION,
+ CLCK_EXE = FIRST_SIM_ACTION,
+ CMAR_EXE,
+ CPIN_EXE,
+ CPIN2_EXE,
+ EPIN_EXE,
+ CPOL_EXE,
+ CPUC_EXE,
+ CPWD_EXE,
+ XDN_EXE,
+ CSIM_EXE,
+ CRSM_EXE,
+ CGLA_EXE, // MAUI_03082391//mtk02514_nfc
+ ECGLA_EXE,
+ CCHO_EXE,
+ CCHC_EXE,
+ FILE_CHANGE_EXE,
+ SPN_EXE,
+ LAST_SIM_ACTION = SPN_EXE,
+ FIRST_SMS_ACTION,
+ CGSMS_SET = FIRST_SMS_ACTION,
+ CMGC_EXE,
+ CMGD_EXE,
+ CMGD_TEST_EXE,
+ EQSI_EXE,
+ CMGL_EXE,
+ CMGR_EXE,
+ CMGS_EXE,
+ CMGS_PDU_EXE,
+ CMGW_EXE,
+ CMGW_COPY,
+ EMGL_EXE,
+ CMSS_EXE,
+ CMST_SET, //mtk01616_070703:sms set status , mmi
+ CPMS_SET,
+ /*CRES_EXE,
+ CSAS_EXE,*/
+ CSCA_SET,
+ CNMI_SET,
+ MAILBOX_SET, /* 030617 mtk00468 add for set mail box address*/
+ MAILBOX_GET,
+ MBI_SET,//mtk01616_071016: R4/R5 SMS
+ CSMP_SET,
+ CSAS_SET,
+ CRES_SET,
+ LAST_SMS_ACTION = CRES_SET,
+#ifdef __CB__
+ CBMI_SET,
+#endif
+#ifdef __SAT__
+ SAT_ATD_EXE,
+ SAT_USD_EXE,
+ MENU_SEL_EXE,
+ SAT_CMGS_EXE,
+ SAT_DTMF_EXE,
+#ifdef __SATCE__
+ //MAUI_02395134 SAT_CSD_EXE,
+ SAT_OPEN_CHANNEL_EXE,
+ SAT_SEND_DATA_EXE,
+ SAT_RECV_DATA_EXE,
+#endif /* __SATCE__ */
+#endif
+
+
+ ES3G_EXE,
+ DSS_EXE, // Dynamic SIM SWITCH
+ ATO_EXE,
+#ifdef __WAP_SUPPORT /* 030528 mtk00468 add for WAP profile set and query*/
+ CWAP_ACCESS,
+ //L4C_LAST_ACTION = CWAP_ACCESS
+//#else
+ //L4C_LAST_ACTION = ATO_EXE
+#endif
+
+#ifdef __TCM_UT__
+ TCM_UNDEF_NO_ACTION,
+ TCM_UNDEF_CGDCONT_EXE,
+ TCM_UNDEF_CGDSCONT_EXE,
+ TCM_UNDEF_CGQMIN_EXE,
+ TCM_UNDEF_CGQREQ_EXE,
+ TCM_UNDEF_CGEQMIN_EXE,
+ TCM_UNDEF_CGEQREQ_EXE,
+ TCM_UNDEF_CGTFT_EXE,
+#endif
+
+
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+
+ ETSTLP_EXE,
+
+#ifdef __SAT__
+ SAT_STKSMSOIP_PDU_EXE,
+ SAT_STKSMS_MODE1_EXE,
+#endif
+
+#ifdef __GEMINI__
+ RSIM_ONGOING,
+ AKA_ONGOING,
+#endif
+
+ META_EXE,
+ OP12_LOCK_DETACH,
+ OP12_UNLOCK_ATTACH,
+ OP12_LOCK_ATTACH_ANY,
+ OP01_UNLOCK_ATTACH,
+ OP01_LOCK_DETACH,
+ IMEI_MEID_LOCK_DETACH,
+ IMEI_MEID_UNLOCK_ATTACH,
+ IMEI_MEID_LOCK_ATTACH_ANY,
+ ALTER_SERVICE_MODE_EXE,
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+ MS_BLACK_LIST_LOCK_DETACH,
+ MS_BLACK_LIST_UNLOCK_ATTACH,
+ MS_BLACK_LIST_UNLOCK_DETACH,
+ MS_BLACK_LIST_LOCK_ATTACH_ANY,
+#endif
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+ ECALLQUERY_EXE,
+#endif
+ L4C_LAST_ACTION
+} l4c_action_enum;
+
+typedef enum
+{
+ L4C_PENDING_NO_ACTION,
+ L4C_PENDING_DETACH_EXE,
+ L4C_PENDING_ATTACH_EXE,
+ L4C_PENDING_PS_ATTACH_EXE,
+ L4C_PENDING_PS_DETACH_EXE,
+ L4C_PENDING_OP01_SIM_LOCK_DETACH_EXE,
+ L4C_PENDING_OP01_SIM_UNLOCK_ATTACH_EXE,
+ L4C_PENDING_OP01_RAT_LOCK_EXE,
+ L4C_PENDING_OP01_RAT_UNLOCK_EXE,
+ L4C_PENDING_IMEI_MEID_LOCK_DETACH_EXE,
+ L4C_PENDING_IMEI_MEID_UNLOCK_ATTACH_EXE,
+ L4C_PENDING_IMEI_MEID_LOCK_ATTACH_ANY_EXE,
+ L4C_PENDING_FORCE_CHANGE_RAT_EXE,
+ L4C_PENDING_UE_CAPABILITY_EXE,
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+ L4C_PENDING_MS_BLACK_LIST_LOCK_DETACH_EXE,
+ L4C_PENDING_MS_BLACK_LIST_UNLOCK_ATTACH_EXE,
+ L4C_PENDING_MS_BLACK_LIST_UNLOCK_DETACH_EXE,
+ L4C_PENDING_MS_BLACK_LIST_LOCK_ATTACH_ANY_EXE
+#endif
+} l4c_pending_action_enum;
+
+typedef enum
+{
+ L4C_ROOT_NO_ACTION,
+ L4C_ROOT_PWROFF_EXE,
+ L4C_ROOT_EFUN_EXE,
+ L4C_ROOT_PRE_RECONFIG_EXE, // Pre-process before reconfigure processing
+ L4C_ROOT_RECONFIG_EXE,
+ L4C_ROOT_CHECK_DUPLEX_MODE_EXE,
+ L4C_ROOT_STATE_RECOVER_EXE, // Recover back to original EFUN state
+ L4C_ROOT_NOTIFY_RSVA_MODE_SWITCH_EXE, //Notify RSVA the beginning of duplex mode switch
+ L4C_ROOT_LAST_ACTION
+}l4c_root_action_enum;
+
+typedef enum
+{
+ L4C_FIRST_IND, /*0*/
+ INIT_IND = L4C_FIRST_IND,
+ NVM_READY_IND,
+ SIM_FAIL_IND,
+ PHB_FIN_IND,
+ LN_FIN_IND,
+
+ FIRST_CC_IND,
+ CAOC_IND = FIRST_CC_IND,
+ SPEECH_IND,
+ ALERT_IND,
+ CCWA_IND,
+ CRING_IND,
+ DISC_IND,
+ REL_IND, /* 10 */
+ CMOD_IND,
+ CONN_IND,
+ NOTIFY_SS_IND,
+ NS_CUG_IND,
+ NS_ECT_IND,
+ NS_CNAP_IND,
+ NS_CCBS_IND,
+ CPHS_ALS_IND,//mtk00468 add for ripple CPHS feature
+ START_DTMF,
+ STOP_DTMF, /* 20 */
+ PARSE_SS_IND,
+ LAST_CC_IND = PARSE_SS_IND,
+
+ FIRST_SS_IND,
+ CB_PWD_IND = FIRST_SS_IND,
+ CUSD_R_IND,
+ CUSD_N_IND,
+ CPHS_CFU_IND, /* mtk00468 030602 add for Paul cphs feature*/
+ LAST_SS_IND = CPHS_CFU_IND,
+
+ FIRST_EQ_IND,
+ KEY_IND = FIRST_EQ_IND,
+ POWERON_IND,
+ BAT_IND,
+//#ifdef VM_SUPPORT
+ VM_REC_IND,
+ VM_PLAY_IND, /*30*/
+//#endif
+ RTC_IND,
+ ALARM_IND,
+ ADC_CHAN_IND,
+ EM_SET_LCM_IND,//mtk00468 add for factory mode test
+ EM_KEYPAD_ACT_IND,//mtk00468 add for factory mode test
+ EM_LCM_SLEEP_IND,//mtk00468 add for LCM backlight turn on/off
+ FACTORY_IND, //mtk00468 1107 add for factory test inform MMI
+ MMI_PROF_SET_IND, //mtk00468 add 1117 for mmi's profile setting indication
+ AUDI_STOP_IND,
+ GPIO_IND,
+ LAST_EQ_IND = GPIO_IND,
+
+#ifdef __IRDA_SUPPORT__
+ FIRST_IRDA_IND,
+ IRDA_DISCON_IND = FIRST_IRDA_IND,
+ LAST_IRDA_IND = IRDA_DISCON_IND,
+#endif /* __IRDA_SUPPORT__ */
+
+#ifdef __MOD_TCM__
+ FIRST_GPRS_IND,
+ GACT_IND = FIRST_GPRS_IND,
+ GPRS_STATUS_IND,
+ LAST_GPRS_IND = GPRS_STATUS_IND,
+#endif
+
+#ifdef __MOD_RAC__
+ FIRST_NW_IND,
+ REG_IND = FIRST_NW_IND, /*40*/
+ ATTACH_IND,
+ CSQ_IND,
+ CTZR_IND,
+ LAST_NW_IND = CTZR_IND,
+#endif
+
+ /* mtk0046803050315 add enum IND so that in l4c_sat_msg
+ * we can use mmi_ind_ft to use it. modified direct call the
+ * funciton handler and more systemlize
+ */
+#ifdef __SAT__
+ FIRST_SAT_IND,
+ SAT_DSPL_TEXT_IND = FIRST_SAT_IND,
+ SAT_GET_INKEY_IND,
+ SAT_GET_INPUT_IND,
+ SAT_SETUP_MENU_IND,
+ SAT_SELECT_ITEM_IND,
+ SAT_PLAY_TONE_IND,
+ SAT_SETUP_CALL_IND, /*50 */
+ SAT_SEND_SMS_IND,
+ SAT_SEND_SS_IND,
+ SAT_SEND_USSD_IND,
+ SAT_MMI_INFO_IND,
+ SAT_SETUP_IDLE_DSPL_IND, //030602 mtk00468 add for paul SAT [begin]
+ SAT_RUN_AT_COMMAND_IND,
+ SAT_SEND_DTMF_IND,
+ SAT_LANG_NOTIFY_IND,
+#ifdef __SATCE__
+ SAT_OPEN_CHANNEL_IND,
+ SAT_CLOSE_CHANNEL_IND,
+ SAT_SEND_DATA_IND,
+ SAT_RECV_DATA_IND,
+#endif /* __SATCE__ */
+ SAT_LAUNCH_BROWSER_IND,
+ SAT_NO_OTHER_CMD_IND,
+ LAST_SAT_IND = SAT_NO_OTHER_CMD_IND,//030602 mtk00468 add for paul SAT [end]
+#endif /* __SAT__ */
+
+ FIRST_PHB_IND,
+ PHB_FULL_IND = FIRST_PHB_IND, /* 60 */
+ PHB_UPDATE_IND, /* mtk00468 add for sync AT and MMI with phb write ande delete*/
+ PHB_STARTUP_BEGIN_IND,
+ PHB_STARTUP_READ_IND,
+ LAST_PHB_IND = PHB_STARTUP_READ_IND,
+
+ FIRST_SIM_IND,
+ PASSWD_IND = FIRST_SIM_IND,
+ SIM_INFO_IND,
+ PLMN_LEN_IND,
+ CPHS_MMI_INFO, //mtk00468 030610 add for l4csmu_mmi_info_ind handle
+ LAST_SIM_IND = CPHS_MMI_INFO,
+
+
+ FIRST_SMSAL_IND,
+ SMS_FULL_IND = FIRST_SMSAL_IND,
+ SMS_EXC_IND,
+ SMS_AVA_IND,
+ SMS_WAIT_IND, //030613 mtk00468 add for SMS CPHS feature
+ SMS_INDX_IND,
+ SMS_TEXT_IND, /* 70 */
+ SMS_PDU_IND,
+ SMS_READY_IND, //mtk00468 add in 040229
+ SMS_APP_DATA_IND, //mtk00468 add in 040312 for WMA
+ SMS_SYNC_MSG_IND,
+ CMGD_IND,
+ CMGW_IND,
+ CMGS_ABORT_START_IND,
+ CMGS_ABORT_FINISH_IND,
+ CB_MSG_IND, //for LMMI & text mode of RMMI.
+ CB_PDU_IND, //for RMMI pdu mode
+ CB_DL_IND,
+ LAST_SMSAL_IND = CB_DL_IND,
+ L4C_LAST_IND = LAST_SMSAL_IND
+} l4c_ind_enum;
+
+
+typedef enum
+{
+ PAS_READY,
+ PAS_UNAVAILABLE,
+ PAS_CALL_RINGING = 3,
+ PAS_CALL_IN_PROGRESS
+
+} l4ccsm_phone_act_enum;
+
+typedef enum
+{
+ L4C_ASYNC_T, /* ASYNC */
+ L4C_SYNC_T, /* SYNC */
+ L4C_ASYNC_NT, /* REL ASYNC */
+ L4C_SYNC_NT /* REL SYNC */
+} l4ccsm_cc_data_call_type_enum;
+
+
+enum
+{
+ L4C_CISS_NOT_ACTIVE,
+ L4C_CISS_ACTIVE,
+ L4C_CISS_NOT_PROVISION
+};
+
+enum
+{
+ L4C_SMU_INACTIVE,
+ L4C_SMU_ACTIVE,
+ L4C_SMU_ACTIVATE_FAIL
+};
+
+typedef enum
+{
+ L4C_SUCCESS,
+ L4C_SIM_FAIL,
+ L4C_NVRAM_FAIL,
+ L4C_GENERAL_ERROR,
+ L4C_SIM_SWITCH_FAIL
+} l4c_poweron_result_enum;
+
+typedef enum
+{
+ L4C_PHB_NO_ERROR,
+ L4C_PHB_FAIL,
+ L4C_PHB_SCA_FDN,
+ L4C_PHB_DA_FDN_ONLY
+}l4c_phb_sms_fdn_result_enum;
+
+typedef enum
+{
+ L4C_NONE_DATA,
+ L4C_CSD_DATA,
+ L4C_GPRS_DATA
+} l4c_data_mode_enum;
+
+typedef enum
+{
+ L4C_MMI_PROF_QUERY,
+ L4C_MMI_PROF_SET
+} l4c_mmi_set_prof_op_enum;
+
+
+typedef enum
+{
+ L4C_WHEN_NEEDED,
+ L4C_ALWAYS,
+ L4C_ALWAYS_FOR_GCF, //mtk02285, MAUI_02931839, 20110505
+ L4C_ALWAYS_WITH_FOP, //notify GMM to set FOP in next attach request
+ L4C_ALWAYS_DUAL_CHECK, // Same as ALWAYS, but return error if PS is existed in SIM1/SIM2
+ L4C_GPRS_CONN_TYPE_UNKNOWN
+} l4c_gprs_connect_type_enum;
+
+typedef enum
+{
+ L4C_IMELODY,
+ L4C_SOUND_OTHER,
+ L4C_IMAGE,
+ L4C_APP_UNKNOWN
+} l4c_app_type_enum;
+
+typedef enum
+{
+ L4C_IMAGE_STD,
+ L4C_AUDIO_IMELODY,
+ L4C_AUDIO_OTHER
+} l4c_data_dl_folder_enum;
+
+typedef enum
+{
+ L4C_FILE_ADD,
+ L4C_FILE_DELETE
+}l4c_data_dl_file_action_enum;
+
+typedef enum
+{
+ L4C_FILE_EXECUTE_PLAY, /*play audio*/
+ L4C_FILE_EXECUTE_STOP /*stop play audio*/
+}l4c_data_dl_execute_action_enum;
+
+typedef enum
+{
+ L4C_COPS_UNKNOWN,
+ L4C_COPS_AVAILABLE,
+ L4C_COPS_CURRENT,
+ L4C_COPS_FORBIDDEN
+} l4c_cops_status_enum; /*27.007 7.3 +COPS*/
+
+typedef enum
+{
+ L4C_AT_SMS_ADD,
+ L4C_AT_SMS_READ_CMGR,
+ L4C_AT_SMS_READ_CMGL,
+ L4C_AT_SMS_DELETE,
+ L4C_SMS_SIM_REFRESH
+
+}l4c_at_sms_action_enum;
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef enum
+{
+ L4C_NO_INSERTED,
+ L4C_INSERTED,
+ L4C_SINGLE_SIM_INSERTED_STATUS_NONE = 0xFF
+}l4c_single_sim_inserted_enum;
+
+typedef enum
+{
+ L4C_SMU_START,
+ L4C_SMU_SECURITY,
+ L4C_RAC_SEARCH
+}l4c_dual_sim_power_on_state_enum;
+
+typedef enum
+{
+ TYPE_PHB_SMS_PARAM_ONLY_INIT,
+ TYPE_PHB_NORMAL_INIT,
+ TYPE_SMS_NORMAL_INIT
+}l4c_cancel_lock_poweron_type_enum;
+
+typedef enum
+{
+ USSD_VERSION_PHASE2,
+ USSD_VERSION_PHASE1,
+ USSD_VERSION_NONE
+}l4c_ussd_version_enum;
+
+typedef enum
+{
+ CPI_REPORT_NONE,
+ CPI_REPORT_NW_MSG_ONLY,
+ CPI_REPORT_CALL_STATE_ONLY,
+ CPI_REPORT_FULL
+}l4c_cpi_report_mode_enum;
+
+#define INFO_REPORT_MASK (kal_uint32)0x00000001
+
+// MAUI_01652364
+typedef enum
+{
+ USSD_RETURN_RESULT,
+ USSD_RETURN_RESULT_WITH_EMPTY_STRING,
+ USSD_RETURN_ERROR,
+ USSD_RETURN_REJECT,
+ USSD_RETURN_FAILED, //in local check
+ USSD_RETURN_WITHOUT_COMPONENT
+} l4c_ussd_return_type_enum;
+
+typedef enum
+{
+ ATCI_STATE_UART_OWNER_ATCI,
+ ATCI_STATE_UART_OWNER_ATCI2,
+ ATCI_STATE_UART_OWNER_DT,
+ ATCI_STATE_PLUGOUT,
+ ATCI_STATE_NONE
+}l4c_dt_state_enum;
+
+typedef enum
+{
+ RMMI_SWITCH_ATCI_TO_DT,
+ RMMI_SWITCH_ATCI_TO_ATCI2,
+ RMMI_SWITCH_ATCI2_TO_DT,
+ RMMI_SWITCH_ATCI2_TO_ATCI,
+ RMMI_SWITCH_DT_TO_ATCI,
+ RMMI_SWITCH_DT_TO_ATCI2,
+ RMMI_PLUGOUT,
+ RMMI_NONE
+}l4c_dt_transfer_ind_state_enum;
+
+
+typedef enum
+{
+ CSM_STATE_NOT_INITIATED,
+ CSM_STATE_CC_READY,
+ CSM_STATE_CISS_READY //replace ciss_ready_flag
+}l4c_csm_state_enum;
+
+// for parallel SS
+/*
+The following is the range definition:
+CISS: SS_ID_CISS_BASE+0 ~ SS_ID_CISS_BASE+6
+LCS: SS_ID_LCS_BASE+0 ~ SS_ID_LCS_BASE+6
+*/
+#define SS_ID_MAX_NUM 7 //there is no more 7 SSs in parallel for MO or MT
+typedef enum {
+ SS_ID_MT_BASE = 8,
+ SS_ID_MT_END = SS_ID_MT_BASE + SS_ID_MAX_NUM-1,
+ SS_ID_LCS_BASE = 16, //for LCS(AGPS)
+ SS_ID_LCS_END = SS_ID_LCS_BASE + SS_ID_MAX_NUM-1, //LCS: SS_ID_LCS_BASE+0~SS_ID_LCS_BASE+6
+ SS_ID_CISS_BASE = 32, //for common SS and USS service
+ SS_ID_CISS_END = SS_ID_CISS_BASE + SS_ID_MAX_NUM-1, //CISS: SS_ID_CISS_BASE+0~SS_ID_CISS_BASE+6
+ SS_ID_INVALID = 255
+} l4c_ss_id_enum;
+
+//ALPS00029231
+typedef enum
+{
+ SAT_USSR_NONE, //initial state
+ SAT_SS_USSR, //USSR triggered by SAT send SS
+ SAT_USSD_USSR //USSR triggered by SAT send USSD
+}l4c_sat_ussr_enum;
+
+typedef enum {
+ PDP_ACT,
+ PDP_MOD,
+ PDP_DEACT,
+ ENTER_DATA,
+ SET_REQ,
+ SET_CONTEXT_REQ,
+ ACTION_MAX
+} l4ctcm_action_enum;
+
+typedef enum {
+ SIB_FIELD_REQUEST_TYPE,
+} l4ctcm_session_info_block_field_enum;
+
+typedef enum {
+ L4C_ACT_REASON_NORMAL,
+ L4C_ACT_REASON_ATTACH_1ST_PDN,
+ L4C_ACT_REASON_REVIVE_HANDOVER_PDN,
+ L4C_ACT_REASON_REESTABLISH_WITHOUT_N26_HANDOVER_PDN,
+ L4C_ACT_REASON_MAX
+} l4ctcm_act_reason;
+
+typedef enum {
+ EGACT_SUPPORT_ALL_RAT = 0,
+ EGACT_SUPPORT_23G = 1,
+ EGACT_SUPPORT_4G = 2,
+ EGACT_SUPPORT_234G = EGACT_SUPPORT_23G | EGACT_SUPPORT_4G,
+ EGACT_SUPPORT_5G = 4,
+ EGACT_SUPPORT_235G = EGACT_SUPPORT_23G | EGACT_SUPPORT_5G,
+ EGACT_SUPPORT_45G = EGACT_SUPPORT_4G | EGACT_SUPPORT_5G,
+ EGACT_SUPPORT_MAX,
+} l4ctcm_egact_support_rat_enum;
+
+typedef enum {
+ EGACT_CAUSE_DONT_CARE = 0,
+ EGACT_CAUSE_DEACT_NORMAL,
+ EGACT_CAUSE_DEACT_RA_ERROR,
+ EGACT_CAUSE_DEACT_RA_INITIAL_ERROR,
+ EGACT_CAUSE_DEACT_RA_REFRESH_ERROR,
+ EGACT_CAUSE_DEACT_NO_PCSCF,
+ EGACT_CAUSE_DEACT_USER_FORCE_TO_LOCAL_RELEASE,
+ EGACT_CAUSE_DEACT_AOSP_SHUTDOWN,
+ EGACT_CAUSE_DEACT_AOSP_HANDOVER,
+ EGACT_CAUSE_DEACT_APN_CHANGED,
+ EGACT_CAUSE_DEACT_IMS_HANDOVER
+} l4ctcm_egact_cause_enum;
+
+typedef enum {
+ NO_CONFLICT,
+ CONFLICT_CHANNEL_BUSY,
+ CONFLICT_CID_BUSY,
+// CONFLICT_C2K_IRAT,
+ CONFLICT_CFUN,
+ CONFLICT_TCM_NOT_READY,
+ CONFLICT_RAC_STATE,
+ CONFLICT_ATTACH_ONGOING,
+} l4c_gprs_cmd_conflict_cause_enum;
+
+typedef enum {
+ CHECK_CONFLICT_FLAG_CFUN = 0x0001,
+ CHECK_CONFLICT_FLAG_TCM_READ_NVRAM_COMPLETE = 0x0002,
+ CHECK_CONFLICT_FLAG_RAC_STATE = 0x0004,
+// CHECK_CONFLICT_FLAG_C2K_IRAT = 0x0008,
+ CHECK_CONFLICT_FLAG_SRC_CID_TABLE = 0x0010,
+ CHECK_CONFLICT_FLAG_ATTACH_BY_CID_TABLE = 0x0020,
+ CHECK_CONFLICT_FLAG_ALL = 0xFFFF,
+} l4c_cmd_conflict_bitmap_flag_enum;
+
+typedef enum {
+ L4C_NOT_CHECK_CMD_CONFLICT,
+ L4C_CHECK_CMD_CONFLICT,
+} l4c_cmd_conflict_check_option_enum;
+
+
+typedef enum {
+ LTE_ATTACH_PDN_ESM_NOT_BLOCK_INVALID_APN,
+ LTE_ATTACH_PDN_ESM_BLOCK_INVALID_APN
+} lte_attach_pdn_esm_block_invalid_apn_enum;
+
+typedef enum
+{
+ L4C_TIMER_ID_KEYPAD = 0, // 0: keypad
+ L4C_TIMER_ID_DT = 1, // 1: DT
+ L4C_TIMER_ID_GPRS = 2, // 2: gprs
+ L4C_TIMER_ID_RETRY = 3, // 3: retry
+ L4C_TIMER_ID_HZ = 4, // 4: hz
+ L4C_TIMER_ID_DIALUP = 5, // 5: dialup
+ L4C_TIMER_ID_RING = 6, // 6: RING repeat timer
+ L4C_TIMER_ID_SAT = 7, // 7: SAT redial duration timer
+ L4C_TIMER_ID_PWOF = 8, // 8: Power off timer
+ L4C_TIMER_ID_ECBM, // obsoleted.
+ L4C_TIMER_ID_VOLTE_HYS = 11, // 11: VzW T_VoLTE_hys
+ L4C_TIMER_ID_TXRXTIME = 12, // 12: txrx active time
+ L4C_TIMER_ID_RSIM_PLUGIN = 13, //13: RSIM plugin timer
+ L4C_TIMER_ID_SBP = 14, // 14: SBP guard timer
+ L4C_TIMER_ID_UPPER_THRESHOLD = 15, //15: Power Lever Upper Threshold timer
+ L4C_TIMER_ID_LOWER_THRESHOLD = 16, //16: Power Lever Lower Threshold timer
+ L4C_TIMER_ID_OP12_LOCK_TIMER = 17, // 17 op12 reg lock to send dereg if needed
+ L4C_TIMER_ID_OP12_UNLOCK_TIMER = 18, // 18 op12 reg unlock to send reg if needed
+ L4C_TIMER_ID_ERSIMAUTH = 19, // 19: RSIM AUTH timer
+ L4C_TIMER_ID_EPSNLTE = 20, // 20: EPSNLTE URC timer
+ L4C_TIMER_ID_NON_PS_OCCUPY_TIMER = 21, // 21 Occupy RSVAS for non-ps SIM regist first
+ L4C_TIMER_ID_CALL_RETRY_MAX_TIMER = 22, // 22: call retry max timer
+ L4C_TIMER_ID_ANTENNA_STATE = 23, // 23: for antenna state reporting
+ L4C_TIMER_ID_OP129_LTE_ONLY_TIMER = 24, // 24: for switching RAT mode to 23G from KDDI LTE
+ L4C_TIMER_ID_WAIT_LTE_PAGING_TIMER = 25, // 25: wait for MT paging in LTE RAT.
+ L4C_TIMER_ID_5GUW_TUW_1 = 26, // 26: VzW 5GUW TUW 1
+ L4C_TIMER_ID_5GUW_TUW_2 = 27, // 27: VzW 5GUW TUW 2
+ L4C_TIMER_ID_5GUW_TUW_3 = 28, // 28: VzW 5GUW TUW 3
+ L4C_TIMER_ID_MAX
+} l4c_timer_id_enum;
+
+typedef enum{
+ L4C_SIM_STATE_ON,
+ L4C_SIM_STATE_TURNING_OFF,
+ L4C_SIM_STATE_OFF
+}l4c_sim_state_enum;
+
+// C2K MD power off state, for MD1/MD3 EPOF procedure
+typedef enum
+{
+ C2K_MD_POWER_OFF_NOT_START = 0,
+ C2K_MD_POWER_OFF_STARTED,
+ C2K_MD_POWER_OFF_DONE
+} l4c_c2k_power_off_state_enum;
+
+/* for sim_status_bitmask
+ TODO: replacce l4c_single_sim_inserted_enum
+*/
+typedef enum
+{
+ /*
+ * initial state, L4 doesn't know any information about SIM
+ */
+ L4C_SIM_FLAG_UNKNOWN = 0,
+
+ /*
+ * L4C has received SIM_ERROR_IND(plug_in) or SIM_RESET_CNF(sim_exist),
+ * i.e. there is a card in the SIM slot, but not initialized yet
+ * the inserted card maybe SIM, USIM, CSIM, UIM...etc
+ */
+ // TODO: this flag is to replace single_sim_exist_status
+ L4C_SIM_FLAG_DETECTED = 0x01,
+
+ /*
+ * L4C has received SIM_RESET_CNF(sim_inserted) or START_CNF(SMU_RES_OK)
+ * i.e. there is a SIM or USIM in the SIM slot, but not initialized yet
+ */
+ // TODO: this flag is to replace single_sim_inserted_status
+ L4C_SIM_FLAG_3GPP_SIM_INSERTED = 0x02,
+
+ /*
+ * L4(SMU) has received SIM_START_CNF(SIM_CMD_SUCCESS)
+ * i.e. SIM is initialized and can be access, excluding PIN1 required file
+ * e.g. ICCID is readable when this bit is set
+ */
+ L4C_SIM_FLAG_STARTED_SUCCESS = 0x04,
+
+ /*
+ * L4C has received SECURITY_CNF(TYPE_NO_REQUIRED)
+ * i.e. PIN1 and SML check are all passed, IMSI can be read
+ * currently we don't provide PIN1 verified but SML not passed flag,
+ * because no special requirement for this condition
+ */
+ L4C_SIM_FLAG_PIN1_SML_VERIFIED= 0x08
+} l4c_sim_flag_enum;
+
+typedef enum
+{
+ /* This ENUM was defined by MUSE project for VzW hVoLTE interface */
+
+ STATUS_LTE_CONN_NONE = 0,
+ STATUS_LTE_RACH_REJECT_W_WAIT = 11,
+ STATUS_LTE_RACH_FAILED_T300 = 12,
+ STATUS_LTE_SR_REJECT_EMM_9_10 = 13,
+ STATUS_LTE_ACCESS_BARRED = 16,
+ STATUS_LTE_EMM_NET_REJECT = 17,
+ STATUS_LTE_NAS_CONGESTION = 22,
+ STATUS_LTE_DEDI_BEAR_QCI_RESP = 31,
+ STATUS_LTE_TRIGGER_IMS_DEREG = 32,
+ STATUS_LTE_IMS_CALL_FAIL_1X_SILENT_REDIAL_START = 35,
+
+ //Also for VzW hVoLTE, but defined by MTK
+ STATUS_LTE_EMERGENCY_ATTACH_REJECT = 129,
+ STATUS_LTE_NORMAL_DETACH = 130,
+ STATUS_LTE_EMERGENCY_ATTACH = 131,
+ STATUS_LTE_NORMAL_ATTACH = 132,
+ STATUS_LTE_EMERGENCY_DETACH = 133,
+ STATUS_LTE_EMERGENCY_PDN_ACT_REJ_IN_ATTACH_STATE = 134,
+ STATUS_LTE_EPS_ONLY_ATTACH = 135
+} l4c_lte_conn_status_enum;
+
+/* bitmap type */
+typedef enum
+{
+ L4C_GUTI = 1,
+ L4C_PTMSI = 2,
+ L4C_LOCI = L4C_PTMSI, // Used by Titan
+ L4C_5GSLOCI = 4
+} l4c_msid_enum;
+
+typedef enum
+{
+ L4C_USIM_TYPE_IS_SIM = 0,
+ L4C_USIM_TYPE_IS_USIM = 1,
+ L4C_USIM_TYPE_NO_SIM_NO_USIM = 2
+} l4c_usim_type_enum;
+
+typedef enum
+{
+ L4C_CSIM_TYPE_IS_UIM = 0,
+ L4C_CSIM_TYPE_IS_CSIM = 1,
+ L4C_CSIM_TYPE_NO_UIM_NO_CSIM = 2,
+ L4C_CSIM_TYPE_IS_UIM_AND_CSIM = 3
+} l4c_csim_type_enum;
+
+typedef enum
+{
+ L4C_DIAL_C2K_IDLE = 0x00,
+ L4C_DIAL_C2K_CMD_RCVD = 0x01,//received AT+EHVOLTE=0,1
+ L4C_DIAL_C2K_CSFB_START_IND_RCVD= 0x02,
+ L4C_DIAL_C2K_VOLTE_UNREG_RCVD = 0x04,
+ L4C_DIAL_C2K_CSFB_START_VOLTE_UNREG_RCVD =
+ L4C_DIAL_C2K_CMD_RCVD|L4C_DIAL_C2K_CSFB_START_IND_RCVD|L4C_DIAL_C2K_VOLTE_UNREG_RCVD,
+} l4c_dial_c2k_state_enum;
+
+typedef enum
+{
+ L4C_TX_INTERRUPTION_TIMER_EXPIRY = 0, // Obsolete
+ L4C_EVENT_SCHEDULER_TIMER_ID,
+ L4C_EVENT_SCHEDULER_MAX_DELAY_TIMER_ID /* delay tolerant: evt_scheduler_max_delay_ptr */
+} l4c_timer_index_id_enum;
+
+typedef enum
+{
+ L4C_GSM_RSSI = 0,
+ L4C_UTRAN_RSCP = 1,
+ L4C_UTRAN_ECNO = 2,
+ L4C_LTE_RSRP = 3,
+ L4C_LTE_RSRQ = 4,
+ L4C_LTE_RSSNR = 5,
+ L4C_1X_RSSI = 6, // not used in l4c, align iwlan-l4c interface
+ L4C_1X_ECIO = 7, // not used in l4c, align iwlan-l4c interface
+ L4C_EVDO_RSSI = 8, // not used in l4c, align iwlan-l4c interface
+ L4C_EVDO_ECIO = 9, // not used in l4c, align iwlan-l4c interface
+ L4C_NR_SS_RSRP = 10,
+ L4C_NR_SS_RSRQ = 11,
+ L4C_NR_SS_SINR = 12,
+ L4C_NR_CSI_RSRP = 13,
+ L4C_NR_CSI_RSRQ = 14,
+ L4C_NR_CSI_SINR = 15,
+ L4C_MAX_SIG,
+} l4c_sig_type_enum;
+
+
+typedef enum{
+ L4C_SIM_DUPLEX_MODE_STATE_NONE,
+ L4C_SIM_DUPLEX_MODE_STATE_RESET,
+ L4C_SIM_DUPLEX_MODE_STATE_RESET_DONE,
+ L4C_SIM_DUPLEX_MODE_STATE_SET
+}l4c_sim_duplex_mode_reset_state_enum;
+
+typedef enum
+{
+ L4C_PWL_THRHD_TIMER_ID_GSM_RSSI_THRESHOLD, //0: Power Lever Threshold timer for GSM RSSI
+ L4C_PWL_THRHD_TIMER_ID_UTRAN_RSCP_THRESHOLD, //1: Power Lever Threshold timer for UTRAN RSCP
+ L4C_PWL_THRHD_TIMER_ID_UTRAN_ECNO_THRESHOLD, //2: Power Lever Threshold timer for UTRAN_ECNO
+ L4C_PWL_THRHD_TIMER_ID_LTE_RSRP_THRESHOLD, //3: Power Lever Threshold timer for LTE RSRP
+ L4C_PWL_THRHD_TIMER_ID_LTE_RSRQ_THRESHOLD, //4: Power Lever Threshold timer for LTE_RSRQ
+ L4C_PWL_THRHD_TIMER_ID_LTE_RSSNR_THRESHOLD, //5: Power Lever Threshold timer for LTE_RSSNR
+ L4C_PWL_THRHD_TIMER_ID_NR_SS_RSRP_THRESHOLD, //6: Power Lever Threshold timer for NR_SS_RSRP
+ L4C_PWL_THRHD_TIMER_ID_NR_SS_RSRQ_THRESHOLD, //7: Power Lever Threshold timer for NR_SS_RSRQ
+ L4C_PWL_THRHD_TIMER_ID_NR_SS_SINR_THRESHOLD, //8: Power Lever Threshold timer for NR_SS_SINR
+ L4C_PWL_THRHD_TIMER_ID_NR_CSI_RSRP_THRESHOLD, //9: Power Lever Threshold timer for NR_CSI_RSRP
+ L4C_PWL_THRHD_TIMER_ID_NR_CSI_RSRQ_THRESHOLD, //10: Power Lever Threshold timer for NR_CSI_RSRQ
+ L4C_PWL_THRHD_TIMER_ID_NR_CSI_SINR_THRESHOLD, //11: Power Lever Threshold timer for NR_CSI_SINR
+ L4C_PWL_THRHD_TIMER_ID_MAX
+} l4c_pwl_thrhd_timer_id_enum;
+
+//#ifdef __REMOTE_SIM__
+typedef enum
+{
+ L4C_RSVA_AKA_NO_RESOURCE_OCCUPIED,
+ L4C_RSVA_AKA_RESOURCE_TO_BE_OCCUPIED,
+ L4C_RSVA_AKA_RESOURCE_OCCUPIED,
+ L4C_RSVA_AKA_RESOURCE_RELEASING,
+} l4c_rsva_aka_resource_occupy_enum;
+
+typedef enum
+{
+ L4C_ACTION_NONE,
+ L4C_ACTION_EPOF,
+ L4C_ACTION_EFUN,
+} l4c_rsim_pending_action_enum;
+//#endif
+
+
+typedef enum
+{
+ L4_SMU = 0x01,
+ L4_RAC = (0x01 << 1),
+ L4_PHB = (0x01 << 2),
+ L4_SMSAL = (0x01 << 3),
+ L4_UEM = (0x01 << 4),
+ L4_TCM = (0x01 << 5),
+ L4_CSMCC = (0x01 << 6),
+ L4_CSMSS = (0x01 << 7),
+}l4c_sub_module_enum;
+
+typedef enum
+{
+ OP01_ACTION_NULL,
+ OP01_SIM_LOCK_DETACH,
+ OP01_SIM_UNLOCK_ATTACH,
+ OP01_RAT_LOCK,
+ OP01_RAT_UNLOCK
+}l4_op01_action_enum;
+
+typedef enum
+{
+ L4C_IMEI_MEID_ACTION_NULL,
+ L4C_IMEI_MEID_LOCK_DETACH,
+ L4C_IMEI_MEID_LOCK_ATTACH_ANY,
+ L4C_IMEI_MEID_UNLOCK_ATTACH
+} l4c_imei_meid_action_enum;
+
+typedef enum
+{
+ L4C_LOCK_TYPE_OP01,
+ L4C_LOCK_TYPE_IMEI_MEID
+} l4c_lock_type_enum;
+
+typedef enum
+{
+ L4C_RAT_GROUP_3GPP,
+ L4C_RAT_GROUP_3GPP2,
+ L4C_RAT_GROUP_3GPP_3GPP2
+} l4c_rat_group_enum;
+
+typedef enum
+{
+ L4C_DSS_ONGOING_STATE_NONE = 0,
+ L4C_DSS_ONGOING_STATE_ESIMMAP = 1,
+ L4C_DSS_ONGOING_STATE_EPSMAP = 2,
+} l4c_dss_ongoing_state_enum;
+
+typedef enum
+{
+ L4C_CT_VOLTE_NOT_SUPPORT = 0,
+ L4C_CT_VOLTE_SUPPORT_MANUAL = 1,//CT original VoLTE, L4 operates in HVOLTE_MANUAL_MODE
+ L4C_CT_VOLTE_SUPPORT_AUTO = 2,//CT hVoLTE, L4 operates in HVOLTE_AUTO_MODE
+ L4C_CT_VOLTE_SUPPORT_ENUM_MAX
+} l4c_ct_volte_support_enum;
+
+typedef enum
+{
+ L4C_PHB_APPROVE_SRC_CALL_SETUP,
+ L4C_PHB_APPROVE_SRC_L4CPS,
+ L4C_PHB_APPROVE_SRC_SMS,
+ L4C_PHB_APPROVE_SRC_PARSE_SS,
+ L4C_PHB_APPROVE_SRC_CUSD,
+ L4C_PHB_APPROVE_SRC_EAPPROVE,
+
+ /* NOTICE!! Please add l4c_phb_approve_src_enum above this line! */
+ L4C_PHB_APPROVE_SRC_TOTAL,
+} l4c_phb_approve_src_enum;
+
+typedef enum
+{
+ L4C_SERVICE_MODE_NONE = 0,
+ L4C_SERVICE_MODE_UPGRADE, // upgrade the service (when legal SIM is available)
+ L4C_SERVICE_MODE_DOWNGRADE // dowgrade the service (when legal SIM is lost)
+} l4c_service_mode_op_enum;
+
+typedef enum
+{
+ L4C_PWR_LEVEL_RANGE_NONE = 0,//Power level threshold timer is not running
+ L4C_PWR_LEVEL_RANGE_LOW = 1,//Power level threshold timer is running and signal value is less than the 1st threshold
+ L4C_PWR_LEVEL_RANGE_ONE = 2,//Power level threshold timer is running and signal value is between 1st and 2nd threshold
+ L4C_PWR_LEVEL_RANGE_TWO = 3,//Power level threshold timer is running and signal value is between 2nd and 3rd threshold
+ L4C_PWR_LEVEL_RANGE_THREE = 4,//Power level threshold timer is running and signal value is between 3rd and 4th threshold
+ L4C_PWR_LEVEL_RANGE_FOUR = 5,//Power level threshold timer is running and signal value is between 4th and 5th threshold
+ L4C_PWR_LEVEL_RANGE_FIVE = 6,//Power level threshold timer is running and signal value is between 5th and 6th threshold
+ L4C_PWR_LEVEL_RANGE_SIX = 7,//Power level threshold timer is running and signal value is between 6th and 7th threshold
+ L4C_PWR_LEVEL_RANGE_SEVEN = 8,//Power level threshold timer is running and signal value is between 7th and 8th threshold
+ L4C_PWR_LEVEL_RANGE_HIGH = 9,//Power level threshold timer is running and signal value is greater than the 8st threshold
+ L4C_PWR_LEVEL_RANGE_INVALID = 10,//Power level threshold timer is running and signal value is Invalid currently
+ L4C_PWR_LEVEL_RANGE_MAX
+} l4c_power_level_threshold_range_enum;
+
+typedef enum
+{
+ L4C_SAR_IGNORE_ACTION = -1,
+ L4C_SAR_MODEM_TO_AP_DISABLE_ACTION = 0,
+ L4C_SAR_MODEM_TO_AP_ENABLE_ACTION,
+ L4C_SAR_AP_TO_MODEM_REBOOT_NOTIFY_ACTION,
+ L4C_SAR_AP_TO_MODEM_DATA_ACTION,
+ L4C_SAR_UNDEFINED_ACTION
+}l4c_sar_action_enum;
+
+typedef enum
+{
+ L4C_SAR_NEAR = 0,
+ L4C_SAR_FAR = 1,
+ L4C_SAR_STATE_UNKNOWN_SAR_DISABLE = 253,
+ L4C_SAR_STATE_UNKNOWN_SAR_ENABLE = 254,
+ L4C_SAR_STATE_UNKNOWN_SAR_NOT_SUPPORTED = 255
+}l4c_sar_data_enum;
+
+typedef enum
+{
+ L4C_SCP_DISABLE,
+ L4C_SCP_ENABLE
+} l4c_scp_monitor_enum;
+
+typedef enum {
+ L4C_RAT_NO_CUSTOMIZATION,
+ L4C_RAT_NL_CUSTOMIZATION,
+ L4C_RAT_NLWG_CUSTOMIZATION
+} l4c_rat_mode_custom_type_enum;
+
+typedef enum{
+ L4C_SIM_LGU,
+ L4C_SIM_KT_SKT,
+ L4C_SIM_AUSA_H,
+ L4C_SIM_AUSA_R,
+ L4C_SIM_OTHER
+} l4c_sim_oper_enum;
+
+typedef enum
+{
+ L4C_PLMN_TYPE_ARRAY,
+ L4C_PLMN_TYPE_PLMN_STRUCT
+} l4c_plmn_type_enum;
+
+#ifdef __TC01__
+typedef enum
+{
+ L4C_ECC_CALL_CONNNECTED_STATUS_NONE = 0,
+ L4C_ECC_CALL_NOT_CONNECTED,
+ L4C_ECC_CALL_CONNECTED
+} l4c_ecc_connected_status_enum;
+#endif /* __TC01__ */
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef enum
+{
+ L4C_ECALL_CUSTOMER_URI = 1,
+ L4C_ECALL_USIM_URI,
+ L4C_ECALL_CUSTOMER_NUM,
+ L4C_ECALL_USIM_NUM,
+} l4c_ecall_num_type_enum;
+#endif /* __ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__*/
+typedef enum {
+ L4C_DISABLE_NONE_ROAMING_MODE = 0x00,
+ L4C_DISABLE_INTERNATIONAL_ROAMING = 0x01,
+ L4C_DISABLE_NATIONAL_ROAMING = 0x02,
+ L4C_DISABLE_HPPLMN_SEARCH = 0x04,
+ L4C_DISABLE_ALL_ROAMING_MODE = 0x07
+
+} l4c_roaming_setting_enum;
+
+
+#endif /* l4c_common_enum.h */
diff --git a/mcu/protocol/interface/l4misc/l4c_ctm_cmd.h b/mcu/protocol/interface/l4misc/l4c_ctm_cmd.h
new file mode 100644
index 0000000..082251c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ctm_cmd.h
@@ -0,0 +1,139 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * l4c_ctm_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_CTM_CMD_H
+#define _L4C_CTM_CMD_H
+
+#ifdef __CTM_SUPPORT__
+//#include "kal_non_specific_general_types.h"
+#include "kal_general_types.h"
+
+extern void l4c_ctm_init_context(void);
+extern void l4c_ctm_init(void);
+extern kal_bool l4c_ctm_open_req(kal_uint8 src_id, kal_uint8 ctm_interface);
+extern kal_bool l4c_ctm_close_req(kal_uint8 src_id);
+extern kal_bool l4c_ctm_connect_req(kal_uint8 src_id);
+extern kal_bool l4c_ctm_send_text_req(kal_uint8 src_id, kal_uint16 num_of_char, kal_uint16 *text);
+extern kal_bool l4c_ctm_set_default_req(kal_uint8 src_id, kal_bool is_turn_on, kal_uint8 ctm_interface);
+extern kal_bool l4c_ctm_get_default_req(kal_uint8 src_id);
+extern kal_bool l4c_ctm_set_config_req(
+ kal_uint8 group_id,
+ kal_uint16 para1,
+ kal_uint16 para2,
+ kal_uint16 para3,
+ kal_uint16 para4,
+ kal_uint16 para5,
+ kal_uint8 bitmask);
+#if defined(__CTM_AT_CMD_SUPPORT__)
+extern kal_bool l4c_ctm_get_config_req(kal_uint8 group_id);
+#endif
+#endif /* __CTM_SUPPORT__ */
+
+#endif /* _L4C_CTM_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_em.h b/mcu/protocol/interface/l4misc/l4c_em.h
new file mode 100644
index 0000000..e235ee0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_em.h
@@ -0,0 +1,677 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+ /*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_em.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * Engineer mode header file.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_EM_H
+#define _L4C_EM_H
+
+#include "em_struct.h"
+//#include "kal_non_specific_general_types.h"
+//#include "app_ltlcom.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "em_l4_public_struct.h"
+#include "em_l4_common_public_struct.h"
+#include "ft_msg_l4.h"
+
+extern em_source_enum g_em_cmd_src;
+
+/* Definitions for Channel Lock constants */
+#if defined(__MODEM_EM_MODE__)
+#if defined(__CHANNEL_LOCK__)
+
+#define L4C_CH_LOCK_MODE_CANCEL 0
+#define L4C_CH_LOCK_MODE_SET 1
+#define L4C_CH_LOCK_MODE_SET_CBRS 2
+#define L4C_CH_LOCK_MODE_CONFIG_CBRS 3
+
+#define L4C_CH_LOCK_BAND_IND_NOT_1900 0
+#define L4C_CH_LOCK_BAND_IND_1900 1
+
+#define L4C_CH_LOCK_ACT_GAS 0
+#define L4C_CH_LOCK_ACT_UAS 2
+#define L4C_CH_LOCK_ACT_EAS 7
+#define L4C_CH_LOCK_ACT_NRAS 11
+
+#define L4C_CH_LOCK_ARFCN_MAX 46589
+#define L4C_CH_LOCK_CELL_ID_MAX 1008
+#define L4C_CH_LOCK_CHANNEL_NUM_MAX 32
+
+#define L4C_CH_LOCK_CELL_ID_NOT_SET 0xFFFF
+
+#endif /* __CHANNEL_LOCK__ */
+#endif /* __MODEM_EM_MODE__ */
+
+/* Definitions for EM TX power constants*/
+#ifdef __EM_MAX_TX_POWER_SUPPORT__
+#define L4C_GSM_RAT 0
+#define L4C_WCDMA_RAT 1
+#define L4C_TDSCDMA_RAT 2
+#define L4C_C2K_RAT 3
+#define L4C_LTE_RAT 4
+#define L4C_1X_RAT 5
+#define L4C_EVDO_RAT 6
+#ifdef __TX_PWR_EXTENSION__
+#define L4C_NR_RAT 7
+#define L4C_MAX_SUPPORT_RAT 7
+#endif
+#endif
+
+/*Start Extended LCE support*/
+#define L4C_EXTENDED_LCE_MAX_THRESHOLD EXTENDED_LCE_MAX_THRESHOLD // threshold size is 20
+
+#define L4C_LCE_RAT_GSM 1
+#define L4C_LCE_RAT_UMTS 2
+#define L4C_LCE_RAT_LTE 3
+#define L4C_LCE_RAT_NR 4
+#define L4C_LCE_RAT_MAX 5
+/*End Extended LCE support*/
+
+/* L4C call-back functions for MMI */
+void l4a_em_update_req (kal_uint8 src_id,kal_uint8 *info_request);
+void l4c_em_update_req(em_source_enum em_src, em_info_status_enum *info_request);
+void l4c_vt_em_get_config_req(kal_uint8 src_id);
+void l4c_vt_em_set_config_req(kal_uint8 src_id, vt_em_config_struct *em_config);
+void l4c_em_cell_resel_suspend_req(kal_uint8 src_id, kal_uint8 status);
+void l4c_em_cell_resel_resume_req(kal_uint8 src_id);
+void l4c_em_get_cell_lock_req(kal_uint8 src_id);
+void l4c_em_set_cell_lock_req(
+ kal_uint8 src_id,
+ kal_bool turn_on_or_off,
+ kal_bool band_indicator,
+ kal_uint16 *lock_arfcn);
+extern void l4c_em_common_set_cell_lock_req(kal_uint8 src_id, kal_uint32 enabled_bitmap, kal_bool band_indicator, kal_uint16 *lock_arfcn, kal_uint32 mode);
+extern void l4c_em_ext_get_cell_lock_req(kal_uint8 src_id);
+extern void l4c_em_ext_set_cell_lock_req(kal_uint8 src_id, kal_uint32 enabled_bitmap, kal_bool band_indicator, kal_uint16 *lock_arfcn);
+
+#if defined(__MODEM_EM_MODE__)
+#if defined(__CHANNEL_LOCK__)
+void l4c_emmchlck_read(kal_uint8 src_id);
+void l4c_emmchlck_write(kal_uint8 src_id, kal_uint8 mode, kal_uint8 act,
+ kal_uint16 *band_indicator_ptr, kal_uint32 *arfcn_ptr, kal_uint16 cell_id,kal_uint8 channel_num,kal_uint8 lock_mode);
+#endif /* __CHANNEL_LOCK__ */
+#endif /* __MODEM_EM_MODE__ */
+
+void l4c_em_feature_command_req(kal_uint8 src_id, kal_uint8 em_feature, kal_uint8 em_feature_state);
+
+/* EM main message handler */
+void l4c_em_handler(ilm_struct *ilm_ptr);
+kal_bool l4c_em_nw_event_notify_req(kal_uint8 src_id, kal_bool is_on, kal_uint8 num_of_mod, module_type *mod_list);
+
+void l4c_em_quick_test_report_res_req(kal_bool result, kal_uint8 test_count, kal_uint8 *test_list);
+
+extern kal_bool l4c_l1_max_tx_pwr_red_req(kal_uint8 src_id,
+ kal_uint8 op,
+ kal_bool gsm_tbl_valid,
+ kal_uint8 ***gsm_tx_pwr_reduction_tbl,
+ kal_uint8 ***gsm_tx_pwr_reduction_tbl_tas,
+ kal_bool umts_tbl_valid,
+ kal_uint8 **umts_tx_pwr_reduction_tbl,
+ kal_uint8 **umts_tx_pwr_reduction_tbl_tas,
+ kal_bool lte_tbl_valid,
+ kal_uint16 lte_band,
+ kal_uint8 *lte_tx_pwr_reduction_param);
+
+#ifdef __TC10__
+extern kal_bool l4c_mmrf_get_temperature_info_req(kal_uint8 src_id, kal_uint8 mode);
+extern void l4cmmrf_temperature_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+#endif
+
+extern kal_bool l4c_get_thermal_info_req(kal_uint8 src_id);
+extern void l4c_get_thermal_info_via_ccci_req();
+
+extern void l4c_get_thermal_info_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_eq_set_rx_path_req(kal_uint8 src_id,
+ kal_uint8 cmd_type,
+ kal_uint8 rx_path,
+ kal_bool nvram_write);
+
+extern kal_bool l4c_force_tx_ant_req(kal_uint8 src_id,
+ kal_uint8 mode,
+ kal_uint8 rat,
+ kal_uint8 ant_state,
+ kal_uint8 band,
+ kal_uint8 nvram_write);
+extern void l4c_force_tx_ant_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_meta_cfg_req(kal_uint8 src_id, kal_uint8 mode, FT_MODE_SWITCH_RESULT *result_ptr);
+
+extern void l4c_rx_rssi_verify_ind_hdlr(msg_type msg_id,local_para_struct *local_para_ptr);
+extern void l4c_em_tx_report_ind_hdlr(msg_type msg_id,local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_set_rf_temperature_threshold_req(kal_uint8 src_id,
+ kal_bool on,
+ kal_int16 threshold,
+ kal_int16 period);
+extern void l4c_set_rf_temperature_threshold_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern void l4c_set_rf_temperature_threshold_ind_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+#ifdef __LTE_RAT__
+extern kal_bool l4c_vzw_antenna_test_req(kal_uint8 src_id, kal_uint8 type, kal_uint8 p1, kal_uint8 p2);
+extern void l4c_vzw_antenna_test_cnf_handler(msg_type msg_id, local_para_struct *local_para_ptr);
+#endif
+
+extern void l4cxl1_txrx_active_time_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern void l4c_accumulate_txrx_active_time(kal_uint32 rx_time, kal_uint32 *tx_time, kal_uint32 txrx_union_time);
+
+extern void l4c_c2k_rf_test_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_em_mmrf_mipi_action_req(kal_uint8 src_id,
+ kal_uint8 action,
+ kal_uint8 port,
+ kal_uint8 rw_type,
+ kal_uint8 usid,
+ kal_uint16 addr,
+ kal_uint32 wr_data);
+
+extern kal_bool l4c_em_mmrf_bpi_action_req(kal_uint8 src_id, kal_uint8 action, kal_uint32 data1, kal_uint32 data2);
+extern void l4c_em_mmrf_mipi_bpi_action_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern void l4cps_md_event_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_send_mdmi_rat_info();
+extern void l4c_em_event_set_bitmask(em_info_status_enum em_info_status, l4c_em_event_enum l4c_em_event);
+
+extern kal_bool l4c_rfid_update_req_hdlr(kal_uint8 src_id, kal_uint16 feature, kal_int16 scenario_index);
+extern void l4c_rfid_update_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern kal_bool l4c_set_gsm_tx_power_req_hdlr(kal_uint8 src_id, kal_uint8 cmd_type, kal_uint8 gsm_band, kal_int8 pcl_value);
+extern void l4c_set_gsm_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+#ifdef __ATERFTX_ERROR_HANDLE_ENHANCE__
+extern void l4c_em_rf_test_gsm_tx_test_ind_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_em_erftx_gsm_rsp(kal_uint8 src_id, ps_cause_enum error_cause);
+#endif
+
+
+extern kal_bool l4c_set_max_tx_power_req_hdlr(kal_uint8 src_id, kal_uint8 rat, kal_uint16 offset, kal_uint8 gsm_band);
+extern void l4c_set_max_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+#ifdef __RF_SCAN_FOR_DESENSE_TEST__
+extern kal_bool l4c_l1_em_rf_scan_req(kal_uint8 src_id, em_rf_scan_req_struct *request);
+extern void l4c_l1_em_rf_scan_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+#endif /*__RF_SCAN_FOR_DESENSE_TEST__*/
+#ifdef __MCF_COMBINE_FILE_SUPPORT__
+extern kal_bool l4c_set_mcf_config_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 config_type, kal_uint8 path_type,
+ kal_uint8 *config1, kal_uint8 *config2, kal_uint8 *config3, kal_uint8 *config4,
+ kal_uint8 trigger_dsbp, kal_uint8 action, kal_uint8 mode, kal_uint8 *item,
+ kal_uint8 *value, kal_uint8 is_reset);
+#else
+extern kal_bool l4c_set_mcf_config_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 config_type, kal_uint8 path_type,
+ kal_uint8 *config1, kal_uint8 *config2, kal_uint8 *config3, kal_uint8 *config4,
+ kal_uint8 trigger_dsbp, kal_uint8 action, kal_uint8 mode, kal_uint8 *item,
+ kal_uint8 *value);
+#endif /* __MCF_COMBINE_FILE_SUPPORT__ */
+extern void l4c_set_mcf_config_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_get_mcf_config_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_mcf_report_state_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_mcf_dump_data_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_ostd_ap_core_status_req_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_mcf_update_ota_file_cnf_hdlr(local_para_struct *local_para_ptr);
+extern void l4c_mcf_config_cnf_hdlr(local_para_struct *local_para_ptr);
+extern kal_bool l4c_mcf_config_lid_variable_op_req_hdlr(kal_uint8 src_id, kal_uint8 op,kal_uint8 action, kal_uint16 lid_num,
+ kal_uint16 record_id, kal_uint8 *tag_name, kal_uint8 length);
+extern void l4c_mcf_config_lid_variable_op_cnf_hdlr(local_para_struct *local_para_ptr);
+
+#ifdef __MCF_COMBINE_FILE_SUPPORT__
+extern kal_bool l4c_mcf_variable_value_operation_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 format, kal_uint8 action, kal_uint32 number,
+ kal_uint8 *config, kal_uint8 length, kal_uint16 record_id, kal_uint8 *value);
+
+extern kal_bool l4c_mcf_assign_combined_file_path_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 config_type,
+ kal_uint8 path_type, kal_uint8 *config1);
+extern void l4c_mcf_assign_combined_file_path_cnf_hdlr(local_para_struct *local_para_ptr);
+
+#else
+extern kal_bool l4c_mcf_variable_value_operation_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint8 format, kal_uint8 action, kal_uint32 number,
+ kal_uint8 *config, kal_uint8 length, kal_uint16 record_id);
+
+#endif /* __MCF_COMBINE_FILE_SUPPORT__ */
+
+extern void l4c_mcf_variable_value_operation_cnf_hdlr(local_para_struct *local_para_ptr);
+
+extern void l4c_mcf_dump_data_cnf_hdlr(local_para_struct *local_para_ptr);
+
+
+extern kal_bool l4c_em_extended_lce_report_req(kal_uint8 op,
+ kal_uint16 hyst_milli,
+ kal_uint16 ul_hyst_kbps,
+ kal_uint16 dl_hyst_kbps,
+ kal_uint8 ul_thresh_num,
+ kal_uint32 *ul_threshold,
+ kal_uint8 dl_thresh_num,
+ kal_uint32 *dl_threshold,
+ kal_uint8 rat);
+extern void l4cul1_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cel1_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cnl1_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cumac_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cmac_extended_lce_report_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4c_em_extended_lce_report_ind_hdlr(kal_uint8 is_ul_valid,
+ kal_uint32 ul_kbps,
+ kal_uint8 is_dl_valid,
+ kal_uint32 dl_kbps);
+
+extern void l4c_lcm_hopping_ind_hdlr(msg_type msg_id,local_para_struct *local_para_ptr);
+
+extern void l4c_em_get_antenna_info_req(kal_uint8 mode);
+extern void l4c_em_get_antenna_info_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern void l4c_em_get_antenna_info_ind_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+
+extern void l4c_2g_rf_test_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern kal_bool l4c_mcf_config_dump_lid_data_req_hdlr(kal_uint8 src_id, kal_uint8 op, kal_uint16 *lid, kal_uint32 count);
+
+#ifdef __SAR_SENSOR_SUPPORT__
+extern void l4c_sar_sensor_setting_for_rfid(kal_uint8 g_sar_sensor_state);
+extern void l4c_sar_set_tx_ant_req_count(kal_uint8 count);
+extern kal_uint8 l4c_sar_get_tx_ant_req_count();
+extern void l4c_sar_set_txant_update_needed();
+extern void l4c_sar_reset_txant_update_needed();
+extern void l4c_update_sar_sensor_in_ap();
+extern void l4c_update_flight_sar_sensor_in_ap(kal_bool flight_status);
+#endif
+
+extern void l4c_tx_power_status_ind_hdlr(local_para_struct *local_para_ptr);
+#ifdef __TX_PWR_EXTENSION__
+extern kal_bool l4c_set_exclusive_max_tx_power_req_hdlr(kal_uint8 src_id, kal_uint8 rat, kal_uint8 num_band, kal_uint8 *band, kal_int16 *power_value,kal_uint8 nvram_write);
+void l4c_set_exclusive_max_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+extern kal_bool l4c_get_exclusive_max_tx_power_req(kal_uint8 src_id);
+void l4c_get_exclusive_max_tx_power_cnf_hdlr(msg_type msg_id, local_para_struct *local_para_ptr);
+#endif
+
+
+#endif /* _L4C_EM_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_eq_cmd.h b/mcu/protocol/interface/l4misc/l4c_eq_cmd.h
new file mode 100644
index 0000000..68fc8f1
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_eq_cmd.h
@@ -0,0 +1,894 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*******************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (kal_uint8 src_id, C) 2001
+*
+*******************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_eq_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_EQ_CMD_H
+#define _L4C_EQ_CMD_H
+
+#include "med_struct.h"
+
+#include "l4c2uem_struct.h"
+#include "nvram_enums.h"
+//#include "event_shed.h"
+#include "device.h"
+#include "l4c_aux_struct.h"
+#include "dcl.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+#include "kal_public_api.h"
+#ifdef __LTE_RAT__
+#include "l4c_el1_struct.h"
+#endif
+
+#ifdef __TC01__
+typedef enum
+{
+ FACTEST_LCD_INITIAL = 0,
+ FACTEST_LCD_CONTRAST,
+ FACTEST_LCD_TILT,
+ FACTEST_LCD_COLOR,
+ FACTEST_LCD_LED_ON,
+ FACTEST_LCD_LED_OFF,
+ FACTEST_LCD_RED = 11,
+ FACTEST_LCD_GREEN = 12,
+ FACTEST_LCD_BLUE = 13,
+ NUM_OF_FACTEST_LCD
+} lcd_test_mode_enum;
+#endif
+
+extern kal_bool l4c_eq_gpio_detect_res_req(kal_uint8 ext_gpio_device);
+
+/* audio related */
+extern kal_bool l4c_eq_audio_play_req(kal_uint8 src_id, kal_uint8 sound_id, kal_uint8 style, kal_uint16 identifier);
+
+extern kal_bool l4c_eq_full_para_audio_play_req(kal_uint8 src_id,
+ kal_uint8 sound_id,
+ kal_uint8 style,
+ kal_uint16 identifier,
+ kal_uint8 volume,
+ kal_uint8 out_path);
+
+extern kal_bool l4c_eq_audio_play_by_name_req(
+ kal_uint8 src_id,
+ kal_wchar *file_name,
+ kal_uint8 style,
+ kal_uint16 identifier);
+
+extern kal_bool l4c_eq_audio_stop_by_name_req(kal_uint8 src_id, kal_wchar *file_name);
+
+extern kal_bool l4c_eq_audio_stop_req(kal_uint8 src_id, kal_uint8 sound_id);
+
+extern kal_bool l4c_eq_audio_play_by_string_req(
+ kal_uint8 src_id,
+ kal_uint8 *melody,
+ kal_uint32 len,
+ kal_uint8 format,
+ kal_uint8 play_style,
+ kal_uint16 identifier,
+ kal_uint32 start_offset,
+ kal_uint32 end_offset,
+ kal_uint8 volume,
+ kal_uint8 output_path,
+ kal_uint8 blocking);
+
+extern kal_bool l4c_eq_audio_stop_by_string_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_demo_ext_midi_ring_req(
+ kal_uint8 src_id,
+ kal_uint8 *imelody,
+ kal_uint16 len,
+ kal_uint8 play_style,
+ kal_uint16 identifier);
+extern kal_bool l4c_eq_fs_read_req(void);
+
+extern void l4c_eq_fs_app_next(void);
+extern void l4c_eq_fs_efsl_next(void);
+extern kal_bool l4c_eq_exe_volume_req(kal_uint8 src_id, kal_uint8 volume_type, kal_uint8 volume_level);
+
+extern kal_bool l4c_eq_set_audio_profile_req(kal_uint8 src_id, audio_profile_struct *audio_prof);
+
+extern kal_bool l4c_eq_set_audio_param_req(kal_uint8 src_id, audio_param_struct *audio_para);
+
+extern kal_bool l4c_eq_get_audio_profile_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_eq_get_audio_param_req(kal_uint8 src_id);
+
+#if defined(__AMRWB_LINK_SUPPORT__)
+extern kal_bool l4c_eq_get_audio_wb_param_req(kal_uint8 src_id, kal_uint8 option);
+
+extern kal_bool l4c_eq_set_audio_wb_param_req(kal_uint8 src_id, kal_uint8 option, void *new_param);
+#endif
+extern kal_bool l4c_eq_get_volume_req(kal_uint8 src_id, kal_uint8 volume_type);
+
+extern void l4c_eq_lcd_set_contrast_req(kal_uint8 lcd_type, kal_uint8 lcd_contrast);
+
+extern kal_bool l4c_eq_exe_mute_req(kal_uint8 src_id, kal_uint8 audio_device, kal_bool mute_onoff);
+
+extern kal_bool l4c_eq_get_mute_mode_req(kal_uint8 src_id, kal_uint8 audio_device, kal_bool *mute_onoff);
+
+extern kal_bool l4c_eq_set_silent_mode_req(kal_uint8 src_id, kal_bool mode);
+extern kal_bool l4c_eq_get_silent_mode_req(kal_uint8 src_id, kal_bool *mode);
+extern kal_bool l4c_eq_set_speech_mode_req(kal_bool on_off);
+
+extern kal_bool l4c_eq_set_audio_mode_req(kal_uint8 mode); /* audio_mode_enum */
+
+extern kal_bool l4c_eq_get_adc_all_channel_start_req(void);
+
+extern kal_bool l4c_eq_get_adc_all_channel_stop_req(void);
+
+extern kal_bool l4c_eq_set_vibrator_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_eq_exe_gpio_level_req(kal_uint8 src_id, kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level);
+
+extern kal_bool l4c_eq_get_gpio_level_req(kal_uint8 src_id, kal_uint8 gpio_dev_type, kal_uint8 *gpio_dev_level);
+
+extern kal_bool l4c_eq_set_keypad_input_req(kal_uint8 src_id, kal_uint8 *keycode, kal_uint8 time, kal_uint8 pause);
+
+/* rtc related, clock, alarm */
+
+extern kal_bool l4c_eq_exe_rtc_time_req(
+ kal_uint8 src_id,
+ kal_uint8 rtc_type,
+ kal_uint8 set_type,
+ rtc_alarm_info_struct info);
+
+extern kal_bool l4c_eq_set_rtc_time_req(
+ kal_uint8 src_id,
+ kal_uint8 rtc_type,
+ kal_uint8 set_type,
+ rtc_alarm_info_struct info);
+
+extern kal_bool l4c_eq_get_rtc_time_req(
+ kal_uint8 src_id,
+ kal_uint8 rtc_type,
+ kal_uint8 *num,
+ rtc_alarm_info_struct *rtctime);
+
+extern kal_bool l4c_eq_exe_rtc_delete_req(kal_uint8 src_id, kal_uint8 rtc_type, kal_uint8 rtc_index);
+
+extern kal_bool l4c_eq_rtc_delete_req(kal_uint8 src_id, kal_uint8 rtc_type, kal_uint8 rtc_index);
+
+extern kal_bool l4c_eq_set_date_time_format_req(kal_uint8 src_id, kal_bool is_date_set, kal_uint8 mode);
+
+extern kal_bool l4c_eq_get_date_time_format_req(kal_uint8 src_id, kal_bool is_date_set, kal_uint8 *mode);
+
+/* misc */
+
+//extern kal_bool l4c_eq_set_language_req (kal_uint8 src_id, kal_uint8 *lang_code);
+extern kal_bool l4c_eq_set_language_req(kal_uint8 src_id, kal_uint8 lang_code);
+
+extern kal_bool l4c_eq_get_language_req(kal_uint8 src_id, kal_uint8 *lang_code);
+
+extern kal_bool l4c_eq_set_greeting_text_req(
+ kal_uint8 src_id,
+ kal_bool mode,
+ kal_uint8 dcs,
+ kal_uint8 text[62],
+ kal_uint8 length);
+
+extern kal_bool l4c_eq_get_battery_capacity_status_req(
+ kal_uint8 src_id,
+ kal_uint8 *battery_status,
+ kal_uint32 *battery_cap);
+
+extern kal_bool l4c_eq_get_equip_id_req(kal_uint8 src_id, kal_uint8 equip_type, kal_uint8 *equip_id);
+
+extern kal_bool l4c_eq_read_nvm_uart_port_req(kal_uint8 src_id, kal_uint16 action); //MAUI_02304946, mtk02285
+
+extern kal_bool l4c_eq_load_default_config_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_load_power_on_data_req(kal_uint8 src_id, kal_bool read_flag, nvram_lid_enum file_idx);
+
+extern kal_bool l4c_eq_uart_transfer_req(kal_uint8 port);
+
+extern kal_bool l4c_eq_uart_release_req(kal_uint8 port);
+
+extern kal_bool l4c_eq_set_uart_port_req(
+ kal_uint8 src_id,
+ kal_uint8 func_id,
+ kal_uint8 ps_port,
+ kal_uint8 tst_port_ps,
+ kal_uint32 ps_baud_rate,
+ kal_uint32 tst_baud_rate_ps,
+ kal_bool High_Speed_SIM_Enabled,
+ kal_uint8 swdbg,
+ kal_uint8 uart_power_setting,
+ kal_uint8 cti_uart_port,
+ kal_uint32 cti_baud_rate,
+ kal_uint8 tst_port_l1,
+ kal_uint32 tst_baud_rate_l1,
+ kal_uint8 tst_output_mode,
+ kal_uint8 usb_logging_mode,
+ kal_uint16 tst_port_dsp,
+ kal_uint32 tst_baud_rate_dsp);
+
+extern kal_bool l4c_eq_get_uart_port_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_read_nvram_req(
+ kal_uint8 src_id,
+ kal_uint16 file_idx,
+ kal_uint16 para,
+ kal_uint16 rec_amount);
+
+extern kal_bool l4c_eq_write_nvram_req(
+ kal_uint8 src_id,
+ kal_uint16 file_idx,
+ kal_uint16 para,
+ kal_uint8 *data,
+ kal_uint16 length);
+
+extern kal_bool l4c_eq_reset_nvram_req(
+ kal_uint8 src_id,
+ kal_uint8 reset_category,
+ kal_uint16 lid,
+ kal_uint16 rec_index,
+ kal_uint16 rec_amount);
+
+extern kal_bool l4c_eq_power_off_req(kal_uint8 src_id);
+
+extern kal_bool l4c_eq_cancel_lock_poweron_req(kal_uint8 src_id,kal_uint8 type);
+
+extern eventid l4c_set_timer_req(void *timeout_hdlr, kal_uint16 time, void *param);
+
+extern kal_bool l4c_exe_functionality_req(kal_uint8 src_id, kal_uint8 fun, kal_uint8 rst);
+
+extern kal_bool l4c_em_keypad_event_output_req(kal_uint8 src_id, kal_uint8 keypad_status, kal_uint8 keypad_code,kal_uint32 time_stamp);
+
+extern void l4c_eq_keypad_event_output_req(kal_uint8 src_id, kal_uint8 keypad_status, kal_uint8 keypad_code);
+
+extern void l4c_eq_scrntch_event_output_req(kal_uint8 action, kal_uint16 x_coords, kal_uint16 y_coords);
+
+extern kal_bool l4c_em_lcm_test_ind(kal_uint8 src_id, kal_uint8 color_type);
+
+extern kal_bool l4c_em_set_mmi_default_prof_ind(
+ kal_uint8 src_id,
+ kal_uint8 op,
+ kal_uint8 category,
+ kal_uint8 param1,
+ kal_uint8 param2,
+ kal_uint8 param3,
+ kal_uint8 *param4);
+
+extern kal_bool l4c_em_keypad_event_act_ind(kal_uint8 src_id, kal_bool on_off);
+
+extern kal_bool l4c_em_lcm_sleep_mode_req_ind(kal_uint8 src_id, kal_uint8 on_off);
+
+extern kal_bool l4c_eq_pattern_play_req(kal_uint8 src_id, kal_uint8 pattern, kal_uint8 action);
+
+extern kal_bool l4c_eq_set_hw_level_req(kal_uint8 src_id, l4c_hw_profile_struct *hw_profile);
+
+extern kal_bool l4c_eq_get_hw_level_req(kal_uint8 src_id, l4c_hw_profile_struct *hw_profile);
+
+extern kal_bool l4c_eq_read_ms_sn_req(kal_uint8 src_id, nvram_lid_enum file_idx, kal_uint8 para);
+
+extern kal_bool l4c_eq_read_ms_sv_req(kal_uint8 src_id, nvram_lid_enum file_idx, kal_uint8 para);
+
+extern kal_bool l4c_eq_read_autotest_report_req(kal_uint8 src_id, nvram_lid_enum file_idx, kal_uint8 para);
+
+#ifdef __IRDA_SUPPORT__
+extern kal_bool l4c_eq_irda_open_req(kal_uint16 wait_duration);
+
+extern kal_bool l4c_eq_irda_close_req(void);
+#endif /* __IRDA_SUPPORT__ */
+
+extern kal_bool l4c_eq_set_ms_sn_req(kal_uint8 src_id, kal_uint8 *data, kal_uint8 length);
+
+extern kal_bool l4c_eq_set_ms_imei_req(kal_uint8 src_id, kal_uint8 *data, kal_uint8 length);
+
+extern kal_bool l4c_eq_set_ms_sv_req(kal_uint8 src_id, kal_uint8 *data, kal_uint8 length);
+
+#if 0
+/* under construction !*/
+#endif
+extern kal_bool l4c_eq_lock_nvram_req(kal_uint8 src_id, kal_uint8 mode); /* nvram_lock_state_enum */
+
+extern kal_bool l4c_em_sleep_mode_req(kal_bool on_off);
+
+extern void l4c_mms_folder_status_output_req(
+ kal_uint8 result,
+ kal_uint32 numOfMsg,
+ kal_uint32 numOfUnreadMsg,
+ kal_uint8 *mmsHomeDirectory,
+ kal_uint8 *infoFilePath);
+extern void l4c_mms_upload_msg_output_req(kal_uint8 result, kal_uint32 msgId, kal_uint8 storage);
+extern void l4c_mms_delete_msg_output_req(kal_uint8 result);
+extern void l4c_mms_read_msg_path_res_req(kal_uint8 result, kal_uint32 msgId,kal_uint8 *path);
+
+extern void l4c_eq_screen_touch_res_req(kal_int8 result);
+extern void l4c_eq_scrnorient_res_req(kal_int8 result, kal_uint8 mode);
+extern void l4c_eq_scrnsize_query_res_req(kal_int8 result, kal_uint16 max_x, kal_uint16 max_y);
+extern void l4c_eq_screen_shot_res_req(kal_int8 result, kal_uint8 op, kal_wchar *file_path);
+
+extern void l4c_eq_at_alarm_general_res_req(kal_bool result);
+extern void l4c_eq_at_alarm_query_res_req(
+ kal_uint8 totalAlarm,
+ kal_uint8 activeAlarm,
+ mmi_at_alarm_info_struct *alarmList);
+
+extern void l4c_eq_query_vibrator_mode_res_req(kal_bool mode);
+extern void l4c_eq_query_silent_mode_res_req(kal_bool mode);
+extern void l4c_eq_query_mute_mode_res_req(kal_bool mode);
+extern void l4c_eq_query_greeting_text_res_req(kal_bool mode, kal_uint8 dcs, kal_uint8 *text, kal_uint8 length);
+extern void l4c_eq_query_language_res_req(kal_uint8 lang_code);
+extern void l4c_eq_query_datetime_format_res_req(kal_bool is_date, kal_uint8 mode);
+extern void l4c_mmi_java_local_install_res_req(kal_uint32 error_code);
+
+extern void l4c_eq_pmic_config_req(kal_uint8 src_id, kal_uint8 request_type, pmic_config_param_struct request);
+extern void l4c_eq_usbdetect_res_req(kal_uint8 src_id, kal_uint8 action);
+extern void l4c_eq_battery_status_res_req(kal_uint8 src_id, kal_uint8 status_type);
+extern kal_bool l4c_bt_set_vr_req(kal_uint8 src_id, kal_bool on_off);
+extern void l4c_eq_vcard_res_req(kal_uint8 mode, kal_bool result, kal_uint8 *file_path);
+extern void l4c_eq_vcalendar_res_req(
+ kal_uint8 mode,
+ kal_bool result,
+ kal_uint8 cause,
+ kal_uint8 total,
+ kal_uint8 used,
+ kal_uint8 index,
+ kal_uint8 *file_path);
+extern void l4c_eq_str_res_req(kal_uint16 length, kal_uint8 *data_string);
+extern void l4c_eq_dcm_enable_req(kal_uint8 src_id, kal_bool enable);
+extern void l4c_eq_rf_test_gsm_req(kal_uint8 src_id, kal_uint8 request_type, rf_test_gsm_param_struct request);
+extern void l4c_eq_fm_radio_config_req(kal_uint8 src_id, kal_uint8 request_type, fm_radio_config_param_struct request);
+#if defined(__WIFI_SUPPORT__)
+extern void l4c_eq_rf_test_wifi_req(kal_uint8 src_id, kal_uint8 request_type, rf_test_wifi_param_struct request);
+#endif
+extern void l4c_mmi_eq_call_status_req(kal_uint8 src_id, kal_uint8 call_status);
+extern void l4c_eq_query_hand_free_mode_res_req(kal_bool is_hand_free);
+extern void l4c_eq_set_avr_res_req(kal_uint8 result, kal_uint8 mode);
+extern void l4c_eq_set_cam_res_req(kal_uint8 result, kal_uint8 mode);
+
+extern kal_bool l4c_eq_set_backlight_req(kal_uint8 state, kal_uint16 duration);
+extern void l4c_eq_at_cbklt_query_res_req(kal_uint8 level, kal_uint16 duration);
+
+extern void l4c_eq_ram_usage_res_req(kal_int8 result, kal_uint32 used);
+extern void l4c_eq_launch_app_res_req(kal_int8 result);
+extern void l4c_eq_app_info_output_res_req(kal_uint8 type, kal_uint16 *log);
+extern void l4c_em_get_conftest_para_req(kal_uint8 src_id);
+extern kal_bool l4c_em_set_conftest_para_req(kal_uint8 src_id, kal_uint8 conf_test_mode, kal_uint32 test_profile);
+extern void l4c_eq_ringtone_play_res_req(kal_bool result, kal_uint8 cause);
+
+extern kal_bool l4c_eq_3g_rf_test_req(kal_uint8 src_id, kal_uint8 func, kal_uint8 band, kal_uint16 freq, kal_int8 power);
+#if defined(__NFC_SUPPORT__)
+extern kal_bool l4c_eq_nfc_test_req(kal_uint8 src_id, kal_uint8 option, void *data_ptr);
+#endif
+
+#if defined(__AT_BACKUP_DATA_SUPPORT__)
+extern kal_bool l4c_em_set_sds_req(kal_uint8 src_id, kal_uint8 op);
+#endif
+
+extern kal_bool l4c_eq_set_boot_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern void l4c_eq_query_cal_data_dl_status_req(kal_uint8 src_id);
+
+extern kal_bool l4c_med_in_proc_call_req(l4c_source_id_enum src_id,
+ kal_uint16 cmd_id,
+ void *cmd_info,
+ kal_uint16 size_of_info);
+
+extern void l4c_med_in_epof_req(void);
+extern void l4c_power_off_notify_others(void);
+
+#ifdef __LTE_RAT__
+extern kal_bool l4c_eq_rx_rssi_verify_req(kal_uint16 band, kal_uint32 dl_earfcn);
+extern kal_bool l4c_eq_rf_test_lte_req(kal_uint8 src_id, kal_uint8 request_type, EL1_EM_TSTCmd_ForceTxPwr_T *request);
+extern kal_bool l4cel1_send_b3_info_req(kal_uint8 src_id, kal_uint8 type, kal_uint8 index, kal_uint16 arfcn, kal_int16 rssi);
+
+#endif
+
+extern void l4c_set_dynamic_sim_switch();
+extern void l4c_set_reconfig_req(protocol_id_enum ps_sim_id);
+
+extern kal_bool l4c_eq_txrx_active_time_req(l4c_source_id_enum src_id);
+extern kal_bool l4c_eq_c2k_rf_test_req(l4c_source_id_enum src_id,kal_uint8 mode,
+ kal_uint8 band, kal_uint8 powerLevel, kal_uint16 channel,
+ kal_uint8 reductionLevel_Ant0, kal_uint8 reductionLevel_Ant1);
+extern void l4c_send_volte_reconfigure_req(kal_uint8 type);
+extern void l4c_send_ims_reconfigure_req(module_type dest_mod, kal_uint8 sap, kal_uint8 type);
+extern kal_bool l4c_hspa_lce_report_pulldata_req(kal_uint8 srcid);
+extern kal_bool l4c_hspa_lce_report_req(kal_uint8 srcid, kal_uint8 mode, kal_uint32 rpt_interval);
+extern kal_bool l4c_eq_apinfo_update_req(kal_uint8 receiver_status, kal_uint8 screen_orientation, kal_uint8 psensor_info, kal_uint8 voice_call_status);
+extern kal_bool l4c_lce_report_pulldata_req(kal_uint8 srcid);
+extern kal_bool l4c_lce_report_req(kal_uint8 srcid, kal_uint8 mode, kal_uint32 rpt_interval);
+#endif /* _L4C_EQ_CMD_H */
+
+extern void l4c_eq_gpio_detect_ind(kal_uint8 gpio_device, kal_bool on_off);
+extern void l4c_eq_power_on_ind(void);
+#ifdef __TC01__
+extern kal_bool l4c_portlockunlock_nvram_req(kal_uint8 src_id, port_lock_enum lock_mode, port_lock_mode_enum cmd_mode);
+extern kal_bool l4c_portunlock_req(kal_uint8 src_id,kal_uint8 *str);
+#endif
+
+extern l4c_at_cmd_process_type_enum l4c_eq_set_kal_UTC(kal_uint8 src_id, l4c_general_modem_configure_struct *cmd_param_ptr);
+
diff --git a/mcu/protocol/interface/l4misc/l4c_eq_msg.h b/mcu/protocol/interface/l4misc/l4c_eq_msg.h
new file mode 100644
index 0000000..bdcec29
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_eq_msg.h
@@ -0,0 +1,194 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_eq_msg.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_EQ_MSG_H
+#define _L4C_EQ_MSG_H
+
+#include "keypad_sw.h"
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_struct.h"
+#include "uem_at_cmd.h"
+
+extern void l4cuem_power_on_ind(kal_uint8 poweron_mode, kal_uint8 battery_level);
+
+extern void l4cuem_audio_play_finish_ind(kal_uint8 result, kal_uint16 identifier);
+
+extern void l4cuem_gpio_detect_ind(kal_uint8 gpio_device, kal_bool on_off);
+
+extern void l4cuem_alarm_detect_ind(rtc_format_struct *rtc_time);
+
+extern void l4cuem_rtc_period_ind(kal_uint8 rtc_type, rtc_format_struct *rtc_time);
+
+extern void l4cuem_keypad_detect_ind(kal_bool(*drv_get_key_func) (kbd_data *));
+
+extern void l4cuem_battery_status_ind(kal_uint8 battery_status, kal_uint8 battery_voltage);
+
+extern void l4cuem_get_adc_all_channel_ind(
+ kal_int32 vbat,
+ kal_int32 bat_temp,
+ kal_int32 vaux,
+ kal_int32 charge_current,
+ kal_int32 vcharger);
+
+extern void l4cuem_startup_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_play_by_name_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_stop_by_name_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_play_by_string_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_audio_stop_by_string_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_audio_profile_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_volume_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_gain_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_audio_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_get_audio_wb_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_audio_wb_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_audio_profile_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_audio_param_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4cuem_set_hw_level_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+extern void l4c_keypad_input_press_hdlr(void);
+
+extern void l4c_keypad_input_pause_hdlr(void);
+
+extern void l4c_keypad_input_long_press_hdlr(void);
+
+extern void l4c_keypad_input_repeat_hdlr(void);
+
+extern void l4cuem_usbdetect_ind(kal_uint8 action);
+
+extern void l4cuem_usb_power_on_ind(void);
+
+extern void l4c_eq_get_calibration_flag_rsp(kal_uint8 cal_flag);
+
+extern void l4c_eq_get_calibration_data_rsp(kal_uint8 cal_data);
+
+extern void l4cuem_at_ef_port_setting_result_rrsp(l4cuem_at_ef_port_mode_enum mode, kal_bool result);
+
+#define l4c_equeue_onekey_to_kbdbuffer(_event,_key) \
+{ \
+ l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_windex].Keyevent = _event; \
+ l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_windex].Keydata[0] = _key; \
+ l4c_kbd_buffer.kbd_data_buffer_windex++; \
+ l4c_kbd_buffer.kbd_data_buffer_windex &= (kbd_buffer_size-1); \
+ if(l4c_kbd_buffer.kbd_data_buffer_windex==l4c_kbd_buffer.kbd_data_buffer_rindex) \
+ { \
+ l4c_kbd_buffer.kbd_data_buffer_windex--; \
+ l4c_kbd_buffer.kbd_data_buffer_windex &= (kbd_buffer_size-1); \
+ while(l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_windex].Keyevent != kbd_onekey_press)\
+ { \
+ l4c_kbd_buffer.kbd_data_buffer_windex--; \
+ l4c_kbd_buffer.kbd_data_buffer_windex &= (kbd_buffer_size-1); \
+ } \
+ } \
+}
+
+#define l4c_dequeue_onekey_from_kbdbuffer(_event,_key) \
+{ \
+ _event = l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_rindex].Keyevent;\
+ _key = l4c_kbd_buffer.kbd_data_buffer[l4c_kbd_buffer.kbd_data_buffer_rindex].Keydata[0];\
+ l4c_kbd_buffer.kbd_data_buffer_rindex++; \
+ l4c_kbd_buffer.kbd_data_buffer_rindex &= (kbd_buffer_size-1); \
+}
+
+#define l4c_clear_kbdbuffer() \
+{ \
+ kal_mem_set(l4c_kbd_buffer.kbd_data_buffer, 0xff, sizeof(kbd_data)* kbd_buffer_size);\
+ l4c_kbd_buffer.kbd_data_buffer_windex = 0 ; \
+ l4c_kbd_buffer.kbd_data_buffer_rindex = 0 ; \
+}
+
+extern void l4cuem_leave_precharge_ind(void);
+
+extern void l4cuem_pmic_config_cnf(kal_uint8 src_id, kal_uint8 request_type, pmic_config_param_struct request);
+
+extern void l4cuem_rf_test_gsm_cnf(kal_uint8 src_id, kal_uint8 request_type, rf_test_gsm_param_struct request);
+
+extern void l4cuem_fm_radio_config_cnf(kal_uint8 src_id, kal_uint8 request_type, fm_radio_config_param_struct request);
+
+#if defined(__WIFI_SUPPORT__)
+extern void l4cuem_rf_test_wifi_cnf(kal_uint8 src_id, kal_uint8 request_type, rf_test_wifi_param_struct request);
+#endif
+
+extern void l4c_l1_query_cal_data_dl_status_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+
+#ifdef __LTE_RAT__
+extern void l4cel1_rx_rssi_verify_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_eq_rf_test_lte_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cel1_b3_info_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+#endif
+
+#endif /* _L4C_EQ_MSG_H */ /* l4c_eq_msg.h */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_gprs_cmd.h b/mcu/protocol/interface/l4misc/l4c_gprs_cmd.h
new file mode 100644
index 0000000..a11ffa7
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_gprs_cmd.h
@@ -0,0 +1,245 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_gprs_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for ¡K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_GPRS_CMD_H
+#define _L4C_GPRS_CMD_H
+
+#ifdef __MOD_TCM__
+ //#include "kal_non_specific_general_types.h"
+ #include "l4c_common_enum.h"
+ //#include "l4c_aux_struct.h"
+ #include "l4c2tcm_func.h"
+ #include "l4c2tcm_struct.h"
+ #ifdef __TCPIP__
+ //#include "l4c2abm_struct.h"
+ #endif
+
+ #include "kal_general_types.h"
+ #include "ps_public_struct.h"
+ #include "pam2tcm_struct.h"
+
+#include "l4c_ps_cmd.h"
+
+#ifdef __L4C_GPRS_UT__
+#define L4C_C2K_ASSERT(x) ASSERT(x)
+#else
+#define L4C_C2K_ASSERT(x) DEBUG_ASSERT(x)
+#endif
+
+extern kal_bool l4c_ps_get_gprs_data_counter_req(l4c_gprs_statistics_info_struct *counter_info);
+
+extern kal_bool l4c_eps_set_tft_req(kal_uint8 src_id, tft_info_struct *tft);
+
+/*
+ * add local_deactivate_pdp for __LOCAL_DEACTIVATE_PDP_SUPPORT__
+ * mtk02126 MAUI_02532440 add data_src to handle plugout indication while escape
+ */
+//extern void l4c_ps_disc_ppp_dialup_req(l4c_source_id_enum cmd_src_id, l4c_source_id_enum data_src_id, kal_uint8 context_id, kal_bool local_deactivate_pdp);
+
+extern l4c_source_id_enum l4c_ps_find_data_src_id(void);
+
+
+extern kal_bool l4c_tcm_set_ppp_auth_info_req(kal_uint8 src_id, kal_uint8 context_id, kal_uint8 auth_type);
+
+extern kal_bool l4c_ppp_deactivate_req(kal_uint8 nsapi);
+
+extern kal_bool l4c_ps_get_acl_mode_req(kal_uint8 src_id);
+
+extern kal_bool l4c_ps_set_acl_mode_req(kal_uint8 src_id, kal_uint8 on_off, kal_uint8 *pin);
+
+extern kal_bool l4c_ps_get_acl_entries_req(kal_uint16 start_index, kal_uint16 max_read_entries);
+
+extern kal_bool l4c_ps_add_acl_entry_req(l4c_tcm_acl_entry_struct acl_entry);
+
+extern kal_bool l4c_ps_set_acl_entry_req(kal_uint16 index, l4c_tcm_acl_entry_struct acl_entry);
+
+extern kal_bool l4c_ps_del_acl_entry_req(kal_bool del_all, kal_uint16 index, l4c_tcm_acl_entry_struct acl_entry);
+
+extern kal_bool l4c_ps_leave_acl_menu_req(void);
+
+
+
+#endif /* __MOD_TCM__ */
+#endif /* _L4C_GPRS_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h b/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
new file mode 100644
index 0000000..e94004b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_lcs_cmd.h
@@ -0,0 +1,112 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_lcs_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6268
+ *
+ * Description:
+ * ------------
+ * This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_LCS_CMD_H
+#define _L4C_LCS_CMD_H
+
+//#include "kal_non_specific_general_types.h"
+//#include "l4c_aux_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+extern kal_bool l4c_ss_mtlr_begin_res_req(kal_uint8 src_id,
+ L4C_SS_LocationNotificationRes *response,
+ kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_aerq_begin_res_req(kal_uint8 src_id,
+ kal_uint8 cause,
+ kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_aerp_begin_req(kal_uint8 src_id,
+ L4C_SS_LCS_AreaEventReportArg *aerp,
+ kal_uint8 ss_id,
+ kal_uint8 is_initial,
+ kal_uint8 rat_info);
+
+extern kal_bool l4c_ss_aerp_end_req(kal_uint8 src_id,
+ kal_uint8 cause,
+ kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_aecl_begin_res_req(kal_uint8 src_id,
+ kal_uint8 cause,
+ kal_uint8 ss_id);
+
+extern kal_bool l4c_ss_molr_begin_req(kal_uint8 src_id,
+ L4C_SS_LCS_MOLRArg *molr,
+ kal_uint8 ss_id,
+ kal_uint8 is_initial,
+ kal_uint8 rat_info);
+
+extern kal_bool l4c_ss_molr_end_req(kal_uint8 src_id,
+ kal_uint8 cause,
+ kal_uint8 ss_id);
+
+extern void l4c_agps_cp_enable_disable_req(kal_uint8 src_id, kal_uint8 enable);
+
+extern void l4c_agps_cp_key_update_req(kal_uint8 src_id,
+ kal_uint8 *sib15_current_deciphering_key,
+ kal_uint8 *sib15_next_deciphering_key,
+ kal_uint8 sib15_ciphering_key_flag);
+
+extern void l4c_agps_cp_abort_req(kal_uint8 src_id,
+ kal_uint8 is_abort_molr); //MAUI_02601131
+
+extern void l4c_lbs_message_dispatch(ilm_struct *ilm_ptr); //lbs message
+
+extern void l4c_lcs_ecc_info_req(kal_bool ecc_ongoing);
+extern void l4c_lcs_emt_info_req(kal_bool emt_ongoing);
+
+#endif /* _L4C_LCS_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_phb_cmd.h b/mcu/protocol/interface/l4misc/l4c_phb_cmd.h
new file mode 100644
index 0000000..be7b34f
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_phb_cmd.h
@@ -0,0 +1,186 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_phb_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_PHB_CMD_H
+#define _L4C_PHB_CMD_H
+
+#include "l4c_common_enum.h"
+#include "l4c2phb_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "ps_public_struct.h"
+#include "rmmi_common_enum.h"
+
+extern kal_bool l4c_phb_startup_begin_req(kal_bool is_fdn_change);
+
+extern kal_bool l4c_phb_get_entry_by_prefix_text_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint16 no_data,
+ l4_name_struct *name);
+
+extern kal_bool l4c_phb_get_entry_by_index_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 storage,
+ kal_uint8 num_index,
+ kal_uint16 index,
+ kal_uint16 record_index,
+ kal_uint16 no_data);
+
+extern kal_bool l4c_phb_get_entry_by_range_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 storage,
+ kal_uint16 index,
+ kal_uint16 record_index,
+ kal_uint16 no_data);
+
+extern kal_bool l4c_phb_get_entry_for_ecpbr_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ phb_storage_enum storage,
+ kal_uint8 num_index,
+ kal_uint16 record_index);
+
+extern kal_bool l4c_phb_get_type_info(
+ kal_uint8 type,
+ l4cphb_file_info_struct* file_info,
+ kal_uint8 occurrence);
+
+extern kal_bool l4c_phb_get_storage_info(
+ kal_uint8 src_id,
+ kal_uint8 rmmi_storage,
+ kal_uint16 *used,
+ kal_uint16 *total);
+
+
+extern kal_bool l4c_phb_init_me_phb_req(kal_uint8 src_id,kal_uint8 init_type);
+
+extern kal_bool l4c_phb_exe_write_entry_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint16 no_data,
+ l4c_phb_entry_struct *list);
+
+extern kal_bool l4c_phb_exe_delete_entry_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 num_index,
+ kal_uint16 index,
+ kal_uint8 no_data,
+ kal_uint8 storage,
+ kal_bool del_all,
+ kal_uint16 record_index);
+
+extern void l4c_phb_update(void);
+
+extern kal_bool l4c_phb_read_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 storage,
+ kal_uint8 num_index,
+ kal_uint16 index,
+ kal_uint16 record_index,
+ kal_uint16 no_data,
+ l4c_action_enum action);
+
+extern kal_bool l4c_phb_read_usim_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 occurrence,
+ kal_uint16 record_index);
+
+extern kal_bool l4c_phb_write_usim_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 occurrence,
+ kal_uint16 record_index,
+ l4c_phb_usim_entry *entry);
+
+extern kal_bool l4c_phb_delete_usim_req(
+ kal_uint8 src_id,
+ kal_uint8 type,
+ kal_uint8 occurrence,
+ kal_uint16 record_index);
+
+extern kal_bool l4c_phb_check_write_usim_entry_req(
+ kal_uint8 src_id,
+ kal_uint8 file_bitmap[PHB_TYPE_TOTAL],
+ kal_uint16 record_index);
+
+extern void l4c_phb_crsm_notify_write_entry_req(
+ kal_uint16 file_id,
+ kal_uint8 index,
+ kal_uint8 mode,
+ kal_uint8 data_len,
+ kal_uint8 *data);
+
+extern kal_bool l4c_phb_fdn_check_req(
+ kal_uint8 src_id,
+ l4_addr_bcd_struct *tel_num,
+ kal_uint8 is_retrieve,
+ l4c_phb_approval_type_enum approval_type,
+ l4c_action_enum phb_action,
+ l4c_phb_approve_src_enum approve_src);
+
+#ifdef __CDMA2000_RAT__
+extern kal_bool l4c_phb_allow_send_ready(void);
+#endif
+
+extern void l4c_phb_context_switch(l4c_me_reconfig_enum reconfig_type);
+extern kal_bool l4c_phb_exe_ecpbridx(kal_uint16 index1, kal_uint16 index2, rmmi_phb_type_enum storage_type);
+
+#endif /* _L4C_PHB_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_ps_cmd.h b/mcu/protocol/interface/l4misc/l4c_ps_cmd.h
new file mode 100644
index 0000000..12a06b4
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ps_cmd.h
@@ -0,0 +1,185 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_ps_cmd.h
+ *
+ * Project:
+ * --------
+ * UMOLY
+ *
+ * Description:
+ * ------------
+ * This file is intends for K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+
+#ifndef _L4C_PS_CMD_H
+#define _L4C_PS_CMD_H
+
+#ifdef __MOD_TCM__
+#include "l4c_common_enum.h"
+#include "l4c2tcm_func.h"
+#include "l4c2tcm_struct.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "pam2tcm_struct.h"
+#include "l3_inc_enums.h"
+#include "ddm_common_struct.h"
+
+#ifdef __MOBILE_BROADBAND_PROVISION_CONTEXT__
+extern kal_bool l4c_ps_get_provision_context_req(kal_uint8 src_id, kal_bool get_all);
+extern kal_bool l4c_ps_set_provision_context_req(kal_uint8 src_id, kal_uint8 entry_id, kal_uint32 pcid, kal_uint8 pctype, kal_uint8 * apn, kal_uint8 * username, kal_uint8 * passwd, kal_uint8 comp, kal_uint8 auth_type, kal_uint8 * plmn_in_digit, kal_uint16 status);
+#endif /* __MOBILE_BROADBAND_PROVISION_CONTEXT__ */
+
+
+extern kal_bool l4c_ps_set_vzw_apn_table_req(
+ kal_uint8 src_id,
+ vzw_apn_table_struct *apn_table);
+extern kal_bool l4c_ps_set_clear_vzw_apn_table(kal_uint8 src_id);
+
+extern kal_bool l4c_ps_get_vzw_apn_table_req(kal_uint8 src_id);
+
+extern kal_bool l4c_ps_set_vzw_apn_params_req(
+ kal_uint8 src_id,
+ kal_uint8 wapn,
+ kal_uint32 max_conn_t,
+ kal_uint32 max_conn_t_value_in_sec,
+ kal_uint32 wait_time_value_in_sec,
+ kal_uint32 throttle_time_value_in_sec);
+
+extern kal_bool l4c_ps_get_vzw_apn_params_req(kal_uint8 src_id);
+
+extern void l4c_ps_send_at_cmd_cnf(kal_uint32 src_id, kal_bool is_success, kal_uint16 err_cause);
+
+extern void l4c_ps_send_egpco_ind_without_content(kal_uint8 cid, kal_uint32 ieid);
+extern void l4c_ps_send_egpco_ind_with_content(kal_uint8 cid, kal_uint32 ieid, kal_uint8 content_len, kal_uint8 *content_ptr);
+
+extern kal_bool l4c_ps_set_cgauth_req(kal_uint8 src_id, l4ctcm_set_cgauth_info_req_struct *cgauth_req);
+extern kal_bool l4c_ps_set_undefine_req(kal_uint8 src_id, kal_uint8 cid, kal_uint16 undef_action);
+
+extern kal_bool l4c_ps_set_eqos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_eqos_struct *min);
+
+extern kal_bool l4c_ps_get_eqos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_eqos_list_struct *info);
+extern kal_bool l4c_ps_get_eps_qos_info_req(kal_uint8 src_id, l4c_eps_qos_list_struct *info);
+extern kal_bool l4c_ps_get_vgqos_info_req(kal_uint8 src_id, l4c_vgqos_list_struct *info);
+
+extern kal_bool l4c_ps_get_config_option_info(kal_uint8 src_id, l4c_config_option_list_struct *info);
+extern kal_bool l4c_ps_get_cgauth_info(kal_uint8 src_id, l4c_cgauth_info_list_struct *info);
+
+extern kal_bool l4c_ps_exe_send_data_req(kal_uint8 src_id, kal_uint8 cid, kal_uint32 size);
+
+extern kal_uint32 l4c_ps_get_enter_data_network_interface(kal_uint8 l2p, kal_uint32 chid);
+
+extern kal_bool l4c_ps_exe_enter_data_state_req(kal_uint8 src_id, kal_uint8 l2p, kal_uint8 cid, kal_uint32 chid);
+
+extern kal_bool l4c_ps_exe_leave_data_state_req(kal_uint8 src_id, kal_uint8 cid);
+
+extern kal_bool l4c_ps_set_tft_req(kal_uint8 src_id, tft_info_struct *tft);
+extern kal_bool l4c_ps_get_tft_req(kal_uint8 src_id, tft_info_list_struct *tft_info_list);
+
+extern kal_bool l4c_ps_get_qos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_qos_list_struct *info);
+extern kal_bool l4c_eps_set_qos_req(kal_uint8 src_id, l4c_eps_qos_struct *qos);
+extern kal_bool l4c_ps_set_vqqos_req(kal_uint8 src_id, l4c_vgqos_struct *qos_info);
+
+extern kal_bool l4c_ps_set_qos_req(kal_uint8 src_id, kal_uint8 qos_type, l4c_qos_struct *min);
+
+extern kal_bool l4c_ps_set_sec_definition_req(kal_uint8 src_id, l4c_sec_pdp_info_struct *pdp);
+
+extern kal_bool l4c_ps_get_sec_definition_list_req(kal_uint8 src_id, l4c_sec_pdp_info_list_struct *info);
+
+extern kal_bool l4c_ps_set_definition_req(kal_uint8 src_id, l4c_prim_pdp_info_struct *pdp, l4c_cmd_conflict_check_option_enum check_option);
+
+extern void l4c_ps_event_notify_request(pam_event_notify_enum notify_event);
+
+extern kal_bool l4c_ps_set_extended_definition_req(kal_uint8 src_id, l4c_extended_pdp_info_struct *extended_pdp, l4c_cmd_conflict_check_option_enum check_option);
+
+extern kal_bool l4c_ps_sync_apn_info_to_tcm(kal_uint8 src_id, l4c_apn_info_struct *sync_req);
+
+extern kal_bool l4c_ps_send_cellular_network_cfg_to_tcm(l4c_cellular_network_config *config);
+
+extern void l4c_ps_send_data_service_status_update_to_rac(kal_bool is_data_service_present, kal_bool is_data_service_on, kal_bool is_data_roaming_service_present, kal_bool is_data_roaming_service_on);
+
+extern void l4c_ps_send_pdn_revive_cnf_to_l4bpdn(kal_uint8 cid, kal_bool is_success, ps_cause_enum err_cause);
+
+extern void l4c_ps_send_lte_attach_pdn_activate_success_ind_to_l4bpdn(kal_uint8 lte_attach_cid,
+kal_bool cause2_present,
+ps_cause_enum cause2,
+pdp_addr_type_enum nw_applied_pdp_type);
+
+extern void l4c_ps_send_lte_attach_pdn_activate_failure_ind_to_l4bpdn(kal_uint8 lte_attach_cid,
+ps_cause_enum err_cause,
+kal_bool is_change_to_apn_class_present,
+kal_uint8 change_to_apn_class);
+
+extern kal_bool l4c_ps_clear_sync_apn_info_to_tcm(kal_uint8 src_id);
+
+extern kal_bool l4c_ps_get_definition_list_req(kal_uint8 src_id, l4c_prim_pdp_info_list_struct *info);
+
+extern kal_uint8 l4c_ps_get_data_bearer_capability(void); //review_h2
+
+extern kal_uint16 l4c_ps_exe_act_req(kal_uint8 src_id, kal_uint8 opcode, kal_uint8 cid, l4ctcm_act_reason act_reason, kal_uint8 rat, kal_uint8 cause, ddm_apn_type_enum apn_type);
+
+extern kal_uint16 l4c_ps_exe_attach_req(kal_uint8 src_id, kal_uint8 cid);
+
+extern kal_bool l4c_ps_exe_act_test_req(kal_uint8 src_id, kal_uint8 opcode, kal_uint8 cid);
+
+extern kal_bool l4c_ps_get_context_state_req(kal_uint8 src_id, kal_uint8 *num, kal_uint8 *state_list);
+
+extern kal_bool l4c_ps_exe_answer_req(kal_uint8 src_id, kal_uint8 ans, kal_uint8 l2p, kal_uint8 cid);
+
+extern kal_bool l4c_ps_exe_modify_req(kal_uint8 src_id, kal_uint8 cid, kal_uint8 qfi);
+
+extern void l4c_l4bpdn_msg_hdlr(ilm_struct *ilm_ptr);
+
+extern void l4c_ps_send_cellular_network_cfg_to_rac(l4c_cellular_network_config *config);
+#ifdef __TC10__
+extern kal_bool l4c_ps_set_escontind_req(kal_uint32 src_id, kal_uint8 secondary_cid);
+#endif /*__TC10__*/
+
+extern void l4c_ps_send_sat_evdl_data_connect_ind(sat_data_connection_status_enum data_connection_status,
+ rat_enum rat,
+ ps_cause_enum cause,
+ kal_uint8 cid);
+#endif /* __MOD_TCM__ */
+#endif /* _L4C_GPRS_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_sim_cmd.h b/mcu/protocol/interface/l4misc/l4c_sim_cmd.h
new file mode 100644
index 0000000..74e0966
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_sim_cmd.h
@@ -0,0 +1,441 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_sim_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_SIM_CMD_H
+#define _L4C_SIM_CMD_H
+
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+
+#include "ps2sat_struct.h"
+#include "mcd_ps2sat_peer.h"
+#include "l4c2csm_cc_struct.h"
+#include "l4c2smsal_struct.h"
+
+#include "sim_ps_struct.h"
+#include "sim_ps_enum.h"
+
+#include "mcd_l3_inc_struct.h" /* for nw_time_zone_time_struct used in l4c_smu_update_nw_time_req() */
+
+#include "smu_common_enums.h"
+#include "vdm_l4c_struct.h"
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+#include "l5_l4c_struct.h"
+#endif
+
+enum
+{
+ NONE_TYPE,
+ PHONELOCK_TYPE,
+ PIN1_TYPE
+};
+
+extern kal_bool l4c_smu_get_iccid_req(kal_uint8 src_id, kal_uint8 *iccid_str);
+
+extern kal_bool l4c_smu_get_imsi_req(kal_uint8 src_id, kal_uint8 *imsi);
+
+extern kal_bool l4c_smu_exe_lock_req(
+ kal_uint8 src_id,
+ kal_uint8 opcode, /* smu_lock_opcode_enum */
+ kal_uint8 type, /* smu_security_type_enum */
+ kal_uint8 *passwd);
+
+extern kal_bool l4c_smu_exe_master_reset_req(kal_uint8 src_id, kal_uint8 *pin);
+
+extern kal_bool l4c_smu_get_dial_mode_req( /* sim_dn_enum */ kal_uint8 *dial_mode);
+
+extern kal_bool l4c_smu_exe_verify_pin_req(kal_uint8 src_id, kal_uint8 pin_type, kal_uint8 *pin, kal_uint8 *new_pin);
+
+extern kal_bool l4c_smu_app_exe_verify_pin_req(kal_uint8 src_id, kal_uint8 pin_type, kal_uint8 *pin, kal_uint8 *new_pin, kal_uint8 chan_id);
+
+extern kal_bool l4c_smu_get_pin_type_req(
+ kal_uint8 src_id, /* smu_security_type_enum */
+ kal_uint8 *pin_type);
+
+extern kal_bool l4c_smu_app_get_pin_type_req(kal_uint8 src_id, kal_uint8 *name, kal_uint8 chan_id, smu_chv_type_enum chv_type);
+
+extern sim_file_index_enum l4c_smu_file_idx_for_preferred_oper_list(sim_file_index_enum selected_file);
+
+extern kal_bool l4c_smu_set_preferred_oper_list_req_ext(
+ kal_uint8 src_id,
+ sim_file_index_enum file_idx,
+ kal_uint8 index,
+ kal_uint8 opcode,
+ kal_uint8 *oper,
+ kal_uint8 rat);
+
+extern kal_bool l4c_smu_set_preferred_oper_list_req(
+ kal_uint8 src_id,
+ kal_uint8 index,
+ kal_uint8 opcode,
+ kal_uint8 *oper,
+ kal_uint8 rat);
+
+extern kal_bool l4c_smu_get_preferred_oper_list_req(
+ kal_uint8 src_id,
+ kal_uint8 index,
+ kal_uint16 file_idx_req,
+ kal_uint16 *num,
+ kal_uint8 *oper_list,
+ kal_uint8 *rat_list,
+ kal_uint16 *file_idx_rsp);
+
+extern kal_bool l4c_smu_set_puc_params_req(kal_uint8 src_id, kal_uint8 *pin, kal_uint8 *currency, kal_uint8 *ppu);
+
+extern kal_bool l4c_smu_get_puc_params_req(kal_uint8 src_id, kal_uint8 *currency, kal_uint8 *ppu);
+
+extern kal_bool l4c_smu_exe_change_password_req(
+ kal_uint8 src_id, /* smu_security_type_enum */
+ kal_uint8 type,
+ kal_uint8 *old,
+ kal_uint8 *new1);
+
+extern kal_bool l4c_smu_exe_restricted_access_req(
+ kal_uint8 src_id,
+ kal_uint8 cmd,
+ kal_uint16 file_id,
+ kal_uint8 channel,
+ kal_uint8 p1,
+ kal_uint8 p2,
+ kal_uint8 p3,
+ kal_uint8 *data,
+ kal_uint8 *pathid,
+ kal_uint8 pathid_length);
+
+extern kal_bool l4c_smu_exe_dial_mode_req(kal_uint8 src_id, kal_uint8 type, kal_uint8 on_off, kal_uint8 *pin);
+
+extern kal_bool l4c_smu_write_sim_req(
+ kal_uint8 src_id,
+ kal_uint16 file_idx,
+ kal_uint8 para,
+ kal_uint8 *data,
+ kal_uint16 length,
+ kal_uint8 *path,
+ kal_uint8 access_id);
+
+extern kal_bool l4c_smu_read_sim_req(
+ kal_uint8 src_id,
+ kal_uint16 file_idx,
+ kal_uint16 para,
+ kal_uint16 length,
+ kal_uint8 *path,
+ kal_uint8 access_id);
+
+extern kal_bool l4c_smu_read_file_info_req(kal_uint8 src_id, kal_uint16 file_idx, kal_uint8 *path, kal_uint8 access_id);
+
+extern kal_bool l4c_smu_set_personalization_req(
+ kal_uint8 src_id,
+ kal_uint8 category,
+ kal_uint8 op,
+ kal_uint8* key,
+ kal_uint8 len,
+ kal_uint8 data[10]);
+
+#ifdef __CARRIER_RESTRICTION__
+extern kal_bool l4c_smu_set_carrier_restriction_req(
+ kal_uint8 src_id,
+ kal_uint8 op,
+ kal_uint8 *key,
+ kal_uint8 list,
+ kal_uint8 category,
+ kal_uint8 len,
+ kal_uint8 *data,
+ kal_uint8 multi_sim_policy,
+ kal_uint8 allowed_carriers_prioritized);
+
+extern kal_bool l4c_smu_set_crrst_secure_data_req(
+ kal_uint8 src_id,
+ kal_uint8 algo_type,
+ kal_uint32 max_retry_count,
+ kal_uint8 *hck,
+ kal_uint8 *salt,
+ kal_uint8 *inter_cnt);
+
+extern kal_bool l4c_smu_crrst_status_req(kal_uint8 src_id);
+#endif
+
+extern kal_bool l4c_smu_get_shared_key_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_update_slb_req(kal_uint8 src_id, kal_uint16 slb_len, kal_uint8 *slb);
+
+extern kal_bool l4c_smu_reset_slb_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_get_slb_version_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_get_sim_lock_status_req(kal_uint8 scr_id);
+
+extern kal_bool l4c_smu_get_modem_config_req(kal_uint8 src_id);
+
+extern kal_bool l4c_smu_get_api_version_req(kal_uint8 src_id);
+
+#if defined(__SIM_ME_LOCK__)
+extern kal_bool l4c_smu_update_nw_time_req(kal_uint8 nw_time_zone, nw_time_zone_time_struct *nw_time);
+#endif
+
+extern kal_bool l4c_smu_sml_status_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sim_power_off_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sim_remove_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern kal_bool l4c_sim_get_gsmcdma_dualsim_info_req (kal_uint8 src_id);
+
+extern kal_bool l4c_sim_set_gsmcdma_dualsim_mode_req ( kal_uint8 src_id, kal_uint8 op);
+
+extern kal_bool l4c_sim_check_pin_status_req(sim_chv_info_struct *chv_info, sim_chv_status_struct *chv_status);
+
+extern kal_bool l4c_cphs_update_als_req(kal_uint8 src_id, kal_uint8 line_id);
+
+extern void l4c_sim_pin_convert(kal_uint8 *dest, kal_uint8 *src);
+
+extern kal_bool l4c_sim_reset_req(kal_uint8 src_id);
+
+extern kal_bool l4c_bt_sim_profile_req(kal_uint8 src_id, kal_uint8 action, kal_uint8 transport_protocol_type, kal_uint8 *apdu, kal_uint16 length);
+
+///extern kal_bool l4c_sim_csim_req(kal_uint8 src_id, kal_uint16 length, kal_uint8 *command);
+
+/* MAUI_03082391 *///mtk02514_nfc
+extern kal_bool l4c_sim_apdu_access_req(kal_uint8 src_id,l4c_action_enum action, kal_uint16 length, kal_uint8 *command,kal_uint8 channel_id);
+extern kal_bool l4c_sim_extended_apdu_access_req(kal_uint8 src_id, kal_uint16 offset, kal_uint8 channel_id, kal_uint16 total_length,
+ kal_uint16 curr_length, kal_uint8 *command, kal_bool *is_intermediate_rsp);
+
+extern kal_bool l4c_sim_manage_channel_req(kal_uint8 src_id, l4c_action_enum action, sim_manage_channel_mode_enum mode, kal_uint8 aid_len, kal_uint8 *aid);
+
+#ifdef __VSIM__
+extern kal_bool l4c_sim_vsim_req(kal_uint8 src_id, kal_uint8 switch_on, kal_uint8 profile_id,kal_uint8 app_type);
+
+extern kal_bool l4c_sim_get_vsim_rsa_pubkey_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sim_vsim_ki_mode_req(kal_uint8 src_id, kal_uint8 profile_id, kal_bool enabled);
+
+extern kal_bool l4c_sim_set_vsim_ki_req(kal_uint8 src_id, kal_uint8 profile_id, kal_uint16 key_len, kal_uint8 *key, kal_bool encrypted);
+
+extern kal_bool l4c_sim_set_vsim_file_req(kal_uint8 src_id, kal_uint8 profile_id, kal_uint16 file_id, kal_uint16 meta_len, kal_uint8 *meta, kal_uint16 data_len, kal_uint8 *data);
+
+extern void l4c_vsim_profile_write_req(kal_uint8 src_id, kal_uint8 profile_id, kal_uint8 vsim_type, kal_uint16 auth_len, kal_uint8 *auth, kal_uint8 algo_idx);
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+extern kal_bool l4c_sim_vsim_update_req(kal_uint8 src_id, kal_uint8 switch_on, kal_uint8 profile_id, kal_uint8 mode, kal_uint8* mccmnc, kal_uint8* iin, kal_uint8* gid1, kal_uint8* spn);
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#endif
+
+extern kal_bool l4c_sim_app_start_req(kal_uint8 src_id, kal_uint8 applicationid);
+
+extern kal_bool l4c_sim_app_authenticate_req(kal_uint8 src_id, uicc_auth_mode_enum mode, kal_uint8 channel_id, kal_uint16 command_len, kal_uint8 *command_data);
+
+extern kal_bool l4c_sim_authenticate_req(kal_uint8 src_id, kal_uint8 rand_len, kal_uint8 *rand, kal_uint8 auth_len, kal_uint8 *auth);
+
+extern void l4c_smu_sml_ready_notify_req(void);
+
+#ifdef __SAT__
+extern kal_bool l4c_sat_setup_call_res(sat_setup_call_res_struct *local_ptr);
+
+extern kal_bool l4c_sat_send_sms_res(sat_send_sms_res_struct *local_ptr);
+
+extern kal_bool l4c_sat_send_ss_res(sat_send_ss_res_struct *local_ptr);
+
+extern void l4c_sat_send_xcap_ss_res(kal_bool is_successful, sat_terminal_res_enum tr_cause, kal_uint8* additional_data_ptr, kal_uint16 additional_data_len);
+
+extern kal_bool l4c_sat_send_ussd_res(sat_send_ussd_res_struct *local_ptr);
+
+extern void l4c_sat_send_ims_ussd_res(kal_bool is_successful, sat_terminal_res_enum tr_cause, void* additional_data_ptr);
+
+extern kal_bool l4c_sat_run_at_command_res(sat_run_at_command_res_struct *local_ptr);
+
+extern kal_bool l4c_sat_send_dtmf_res(kal_uint8 cmd_detail[5], kal_uint8 res, kal_uint8 additional_info);
+
+extern kal_bool l4c_sat_call_setup_req(
+ l4ccsm_cc_sat_setup_req_struct *local_ptr,
+ kal_uint8 *peer_ptr,
+ kal_uint8 length);
+
+extern kal_bool l4c_sat_send_dtmf_req(kal_uint8 src_id, kal_uint8 *dtmf_digit, kal_uint8 no_digit);
+
+extern kal_bool l4c_sat_abort_dtmf_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sat_send_sms_req(l4csmsal_sat_send_req_struct *local_ptr, kal_uint8 mode);
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+extern kal_bool l4c_sat_terminal_response_req(kal_uint8 src_id, kal_uint8 length, kal_uint8 *terminal_rsp, kal_uint16 cmd_id);
+#else
+extern kal_bool l4c_sat_terminal_response_req(kal_uint8 length, kal_uint8 *terminal_rsp, kal_uint16 cmd_id);
+#endif
+extern kal_bool l4c_sat_envelope_req(kal_uint8 src_id, kal_uint8 length, kal_uint8 *envelope_data, kal_bool is_standard);
+extern kal_bool l4c_sat_setup_sms(kal_uint8 src_id, kal_uint8 mode);
+extern kal_bool l4c_sat_sms_query(kal_uint8 *str, kal_uint16 *str_len);
+
+extern kal_bool l4c_sat_setup_cs_ss(void);
+extern peer_buff_struct* l4c_sat_get_ss_number(void);
+
+extern kal_bool l4c_sat_setup_cs_ussd(void);
+extern void l4c_sat_set_icon_display(sat_terminal_res_enum tr_cause, kal_bool is_icon_displayed);
+extern kal_bool l4c_sat_query_ussd_inform_user(void);
+extern peer_buff_struct* l4c_sat_get_ussd_string(void);
+
+extern kal_bool l4c_sat_setup_call(vdm_l4c_cs_cc_stk_call_req_struct *msg_ptr);
+extern kal_bool l4c_sat_dtmf(void);
+extern kal_bool l4c_sat_menu_query(kal_uint8 *str, kal_uint16 *str_len);
+
+extern kal_bool l4c_sat_ready_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sat_cusata_req(kal_uint8 src_id, kal_uint8 act_config);
+
+extern kal_bool l4c_sat_cusatd_req(kal_uint8 dwl_config);
+
+extern kal_bool l4c_sat_set_ct_mode_req(kal_uint8 ct_mode);
+
+extern kal_bool l4c_sat_inject_proactive_cmd_ind(kal_uint8 *cmd_data, kal_uint16 cmd_len);
+
+#endif /* __SAT__ */
+
+extern void l4c_smu_sim_status_update_req(kal_uint8 new_sim_config);
+
+extern kal_bool l4c_sim_set_3g_cap_req(kal_uint8 src_id, kal_uint8 cur_3g_capability, kal_uint8 *cur_ps_sim_map);
+
+extern void l4c_sim_read_plmn_req(kal_uint8 src_id, kal_uint8 access_id, kal_uint16 file_idx);
+extern void l4c_sim_write_plmn_req(kal_uint8 src_id, kal_uint8 access_id, kal_uint16 file_idx, kal_uint16 file_size, kal_uint8 *file);
+extern void l4c_sim_search_record_req(kal_uint8 src_id,kal_uint16 file_idx, kal_uint16 para, kal_uint8 access_id, kal_uint8 *path,kal_uint8 pattern_len,kal_uint8 *data);
+/* MAUI_02953154 */
+
+extern kal_bool l4c_sim_recovery_enhancement_switch_req(kal_bool mode);
+
+extern kal_bool l4c_sim_query_info_req(kal_uint8 src_id, sim_query_info_enum info_id);
+
+extern kal_bool l4c_sim_terminal_capability_setting_req(kal_uint8 additional_interface);
+
+extern kal_bool l4c_regional_phone_mode_req(kal_uint32 mode);
+
+extern kal_bool l4c_csus_set_sim_slot(kal_uint8 setting);
+
+extern void l4c_sat_termianl_profile_read_req(kal_uint8 st, kal_uint8 *profile, kal_uint8 *profile_len);
+
+extern void l4c_sat_termianl_profile_write_req(kal_uint8 src_id, kal_uint8 st, kal_bool reset, kal_uint8 *profile, kal_uint8 profile_len);
+
+extern kal_bool l4c_sim_set_registration_mode_req(kal_bool registration_mode);
+
+extern kal_bool l4c_sim_set_apvsim_mode_req(kal_uint8 src_id, kal_bool mode, kal_bool is_ready);
+extern kal_bool l4c_sim_rsa_apdu_rsp_req(kal_uint8 src_id, kal_uint32 apdu_len, kal_uint8 *apdu_rsp);
+extern kal_bool l4c_sim_rsa_atr_req(kal_uint8 src_id, kal_uint8 atr_status, kal_uint32 atr_len, kal_uint8 *atr);
+extern kal_bool l4c_sim_rsa_hot_plug_out_req(kal_uint8 src_id);
+extern kal_bool l4c_sim_rsa_hot_plug_in_req(kal_uint8 src_id);
+extern kal_uint8 l4c_get_single_sim_exist_status(void);
+extern kal_uint8 l4c_get_single_sim_inserted_status(void);
+extern kal_bool l4c_query_sim_status_bit(sim_interface_enum sim_id, l4c_sim_flag_enum query_status);
+extern kal_bool l4c_reset_l4_sim_context(sim_interface_enum sim_ps_id);
+extern kal_bool l4c_sim_read_dir_req(kal_uint8 src_id, kal_uint8 option);
+extern kal_bool l4c_sim_op20_ap_simlock_req(kal_uint8 src_id, kal_uint8 lock_mode);
+kal_bool l4c_sim_ap_simpower_req(kal_uint8 src_id, kal_uint8 sim_power_mode, kal_bool sim_handle_plug_in);
+#ifdef __GEMINI__
+extern kal_bool l4c_sim_plug_out_req(kal_bool aka_status, kal_bool ready_status);
+extern void l4c_sim_set_rsim_mode_req(kal_uint8 src_id, kal_bool rsim_status, kal_bool ready_status);
+extern void l4c_sim_service_res_req(kal_uint8 src_id, kal_bool mode);
+extern void l4c_sim_aka_enable_req(kal_bool mode);
+extern void l4c_rsim_set_auth_timeout(kal_uint8 rsim_auth_timeout);
+extern void l4c_sim_send_rsim_aka_status_req(void);
+#endif
+#ifdef __FAKEID_SUPPORT__
+extern kal_bool l4c_sim_fake_id_req(kal_uint8 *mcc_str, kal_uint8 *mnc_str, kal_uint8 *msin_str);
+#endif
+
+extern kal_bool l4c_smu_sml_get_lock_codes_req(kal_uint8 src_id);
+extern kal_bool l4c_smu_set_custom_personalization_req(
+ kal_uint8 src_id,
+ kal_uint8 category,
+ kal_uint8 op,
+ void *data,
+ kal_uint8 algo_type,
+ kal_uint8 *salt,
+ kal_uint8 *iter_cnt);
+
+extern kal_bool l4c_smu_sl_update_blob_req(kal_uint8 src_id, kal_uint16 slb_len, kal_uint8 *slb);
+extern kal_bool l4c_smu_sl_get_sim_lock_status_req(kal_uint8 scr_id);
+extern kal_uint8 l4c_get_single_sim_inserted_status_by_ps_id(protocol_id_enum protocol_id);
+
+extern kal_bool l4c_smu_update_gblob_lock_rule_req(kal_uint8 src_id, kal_uint8 rule, kal_uint16 sub_rule);
+extern kal_bool l4c_smu_update_gblob_data_req(kal_uint8 src_id, kal_uint8 op, kal_uint16 gblob_data_len, kal_uint8 *gblob_data);
+extern kal_bool l4c_smu_gblob_dev_lock_verify_req(kal_uint8 src_id, kal_uint8 op, kal_uint16 key_len, kal_uint8 *key, kal_uint8 new_lock_state);
+extern kal_bool l4c_smu_update_gblob_dev_lock_algo_req(kal_uint8 src_id, kal_uint8 dev_algo_type, kal_uint8 *hck, kal_uint8 max_retry_count, kal_uint8* salt, kal_uint8* inter_cnt);
+extern kal_bool l4c_smu_update_gblob_imei_req(kal_uint8 src_id, kal_uint8 slot_id, kal_uint8* imei);
+#ifdef __CUST_SML_RULE__
+extern kal_bool l4c_smu_udpate_gblob_cust_rule_req(kal_uint8 src_id, kal_uint8 cust_code, kal_uint8 cust_rule);
+#endif
+extern kal_bool l4c_smu_get_gblob_dev_lock_status_req(kal_uint8 src_id);
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+extern kal_bool l4c_sat_sim_init_msg(kal_uint8 src_id, kal_uint8 action);
+extern kal_bool l4c_sat_refresh_voting_cnf(sat_refresh_confirm_rsp_enum voting_result);
+#endif
+
+#ifdef __TC10__
+extern kal_uint8 l4c_sim_query_voltage_info(protocol_id_enum ps_id);
+#endif
+extern kal_bool l4c_sim_query_atr_info(kal_uint8 *length, kal_uint8 *atr, protocol_id_enum ps_id);
+extern kal_uint8 l4c_smu_get_unlock_code_req();
+extern kal_bool l4c_smu_gen_nonce_req(kal_uint8* device_id, kal_uint32 device_id_len, kal_uint8* nonce, kal_uint32* nonce_len);
+extern kal_bool l4c_smu_validate_signature_req(kal_uint8 mode, kal_uint8 unlock_code, kal_uint8* signature, kal_uint32 signature_len);
+extern kal_bool l4c_smu_get_nonce_sign_status_req(kal_uint8* nonce_status, kal_uint8* sign_status);
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+extern void l4c_smu_set_nw_black_list_req(void);
+extern void l4c_smu_convert_mcc_mnc_to_int(kal_uint8 *mcc_mnc_char, nw_black_list_provider_struct *output);
+extern void l4c_smu_convert_mcc_mnc_to_char(nw_black_list_provider_struct *input_mcc_mnc, kal_uint8 *output);
+#endif
+extern kal_bool l4c_smu_generate_hck(kal_uint8 src_id, kal_uint8 category, kal_uint8 *ctrl_key_str,
+ kal_uint32 iter_cnt, kal_uint8 salt_length,
+ kal_uint16 hck_length);
+
+#endif /* _L4C_SIM_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_sms_cmd.h b/mcu/protocol/interface/l4misc/l4c_sms_cmd.h
new file mode 100644
index 0000000..ec3a2fc
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_sms_cmd.h
@@ -0,0 +1,446 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_sms_cmd.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_SMS_CMD_H
+#define _L4C_SMS_CMD_H
+
+#include "l4c_aux_struct.h"
+#include "smsal_l4c_enum.h"
+#include "l4c2smsal_struct.h"
+#include "rmmi_common_enum.h"
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+extern kal_bool l4c_sms_set_profile_params_req(
+ kal_uint8 src_id,
+ kal_uint16 para_ind,
+ kal_uint8 profile_no,
+ kal_uint8 pid,
+ kal_uint8 dcs,
+ kal_uint8 vp,
+ l4c_number_struct sc_addr,
+ l4_name_struct profile_name);
+
+extern kal_bool l4c_sms_get_profile_params_req(
+ kal_uint8 src_id,
+ kal_uint8 profile_no,
+ kal_uint8 *pid,
+ kal_uint8 *dcs,
+ kal_uint8 *vp,
+ l4c_number_struct *sc_addr,
+ l4_name_struct *profile_name);
+
+extern kal_bool l4c_sms_set_common_params_req(
+ kal_uint8 src_id,
+ kal_uint16 para_ind,
+ kal_uint8 fo,
+ kal_uint8 bearer_service,
+ kal_uint8 status_report,
+ kal_uint8 reply_path);
+
+extern kal_bool l4c_sms_get_common_params_req(
+ kal_uint8 src_id,
+ kal_uint8 *fo,
+ kal_uint8 *bearer_service,
+ kal_uint8 *status_report,
+ kal_uint8 *reply_path);
+
+extern kal_bool l4c_sms_startup_read_next_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sms_set_bearer_service_req(kal_uint8 src_id, kal_uint8 bearer);
+
+extern void l4c_sms_get_bearer_service_req(kal_uint8 src_id, kal_uint8 *bearer);
+
+extern kal_bool l4c_sms_exe_post_command_req(
+ kal_uint8 src_id,
+ kal_uint8 fo,
+ kal_uint8 ct,
+ kal_uint8 mn,
+ kal_uint8 pid,
+ l4c_number_struct dest,
+ kal_uint8 length,
+ kal_uint8 *cmd);
+
+extern kal_bool l4c_sms_exe_post_command_pdu_req(
+ kal_uint8 src_id,
+ kal_uint16 data_len,
+ kal_uint16 length,
+ kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_exe_delete_msg_req(
+ kal_uint8 src_id,
+ kal_uint8 del_flag,
+ kal_uint16 index,
+ kal_uint8 *del_bitmap);
+
+extern kal_bool l4c_sms_set_msg_format_req(kal_uint8 src_id, kal_uint8 format);
+
+extern void l4c_sms_get_msg_format_req(kal_uint8 src_id, kal_uint8 *format);
+
+extern kal_bool l4c_sms_exe_read_msg_list_req(
+ kal_uint8 src_id,
+ kal_uint8 change_status,
+ kal_uint8 status,
+ kal_uint16 start_index,
+ kal_uint8 no_msg);
+
+extern kal_bool l4c_sms_exe_emgl_list_req(
+ kal_uint8 src_id,
+ kal_uint8 change_status,
+ kal_uint8 status,
+ kal_uint16 start_index,
+ kal_uint8 no_msg);
+
+extern kal_bool l4c_sms_send_from_storage_req(
+ kal_uint8 src_id,
+ kal_uint16 index,
+ kal_bool addr_present,
+ l4c_number_struct da,
+ kal_uint8 profile_no_tag,
+ kal_uint8 profile_no);
+
+extern kal_bool l4c_sms_set_status_req(
+ kal_uint8 src_id,
+ kal_uint8 new_status,
+ kal_uint16 index);
+
+extern kal_bool l4c_sms_exe_read_msg_req(kal_uint8 src_id, kal_uint16 index, kal_bool change_status);
+
+extern kal_bool l4c_sms_exe_post_msg_req(
+ kal_uint8 src_id,
+ kal_uint8 profile,
+ kal_uint16 reply_index,
+ l4c_number_struct dest,
+ kal_uint16 para,
+ l4c_number_struct sc_addr,
+ kal_uint8 vp,
+ smsal_pid_enum pid,
+ kal_uint8 udhi,
+ smsal_dcs_enum dcs,
+ kal_uint16 length,
+ kal_uint8 *msg,
+ kal_uint8 seq_num,
+ kal_uint8 mms_mode,
+ kal_uint8 tp_srr,
+ kal_uint8 tp_rp);
+
+extern kal_bool l4c_sms_exe_post_pdu_req(
+ kal_uint8 src_id,
+ kal_uint16 reply_index,
+ kal_uint16 data_len,
+ kal_uint8 source_id,
+ kal_uint8 seq_num,
+ kal_uint8 mms_mode,
+ kal_uint16 length,
+ kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_exe_write_msg_req(
+ kal_uint8 src_id,
+ kal_uint8 profile,
+ kal_uint8 status,
+ l4c_number_struct dest,
+ kal_uint16 para,
+ l4c_number_struct sc_addr,
+ kal_uint8 *scts,
+ kal_uint8 vp,
+ kal_uint8 pid,
+ kal_uint8 udhi,
+ kal_uint8 dcs,
+ kal_uint16 index,
+ kal_uint16 length,
+ kal_uint8 *msg,
+ kal_uint8 tp_srr,
+ kal_uint8 tp_mms,
+ kal_uint8 tp_rp,
+ kal_uint8 tp_sri);
+
+extern kal_bool l4c_sms_exe_write_pdu_req(
+ kal_uint8 src_id,
+ kal_uint8 status,
+ kal_uint16 data_len,
+ kal_uint16 length,
+ kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_set_more_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern void l4c_sms_get_more_req(kal_uint8 src_id, kal_uint8 *mode);
+
+extern kal_bool l4c_sms_exe_storage_post_req(
+ kal_uint8 src_id,
+ kal_uint16 index,
+ kal_uint16 reply_index,
+ kal_bool addr_present,
+ l4c_number_struct dest,
+ kal_uint8 profile_no_tag,
+ kal_uint8 profile_no);
+
+extern kal_bool l4c_sms_set_msg_ind_mode_req(
+ kal_uint8 src_id,
+ kal_uint8 mode,
+ kal_uint8 mt,
+ kal_uint8 bm,
+ kal_uint8 ds);
+
+extern void l4c_sms_get_msg_ind_mode_req(
+ kal_uint8 src_id,
+ kal_uint8 *mode,
+ kal_uint8 *mt,
+ kal_uint8 *bm,
+ kal_uint8 *ds);
+
+extern kal_bool l4c_sms_exe_send_ack_req(kal_uint8 src_id, kal_uint8 mode, kal_uint16 length, kal_uint8 *ack);
+
+extern kal_bool l4c_sms_set_preferred_mem_req(kal_uint8 src_id, kal_uint8 mem1, kal_uint8 mem2, kal_uint8 mem3);
+
+extern void l4c_sms_get_preferred_mem_req(kal_uint8 src_id, smsal_prefer_storage_struct *info);
+
+
+extern kal_bool l4c_smsal_eqsi_query(
+ rmmi_smsal_storage_enum mem,
+ kal_uint16 *beg_index,
+ kal_uint16 *end_index,
+ kal_uint16 *used);
+
+extern kal_bool l4c_sms_set_service_mode_req(kal_uint8 src_id, kal_uint8 mode);
+
+extern void l4c_sms_get_service_mode_req(kal_uint8 src_id, kal_uint8 *mode, smsal_service_mode_struct *info);
+
+extern kal_bool l4c_sms_get_no_msgs_req(
+ kal_uint8 src_id,
+ //kal_bool *is_sms_ready,
+ kal_bool *is_sim_card_change,
+ kal_uint16 *in_sim_no,
+ kal_uint16 *in_me_no,
+ kal_uint16 *out_sim_no,
+ kal_uint16 *out_me_no,
+ kal_uint16 *unread_msg_num,
+ kal_uint16 *total_sim_num,
+ kal_uint16 *total_me_num);
+
+extern kal_bool l4c_sms_get_no_profiles_req(kal_uint8 src_id, kal_uint8 *profile_no, kal_uint8 *name_len);
+#if 0
+/* under construction !*/
+#endif
+extern void l4c_sms_get_sc_addr_req(kal_uint8 src_id, kal_uint8 profile_no, l4c_number_struct *sc_addr);
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+extern void l4c_sms_get_post_params_req(
+ kal_uint8 src_id,
+ kal_uint8 profile_no,
+ kal_uint8 *fo,
+ kal_uint8 *pid,
+ kal_uint8 *dcs,
+ kal_uint8 *vp,
+ l4_name_struct *profile_name);
+/*
+ * extern kal_bool l4c_sms_exe_load_profile_req (kal_uint8 src_id,
+ * kal_uint8 index);
+ *
+ * extern kal_bool l4c_sms_exe_save_profile_req (kal_uint8 src_id,
+ * kal_uint8 index);
+ */
+#if 0
+/* under construction !*/
+#endif
+extern kal_bool l4c_cb_subscribe_req(kal_uint8 src_id, kal_uint8 on_off, smsal_cb_cmd_enum cb_cmd);
+
+extern kal_bool l4c_sms_set_cb_mode_req(kal_uint8 src_id, l4c_cb_info_struct *info, smsal_cb_cmd_enum cb_cmd);
+
+extern kal_bool l4c_sms_get_cb_mode_req(
+ kal_uint8 src_id,
+ kal_uint8 *mode,
+ kal_uint8 *total_mid_num,
+ kal_uint8 *total_mir_num,
+ kal_uint8 *total_dcs_num,
+ l4c_cb_info_struct *info);
+
+extern void l4c_sms_cb_msg_removal_req(kal_uint16 mid, kal_uint16 sn);
+
+extern kal_bool l4c_send_wea_test_data(kal_uint8 mode);
+
+extern void l4c_sms_exe_abort_req(kal_uint8 src_id, kal_uint8 seq_num);
+
+extern kal_bool l4c_sms_get_mailbox_addr_req(kal_uint8 src_id);
+
+extern kal_bool l4c_sms_set_mailbox_addr_req(
+ kal_uint8 src_id,
+ kal_uint8 mailbox_num,
+ l4c_number_struct num_addr,
+ l4_name_struct name);
+
+// R4/R5 SMS
+extern kal_bool l4c_sms_set_mbi_req(kal_uint8 src_id, kal_uint8 msp_no, smsal_mbi_struct mbi);
+extern kal_bool l4c_sms_get_mbi_req(kal_uint8 src_id, kal_uint8 *msp_num, smsal_mbi_struct *mbi);
+extern kal_bool l4c_sms_set_msp_req(kal_uint8 src_id, kal_uint8 msp_no);
+extern kal_bool l4c_sms_get_msp_req(kal_uint8 src_id, kal_uint8 *msp_no);
+
+extern kal_bool l4c_smsal_init_me_sms_req(kal_uint8 src_id,kal_uint8 init_type);
+
+extern kal_bool l4c_sms_reg_port_num_req(
+ kal_uint8 src_id,
+ kal_bool enable,
+ kal_uint32 port_num,
+ kal_uint16 mod_id,
+ kal_uint16 *cause,
+ kal_uint32 *ret_port_num,
+ kal_uint16 *ret_mod_id,
+ kal_uint8 *ret_source_id);
+
+extern void l4c_sms_set_rmmi_sc_addr_req(kal_uint8 src_id, l4c_number_struct sc_addr);
+
+extern kal_bool l4c_sms_set_rmmi_post_params_req(
+ kal_uint8 src_id,
+ kal_uint8 profile_no, //dummy
+ kal_uint16 para_ind,
+ kal_uint8 fo,
+ kal_uint8 pid,
+ kal_uint8 dcs,
+ kal_uint8 vp);
+
+extern void l4c_sms_exe_save_settings_req(kal_uint8 src_id, kal_uint8 profile_id);
+
+extern void l4c_sms_exe_restore_settings_req(kal_uint8 src_id, kal_uint8 profile_id);
+
+extern kal_bool l4c_smsal_read_raw_data_req(kal_uint8 src_id, kal_uint16 index);
+extern kal_bool l4c_smsal_write_raw_data_req(kal_uint8 src_id, kal_uint8 storage_type,kal_uint16 data_len,kal_uint8 *data);
+
+extern void l4c_smsal_fdn_check_rsp(kal_uint8 result, kal_uint16 cause);
+
+extern kal_bool l4c_sms_copy_msg_req(kal_uint8 src_id, kal_uint8 action, kal_uint8 dst_storage, kal_uint16 src_index);
+
+extern void l4c_sms_sync_msg_res_req(kal_bool result);
+
+extern kal_bool l4c_sms_exe_send_smma_req(kal_uint8 src_id);
+extern kal_bool l4c_sms_exe_set_msg_waiting_req(kal_uint8 src_id,kal_uint8 line_no,kal_uint8 waiting_num,kal_uint8 ind_type);
+
+extern void l4c_sms_usm_general_rcode_req(
+ kal_uint8 src_id,
+ rmmi_usm_atcmd_enum atcmd_type,
+ kal_uint32 atcmd_index,
+ rmmi_usm_message_stat_enum tag_type,
+ kal_bool iscomplete,
+ kal_uint8 pdu_length,
+ kal_uint8 *pdu,
+ l4c_usm_cnmi_struct cnmi_parameter,
+ l4c_usm_cmss_struct cmss_struct,
+ kal_uint8 result,
+ kal_uint16 cause);
+
+extern void l4c_sms_sync_msg_storage_req(
+ kal_uint8 src_id,
+ kal_uint32 sm_max_num,
+ kal_uint32 sm_current_num,
+ kal_uint32 me_max_num,
+ kal_uint32 me_current_num,
+ kal_uint32 sr_max_num,
+ kal_uint32 sr_current_num);
+
+extern kal_bool l4c_sms_send_deliver_report_req(kal_uint8 src_id,kal_uint8 result,kal_uint32 error_cause, kal_uint8 mem, kal_uint32 index, kal_uint8 uid, kal_uint8 msg_class, kal_bool is_msg_wait, kal_uint8 msg_wait_store);
+extern kal_bool l4c_sms_startup_read_res_req(kal_uint8 src_id);
+extern kal_bool l4c_sms_get_mem_status_res_req(kal_uint8 src_id,kal_uint32 sim_max_num,kal_uint32 sim_current_num,kal_uint32 me_max_num,kal_uint32 me_current_num,kal_uint32 sr_max_num,kal_uint32 sr_current_num,kal_uint8 source_id);
+extern kal_bool l4c_sms_mem_status_req(kal_uint8 src_id,kal_uint8 mem_status);
+extern kal_bool l4c_sms_atcmd_cmgr_res_req(kal_uint8 src_id,kal_uint8 result,kal_uint16 cause,kal_uint8 source_id,kal_uint8 mem, kal_uint32 index, kal_uint8 stat, kal_uint16 pdu_length, kal_uint8 *pdu);
+extern kal_bool l4c_sms_atcmd_cmgl_res_req(kal_uint8 src_id,kal_uint8 mem, kal_uint32 index, kal_uint8 stat, kal_uint16 pdu_length, kal_uint8 *pdu, kal_uint8 result,kal_uint16 cause, kal_uint8 is_complete, kal_uint8 source_id);
+extern kal_bool l4c_sms_atcmd_cmgd_res_req(kal_uint8 src_id,kal_uint8 result, kal_uint16 cause, kal_uint8 source_id);
+extern kal_bool l4c_sms_atcmd_cmgw_res_req(kal_uint8 src_id,kal_uint32 index, kal_uint8 result, kal_uint16 cause, kal_uint8 source_id);
+extern kal_bool l4c_sms_atcmd_eqsi_res_req(kal_uint8 src_id,kal_uint8 mem, kal_uint32 begin, kal_uint32 end, kal_uint32 used, kal_uint8 source_id);
+
+extern kal_bool l4c_sms_etws_setting_req(kal_uint8 src_id, kal_bool is_etws_needed, kal_bool is_etws_security_needed, kal_bool is_etws_testing_on, kal_bool write_to_nvram);
+
+/* __IMS_SUPPORT__ */
+extern kal_bool l4c_sms_ims_exe_submit_pdu_req(kal_uint8 src_id, kal_uint16 data_len, kal_uint16 length, kal_uint8 *pdu, kal_bool stksms);
+
+extern kal_bool l4c_sms_ims_exe_submit_text_req(kal_uint8 src_id, kal_uint8 profile, kal_uint16 reply_index, l4c_number_struct dest, kal_uint16 para, l4c_number_struct sca, kal_uint8 vp, smsal_pid_enum pid, kal_uint8 udhi, smsal_dcs_enum dcs, kal_uint16 length, kal_uint8 *msg, kal_uint8 seq_num, kal_uint8 mms_mode, kal_uint8 tp_srr, kal_uint8 tp_rp);
+
+extern kal_bool l4c_sms_ims_exe_command_pdu_req(kal_uint8 src_id, kal_uint16 data_len, kal_uint16 length, kal_uint8 *pdu);
+
+extern kal_bool l4c_sms_ims_exe_command_text_req(kal_uint8 src_id, kal_uint8 fo, kal_uint8 ct, kal_uint8 mn, kal_uint8 pid, l4c_number_struct dest, kal_uint16 length, kal_uint8 *cmd);
+
+extern kal_bool l4c_sms_ims_exe_mt_pdu_req(kal_uint8 src_id, kal_uint16 pdu_len, kal_uint8 *pdu_ptr);
+
+extern kal_bool l4c_sms_ims_exe_smma_req(kal_uint8 src_id, kal_uint8 op, kal_uint8 is_full);
+
+extern kal_bool l4c_sms_ims_exe_storage_post_req(
+ kal_uint8 src_id,
+ kal_uint16 index,
+ kal_uint16 reply_index,
+ kal_bool addr_present,
+ l4c_number_struct dest,
+ kal_uint8 profile_no_tag,
+ kal_uint8 profile_no,
+ smsal_domain_enum domain,
+ kal_uint8 msg_ref,
+ kal_bool is_retry);
+
+extern kal_bool l4c_sms_ims_exe_update_msgbox(kal_uint8 src_id, kal_uint8 result, kal_uint8 mr);
+/* end of __IMS_SUPPORT__ */
+
+extern void l4c_sms_context_switch(l4c_me_reconfig_enum reconfig_type);
+
+extern kal_bool l4c_smsal_init_req(kal_uint8 src_id, smsal_init_type_enum init_type);
+extern kal_bool l4c_smsal_sms_end_req(kal_uint8 src_id, kal_uint8 domain,kal_uint8 direction);
+
+
+#endif /* _L4C_SMS_CMD_H */
diff --git a/mcu/protocol/interface/l4misc/l4c_smu_cmd.h b/mcu/protocol/interface/l4misc/l4c_smu_cmd.h
new file mode 100644
index 0000000..e596bef
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_smu_cmd.h
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_smu_cmd.h
+ *
+ * Project:
+ * --------
+ * UMOLYA
+ *
+ * Description:
+ * ------------
+ * This file is intends for VZW SIM related function prototype
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+#ifndef _L4C_SMU_CMD_H
+#define _L4C_SMU_CMD_H
+
+#include "kal_general_types.h"
+
+// VzW RSU
+extern kal_bool l4c_smu_vzw_rsu_initiate_req(kal_uint8 src_id);
+extern kal_bool l4c_smu_vzw_rsu_proc_lock_data_req(kal_uint8 src_id, kal_uint8 *sim_lock_data, kal_uint16 data_len);
+extern kal_bool l4c_smu_vzw_rsu_get_lock_status_req(kal_uint8 *status, kal_uint16 *unlock_time);
+extern kal_bool l4c_smu_vzw_rsu_delay_timer_req(kal_uint8 src_id, kal_uint8 start_stop);
+extern kal_bool l4c_smu_vzw_rsu_data_reset_req(l4c_source_id_enum src_id);
+
+// OP129 RSU
+extern kal_bool l4c_smu_op129_update_sim_lock_setting_req(kal_uint8 src_id, kal_bool is_last_data, kal_uint16 offset, kal_uint16 sls_len, kal_uint8 *sls);
+extern kal_bool l4c_smu_op129_get_simlock_data_req(kal_uint8 src_id, kal_uint8 list_type);
+
+// TMO RSU in Movial Solution
+extern kal_bool l4c_smu_tmo_rsu_create_unlock_msg_req(kal_uint8 src_id, kal_uint8 unlock_req_type, kal_uint8 *imsi, kal_uint8 *imei);
+extern kal_bool l4c_smu_tmo_rsu_process_msg_req(kal_uint8 src_id, kal_uint8 *imei, kal_uint16 raw_len, kal_uint8 *raw_msg);
+extern kal_bool l4c_smu_tmo_rsu_get_sml_status_req(kal_uint8 src_id);
+extern kal_bool l4c_smu_tmo_rsu_get_reg_msg_req(kal_uint8 src_id, kal_uint8 *imei);
+extern kal_bool l4c_smu_tmo_rsu_get_adapter_config_req(kal_uint8 src_id, kal_uint8 *rsu_version_str);
+extern kal_bool l4c_smu_tmo_rsu_update_blob_req(kal_uint8 src_id, kal_uint8 *sim_lock_data, kal_uint16 data_len);
+
+#endif /* _L4C_SMU_CMD_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_ss_parse.h b/mcu/protocol/interface/l4misc/l4c_ss_parse.h
new file mode 100644
index 0000000..5484111
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_ss_parse.h
@@ -0,0 +1,129 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_ss_parse.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_SS_PARSE_H
+#define _L4C_SS_PARSE_H
+
+
+#include "rmmi_context.h"
+#include "ps_public_struct.h"
+#include "kal_general_types.h"
+
+typedef enum
+{
+ SS_DCS_ENGLISH = 0x0f,
+ SS_DCS_CHINESE = 0x08
+} l4c_ss_dcs_enum;
+
+extern kal_bool l4c_ss_string_parsing(
+ kal_uint8 src_id,
+ kal_uint8 dcs,
+ rmmi_string_struct *input,
+ kal_uint8 length,
+ l4c_ss_string_info_struct *info,
+ kal_uint8 call_type,
+ kal_bool is_sim_operation,
+ kal_uint8 als_type,
+ kal_uint8 ecc_info);
+
+extern kal_bool l4c_ss_operation_req(kal_uint8 src_id,
+ kal_uint8 *input,
+ kal_uint8 dcs,
+ kal_uint8 length,
+ kal_uint8 cf_number_length);
+
+extern kal_bool is_sim_string(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid, kal_uint8 *type);
+
+extern kal_bool is_gprs_string(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid);
+
+extern kal_bool is_cc_string(
+ kal_uint8 src_id,
+ rmmi_string_struct *input,
+ l4c_ss_string_info_struct *info,
+ kal_uint8 call_type,
+ kal_uint8 als_type,
+ kal_uint8 ecc_info);
+
+extern kal_bool short_string_as_call(rmmi_string_struct *input, kal_uint8 length);
+
+extern kal_bool setup_pdp_act_struct(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid);
+
+extern kal_bool setup_ip_pdp_act_struct(kal_uint8 src_id, rmmi_string_struct *input, kal_bool *format_valid);
+
+extern kal_bool setup_sim_struct(kal_uint8 src_id, rmmi_string_struct *input, kal_uint8 type, kal_bool *format_valid);
+
+extern kal_bool setup_number_struct(kal_uint8 src_id, rmmi_string_struct *input, l4c_ss_string_info_struct *info);
+
+extern kal_bool get_int_before_star(rmmi_string_struct *input, kal_uint8 *number);
+
+extern kal_bool get_uint32_before_star(rmmi_string_struct *input, kal_uint32 *number);
+
+extern kal_bool get_string_before_star(rmmi_string_struct *input, kal_uint8 *string_ptr, kal_uint8 max_length);
+
+extern kal_bool get_dn_before_star(rmmi_string_struct *input, kal_uint8 *string_ptr);
+
+extern kal_bool get_dn_by_length(rmmi_string_struct *input, kal_uint8 *string_ptr, kal_uint8 dn_length);
+
+// extern kal_bool phb_is_number_ecc(l4_addr_bcd_struct *tel_number);
+#endif /* _L4C_SS_PARSE_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_tst.h b/mcu/protocol/interface/l4misc/l4c_tst.h
new file mode 100644
index 0000000..0219dab
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_tst.h
@@ -0,0 +1,115 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+/*****************************************************************************
+ * Filename:
+ * ---------
+ * l4c_med_msg.c
+ *
+ * Description:
+ * ------------
+ * This file implements the req and cnf handlers interfacing Media task
+ *
+ * Author:
+ * -------
+ * -------
+ *****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef L4C_TST_H
+#define L4C_TST_H
+
+
+#include "dcl.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l4c_common_enum.h"
+
+#ifdef __L4C_GPRS_UT__
+extern void l4c_ut_check_l4c_context_info(kal_uint8 src_id, kal_uint8 cid, l4c_action_enum action);
+extern void l4c_ut_request_type_handover_to_initial_request(kal_uint8 index);
+extern void l4c_ut_l4c_convert_data_speed_support_enum();
+extern void l4c_ut_config_cgdcontrdp_set_mode();
+extern void l4c_ut_config_cgdcont_read_mode();
+extern void l4c_ut_config_cgact_read_mode();
+extern void l4c_ut_config_pdp_addr_read_mode();
+extern void l4c_ut_config_psbearer_read_mode();
+extern void l4c_ut_config_eps_qos_read_mode();
+extern void l4c_ut_config_cgeqreq_read_mode();
+extern void l4c_ut_config_cgqreq_read_mode();
+extern void l4c_ut_config_msq_read_mode();
+extern void l4c_ut_config_cgprco_read_mode();
+extern void l4c_ut_check_ipv4v6_table_all_free(void);
+extern void l4c_ut_rmmi_convert_l3_cause();
+#endif
+
+//extern kal_bool l4c_check_tst_inject_cmd_conflict(kal_char* cmd_string);
+extern void tst_inject_string_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_attach_uart_port_req(kal_uint8 src_id, module_type module_id, UART_PORT port, kal_uint32 baud_rate);
+extern kal_bool l4c_detach_uart_port_req(kal_uint8 src_id, module_type module_id, UART_PORT port);
+extern void l4c_open_uart_port_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_close_uart_port_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_check_port_free(kal_uint8 port);
+extern void l4c_send_open_port_req(kal_uint8 port, kal_uint8 module_id, kal_uint32 baud_rate);
+extern void l4c_send_close_port_req(kal_uint8 port, kal_uint8 module_id);
+extern kal_bool l4c_tst_change_log_port_req(l4c_source_id_enum src_id,
+ DCL_DEV l1_port,
+ DCL_DEV ps_port,
+ kal_uint8 log_mode);
+extern void l4c_change_uart_port_cnf_hdlr(local_para_struct * local_para_ptr, peer_buff_struct * peer_buff_ptr);
+
+
+
+
+extern void l4c_assert_bypass_trace_ind_hdlr(local_para_struct * local_para_ptr, peer_buff_struct * peer_buff_ptr);
+
+#ifndef __MTK_TARGET__
+extern void l4c_atci_ut_rmmi_input_string_hdlr(local_para_struct * local_para_ptr, peer_buff_struct * peer_buff_ptr); //RMMI_UT
+extern void l4c_atci_ut_rmmi_expanded_at_command_input_string_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr); //__L4C_GPRS_UT__
+extern void l4c_inject_sbp_change_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_ut_set_rac_rat_mode_context_ind_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+#endif
+
+#endif /* L4C_TST_H */
+
diff --git a/mcu/protocol/interface/l4misc/l4c_utility.h b/mcu/protocol/interface/l4misc/l4c_utility.h
new file mode 100644
index 0000000..064228b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l4c_utility.h
@@ -0,0 +1,1075 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l4c_utility.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _L4C_UTILITY_H
+#define _L4C_UTILITY_H
+
+#include "mcd_l3_inc_struct.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+#include "kal_general_types.h"
+#include "lcd_lqueue.h"
+
+#include "ps_public_enum.h"
+#include "l3_inc_enums_public.h"
+#include "nvram_enums.h"
+#include "l4c_context.h"
+#include "l4c_common_enum.h"
+#include "l3_inc_local.h"
+#include "l4crac_enums.h"
+#include "ps_public_struct.h"
+#include "l4c2csm_cc_struct.h"
+
+#include "rsvas_struct.h"
+#include "l4c_eval_struct.h"
+#include "l4c_nrrc_struct.h"
+#include "ims_common_def.h"
+
+#if defined(__GEMINI__)
+#include "mspm_public_api.h"
+#endif
+
+#include "dcl.h"
+#include "ft_msg_l4.h"
+
+#define UNUSED_PARAM(x) //if(x)
+
+typedef enum
+{
+ L4C_BASEBAND_CODE,
+ L4C_DSP_CODE,
+ L4C_DSP_PATCH,
+ L4C_SW_CODE,
+ L4C_HW_CODE,
+ L4C_FLAVOR_CODE = 13,
+ L4C_DSP_LABEL,
+ L4C_DSP_BUILD_TIME
+} l4c_ms_revision_enum;
+
+typedef enum
+{
+ CONVERT_TO_BCD_NORMAL,
+ CONVERT_TO_BCD_WILD,
+ CONVERT_TO_BCD_IGNORE_PLUS
+}convert_to_bcd_enum;
+
+typedef enum
+{
+ CONVERT_TO_DIGIT_NORMAL,
+ CONVERT_TO_DIGIT_WILD,
+ CONVERT_TO_DIGIT_EXT,
+ CONVERT_TO_DIGIT_24008
+}convert_to_digit_enum;
+
+typedef enum
+{
+ L4C_REFRESH_CSP = 0x01,
+ L4C_REFRESH_RAT = 0x02
+}l4c_sim_refresh_file_enum;
+
+
+typedef struct _CREE_MAP_ENTRY
+{
+ unsigned int index;
+ unsigned char *cree_str;
+} CREE_MAP_ENTRY;
+
+extern kal_bool is_proper_owner(kal_uint8 src_id);
+// mtk02514_phb
+#define convert_to_bcd(source, dest, max_dest_len) convert_to_general_bcd(source, dest, max_dest_len, CONVERT_TO_BCD_NORMAL)
+#define convert_to_bcd_wild(source, dest, max_dest_len) convert_to_general_bcd(source, dest, max_dest_len, CONVERT_TO_BCD_WILD)
+extern kal_uint8 convert_to_general_bcd(kal_uint8 *source, kal_uint8 *dest, kal_uint8 max_dest_len, kal_uint8 type);
+
+
+#define convert_to_digit(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_NORMAL)
+#define convert_to_digit_with_len(source, dest, len) convert_to_general_digit_with_len(source, dest, len)
+#define convert_to_digit_wild(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_WILD)
+#define convert_to_digit_ext(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_EXT)
+#define convert_to_digit_24008(source, dest) convert_to_general_digit(source, dest, CONVERT_TO_DIGIT_24008)
+
+#define L4C_DECLARE_AND_CONSTRUCT_LOCAL_PARAM(struct_type, var, init_type) \
+ struct_type* var = (struct_type*)construct_local_para(sizeof(struct_type),init_type) //MAUI_02900475
+
+
+#define RETURN_WITH_L4C_TRC(RETURN_VALUE) \
+ l4c_trace_function_name_and_return_line(__FUNCTION__, __LINE__, RETURN_VALUE); \
+ return RETURN_VALUE;
+
+
+#define l4c_ps_dialup_disc_req(a,b,c) {}
+
+typedef void (* l4c_timer_func_ptr)(void );
+
+extern kal_uint8 convert_to_general_digit(kal_uint8 *source, kal_uint8 *dest, kal_uint8 type);
+
+extern kal_uint8 convert_to_general_digit_with_len(kal_uint8 *source, kal_uint8 *dest, kal_uint8 len);
+
+extern kal_uint8 plmn_convert_to_bcd(kal_uint8 *source, kal_uint8 *dest);
+
+extern kal_uint8 plmn_convert_to_struct(kal_uint8 *source, plmn_id_rat_struct *dest);
+
+extern kal_uint8 plmn_convert_to_digit(plmn_id_struct *source, kal_uint8 *dest);
+
+extern kal_bool plmn_convert_int_to_struct(kal_uint8 plmn_num, kal_uint32 plmn_id, plmn_id_struct *dest);
+
+//MAUI_02884093 extern kal_bool ss_string_skip_plus(kal_uint8 *source, kal_uint8 *dest);
+
+extern kal_bool l4c_construct_phb_approve_str(kal_uint8 *source, kal_uint8 length); //MAUI_02884093
+
+extern kal_uint8 get_bcd_byte(kal_uint8 digit, kal_uint8 type);
+
+extern kal_uint8 get_ch_byte(kal_uint8 bcd, kal_uint8 type);
+
+extern kal_uint8 get_ch_byte_raw(kal_uint8 bcd, kal_uint8 type);
+
+extern kal_uint8 get_ch_byte_24008(kal_uint8 bcd);
+
+extern kal_bool is_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_eq_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_phb_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_sms_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_ss_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_rac_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool is_rac_egtype_reg_conflict(void);
+
+extern kal_bool is_rac_tcm_cmd_conflict(kal_uint8 src_id);
+
+extern kal_bool is_l4c_ps_additional_pdn_activate_conflict(kal_uint32 apn_type);
+
+extern kal_bool is_l4c_nw_plmn_list_ongoing(protocol_id_enum protocol_id);
+
+extern kal_bool is_smu_cmd_conflict(kal_uint8 src_id, kal_uint16 action);
+
+extern l4c_gprs_cmd_conflict_cause_enum l4c_ps_check_cmd_conflict(kal_uint32 check_bitmap, kal_uint8 cid, kal_uint8 src_id);
+
+extern kal_bool l4c_ps_check_cc_current_action_conflict(kal_uint8 src_id);
+
+extern l4c_gprs_cmd_conflict_cause_enum is_l4c_ps_set_cmd_conflict(kal_uint8 cid, kal_uint8 src_id, kal_uint16 action); //maui_01895693, mtk02285
+
+extern l4c_action_enum l4c_ps_get_action_by_cid_n_src(kal_uint8 cid, kal_uint8 src_id);
+extern l4c_action_enum l4c_ps_get_action_by_cid(kal_uint8 cid);
+extern l4c_action_enum l4c_ps_get_action_by_src(kal_uint8 src_id);
+extern kal_uint8 l4c_ps_get_src_by_cid_n_action(kal_uint8 cid, l4c_action_enum action);
+extern kal_uint8 l4c_ps_get_src_for_set_cmd(kal_uint8 cid);
+extern kal_bool l4c_ps_check_is_src_free(kal_uint8 src_id);
+extern kal_bool l4c_ps_check_is_cid_free(kal_uint8 cid);
+extern kal_bool l4c_ps_check_is_table_free();
+extern l4c_tcm_internal_cid_state l4c_ps_get_state_by_cid(kal_uint8 cid);
+extern void l4c_ps_set_action(kal_uint8 cid, kal_uint8 src_id, kal_uint16 action);
+extern void l4c_ps_clean_cid_action(kal_uint8 cid);
+extern void l4c_ps_clean_src_action(kal_uint8 src_id);
+extern void l4c_ps_print_action_table();
+
+extern void l4c_ps_set_vzw_apn_enable_bitmap(kal_uint8 class_num, kal_bool is_enable );
+extern kal_bool l4c_ps_check_if_both_class_1_and_class_2_are_enable();
+extern void l4c_ps_clear_vzw_apn_enable_bitmap();
+
+extern kal_bool l4c_ps_is_data_allowed(protocol_id_enum protocol_id);
+
+#ifdef __TC10__
+extern l4c_qci_info_struct *l4c_ps_get_qci_by_context_id( kal_uint8 context_id );
+extern void l4c_ps_set_qci_info(kal_uint8 cid, kal_uint8 qci);
+extern void l4c_ps_get_current_plmn_id_from_sim(kal_char *sim_plmn);
+extern kal_bool l4c_ps_is_plmn_identical(kal_char *plmn1_ptr, kal_char *plmn2_ptr);
+extern kal_bool l4c_ps_is_fdn_check_not_needed_in_plmns(const kal_char *fdn_omit_plmn);
+extern kal_bool l4c_ps_is_fdn_check_not_needed_for_plmn(void);
+
+#endif /*__TC10__*/
+
+#if 0 //def __CTM_SUPPORT__
+/* under construction !*/
+#endif
+
+extern kal_bool l4c_search_all_src(module_type which_sim, kal_uint16 action);
+
+extern kal_bool l4c_search_all_src_ext(module_type which_sim, kal_uint16 action, kal_uint8 *src_id); //MAUI_02554068
+
+extern kal_bool l4c_search_other_src(kal_uint8 src_id, kal_uint16 action);
+
+extern kal_uint8 l4c_conflict_search(kal_uint16 val);
+
+extern void l4c_cmux_startup_req(UART_PORT port);
+
+extern void l4c_cmux_closedown_req(void);
+
+extern void l4c_start_retry_timer_hdlr(kal_uint8 src_id);
+
+//mtk01616_070515 : start 1 sec retry timer fro ss change phase request
+extern void l4c_start_change_phase_retry_timer_hdlr(kal_uint8 src_id);
+
+extern void l4c_sat_file_change_hdlr(kal_uint8 src_id);
+
+#ifdef __TC10__
+extern kal_bool l4c_sat_need_check_fdn(sat_call_ctrl_type_noti_enum type);
+extern kal_bool l4c_sat_is_already_ctrl_by_sim(sat_call_ctrl_type_noti_enum type);
+#endif
+
+extern kal_bool l4c_need_retry(kal_uint16 cause);
+
+extern void l4c_retry_hdlr(void);
+
+extern void l4c_send_msg_hdlr(kal_uint8 src_id, kal_uint8 operation);
+
+extern kal_bool check_multi_command(kal_uint8 result);
+
+extern void l4c_gprs_send_data_timer_hdlr(void);
+
+extern void l4c_gprs_data_timeout_hdlr(void);
+
+extern void l4c_gprs_connection_timer_hdlr(void);
+
+extern void l4c_gprs_connection_timerout_hdlr(void);
+
+extern kal_bool l4c_sim_poweroff_done(void);
+
+extern void l4c_sim_poweroff_timer_hdlr(void);
+extern void l4c_sim_poweroff_timerout_hdlr(void);
+
+extern void l4c_all_poweroff_done(void);
+
+extern kal_bool l4c_ps_dialup_check_existence(kal_uint8 sim_id);
+extern kal_uint8 l4c_ps_dialup_get_cid(kal_uint16 port);
+extern kal_uint16 l4c_ps_dialup_get_port(kal_uint8 cid);
+extern void l4c_ps_dialup_reset_port2cid(kal_uint8 cid);
+extern void l4c_ps_dialup_set_port2cid(kal_uint16 port,kal_uint8 cid);
+
+extern l4c_data_bearer_capablility_enum l4c_convert_data_speed_support_enum(data_speed_activate_enum low_layer_value);
+extern void l4c_ps_update_gprs_status(l4c_handler_action_enum action);
+extern void l4c_ps_update_overall_pdp_status_to_sim(l4c_gprs_status_enum *last_status, l4c_gprs_status_enum current_status);
+extern void l4c_set_voice_centric_from_rac(kal_bool is_voice_centric_enable);
+// extern kal_bool l4c_ps_check_need_to_transfer_pdn_to_ehrpd();
+
+extern kal_uint8 l4c_ps_apn_char_to_upper(kal_uint8 c);
+extern kal_bool l4c_ps_apn_equal(kal_uint8 len, kal_uint8 *apn1, kal_uint8 *apn2);
+
+extern kal_bool get_ms_revision(kal_uint8 equip_type, kal_uint8 *equip_id);
+
+extern void l4c_convert_result(kal_uint8 l4c_result, kal_uint16 l4c_cause, kal_bool *result, kal_uint16 *cause);
+
+extern kal_uint8 l4c_check_port_owner_source(kal_uint8 port);
+
+extern void l4c_set_user_action(kal_uint8 mod, kal_uint8 user, kal_uint16 action);
+
+extern void l4c_set_tcm_user_action(kal_uint8 cid, kal_uint8 src_id, kal_uint16 action);
+
+extern kal_bool l4c_check_user_action(kal_uint8 mod, kal_uint8 user, kal_uint16 action);
+
+extern void l4c_clear_all_cc_action();
+
+#ifdef __APP_SECONDARY_PDP_SUPPORT__
+extern kal_bool l4c_find_free_pdp_context(kal_uint8 *cid, kal_uint8 pid, kal_uint8 qos_id);
+extern void l4c_find_pdp_pid2cid(kal_uint8 *cid, kal_uint8 pid, kal_uint8 qos_id);
+extern void l4c_free_pdp_context(kal_uint8 cid, kal_uint8 *pid, kal_uint8 *qos_id);
+#else /* __APP_SECONDARY_PDP_SUPPORT__ */
+extern kal_bool l4c_find_free_pdp_context(kal_uint8 *cid, kal_uint8 pid);
+
+extern void l4c_find_pdp_pid2cid(kal_uint8 *cid, kal_uint8 pid);
+
+extern void l4c_free_pdp_context(kal_uint8 cid, kal_uint8 *pid);
+#endif /* __APP_SECONDARY_PDP_SUPPORT__ */
+
+extern kal_uint8 l4c_find_pdp_cid2pid(kal_uint8 cid);
+
+extern void l4c_ConvertGSM7BitDefaultEncodingToAscii(
+ kal_uint8 *message,
+ kal_uint8 *msg,
+ kal_uint16 length,
+ kal_uint16 *outLen);
+
+extern void l4c_set_download_path(kal_wchar *downlaod_path);
+
+extern kal_bool has_any_current_action(kal_uint8 src_id);
+
+extern kal_bool has_any_src_in_action(kal_uint8 mod, kal_uint16 action);
+
+extern kal_bool l4c_check_online_state(kal_uint8 *online_src_id, kal_uint8 state);
+
+extern kal_bool l4c_is_src_from_rmmi(kal_uint8 src_id);
+extern kal_bool l4c_is_src_from_vdm(kal_uint8 src_id);
+
+extern kal_bool l4c_previous_rac_action_rsp(kal_uint16 next_action);
+
+//extern void l4c_clear_concat_sms_array (void);
+extern kal_bool l4c_mmi_result(kal_uint8 result);
+
+extern void l4c_set_mt_call_event(kal_bool mt_call_exist,kal_uint8 mt_call_id);
+
+extern void l4c_update_retry_call_state_ind(kal_uint8 call_id,kal_uint8 src_id);
+
+extern void l4c_send_callid_assign_fail_ind(kal_uint8 src_id,kal_uint8 call_id,kal_uint16 cause);
+
+
+extern void l4c_ctrl_dcd_status(kal_uint8 src_id, module_type ownerid);
+
+extern void l4c_check_cind_status(kal_uint8 *call, kal_uint8 *service, kal_uint8 *callsetup);
+
+extern kal_bool l4c_check_dual_sim_state(module_type current_mod_id, kal_uint8 cfun_state);
+
+extern void l4c_check_dual_sim_insert_status(module_type mod_id, kal_uint8 sim_inserted_status);
+
+extern kal_bool l4c_send_dual_sim_power_on_ind(kal_uint8 src_id);
+
+extern void l4c_context_selection(kal_uint8 sim_interface);
+extern kal_uint8 l4c_get_bt_hf_atd_action(void);
+extern void l4c_unified_ciev_staus(kal_uint8 *service,
+ kal_uint8 *signal,
+ kal_uint8 *roam,
+ kal_uint8 *call,
+ kal_uint8 *callsetup,
+ kal_uint8 *callheld);
+
+extern kal_bool l4c_is_test_sim(void);
+#ifdef __VSIM__
+extern kal_bool l4c_is_vsim_on(void);
+#if defined (__GEMINI__)
+extern kal_bool l4c_is_vsim_auth_on(kal_uint8 simInterface);
+#else
+extern kal_bool l4c_is_vsim_auth_on(void);
+#endif
+extern kal_uint8 l4c_read_vsim_profileid(kal_uint8 simInterface);
+extern kal_uint8 l4c_read_vsim_type(kal_uint8 simInterface, kal_uint8 profile_id);
+extern kal_uint8 l4c_read_vsim_auth_algo(kal_uint8 simInterface, kal_uint8 profile_id);
+extern void l4c_read_vsim_auth_res(kal_uint8 simInterface, kal_uint8 profile_id, kal_uint16 *auth_len, kal_uint8 *auth_res);
+extern vsim_ver_type_enum l4c_read_vsim_ver(kal_uint8 simInterface);
+extern kal_bool l4c_is_rat_vsim_conflict(kal_uint8 profile_id);
+#endif
+extern kal_bool l4c_is_vsim_skip_security(protocol_id_enum protocol_id);
+extern kal_uint8 l4c_check_sim_status(void);
+extern l4c_sim_status_enum l4c_get_sim_status(void);
+extern kal_bool l4c_check_auto_dtmf_modifier(kal_uint8 ch);
+extern kal_uint8 l4c_get_cfun_state(void);
+extern kal_uint8 l4c_get_cfun_state_by_protocol_id(protocol_id_enum protocol_id);
+
+extern kal_uint8 l4_custom_approval_type(kal_uint8 operation_type,kal_uint8 src_id);
+
+
+extern void l4c_phb_format_alpha_id(void *alpha_id, kal_uint8 *rsp_string);
+extern void l4c_phb_atd_mem_dial(kal_uint8 *tel_number, kal_uint8 ton);
+extern void l4c_phb_set_result_code(kal_uint8 phb_result, kal_uint16 phb_cause, void *result, kal_uint8 other_cond);
+extern void l4c_phb_set_tel_number(void *phb_tel, void *l4c_phb_tel, convert_to_bcd_enum convert_method);
+extern phb_storage_enum l4c_phb_get_sim_storage_by_current_module(void);
+
+extern void l4c_reset_sms_context();
+
+extern void l4c_activate_sub_modules(kal_uint8 src_id);
+
+extern void l4c_reset_sub_modules(l4c_sub_module_enum sub_mod, kal_bool is_fdn_change);
+
+extern void l4c_clear_poweron_action(kal_uint8 src_id);
+
+extern void l4c_nw_sysconfig_update(kal_uint8 src_id);
+
+extern void l4c_nw_syssel_update(kal_uint8 src_id);
+
+extern void l4c_save_syssel_setting(kal_uint8 src_id, kal_uint8 band);
+
+extern void* l4c_construct_nvram_write_local_para(kal_uint8 access_id, nvram_lid_enum file_idx, kal_uint16 para);
+extern void* l4c_construct_nvram_read_local_para(kal_uint8 access_id, nvram_lid_enum file_idx, kal_uint16 para, kal_uint16 rec_amount);
+
+extern void l4c_target_reset(kal_uint8 sec);
+
+extern void l4c_clear_retry_call(void);
+extern void l4c_clear_all_retry_call(void);
+
+extern void l4c_clear_sim_power_state(void);
+
+extern void l4c_nw_power_off_clear_state(void);
+extern void l4c_nw_rfoff_clear_hvolte_parameter(void);
+
+extern kal_bool l4c_nw_c2k_rfoff_req(void);
+extern kal_bool l4c_c2k_power_off_req(kal_uint8 src_id);
+
+extern kal_bool l4c_check_power_off_ready();
+
+extern void l4c_cc_save_ceer_cause(l4c_result_enum response,kal_uint8 cause_present,kal_uint16 cause);
+
+extern void l4c_need_notify_gas_to_bar_current_cell(kal_uint16 cause);
+
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+extern kal_bool l4c_get_ecall_number(l4_addr_bcd_struct *called_number,kal_uint8 ecc_info);
+#endif
+#if defined(__CSG_SUPPORT__)
+extern void l4c_free_csg_list(rac_csg_list_struct *csg_list);
+#endif
+
+extern kal_bool l4c_cc_check_call_exist(kal_uint8 src_id);
+
+#ifdef __VOLTE_SUPPORT__
+extern kal_bool l4c_cc_check_ims_call_exist(void);
+extern kal_bool l4c_cc_check_in_call_session(kal_uint8 src_id);
+#endif
+
+extern void l4c_set_led_7_segment_debug(l4c_data_speed_support_enum data_speed_for_cell_info,
+ l4c_data_bearer_capablility_enum data_bearer_from_l2);
+
+
+extern rat_enum l4c_get_active_rat(void);
+extern rat_enum l4c_get_active_rat_by_protocol_id(protocol_id_enum protocol_id);
+
+extern rat_enum l4c_get_active_3gpp_rat(void);
+
+extern kal_bool is_rac_activated(void);
+
+extern kal_bool is_current_rac_activated();
+
+extern kal_bool is_tcm_activated();
+extern kal_bool is_current_tcm_activated();
+extern void l4c_act_rac_req();
+extern void l4c_act_tcm_req();
+extern void l4c_power_on_stage1_finished_ind(void);
+
+#if defined(__NO_PSDATA_SEND_SCRI__) || defined(__FAST_DORMANCY__)
+extern kal_bool l4c_fd_need_force_send_SCRI(void);
+extern void l4c_fd_monitor_timeout_hdlr(void);
+extern void l4c_fd_start_monitor_timer(kal_uint8 src_id);
+extern void l4c_fd_check_pdp_statistics(void);
+#endif
+
+extern kal_bool l4c_check_state_is_registered(reg_state_enum reg_state);
+
+extern kal_bool l4c_check_cid_activated_with_same_config(kal_uint8 cid, pdp_addr_type_enum pdp_type, kal_uint8 *AccessString, kal_uint8 *UserName, kal_uint8 *Password);
+
+extern kal_uint8 l4c_search_activated_cid_with_given_config(pdp_addr_type_enum pdp_type, kal_uint8 *AccessString, kal_uint8 *UserName, kal_uint8 *Password);
+
+extern kal_bool l4c_notify_rac_cgact_event();
+
+extern kal_bool l4c_notify_rac_cgact_event();
+extern kal_bool l4c_check_is_sglte_mode(kal_uint8 simIndex);
+
+extern l4c_modem_capability_enum l4c_check_modem_capability(l4c_modem_capability_enum capability);
+extern l4c_modem_capability_enum l4c_check_protocol_capability(protocol_id_enum protocol_id, l4c_modem_capability_enum capability);
+extern kal_int32 l4c_plmn_order_compare (const void * plmn_a, const void * plmn_b);
+extern void l4c_plmn_increasing_order(kal_uint8 total_num, kal_uint8 *plmn_list_ptr);
+
+extern kal_bool l4c_check_protocol_cap_with_gmss_mode(protocol_id_enum protocol_id,l4c_modem_capability_enum capability);
+extern kal_bool l4c_check_cur_protocol_cap_with_gmss_mode(l4c_modem_capability_enum capability);
+
+extern rat_enum l4c_rat_mode_validator(rat_enum old_rat_mode);
+extern rat_enum l4c_rat_mode_validator_with_ue_capability(rat_enum rat_mode);
+
+extern kal_bool check_if_NA_network(const kal_char *nw_mcc);
+extern void l4c_load_hvolte_e911_config(protocol_id_enum ps_id);
+extern void l4c_load_nvram_hvolte_config(protocol_id_enum ps_id);
+extern void l4c_save_hvolte_e911_config_to_nvram(protocol_id_enum ps_id);
+extern kal_uint8 plmn_convert_bcd_to_digit(const kal_uint8 *plmn_byte, kal_uint8 *dest);
+extern kal_uint8 decode_network_name(kal_uint8 nw_name_len, const kal_uint8 *nw_name,
+ kal_uint8 dest_len, kal_uint8 *dest,
+ const kal_uint8 *mcc, kal_uint8 *dcs);
+extern kal_bool is_plmn_match(const kal_uint8 *sim_plmn, const kal_uint8 *nw_plmn);
+extern kal_uint8 plmn_convert_digit_to_struct(kal_uint8 *source, plmn_id_struct *dest);
+
+extern void l4c_start_volte_hys_timer(void);
+extern void l4c_stop_volte_hys_timer(void);
+extern void l4c_volte_hys_timeout_hdlr(void);
+
+extern void l4c_timeout_cleanup(l4c_timer_id_enum timer_id);
+extern void l4c_cancel_timer(l4c_timer_id_enum timer_id);
+
+extern kal_bool l4c_is_timer_running(l4c_timer_id_enum timer_id);
+extern kal_uint32 l4c_query_timer_value_hdlr(l4c_timer_id_enum timer_id);
+extern kal_bool l4c_set_timer_value_hdlr(l4c_timer_id_enum timer_id, kal_uint32 timer_value);
+extern kal_uint8 l4c_get_dongle_mode(void);
+extern kal_uint16 l4c_convert_act_to_eact(kal_uint8 act);
+extern void l4c_check_and_send_call_status_req(kal_uint8 msg_type, kal_uint8 call_id);
+extern void l4c_send_rac_call_status_req(call_status_enum call_status, call_type_indication_enum call_type, kal_bool is_flight_mode_on_ecc);
+
+
+extern void l4c_start_txrxtime_timer(void);
+extern void l4c_stop_txrxtime_timer(void);
+extern void l4c_txrxtime_timeout_hdlr(void);
+#if defined(__GEMINI__)
+extern kal_bool is_efun_cmd_conflict(kal_uint8 src_id, kal_uint8 desired_efun);
+#endif
+
+extern kal_bool l4c_sim_check_operator_card(sim_operator_type_enum operator_type, kal_uint8 sim_interface);
+extern kal_bool l4c_sim_check_operator_card_by_iccid(sim_operator_type_enum operator_type, kal_uint8 sim_interface);
+extern sim_operator_type_enum l4c_sim_query_operator_card(protocol_id_enum ps_id);
+
+extern kal_bool l4c_nw_set_apc_control_info_req(kal_uint8 src_id,
+ kal_uint8 enable,
+ kal_uint8 mode,
+ kal_uint16 timer);
+
+extern void l4c_nw_pseudo_bs_query_req(kal_uint8 src_id);
+extern kal_bool l4c_boot_mode_notify_hdlr(msg_type notify_msg_id);
+extern void l4c_boot_mode_rsp(msg_type notify_msg_id, kal_bool result, kal_bool is_from_ft, FT_MODE_SWITCH_RESULT ft_result);
+
+#ifdef __GEMINI__
+extern kal_bool l4c_is_rsim_present(kal_uint8 sim_id);
+extern rsvas_id_enum l4c_get_rsvas_id(void);
+extern kal_bool l4c_is_aka_sim_present(kal_uint8 sim_id);
+extern void l4c_sim_rsim_start_plugin_timer_hdlr(void);
+extern void l4c_sim_rsim_plugin_timerout_hdlr(void);
+extern void l4c_sim_rsim_ersimauth_timeout_hdlr(void);
+extern void l4c_sim_rsim_ersimauth_start_timer(void);
+extern void l4c_sim_rsim_ersimauth_stop_timer(void);
+#endif
+
+#ifdef __ALLOW_CALL_DURING_SMS_IN_OTHER_STACK__
+extern void l4c_to_sms_send_call_status_req(kal_uint8 msg_type, kal_uint8 call_id);
+#endif
+
+extern void l4c_start_sbp_timer(kal_timer_func_ptr timeout_hdlr, void *param_ptr, kal_uint32 time_in_sec);
+extern void l4c_stop_sbp_timer(void);
+
+extern void l4c_notify_ipcore_ul_throttle_event(l4c_ipcore_ul_throttle_action_enum ul_throttle_action);
+
+extern void l4c_nw_power_level_threshold_start_timer_hdlr(l4c_timer_id_enum timer, kal_uint8 time);
+extern void l4c_nw_power_level_threshold_stop_timer_hdlr(l4c_timer_id_enum timer);
+extern void l4c_nw_power_level_threshold_timerout_hdlr();
+extern void l4c_nw_get_power_level_threshold(kal_int32 *upper_threshold, kal_uint8 *tup,
+ kal_int32 *lower_threshold, kal_uint8 *tlo);
+extern kal_bool l4c_is_peer_ps_c2k_existed(kal_uint8 current_ps);
+extern kal_bool l4c_has_any_call_session();
+extern kal_bool l4c_has_any_call_session_by_ps(kal_uint8 ps_id);
+
+extern void l4c_set_user_action_for_all_sims(kal_uint8 mod, kal_uint8 user, kal_uint16 new_action, kal_uint16 previous_action);
+
+extern void l4c_sim_duplex_mode_ind_hdlr(duplex_mode_change_action_enum sim_duplex_op);
+
+extern void l4c_send_cb_update_for_duplex_mode_req(void);
+
+extern void l4c_sms_send_etws_setting(void);
+extern kal_bool l4c_is_apvsim_on(void);
+
+extern l4c_sim_state_enum l4c_sim_get_power_state(kal_uint8 ps_id);
+extern kal_bool l4c_sim_is_dss_ongoing(void);
+extern kal_bool l4c_is_ecsra_ongoing(void);
+l4c_nw_dump_context l4c_nw_get_dump_context();
+l4c_cc_dump_context l4c_cc_get_dump_context();
+l4c_sms_dump_context l4c_sms_get_dump_context();
+l4c_sim_dump_context l4c_sim_get_dump_context();
+l4c_smu_dump_context l4c_smu_get_dump_context();
+l4c_ims_dump_context l4c_ims_get_dump_context();
+l4c_phb_dump_context l4c_phb_get_dump_context();
+
+extern kal_uint8 l4c_get_erfidx_index_from_srcid(kal_uint8 srcid);
+extern void l4c_op12_lock_reg_by_vzw_adm_apn(kal_bool lock_enable);
+extern kal_bool l4c_get_is_op12_lock(kal_uint8 ps_id);
+extern void l4c_op12_unlock_timer_hdlr();
+extern void l4c_op12_lock_timer_hdlr();
+extern void l4c_op12_lock_send_dereg();
+extern void l4c_op12_unlock_send_reg();
+extern kal_bool l4c_is_cdma_less(void);
+
+
+extern void l4c_op01_lock_send_dereg();
+extern void l4c_op01_unlock_send_reg();
+extern void l4c_set_op01_lock_unlock(kal_uint8 lock_state);
+extern kal_bool l4c_get_is_op01_lock(kal_uint8 ps_id);
+
+extern kal_bool l4c_sbp_is_any_dsbp_on_going();
+
+extern kal_bool l4c_sim_duplex_mode_reset_done();
+
+/*IWLAN - Power Level Threshold*/
+extern kal_bool l4c_is_cell_power_meas_disable_needed(l4c_sig_type_enum sig_type);
+extern kal_bool l4c_is_cell_power_meas_enable_needed();
+extern l4c_timer_func_ptr l4c_get_pwl_timeout_hdlr( l4c_pwl_thrhd_timer_id_enum which_timer );
+extern void l4c_pwl_thrhd_gsm_rssi_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_utran_rscp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_utran_ecno_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_lte_rsrp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_lte_rsrq_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_lte_rssnr_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_ss_rsrp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_ss_rsrq_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_ss_sinr_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_csi_rsrp_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_csi_rsrq_timerout_hdlr(void);
+extern void l4c_pwl_thrhd_nr_csi_sinr_timerout_hdlr(void);
+
+extern void l4c_nw_iwlan_pwl_thrhd_stop_timer_hdlr(l4c_pwl_thrhd_timer_id_enum timer);
+extern l4c_pwl_thrhd_timer_id_enum l4c_get_pwl_thrhd_timer_id(l4c_sig_type_enum sig_type);
+extern void l4c_nw_iwlan_pwl_thrhd_start_timer_hdlr(l4c_pwl_thrhd_timer_id_enum timer, kal_uint16 time);
+extern void l4c_nw_iwlan_pwr_level_ind_hdlr(kal_int32 sig_value_in_qdbm, l4c_sig_type_enum sig_type);
+extern void l4c_nw_pwl_thrhd_timerout_hdlr(l4c_sig_type_enum sig_type, kal_int32 sig_value_in_qdbm);
+extern kal_int16 l4c_get_lte_signal_level(l4c_eval_cell_power_level_ind_struct *msg_ptr, l4c_sig_type_enum sig_type);
+extern kal_int32 l4c_get_nr_signal_level(l4c_nrrc_cell_power_level_ind_struct *msg_ptr, l4c_sig_type_enum sig_type);
+
+extern kal_bool l4c_nw_cops_get_current_plmn_id(kal_uint8 *oper);
+extern kal_bool l4c_duplex_mode_is_cpin_allowed(kal_uint8 channel_id);
+
+extern l4_ps_config_result_enum l4c_nw_ps_attach_config_result(void);
+
+extern void* l4c_alloc_ctrl_buffer(unsigned int size);
+extern void l4c_free_ctrl_buffer(void *ptr);
+
+extern kal_bool l4c_queue_remove_item_by_index(lcd_lqueue *queue, kal_uint32 delete_idx);
+extern l4c_queue_pending_action_item_struct* l4c_queue_get_first_pending_item(void);
+
+extern kal_uint16 l4c_get_num_of_pending_action_hdlr_item_table(void);
+extern const l4c_queue_pending_action_hdlr_item_struct *l4c_get_pending_action_hdlr_item_table(void);
+
+extern kal_bool l4c_enqueue_pending_action_item(l4c_pending_action_enum pending_action, void *data);
+extern kal_bool l4c_dequeue_pending_action_item(void);
+extern void l4c_queue_print_all_pending_action(void);
+
+extern kal_bool l4c_is_limited_service_rule_by_sim_type(protocol_id_enum ps_id, sim_operator_type_enum card_type,
+ rat_enum rat_mode, ims_cap_rat_enum ims_voice_rat,
+ kal_uint8* camped_plmn);
+
+extern mm_user_search_type_enum l4c_nw_get_ue_current_search_type();
+
+extern kal_bool l4c_dequeue_attach_action(void *data);
+extern kal_bool l4c_dequeue_detach_action(void *data);
+
+extern kal_bool l4c_enqueue_ps_attach_action(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_ps_attach_action(void *data);
+extern kal_bool l4c_enqueue_ps_detach_action(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_ps_detach_action(void *data);
+
+
+extern kal_bool l4c_nw_trigger_attach_action(l4c_source_id_enum src_id, mm_user_search_cause_enum search_cause);
+extern kal_bool l4c_nw_trigger_detach_action(l4c_source_id_enum src_id, domain_id_enum service,
+ l4c_rac_detach_cause_enum detach_cause, kal_bool is_poweroff);
+
+extern kal_bool l4c_nw_trigger_ps_attach_action(kal_bool follow_on_request);
+extern kal_bool l4c_nw_trigger_ps_detach_action(void);
+
+extern kal_bool l4c_reset_l4_eq_context(sim_interface_enum sim_ps_id);
+
+/* __KOR_CUSTOMIZATION__ */
+extern void l4c_get_ecc_sc( void * ecc_retry_setup_ptr );
+extern kal_bool l4c_is_plmn_changed(plmn_id_struct *plmn_id_ptr);
+extern void l4c_update_kormno_fake_nw_ecc( plmn_id_struct * plmn_id_ptr );
+/* __KOR_CUSTOMIZATION__ */
+
+extern kal_bool l4c_disable_rat_with_ecc_validator(rat_enum disable_rat);
+
+extern rsvas_id_enum l4c_get_rsvas_id(void);
+
+extern void l4c_nw_non_ps_occupy_rsva_start_timer_hdlr(kal_uint32 time_in_sec);
+extern void l4c_nw_non_ps_occupy_rsva_stop_timer_hdlr(void);
+#ifdef __CHR_AB_INFO__
+extern void l4c_epsnlte_start_timer_hdlr(l4c_timer_id_enum timer, kal_uint8 time);
+extern void l4c_epsnlte_stop_timer_hdlr(l4c_timer_id_enum timer);
+extern void l4c_epsnlte_timeout_hdlr(void);
+#endif /* __CHR_AB_INFO__ */
+
+extern kal_bool l4c_get_is_op01_sim_lock(kal_uint8 ps_id);
+extern kal_bool l4c_get_is_op01_rat_lock(kal_uint8 ps_id);
+extern void l4c_send_op01_lock_cnf(kal_bool result);
+extern kal_bool l4c_deque_op01_sim_lock_action(void *data);
+extern kal_bool l4c_deque_op01_sim_unlock_action(void *data);
+extern kal_bool l4c_deque_op01_rat_lock_action(void *data);
+extern kal_bool l4c_deque_op01_rat_unlock_action(void *data);
+extern kal_bool l4c_triger_op01_sim_lock_detach();
+extern kal_bool l4c_triger_op01_sim_unlock_attach();
+extern kal_bool l4c_triger_op01_rat_lock_exe();
+extern kal_bool l4c_triger_op01_rat_unlock_exe();
+extern kal_bool l4c_enqueue_op01_lock_action(l4c_queue_pending_action_item_struct *pending_action_item);
+
+extern kal_bool l4c_triger_lock_detach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_triger_unlock_attach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+
+extern kal_bool l4c_dequeue_imei_meid_lock_detach_action(void *data);
+extern kal_bool l4c_dequeue_imei_meid_lock_attach_any_action(void *data);
+extern kal_bool l4c_dequeue_imei_meid_unlock_attach_action(void *data);
+extern kal_bool l4c_enqueue_imei_meid_lock_action(l4c_queue_pending_action_item_struct *pending_action_item);
+
+extern kal_bool l4c_nw_triger_force_change_rat(l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_enqueue_force_change_rat_action(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_force_change_rat_action(void *data);
+
+extern void l4c_op01_check_rat_mode_and_prefer_rat(rat_enum* rat_mode, rat_enum* prefer_rat);
+extern rat_enum l4c_op01_check_rat_mode(rat_enum rat_mode);
+extern void l4c_nw_clear_ims_nw_feature_support_context();
+extern kal_bool l4c_ss_check_if_SS_operation_on_another_stack();
+
+extern void l4c_sim_cal_ps_sim_map(kal_uint8 master_sim_bitmask, kal_uint8 *ps_sim_map);
+extern kal_uint8 l4c_sim_cal_master_sim_bitmask(kal_uint8 *ps_sim_map);
+
+extern kal_uint8 l4c_sim_query_tray_info(kal_uint8 sim_interface);
+
+#if defined(__MODEM_EM_MODE__)
+extern kal_uint32 l4c_em_destination(ilm_struct *ilm_ptr);
+#endif
+
+#if defined(__TC10__) && defined(__IPC_ADAPTER__)
+extern kal_bool oem_get_imei_verification(void);
+#endif
+
+#if !defined(__MTK_TARGET__)
+extern void l4c_ut_set_master_sim_id(sim_interface_enum simId);
+#endif
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+extern kal_bool l4c_ms_black_list_lock_detach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_ms_black_list_unlock_detach(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+
+extern kal_bool l4c_dequeue_ms_black_list_lock_detach_action(void *data);
+extern kal_bool l4c_dequeue_ms_black_list_lock_attach_any_action(void *data);
+extern kal_bool l4c_dequeue_ms_black_list_unlock_attach_action(void *data);
+extern kal_bool l4c_dequeue_ms_black_list_unlock_detach_action(void *data);
+extern kal_bool l4c_enqueue_ms_black_list_lock_action(l4c_queue_pending_action_item_struct *pending_action_item);
+#endif
+
+/*****************************************************************************
+* FUNCTION
+* l4c_check_protocol_supported()
+* DESCRIPTION
+* This function checks if the input protocol is supported.
+* AP may send AT+ESADM to assign which protocols should be supported.
+*
+* PARAMETERS
+* ps_id [IN] protocol ID to be queried
+*
+* RETURNS
+* kal_bool : The function returns TRUE when the protocol is supported.
+*****************************************************************************/
+extern kal_bool l4c_check_protocol_supported(protocol_id_enum ps_id);
+
+extern kal_bool l4c_check_is_sml_verify_action(protocol_id_enum ps_id);
+
+#ifdef __GEMINI__
+extern void l4c_nw_mspm_request_occupy(mspm_procedure_enum mspm_procedure);
+extern void l4c_nw_mspm_request_release(mspm_procedure_enum mspm_procedure);
+#endif /* __GEMINI__ */
+
+extern kal_uint8 l4c_cc_check_sim_interface(void);
+
+#ifdef __L4C_GPRS_UT__
+extern kal_bool l4c_is_test_sim_ut(void);
+#endif
+
+extern kal_uint8 l4c_get_ps_id_imei_meid_blocked_source(void);
+extern rat_enum l4c_get_rat_imei_meid_blocked_source(void);
+extern kal_bool l4c_is_rat_change_needed(kal_uint8 *mcc, rat_enum rat_mode);
+
+extern l4c_rat_group_enum l4c_get_rat_group(rat_enum rat);
+extern ims_rat_type_enum l4c_convert_rat_to_ims_rat(rat_enum rat, rat_duplex_type_enum duplex_type);
+
+extern l4c_data_bearer_capablility_enum l4c_nw_convert_data_speed_to_capability(data_speed_support_enum cell_data_speed_support);
+
+extern void l4c_nw_reg_state_debug_info(reg_state_ind_struct reg_state);
+
+extern kal_uint32 l4c_convert_area_code_to_at(cell_info_and_rat_struct cell_info);
+extern kal_uint64 l4c_convert_cell_id_to_at(cell_info_and_rat_struct cell_info);
+extern kal_uint8 l4c_convert_ra_code_to_at(cell_info_and_rat_struct cell_type);
+extern kal_uint16 l4c_convert_lac_to_at(kal_uint8* la_code_ptr);
+
+
+extern void l4c_nw_update_cs_reg_state_context(kal_uint8 state, kal_uint8 act,
+ data_speed_support_enum cell_data_speed_support,
+ kal_uint32 lac_or_tac, kal_uint64 cell_id,
+ kal_uint8 rac, kal_uint8 cause_type, kal_uint32 reject_cause,
+ kal_uint8 *plmn, kal_bool is_hplmn);
+
+extern void l4c_nw_update_ps_reg_state_context(kal_uint8 state, kal_uint8 act,
+ data_speed_support_enum cell_data_speed_support,
+ kal_uint32 lac_or_tac, kal_uint64 cell_id,
+ kal_uint8 rac, kal_uint8 cause_type, kal_uint32 reject_cause,
+ kal_uint8 *plmn, kal_bool is_hplmn,
+ kal_uint8 vgmm_allowed_nssai_length, kal_uint8* vgmm_allowed_nssai);
+
+
+extern void l4c_nw_update_reg_state_context(reg_state_ind_struct reg_state);
+
+
+/* L4C submodules MUST call l4c_phb_send_approve_req()
+ to send MSG_ID_L4CPHB_APPROVE_REQ with approve_src. */
+extern void l4c_phb_send_approve_req(l4c_phb_approve_src_enum approve_src,
+ l4cphb_approve_req_struct *l4cphb_approve_req_ptr,
+ kal_uint8 *buffer_ptr);
+
+extern kal_uint8 l4c_get_num_of_phb_approve_cnf_callback_table(void);
+extern const l4c_phb_approve_cnf_callback_struct *l4c_get_phb_approve_cnf_callback_table(void);
+
+/*****************************************************************/
+/* Beginning of callback functions for MSG_ID_L4CPHB_APPROVE_CNF */
+/*****************************************************************/
+extern void l4ccsm_cc_call_setup_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4c_ps_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4csmsal_sms_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4ccsm_ciss_parse_ss_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4ccsm_ciss_cusd_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+extern void l4cphb_eapprove_phb_approve_cnf(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr);
+/***********************************************************/
+/* End of callback functions for MSG_ID_L4CPHB_APPROVE_CNF */
+/***********************************************************/
+
+extern void l4c_update_ecc_call_id_for_srvcc(kal_uint8 call_id);
+
+
+extern kal_bool l4c_nw_is_service_mode_change_redundant(l4c_action_enum action, smu_sim_inserted_enum sim_status);
+extern void l4c_nw_service_mode_change_exe();
+extern void l4c_nw_service_mode_change_reattach();
+extern kal_bool l4c_nw_is_ps_attach_lock(kal_uint8 ps_id);
+
+extern void l4c_trace_function_name_and_return_line(const kal_char *function_name, kal_uint32 line, kal_bool return_value);
+extern rat_enum l4c_query_prefer_rat_mode_by_ps_id(protocol_id_enum ps_id);
+extern rat_enum l4c_query_rat_mode_by_ps_id(protocol_id_enum ps_id);
+
+extern kal_uint8 l4c_get_bit_mask(kal_uint8* bit_mask_array, l4c_source_id_enum src_id);
+extern void l4c_set_bit_mask(kal_uint8* bit_mask_array, l4c_source_id_enum src_id, kal_uint8 value);
+
+extern void l4c_sim_free_sim_parameter(void);
+
+extern kal_bool l4c_find_sms_category_for_mt_sms(peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_find_sms_category_for_mo_sms(peer_buff_struct *peer_buff_ptr);
+extern kal_bool l4c_find_sms_category_for_cmss(peer_buff_struct *peer_buff_ptr);
+
+#ifdef __TC01__
+extern kal_bool l4c_check_emergency_call_exists(void);
+#endif /*__TC01__*/
+
+extern void l4c_nw_antenna_state_report_start_timer_hdlr(void);
+extern void l4c_nw_antenna_state_timerout_hdlr();
+
+
+extern void l4c_update_scp_monitor_data(l4c_scp_monitor_enum input);
+
+extern void l4c_convert_call_type_to_scp_enum(csmcc_cpi_msg_type_enum cpi_ind_value);
+
+extern kal_uint8 l4c_get_scp_monitor_value(void);
+
+extern kal_bool l4c_get_uac_free_transaction(kal_uint8 *id);
+extern kal_bool l4c_query_uac_transaction_id(kal_uint8 src_tx_id, module_type src, kal_uint8 *ret_tx_id);
+
+extern kal_uint8 l4c_convert_rf_and_sim_state_to_cfun(l4_rf_state_enum rf_state, l4_sim_state_enum sim_state);
+
+extern void l4c_send_phone_state_cnf(kal_bool result, kal_uint16 cause);
+extern void l4c_send_phone_state_cnf_to_l4bpwr_with_monitor(kal_bool result, kal_uint16 cause);
+
+extern kal_bool l4c_get_nitz_information(l4c_nw_time_zone_time_struct *nitz_ptr);
+extern void l4c_nw_deactivate_endc(kal_bool deactivate, kal_bool allow_scg_add);
+extern kal_int8 l4c_get_efun_rfoff_cause(void);
+
+
+#if defined(__SENSITIVE_DATA_MOSAIC__)
+extern sap_type l4c_check_sensitive_data_msg(msg_type msg_id,sap_type sap_id);
+#endif
+
+#ifdef __CB__
+extern kal_bool l4c_smsal_add_cb_channels(l4c_cb_info_struct *info);
+extern kal_bool l4c_smsal_remove_cb_channels(l4c_cb_info_struct *info);
+extern kal_bool l4c_smsal_construct_cb_configuration(kal_uint8 mode,l4c_cb_info_struct *info,kal_uint8 *error_cause);
+#endif
+
+extern kal_bool l4c_nw_is_home_country();
+
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+extern void l4c_clear_camera_earfcn_info(void);
+extern void l4c_camera_report_call_ind (kal_bool is_call_present);
+#endif
+
+extern kal_bool l4c_negative_switch_hvolte_mode_by_dereg_cause(kal_uint8 dereg_cause);
+#ifdef __TC01__
+extern kal_bool l4c_get_bearer_id(const kal_uint8 cid, kal_uint8 *bearer_id);
+#endif /* __TC01__ */
+
+extern void l4c_nw_set_ia_pdn_info(l4c_ia_pdn_info_struct* ia_pdn_info);
+
+extern kal_bool l4c_nw_is_ue_capability_ind_procedure_conflict();
+extern kal_bool l4c_ue_capability_detach_attach();
+extern kal_bool l4c_enqueue_ue_capability_exe(l4c_queue_pending_action_item_struct *pending_action_item);
+extern kal_bool l4c_dequeue_ue_capability_exe(void *pending_action_item);
+
+#if defined (__TC01__) && defined (__SGLTE__) // at%ltecall
+extern kal_bool l4c_check_ps_attach_allowed();
+#endif
+
+extern kal_uint8 l4c_skip_invalid_characters(kal_uint8 *number);
+
+extern kal_bool l4c_is_standalone_duplex_mode_change_last_time();
+extern void l4c_clear_standalone_duplex_mode_change_context();
+
+#ifdef __FEATURE_SAMSUNG_RF_SAR_EUR_CHK__
+extern void l4c_nw_mcc_for_pwr_backoff_feature(kal_uint8 *plmn);
+#endif
+
+#ifdef __TC10__
+extern kal_bool l4c_is_md_ready(void);
+extern void l4c_nw_register_nitz_callback(l4c_nw_register_nitz_cb nitz_cb);
+#endif /* __TC10__ */
+
+extern l4c_power_level_threshold_range_enum l4c_get_threshold_range(kal_uint8 index);
+
+extern l4c_power_level_threshold_range_enum l4c_check_signal_value_range(kal_int32 sig_value, kal_uint8 sig_type);
+extern void l4c_smu_get_mcc_mnc_str(kal_char * mcc_mnc);
+
+
+extern kal_bool l4c_is_threshold_changed(iwlan_l4c_set_pwl_thrhd_req_struct *current_threshold,
+ l4c_pwl_thrhd_struct *previous_threshold);
+
+#if defined(__CT_HVOLTE_DEFAULT_VOPS_MODE__)
+extern kal_bool l4c_is_set_hvolte_context_by_sim_card();
+#endif
+extern kal_uint16 l4c_get_mcc_from_plmn_found(void);
+
+kal_bool l4c_is_limited_service_rule_by_sim_type(protocol_id_enum ps_id, sim_operator_type_enum card_type,
+ rat_enum rat_mode, ims_cap_rat_enum ims_voice_rat, kal_uint8* camped_plmn);
+
+extern kal_bool l4c_triger_lock_attach_any(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+extern kal_bool l4c_nssai_convert_hexstring_to_digit(kal_uint8 *dest, kal_uint8 *source, kal_uint8 *length_in_octets);
+extern kal_uint8 l4c_nssai_convert_digit_to_hexstring(kal_uint16 max_size, kal_uint8 *dest, kal_uint8 *source, kal_uint8 length_in_octets, kal_bool is_rejected_nssai);
+
+extern void l4c_send_icd_epsfbs_event(kal_uint8 state, kal_uint8 type);
+
+extern kal_char* l4c_ps_add_plmn_list_block_apn(kal_uint8 cid);
+
+extern void l4c_ps_clear_plmn_list_block_apn(ps_cause_enum cause);
+
+extern void l4c_ps_send_pam_backoff_timer_report_ind(kal_bool is_reset, ps_cause_enum cause, kal_char *apn);
+
+extern void l4c_notify_end_of_plmn_list();
+
+extern rat_enum l4c_check_ef_rat_to_config_vg_option(rat_enum old_rat_mode);
+
+#ifdef __TC01__
+extern void l4c_nw_update_pdn_act_cnf_status(kal_bool is_success);
+#endif
+
+extern kal_bool l4c_is_plmn_id_valid(l4c_plmn_type_enum plmn_type, kal_uint8* plmn_array, plmn_id_struct* plmn_mcc_mnc);
+
+extern rat_enum l4c_tc10_rat_mode_validator(kal_uint8 src_id, rat_enum old_rat_mode);
+
+extern kal_uint8 l4c_get_cli_validity(l4ccsm_cc_peer_addr_struct *calling_number, kal_uint8 calling_number_present, kal_uint8 no_cli_cause_present, kal_uint8 no_cli_cause);
+
+extern rat_enum l4c_rat_change_for_oper_nw_validator(kal_uint8 src_id, rat_enum old_rat_mode);
+
+extern kal_bool l4c_check_rat_mode_save_to_nvram(kal_uint8 src_id);
+extern kal_bool l4c_nw_get_rat_mode_save_to_nvram_statues(void);
+extern void l4c_update_rfoff_cnf_context();
+extern kal_bool l4c_nw_check_rat_change_needed();
+extern void l4c_lte_only_timeout_hdlr(void);
+extern void l4c_stop_lte_rat_mode_change_timer_hdlr(void);
+extern void l4c_start_lte_rat_mode_change_timer_hdlr(void);
+extern kal_bool l4c_custom_rat_setting_needed();
+extern kal_bool l4c_nw_check_rat_change_needed_for_docomo(kal_uint8 *plmn);
+
+void l4c_nw_check_service_change_on_vops_setting(ims_cap_rat_enum old_ims_voice_rat, ims_cap_rat_enum new_ims_voice_rat,
+ kal_uint8* old_camped_plmn, kal_uint8* new_camped_plmn);
+
+extern void l4c_check_vg_option_setting_with_sase(vg_option_enum vg_option, kal_uint8 src_id);
+extern void l4c_update_vg_option_to_rac(vg_option_enum vg_option, kal_uint8 act_operation, kal_uint8 src_id, module_type user);
+#ifdef __WHITE_CELL_LOCK__
+extern kal_uint32 l4c_nw_band_bit_mask_to_array (rat_enum rat,
+ kal_uint32 *band_bit_mask_table,
+ nw_scan_band_enum *band_array_ptr,
+ kal_uint16 bit_mask_size,
+ kal_uint16 int_arr_len);
+#endif /* __WHITE_CELL_LOCK__ */
+
+extern kal_bool l4c_triger_lock_attach_any(l4c_action_enum l4c_action, l4c_pending_action_enum pending_queue_action);
+
+extern kal_char* l4c_ps_add_plmn_list_block_apn(kal_uint8 cid);
+extern void l4c_ps_clear_plmn_list_block_apn(ps_cause_enum cause);
+extern void l4c_ps_send_pam_backoff_timer_report_ind(kal_bool is_reset, ps_cause_enum cause, kal_char *apn);
+
+extern void l4c_notify_end_of_plmn_list();
+
+extern kal_uint32 l4c_ps_get_apn_type_by_cid(protocol_id_enum ps_id, kal_uint8 cid);
+
+extern void l4c_set_mo_disc_cause(kal_uint16 disc_cause);
+
+#ifdef __ECALL_SUPPORT__
+extern kal_bool l4c_get_usim_ecall_number(l4_addr_bcd_struct *called_number,kal_uint8 ecc_info);
+#endif /* __ECALL_SUPPORT__ */
+
+#ifdef __NG_ECALL_SUPPORT__
+extern void l4c_convert_addr_bcd_to_ascii(l4_addr_bcd_struct *source, kal_uint8 *dest);
+extern kal_bool l4c_get_usim_ecall_uri(l4_phb_uri_struct *usim_uri, kal_uint8 ecc_info);
+extern kal_bool l4c_get_ecall_ims_uri(kal_uint8 *output_string,kal_uint8 *type, kal_uint8 ecc_info);
+#endif /* __NG_ECALL_SUPPORT__ */
+
+extern void l4c_root_power_off_req(kal_uint8 root_src_id);
+extern void l4c_root_power_off_done_ind(kal_uint8 root_src_id);
+
+extern kal_bool l4c_root_cmd_conflict(kal_uint8 src_id, l4c_root_action_enum new_action);
+
+extern kal_int32 l4c_get_signal_value_by_type(l4c_sig_type_enum signal_type);
+
+extern kal_int32 l4_snprintf(kal_char *buffer, kal_uint32 size, const char *fmt, ...);
+
+extern void l4c_start_wait_on_lte_paging_timer(void);
+
+extern void l4c_wait_on_lte_paging_timeout_hdlr(void);
+extern kal_bool l4c_check_rat_change_feature_enable();
+extern void l4c_custom_config_fd_setting(protocol_id_enum ps_id);
+extern kal_bool l4c_is_emergency_call_ongoing(protocol_id_enum ps_id);
+
+extern void l4c_nw_set_pco_5guw_allow(kal_bool is_5guw_allow);
+extern void l4c_nw_5guw_set_is_ultra_wb_configure(kal_bool is_n77_configured, kal_bool is_fr2_configured, kal_bool is_nrrc_enter_conn);
+extern void l4c_nw_update_5guw_state_errc_idle_to_conn(void);
+extern void l4c_nw_update_5guw_state_errc_conn_to_idle(void);
+extern void l4c_nw_update_5guw_state_uli_disappear(void);
+extern void l4c_nw_re_calculate_and_update_5guw_display(void);
+extern void l4c_nw_stop_tuw_timer(l4c_timer_id_enum timer_id);
+extern void l4c_nw_start_tuw_timer(l4c_timer_id_enum timer_id);
+extern void tuw_1_timer_timeout_hdlr();
+extern void tuw_2_timer_timeout_hdlr();
+extern void tuw_3_timer_timeout_hdlr();
+extern void l4c_nw_reset_5guw_context();
+#ifdef __EPSFB_SUPPORT__
+extern kal_bool l4c_is_epsfb_needed(protocol_id_enum ps_id, rat_type_enum source_rat, rat_type_enum target_rat, irat_type_enum ir_type);
+#endif
+extern kal_bool l4c_is_call_ongoing_over_wifi();
+#endif /* _L4C_UTILITY_H */ /* l4c_utility.h */
diff --git a/mcu/protocol/interface/l4misc/l5_l4c_enums.h b/mcu/protocol/interface/l4misc/l5_l4c_enums.h
new file mode 100644
index 0000000..343d6d7
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l5_l4c_enums.h
@@ -0,0 +1,100 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l5_l4c_enums.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+****************************************************************************/
+
+#ifndef _L5_L4C_ENUMS_H
+#define _L5_L4C_ENUMS_H
+
+
+#ifdef __L5_SUPPORT__
+
+#include "as_inter_core_enum.h"
+#include "mrs_common_capability.h"
+
+
+/*********** MACROS *************************************************************/
+
+#define LTE_BAND_BITMASK_MAX_SUPPORT_SIZE (SIZE_LTE_BAND_MASK_TABLE_EXTENDED/4) /* 32*8: band 1 ~ band 256 */
+#define NR_BAND_BITMASK_MAX_SUPPORT_SIZE (MRS_NR_BAND_BITMASK_SIZE/4) /* 32*32: band 1 ~ band 1024 */
+#define MAX_LTE_RAN_CELL_LIST 32
+#define MAX_NR_RAN_CELL_LIST 32
+
+
+/************ TYPES DEFINITIONS **************************************************/
+
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+typedef enum {
+ NW_BLACK_LIST_STATE_NOT_ACTUATED,
+ NW_BLACK_LIST_SIM_PROVIDER_ACTUATED,
+ NW_BLACK_LIST_NETWORK_PROVIDER_ACTUATED
+} nw_black_list_state_enum;
+
+typedef enum{
+ NW_BLACK_LIST_TYPE_SIM,
+ NW_BLACK_LIST_TYPE_NETWORK
+}nw_black_list_type_enum;
+
+typedef enum{
+ NW_BLACK_LIST_INIT_NULL,
+ NW_BLACK_LIST_INIT_SIM,
+ NW_BLACK_LIST_INIT_NW,
+ NW_BLACK_LIST_INIT_DONE
+}nw_black_list_init_state_enum;
+#endif
+
+#endif
+
+#endif /* _L5_L4C_ENUMS_H */
diff --git a/mcu/protocol/interface/l4misc/l5_l4c_struct.h b/mcu/protocol/interface/l4misc/l5_l4c_struct.h
new file mode 100644
index 0000000..b76df59
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/l5_l4c_struct.h
@@ -0,0 +1,190 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * l5_l4c_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+****************************************************************************/
+
+#ifndef _L5_L4C_STRUCT_H
+#define _L5_L4C_STRUCT_H
+
+#ifdef __L5_SUPPORT__
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ps_public_enum.h"
+#include "l5_l4c_enums.h"
+#include "rac2l4c_struct.h"
+#include "mmrf_msg_interface.h"
+
+#ifdef __MBIM_MS_NETWORK_BLACKLIST__
+
+typedef struct{
+ kal_uint16 mcc;
+ kal_bool is_2_digit_mnc;
+ kal_uint16 mnc;
+ nw_black_list_type_enum list_type;
+}nw_black_list_provider_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 transaction_id;
+ kal_uint8 num_of_black_list;
+ nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+}l5_l4c_set_nw_black_list_req_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 transaction_id;
+ nw_black_list_operator_result_enum result;
+}l5_l4c_set_nw_black_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 transaction_id;
+}l5_l4c_get_nw_black_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 transaction_id;
+ nw_black_list_operator_result_enum result;
+ kal_uint8 num_of_black_list;
+ nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+}l5_l4c_get_nw_black_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ nw_black_list_state_enum black_list_state;
+ kal_uint8 num_of_black_list;
+ nw_black_list_provider_struct black_list[MAX_NW_BLACK_LIST];
+}l5_l4c_nw_black_list_state_ind_struct;
+#endif
+
+typedef struct {
+ kal_uint16 pci;
+ kal_uint32 earfcn;
+}lte_ran_cell_info_struct;
+
+typedef struct {
+ kal_uint16 pci;
+ kal_uint32 narfcn;
+ kal_uint16 nr_band_indicator;
+}nr_ran_cell_info_struct;
+
+/*struct defined for MSG_ID_L5_L4C_CELL_LIST_REQ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 transaction_id;
+ /* Lte band list bitmask array */
+ kal_uint32 lte_band_list[LTE_BAND_BITMASK_MAX_SUPPORT_SIZE];
+ /* NR band list bitmask array */
+ kal_uint32 nr_band_list[NR_BAND_BITMASK_MAX_SUPPORT_SIZE];
+ /* if TRUE nr_endc_band_list is present */
+ kal_bool nr_endc_band_list_present;
+ /* NR ENDC band list bitmask array */
+ kal_uint32 nr_endc_band_list[NR_BAND_BITMASK_MAX_SUPPORT_SIZE];
+ /* Lte cell list number*/
+ kal_uint8 num_of_lte_cell;
+ /* NR cell list number*/
+ kal_uint8 num_of_nr_cell;
+ /* Lte cell list */
+ lte_ran_cell_info_struct lte_cell_list[MAX_LTE_RAN_CELL_LIST];
+ /* NR cell list */
+ nr_ran_cell_info_struct nr_cell_list[MAX_NR_RAN_CELL_LIST];
+
+}l5_l4c_cell_list_req_struct;
+
+/*struct defined for MSG_ID_L5_L4C_CELL_LIST_CNF */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 transaction_id;
+ kal_bool result;
+
+}l5_l4c_cell_list_cnf_struct;
+
+/*struct defined for MSG_ID_L5_L4C_GET_RF_STATUS_REQ */
+typedef l4c_mmrf_get_rf_status_req_struct l5_l4c_get_rf_status_req_struct;
+
+/*struct defined for MSG_ID_L5_L4C_GET_RF_STATUS_CNF */
+typedef l4c_mmrf_get_rf_status_cnf_struct l5_l4c_get_rf_status_cnf_struct;
+#endif
+
+typedef struct
+{
+ kal_int16 srxlev_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
+ kal_int16 squal_in_qdb; /* range -32768 ~ 32767, invalid value:0x7fff */
+}ps_cell_srxlev_info_struct;
+
+
+/*struct defined for MSG_ID_L5_L4C_CELL_PWR_SRXLEV_IND */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 rat_mode; /* ref rat_enum, now support RAT_LTE/RAT_NR */
+ kal_uint8 is_srxlev_info_valid; /* wherther or not is srxlev info is valid. */
+ ps_cell_srxlev_info_struct ps_cell_srxlev_info; /* srxlex info*/
+
+}l5_l4c_cell_pwr_srxlev_ind_struct;
+
+#ifdef __L5_SUPPORT__
+typedef l4crac_set_allowed_mcc_list_req_struct l5_l4c_set_allowed_mcc_list_req_struct;
+typedef l4crac_set_allowed_mcc_list_cnf_struct l5_l4c_set_allowed_mcc_list_cnf_struct;
+typedef l4crac_set_pref_nssai_req_struct l5_l4c_set_pref_nssai_req_struct;
+typedef l4crac_set_pref_nssai_cnf_struct l5_l4c_set_pref_nssai_cnf_struct;
+typedef l4crac_set_nssai_req_struct l5_l4c_set_nssai_req_struct;
+typedef l4crac_set_nssai_cnf_struct l5_l4c_set_nssai_cnf_struct;
+typedef l4crac_get_nssai_req_struct l5_l4c_get_nssai_req_struct;
+typedef l4crac_get_nssai_cnf_struct l5_l4c_get_nssai_cnf_struct;
+typedef l4crac_vgmm_nw_params_ind_struct l5_l4c_vgmm_nw_params_ind_struct;
+
+#endif
+#endif /* _L5_L4C_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/layer4_context.h b/mcu/protocol/interface/l4misc/layer4_context.h
new file mode 100644
index 0000000..121522b
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/layer4_context.h
@@ -0,0 +1,167 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * layer4_context.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file is intends for ...
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+
+
+#ifndef _LAYER4_CONTEXT_H
+#define _LAYER4_CONTEXT_H
+
+//#include "l4c_context.h"
+//#include "rmmi_context.h"
+#include "kal_public_defs.h" //MSBB change #include "stack_config.h"
+//#include "l4c_hz_context.h"
+
+#include "global_def.h"
+
+#define L4_MAX_SIM_NUM (MAX_SIM_NUM)
+
+#define L4_MODULE(x,y) (module_type)((x) + (y))
+
+#define get_l4c_ptr_by_mod(mod_id) (&l4c_cntxt_g[mod_id - MOD_L4C])
+
+#define L4C_PTR_X(field, sim_interface) ((l4c_cntxt_g[sim_interface]).field)
+
+#define L4C_GET_SIM_ID(mod_id) ((kal_uint8)(mod_id-MOD_L4C))
+
+extern void layer4_module_context_selection(module_type mod_id);
+
+#endif /* layer4_context.h */
+
+
diff --git a/mcu/protocol/interface/l4misc/n3ans_l4bnw_struct.h b/mcu/protocol/interface/l4misc/n3ans_l4bnw_struct.h
new file mode 100644
index 0000000..8d30a15
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/n3ans_l4bnw_struct.h
@@ -0,0 +1,74 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * n3ans_l4bnw_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _N3ANS_L4BNW_STRUCT_H
+#define _N3ANS_L4BNW_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l4bnw_public_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4bnw_public_attached_network_info_struct attached_network_info;
+} n3ans_l4bnw_attached_rat_ind_struct;
+
+#endif /* _N3ANS_L4BNW_STRUCT_H */
diff --git a/mcu/protocol/interface/l4misc/phb_sap.h b/mcu/protocol/interface/l4misc/phb_sap.h
new file mode 100644
index 0000000..57568db
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/phb_sap.h
@@ -0,0 +1,101 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * phb_sap.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This is function declarations for L4CPHB SAP.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _PHB_SAP_H
+#define _PHB_SAP_H
+
+#include "kal_public_api.h"
+#include "l4c2phb_enums.h"
+#include "ps_public_enum.h"
+#include "kal_general_types.h"
+#include "l4c2phb_struct.h"
+#include "sim_common_enums.h"
+#include "phb_data_desc.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* Header files should be include before this one */
+#ifndef _L4C2PHB_ENUMS_H
+#error "l4c2phb_enums.h should be included"
+#endif
+
+/* This macro fetches word(32bits)-aligned value, the argument should be unsigned */
+#define get_32bits_aligned_val(x) (((kal_uint32)(x) + 3) & (~(0x03)))
+
+extern phb_errno_enum l4cphb_phonebook_status_req(
+ phb_storage_enum storage,
+ kal_uint16 *total,
+ kal_uint16 *available);
+extern phb_errno_enum l4cphb_status_req(phb_type_enum type, kal_uint16 *total, kal_uint16 *available);
+extern phb_errno_enum l4c_phb_get_file_info(kal_uint8 type, phb_storage_enum storage, l4cphb_file_info_struct* file_info, kal_uint8 occurrence);
+#ifdef __SIM_SEARCH_RECORD_SUPPORT__
+extern kal_bool l4c_phb_adn_entry_is_free(kal_uint16 index);
+extern kal_bool l4c_phb_stroage_entry_is_ocupied(kal_uint16 index, data_desc_enum desc);
+#endif
+extern kal_uint8 *l4cphb_alloc_peer_buf(peer_buff_struct **peer_buf_ptr, kal_uint16 count);
+
+extern kal_uint16 l4cphb_get_index_by_location(kal_uint8 type, kal_uint8 storage, kal_uint16 record_index);
+
+extern kal_bool l4cphb_get_alpha_list_req(phb_type_enum type, kal_uint16 *list);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PHB_SAP_H */
+
diff --git a/mcu/protocol/interface/l4misc/phb_utils.h b/mcu/protocol/interface/l4misc/phb_utils.h
new file mode 100644
index 0000000..c157ab5
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/phb_utils.h
@@ -0,0 +1,234 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * phb_utils.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file contains utility functions for PHB module.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ *******************************************************************************/
+#ifndef _PHB_UTILS_H
+#define _PHB_UTILS_H
+
+#include "kal_general_types.h"
+#include "ps_public_enum.h"
+#include "kal_public_api.h"
+#include "sim_ps_enum.h"
+#include "phb_defs.h"
+#include "l4c2phb_enums.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+
+/*#define PHB_TRACE(x,y) kal_trace y
+*/
+
+#define PHB_UTILS_INVALID_VALUE ~0
+
+#ifdef __TC10__
+#define MAX_KSC5601_NUM 12160
+#define KSC5601_PREFIX 0x81
+#endif
+/**
+ * Number of bytes should be retained for SIM encoding:
+ * 1. 0x80: 1 byte coding, 2 bytes 0xFF.
+ * 2. 0x81: 1 byte coding, 1 byte length, 1 byte code page offset.
+ * 3. 0x82: 1 byte coding, 1 byte length, 2 bytes cod page.
+ *
+ * This constant could be used for allocating buffer when invoking phb_encode_to_sim()
+ * to enconde characters into SIM.
+ */
+#define SIM_ENCODE_MARGIN 4
+
+typedef enum
+{
+ shift_down,
+ shift_up
+} shift_op_enum;
+
+/* The enumeration here uses values defined in 03.38 directly. */
+typedef enum
+{
+ CHARSET_ASCII = 0x00,
+ CHARSET_KSC5601 = 0x05,
+ CHARSET_UCS2 = 0x08,
+ CHARSET_UCS2_81 = 0x09, /* Add for extra handle for UCS2 0x81 */
+ CHARSET_UCS2_82 = 0x10 /* Add for extra handle for UCS2 0x82 */
+} istring_charset_enum;
+
+typedef struct
+{
+ kal_uint8 length;
+ kal_uint8 charset;
+ kal_uint8 *data;
+} istring_type;
+
+typedef enum
+{
+ CODING_AUTO,
+ CODING_DEFAULT_7BITS,
+ CODING_UCS2_80 = 0x80,
+ CODING_UCS2_81 = 0x81,
+ CODING_UCS2_82 = 0x82
+} sim_alpha_id_coding_enum;
+
+/**
+ * Shall returns an integer greater than, equal to, or less than 0, according to `first' is
+ * greater than, equal to, or less than `second'.
+ */
+typedef int (*bin_search_cmp_func_type) (void *external_data, int external_pos, void *key);
+
+/* Generic array shift functions */
+extern void table_shift(
+ kal_uint16 *used_count,
+ kal_uint16 *slots,
+ void *array,
+ kal_uint16 element_size,
+ shift_op_enum op,
+ kal_uint16 from);
+extern void table_range_shift(
+ kal_uint16 *used_count,
+ kal_uint16 *slots,
+ void *array,
+ kal_uint16 element_size,
+ shift_op_enum op,
+ kal_uint16 from,
+ kal_uint16 to);
+
+/* istring functions */
+#define phb_more_significant_char(x) (x >> 8 & 0xFF)
+#define phb_less_significant_char(x) (x & 0xFF)
+extern kal_uint8 istring_encode_to_sim(
+ sim_alpha_id_coding_enum coding,
+ istring_type *istr,
+ kal_uint8 buffer_len,
+ kal_uint8 *buffer);
+extern kal_uint8 istring_decode_from_sim(kal_uint8 raw_data_len, kal_uint8 *raw_data, istring_type *decoded_str);
+extern kal_uint8 istring_decode_0x81_to_0x80(
+ kal_uint8 raw_data_len,
+ kal_uint8 *raw_data,
+ istring_type *decoded_str);
+extern kal_uint8 istring_decode_0x82_to_0x80(
+ kal_uint8 raw_data_len,
+ kal_uint8 *raw_data,
+ istring_type *decoded_str);
+extern kal_uint8 istring_len(istring_type *istr);
+extern kal_uint16 istring_char_at(istring_type *istr, kal_uint8 offset);
+
+extern kal_bool is_chars_equal(kal_uint16 char1, kal_uint16 char2);
+extern kal_int32 compare_chars(kal_uint16 char1, kal_uint16 char2);
+
+/* BCD functions */
+#define phb_more_significant_nibble(x) (x >> 4 & 0x0F)
+#define phb_less_significant_nibble(x) (x & 0x0F)
+
+extern kal_uint16 bcd2string(kal_uint8 length, kal_uint8 *tel_number, char *bcd_array);
+extern kal_uint8 bcd2char(kal_uint8 bcd);
+extern kal_uint16 get_next_bcd_digit(
+ kal_uint8 *bcd_array,
+ kal_uint16 offset,
+ kal_bool *is_first,
+ kal_uint8 *digit);
+extern kal_int8 compare_n_string_bcd(char const *str, kal_uint8 *bcd_array, kal_uint16 len);
+extern kal_int8 compare_n_bcd(kal_uint8 *first_bcd_array, kal_uint8 *second_bcd_array, kal_uint16 n);
+extern kal_int8 compare_n_bcd_for_wild_char(kal_uint8 *first_bcd_array, kal_uint8 *second_bcd_array, kal_uint16 n);
+extern kal_bool phb_compare_bcd_for_wild_char(kal_uint8 length1, kal_uint8 length2, kal_uint8 *bcd1, kal_uint8 *bcd2);
+extern kal_int16 bcd_len(kal_uint8 *bcd_array, kal_uint16 n);
+extern kal_int16 bcd_exact_len(kal_uint8 *bcd_array, kal_uint16 n);
+
+/* Check whether each byte of ptr are all 0x0F */
+extern kal_bool is_empty(kal_uint8 *ptr, kal_uint16 len);
+
+extern kal_uint32 phb_abs(kal_int32 val);
+
+extern int binary_search(void *collection[], int low, int high, void *key, bin_search_cmp_func_type compare_func);
+
+extern char *find_pinying_str_for_ucs2(kal_uint16 ucs2_code);
+
+extern kal_bool find_pinyin_str_for_ucs2_with_tone(kal_uint8 *inputString, kal_uint8 *outputString);
+
+extern kal_bool find_pinyin_str_for_ucs2_without_tone(kal_uint8 *inputString, kal_uint8 *outputString);
+/* End MTK */
+
+extern kal_bool phb_is_prefix(alpha_id_type *target, alpha_id_type *candidate);
+
+extern kal_uint8 phb_which_sim_ex(void);
+extern phb_storage_enum phb_which_sim_storage(void);
+extern kal_uint8 phb_util_is_usim(kal_uint8 sim_num);
+extern phb_type_enum phb_util_get_type(kal_uint16 file_idx);
+#ifdef __CDMA2000_RAT__
+extern kal_bool phb_util_is_csim(kal_uint8 sim_num);
+extern kal_bool phb_util_is_cdma_card(void);
+extern kal_bool phb_UIM_service_table_Query(kal_uint8 sst_id);
+extern kal_bool phb_UIM_service_table_Query_by_ps_id(kal_uint8 sst_id, protocol_id_enum ps_id);
+extern sim_dn_enum phb_UIM_get_dial_mode(void);
+extern sim_dn_enum phb_UIM_get_dial_mode_by_ps_id(protocol_id_enum ps_id);
+#endif
+
+kal_uint8 phb_map_sim(kal_uint8 sim);
+
+ /* 03.38 encodes charset information into bit 3 and 2 */
+#define get_0338_charset_bits(x) (x & 0x1C)
+
+void phb_get_mcc_mnc_from_imsi(kal_uint8 *dest_ptr, kal_uint8 *imsi);
+
+#if defined(__CDMA2000_RAT__)
+ extern kal_bool phb_try_csim_fdn(sim_file_index_enum file_idx);//, kal_uint8 ctrl_block_id);
+ extern kal_bool phb_try_csim_fdn_by_ps_id(sim_file_index_enum file_idx, protocol_id_enum ps_id);
+ extern kal_bool phb_util_is_usim_csim(kal_uint8 sim_num);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PHB_UTILS_H */
+
diff --git a/mcu/protocol/interface/l4misc/rmmi_context.h b/mcu/protocol/interface/l4misc/rmmi_context.h
new file mode 100644
index 0000000..2e93695
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/rmmi_context.h
@@ -0,0 +1,1525 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * rmmi_context.h
+ *
+ * Project:
+ * --------
+ * MT6208
+ *
+ * Description:
+ * ------------
+ * This file is intends for �K.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _RMMI_CONTEXT_H
+#define _RMMI_CONTEXT_H
+
+#include "l4c_common_enum.h"
+
+
+#include "ps2sat_struct.h"
+#include "ps_public_struct.h"
+#include "l3_inc_enums.h"
+#include "as2l4c_struct.h"
+#include "rmmi_common_enum.h"
+#include "fs_type.h"
+
+#include "kal_general_types.h"
+#include "cmux_vp_num.h"
+#include "ps_public_enum.h"
+#include "kal_public_api.h"
+
+#include "l4c2phb_struct.h"
+#include "l4c_aux_struct.h"
+
+#include "med_struct.h"
+#include "l4crac_enums.h"
+
+#include "sim_public_enum.h"
+#include "rmmi_struct.h"
+#include "smu_common_enums.h"
+#include "kal_public_defs.h"
+#include "c2k_irat_msg_struct.h"
+
+/* CONSTANTS */
+
+#define NULL_TERM '\0' /* string termination */
+#define INVALID_ENUM 255 /* invalid enum value */
+
+#define RMMI_PTR rmmi_ptr_g
+#define RMMI_COMM_PTR rmmi_common_ptr_g
+
+#define rmmi_skip_spaces(source_string_ptr) \
+ while( source_string_ptr->string_ptr[ source_string_ptr->index ] \
+ == RMMI_SPACE ) \
+ { \
+ source_string_ptr->index++; \
+ }
+//030617 mtk00468 add for skip unused character before character a
+#define rmmi_skip_none_a(source_string_ptr, length) \
+ while( (source_string_ptr->index < length) && !((source_string_ptr->string_ptr[ source_string_ptr->index ] == RMMI_CHAR_A) ||\
+ (source_string_ptr->string_ptr[ source_string_ptr->index ] == rmmi_char_a)) ) \
+ { \
+ source_string_ptr->index++; \
+ }
+
+#define RMMI_IS_LOWER( alpha_char ) \
+ ( ( (alpha_char >= rmmi_char_a) && (alpha_char <= rmmi_char_z) ) ? 1 : 0 )
+
+#define RMMI_IS_UPPER( alpha_char ) \
+ ( ( (alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_Z) ) ? 1 : 0 )
+
+#define RMMI_IS_HEX_ALPHA( alpha_char ) \
+ ( ( (alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_F) ) ? 1 : 0 )
+
+#define RMMI_IS_HEX_ALPHA_CASE_INSENSITIVE( alpha_char ) \
+ ( ( ((alpha_char >= RMMI_CHAR_A) && (alpha_char <= RMMI_CHAR_F)) || ((alpha_char >= rmmi_char_a) && (alpha_char <= rmmi_char_f)) ) ? 1 : 0 )
+
+#define RMMI_IS_NUMBER( alpha_char ) \
+ ( ( (alpha_char >= RMMI_CHAR_0) && (alpha_char <= RMMI_CHAR_9) ) ? 1 : 0 )
+
+#define RMMI_IS_ALPHA( alpha_char ) \
+ ( ( RMMI_IS_UPPER(alpha_char) || RMMI_IS_LOWER(alpha_char) ) ? 1 : 0 )
+
+#define RMMI_IS_SYMBOL( alpha_char ) \
+ ( ( (alpha_char == RMMI_CHAR_PLUS) || (alpha_char == RMMI_CHAR_STAR) || \
+ (alpha_char == RMMI_CHAR_POUND) || (alpha_char == RMMI_COMMA) || \
+ (alpha_char == RMMI_CHAR_DOT) || (alpha_char == RMMI_FORWARD_SLASH) || \
+ (alpha_char == RMMI_COLON) || (alpha_char == RMMI_HAT) || \
+ (alpha_char == RMMI_CHAR_MINUS) || \
+ (alpha_char == RMMI_L_SQ_BRACKET) || \
+ (alpha_char == RMMI_R_SQ_BRACKET) || \
+ (alpha_char == RMMI_L_ANGLE_BRACKET) || \
+ (alpha_char == RMMI_CHAR_ULINE) || \
+ (alpha_char == RMMI_SPACE) || \
+ (alpha_char == RMMI_SEMICOLON) || \
+ (alpha_char == RMMI_R_ANGLE_BRACKET) \
+ ) ? 1 : 0 )
+
+#define RMMI_IS_EXT_CHAR( alpha_char ) \
+ (((alpha_char == RMMI_HAT)||(alpha_char == RMMI_CHAR_TILDE)||(alpha_char == RMMI_EURO)||\
+ (alpha_char == RMMI_L_SQ_BRACKET) || (alpha_char == RMMI_R_SQ_BRACKET) || \
+ (alpha_char == RMMI_L_CURLY_BRACKET) || (alpha_char == RMMI_R_CURLY_BRACKET) || \
+ (alpha_char == RMMI_CHAR_REVERSE_SOLIDUS) ||(alpha_char == RMMI_CHAR_VERTICAL_LINE) \
+ ) ? 1 : 0 )
+
+
+#define RMMI_MAX_BIT_MASK_SIZE (RMMI_MAX_CHANNEL_NUMBER + 7) / 8
+#define RMMI_MAX_BIT_MASK_SIZE_CRLA ((MAX_SOURCE_NUM + 7) / 8) /* refer to l4c total source id */
+
+//#if !defined(__MTK_TARGET__) && defined(__RMMI_UT__)
+//#define RMMI_UART_GetOwnerID(port) rmmi_current_mod_id
+//#endif
+
+
+typedef kal_bool(*UART_TRANS_FUNC_PTR) (kal_uint8);
+
+typedef kal_uint8 RMMI_UART_FLAG[RMMI_MAX_BIT_MASK_SIZE];
+
+
+typedef struct rmmi_single_cmd_struct
+{
+ kal_uint16 cmd_code; /* rmmi_extended_cmd_id_enum */
+ kal_uint8 cmd_mode; /* rmmi_cmd_mode_enum */
+} rmmi_single_cmd_struct;
+
+typedef struct basic_cmd_struct
+{
+ kal_uint8 cmd_code; /* rmmi_basic_cmd_id_enum */
+ kal_uint8 cmd_mode; /* rmmi_cmd_mode_enum */
+
+ kal_bool is_this_node_used;
+ kal_uint8 value;
+
+ struct basic_cmd_struct *next_ptr;
+} rmmi_multiple_basic_cmd_struct;
+
+typedef struct rmmi_cmd_struct
+{
+ kal_uint8 which_present; /* rmmi_cmd_type_enum */
+
+ rmmi_single_cmd_struct single_cmd;
+ rmmi_multiple_basic_cmd_struct multiple_cmd; //not used now
+} rmmi_cmd_struct;
+
+typedef struct
+{
+ kal_uint8 s0; /* auto answer */
+ kal_uint8 s2; /* escape character (+++) */
+ kal_uint8 s3; /* CR 0x0d*/
+ kal_uint8 s4; /* LF 0x0a*/
+ kal_uint8 s5; /* backspace */
+ kal_uint8 s6; /* pause before dialing */
+ kal_uint8 s7; /* connect timeout */
+ kal_uint8 s8; /* , pause time */
+ kal_uint8 s10; /* disconnect timeout */
+ kal_uint8 s32; /* XON character */
+ kal_uint8 s33; /* XOFF character */
+ kal_uint8 s95;
+
+} rmmi_s_register_struct;
+
+typedef struct uart_queue_struct
+{
+ kal_uint16 head;
+ kal_uint16 length;
+ kal_uint8 data[MAX_DATA_QUEUE_LENGTH];
+
+} rmmi_uart_queue_struct;
+
+typedef struct
+{
+ kal_uint16 head;
+ kal_uint16 length;
+ kal_uint8 data[MAX_DATA_QUEUE_LENGTH];
+
+} rmmi_uart_output_queue_struct;
+
+typedef struct
+{
+
+ kal_bool sat_in_menu;
+ kal_bool sat_in_process;
+ kal_bool sat_normal_standby;
+ kal_bool sat_ready;
+ kal_uint8 sat_input_type;
+ kal_uint8 sat_input_reveal;
+ kal_uint8 sat_input_min_len;
+ kal_uint8 sat_input_max_len;
+ kal_bool sat_redial;
+ kal_bool sat_redial_count;
+ kal_uint32 sat_duration;
+
+} rmmi_SAT_info_struct;
+
+typedef struct rmmi_cind_struct
+{
+ kal_uint8 battchg;
+ kal_uint8 signal;
+ kal_uint8 service;
+ kal_uint8 message;
+ kal_uint8 call;
+ kal_uint8 roam;
+ kal_uint8 smsfull;
+ kal_uint8 callsetup;
+ kal_uint8 callheld; //for BT HF 1.5
+} rmmi_cind_struct;
+
+typedef struct rmmi_reg_state_struct
+{
+ kal_uint64 cell_id; // for +CREG and +CGREG and +CEREG, high 16 bits for RNC id, low 16 bits for cell_id
+ kal_uint32 lac_or_tac_value; // for +CREG and +CGREG and +CEREG
+ kal_uint8 rac_value; // for +CGREG
+ kal_uint8 act; //[MAUI_01360129]
+ kal_uint8 state; //for +CREG and +CGREG and +CEREG
+ kal_uint8 cause_type;
+ kal_uint8 cause;
+ data_speed_support_enum cell_data_speed_support;
+
+ kal_uint8 plmn_id[MAX_PLMN_LEN+1];
+ kal_bool is_hplmn;
+
+ kal_bool is_csg_cell;
+ csg_info_struct csg_info;
+ kal_uint8 csg_state; //for +ECSG
+ kal_uint8 scell_number_dl;
+ kal_uint8 scell_number_ul;
+ kal_uint8 vgmm_allowed_nssai_length; /* Number of bytes in allowed NSSAI */
+ kal_uint8 vgmm_allowed_nssai[MAX_LEN_OF_ALL_ALLOWED_NSSAI]; /* Allowed NSSAI */
+} rmmi_reg_state_struct;
+
+#ifdef __TC01__
+typedef struct rmmi_report_reg_state_struct
+{
+ rmmi_reg_state_enum reg_state;
+ kal_uint16 lac_or_tac_value;
+ kal_uint32 cell_id;
+ kal_uint8 act;
+ kal_uint16 cause;
+ kal_uint8 rac;
+} rmmi_report_reg_state_struct;
+
+typedef struct rmmi_report_reg_to_ap_struct
+{
+ rmmi_report_reg_state_struct cs_reg_status;
+ rmmi_report_reg_state_struct ps_reg_status;
+ kal_bool report_creg;
+ kal_bool report_cgreg;
+} rmmi_report_reg_to_ap_struct; /* for reporing CREG/CGREG/CEREG reject cause to AP */
+#endif
+typedef struct rmmi_ims_reg_state_struct
+{
+ kal_uint8 reg_info;
+ kal_uint32 ext_info;
+} rmmi_ims_reg_state_struct;
+
+typedef struct
+{
+ l4c_phb_entry_struct entry;
+ l4c_number_struct num[3];
+ phb_sne_struct sne;
+ phb_email_struct email;
+} rmmi_phb_cpbw_struct;
+
+typedef struct rmmi_clip_info_struct
+{
+ kal_uint8 number[MAX_CC_ADDR_LEN]; //MAX_CC_ADDR_LEN
+ kal_uint8 type;
+ kal_uint8 subaddr[MAX_CC_SUB_ADDR_LEN]; //MAX_CC_SUB_ADDR_LEN
+ kal_uint8 satype;
+ kal_uint8 cli_validity;
+} rmmi_clip_info_struct;
+
+typedef struct rmmi_cnap_info_struct
+{
+ kal_uint8 valid;
+ kal_uint8 len;
+ kal_uint8 dcs;
+ kal_uint8 cni_validity;
+ kal_uint8 str[MAX_CHAR_CNAP * 2+1];
+} rmmi_cnap_info_struct;
+
+typedef struct rmmi_cbst_struct
+{
+ kal_uint8 speed;
+ kal_uint8 name;
+ kal_uint8 ce;
+} rmmi_cbst_struct;
+
+typedef struct rmmi_crlp_strnct
+{
+ kal_uint8 iws;
+ kal_uint8 mws;
+ kal_uint8 T1;
+ kal_uint8 N2;
+} rmmi_crlp_strnct;
+
+typedef struct rmmi_profile_struct
+{
+ rmmi_s_register_struct s_reg;
+ rmmi_cbst_struct rmmi_cbst;
+ rmmi_crlp_strnct rmmi_crlp;
+ kal_uint8 rmmi_ciwf;
+ kal_uint8 rmmi_atv;
+ kal_uint8 rmmi_ate;
+ kal_uint8 rmmi_atq;
+ kal_uint8 rmmi_atx;
+ kal_uint8 rmmi_atw;
+ kal_uint8 rmmi_atampC;
+ kal_uint8 rmmi_atampD;
+ kal_uint8 rmmi_atampK;
+} rmmi_profile_struct;
+
+typedef struct
+{
+ kal_uint8 reason;
+ kal_uint8 mode;
+ kal_uint8 timer;
+ l4c_number_struct dest_buffer;
+ l4c_sub_addr_struct sub_dest_buffer;
+ kal_bool sub_addr_flag;
+} ccfc_req_param_struct; /* for remembering params of AT+CFCC */
+
+typedef struct
+{
+ kal_uint8 mode;
+} ccwa_req_param_struct; /* for remembering params of AT+CCWA */
+
+typedef struct
+{
+ kal_uint8 reason;
+ kal_uint8 mode;
+ kal_uint8 passwd[4];
+} clck_ss_req_param_struct; /* for remembering params of AT+CLCK */
+
+typedef struct rmmi_transfer_struct
+{
+ module_type dest_mod;
+ UART_PORT port;
+} rmmi_transfer_struct;
+
+typedef struct {
+ kal_bool utran_fdd;
+ kal_bool utran_tdd_lcr;
+ kal_bool eutran_fdd;
+ kal_bool eutran_tdd;
+ kal_bool nr_fdd;
+ kal_bool nr_tdd;
+ mode_switch_cause_enum cause;
+} rmmi_ecsra_setting_struct;
+
+#ifdef __TC01__
+typedef struct {
+ kal_bool is_excuted;
+ kal_bool is_abnormal;
+ kal_uint16 usid[10];
+ kal_uint16 pid[10];
+ kal_uint16 mid[10];
+} rmmi_mipi_hw_info_ind_struct;
+#endif
+
+
+typedef struct rmmi_etwmode_setting_struct
+{
+ kal_uint8 lg_wg;
+} rmmi_etwmode_setting_struct;
+
+
+typedef struct rmmi_camped_cell_id_struct
+{
+ rat_enum rat;
+ rat_duplex_type_enum duplex_type;
+ plmn_id_struct plmn_id;
+ kal_uint8 la_code[2];
+ kal_uint8 ta_code[3];
+ kal_uint64 cell_id;
+} rmmi_camped_cell_id_struct;
+
+typedef struct rmmi_eind_invalid_sim_info_struct
+{
+ l4c_rac_response_enum prev_cs_status;
+ l4c_rac_gprs_status_enum prev_ps_status;
+ kal_uint8 prev_cause;
+ kal_uint8 prev_oper[MAX_PLMN_LEN+1];
+}rmmi_eind_invalid_sim_info_struct;
+
+typedef struct rmmi_ims_emergency_support_struct
+{
+ kal_uint8 rat_type;
+ kal_bool ims_emergency_support;
+} rmmi_ims_emergency_support_struct;
+
+typedef struct rmmi_rsp_mode_struct
+{
+ kal_uint8 echo_flag[RMMI_MAX_BIT_MASK_SIZE]; /* rmmi_cmd_echo_enum */
+ kal_uint8 suppress_flag; /* rmmi_result_code_suppress_enum */
+ kal_uint8 format; /* rmmi_result_code_format */
+ kal_uint8 ext_result_code;
+} rmmi_rsp_mode_struct;
+
+/* this structure is used to let custom config the rmmi default setting*/
+typedef struct{
+ rmmi_rsp_mode_struct rsp_mode;
+ kal_uint8 error_report_mode; // /* +CMEE <mode>: rmmi_error_report_mode_enum */
+ kal_uint8 char_set; //+CSCS
+ kal_uint8 plmn_format;
+ kal_uint8 cops_mode;
+ kal_uint8 CPOL_plmn_format;
+ kal_uint8 cmec_keyp;
+ kal_uint8 cmec_disp;
+ kal_uint8 cmec_ind;
+ kal_bool clae_mode; // we save clae mode in rmmi context
+ kal_bool csdh_show; //mtk00714: for +CSDH , hide/show detail Text mode parameters.
+ kal_uint8 cvhu_mode; //MAUI_02862643, mtk02285, support CVHU=1 to ignore ATH
+ rmmi_report_mode_struct report_mode;
+ rmmi_op01_report_mode_struct op01_report_mode;
+#ifdef __PLMN_LIST_WITH_LAC__
+ kal_bool list_plmn_with_lac; //print LAC for +COPS=? response
+#endif
+} rmmi_custom_context_struct;
+
+typedef struct
+{
+ ca_state_enum ca_state;
+ kal_uint8 pcell_bw;
+ kal_uint8 scell_bw[4];
+ kal_uint16 pcell_band;
+ kal_uint16 scell_band[4];
+} rmmi_ca_info_struct;
+#ifdef __RF_SCAN_FOR_DESENSE_TEST__
+typedef struct
+{
+ kal_uint8 src_id;
+ kal_uint8 rat_type;
+ kal_uint8 repeat_times;
+ kal_uint8 num_of_rssi_ind;
+ kal_int64 eRssi[2];
+} rmmi_rfscan_req_struct;
+#endif /*__RF_SCAN_FOR_DESENSE_TEST__*/
+
+typedef struct rmmi_nw_rej_cause_attemp_counter_struct
+{
+ mm_cause_enum mm_lu_rej_cause;
+ mm_cause_enum attach_rej_cause;
+ mm_cause_enum reg_update_rej_cause; // the reject cause of gmm rau, emm tau, vgmm reg update
+ kal_uint8 mm_lu_attempt_counter;
+ kal_uint8 attach_attempt_counter;
+ kal_uint8 reg_update_attempt_counter; // the attempt counter of gmm rau, emm tau, vgmm reg update
+ mm_cause_enum service_rej_cause;
+ kal_uint8 auth_rej_cause;
+ esm_cause_enum esm_rej_cause;
+ rmmi_proc_result_type_enum proc_result;
+ nas_proc_enum nas_proc;
+} rmmi_nw_rej_cause_attemp_counter_struct;
+
+#if defined(__CDMA2000_RAT__)
+
+typedef struct
+{
+ kal_bool is_serving_cell;
+ kal_uint8 num_of_cell; /* 1: serving cell, 0: no serving cell */
+ kal_uint16 nid;
+ kal_uint16 sid;
+ kal_uint16 bs_id;
+ kal_int32 bs_long;
+ kal_int32 bs_lat;
+ kal_int16 rssi_1xRTT;
+ kal_int16 ecio_1xRTT;
+ kal_uint8 rssi_EVDO;
+ kal_int16 ecio_EVDO;
+ kal_uint16 sinr_EVDO;
+} rmmi_c2k_cell_info_struct;
+
+#endif
+
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+#ifdef __MTK_TARGET__
+PRAGMA_BEGIN_PACK_STRUCT
+#endif
+typedef struct
+{
+ kal_uint8 simid;
+ kal_uint8 rat;
+ kal_uint8 num_of_arfcn; /* MAX supported is 8*/
+ //kal_uint8 reserved; /* For 4 byte allignment*/
+ kal_uint32 arfcn[L4C_MAX_ARFCN_SUPPORTED];
+ kal_uint16 band[L4C_MAX_ARFCN_SUPPORTED];
+ kal_uint8 is_connected;
+ kal_uint8 is_main_sim;
+} rmmi_camera_arfcn_info_struct;
+#ifdef __MTK_TARGET__
+PRAGMA_END_PACK_STRUCT
+#endif
+#endif
+
+#ifdef __EPSFB_SUPPORT__
+typedef struct
+{
+ call_status_enum call_status;
+ rmmi_epsfb_state_enum state;
+ rmmi_epsfb_type_enum type;
+} rmmi_epsfb_info_struct;
+#endif
+
+typedef struct
+{
+ kal_uint8 mcc[4];
+ kal_uint8 mnc[4];
+ rat_enum rat;
+} rmmi_eopsu_info_struct;
+
+typedef struct
+{
+ l4c_data_speed_support_enum eAct;
+ kal_uint16 rlc_latency_in_ms;
+} rmmi_latency_info_struct;
+
+typedef struct
+{
+ kal_bool display_5guw;
+ kal_bool on_n77_band;
+ kal_bool on_fr2_band;
+ kal_bool is_5guw_allowed;
+} rmmi_e5guw_info_struct;
+
+typedef struct rmmi_common_context_struct
+{
+#if 0 //#ifdef __CMUX_SUPPORT__
+/* under construction !*/
+/* under construction !*/
+#endif /* __CMUX_SUPPORT__ */
+
+#ifdef __BT_SUPPORT__
+ kal_uint8 rmmi_hf_src;
+ kal_bool hf_urc_report_flag;
+#endif
+
+ RMMI_UART_FLAG isAtdAction_flag; /* mtk00714 20040412 : remember ATD this action after setup_cnf */
+ RMMI_UART_FLAG isAtdAbort_flag; /* mtk01616 070323 to know it's a Atd abort by any character */
+
+#if defined(__CMUX_MODEM_STATUS_SUPPORT__)
+ RMMI_UART_FLAG isDSRAbort_flag;
+#endif
+
+#ifdef SYNCML_DM_SUPPORT
+ kal_bool lock_atci;
+#endif
+#if defined(__GEMINI__)
+ rmmi_sim_uart_setting_enum sim_uart_setting;
+ sim_interface_enum rmmi_uart_owner[RMMI_MAX_CHANNEL_NUMBER];
+#endif
+ RMMI_UART_FLAG uart_plugout;
+ RMMI_UART_FLAG uart_stop_send_flag;
+ RMMI_UART_FLAG is_multi_cmd;
+ RMMI_UART_FLAG multi_cmd_error; // this flag using to verify if error occur , we should abort command processor
+ RMMI_UART_FLAG is_sms_cmd; //using to cehck string is sms command and send " > " to DTE
+
+ kal_uint8 source[RMMI_MAX_CHANNEL_NUMBER];
+ kal_uint8 port[RMMI_MAX_CHANNEL_NUMBER];
+ kal_uint8 uart_port_value; /* this value store the default value form NVRAM */
+ rmmi_transfer_struct transfer;
+
+ // TODO: reduce uart input/output queue size, only keeps for agps and SCP port
+ rmmi_uart_queue_struct uart_input_queue[RMMI_CHANEEL_ID_MAX];
+ rmmi_uart_queue_struct uart_output_queue[RMMI_CHANEEL_ID_MAX];
+ kal_uint8 multi_cmd_string[RMMI_MAX_CHANNEL_NUMBER][MAX_MULTIPLE_CMD_INFO_LEN];
+
+#ifdef __TC01__
+ kal_uint8 gkpd_flag;
+ kal_uint8 gkpd_buffer[20];
+ kal_uint16 gkpd_count;
+ kal_uint8 *gkpd_windex;
+ kal_uint8 *gkpd_rindex;
+ kal_uint32 gkpd_current_rindex;
+ kal_uint16 gkpd_rindex_count;
+ kal_uint8 mpt_flag;
+#endif
+
+ kal_uint8 etstlp_port[2]; //for tst_port_ps and tst_port_l1
+
+ kal_uint8 gsm_tx_pwr_reduction_tbl[4][2][4];
+ kal_uint8 umts_tx_pwr_reduction_tbl[20][2];
+
+ kal_uint8 gsm_tx_pwr_reduction_tbl_tas[4][2][4];
+ kal_uint8 umts_tx_pwr_reduction_tbl_tas[20][2];
+
+ kal_uint8 is_rrm_test; // work around for RRM test, EMM need special power off without sending detach
+
+#ifndef __MTK_TARGET__
+ kal_uint8 ut_uart_input[MAX_UT_UART_LENGTH];
+ kal_uint16 ut_uart_input_len;
+#endif
+ kal_uint8 rms_state;
+
+ kal_uint8 is_dongle_mode;
+
+#ifdef __TC10__ // CCLK
+ rmmi_nitz_time_struct nitz_time;
+#endif
+
+} rmmi_common_context_struct;
+
+typedef struct rmmi_context_struct
+{
+/*************************************************************************/
+/* Below context are placed in the front of RMMI context */
+/* to increase immediate offset access , to reduce ROM size */
+/* Please KEEP the position for the following frequent used variables */
+/*************************************************************************/
+ kal_uint8 current_src;
+
+ kal_uint8 char_set; //+CSCS
+ kal_bool is_ucm_action;
+ kal_uint16 cmee_err; // error value for +CME:<err>
+ kal_bool uart_in_data_mode;
+ kal_uint8 online_cmd_state;
+
+ kal_bool ats0_auto_answer; //mtk01616_070707 add this to prevent print OK for auto answer
+#ifdef __UCM_SUPPORT__
+ kal_bool is_ata_action; //mtk01616_070707 add this to handle ATA result code
+ kal_bool is_compound_action; //MAUI_02016224
+#endif
+
+ /* use to check if sim verified */
+ kal_bool command_allow; // using to keep if password required, only some AT command can access when pin puk or ph_sim pending
+ kal_uint16 cmd_error_cause; // SMU saves command not allow cause for +cme error value to TA
+
+ rmmi_s_register_struct s_reg;
+ void *arg_list[RMMI_MAX_ARG_NUM];
+
+ rmmi_rsp_mode_struct rsp_mode;
+ rmmi_cind_struct indicators; // for +CIND and +CMER
+ rmmi_report_mode_struct report_mode;
+ rmmi_reg_state_struct cs_register_status; //registration status for +CREG
+#ifdef __MOD_TCM__
+ rmmi_reg_state_struct ps_register_status; //registration status for +CGREG
+ l4c_data_bearer_capablility_enum psbearer_param2; //the last reported <bearer_capability> in +PSBEARER
+ kal_bool l4c_ps_is_sent_to_current_src ; // If KAL_FALSE, send MSG to URC channel
+ kal_uint8 l4c_ps_embed_msg_src;
+#endif
+
+ rmmi_eopsu_info_struct eopsu_info;
+ rmmi_latency_info_struct latency_info;
+ rmmi_e5guw_info_struct e5guw_info;
+
+#ifdef __L4C_GPRS_UT__
+ ps_cause_enum cause;
+#endif
+
+ rmmi_ecc_number_list_struct ecc_number; /* to store ECC number from network, related to +CEN */
+
+/***********************************************************************/
+/* Above context are placed in the front of L4C context */
+/* to increase immediate offset access , to reduce ROM size */
+/* Please try to KEEP the position for these frequent used variables */
+/***********************************************************************/
+
+//#ifdef __IMS_SUPPORT__
+ rmmi_ims_reg_state_struct ims_register_status;
+ kal_uint8 imsvops_indication; // IMS Voice over PS session indication
+ kal_uint8 emb_Iu_supp; // Emergency bearer services support indicator for Iu mode
+ kal_uint8 emb_S1_supp; // Emergency bearer services support indicator for S1 mode
+//#endif
+
+ /* settings */
+ kal_uint8 em_enable; //mtk00468 add for using to keep the em enable or disable engineer mode information
+ kal_uint8 date_aux_mode; // this variable using for +CSDF to keep in local
+ kal_uint8 cring_type; //mtk00714 add for +CRC (remember cring_type for rmmi_ring_repeat_hdlr)
+ kal_uint8 error_report_mode; // /* +CMEE <mode>: rmmi_error_report_mode_enum */
+ kal_uint8 plmn_format;
+ kal_uint8 last_plmn_format; /* be used to restore format if AT+COPS return error */
+#ifdef __PLMN_LIST_WITH_LAC__
+ kal_bool list_plmn_with_lac; //print LAC for +COPS=? response
+#endif
+ kal_uint8 cops_mode;
+ kal_uint8 cops_rat_mode;
+ endc_search_enum cops_endc_search_mode;
+ kal_uint8 CPOL_plmn_format;
+ kal_uint8 smsal_bfr; /* +CNMI : <bfr> */
+ kal_uint8 CNMI_mode; // +CNMI: <mode>: result code mode
+ //kal_uint16 max_plmn_list_len; //+CPOL ?
+ kal_bool cb_mode;
+ kal_bool csdh_show; //mtk00714: for +CSDH , hide/show detail Text mode parameters.
+ kal_bool clae_mode; // we save clae mode in rmmi context
+ kal_bool cmut_mode; // we save clae mode in rmmi context
+ kal_uint8 preferred_lang;
+ kal_uint8 ring_count; // for ATS0
+ rmmi_clip_info_struct clip_info;
+ rmmi_cnap_info_struct cnap_info;
+ kal_uint8 casp_soundID; //for +CASP proprietary command , timeout hdlr parameter.
+ //kal_bool is_gprs_data_dialing; /* ATH is not allowed to hangup existed voice call after dialup failed */ //mtk02285, 201003, 6251_ram
+#ifdef __MOD_TCM__
+ kal_uint8 cgatt_last_action; /* mtk00714 20040611 add to avoid continuos at+cgatt=0 or at+cgatt=1 */
+#endif //mtk02285, 201003, 6251_ram
+ kal_uint16 cpbr_range[2];
+ kal_uint16 phb_del_index;
+ kal_uint8 phb_del_storage;
+ kal_uint8 cpbr_ln_base_index;
+
+ kal_uint8 ecpbr_num_index;
+ kal_uint8 ecpbr_entry_found;
+ l4_name_struct ecpbr_alphaId;
+
+ kal_uint8 ecpbw_num_index;
+ kal_uint8 ecpbw_email_write;
+ kal_uint16 ecpbw_record_index;
+ kal_uint8 ecpbw_is_delete;
+ rmmi_phb_cpbw_struct *ecpbw_entry_ptr;
+
+ rmmi_op01_report_mode_struct op01_report_mode;
+
+ kal_bool is_cpbw_phb_fdn;
+
+ l4c_source_id_enum online_cmd_state_src_id; //MAUI_01652672, mtk02285, 20090324
+
+#ifdef __IRDA_SUPPORT__
+ //kal_uint8 ppp_nsapi; //mtk02285, 201003, 6251_ram
+#endif
+
+#ifdef __SAT__
+ kal_bool sat_icon_displayed; //mtk00924: display icon for STK SMS, SS, USSD, DTMF
+#endif
+
+ kal_uint8 except_src; //for unsolicited code, but don't send it to this src. ex. MT data call, don't send RING to bt hs
+ kal_uint8 imei_action; //rmmi_imei_action_enum
+ kal_uint8 rmmi_atd_mem; //mtk01616_090116 :rmmi_mem_dial_enum
+ kal_uint16 action_cmd; //rmmi_extended_cmd_id_enum
+#ifdef __BT_SUPPORT__
+ kal_uint8 last_reported_ciev_signal; //hong_rx_level
+ kal_bool send_ciev_callheld; //mtk01616_090923: explictly to send +CIEV:<callheld> even the status is not changed
+#endif
+ kal_uint8 ath_for_dialup; //mtk01616_080923: ATH is for dialup failure, we use this to prevent ATH to disconnect call
+ kal_uint8 last_number_dialed[MAX_CC_ADDR_LEN];//atdL last number dialed
+
+#if 0 //__CTM_SUPPORT__
+/* under construction !*/
+#endif
+
+ kal_uint8 em_volume_level;
+ kal_uint8 em_volume_type;
+ kal_uint8 em_audio_type;
+ kal_uint8 em_audio_gain;
+ kal_uint8 em_audio_mode;
+ kal_uint8 em_eadp_action;
+
+ /* Context for AT+EAPS */
+ kal_uint8 eaps_action;
+ kal_uint8 eaps_para1;
+ kal_uint8 eaps_para2;
+ kal_uint8 eaps_para3;
+ void* eaps_audio_param;
+
+#ifdef __VOIP__
+ kal_bool cm_cmd_approve; //Send Call Management command to MMI to get approval
+ void *string_ptr;
+ void *node_ptr;
+ void *id;
+#endif /* __VOIP__ */
+ kal_uint8 poweroff_src_id;
+ kal_uint8 is_spn_valid;
+ kal_uint8 spn[LEN_OF_SPN];
+
+ kal_uint32 eind_ready_flag;
+ kal_uint8 vgr_gain;
+ kal_uint8 vgt_gain;
+
+ kal_uint16 last_executed_P2_fail; //[MAUI_01292349] mtk02480l 27.007: +CPIN? return PIN2/PUK2 if previous command execured authentication failure, i.e. cmee_err= 17/18
+
+#if defined(__MODEM_EM_MODE__)
+ kal_uint8 em_src_id; // used to remember EM request src_id
+#endif
+
+ #ifdef __GATI_ENABLE__
+ gati_mod_src_struct gati_mod_src_table[GATI_MAX_MODULE_COUNT]; /* The table which record the relation of module to src_id and its control status */
+ kal_uint8 gati_binary_mode_module[MAX_SOURCE_NUM]; /* The module id that active the binary mode for specific source id */
+ kal_uint32 gati_stop_read_data_from_uart; /* The bit map to specify which src_id is now stop receiving data from the UART */
+ kal_uint32 gati_pending_rtr_ind; /* The bit map to specify if there are rtr indication from the UART during the ATCI stop receiving data from the UART */
+ gati_buffer_struct gati_buffer; /* The buffer will be used when the mode is in the binary mode and there is some data from other module which does not active the binary mode. */
+ kal_uint8 gati_buffer_count;
+ /* The following variables are temp ones used to transmit informations between functions */
+ kal_bool gati_write_allow_flag; /* This flag is used to allow the writing action for the owner of the binary mode */
+ kal_uint16 gati_actual_write; /* This variable is used to get the actual write size to the output queue in the rmmi_uart_write_data */
+ kal_uint8 gati_data_type; /* This variable is used to know if the data type is integrity or not */
+ #endif
+
+ kal_uint8 cmec_keyp;
+ kal_uint8 cmec_disp;
+ kal_uint8 cmec_ind;
+
+ l4c_nbr_cell_info_ind_struct nbr_info;
+ l4c_endc_nbr_cell_info_struct endc_nbr_cell_info;
+
+ kal_uint8 is_emgr;
+
+#if !defined(__SLIM_AT__)
+ kal_uint8 ccfc_combi_classx; //original <classx> given by AT+CFCC
+ // each bit is for each classx. (TS or BS)
+ // 1: we need to make req for this bs_code / 0: ignored
+ //use bit operation
+ kal_uint8 ccfc_current_class; //the class of current req
+ ccfc_req_param_struct ccfc_req_param; //stores other req parameter information
+ kal_bool ccfc_result;
+
+ kal_uint8 clck_ss_combi_classx; //original <classx> given by AT+CLCK
+ // each bit is for each classx. (TS or BS)
+ // 1: we need to make req for this bs_code / 0: ignored
+ //use bit operation
+ kal_uint8 clck_ss_current_class; //the class of current req
+ clck_ss_req_param_struct clck_ss_req_param; //stores other req parameter information
+ kal_bool clck_ss_result;
+ smu_security_type_enum clck_sml_type; //for at+clck to query SML status
+#endif
+
+ kal_uint8 ccwa_combi_classx; //original <classx> given by AT+CCWA
+ // each bit is for each classx. (TS or BS)
+ // 1: we need to make req for this bs_code / 0: ignored
+ //use bit operation
+ kal_uint8 ccwa_current_class; //the class of current req
+ ccwa_req_param_struct ccwa_req_param; //stores other req parameter information
+ kal_bool ccwa_result;
+ kal_uint8 cvhu_mode; //MAUI_02862643, mtk02285, support CVHU=1 to ignore ATH
+
+#if !defined(__ULC_AT__)
+ rmmi_profile_struct rmmi_default_profile;
+ rmmi_profile_struct rmmi_user_profile;
+ rmmi_profile_struct rmmi_current_profile;
+#endif
+
+ rmmi_uart_queue_struct CNMI_ResultCodeBuffer; //for +CNMI, SMSAL_ONE_MSG_LEN = 160
+ kal_uint8 cmd_mode;
+ kal_uint8 cpbf_findtext[30];
+
+#ifdef __SAT__
+#ifdef __SATCB__
+ rmmi_uart_queue_struct sat_output_queue; //mtk00714 add for SAT using
+ kal_bool IsSATcommand; //check if SATCommand
+ kal_bool IsSATresponse; //use to check if SAT response
+ void *SAT_rsp_ptr;
+#endif
+#endif /* __SAT__ */
+
+#ifdef __CMUX_SUPPORT__
+ kal_uint8 rmmi_data_channel_src;
+ kal_uint8 rmmi_urc_channel_src;
+ kal_uint8 rmmi_urc_2_channel_src;
+#ifdef __TC01_IMS_SUPPORT__
+ kal_uint8 rmmi_urc_3_channel_src;
+#endif
+#endif
+
+#if defined(__AT_IPR_WRITE_FS_SUPPORT__)
+ kal_uint32 atipr_rate;
+#endif
+
+ kal_uint8 csp_plmn_mode;
+
+#if defined(__MESSAGE_BASED_AT_SUPPORT__)
+ kal_bool msg_based_at_enable;
+#endif
+
+ kal_uint8 ats0_src_id; //MAUI_02743662 for saving ATS0 auto answer source id
+
+ kal_uint8 cpls_selected;
+
+#if 0 //move to ATP
+#if defined(__DUAL_TALK_MODEM_SUPPORT__)
+/* under construction !*/
+#endif
+#endif
+
+#if defined(__SYSSEL_SUPPORT__)
+ kal_uint8 syssel_band;
+#endif
+
+#ifdef __ACMT_SUPPORT__
+ kal_uint8 eacmt_mode;
+#endif
+
+#if defined(__REPORT_AVAILABLE_PLMN__)
+ kal_uint8 ecops_mode;
+#endif
+
+#if defined(__2STAGE_NW_SELECTION__)
+ kal_uint8 emsr_mode;
+#endif
+
+ kal_uint8 is_crla[RMMI_MAX_BIT_MASK_SIZE_CRLA];
+
+#ifndef __UCM_SUPPORT__
+ /* This flag is to indicate ATH is redirected to l4c_cc_exe_chld_req()
+ * The response is printed in l4c_cc_exe_chld_req() or after CRSS_CNF
+ * So rmmi_basic_cmd_processor() shall not print again.
+ * Please refer to ALPS00649564.
+ */
+ kal_uint8 ath_to_chld;
+#endif
+
+//move to ATP_IO module_type tst_inject_mod; // To record which module sent the tst_inject_string
+
+#if 0 //#ifdef __IMS_SUPPORT__
+/* under construction !*/
+#endif
+
+#if defined(__CDMA2000_RAT__)
+
+ kal_uint8 emdstatus_md_config;
+ kal_uint8 emdstatus_sim_config;
+ kal_uint8 emdstatus_fv; // flow version
+ kal_uint8 emdstatus_srcid;
+ rmmi_c2k_cell_info_struct c2k_cell_info;
+ kal_bool enable_c2k_ecell;
+#endif
+#if defined(__REPORT_AVAILABLE_PLMN__)
+ kal_uint8 number_of_available_plmn_id;
+ kal_uint8 available_plmn_id[MAX_PLMN_LIST_LEN][MAX_PLMN_NUMERIC_NAME_LEN];
+#endif
+
+ kal_bool data_enabled_setting; // set to 1 if data is enabled in AP
+ kal_bool data_roaming_setting; // set to 1 if data roaming is enabled in AP
+ /* context used for +ECSRA */
+ rmmi_ecsra_setting_struct last_ecsra;
+
+ /* context used for +CSCON */
+ rmmi_cscon_mode_enum cscon_mode[4];
+ rmmi_cscon_state_enum cscon_state[4];
+ rmmi_cscon_access_enum cscon_access[4];
+ rmmi_cscon_core_network_enum cscon_core_network[4]; // only use array element 2 and 3 for LTE and NR
+ kal_uint8 cscon_latest_rat_index;
+
+
+#ifdef __HIF_CCISM_SCP_SUPPORT__
+ kal_uint32 scp_prev_cell_id;
+ kal_uint16 scp_prev_cell_rssi;
+#endif
+ signal_modulation_enum modulation;
+ rmmi_camped_cell_id_struct camped_cell_id_info; //for +ECMPCID
+
+ /* context for +EUEDRX */
+ kal_uint16 drx_value;
+
+ /* context for +EC2KCELL */
+ irat_ps_type_enum access_type;
+ kal_uint16 sid;
+ kal_uint16 nid;
+ kal_uint8 pzid;
+ kal_uint16 base_id;
+ kal_uint32 sector_id[4];
+ kal_uint8 subnet_length;
+ kal_uint8 carrier_id[7];
+#ifdef __CSG_SUPPORT__
+ kal_uint8 hnb_name[MAX_HNB_NAME_LEN*2+1];
+ kal_uint8 hnb_name_length;
+#endif
+#ifdef __TC01__
+ kal_uint8 rssi_ind_src_id;
+#endif
+
+ /* context for +ERAT */
+ kal_uint8 erat_lock;
+ kal_uint8 is_no_saved; // while it is ture, the rat mode will no be saved to NVRAM.
+
+ kal_bool is_ssac_barring_for_voice;
+ kal_uint8 evzwapfcia_mode;
+#if defined(__GEMINI__) || defined(__L4C_GPRS_UT__)
+ kal_uint8 edallow_mode;
+#endif
+ kal_uint8 is_vops_supported; // init value should be 0xff
+
+ plmn_id_rat_struct saved_plmn_for_volte_hys;
+
+ kal_bool is_registered_on_eHRPD;
+ rat_enum eimsps_rat;
+ kal_uint8 eimsps_type;
+ rmmi_eind_invalid_sim_info_struct eind_invalid_sim_info;
+
+ rmmi_etwmode_setting_struct etwmode_setting;
+
+ kal_uint8 enwbdinfo_mode;
+ kal_uint16 lte_bandwidthInfo;
+
+ kal_uint8 scell_number_dl;
+ /* context used for +EAPC */
+ kal_uint8 current_apc_feature_type;
+ kal_bool current_report_mode;
+ kal_uint16 current_report_period;
+ kal_uint8 new_apc_feature_type;
+ kal_bool new_report_mode;
+ kal_uint16 new_report_period;
+ kal_uint8 scell_number_ul;
+ kal_uint8 ps_conn_status;
+ kal_uint16 pcell_band; // for +EPCELLINFO
+
+ gprs_traffic_channel_status_enum gprs_traffic_channel_status;
+
+#ifdef __IMS_SUPPORT__
+ rmmi_ims_emergency_support_struct eimsess_info;
+#endif
+
+ rmmi_ca_info_struct ecainfo; // for +ECAINFO URC
+ kal_uint8 ctmcall_mode;
+
+ kal_bool enable_ecell_ext3_ext4;
+ kal_bool enable_ecell_ssbid_info;
+
+ kal_uint8 emro_lte_game_ho;
+
+ kal_uint8 is_dsda_allowed;
+
+ kal_uint8 cirepi_ind;
+ kal_uint8 cnems1_ind;
+ kal_uint8 cnemiu_ind;
+#ifdef __RF_SCAN_FOR_DESENSE_TEST__
+ rmmi_rfscan_req_struct rfscan_req; // for +ERFSCAN RSSI URC
+#endif /*__RF_SCAN_FOR_DESENSE_TEST__*/
+
+ kal_int16 sar_scenario_index;
+ kal_int16 dat_scenario_index;
+ kal_int16 sar_operator_index;
+#ifdef __EPSFB_SUPPORT__
+ rmmi_epsfb_info_struct epsfb_info;
+#endif
+#if defined(__TC01__) && defined(__RMMI_EXTEND_CUSTOM_CMD__)
+ kal_uint8 cust_cmd_src_id;
+#endif
+#ifdef __ARFCN_TO_CAMERA_SUPPORT__
+ rmmi_camera_arfcn_info_struct last_reported_arfcn;
+#endif
+
+#ifdef __TC01__
+ rmmi_report_reg_to_ap_struct report_reg_state;
+ kal_uint8 ltecall_flag; /* at%ltecall */
+#endif
+
+#ifdef __TC01_CALIBRATION__
+ /* MUSE - ALPS01539170 */
+ /* Check the flag for calibration verification to prevent */
+ /* frequent access to NVRAM when the user input AT%CALDT */
+ kal_uint8 caldt_check;
+#endif
+
+#if defined(__TC01__) && defined(__SIM_HOT_SWAP_SUPPORT__)
+ kal_bool sim_replaced; // to indicate SIM is replaced for hot swap
+ kal_bool sim_plugout;
+ kal_bool sim_first_inserted;
+ kal_bool sim_mapping_happened;
+#endif
+
+#ifdef __TC01__ /* for +ESIMCEP */
+ kal_uint8 mnc_length;
+ kal_bool is_valid_gid1;
+ kal_uint8 number_of_gid1;
+ kal_uint8 gid1[20];
+ kal_bool is_valid_gid2;
+ kal_uint8 number_of_gid2;
+ kal_uint8 gid2[20];
+#endif
+
+#if defined(__TC01__)
+ /*ALPS03746765 & ALPS03743116*/
+ kal_uint8 sim_status_ind;
+#endif
+
+#ifdef __TC01__
+ rmmi_mipi_hw_info_ind_struct mipi_result;
+#endif
+
+#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)
+ kal_uint8 switch_on;
+#endif/*#if defined(__VSIM__) && defined(__TC01__) && defined(__FEATURE_TC01_SIMOFF_EXTENTION__) && defined(__MDVSIM__)*/
+
+#ifdef __SAR_SENSOR_TX_DETECTION_SUPPORT__
+ /* TX Power Reduction*/
+ kal_uint8 sar_tx_power_red_event;
+ kal_int16 sar_scenario;
+#endif /* __SAR_SENSOR_TX_DETECTION_SUPPORT__ */
+ kal_uint8 channel_lock_mode;
+
+ rmmi_nw_rej_cause_attemp_counter_struct nw_rej_cause_attemp_counter;
+
+ /* network pyhsical configuration info*/
+ kal_bool dl256qam_configured;
+ kal_bool mimo_fourlayer_configured;
+
+ kal_uint8 *ecpbw_string_ptr;
+ kal_uint16 ecpbw_string_index;
+
+ kal_uint8 csg_list_mode;
+
+ kal_uint32 rmmi_current_operator;
+
+ kal_bool standard_cscon_support;
+
+ kal_uint8 is_acb_skip_for_mmtel_voice;
+ kal_bool is_acb_skip_for_mmtel_video;
+
+} rmmi_context_struct;
+
+typedef struct rmmi_string_struct
+{
+ kal_uint16 index;
+ kal_uint8 *string_ptr;
+ kal_uint8 *ip_string;
+ l4c_source_id_enum src_id; // DEREK
+ kal_uint8 cmd_mode;
+ kal_uint8 cmd_class;
+ kal_uint16 cmd_index; //rmmi_extended_cmd_id_enum
+ kal_uint16 cmd_row_index;
+ rmmi_extend_symbol_hash_enum symbol_hash;
+} rmmi_string_struct;
+
+#ifdef __SAT__
+
+typedef enum
+{
+ RMMI_TIM_MOD_NONE,
+ RMMI_TIM_MOD_SAT_DSPL_TEXT,
+ RMMI_TIM_MOD_SAT_PLAY_TONE,
+ RMMI_TIM_MOD_SAT_REDIAL,
+ RMMI_TIM_MOD_SAT_NOTICE,
+ RMMI_TIM_MOD_SAT_MMI_INFO,
+ RMMI_NUM_OF_TIMER_MOD
+}
+rmmi_timer_mod_enum;
+
+typedef struct
+{
+ eventid timer_id;
+ kal_uint8 time;
+ kal_bool timer_on;
+} rmmi_sat_timer_struct;
+
+/* SAT */
+#define SAT_SIG_SETUP_MENU_SHOW 70
+#define SAT_SIG_SELECT_ITEM_SHOW 71
+#define SAT_SIG_DSPL_TXT_SHOW 72
+#define SAT_SIG_GET_INKEY_SHOW 73
+#define SAT_SIG_GET_INPUT_SHOW 74
+#define SAT_SIG_PLAY_TONE_SHOW 75
+#define SAT_SIG_SETUP_CALL_SHOW 76
+//#define SAT_SIG_SETUP_CALL_REQ_SHOW 77
+//#define SAT_SIG_SETUP_CALL_RES_SHOW 78
+//#define SAT_SIG_REDIAL_SHOW 79
+#define SAT_SIG_SEND_SMS_SHOW 80
+#define SAT_SIG_SEND_SS_SHOW 81
+#define SAT_SIG_SEND_USSD_SHOW 82
+#define SAT_SIG_MMI_INFO_SHOW 83
+//#define SAT_SIG_NOTICE_SHOW 85
+
+#define RMMI_SAT_SIG_SETUP_CALL_REQ 16
+#define RMMI_SAT_SIG_SEND_SS_REQ 17
+#define RMMI_SAT_SIG_SEND_USSD_REQ 18
+#define RMMI_SAT_SIG_SEND_SMS_REQ 19
+#define RMMI_SAT_SIG_PLAY_TONE_RES 32
+#define RMMI_SAT_SIG_DSPL_TEXT_RES 33
+#define RMMI_SAT_SIG_GET_INKEY_RES 34
+#define RMMI_SAT_SIG_GET_INPUT_RES 35
+#define RMMI_SAT_SIG_SELECT_ITEM_RES 36
+#define RMMI_SAT_SIG_MENU_SELECT_REQ 37
+#define RMMI_SAT_SIG_START_SAT 80
+#define RMMI_SAT_SIG_SETUP_CALL_REDIAL 88
+
+typedef struct
+{
+ kal_uint8 item_len;
+ kal_uint8 item_dcs;
+ kal_uint8 item_id;
+ kal_uint8 *item_data;
+}
+rmmi_sat_menu_item_struct;
+
+typedef struct
+{
+ kal_uint8 is_help_info_available;
+ kal_uint8 cmd_detail[5];
+ kal_uint8 alpha_id_len;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 num_of_item;
+ rmmi_sat_menu_item_struct *menu_items;
+}
+rmmi_sat_main_menu_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 is_item_id_available;
+ kal_uint8 item_id;
+ kal_uint8 alpha_id_len;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 num_of_item;
+ rmmi_sat_menu_item_struct *menu_items;
+}
+rmmi_sat_sub_menu_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 priority;
+ kal_uint8 clear_text_type;
+ kal_uint8 immediate_res;
+ kal_uint16 no_text_string;
+ kal_uint8 *text_string;
+ kal_uint8 dcs_of_text_string;
+}
+rmmi_sat_dspl_text_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 type_of_input;
+ kal_uint16 no_text_string;
+ kal_uint8 *text_string;
+ kal_uint8 dcs_of_text_string;
+}
+rmmi_sat_get_inkey_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_help_info_available;
+ kal_uint8 type_of_input;
+ kal_uint8 is_input_revealed_to_user;
+ kal_uint8 len_of_min_input;
+ kal_uint8 len_of_max_input;
+
+ kal_uint16 no_text_string;
+ kal_uint8 *text_string;
+ kal_uint8 dcs_of_text_string;
+ kal_uint16 no_default_text;
+ kal_uint8 *default_text;
+ kal_uint8 dcs_of_default_text;
+}
+rmmi_sat_get_input_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 tone_id;
+ kal_uint32 duration;
+ kal_uint8 no_alpha_id;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+
+}
+rmmi_sat_play_tone_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 mmi_info_type;
+ kal_uint8 no_alpha_id;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+}
+rmmi_sat_mmi_info_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 condition;
+ kal_uint32 duration;
+
+ kal_uint8 no_alpha_id1;
+ kal_uint8 *alpha_id1;
+ kal_uint8 dcs_of_alpha_id1;
+ kal_uint8 no_alpha_id2;
+ kal_uint8 *alpha_id2;
+ kal_uint8 dcs_of_alpha_id2;
+
+ kal_uint8 size_of_ccp;
+ kal_uint8 ccp[MAX_SAT_SIZE_OF_CCP];
+ kal_uint8 size_of_subaddr;
+ kal_uint8 subaddr[MAX_SIM_SUB_ADDR_BCD_LEN];
+
+ kal_uint8 no_addr;
+ kal_uint8 *addr;
+}
+rmmi_sat_setup_call_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 is_sms_packed_required;
+ kal_uint8 size_of_addr;
+ kal_uint8 addr[MAX_SIM_ADDR_LEN]; //mtk02514_081216
+ kal_uint8 no_alpha_id;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_sms_tpdu;
+ kal_uint8 *sms_tpdu;
+}
+rmmi_sat_send_sms_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 no_alpha_id;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_ss_string;
+ kal_uint8 *ss_string;
+}
+rmmi_sat_send_ss_struct;
+
+typedef struct
+{
+ kal_uint8 cmd_detail[5];
+ kal_uint8 no_alpha_id;
+ kal_uint8 *alpha_id;
+ kal_uint8 dcs_of_alpha_id;
+ kal_uint8 no_ussd_string;
+ kal_uint8 *ussd_string;
+ kal_uint8 dcs_of_ussd_string;
+}
+rmmi_sat_send_ussd_struct;
+
+/* TYPES */
+
+typedef enum
+{
+ RMMI_VTS_SPEECH_IN = 0,
+ RMMI_VTS_SPEECH_OUT = 1,
+ RMMI_VTS_KEY_BEEP = 2,
+ RMMI_VTS_DTMF_TONE = 3,
+ RMMI_VTS_RINGER = 4,
+ RMMI_VTS_MEDIA = 5,
+ RMMI_NUM_OF_VTS_TYPE
+}
+rmmi_vts_type_enum;
+
+typedef enum
+{
+ RMMI_VTS_PLAY_CRESCENDO = 0, /* Play sound for crescendo. */
+ RMMI_VTS_PLAY_INFINITE = 1, /* Play sound for infinite. */
+ RMMI_VTS_PLAY_ONCE = 2, /* Play sound for once. */
+ RMMI_VTS_PLAY_DESCENDO = 3, /* Play sound for descendo. */
+ RMMI_VTS_PLAY_OFF = 4, /* stop sound */
+ RMMI_NUM_OF_VTS_PLAY_MODE
+}
+rmmi_vts_play_mode_enum;
+
+#endif /* __SAT__ */
+
+typedef struct
+{
+ kal_uint8 err_string[RMMI_MAX_ERR_STR_LEN];
+} rmmi_error_msg_struct;
+
+//RMMI_UT ---
+#define ATCI_MAX_UT_IO_LENGTH 1024
+#define ATCI_MAX_UT_CMD_STRING_LENGTH 100
+#define ATCI_MAX_UT_AT_PARAMETER_NUMBER 20
+#define ATCI_MAX_UT_AT_PARAMETER_STRING_LENGTH 100
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 port;
+ kal_uint8 string[ATCI_MAX_UT_IO_LENGTH];
+ kal_bool stuff;
+} atci_ut_rmmi_input_string_struct; // MSG_ID_ATCI_UT_RMMI_INPUT_STRING
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 port;
+ kal_uint8 string[ATCI_MAX_UT_IO_LENGTH];
+ kal_bool stuff;
+} atci_ut_rmmi_output_string_struct; // MSG_ID_ATCI_UT_RMMI_OUTPUT_STRING
+
+typedef struct
+{
+ kal_uint8 para_string[ATCI_MAX_UT_AT_PARAMETER_STRING_LENGTH];
+} atci_ut_rmmi_input_expanded_at_parameter_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 port;
+ kal_uint8 cmd_string[ATCI_MAX_UT_CMD_STRING_LENGTH];
+ atci_ut_rmmi_input_expanded_at_parameter_struct para[ATCI_MAX_UT_AT_PARAMETER_NUMBER];
+} atci_ut_rmmi_input_expanded_at_string_struct; //MSG_ID_ATCI_UT_RMMI_INPUT_EXPANDED_AT_STRING
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 src_id;
+ kal_uint8 cid;
+ l4c_action_enum action;
+} atci_ut_check_l4c_context_info_struct; // MSG_ID_ATCI_UT_CHECK_L4C_CONTEXT_INFO
+
+
+//--- RMMI_UT
+
+typedef void (*RMMI_EXT_CMD_FUNCTION) (rmmi_string_struct *source_string_ptr);
+
+typedef kal_bool(*RMMI_BASIC_CMD_FUNCTION)
+ (rmmi_string_struct *source_string_ptr, rmmi_multiple_basic_cmd_struct *head_node_ptr, rmmi_err_id_enum *err_id);
+
+typedef void (*RMMI_IND_FUNCTION) ();
+
+
+extern rmmi_context_struct *rmmi_ptr_g;
+extern rmmi_common_context_struct *rmmi_common_ptr_g;
+extern module_type rmmi_current_mod_id;
+extern rmmi_context_struct rmmi_cntxt_g[RMMI_MAX_SIM_NUM];
+#if defined(__ATCMD_ONOFF_CHECK__)
+extern kal_bool rmmi_check_at_enable;
+#endif
+
+#if defined(__DUAL_TALK_MODEM_SUPPORT__)
+typedef struct
+{
+ kal_uint8 speech_mode;
+ kal_uint8 rat_mode;
+} rmmi_spc_espeech_param_struct;
+
+typedef struct
+{
+ kal_uint8 sidetone;
+} rmmi_spc_esstv_param_struct;
+
+typedef struct
+{
+ kal_uint8 tone_id;
+} rmmi_spc_edtp_param_struct;
+
+typedef struct
+{
+ kal_uint8 esetdev_mode;
+ kal_uint8 src_dev;
+} rmmi_spc_esetdev_param_struct;
+
+typedef struct
+{
+ kal_uint8 volume;
+ kal_uint8 gain_id;
+} rmmi_spc_esov_param_struct;
+
+typedef struct
+{
+ kal_uint8 mic_volume;
+} rmmi_spc_esmv_param_struct;
+
+typedef struct
+{
+ kal_uint8 mode;
+} rmmi_spc_essma_param_struct;
+
+typedef union
+{
+ rmmi_spc_espeech_param_struct *espeech_param;
+ rmmi_spc_esstv_param_struct *esstv_param;
+ rmmi_spc_edtp_param_struct *edtp_param;
+ rmmi_spc_esetdev_param_struct *esetdev_param;
+ rmmi_spc_esov_param_struct *esov_param;
+ rmmi_spc_esmv_param_struct *esmv_param;
+ rmmi_spc_essma_param_struct *essma_param;
+} rmmi_spc_param_union;
+#endif /* __DUAL_TALK_MODEM_SUPPORT__ */
+
+typedef struct
+{
+ kal_uint8* sensor_name;
+ kal_uint8* sensor_data;
+} rmmi_tty_port_read_data_struct;
+
+#endif /* _RMMI_CONTEXT_H */
+
diff --git a/mcu/protocol/interface/l4misc/sdm_sms_struct.h b/mcu/protocol/interface/l4misc/sdm_sms_struct.h
new file mode 100644
index 0000000..e691a73
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/sdm_sms_struct.h
@@ -0,0 +1,80 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * sdm_sms_struct.h
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+
+
+#ifndef _SDM_SMS_STRUCT_H
+#define _SDM_SMS_STRUCT_H
+
+#include "kal_general_types.h"
+
+
+/* MSG_ID_SDM_SMS_STATUS_IND */
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 sms_available;
+ kal_uint8 sms_allowed;
+} sdm_sms_status_ind_struct;
+
+
+
+#endif /* _SDM_SMS_STRUCT_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/smsal_l4c_enum.h b/mcu/protocol/interface/l4misc/smsal_l4c_enum.h
new file mode 100644
index 0000000..19cea1c
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/smsal_l4c_enum.h
@@ -0,0 +1,475 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * smsal_l4c_enum.h
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file contains the enumerations which related to interface of
+ * SMSAL and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *==============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *==============================================================================
+ *******************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _SMSAL_L4C_ENUM_H
+#define _SMSAL_L4C_ENUM_H
+
+#include "ps_public_enum.h" //mtk02589 MPM
+#include "kal_general_types.h"
+
+/* SIM file enum and NVRAM file enum are used together with maximum enum size*/
+typedef kal_uint16 smsal_file_enum;
+
+typedef enum
+{
+ SMSAL_NORMAL_INIT,
+ SMSAL_PARAM_INIT_ONLY,
+ SMSAL_RESET_INIT
+} smsal_init_type_enum;
+
+typedef enum
+{
+ /* follows intended for AT commands and MMI */
+ SMSAL_DEL_INDEXED_MSG = 0, /* delete specified msg */
+ SMSAL_DEL_READ_MSG, /* delete all read msg */
+ SMSAL_DEL_READ_SENT_MSG, /* delete all read/sent msg */
+ SMSAL_DEL_READ_MO_MSG, /* delete all read/mobile-originated msg */
+ SMSAL_DEL_ALL_MSG, /* delete all msg */
+
+ /* follows intended only for MMI */
+#ifdef __DEL_READ_SMS_EXTENSION__
+ SMSAL_DEL_NEW_MSG,
+ SMSAL_DEL_SENT_MSG,
+ SMSAL_DEL_DRAFT_MSG,
+#endif
+ SMSAL_DEL_INBOX,
+ SMSAL_DEL_OUTBOX,
+ SMSAL_DEL_BITMAP /* delete according bitmap */
+} smsal_del_flag_enum;
+
+/*
+ * message type identifier
+ */
+typedef enum
+{
+ SMSAL_MTI_DELIVER = 0x00,
+ SMSAL_MTI_DELIVER_REPORT = 0x00,
+ SMSAL_MTI_SUBMIT = 0x01,
+ SMSAL_MTI_SUBMIT_REPORT = 0x01,
+ SMSAL_MTI_STATUS_REPORT = 0x02,
+ SMSAL_MTI_COMMAND = 0x02,
+
+ SMSAL_MTI_UNSPECIFIED = 0x03, /* MMI shall handle this case,
+ * eg, displaying "does not support",
+ * or "cannot display", etc */
+ SMSAL_MTI_ILLEGAL = 0x04
+} smsal_mti_enum;
+
+typedef enum
+{
+ SMSAL_VPF_NOT_PRESENT = 0x00,
+ SMSAL_VPF_ENHANCED = 0x01,
+ SMSAL_VPF_RELATIVE = 0x02,
+ SMSAL_VPF_ABSOLUTE = 0x03
+
+} smsal_vp_format_enum;
+
+
+/*
+ * CNMI destination code
+ */
+typedef enum
+{
+ SMSAL_INVALID_DEST = 0,
+ SMSAL_TO_LMI,
+ SMSAL_TO_RMI
+} smsal_nmi_dest_enum;
+
+typedef enum
+{
+ NOT_SHOW_HEADER = 0,
+ SHOW_HEADER
+} smsal_show_header_enum;
+
+typedef enum
+{
+ SMSAL_SM_FIRST = 0x00,
+ SMSAL_ME_FIRST = 0x01
+} smsal_sms_prefer_order_enum;
+
+typedef enum
+{
+ SMSAL_PDU_MODE = 0,
+ SMSAL_TEXT_MODE,
+ NUM_OF_SMSAL_MSG_FORMAT
+} smsal_msg_format_enum;
+
+typedef enum
+{
+ SMSAL_MMS_DISABLE =0,
+ SMSAL_MMS_ENABLE_UNTIL_TIMEOUT,
+ SMSAL_MMS_ENABLE
+} smsal_more_msg_mode_enum;
+
+typedef enum
+{
+ SMSAL_SERVICE0 = 0,
+ SMSAL_SERVICE1
+} smsal_service_mode_enum;
+
+typedef enum
+{
+ EXACTLY_INDEXING,
+ NEXT_INDEXING
+} smsal_read_type_enum;
+
+typedef enum
+{
+ SMSAL_SEND_MSG,
+ SMSAL_SEND_CMD
+} smsal_send_type_enum;
+
+typedef enum
+{
+ CNMA_MODE_TEXT_MODE,
+ CNMA_MODE_RP_ACK,
+ CNMA_MODE_RP_ERROR
+} smsal_cnma_mode_enum;
+
+typedef enum
+{
+ SMSAL_MTSMS_PARA_MMS = 0x0001,
+ SMSAL_MTSMS_PARA_RP = 0x0002,
+ SMSAL_MTSMS_PARA_SRI = 0x0004
+} smsal_mt_sms_para_enum;
+
+typedef enum
+{
+ /* In current phase, only "Relative" VP is supported */
+
+ /* Reply Path NOT request, Status Report NOT request */
+ SMSAL_DEFAULT_FO = 0x11,
+
+ /* Reply Path request, Status Report NOT request */
+ SMSAL_RP_FO = 0x91,
+
+ /* Reply Path NOT request, Status Report request */
+ SMSAL_SR_FO = 0x31,
+
+ /* Reply Path request, Status Report request */
+ SMSAL_RP_SR_FO = 0xb1
+} smsal_first_octet_enum;
+
+/*
+ * This enum is used in SMSAL module internally
+ */
+typedef enum
+{
+ SMSAL_GSM7_BIT = 0,
+ SMSAL_EIGHT_BIT,
+ SMSAL_UCS2,
+ SMSAL_ALPHABET_UNSPECIFIED
+
+} smsal_alphabet_enum;
+
+typedef enum
+{
+ SMSAL_CLASS0 = 0,
+ SMSAL_CLASS1,
+ SMSAL_CLASS2,
+ SMSAL_CLASS3,
+ SMSAL_CLASS_UNSPECIFIED,
+
+ SMSAL_MW_DISCARD, /* follows are for SMSAL internal use */
+ SMSAL_MW_STORE,
+ SMSAL_RCM,
+ NUM_OF_NMI_MSG_ENUM
+} smsal_msg_class_enum;
+
+
+typedef enum
+{
+ SMSAL_MSG_TYPE_NORMAL ,
+ SMSAL_MSG_TYPE_CLASS0 ,
+ SMSAL_MSG_TYPE_UPDATE_ONLY
+} smsal_display_type_enum;
+
+
+/* Enums for Relative format */
+typedef enum
+{
+ SMSAL_VP_1_HR = 11, /* 1 hour */
+ SMSAL_VP_6_HR = 71, /* 6 hours */
+ SMSAL_VP_12_HR = 143, /* 12 hours */
+ SMSAL_VP_24_HR = 167, /* 24 hours = 1 day */
+ SMSAL_VP_72_HR = 169, /* 72 hours = 3 days */
+ SMSAL_VP_1_WEEK = 173, /* 1 week */
+ SMSAL_VP_MAX = 255 /* 63 weeks */
+} smsal_vp_enum;
+
+
+// SMSAL_MW_OTHER == SMSAL_MW_VIDEO_MSG in SIM EFmwis
+// SMSAL_MW_OTHER != SMSAL_MW_VIDEO_MSG in (U)SIM EFmwis
+typedef enum
+{
+ SMSAL_MW_VM = 0,
+ SMSAL_MW_FAX,
+ SMSAL_MW_EMAIL,
+ SMSAL_MW_OTHER,
+ SMSAL_MW_VIDEO_MSG,
+ NUM_OF_MSG_WAITING_TYPE
+} smsal_msg_waiting_type_enum;
+
+typedef enum
+{
+ SMSAL_EVMI_NOTIFICATION = 0x00,
+ SMSAL_EVMI_DELETE_CONFIRMATION = 0x01
+} smsal_sms_evmi_type_enum;
+
+typedef enum
+{
+ SMSAL_ENQUIRY_CMD = 0, /* enquiry relating to previously submitted SM */
+ SMSAL_CANCEL_SRR_CMD, /* cancel status report request */
+ SMSAL_DEL_CMD, /* delete previously submitted SM */
+ SMSAL_ENABLE_SRR_CMD /* enable status report request */
+} smsal_cmd_type_enum;
+
+typedef enum
+{
+ SMSAL_MEM_FULL_NORMAL, /* both SIM and ME are full */
+ SMSAL_SM_FULL_ONLY,
+ SMSAL_ME_FULL_ONLY
+} smsal_mem_full_enum;
+
+typedef enum
+{
+ SMSAL_MEM_EXCEED_NORMAL,
+ SMSAL_SM_EXCEED_WITH_CLASS2
+} smsal_mem_exceed_enum;
+
+typedef enum
+{
+ SMSAL_MEM_AVAIL_NORMAL, /* corresponding to SMSAL_MEM_FULL_NORMAL */
+ /* one of storage is avail. it will be sent */
+ SMSAL_SM_AVAIL_ONLY, /* corresponding to SMSAL_SM_FULL_ONLY */
+ SMSAL_ME_AVAIL_ONLY /* corresponding to SMSAL_SM_FULL_ONLY */
+} smsal_mem_avail_enum;
+
+typedef enum
+{
+ SMSAL_COPY_MSG,
+ SMSAL_MOVE_MSG
+} smsal_copy_action_enum;
+
+typedef enum
+{
+ SMSAL_L4C_IMS_MO,
+ SMSAL_L4C_IMS_MT,
+ SMSAL_L4C_IMS_SMMA,
+ SMSAL_L4C_IMS_STKSMS,
+ SMSAL_L4C_IMS_CMSS
+}smsal_l4c_ims_enum;
+
+typedef enum
+{
+ SMSAL_IMS_DOMAIN,
+ SMSAL_CS_DOMAIN,
+ SMSAL_UNSPECIFIED_DOMAIN
+}smsal_domain_enum;
+
+typedef enum
+{
+ SMSAL_AT_CSCB, //AT+CSCB
+ SMSAL_AT_ECSCBSW,
+ SMSAL_AT_ECSCBCFG
+}smsal_cb_cmd_enum;
+
+typedef enum
+{
+ L4CSMS_CS_CALL_NOT_PRESENT,
+ L4CSMS_CS_CALL_PRESENT
+}l4csms_cs_call_status_enum;
+
+typedef enum {
+ SMSAL_ERRNO_SUCCESS,
+ SMSAL_ERRNO_FAIL,
+ SMSAL_ERRNO_SIM_SWITCH
+}smsal_errno_enum;
+
+#endif /* _SMSAL_L4C_ENUM_H */
+
+
diff --git a/mcu/protocol/interface/l4misc/tcm2l4c_struct.h b/mcu/protocol/interface/l4misc/tcm2l4c_struct.h
new file mode 100644
index 0000000..3c13339
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/tcm2l4c_struct.h
@@ -0,0 +1,533 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * TCM2L4C_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MAUI
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of TCM and L4C.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _TCM2L4C_STRUCT_H
+#define _TCM2L4C_STRUCT_H
+
+//------------------------------ suggest Add ------------------------------
+//#include "kal_non_specific_general_types.h"
+#include "l4c2tcm_func.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "l3_inc_local.h"
+//#include "app_ltlcom.h"
+//#include "l4c_common_enum.h"
+#include "l4c2tcm_struct.h"
+#include "mmi_l3_enums.h"
+#include "tcm_context.h"
+#include "tftlib_common_struct.h"
+
+//------------------------------ suggest Add ------------------------------
+#include "kal_general_types.h"
+#include "ps_public_struct.h"
+#include "ps_public_enum.h"
+
+#ifdef __CDMA2000_RAT__
+#include "c2k_irat_msg_struct.h"
+#else
+#define MAX_PDN_NUM (5)
+#endif
+
+/* __APP_SECONDARY_PDP_SUPPORT__ */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+} tcm_pdp_reactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool cause2_present ; // if network has cause_2 value in ACTIVATE_PDP_CONTEXT_ACCEPT
+ ps_cause_enum cause2; /* Relay cause_2 value from SM. */
+ pdp_addr_type_enum pdp_type;
+ kal_uint8 primary_context_id;
+ kal_bool arrearage_flag;
+ rat_enum rat;
+} tcm_pdp_activate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool cause2_present;
+ ps_cause_enum cause2;
+ pdp_addr_type_enum pdp_type;
+ kal_bool arrearage_flag;
+} l4c_tcm_eps_attach_cnf_struct; // convert it to l4bpdn_l4c_lte_attach_pdn_activate_success_ind_struct
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ ps_cause_enum cause; /* reject cause (also used for cause_2) */
+ kal_bool is_change_to_apn_class_present;
+ kal_uint8 change_to_apn_class;
+} l4c_tcm_eps_attach_rej_struct; // convert it to l4bpdn_l4c_lte_attach_pdn_activate_failure_ind_struct
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_bool is_rejected_by_nw; // if this PDP is rejected by NW using SM peer msg, KAL_TRUE, else, KAL_FALSE
+ ps_cause_enum cause; /* reject cause (also used for cause_2) */
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+ kal_bool is_change_to_apn_class_present;
+ kal_uint8 change_to_apn_class;
+ rat_enum rat;
+} tcm_pdp_activate_rej_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 primary_context_id;
+} tcm_pdp_activate_ind_struct;
+
+//#ifdef __TURN_ON_GENERAL_SECONDARY_PDP__
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 primary_context_id;
+} tcm_sec_pdp_activate_ind_struct;
+//#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ qos_struct new_neg_qos; /* Obsoleted */
+ kal_bool tft_changed;
+ kal_bool qos_changed;
+ kal_uint8 primary_context_id;
+} tcm_pdp_modify_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ ps_cause_enum cause; /* reject cause*/
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+} tcm_pdp_modify_rej_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ qos_struct new_neg_qos; /* Obsoleted */
+ kal_bool tft_changed;
+ kal_bool qos_changed;
+ kal_uint8 primary_context_id;
+
+ kal_bool is_cause_present;
+ ps_cause_enum cause;
+} tcm_pdp_modify_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 primary_context_id;
+ l4c_result_enum result;
+ ps_cause_enum cause; // Used by RAT_TCM when value == RAT_TCM_RETRY_NEEDED_AFTER_IRAT
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+ rat_enum rat;
+} tcm_pdp_deactivate_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ ps_cause_enum cause; /* deactivation cause*/
+ kal_uint8 primary_context_id;
+ kal_bool is_T3396_present; /* __MTC_SUPPORT__ */
+ kal_uint32 T3396_value_in_sec; /* __MTC_SUPPORT__ */
+ rat_enum rat;
+} tcm_pdp_deactivate_ind_struct;
+
+typedef struct {
+ l4ctcm_bearer_notify_type_enum notify_type;
+ kal_uint8 cid;
+ kal_uint8 nsapi; // bearer_id
+ kal_bool tft_present;
+ tft_info_struct tft;
+
+} l4ctcm_dedicated_bearer_event_report_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4ctcm_ps_event_report_type_enum event_id;
+
+ union
+ {
+ l4ctcm_dedicated_bearer_event_report_struct dedicate_event;
+ }report_content;
+
+} l4ctcm_ps_event_report_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 valid_contexts;
+ kal_uint8 context_id[GPRS_MAX_PDP_SUPPORT];
+ kal_uint8 bearer_capability[GPRS_MAX_PDP_SUPPORT];
+} l4ctcm_bearer_capability_ind_struct; //hspa_mmi_h2
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 result;
+ ps_cause_enum error_cause; /* erica 20060320 */
+} l4ctcm_set_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id; // Jeffery NEW!
+ kal_uint8 result;
+ ps_cause_enum error_cause; /* erica 20060320 */
+} l4ctcm_set_context_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4ctcm_ladn_info_list_struct ladn_info_list;
+} l4ctcm_ladn_info_update_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ ps_cause_enum cause;
+} l4ctcm_set_acl_mode_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ ps_cause_enum cause;
+ kal_uint16 start_index;
+ kal_uint16 num_of_entries;
+ kal_bool more_flag;
+ tcm_acl_entry_struct acl_list[TCM_MAX_PEER_ACL_ENTRIES];
+} l4ctcm_get_acl_entries_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ ps_cause_enum cause;
+} l4ctcm_add_acl_entry_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ ps_cause_enum cause;
+} l4ctcm_set_acl_entry_cnf_struct;
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result;
+ ps_cause_enum cause;
+} l4ctcm_del_acl_entry_cnf_struct;
+
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_pri_pdp_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_sec_pdp_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_extended_pdp_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_qos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_eqos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_ppp_auth_info_cnf_struct;
+//typedef l4ctcm_set_context_cnf_struct l4ctcm_set_gprs_account_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_eps_qos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_vgqos_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_undefine_pdp_info_cnf_struct; //mtk00714 w0637: AT definition
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_cgauth_info_cnf_struct;
+typedef l4ctcm_set_context_cnf_struct l4ctcm_set_egpco_cnf_struct;
+
+//typedef l4ctcm_set_context_cnf_struct l4ctcm_set_ppp_auth_cnf_struct; // mtk02126 define this struct for MSC to recognize MAUI_02420720
+
+typedef l4ctcm_set_cnf_struct l4ctcm_start_cnf_struct;
+typedef l4ctcm_set_cnf_struct l4ctcm_sync_apn_info_cnf_struct;
+typedef l4ctcm_set_cnf_struct l4ctcm_set_msq_mode_cnf_struct ; /* __MEDIATEK_SMART_QOS__ */
+typedef l4ctcm_set_cnf_struct l4ctcm_set_msq_entry_cnf_struct ; /* __MEDIATEK_SMART_QOS__ */
+
+//typedef tcm_pdp_activate_ind_struct rat_tcm_print_embedded_activate_ind_struct;
+typedef tcm_pdp_deactivate_ind_struct rat_tcm_print_embedded_deactivate_ind_msg_struct;
+typedef tcm_pdp_modify_ind_struct rat_tcm_print_embedded_modify_ind_msg_struct;
+typedef tcm_sec_pdp_activate_ind_struct rat_tcm_print_embedded_sec_activate_ind_msg_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 result;
+ ps_cause_enum error_cause;
+} l4ctcm_enter_data_mode_cnf_struct; //mtk02285, 20110322
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ kal_uint8 result;
+ ps_cause_enum error_cause;
+} l4ctcm_leave_data_mode_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 pdn_num;
+ l4ctcm_at_report_struct pdn[MAX_PDN_NUM];
+}l4ctcm_set_multiple_pdn_info_cnf_struct;
+
+
+typedef struct{
+ LOCAL_PARA_HDR
+ l4ctcm_set_specific_context_req_struct piggyback_req;
+ kal_uint16 set_success_context_id;
+
+}l4ctcm_set_specific_context_cnf_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_prim_pdp_info_list_struct l4c_prim_pdp_info_list;
+} tcm_ut_check_callback_l4ctcm_get_pri_pdp_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_PRI_PDP_INFO, l4c_prim_pdp_info_list_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_sec_pdp_info_list_struct l4c_sec_pdp_info_list;
+} tcm_ut_check_callback_l4ctcm_get_sec_pdp_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_SEC_PDP_INFO, l4c_sec_pdp_info_list_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_qos_list_struct l4c_qos_list;
+} tcm_ut_check_callback_l4ctcm_get_qos_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_QOS_INFO, l4c_qos_list_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_config_option_list_struct l4c_config_option_list;
+} tcm_ut_check_callback_l4ctcm_get_config_option_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_CONFIG_OPTION_INFO, l4c_config_option_list_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_eqos_list_struct l4c_eqos_list;
+} tcm_ut_check_callback_l4ctcm_get_eqos_info_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_EQOS_INFO, l4c_eqos_list_struct
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_encode_sdu_size_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_ENCODE_SDU_SIZE, kal_uint16 val_ptr
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_decode_sdu_size_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_DECODE_SDU_SIZE, kal_uint16 val_ptr
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 val;
+} tcm_ut_check_callback_l4ctcm_encode_bit_rate_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_ENCODE_BIT_RATE, kal_uint16 val_ptr
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 rate;
+} tcm_ut_check_callback_l4ctcm_decode_bit_rate_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_DECODE_BIT_RATE, kal_uint32 rate_ptr
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_encode_transfer_delay_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_ENCODE_TRANSFER_DELAY, kal_uint16 val_ptr
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 val;
+} tcm_ut_check_callback_l4ctcm_decode_transfer_delay_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_DECODE_TRANSFER_DELAY, kal_uint16 delay_ptr
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 length;
+ kal_uint8 addr[100];
+} tcm_ut_check_callback_l4ctcm_get_pdp_addr_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_PDP_ADDR, kal_uint8 length, kal_uint8 addr[100]
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 total_context[100];
+ kal_uint8 state_list[100];
+} tcm_ut_check_callback_l4ctcm_get_context_state_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_CONTEXT_STATE, kal_uint8 total_context[100], kal_uint8 state_list[100]
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 empty_gprs_prof_entry[100];
+} tcm_ut_check_callback_l4ctcm_get_empty_gprs_prof_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_EMPTY_GPRS_PROF, kal_uint8 empty_gprs_prof_entry[100]
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool auth_type;
+} tcm_ut_check_callback_l4ctcm_get_ppp_auth_struct;
+//MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_PPP_AUTH, kal_bool is_chap
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool callback_func_return_value;
+} tcm_ut_check_callback_check_pdp_context_exist_or_during_activating_func_struct;
+// MSG_ID_TCM_UT_CHECK_CALLBACK_CHECK_PDP_CONTEXT_EXIST_OR_DURING_ACTIVATING_FUNC
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool callback_func_return_value;
+ kal_uint8 valid_contexts;
+ kal_uint8 context_id[GPRS_MAX_PDP_SUPPORT];
+ kal_uint8 bearer_capability[GPRS_MAX_PDP_SUPPORT];
+} tcm_ut_check_callback_l4ctcm_get_bearer_capability_struct;
+// MSG_ID_TCM_UT_CHECK_CALLBACK_L4CTCM_GET_BEARER_CAPABILITY
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} tcm_ut_result_ok_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_prim_pdp_rdp_info_struct info ;
+} tcm_ut_l4ctcm_get_pri_pdp_rdp_info_struct ; // l4ctcm_get_pri_pdp_rdp_info()
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_sec_pdp_rdp_info_struct info ;
+} tcm_ut_l4ctcm_get_sec_pdp_rdp_info_struct ; // l4ctcm_get_sec_pdp_rdp_info()
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_prim_pdp_info_struct info ;
+} tcm_ut_l4ctcm_get_pri_pdp_info_struct ; // l4ctcm_get_pri_pdp_info()
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ l4c_sec_pdp_info_struct info ;
+} tcm_ut_l4ctcm_get_sec_pdp_info_struct ; // l4ctcm_get_sec_pdp_info()
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 context_id ;
+ pdp_addr_type_enum pdp_type ;
+ pdp_addr_len_enum pdp_len ;
+ kal_uint8 pdp_addr[IPV4V6_ADDR_LEN] ;
+} tcm_ut_l4ctcm_get_nw_applied_pdp_info_struct ; // l4ctcm_get_pdp_addr() and l4ctcm_get_pdp_addr_type()
+
+typedef struct{
+ LOCAL_PARA_HDR
+ session_info_block_struct session_info;
+} tcm_ut_l4ctcm_get_sib_info_struct;
+
+typedef struct{
+ LOCAL_PARA_HDR
+ tcmesm_pco_struct pco;
+} tcm_ut_etcm_cid_get_pco_result_struct;
+//MSG_ID_TCM_UT_ETCM_CID_GET_PCO_RESULT
+
+typedef struct{
+ LOCAL_PARA_HDR
+ tcm_pic_struct pic;
+} tcm_ut_pic_context_dump_struct;
+// MSG_ID_TCM_UT_PIC_CONTEXT_DUMP
+
+/* mtk03537: for LTE concatenated message in peer buffer */
+typedef struct {
+ PEER_BUFF_HDR
+ kal_uint8 embed_msg_num;
+ kal_uint32 embed_msg_id[10]; // at most 11 nsapis (nsapi 5~15), therefore, embedded at most have 10 entries
+ local_para_struct *embed_local_param[10]; // at most 11 nsapis (nsapi 5~15), therefore, embedded at most have 10 entries
+} tcm_embed_struct;
+
+
+/* MPH1 E911*/
+typedef struct {
+ LOCAL_PARA_HDR
+} l4ctcm_ecc_rej_by_nw_in_attach_ind_struct;
+
+#endif
+
+
diff --git a/mcu/protocol/interface/l4misc/tcm_rattcm_struct.h b/mcu/protocol/interface/l4misc/tcm_rattcm_struct.h
new file mode 100644
index 0000000..5838f7e
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/tcm_rattcm_struct.h
@@ -0,0 +1,125 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2005
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * TCM_RATTCM_STRUCT.H
+ *
+ * Project:
+ * --------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * This file describes the common struct of ugTCM/eTCM and RAT_TCM
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+/********************************************************************************
+* Copyright Statement:
+* --------------------
+*
+* This product has been developed using a protocol stack
+* developed by Sasken Communication Technologies Limited.
+*
+********************************************************************************/
+
+#ifndef _TCM_RATTCM_STRUCT_H
+#define _TCM_RATTCM_STRUCT_H
+
+#include "kal_general_types.h"
+
+#include "irat_common_struct.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ irat_type_enum irat_type;
+ rat_type_enum source_rat;
+ rat_type_enum target_rat;
+ irat_result_enum irat_result;
+} tcm_rat_change_complete_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 context_id;
+ tcm_pdp_deact_reason_enum deact_reason;
+ // if tft conflict and need to deactivate a context, ugTCM/eTCM use this message to inform RAT_TCM. if > 1 context need to be deactivated, ugTCM/eTCM need to send several msgs to RAT_TCM
+} tcm_rat_tcm_init_deactivate_context_ind_struct;
+
+#endif // _TCM_RATTCM_STRUCT_H
diff --git a/mcu/protocol/interface/l4misc/vdm_atp_enums.h b/mcu/protocol/interface/l4misc/vdm_atp_enums.h
new file mode 100644
index 0000000..4ad72a0
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/vdm_atp_enums.h
@@ -0,0 +1,220 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2013
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ * Filename:
+ * ------------
+ * vdm_atp_enums.h
+ *
+ * Project:
+ * ------------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * This file defines the enum between VDM and IMS Proxy.
+ *
+ * Author:
+ * -----------
+ * -------
+ *
+ *===========================================================
+ * $Log$
+ *
+ * 07 27 2020 yulong.chang
+ * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature
+ * VoData VDM part
+ *
+ * 03 05 2020 chen-wei.lan
+ * [MOLY00502400] [Gen97][UNITE][5G][SA][HEAT][R15_SA_MRAT_AFR_3G4G5G_1]Delay observed in the Extended Service Request trigger
+ * vonr_off/volte_off when NR call fail
+ *
+ * 09 24 2019 danny.kuo
+ * [MOLY00440886] [Gen97] DSDA-like feature check in
+ * .
+ *
+ * 08 26 2019 chen-wei.lan
+ * [MOLY00433041] [Gen97][EPSFB] IT related issues
+ * uac
+ *
+ * 11 01 2018 kuan-wei.chen
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [VMOLY][VDM][MPD]
+ *
+ * 08 17 2018 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * l4c cc
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 04 18 2018 kuan-wei.chen
+ * [MOLY00320841] [Gen97][L4/SIM] patch L4C/RAC/SIM/CC NAS-SV related and refactor code back to GEN97.DEV
+ * [Gen97 DEV] : VDM/L4 rearch - VDM part
+ *
+ * 06 26 2017 jerry.cheng
+ * [MOLY00259370] .EVADSMOD rearch
+ * .EVADSMOD rearch
+ *
+ * 04 07 2017 jerry.cheng
+ * [MOLY00240312] [93] CT VoLTE modem re-architecture
+ * .[CT VoLTE] hVoLTE / E911 configuration, VDM re-arch, extend AT+EVADMOD, AT+EMVSS
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] CLCCS .remove CLCC cnf check for unsync call(C2K) in order to fulfill C2K call waiting
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] STK/UTK
+ *
+ * 09 03 2015 lexel.yu
+ * [MOLY00130859] [ViLTE] add AT+ECCP/AT+EIMSCCP in ADS
+ * .
+ *
+ * 08 26 2015 ben.chiu
+ * [MOLY00138217] [ViLTE] M0 migration ViLTE feature Interface
+ * ViLTE interface patch back
+ *
+ * 12 05 2014 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * [MOLY00085717] [VoLTE] Android L release VoLTE refactory for VDM and ATP
+ *****************************************************************************/
+
+#ifndef _VDM_ATP_ENUMS_H_
+#define _VDM_ATP_ENUMS_H_
+
+#define VDM_ATP_CLCC_CLCCS_ERROR 255
+
+typedef enum {
+ CODE_NO_CARRIER = 0,
+ CODE_ERROR,
+ CODE_OK
+} vdm_atp_at_cmd_result_enum;
+
+typedef enum
+{
+ VDM_ADS_MODE_AUTOMATIC = 0, // LTE(IMS), WG(CS), 1x(C2K)
+ VDM_ADS_MODE_CS_ONLY, // WG(CS)
+ VDM_ADS_MODE_3GPP_ONLY, // LTE(IMS), WG(CS)
+ VDM_ADS_MODE_3GPP2_ONLY, // 1x(C2K)
+ VDM_ADS_MODE_IMS_1xCS_ONLY, // LTE(IMS), 1x(C2K)
+ VDM_ADS_MODE_WGCS_1xCS_ONLY // WG(CS), 1x(C2K)
+} vdm_ads_mode_enum;
+
+typedef enum
+{
+ VDM_ADS_ECC_PREFERRED_DOMAIN_NONE = 0, // Not preferred
+ VDM_ADS_ECC_PREFERRED_DOMAIN_WGCS, // WG(CS)
+ VDM_ADS_ECC_PREFERRED_DOMAIN_1xCS // 1x(C2K)
+} vdm_ads_ecc_preferred_domain_enum;
+
+typedef enum
+{
+ VDM_ADS_RESULT_REPORT_DISABLE = 0,
+ VDM_ADS_RESULT_REPORT_ENABLE,
+} vdm_ads_result_report_mode_enum;
+
+typedef enum
+{
+ VDM_ADS_RESULT_CS = 0,
+ VDM_ADS_RESULT_IMS_VOLTE,
+ VDM_ADS_RESULT_IMS_WIFI,
+ VDM_ADS_RESULT_IMS_NR,
+ VDM_ADS_RESULT_REJECT,
+ VDM_ADS_RESULT_IMS_VODATA_1, // VoData on protocol 1
+ VDM_ADS_RESULT_IMS_VODATA_2, // VoData on protocol 2
+ VDM_ADS_RESULT_IMS_VODATA_3, // VoData on protocol 3
+ VDM_ADS_RESULT_IMS_VODATA_4, // VoData on protocol 4
+} vdm_ads_result_enum;
+
+typedef enum
+{
+ VDM_VIDEO_CAPABILITY_3GVT = 0x01,
+ VDM_VIDEO_CAPABILITY_VILTE = 0x02,
+ VDM_VIDEO_CAPABILITY_VIWIFI = 0x04,
+ VDM_VIDEO_CAPABILITY_VINR = 0x08,
+
+ VDM_VIDEO_CAPABILITY_MAX = 0xff,
+} vdm_video_capability_enum;
+
+typedef enum
+{
+ VDM_TRK_TR_TRIGGER_MD_SEDN_STK_CALL_SETUP = 0,
+ VDM_TRK_TR_TRIGGER_MD_SEDN_STK_CALL_SETUP_BUT_ICON_COULD_NOT_DSPL = 4
+} vdm_stk_type_enum;
+
+typedef enum
+{
+ EMCSS_CAUSE_GLOBAL_CHANGE_REQUIRED = 0,
+ EMCSS_CAUSE_T_WWAN_911_TIMEOUT = 1,
+ EMCSS_CAUSE_MAX = 0xff
+} vdm_emcss_cause_enum;
+
+typedef enum
+{
+ VDM_ATP_MT_CALL_ALLOW = 0,
+ VDM_ATP_MT_CALL_REJECT = 1,
+ VDM_ATP_MT_CALL_APPROVAL_ENABLE = 2,
+ VDM_ATP_MT_CALL_APPROVAL_DISABLE = 3,
+} vdm_atp_mt_call_approval_mode_enum;
+
+//DSDA-like, AT+EVOLTESI = <mode>
+typedef enum
+{
+ VDM_TRK_ENH_VOLTE_SI_OFF = 0,
+ VDM_TRK_ENH_VOLTE_SI_LEVEL1,
+ VDM_TRK_ENH_VOLTE_SI_LEVEL2,
+ VDM_TRK_ENH_VOLTE_SI_LEVEL3,
+ VDM_TRK_ENH_VOLTE_SI_NUM
+} vdm_trk_enh_volte_si_enum;
+
+//+EAIC:x,x,x,x,x,,,<evoltesi_flow>
+typedef enum
+{
+ VDM_ENH_VOLTE_SI_FLOW_OFF = 0,
+ VDM_ENH_VOLTE_SI_FLOW_ON
+} vdm_enh_volte_si_flow_enum;
+
+#endif // _VDM_ATP_ENUMS_H_
diff --git a/mcu/protocol/interface/l4misc/vdm_atp_struct.h b/mcu/protocol/interface/l4misc/vdm_atp_struct.h
new file mode 100644
index 0000000..1189729
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/vdm_atp_struct.h
@@ -0,0 +1,1613 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2013
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ * Filename:
+ * ------------
+ * vdm_atp_struct.h
+ *
+ * Project:
+ * ------------
+ * MOLY
+ *
+ * Description:
+ * ------------
+ * This file defines the interface messages between VDM and IMS Proxy.
+ *
+ * Author:
+ * -----------
+ * -------
+ *
+ *===========================================================
+ * $Log$
+ *
+ * 06 21 2022 vijay.goyal
+ * [MOLY00765081] [FeatureDevelopment][ALPSAR06336232] TMOUS 22Q1 Requirement Gap Development - UE MO Timer F1
+ * .
+ *
+ * 01 27 2022 taffy.cheng
+ * [MOLY00803278] [Gen97][MD700] CR patch-back from R3.MP
+ *
+ * [MOLY00678551][MOLY00679592][MOLY00686355][MOLY00683334][MOLY00701221][MOLY00721364][MOLY00773738] Patch Back
+ *
+ * 01 10 2022 ot_hitesh.c
+ * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
+ * .
+ *
+ * 12 16 2021 ot_hitesh.c
+ * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
+ * .
+ *
+ * 12 01 2020 yulong.chang
+ * [MOLY00598875] Request a SRVCC CS Call Resource control by VDM
+ *
+ * ALPS05460502
+ *
+ * 10 14 2020 chen-wei.lan
+ * [MOLY00580995] [Titan97]IPC c2k call flow change for VDM enabled
+ * titan c2k
+ *
+ * 08 28 2020 chen-wei.lan
+ * [MOLY00562709] [5GHP][feature][Data&Call]game space mode
+ * .
+ *
+ * 08 14 2020 yulong.chang
+ * [MOLY00543239] [MT6883][VoNR] request to support API for call preference change
+ *
+ * Add At command ECNWS
+ *
+ * 07 27 2020 yulong.chang
+ * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature
+ * VoData VDM part
+ *
+ * 03 16 2020 chen-wei.lan
+ * [MOLY00504146] [5G-A][5G Modem·sfeature]ɬ¤Æ5G±µ¤J±±¨î
+ * ssac opt
+ *
+ * 03 10 2020 chen-wei.lan
+ * [MOLY00504146] [5G-A][5G Modem·sfeature]ɬ¤Æ5G±µ¤J±±¨î
+ * ssac opt
+ *
+ * 12 08 2019 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [patch back]6996240,7189967,7222841,7241346,7367549,8756435
+ *
+ * 12 02 2019 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [patch back]8519908,8519818,8915296,9086988,9086148,9085815,9318206,9357101
+ *
+ * 11 20 2019 chen-wei.lan
+ * [MOLY00460626] [Petrus]BSP+][Q0][Operator IOT] ECC cannot be established by RJIL after flight mode
+ * fix eXreg
+ *
+ * 11 13 2019 chen-wei.lan
+ * [MOLY00458901] [Rose][Petrus]BSP+][Q0]The CMCC volte card will register E network all the time.(Once)
+ * AT+EMCI=0
+ *
+ * 10 31 2019 chen-wei.lan
+ * [MOLY00455800] [Rose][Petrus]BSP+][Q0]The DUT will popup ECBM.(Once)
+ * add +VMCCMNC urc handling for VDM
+ *
+ * 10 25 2019 chen-wei.lan
+ * [MOLY00454520] ¡idump¡j??Éó?¥d??¤U?¥´120¡Amodem «? 1/5
+ * fix emcs
+ *
+ * 10 17 2019 chen-wei.lan
+ * [MOLY00449571] [MT6885][Petrus][Q0][MP1][SI2][SQC][China][SH][4GMM][FT][hVoLTE][hVoLTE_FT_2.1]sim1 C2K call failure after 4G3
+ * fix AT+EIMSCFG.
+ *
+ * 09 24 2019 danny.kuo
+ * [MOLY00440886] [Gen97] DSDA-like feature check in
+ * .
+ *
+ * 01 30 2019 kuan-wei.chen
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [VMOLY.EVB.SEPT.DEV][MPD] sync VDM CL: 6995175~7345261
+ *
+ * 11 01 2018 kuan-wei.chen
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * [VMOLY][VDM][MPD]
+ *
+ * 08 17 2018 chen-wei.lan
+ * [MOLY00346647] [MT6297][VDM/L4] changes for 97
+ * l4c cc
+ *
+ * 05 24 2018 szu-chieh.chiu
+ * [MOLY00328315] [IMS][Gen95] Emergency PDN handover
+ * Emergency PDN handover.
+ *
+ * 05 23 2018 yulong.chang
+ * [MOLY00327672] [UMOLYE][Rose][MERLOT][O1][BSP+][Initial Tool]The device was not regist network after some operate.(once)
+ * VDM relay +CIEV:102,X to AP
+ *
+ * 05 03 2018 jerry.cheng
+ * [MOLY00322938] ?�H�ƥd����`?VOLTE - notify C2K call end to L4 (VDM part)
+ * .[UMOLYE] Send AT+EHVOLTE=0,2 to notify L4 C2K call end in order not to block switching to SRLTE mode
+ *
+ * 03 29 2018 yulong.chang
+ * [MOLY00313953] [UMOLYE][VDM][Vzw][CDMA-less][PCO] Trigger NWSEL search for Vzw CDMA less if UE has received PCO_FF00H=5 and AP radio control off and timer expired and UE is roaming
+ * PCO FF00H 5 - VDM main part
+ *
+ * 03 13 2018 yulong.chang
+ * [MOLY00312598] [DSBP] patch back "D-SBP enhancment for all modem" to UMOLYE and TC01.R3.DEV
+ * EFUN/CFUN controlled by L4BPWR (VDM part)
+ *
+ * 02 23 2018 yulong.chang
+ * [MOLY00309362] [Rose][Sylvia][O1][BSP+][Telephony switch]The ECC call will dialing all the time.(Once)
+ *
+ * improve +EMCSS (VDM part)
+ *
+ * 12 18 2017 yulong.chang
+ * [MOLY00296177] [MT6293][GMSS] prefer RAT handling enhancement
+ * Add one parameter in AT+EMCSS.
+ *
+ * AT+EMCSS=1,[<available_rat>,<prefer_rat>,<is_new_call>]
+ *
+ * 12 01 2017 yulong.chang
+ * [MOLY00293536] [VDM][TMO-US][RTT] Redial voice only VoLTE EMCl when RTT VoLTE EMC fail (VDM part)
+ * TMO RTT redial
+ *
+ * 12 01 2017 yulong.chang
+ * Roll back MOLY00291130
+ *
+ *
+ * 11 23 2017 jerry.cheng
+ * [MOLY00291130] [R3][VZW feature] VZ_REQ_e911_30203 (EMC call type)
+ * .rollback to resolve autosync conflict
+ *
+ * 11 21 2017 jerry.cheng
+ * [MOLY00287748] [93][TMO][VDM] Digits implementation
+ * .[TMO][Digits] modify query TRN AT cmd/URC format
+ *
+ * 11 21 2017 yulong.chang
+ * [MOLY00288769] [Zion][N1][Free Test][MCD][TEFT]make a vilte call,the picture is unclear(5/5) (vdm part)
+ * notify ERRC IMS call RAT (VDM part)
+ *
+ * 11 06 2017 jerry.cheng
+ * [MOLY00287748] [93][TMO][VDM] Digits implementation
+ * .Digits implementation - VDM part
+ *
+ * 09 01 2017 yulong.chang
+ * [MOLY00274843] [CDMA-less][LR12] main CR (VDM part)
+ * [LR11.MP5->UMOLYA sync] MOLY00262171 [CDMA-less][LR12] main CR (VDM part)
+ *
+ * 08 31 2017 yulong.chang
+ * [MOLY00274168] [MT6293][NWSIM][Regression][TC_9_3_1_3] UE return CME error for ATD01234567890;
+ * ALPS03464343 Bug fix (also reference At+CFUN)
+ *
+ * 08 30 2017 yulong.chang
+ * [MOLY00274412] [6755][E66_DUGL][ITS#1174]Without SIM and make Emergency call:911, DUT will met call drop
+ * [LR11.MP5->UMOLYA sync] MOLY00255649 [6755][E66_DUGL][ITS#1174]Without SIM and make Emergency call:911, DUT will met call drop
+ *
+ * 08 28 2017 yulong.chang
+ * [MOLY00274096] [VzW] addl call_domain_cause - IMSP/VDM/IMC part
+ * [LR11.MP5->UMOLYA sync] MOLY00254610 [VzW] addl call_domain_cause - IMSP/VDM/IMC part
+ *
+ * 08 24 2017 yulong.chang
+ * [MOLY00272923] [Bianco][N1][MTK FT][SRLTE][CT 6M C][LZ][Random] call can't hang up (ATP part)
+ * .
+ *
+ * 08 17 2017 jerry.cheng
+ * [MOLY00271227] [UMOLYA] [Rose][Vinson][N1]The ECC call will can't be dial out success.(5/5)
+ * [LR12->UMOLYA sync] [MOLY00259723] send call_status_req to NAS/AS : VDM/ATP - add call_type in AT+EVVS
+ *
+ * 08 17 2017 yulong.chang
+ * [MOLY00271652] [TCL][MICKEY6T TMO] [IMS/VoLTE] - L_IMS_VoLTE_50944_1 - for VDM/IMSP check-in
+ * [LR11.MP5->UMOLYA sync] MOLY00250915 [TCL][MICKEY6T TMO] [IMS/VoLTE] - L_IMS_VoLTE_50944_1 - for VDM/IMSP check-in
+ *
+ * 08 15 2017 jerry.cheng
+ * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
+ * .[LR12->UMOLYA sync] MOLY00264006[LR12] patch back Skip ACB feature/VDM part to LR12
+ *
+ * 07 25 2017 jerry.cheng
+ * [MOLY00262992] [93][VDM] IMS parameter OTA update
+ * .OPPO IMS parameter OTA update
+ *
+ * 07 19 2017 jerry.cheng
+ * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
+ * .[LR11.MP5 to UMOLYA].
+ * porting [MOLY00215268] [VDM][ATT] ACB enable, select CS domain to dial up call. VDM part.
+ * porting [MOLY00215276] [VDM][ATT] ACB enable, select CS domain to dial up call. NVRAM part
+ *
+ * 07 19 2017 jerry.cheng
+ * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
+ * .[LR11.MP5 to UMOLYA] porting [MOLY00206357] [VzW] Call Pull & VICE Feature
+ *
+ * 06 26 2017 jerry.cheng
+ * [MOLY00259370] .EVADSMOD rearch
+ * .EVADSMOD rearch
+ *
+ * 04 25 2017 jerry.cheng
+ * [MOLY00242146] [93][VDM] bug fix
+ * .rename EVADSMOD parameter
+ *
+ * 04 19 2017 jerry.cheng
+ * [MOLY00242146] [93][VDM] bug fix
+ * .fix C2K ECPI
+ *
+ * 04 07 2017 jerry.cheng
+ * [MOLY00240312] [93] CT VoLTE modem re-architecture
+ * .[CT VoLTE] +CIEV: 102,2 for ECBM mode no need
+ *
+ * 04 07 2017 jerry.cheng
+ * [MOLY00240312] [93] CT VoLTE modem re-architecture
+ * .[CT VoLTE] hVoLTE / E911 configuration, VDM re-arch, extend AT+EVADMOD, AT+EMVSS
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ *
+ * .AT+EVIVS support for indicating ERRC to occupy CS semaphore in VoLTE/ViTLE/VoWifFI/ViWiFI period
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] relay conference call number from UA to CSCC
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] CLCCS .remove CLCC cnf check for unsync call(C2K) in order to fulfill C2K call waiting
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] STK/UTK
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] EIMSCFG - VDM part
+ *
+ * 04 05 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .[M3] 380 redial as ECC by VDM
+ *
+ * 02 20 2017 jerry.cheng
+ * [MOLY00221572] [Gen93][L4 integration][VDM]
+ * .+EVPC2K.
+ *
+ * 01 06 2017 jerry.cheng
+ * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
+ * rename IMSP to ATP, ATP related files.
+ *
+ * 01 05 2017 jerry.cheng
+ * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
+ * rename IMSP to ATP.
+ *
+ * 01 05 2017 chinte.chen
+ * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
+ * fixed VDM codegen failure
+ *
+ * 11 02 2016 jerry.cheng
+ * [MOLY00211075] [93][VDM][L4 Integration] CC AT cmd merge
+ * sync [MOLY00204150] TK vzw hVoLTE/E911 implementation
+ *
+ * . ATP part.
+ *
+ * 11 02 2016 jerry.cheng
+ * [MOLY00211075] [93][VDM][L4 Integration] CC AT cmd merge
+ * sync [MOLY00204150] TK vzw hVoLTE/E911 implementation
+ *
+ * TK hVoLTE: L4/ATP/VDM.
+ *
+ * 10 13 2016 timo.korpela
+ * [MOLY00206906] [FT][NL][VoLTE]he hidden caller ID does not work when make call to alphanumeric SIP-URI.
+ * Implemented handling for CLIR parameter received in AT+CDU command.
+ *
+ * 08 11 2016 kuan-wei.chen
+ * [MOLY00196499] [Jade N0][TK]Waiting call screen show "Unknown" when receive a waiting call from hiden number - vdm/atp source file
+ * .
+ *
+ * 06 27 2016 lexel.yu
+ * [MOLY00183611] [VZW_LC_IOT][PH1_VZW][Radio_Protocol][NDET_Lab] hVoLTE 2.2.40_Option-A fail
+ * Add AT+EICE=3 workaround for silent redial
+ *
+ * 06 06 2016 yingfui.hung
+ * [MOLY00171513] [PH1_VZW][joint-camp][GPS][Privacy Test] When Device's Location Setting is 'Location OFF', GPS work.
+ *
+ * .
+ *
+ * 06 01 2016 kuan-wei.chen
+ * [MOLY00146327] [VzW] hVoLTE implementation
+ * vzw patchback - L4, VDM
+ *
+ * 03 23 2016 yingfui.hung
+ * [MOLY00168587] [MT6755][Jade M6][MP3][L+W][In-house FTA][Case Fail][VoLTE] TC_11.2.2 FAIL
+ *
+ * .
+ *
+ * 03 08 2016 yingfui.hung
+ * [MOLY00167924] [L4][R12] Handling of SCM at VDM/SDM/L4 part
+ *
+ * .
+ *
+ * 12 16 2015 xinwei.cui
+ * [MOLY00153299] [VILTE][Anite][v37][E40][12.21]FAIL
+ * .
+ *
+ * 12 15 2015 kuan-wei.chen
+ * [MOLY00153140] [D1][WFC][M0] WFC preference if wifi only, disable WFC, prompt "server unreachable" when make a call. - VDM part
+ * wifi only mode is active only when AT+EIMSWFC=1
+ *
+ * 12 14 2015 kuan-wei.chen
+ * [MOLY00150109] [IMS Feature] Non-UE detectable emergency call R12 feature
+ * .
+ *
+ * 12 01 2015 kuan-wei.chen
+ * [MOLY00133272] [NTT DOCOMO][VoLTE][IO030143] UE sends SM__ACTIVATE_PDP_CONTEXT_REQUEST unexpectedly
+ * DCM, 1504929
+ *
+ * 11 26 2015 yingfui.hung
+ * [MOLY00116938] [VOLTE][NTT DOCOMO] requirement 5A.7.1.1 Service category
+ *
+ * .
+ *
+ * 11 13 2015 lexel.yu
+ * [MOLY00149112] [VDM] NAS should keep search network when IMS call over WiFi ongoing
+ *
+ * .
+ *
+ * 09 14 2015 lexel.yu
+ * [MOLY00141573] [UMOLY][LR11][TMO][IMS] bCSFB
+ * .
+ *
+ * 08 26 2015 ben.chiu
+ * [MOLY00138217] [ViLTE] M0 migration ViLTE feature Interface
+ * ViLTE interface patch back
+ *
+ * 07 09 2015 nick.wang
+ * [MOLY00127009] WFC Patch back to UMOLY- interface part
+ * .moly wfc interface patch
+ *
+ * 07 09 2015 nick.wang
+ * [MOLY00127009] WFC Patch back to UMOLY- interface part
+ * .jade interface sync
+ *
+ * 06 11 2015 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * [MOLY00114718] [VDM][Volunteer Patch] Patch back for MOLY trunk
+ * ATDC for conference call
+ *
+ * 06 10 2015 edwin.liu
+ * [MOLY00120219] Merge MOLY ATP changes to UMOLY
+ * .
+ *
+ * 06 05 2015 edwin.liu
+ * ATP to UMOLY.
+ *
+ * 04 09 2015 lexel.yu
+ * [MOLY00106459] [MT6291][IMS] VoLTE call event download
+ * IMS Call Event Download
+ *
+ * 03 16 2015 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * [MOLY00080860] fix typo: replace vdm_atp_snd_ads_staus_req_struct by vdm_atp_snd_ads_status_req_struct
+ * [MOLY00093643] [K2][CMCC][VoLTE][NS-IOT][R&S][TC 5.2.9.2][B3-E38]UE GSM??????^LTE?????????`? fail
+ *
+ * 02 24 2015 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * [MOLY00095972] [CMCC VoLTE][VDM] Add "4 to 23G" and "23G to 4" for IRAT event.
+ *
+ * 12 05 2014 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * [MOLY00085717] [VoLTE] Android L release VoLTE refactory for VDM and ATP
+ *
+ * 11 26 2014 lexel.yu
+ * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
+ * [MOLY00083542] [L4]add a new internal URC to notify VDM STK call number (+ESTKCNUM)
+ * VDM part
+ *
+ * 11 05 2014 lexel.yu
+ * [MOLY00083035] [VDM] IMS call information
+ * .
+ *
+ * 09 02 2014 allan.ke
+ * [MOLY00075245] Change the algorithm of ADS SSAC timer control and include IMSVoPS as the conditions for domain selection when dialing emergency call
+ *
+ * 04 25 2014 tehuang.liu
+ * [MOLY00063538] [6290E2][VoLTE][VDM] Support VoLTE Gemini architecture
+ * not use compile options for VoLTE Gemini interface structures definition
+ *
+ * 04 23 2014 tehuang.liu
+ * [MOLY00063538] [6290E2][VoLTE][VDM] Support VoLTE Gemini architecture
+ * Check in VoLTE+Gemini related interfaces for VDM, ATP, L4C, EVAL, and ERRC
+ *
+ * 04 11 2014 tehuang.liu
+ * [MOLY00062327] [6290E2][VoLTE][VDM] Support STKCALL in CS domain
+ * .
+ *
+ * 04 09 2014 jinghan.wang
+ * [MOLY00062091] [IMS][VoLTE] Check in STKCALL part for VDM TRK
+ * .
+ *
+ * 02 20 2014 benjamin.kuo
+ * [MOLY00056441] Use string instead enum for call type in CRING
+ * .
+ *
+ * 02 17 2014 benjamin.kuo
+ * [MOLY00056253] Merge SRVCC implementation from personal CBr to MOLY trunk
+ * SRVCC
+ *
+ * 02 14 2014 benjamin.kuo
+ * [MOLY00055885] [6290E2][VoLTE][MWC] incorrect URC oder of VDM and ATP
+ * +CRING
+ *
+ * 12 10 2013 vend_edwin.liu
+ * ATP.
+ *****************************************************************************/
+
+#ifndef _VDM_ATP_STRUCT_H_
+#define _VDM_ATP_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ims_common_def.h"
+#include "vdm_imc_struct.h"
+#include "vdm_atp_enums.h"
+#include "ps_public_enum.h"
+#include "l3_inc_enums.h"
+#include "sim_public_enum.h"
+#include "mcd_l3_inc_struct.h"
+#include "c2k_irat_msg_struct.h"
+#include "l4b_vdm_struct.h"
+#include "l4_vdm_enum.h"
+
+#define VDM_AT_CMD_TO_MD_NAME_LEN 32
+#define VDM_AT_CMD_TO_MD_VALUE_LEN 512
+
+typedef enum
+{
+ VDM_IRAT_STATUS_IDLE = 0,
+ VDM_IRAT_STATUS_ONGOING
+} vdm_irat_status_enum;
+
+
+typedef enum
+{
+ ADS_PROGRESS_ATTEMPT = 0,
+ ADS_PROGRESS_SUCCESS
+} ads_indication_progress_enum;
+
+
+typedef enum
+{
+ ADS_DOMAIN_CS = 0,
+ ADS_DOMAIN_IMS
+} ads_indication_domain_enum;
+
+typedef enum
+{
+ VDM_ADS_CALL_TYPE_INVALID = 0,
+ VDM_ADS_VOICE_OVER_CS,
+ VDM_ADS_VOICE_OVER_LTE,
+ VDM_ADS_VIDEO_OVER_LTE
+}vdm_ads_call_type_enum;
+
+typedef enum
+{
+ AP_CALL_STATE_IDLE = 0,
+ AP_CALL_STATE_RINGRING_FOR_MT_ONLY,
+ AP_CALL_STATE_OFFHOOK,
+} ap_call_state_enum;
+
+typedef enum
+{
+ AP_CALL_REASON_NORMAL = 0,
+ AP_CALL_REASON_SILENT_REDIAL,
+} ap_call_reason_enum;
+
+typedef enum
+{
+ AP_CALL_TYPE_VOICE = 0,
+ AP_CALL_TYPE_VIDEO,
+} ap_call_type_enum;
+
+/******************************************************************************
+ * Common AT command structure
+ *****************************************************************************/
+
+/*
+ * temp. for UT by MSC
+ */
+typedef struct
+{
+ kal_uint8 at_cmd_string[128];
+
+} at_cmd_buf_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_result_code_enum result;
+ ims_err_id_enum err_id;
+} vdm_atp_common_at_rsp_struct;
+
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_common_at_cnf_struct;
+
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 ecpi_type;
+ ims_ecpi_info_struct ecpi_info;
+} vdm_atp_common_cs_cc_epci_ind_struct;
+
+
+/******************************************************************************
+ * ATD<num> or ATD<num>;
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
+ kal_bool is_video_call;
+} vdm_atp_cmd_dial_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_rsp_struct;
+
+/******************************************************************************
+ * AT+CDV=<dial_num>,,,,,,so
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
+ kal_uint8 so;
+} vdm_atp_cmd_cdv_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_cdv_rsp_struct;
+
+/******************************************************************************
+ * AT+CDU=1,<uri>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_uri[MAX_CC_CDU_URI_LEN];
+ kal_bool video_call;
+ kal_uint8 clir;
+} vdm_atp_cmd_dial_uri_ind_struct;
+
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_result_code_enum result;
+ ims_err_id_enum err_id;
+ kal_uint8 call_id;
+} vdm_atp_cmd_dial_uri_rsp_struct;
+
+
+/******************************************************************************
+ * AT+STKCALL=0
+ * NOTE: This AT command is forwarded from ATP to VDM.
+ * NOTE: For AT_STKCALL=x where x!=0, this AT command is not forwarded to VDM.
+ *****************************************************************************/
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ sat_terminal_res_enum tr; // o or 4
+ kal_uint8 additional_info;
+} vdm_atp_cmd_stk_call_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ proxy_cmd_result_enum result;
+ atp_err_id_enum err_id;
+} vdm_atp_cmd_stk_call_rsp_struct;
+
+
+/******************************************************************************
+ * AT+EVADSMOD=<mode>,<ecc_preferred_domain>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vdm_ads_mode_enum ads_mode;
+ vdm_ads_ecc_preferred_domain_enum ads_ecc_preferred_domain;
+} vdm_atp_cmd_ads_mode_ind_struct;
+
+
+/******************************************************************************
+ * AT+EVADSREP=<mode>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vdm_ads_result_report_mode_enum ads_result_report_mode;
+} vdm_atp_cmd_ads_result_report_ind_struct;
+
+
+
+
+/******************************************************************************
+ * ATDE<num>;
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
+} vdm_atp_cmd_dial_emerg_ind_struct;
+
+/******************************************************************************
+ * ATDER=<num>,<call_id>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
+ kal_uint8 call_id;
+} vdm_atp_cmd_dial_emerg_retry_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_emerg_rsp_struct;
+
+typedef vdm_atp_common_at_cnf_struct vdm_atp_cs_cc_emerg_call_cnf_struct;
+
+
+/******************************************************************************
+ * ATDF<dial_string>,<from_line>[;]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
+ kal_uint8 from_line[IMC_MAX_URI_LENGTH];
+ kal_bool is_video_call;
+} vdm_atp_cmd_dial_from_line_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_from_line_rsp_struct;
+
+
+/******************************************************************************
+ * AT+ECALLPULL
+ * This command is used to dial with call pull
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 dial_uri[MAX_CC_CDU_URI_LEN];
+ kal_bool video_call;
+} vdm_atp_cmd_dial_call_pull_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_result_code_enum result;
+ ims_err_id_enum err_id;
+ kal_uint8 call_id;
+} vdm_atp_cmd_dial_call_pull_rsp_struct;
+
+/******************************************************************************
+ * AT+EWFCP=<profile>;
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ wfc_profile_enum wfc_profile;
+} vdm_atp_cmd_wfc_profile_ind_struct;
+
+
+/******************************************************************************
+ * AT+EVPC2K=<is_voice_prefer_c2k>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_voice_prefer_c2k;
+} vdm_atp_cmd_voice_call_prefer_c2k_ind_struct;
+
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=130>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],"<pau">,[<disc_cause>]
+ *****************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_ecpi_info_struct ecpi_info;
+} vdm_atp_snd_ecpi_mo_call_id_alloc_req_struct;
+
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=0>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_ecpi_info_struct ecpi_info;
+} vdm_atp_snd_ecpi_mt_call_setup_req_struct;
+
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=133>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_ecpi_info_struct ecpi_info;
+ kal_bool is_far_end;
+} vdm_atp_snd_ecpi_call_release_req_struct;
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type=137>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_ecpi_info_struct ecpi_info;
+} vdm_atp_snd_ecpi_rtt_redial_req_struct;
+
+/******************************************************************************
+ * +ECPI:<call_id>,<msg_type!=0,130,133>,<is_ibt>,<is_tch>,<dir>,
+ * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
+ *****************************************************************************/
+typedef vdm_atp_common_cs_cc_epci_ind_struct vdm_atp_cs_cc_ecpi_translate_ind_struct;
+
+typedef vdm_atp_cs_cc_ecpi_translate_ind_struct vdm_atp_cs_cc_ecpi_translate_rsp_struct;
+typedef vdm_atp_cs_cc_ecpi_translate_ind_struct vdm_atp_c2k_cc_ecpi_translate_rsp_struct;
+
+
+/******************************************************************************
+ * AT+CHLD=[<n>]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_call_related_ss_type_enum opcode;
+ ims_cc_mo_disconnect_cause_enum cause;
+} vdm_atp_cmd_call_related_ss_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_call_related_ss_rsp_struct;
+
+typedef vdm_atp_cmd_call_related_ss_ind_struct vdm_atp_cs_cc_call_related_ss_req_struct;
+
+/******************************************************************************
+ * ATH
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_cmd_hangup_all_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_hangup_all_rsp_struct;
+
+/******************************************************************************
+ * AT+ECHUP=<call_id>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+} vdm_atp_cmd_force_hangup_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_force_hangup_rsp_struct;
+
+/******************************************************************************
+ * Combine ims_cc_eaic_info_struct with l4b_cc_eaic_info_struct
+ *****************************************************************************/
+typedef struct
+{
+ kal_uint8 number[MAX_CC_ECPI_NUM_LEN];
+ ims_call_type_enum call_type;
+ ims_call_mode_enum call_mode;
+ kal_uint8 redirect_num[MAX_CC_ECPI_NUM_LEN]; // CS CC
+ kal_uint8 digit_to_line_number[IMC_MAX_URI_LENGTH]; // IMS CC
+} vdm_atp_cc_eaic_info_struct;
+
+/******************************************************************************
+ * +EAIC: <call_id>,<number>,<type>,<call_mode>,<seq_no>[,<redirect_num>[,<digit_to_line_num>]]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ vdm_atp_cc_eaic_info_struct eaic_info;
+ kal_uint8 seq_no;
+ vdm_enh_volte_si_flow_enum evoltesi_flow;
+} vdm_atp_snd_mt_call_approve_req_struct;
+
+/******************************************************************************
+ * AT+EAIC=<mode>,<call_id>,<seq_no>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 seq_no;
+ vdm_atp_mt_call_approval_mode_enum eaic_mode;
+ ims_cc_eaic_result_enum eaic_result;
+ atp_cmd_mode_enum cmd_mode;
+ kal_uint16 reject_cause;
+} vdm_atp_cmd_mt_call_approve_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ atp_cmd_mode_enum cmd_mode;
+ ims_result_code_enum result;
+ ims_err_id_enum err_id;
+ vdm_atp_mt_call_approval_mode_enum eaic_mode;
+} vdm_atp_cmd_mt_call_approve_rsp_struct;
+
+/******************************************************************************
+ * ATA
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_cmd_mt_call_accept_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_mt_call_accept_rsp_struct;
+
+/******************************************************************************
+ * VTS=<dtmf>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 digit;
+} vdm_atp_cmd_dtmf_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dtmf_rsp_struct;
+
+/******************************************************************************
+ * AT+EVTS=<action>,<digit>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_dtmf_action_enum action;
+ kal_uint8 digit;
+} vdm_atp_cmd_ext_dtmf_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_ext_dtmf_rsp_struct;
+
+/******************************************************************************
+ * AT+CEER
+ * +CEER:<cause>,<report>
+ * NOTE: ATP maps <ceer_cause> (int) to <report> (char string)
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_cmd_ext_error_report_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_ext_error_report_enum ceer_cause;
+ ims_result_code_enum result;
+ ims_err_id_enum err_id;
+ kal_uint16 ecc_category;
+} vdm_atp_cmd_ext_error_report_rsp_struct;
+
+/******************************************************************************
+ * AT+CSTA:<type>
+ * NOTE: ATP multicasts this command to VDM (without rsp) and ATCI
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 type;
+} vdm_atp_cmd_select_type_of_addr_ind_struct;
+
+
+/******************************************************************************
+ * AT+CLCC
+ * +CLCC:<idx>,<dir>,<stat>,<mode>,<mpty>,[<number>,<type>[,<alpha>[,<priority>[,<CLI_validity>]]]]...
+ *****************************************************************************/
+typedef vdm_imc_ims_cc_list_current_calls_req_struct
+ vdm_atp_cmd_list_current_calls_ind_struct;
+
+//avoid modifying ims_interface_md.h, declare new structure for CS CLCC
+typedef struct {
+ kal_uint8 call_id;
+ ims_call_dir_enum dir;
+ ims_call_state_enum call_state;
+ ims_call_mode_enum call_mode;
+ kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
+ ims_call_type_enum call_type;
+ kal_uint8 number[MAX_CC_ATD_NUM_LEN];
+ kal_uint8 cli_validity;
+} vdm_atp_call_list_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 total_call;
+ vdm_atp_call_list_struct call_list[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_list_current_calls_rsp_struct;
+
+
+/******************************************************************************
+ * AT+CLCCS
+ * +CLCCS: <ccid1>,<dir>,<neg_status_present>,<neg_status>,<SDP_md>,<cs_mode>,<ccstatus>,<mpty>,[,<numbertype>,<ton>,<number>[,<priority_present>,<priority>[,<CLI_validity_present>,<CLI_validity>]]]
+ *****************************************************************************/
+typedef vdm_atp_cmd_list_current_calls_ind_struct
+ vdm_atp_cmd_list_current_calls_ext_ind_struct;
+
+typedef struct {
+ kal_uint8 call_id;
+ l4_call_dir_enum dir;
+ l4_clccs_call_mode_enum clccs_cs_mode;
+ l4_call_ccstatus_enum ccstatus;
+ kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
+ l4_call_number_type_enum number_type;
+ l4_call_type_enum call_type;
+ kal_uint8 number[MAX_SIP_URI_LEN];
+ kal_bool cli_present;
+ kal_uint8 cli_validity;
+} vdm_atp_call_list_ext_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 total_call;
+ vdm_atp_call_list_ext_struct call_list[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_list_current_calls_ext_rsp_struct;
+
+/******************************************************************************
+ * +EADS: <progress>,<domain>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ads_indication_progress_enum progress;
+ ads_indication_domain_enum domain;
+} vdm_atp_snd_ads_status_req_struct;
+
+/******************************************************************************
+ * +EIMSINFO: <rat>,<cell_id>,<cell_service>, <plmn_id>,<plmn_type>,
+ * <lac>,<tac>,<support_emc>,<lte_underly_cs_plmn_id>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ cell_service_enum cell_service;
+ kal_bool is_limited_service_emc_support;
+ kal_uint32 cell_id;
+ plmn_id_struct plmn_id;
+ domain_id_enum domain_id;
+ plmn_id_struct lte_cs_plmn_id;//LTE underlying CS PLMN ID, only available for LTE combined attach UE
+#if defined(__NG_ECALL_SUPPORT__)
+ kal_bool is_ecall_support;
+#endif
+} vdm_atp_cell_info_update_ind_struct;
+
+/******************************************************************************
+ * +VMCCMNC: <mcc>,<mnc> (source PSW)
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn_id;
+} vdm_atp_c2k_mccmnc_ind_struct;
+
+/******************************************************************************
+ * IMS Registration relayed by ATP (source: IMC)
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_reg_state_enum reg_state;
+ ims_reg_type_enum reg_type;
+ ims_access_rat_enum rat;
+ ims_reg_service_enum reg_service;
+ ims_reg_event_enum reg_event;
+ imcb_imc_sip_cause_enum sip_cause;
+ ims_reg_sub_state_enum reg_sub_state;
+ kal_bool has_sent_register;
+} vdm_atp_ims_reg_status_ind_struct;
+
+/******************************************************************************
+ * AT+EVVS=<voice_status>,<is_emergency>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 voice_status;
+ kal_bool is_emergency;
+} vdm_atp_cmd_call_status_ind_struct;
+
+
+/******************************************************************************
+ * TODO
+ *****************************************************************************/
+
+typedef vdm_imc_ims_cc_list_current_calls_req_struct
+ vdm_atp_cs_cc_list_current_calls_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ // TODO
+} vdm_atp_snd_ads_attempt_notification_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ // TODO
+} vdm_atp_snd_ads_end_notification_req_struct;
+
+
+/******************************************************************************
+ * +CRING: <type>
+ * NOTE: <type> is string type but without ""
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_snd_mt_call_ring_req_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+/******************************************************************************
+ * AT+EGMC: <OP>,<Configure_Name>,<Set_Value>
+ * NOTE:in game mode to release ERRC
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_cmd_general_modem_configure_set_struct;
+
+/******************************************************************************
+ * AT+EVOLTESI: <mode>
+ * NOTE:Enhanced VOLTE Short Interruption is ON/OFF
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vdm_trk_enh_volte_si_enum is_enh_volte_si;
+} vdm_atp_cmd_enh_volte_si_ind_struct;
+
+/******************************************************************************
+ * +ECRFCPY: <call_id>,<call_status>
+ * NOTE:Enhance VOLTE call status update to normal
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 call_id;
+ ims_enh_volte_si_call_status_enum call_status;
+} vdm_atp_snd_enh_volte_si_call_status_ind_struct;
+
+/******************************************************************************
+ * +ECONFSRVCC: <call_no>,<call1_id>[,<call2_id>[,<call3_id>[,...]]]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 num_of_conf_parts;
+ kal_uint32 call_id_table[IMS_MAX_CALL_NUM];
+} vdm_atp_snd_srvcc_conf_call_id_req_struct;
+
+
+/******************************************************************************
+ * +EVADSREP: <domain>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vdm_ads_result_enum ads_result;
+} vdm_atp_snd_ads_result_report_req_struct;
+
+
+/******************************************************************************
+ * +ERDECCIND: <call_id>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+} vdm_atp_snd_ads_switch_to_emergency_req_struct;
+
+
+/******************************************************************************
+ * IMS Handover (WIFI/LTE) status relayed by ATP (source: IMC)
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_access_rat_enum source_rat;
+ ims_access_rat_enum target_rat;
+ ims_reg_type_enum reg_type;
+} vdm_atp_ims_handover_start_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_access_rat_enum source_rat;
+ ims_access_rat_enum target_rat;
+ kal_bool result;
+ ims_reg_type_enum reg_type;
+} vdm_atp_ims_handover_end_ind_struct;
+
+/******************************************************************************
+ * +EICE: <ims_call_exist>,<is_emergency>,<ims_access_rat>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 is_ims_call_exist;
+ kal_bool is_emergency;
+ ims_access_rat_enum ims_access_rat;
+#ifdef __TC01_IMS_SUPPORT__
+ kal_uint32 call_id;
+ ap_call_state_enum call_state;
+ ap_call_reason_enum call_reason;
+ ap_call_type_enum call_type;
+#endif
+} vdm_atp_cmd_ims_call_exist_ind_struct;
+
+/******************************************************************************
+ * AT+ECNWS=<available_rat>,<prefer_rat>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum available_rat;
+ rat_enum prefer_rat;
+} vdm_atp_cmd_call_nw_scan_ind_struct;
+
+/******************************************************************************
+ * AT+EDCONF
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 conf_call_participants;
+ kal_uint8 conf_call_number_list[IMS_MAX_CALL_NUM_IN_CONF][MAX_CC_ATD_NUM_LEN];
+ kal_bool is_video_call;
+} vdm_atp_cmd_dial_conf_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_conf_rsp_struct;
+
+/******************************************************************************
+ * +ECONFCHECK:<num_of_conf_call_members>,<is_allowed>[,<is_allowed>...
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 conf_call_participants;
+ kal_bool is_allowed[IMS_MAX_CALL_NUM_IN_CONF];
+} vdm_atp_snd_conf_check_result_req_struct;
+
+
+/******************************************************************************
+ * +QUERYTRN: <call_id>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 dial_string[MAX_CC_ECPI_NUM_LEN];
+ kal_uint8 from_line[IMC_MAX_URI_LENGTH];
+} vdm_atp_snd_digits_trn_query_req_struct;
+
+/******************************************************************************
+ * AT+DIGITSTRN=<call_id>,<TRN>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ kal_uint8 trn[MAX_CC_ATD_NUM_LEN];
+} vdm_atp_cmd_ads_digits_trn_ind_struct;
+
+
+/******************************************************************************
+ * EVTA
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 call_id;
+ ims_cc_evta_mode_enum mode;
+} vdm_atp_cmd_mt_vt_special_accept_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_mt_vt_special_accept_rsp_struct;
+
+/******************************************************************************
+ * AT+EIMSCCP=<op> / AT+ECCP=<op>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ vdm_video_capability_enum video_capability;
+ kal_bool on_off;
+} vdm_atp_cmd_video_capability_ind_struct;
+
+/******************************************************************************
+ * AT+EIMSCFG = <volte_cfg>, <vilte_cfg>, <vowifi_cfg>, <viwifi_cfg>, <ims_sms_cfg>, <eims_cfg>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ ims_cap_rat_enum vo3gpp_enable; // currently not used by VDM
+ ims_cap_rat_enum vi3gpp_enable; // previous AT+EIMSCCP
+ kal_bool is_vowifi_enable; // previous AT+EIMSWFC
+ kal_bool is_viwifi_enable; // previous AT+EIMSCCP, AP did not have this configuration
+} vdm_atp_cmd_ims_config_ind_struct;
+
+/******************************************************************************
+ * +EC2KREG: <domain>,<state>,<service>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ domain_id_enum domain;
+ kal_bool state;
+ irat_ps_type_enum service;
+} vdm_atp_c2k_service_state_ind_struct;
+
+/******************************************************************************
+ * +EC2KCI: <is_cs_conn_ongoing>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_cs_conn_ongoing;
+} vdm_atp_c2k_1x_conn_status_ind_struct;
+
+/******************************************************************************
+ * +EXXX: <reported_rat>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 reported_rat;
+} vdm_atp_reported_rat_ind_struct;
+
+/******************************************************************************
+ * AT+EHVOLTE=<mode>,<submode>
+ * This command is used to set hvolte mode
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ hvolte_mode_enum mode;
+ kal_uint8 submode;
+} vdm_atp_gmss_set_hvolte_mode_req_struct;
+
+typedef vdm_atp_common_at_cnf_struct vdm_atp_gmss_set_hvolte_mode_cnf_struct;
+
+/******************************************************************************
+ * AT+EMCS=<mode>
+ * This command is used to set emergency call session start and end
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_emc_session_start_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_emc_session_stop_ind_struct;
+
+/******************************************************************************
+ * AT+EMCB=<mode>
+ * This command is used to set emergency callback mode
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_emcb_mode_start_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_emcb_mode_stop_req_struct;
+
+/******************************************************************************
+ * AT+VMEMEXIT
+ * This command is used to exit emergency callback mode
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_cmd_exit_emcb_ind_struct;
+
+/******************************************************************************
+ * +ESVC:<emergency_service_category>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 emergency_service_category;
+ atp_cmd_mode_enum cmd_mode;
+} vdm_atp_cmd_emerg_serv_cat_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint16 emergency_service_category;
+ ims_result_code_enum result;
+ ims_err_id_enum err_id;
+ atp_cmd_mode_enum cmd_mode;
+} vdm_atp_cmd_emerg_serv_cat_rsp_struct;
+
+/******************************************************************************
+ * AT+EHVOLTE=0,1
+ * indication for silent redial event from AP to MD
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+} vdm_atp_hvolte_silent_redial_ind_struct;
+
+/******************************************************************************
+ * AT+ECBM
+ * This command is used to enter/exit emergency callback mode
+ *****************************************************************************/
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum ecbm_rat_mode;
+} vdm_atp_ecbm_mode_start_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum ecbm_rat_mode;
+} vdm_atp_ecbm_mode_stop_req_struct;
+
+/******************************************************************************
+ * AT+ECFGSET=<cfg_name>,<cfg_value>
+ * Set VDM setting through this AT command
+ *****************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 name[64];
+ kal_uint8 value[128];
+} vdm_atp_ecfg_set_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_ecfg_set_rsp_struct;
+
+/******************************************************************************
+ * AT+EIMSRTT=<op>
+ * Set rtt_capability through this AT command
+ *****************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 operation;
+} vdm_atp_cmd_rtt_capability_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_rtt_capability_rsp_struct;
+
+/******************************************************************************
+ * AT+ESELFACT="<key>","<value>"
+ * Set Vzw self-activation feature related value through this AT command
+ *****************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 key[16];
+ kal_uint8 value[16];
+} vdm_atp_cmd_self_activation_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_self_activation_rsp_struct;
+
+/******************************************************************************
+ * AT+VMEMEXIT result
+ *****************************************************************************/
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_vmemexit_rsp_struct;
+
+/******************************************************************************
+ * AT+EMCS=<mode>[,<airplane_mode>,<ims_reg_state>]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 airplane_mode;
+ kal_uint8 ims_reg_state;
+ atp_channel_enum ch_id;
+ kal_bool is_stop_from_ap;
+} atp_vdm_cmd_emcs_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ kal_uint8 airplane_mode;
+ kal_uint8 ims_reg_state;
+ atp_channel_enum ch_id;
+ kal_bool response_at_ok;
+} atp_vdm_cmd_emcs_cnf_struct;
+
+/******************************************************************************
+ * AT+EMCSS=<mode>,<available_rat>,<prefer_rat>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ rat_enum available_rat;
+ rat_enum prefer_rat;
+}atp_vdm_cmd_emcss_ind_struct;
+
+/******************************************************************************
+ * AT+ECBM=<mode>,<rat_mode>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 mode;
+ rat_enum rat_mode;
+} atp_vdm_cmd_ecbm_req_struct;
+
+/******************************************************************************
+ * +EMCSS: <available_rat>,<cause>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum available_rat;
+ vdm_emcss_cause_enum cause;
+} atp_vdm_snd_emcss_urc_req_struct;
+
+/******************************************************************************
+ * +ECNWS: <proc_status>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ proc_status_enum status;
+} atp_vdm_snd_ecnws_urc_req_struct;
+
+/******************************************************************************
+ * +CIEV: 102,<ecbm_status>
+ * ecbm_status:
+ * 0 - ECBM end
+ * 1 - ECBM start
+ * 2 - disable ECBM (notify AP need not to enter ECBM, leave emc mode directly)
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 ecbm_status;
+} atp_vdm_snd_ecbm_urc_req_struct;
+
+/******************************************************************************
+ * AT+ERDECCAPV=<is_approve>,<call_id>
+ * Set leaving flight mode result through this AT command
+ *****************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 is_approve;
+ kal_uint8 call_id;
+} vdm_atp_cmd_switch_to_emergency_ind_struct;
+
+/******************************************************************************
+ * AT+ESRVCCTFR: <call_num>, <call1_id>,<call1_mode>,<call1_direction>,<call1_state>,<call1_ecc_category>,<call1_number type>,<call1_number>,<call1_alpha>,<call1_CLI validity>
+ *****************************************************************************/
+typedef struct
+{
+ kal_uint8 call_id; /* call_id_ims = call_id_ap */
+ ims_srvcc_call_mode_enum call_mode;
+ ims_srvcc_call_direction_enum call_direction;
+ ims_srvcc_call_state_enum call_state;
+ ims_srvcc_call_ecc_category_enum call_ecc_category;
+ ims_srvcc_call_number_format_enum call_number_format;
+ kal_uint8 call_number[IMC_MAX_URI_LENGTH];
+ //these two parameter is defined by L4 but seems not used by IMS CC
+ kal_uint8 call_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
+ kal_uint8 cli;
+
+ //just for TK compatible, not sure how to use this in TC01 project
+ kal_uint8 num_of_conf_parts;
+} ims_srvcc_call_ctxt_to_cs_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 num_call;
+ ims_srvcc_call_ctxt_to_cs_struct srvcc_call_ctxt_to_cs_domain[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_srvcc_context_transfer_ind_struct; //MSG_ID_VDM_ATP_CMD_SRVCC_CONTEXT_TRANSFER_IND
+
+/******************************************************************************
+ * +ESRVCCTFR: <call_no>[,<call1_id>[,<call2_id>[,...]]]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint32 num_of_call_instances;
+ kal_uint32 call_id_table[IMS_MAX_CALL_NUM];
+} vdm_atp_cmd_srvcc_context_transfer_rsp_struct; // MSG_ID_VDM_ATP_CMD_SRVCC_CONTEXT_TRANSFER_RSP
+
+/******************************************************************************
+ * +ERESELR:<result>
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool result; //0, fail; 1, success
+} vdm_atp_ssac_resel_result_ind_struct;
+
+/******************************************************************************
+ * AT+EMGC
+ *****************************************************************************/
+typedef enum {
+ VDM_EMGC_OP_QUERY = 0,
+ VDM_EMGC_OP_SET
+} vdm_atp_emgc_op_enum;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ vdm_atp_emgc_op_enum op;
+ kal_uint8 name[VDM_AT_CMD_TO_MD_NAME_LEN];
+ kal_uint8 value[VDM_AT_CMD_TO_MD_VALUE_LEN];
+} vdm_atp_at_cmd_to_md_ind_struct;
+
+/******************************************************************************
+ * AT+EVODATA = <en>[,<data_mode>[,<allow_rat>]]
+ *****************************************************************************/
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_vodata_enable;
+} vdm_atp_cmd_evodata_config_ind_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+/******************************************************************************
+ * AT+CECALL=<type_of_eCall>[,<format>,<msd_data_length>,<msd_data>]
+ * Dial eCall through this AT command
+ *****************************************************************************/
+typedef struct {
+ LOCAL_PARA_HDR
+ ecall_type_enum ecall_type;
+ ecall_format_enum ecall_format;
+ kal_uint8 msd_data_len;
+ kal_uint8 msd_data[MAX_MSD_LENGTH];
+} vdm_atp_cmd_dial_ecall_ind_struct;
+
+typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_ecall_rsp_struct;
+#endif
+#endif // _VDM_ATP_STRUCT_H_
+
diff --git a/mcu/protocol/interface/l4misc/wo_l4bnw_struct.h b/mcu/protocol/interface/l4misc/wo_l4bnw_struct.h
new file mode 100644
index 0000000..b12b6cf
--- /dev/null
+++ b/mcu/protocol/interface/l4misc/wo_l4bnw_struct.h
@@ -0,0 +1,74 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2012
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ * wo_l4bnw_struct.h
+ *
+ * Project:
+ * --------
+ *
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ *
+ *
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ *
+ ****************************************************************************/
+
+
+#ifndef _WO_L4BNW_STRUCT_H
+#define _WO_L4BNW_STRUCT_H
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "l3_inc_enums_public.h"
+#include "l4bnw_public_struct.h"
+
+typedef struct {
+ LOCAL_PARA_HDR
+ l4bnw_public_attached_network_info_struct attached_network_info;
+} wo_l4bnw_attached_rat_ind_struct;
+
+#endif /* _WO_L4BNW_STRUCT_H */