[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/nwsel_mm_struct.h b/mcu/protocol/interface/general/nwsel_mm_struct.h
new file mode 100644
index 0000000..cad6aeb
--- /dev/null
+++ b/mcu/protocol/interface/general/nwsel_mm_struct.h
@@ -0,0 +1,394 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * nwsel_mm_struct.h
+ *
+ * Project:
+ * --------
+ * MONZA
+ *
+ * Description:
+ * ------------
+ * This file define the interface structure used by NWSEL_MM SAP
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ******************************************************************************/
+
+#ifndef NWSEL_MM_STRUCT_H
+#define NWSEL_MM_STRUCT_H
+
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "as2nas_struct.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "ps_public_enum.h"
+#include "rsvas_enum.h"
+#include "mm_mmi_enums.h"
+#include "mm_ratcm_enums.h"
+#include "gmss_nwsel_struct.h"
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 multi_plmn_count;
+ plmn_id_struct multi_plmn_id[MAX_NUM_MULTI_PLMN];
+ as_cell_type_enum multi_cell_type[MAX_NUM_MULTI_PLMN];
+ rat_enum rat;
+ /// source from cell reselection or search
+ found_ind_source_enum source;
+} nwsel_mm_plmn_found_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_plmn_search_lte_ongoing;
+ as_cell_type_enum cell_type; // 4G camped on cell type
+} nwsel_mm_search_status_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint16 gibi_tag;
+ rat_enum rat;
+ kal_bool is_data_pending;
+ kal_bool is_sys_info_present;
+ hplmn_status_enum hplmn_status;
+ fplmn_status_enum fplmn_status;
+ kal_bool is_in_eq_plmn_list;
+ mm_cell_change_enum abnormal_cell_change;
+ mm_cell_change_enum abnormal_rai_cell_change;
+ 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_bool is_dsac_present;
+ kal_uint16 cs_dsac;
+ kal_uint16 ps_dsac;
+#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;
+#ifdef __PS_SERVICE__
+ data_speed_support_enum cell_data_speed_support; /* MAUI_02361221: for egprs and hspa */
+#endif
+
+#if defined (__PPACR_SUPPORT__) || defined (UNIT_TEST)
+ kal_bool is_ppacr_present;
+ ppacr_info_struct ppacr_info;
+#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;
+} nwsel_mm_sys_info_update_req_struct;
+
+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;
+ plmn_id_struct plmn_id;
+ kal_bool is_on_hplmn;
+} nwsel_mm_cell_global_identity_info_update_req_struct;
+
+typedef mm_cell_global_identity_info_ind_struct nwsel_mm_cell_global_identity_info_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mode_switch_cause_enum cause;
+} nwsel_mm_global_mode_change_start_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_type_enum target_rat;
+ kal_uint8 freq_num;
+ kal_uint32 redirect_freq[MAX_REDIRECT_FREQ_NUM];
+ mt_csfb_type_enum mt_csfb_type;
+} nwsel_mm_need_duplex_mode_chg_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_as_plmn_list_present;
+ as_plmn_list_struct as_plmn_list;
+#ifdef __GEMINI__
+ as_suspend_mode_reason_enum cause; /* for RR suspend mode */
+#endif /* __GEMINI__ */
+ csfb_indicator_enum csfb_ind;
+ kal_bool is_nas_csfb_ongoing;
+ plmn_loss_reason_enum plmn_loss_reason;
+} nwsel_mm_plmn_loss_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_bool is_manual_list;
+ scan_type_enum scan_type;
+ kal_uint8 plmn_count;
+ plmn_id_struct plmn_id[MAX_NUM_SEARCH_PLMN];
+ found_mcc_info_struct found_mcc_info;
+} nwsel_mm_plmn_list_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_user_plmn_list_ongoing;
+} nwsel_mm_plmn_list_status_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_uas_plmn_list_present;
+ as_plmn_list_struct uas_plmn_list;
+ kal_bool is_gas_plmn_list_present;
+ as_plmn_list_struct gas_plmn_list;
+ scan_type_enum scan_type;
+ plmn_list_result_enum cause;
+} nwsel_mm_plmn_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 plmn_count;
+ plmn_id_struct plmn_id[MAX_NUM_EQ_PLMN];
+} nwsel_mm_csg_list_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ //kal_bool is_uas_csg_list_present;
+ as_csg_list_struct uas_csg_list;
+} nwsel_mm_csg_list_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ aral_op_enum op_code;
+ plmn_id_struct plmn;
+ rat_enum rat;
+ kal_uint8 ara_start[2];
+ kal_uint8 ara_end[2];
+}nwsel_mm_aral_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ regn_proc_status_enum nwsel_proc_status;
+ plmn_search_status_enum plmn_search_status;
+ plmn_search_type_enum plmn_search_type; /* new plmn search type */
+ kal_bool is_send_to_as;
+} nwsel_mm_regn_status_update_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[2]; /* 3G band change */
+ kal_bool is_umts_band_present; /* 3G band change */
+}nwsel_mm_set_preferred_band_req_struct;
+#endif
+
+typedef struct {
+ LOCAL_PARA_HDR
+ lr_result_enum lr_result;
+ mm_cause_enum lr_cause;
+ mm_proc_enum mm_proc;
+ kal_uint8 attempt_counter; //update only when lr_proc needed
+ plmn_id_struct rplmn; //from stored lai. Valid when LR_ACCEPT & LR_ACCEPT_PS_ONLY
+ kal_bool forbidden_plmn_update_not_allowed; /*MM may change NW reject cause, and no need to add forbidden PLMN */
+ kal_bool is_update_eq_plmn_needed; /* always check; indicate if NWSEL need to update EPLMN */
+ kal_uint8 eq_plmn_byte_count;
+ kal_uint8 eq_plmn_id[MAX_NUM_EQ_PLMN*3]; /* the EPLMN list from NW; 3 is NWSEL_PLMN_LEN */
+ kal_bool is_back_to_abnormal_la;
+ kal_bool is_rau_performed;
+ kal_bool is_stored_lai_same_as_current;
+ kal_bool stored_lai_valid;
+ kal_bool stored_rai_valid;
+ gsm_state_enum gsm_attach_state;
+ gprs_state_enum gprs_attach_state;
+ gsm_update_status_enum gsm_update_status;
+ gprs_update_status_enum gprs_update_status;
+ mm_check_ecall_status_enum ecall_status;
+ kal_bool is_mobility_rau; /*To check whether update_type is periodic rau or mobility rau */
+ integ_protect_status_enum is_integ_protected;
+ kal_uint8 invalid_cs_sim_counter;
+ kal_uint8 invalid_ps_sim_counter;
+} nwsel_mm_regn_result_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ domain_id_enum conn_domain;
+} nwsel_mm_out_of_service_ind_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+ LOCAL_PARA_HDR
+ as_suspend_mode_reason_enum cause;
+} nwsel_mm_suspend_ind_struct;
+
+//mtk02475: local param struct is only exist in GEMINI 2.0 project
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_virtual_idle_mode;
+} nwsel_mm_resume_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_virtual_idle_mode;
+ kal_bool is_in_connected;
+ /*Naming is "is_in_connected but it is expected that GMM updates only
+ virtual_connected state to NWSEL"*/
+} nwsel_mm_virtual_mode_ind_struct;
+#endif /* __GEMINI__ */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ mm_event_type_enum event;
+} nwsel_mm_event_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_uint8 plmn_id_count;
+ plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN]; //MAX_NUM_HPLMN: 4
+ kal_uint8 home_country_mcc[3];
+} nwsel_mm_hplmn_info_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ eutran_cap_enum eutran_cap;
+ kal_bool is_eucap_sysinfo_triggered;
+} nwsel_mm_eutran_cap_update_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_successful;
+} nwsel_mm_eutran_cap_update_cnf_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ voice_domain_preference_enum utran_voice_domain_preference;
+ kal_bool is_eutran_param_updated; /* if FALSE, the following parameters are invalid */
+ kal_bool is_eutran_vdp_or_ue_usage_changed;
+ voice_domain_preference_enum eutran_voice_domain_preference;
+ ue_usage_setting_enum ue_usage_setting;
+ eutran_cap_update_wait_status_enum eutran_cap_update_wait_status;
+} nwsel_mm_voice_prefer_ue_usage_update_req_struct;
+
+/* 24.008 CR# 2109 Start */
+typedef struct {
+ LOCAL_PARA_HDR
+ kal_bool is_manual_sel;
+} nwsel_mm_manual_mode_update_req_struct;
+/* 24.008 CR# 2109 End */
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint16 arfcn;
+ kal_uint8 requested_band;
+} nwsel_mm_set_mru_req_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ set_mru_result_enum result;
+} nwsel_mm_set_mru_cnf_struct;
+
+/* VzW requirement for MRU/RAL, only band/channel */
+typedef struct {
+ LOCAL_PARA_HDR
+ cell_band_info_type_enum type;
+ rat_enum rat;
+ plmn_id_struct plmn_id;
+ kal_uint8 band;
+} nwsel_mm_cell_band_info_update_ind_struct;
+
+typedef struct {
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ kal_uint8 num_of_nw;
+ emc_forbidden_nw_list_struct nw_list[MAX_FORBIDDEN_NETWORK_NUM];
+} nwsel_mm_emc_forbidden_nw_list_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ call_status_enum call_status;
+ call_type_indication_enum call_type;
+} nwsel_mm_call_status_ind_struct;
+
+typedef gmss_nwsel_rat_disable_config_req_struct nwsel_mm_rat_disable_config_req_struct;
+
+typedef gmss_nwsel_inactive_mode_configuration_req_struct nwsel_mm_inactive_mode_configuration_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool is_over_inactive_mode_threshold; // True: recovery counter > normal_oos_recovery_round
+} nwsel_mm_service_recovery_round_update_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ rat_enum rat;
+ network_scan_23g_union nw_scan_23g_output;
+}nwsel_mm_plmn_scan_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ plmn_id_struct plmn_id;
+} nwsel_mm_plmn_info_update_req_struct;
+
+
+#endif /* NWSEL_MM_STRUCT_H */