[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/l4/mmi2mm_struct.h b/mcu/protocol/interface/l4/mmi2mm_struct.h
new file mode 100644
index 0000000..137bff1
--- /dev/null
+++ b/mcu/protocol/interface/l4/mmi2mm_struct.h
@@ -0,0 +1,661 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *	mmi2mm_struct.h
+ *
+ * Project:
+ * --------
+ *   MAUI
+ *
+ * Description:
+ * ------------
+ *   This file is intends for struct definition between MM and MMI/L4.
+ *
+ * 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!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * 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 : mmi2mm_struct.h
+ *  SYNOPSIS : Functions for encoding/decoding.
+ *
+ *                      R E V I S I O N    H I S T O R Y
+ *
+ */
+#ifndef _MMI2MM_STRUCT_H
+#define _MMI2MM_STRUCT_H
+
+#include "kal_general_types.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "ps_public_enum.h"
+#include "kal_public_defs.h"
+#include "nas_as_inter_core_enum.h"
+#ifdef __VOLTE_SUPPORT__
+#include "ims_common_def.h"
+#endif /* __VOLTE_SUPPORT__ */
+
+/* MM NVRAM Re-structure Start  */
+#include "l4_nvram_editor.h"
+#include "emm_nvram_editor.h"
+/* MM NVRAM Re-structure End  */
+#include "gmss_public.h"
+#include "l4_nvram_editor.h"
+#include "emm_nvram_editor.h"
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8   imei[9];
+    kal_uint8   imei_svn;
+    #if defined(__GEMINI__)
+    kal_uint8   peer_ps_imei[9];
+    #endif
+    kal_uint8 packed_drx_para[2];
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+    gprs_transfer_preference_enum prefer; //mtk02475: gprs_transfer_preference
+#endif
+#ifdef __TC02_SECURITY_REQUIREMENT__
+    kal_uint8 nvram_imsi_loci_gloci[MAX_LEN_OF_IMSI_LOCI_GLOCI]; //mtk02475: for man-in-middle-attack prevention
+#endif
+#ifdef __MM_INTEGRITY_PREF__
+    kal_bool is_disable_integrity_check;
+#endif 
+    nvram_ef_mm_data_struct    nvram_mm_data_info;
+    nvram_ef_t3346_timer_info_struct t3346_info;
+    init_cause_enum init_cause;
+} gmmreg_init_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 band;
+} gmmreg_band_sel_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    plmn_selection_mode_enum plmn_sel_mode;
+} gmmreg_sel_mode_req_struct;
+
+typedef struct {
+    kal_uint8 timer_unit;
+    kal_uint8 timer_value;
+} gmmreg_timer_struct;
+
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+typedef struct {
+    LOCAL_PARA_HDR
+    gprs_transfer_preference_enum prefer;
+} gmmreg_set_gprs_transfer_preference_req_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum detach_type; /* CS-only, PS-only or both CS/PS */
+    kal_bool power_off;   /* mobile shut down or not */
+    kal_uint8 att_id;      /* Johnny: 3G RAC, for attach_req and detach_req using */
+    l4c_rac_detach_cause_enum           detach_cause;
+} gmmreg_detach_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_main_ps;
+} gmmreg_data_allow_req_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_rsim_enabled;
+    kal_bool is_aka_sim_enabled;
+} gmmreg_rsim_aka_status_req_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    plmn_reselection_enum plmn_search_mode;       /* plmn_reselection_enum */
+    //kal_bool is_gprs_required; /* John Tang 2004/03/10: For at+cops = 2 then at+cops= 0 case. */
+    plmn_id_rat_struct selected_plmn; /* Selected PLMN */
+    kal_bool is_manual_csg_sel;
+    kal_uint32 csg_id;
+    rat_enum prefer_rat;   //  0:default ,  1:GSM ,   2:UMTS
+    kal_bool from_l4c;
+    kal_uint16 factory_mode_arfcn; //0xFFFF means invalid arfcn, /* 20081110 mtk00714, for fast camp on test machine */
+} gmmreg_plmn_search_req_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    plmn_id_rat_struct plmn_id_rat;
+} gmmreg_csg_list_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat_mode;              /* RATCM_RAT_ENUM*/
+    rat_enum active_rat;
+    domain_id_enum detach_domain; //for UEMODE:PS_MODE_x, CS domain should be detached first in RAT_MODE which contains RAT_LTE
+    rat_enum reported_rat;
+    rat_mode_change_cause_enum  rat_mode_change_cause;
+} gmmreg_set_rat_mode_req_struct;
+
+#ifdef __DYNAMIC_BAND_SEL__
+typedef struct {
+    LOCAL_PARA_HDR
+    band_selection_enum gsm_band; /* refer to band_selection_enum value*/
+    kal_bool is_gsm_band_present;
+    kal_uint8 umts_fdd_band[SIZE_OF_UMTS_BAND];    /* 3G band change */
+    kal_bool is_umts_band_present; /* 3G band change */
+}gmmreg_set_preferred_band_req_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool force_send_SCRI;
+    end_session_cause_enum cause;
+}gmmreg_end_ps_data_session_req_struct;
+
+#if defined(__GEMINI__)
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_config_status_enum sim_config_status;
+    sim_insert_status_enum sim_insert_status;
+}gmmreg_sim_status_update_req_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum  prefer_rat;
+}gmmreg_set_prefer_rat_req_struct;
+
+
+#ifdef __VOLTE_SUPPORT__
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                       is_ims_voice_available;
+} gmmreg_set_ims_voice_availability_req_struct;
+
+typedef  struct
+{
+    LOCAL_PARA_HDR
+    mm_ims_voice_termination        mm_ivt;
+} gmmreg_set_ims_voice_termination_req_struct;
+#endif /* __VOLTE_SUPPORT__ */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    act_sim_enum  active_sim;
+}gmmreg_active_sim_info_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    plmn_id_struct plmn;
+    rat_enum rat;
+    kal_uint8 ara_start[2];
+    kal_uint8 ara_end[2];
+}gmmreg_aral_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    rat_enum rat_mode; //User's setting, could be RAT_GSM or RAT_UMTS or RAT_GSM_UMTS
+    kal_bool is_pgcheck_on;
+    kal_uint8 causes;  // causes to be ignored.
+} gmmreg_set_pgcheck_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool mode;
+}gmmreg_cs_voice_call_protection_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rfoff_cause_enum rfoff_cause;
+}gmmreg_rfoff_req_struct;
+
+/* MSG_ID_GMMREG_SET_MS_SV_REQ */
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 svn;
+}gmmreg_set_ms_sv_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; 
+} gmmreg_cellular_network_config;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    gmmreg_cellular_network_config config;
+}gmmreg_cellular_network_config_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    elevator_mode_enum elevator_mode;
+}gmmreg_elevator_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    lte_normal_service_loss_reason_enum reason;
+}gmmreg_lte_normal_service_loss_update_req_struct;
+
+#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 purpose; //0 for EMM, 1 for MM
+    kal_uint8 mode; //0 reset timer, 1 for set timer
+    kal_uint32 timer1;
+    kal_bool is_timer1_valid;
+    kal_uint32 timer2;
+    kal_bool is_timer2_valid;
+} gmmreg_set_timer_req_struct;
+
+typedef struct
+{
+	LOCAL_PARA_HDR
+    ecall_registration_state_enum  ecall_reg_state;
+} gmmreg_set_ecall_registration_req_struct;
+#endif /*__ECALL_SUPPORT__ || __NG_ECALL_SUPPORT__ */
+
+#endif
+
+