[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/mm_ratcm_struct.h b/mcu/protocol/interface/general/mm_ratcm_struct.h
new file mode 100644
index 0000000..ab06bfe
--- /dev/null
+++ b/mcu/protocol/interface/general/mm_ratcm_struct.h
@@ -0,0 +1,783 @@
+/*****************************************************************************
+*  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:
+ * ---------
+ *   mm_ratcm_struct.h
+ *
+ * Project:
+ * --------
+ *   MONZA
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ ******************************************************************************/
+
+#ifndef MM_RATCM_STRUCT_H
+#define MM_RATCM_STRUCT_H
+
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "l3_inc_local.h"
+#include "l3llc_enums.h"
+#include "mmllc_enums.h"
+#include "as2nas_struct.h"
+#include "mcd_l3_inc_gprs_struct.h"
+#include "ps_public_enum.h"
+#include "mm_ratcm_enums.h"
+#include "rsvas_enum.h"
+#include "kal_public_defs.h"
+#include "irat_common_struct.h"
+#include "irat_common_enums.h"
+#include "nas_as_inter_core_enum.h"
+#include "gmss_public.h"
+#include "nwsel_mm_struct.h"
+
+#include "nas_sv_struct.h"
+
+#include "ratcm_rrce_struct.h"
+#include "ratcm_csce_struct.h"
+#include "mmi2mm_struct.h"
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rfoff_cause_enum rfoff_cause;
+} mm_ratcm_rfoff_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat;
+    rat_enum reported_rat;
+    rat_enum active_rat;
+} mm_ratcm_set_rat_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_successful;
+    mm_cause_enum cause;
+} mm_ratcm_set_rat_mode_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 drx_para[2]; /* for split paging cycle and non-drx timer */
+    kal_uint8 imeisv_value_digit0;
+    kal_uint8 imeisv_value_digit_byte[8];
+#ifdef __MONITOR_PAGE_DURING_TRANSFER__
+    gprs_transfer_preference_enum prefer;
+#endif
+    init_cause_enum init_cause;
+} mm_ratcm_init_req_struct;
+
+
+typedef nwsel_nas_sv_plmn_search_req_struct mm_ratcm_plmn_search_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 trx_id;
+    plmn_search_result_enum result;
+    rat_enum rat;
+    plmn_id_struct selected_plmn;
+    kal_bool is_as_plmn_list_present;
+    as_plmn_list_struct as_plmn_list;
+    as_cell_type_enum   selected_cell_type; //20081027
+    kal_uint8 multi_plmn_count;
+    plmn_id_struct multi_selected_plmn[MAX_NUM_MULTI_PLMN];
+    as_cell_type_enum multi_selected_cell_type[MAX_NUM_MULTI_PLMN];
+    scan_type_enum scan_type;
+    kal_bool is_stored_list_exist; // only for stored search not for fullband + fullband and stored
+    fullband_result_enum is_fullband_finished;
+    kal_bool is_quick_search;
+} mm_ratcm_plmn_search_cnf_struct;
+
+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;
+} mm_ratcm_plmn_found_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 plmn_id_count;
+    plmn_id_struct plmn_id[MD1_MAX_NUM_HPLMN]; 
+    kal_uint8 home_country_mcc[3];
+} mm_ratcm_hplmn_info_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 la_code[2];
+    forbidden_la_type_enum forbidden_la_type; /* forbidden_la_type_enum */
+    plmn_id_struct plmn_id;
+} mm_ratcm_add_forbidden_la_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 la_code[2];
+    plmn_id_struct plmn_id;
+    kal_bool delete_all;
+} mm_ratcm_del_forbidden_la_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    csg_update_type_enum csg_update_type;
+    plmn_id_struct plmn_id;
+    kal_uint32 csg_id;
+} mm_ratcm_update_allowed_csg_list_req_struct;
+
+typedef mm_sys_info_ind_struct mm_ratcm_sys_info_ind_struct;
+typedef mm_cell_global_identity_info_ind_struct mm_ratcm_cell_global_identity_info_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_as_plmn_list_present;
+    as_plmn_list_struct as_plmn_list;
+    csfb_indicator_enum csfb_ind;
+#ifdef __GEMINI__
+    as_suspend_mode_reason_enum cause; /* for RR suspend mode */
+#endif /* __GEMINI__ */
+    plmn_loss_reason_enum plmn_loss_reason;
+} mm_ratcm_plmn_loss_ind_struct;
+
+typedef nas_sv_mm_plmn_list_req_struct mm_ratcm_plmn_list_req_struct;
+
+typedef nwsel_mm_plmn_list_status_update_req_struct mm_ratcm_plmn_list_status_update_req_struct;
+
+typedef nas_sv_mm_plmn_list_cnf_struct mm_ratcm_plmn_list_cnf_struct;
+
+typedef nas_sv_mm_csg_list_req_struct  mm_ratcm_csg_list_req_struct;
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    RATCM_RRC_PagingCause paging_cause;
+    domain_id_enum cn_domain_id;
+    ue_id_type_enum ue_id_type;
+} mm_ratcm_page_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint32 old_tlli;
+    kal_uint32 new_tlli;
+    tlli_update_type_enum status_tlli;
+    rai_struct rai;
+} mm_ratcm_tlli_assign_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_tmsi_lai_present;
+    kal_uint8 tmsi[4];
+    kal_bool is_lai_abnormal; /* MAUI_01959495 */
+    lai_struct reg_lai;
+    kal_bool is_ptmsi_rai_present;
+    kal_uint8 ptmsi[4];
+    kal_bool is_rai_abnormal; /* MAUI_01959495 */
+    rai_struct reg_rai;
+    kal_uint8 umts_ps_drx_clc;
+} mm_ratcm_paging_param_assign_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    kal_bool is_new_keys;
+    kal_uint8 cksn;
+    kal_bool gsm_cipher_key_infoP;
+    kal_uint8 gsm_cipher_key_info[KC_LEN];
+    kal_bool gsm_cipher_key128_infoP;
+    kal_uint8 gsm_cipher_key128_info[KC128_LEN];
+    kal_uint8 ps_cipher_algo;
+    kal_bool umts_keys_infoP;
+    kal_uint8 umts_cipher_key_info[CK_LEN];
+    kal_uint8 umts_integrity_key_info[IK_LEN];
+    kal_bool is_power_on; // for TS 24.008 CR1994
+} mm_ratcm_security_mode_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    sync_ind_cause_enum cause;
+    channel_type_enum channel_type; /* channel_type_enum */
+    channel_mode_enum channel_mode; /* channel_mode_enum */
+    kal_uint8 si;
+    kal_bool is_cipher_on;
+} mm_ratcm_sync_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    kal_bool is_integrity_enabled;
+    Ciphering_Status umts_ciphering_status;
+    kal_uint8 service_req_mui;
+} mm_ratcm_security_mode_complete_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    Ciphering_Status umts_ciphering_status; /* Ciphering_Status */
+} mm_ratcm_security_mode_change_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mui;
+    kal_uint16 gibi_tag;
+    domain_id_enum cn_domain_id;
+    mm_ratcm_est_cause_enum estb_cause;
+    peer_msg_id_struct peer_msg_id;
+    kal_bool is_service_req;
+#if defined (__R6_DSAC__) || defined (UNIT_TEST)
+    kal_bool is_dsac_present;
+    kal_uint16 selected_dsac_info;
+#endif
+    plmn_id_struct selected_plmn;
+
+#if defined(__PPACR_SUPPORT__) || defined (UNIT_TEST)
+   ppac_checked_type_enum   PPACCheckedType;
+   kal_uint16             selectedPPACInfo; //used by PPAC_LR_ALLOWED
+#endif
+
+#ifdef __LTE_RAT__
+    csfb_indicator_enum csfb_indicator;
+    csfb_service_type_enum csfb_service_type;
+#endif /* __LTE_RAT__*/
+    rat_enum current_rat; /* CELL_CHANGE_FINISH is in MM external queue and MM current rat is still source rat *
+                           * RATCM should reject conn_est_req when current_rat is not match RATCM active rat   */
+	kal_bool is_imsi_detach_for_power_off;					   	
+} mm_ratcm_conn_est_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    as_est_cnf_cause_enum result;
+    kal_bool wait_gibi_flag;
+    kal_bool is_rrc_conn_already_existed;
+} mm_ratcm_conn_est_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_successful;
+    domain_id_enum cn_domain_id;
+	kal_bool is_t3126_expiry;
+} mm_ratcm_conn_est_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    as_rel_scope_enum scope;
+    conn_rel_cause_enum cause;
+} mm_ratcm_conn_rel_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    as_rel_scope_enum scope;
+    kal_bool ps_resume_flag;
+    kal_bool wait_gibi_flag;
+	kal_bool wait_rrc_connection_release_ind;
+} mm_ratcm_conn_rel_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    domain_id_enum cn_domain_id;
+    RATCM_RRC_ReleaseCause cause;
+    kal_bool ps_resume_flag;
+    kal_bool wait_gibi_flag;
+	kal_bool wait_rrc_connection_release_ind;
+} mm_ratcm_conn_rel_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    regn_proc_status_enum mm_proc_status;
+    kal_uint32 t3212_or_t3302;
+    gmm_ms_state_enum ms_state;
+    mmas_regn_status_enum regn_status;
+    plmn_search_status_enum plmn_search_status;
+    plmn_search_type_enum plmn_search_type;	/* new plmn search type */
+    lai_struct lai; /* for GAS bar cell */
+    kal_uint32 cell_id; /* for GAS bar cell */
+} mm_ratcm_regn_status_req_struct;
+
+typedef mm_ratcm_regn_status_req_struct mm_ratcm_regn_status_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    action_on_ready_timer_enum action;
+    gmm_ms_state_enum new_state;
+    kal_uint32 value;
+} mm_ratcm_ready_timer_update_req_struct; /* should be same as ratcm_gas_ready_timer_update_req_struct. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    ready_timer_status_enum status;
+} mm_ratcm_ready_timer_update_ind_struct; /* should be same as ratcm_gas_ready_timer_update_ind_struct. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_gprs_required;
+} mm_ratcm_service_change_req_struct; /* Should same as ratcm_gas_service_change_req_struct. */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mui;
+    kal_uint16 gibi_tag;
+    DC_Priority  priority;
+    kal_bool is_service_req;
+	kal_bool is_imsi_detach_for_power_off;
+	peer_msg_id_struct peer_msg_id;
+} mm_ratcm_cs_data_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_integrity_applied;
+} mm_ratcm_cs_data_ind_struct;
+typedef struct {
+    LOCAL_PARA_HDR
+    peer_msg_id_struct peer_msg_id;
+    DC_Status status;
+} mm_ratcm_cs_data_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mui;
+    kal_uint16 gibi_tag;
+    llc_sapi_enum sapi;
+    rp_enum radio_priority;
+    kal_uint8 cipher_ind;
+    res_req_cause msg_type;
+    kal_uint8 nsapi;
+    kal_uint32 tlli;
+    kal_uint8 pfi;
+    concise_qos_struct qos_param;
+    peer_msg_id_struct peer_msg_id;
+} mm_ratcm_ps_data_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    //kal_uint8 mui;
+    DC_Status status;
+    peer_msg_id_struct peer_msg_id;
+} mm_ratcm_ps_data_cnf_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_integrity_applied;
+    kal_uint32 tlli;
+} mm_ratcm_ps_data_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_cs_reset_keys;
+    kal_bool is_ps_reset_keys;
+} mm_ratcm_reset_keys_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint32 tlli;
+} mm_ratcm_llc_resume_req_struct; /* Should be same as ratcm_llc_resume_req_struct */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint32 tlli;
+} mm_ratcm_llc_suspend_req_struct; /* Should be same as ratcm_llc_suspend_req_struct */
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint32 tlli;
+    res_req_cause cause; /* res_req_cause */
+    llgmm_cell_update_type_enum cell_update_type; /* llgmm_cell_update_type_enum */
+} mm_ratcm_llc_trigger_req_struct; /* Should be same as ratcm_llc_trigger_req_struct */
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_expiry; /*KAL_TRUE: T3122 expires, MM will retry LU immediately
+						  KAL_FALSE: T3122 is stopped */
+} mm_ratcm_t3122_timeout_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_expiry; /*KAL_TRUE: CCO activation time expires, MM will retry LU immediately
+						  KAL_FALSE: CCO activation time is stopped */
+} mm_ratcm_cco_activation_time_timeout_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat;
+} mm_ratcm_signal_appear_ind_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 */
+}mm_ratcm_set_preferred_band_req_struct;
+#endif
+
+#ifdef __GEMINI__
+typedef struct {
+    LOCAL_PARA_HDR
+    sim_config_status_enum sim_config_status;
+    sim_insert_status_enum sim_insert_status;
+} mm_ratcm_sim_status_update_req_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+} mm_ratcm_suspend_ind_struct;
+
+
+//mtk02475: local param struct is only exist in GEMINI 2.0 project
+typedef struct {
+    LOCAL_PARA_HDR
+    as_gemini_status_enum as_gemini_status;
+} mm_ratcm_resume_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    as_gemini_status_enum as_gemini_status;
+} mm_ratcm_virtual_mode_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    as_gemini_status_enum as_gemini_status;
+} mm_ratcm_uas_virtual_mode_ind_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    gprs_transfer_preference_enum prefer;
+} mm_ratcm_set_gprs_transfer_preference_req_struct;
+#endif /* __GEMINI__ */
+
+/* MAUI_02852442, __NO_PSDATA_SEND_SCRI__ */
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool force_send_SCRI;
+    end_session_cause_enum cause;
+}mm_ratcm_end_ps_data_session_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    end_session_result_enum cause;
+}mm_ratcm_end_ps_data_session_cnf_struct;
+/* __NO_PSDATA_SEND_SCRI__ */
+
+#ifdef __TC7__CS__SUPPORT__
+typedef struct {    		
+	LOCAL_PARA_HDR    			
+	kal_bool isForceLau;    
+} mm_ratcm_cell_change_start_ind_struct;
+#endif
+
+typedef struct {
+    LOCAL_PARA_HDR
+    rat_enum rat;
+    domain_id_enum connection_domain;
+    kal_bool is_gibi_tag_valid;
+    kal_uint16 gibi_tag;
+} mm_ratcm_cell_change_finish_ind_struct;
+
+/* MAUI_03101878, [Silver Clam][CV][SilverClam-94]Pre-CV-CMAS: GPRS failed due to timeout */
+typedef struct {
+    LOCAL_PARA_HDR
+    lai_struct current_lai;
+} mm_ratcm_cb_loc_update_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+	nas_req_gemini_ps_high_sem_enum gemini_ps_high_sem_status;
+} mm_ratcm_uas_gemini_ps_high_sem_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    kal_bool is_sim_inserted;
+    kal_bool is_delete_pending;
+} mm_ratcm_sim_info_reset_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    RATCM_RRC_LocalReleaseType localReleaseType;
+    kal_uint16 locally_released_PS_RAB_bitmap;
+    //traffic_class_enum max_traffic_class;
+} mm_ratcm_local_release_ind_struct;
+
+//__LTE__
+typedef struct{
+    LOCAL_PARA_HDR
+    eutran_cap_enum eutran_cap;
+} mm_ratcm_eutran_cap_update_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_successful;
+} mm_ratcm_eutran_cap_update_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    irat_type_enum	irat_type;  //Indicates the inter-RAT type
+    rat_type_enum	source_rat; //Source RAT (GAS or UAS)
+    rat_type_enum	target_rat; //Target RAT (Should be EAS)
+    void*	as_info_ptr;    //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
+                            //The buffer will be freed by soure or target AS
+    ratcm_gas_security_mode_req_struct	gas_security;   //Indicates the GERAN security context if target_rat is GAS.
+                            //Note that if the RAT change is failed and return to LTE, the security context should be reverted to the original one. NAS will send RATCM_GAS_SECURITY_MODE_REQ to update the original security information when NAS receives RAT_CHANGE_CNF indicated that the inter-RAT procedure is failed.
+    uas_security_context_struct	uas_security[2];   //Indicates the UTRAN security context if target_rat is UAS.
+                            //Note that if the RAT change is failed and return to LTE, the security information should be reverted to the original one. NAS will send RATCM_RRCE_SECURITY_MODE_REQ to update the original security information when NAS receives RAT_CHANGE_CNF indicated that the inter-RAT procedure is failed.
+    csfb_indicator_enum	csfb_indicator; //Indicate that the purpose of current inter-RAT change is for CS fallback which is combined the information (MobilityFromEutra) from ERRC and the processing type of CSFB in EMM.
+    loopback_mode_status_enum loopback_mode_status; //Notify RATCM to enter test mode for LTE-LBM mode B
+    kal_bool             is_lai_valid;  //CSFB enhancement
+    lai_struct           lai;           //CSFB enhancement
+    kal_bool             is_srvcc;      //SRVCC support. If is_srvcc=KAL_TRUE, it means RATCM vsd_mod is 4. (is_r99_nw = KAL_TRUE)
+    kal_bool             is_mapped_rai_valid; // For 4G3 HO, AS may not have valid plmn id. AS will derive plmn id from mapped rai.
+    rai_struct           mapped_rai;
+} mm_ratcm_rat_change_req_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    irat_type_enum	irat_type;  //Indicates the inter-RAT type
+    rat_type_enum	source_rat; //Source RAT
+    rat_type_enum	target_rat; //Target RAT
+    irat_result_enum	irat_result;    //The result of inter-RAT change
+    void*	as_info_ptr;    //The pointer of AS container information
+    domain_id_enum	connection_domain;  //Indicates that the current connection domain for the target RAT
+    kal_bool is_gibi_tag_valid;
+    kal_uint16 gibi_tag;
+} mm_ratcm_rat_change_cnf_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    irat_type_enum	irat_type;
+    rat_type_enum	source_rat; //Source RAT (GAS or UAS)
+    rat_type_enum	target_rat; //Target RAT (Should be EAS)
+    void*	as_info_ptr;    //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
+                            //The buffer will be freed by soure or target AS
+    kal_uint8 nas_security_param[NAS_SECURITY_PARAM_LEN];
+                //NAS security parameter (Only valid for IRHO from UAS)
+                //Byte1 ~ 4: NouceMME
+                //Byte5: Selected Algorithm (Ciphering/Integrity)
+                //Byte6: eKSI (including type of security context)
+} mm_ratcm_rat_change_ind_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    irat_type_enum	irat_type;
+    rat_type_enum	source_rat; //Source RAT (GAS or UAS)
+    rat_type_enum	target_rat; //Target RAT (Should be EAS)
+    irat_result_enum	irat_result; //The result of inter-RAT change
+    irat_reject_cause_enum irat_reject_cause; //Reject cause when irat_result is equal to IR_RESULT_REJECT.
+    void*	as_info_ptr;    //Indicates the address of the activation request for RAT change to LTE, the information is dedicated for AS.
+                            //The buffer will be freed by soure or target AS
+} mm_ratcm_rat_change_rsp_struct;
+
+typedef struct{
+    LOCAL_PARA_HDR
+    paging_type_enum paging_type;
+    csfb_service_type_enum paging_service;
+	kal_bool is_paging_retry;
+}mm_ratcm_page_req_struct;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_completed;
+}mm_ratcm_deactivate_cnf_struct;
+
+typedef struct
+{
+   LOCAL_PARA_HDR
+   cs_status_enum  status;
+} mm_ratcm_cs_status_update_req_struct;
+
+/*For TDD call clearing optimization*/
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+} mm_ratcm_force_rel_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_uint8 imeisv_value_digit0;
+    kal_uint8 imeisv_value_digit_byte[8];
+}mm_ratcm_set_imei_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_pch_state;
+}mm_ratcm_rrc_state_ind_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    rat_enum rat_mode;
+    kal_bool is_pgcheck_on;
+}mm_ratcm_set_pgcheck_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    umts_duplex_mode_type source_umts_duplex_mode;
+    umts_duplex_mode_type target_umts_duplex_mode;
+    lte_duplex_mode_type source_lte_duplex_mode;
+    lte_duplex_mode_type target_lte_duplex_mode;
+	mode_switch_cause_enum cause;
+} mm_ratcm_duplex_mode_change_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool result;
+} mm_ratcm_duplex_mode_change_cnf_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    rat_enum               rat;   
+    plmn_id_struct         plmn_id;
+    kal_uint16             arfcn;
+    kal_uint8              requested_band;
+} mm_ratcm_set_mru_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    set_mru_result_enum result;
+} mm_ratcm_set_mru_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];
+} mm_ratcm_aral_update_req_struct;
+
+typedef nwsel_mm_emc_forbidden_nw_list_update_req_struct mm_ratcm_emc_forbidden_nw_list_update_req_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    call_status_enum call_status;
+    call_type_indication_enum call_type;
+} mm_ratcm_call_status_ind_struct;
+typedef nwsel_mm_rat_disable_config_req_struct mm_ratcm_rat_disable_config_req_struct;
+typedef struct {
+    LOCAL_PARA_HDR
+	kal_uint8 imeisv_value_digit0;
+	kal_uint8 imeisv_value_digit_byte[8];
+} mm_ratcm_set_imei_sv_req_struct;
+
+typedef ratcm_rrce_conn_loss_ind_struct mm_ratcm_conn_loss_ind_struct;
+
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_auth_download_ongoing;
+} mm_ratcm_rsim_auth_download_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool    is_over_inactive_mode_threshold; // True: recovery counter > normal_oos_recovery_round
+} mm_ratcm_service_recovery_round_update_req_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool    normal_oos_recovery_round_present;
+    kal_uint8   normal_oos_recovery_round;  // default value = 5, range [2, 10]
+    kal_bool    inactive_fullband_period_present;
+    kal_uint16  inactive_fullband_period;   // default = 200s, range: [90, 360]
+    kal_bool    inactive_sniffer_period_present;    
+    kal_uint8   inactive_sniffer_period;    // default = 30s, range: [10, 60]
+    kal_bool    is_inactive_mode_present;
+    kal_bool    is_inactive_mode;		// True: enter inactive mode, False: leave inactive mode
+} mm_ratcm_inactive_mode_configuration_req_struct;
+
+//MSG_ID_MM_RATCM_LTE_NORMAL_SERVICE_LOSS_UPDATE_REQ
+typedef gmmreg_lte_normal_service_loss_update_req_struct mm_ratcm_lte_normal_service_loss_update_req_struct ;
+
+//MSG_ID_MM_RATCM_END_PS_DATA_SESSION_IND
+typedef ratcm_csce_end_ps_data_session_ind_struct mm_ratcm_end_ps_data_session_ind_struct ;
+
+//MSG_ID_MM_RATCM_NO_CC_DATA_DETECT_IND
+typedef ratcm_rrce_no_cc_data_detect_ind_struct mm_ratcm_no_cc_data_detect_ind_struct;
+
+#ifdef __GEMINI__
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_bool is_data_allowed;
+} mm_ratcm_data_allow_req_struct;
+#endif
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+	rat_enum rat;
+    network_scan_23g_union nw_scan_23g_output;
+} mm_ratcm_plmn_scan_ind_struct;
+
+typedef struct 
+{
+    LOCAL_PARA_HDR
+    plmn_id_struct              plmn_id;
+} mm_ratcm_plmn_info_update_req_struct;
+
+#endif /* MM_RATCM_STRUCT_H */