[Feature][Modem]Add Modem Patch P1

Change-Id: Idee4f9fd6700b484f7db86704cf5639cec4d71a2
diff --git a/mcu/protocol/interface/l4/l4c2rac_struct.h b/mcu/protocol/interface/l4/l4c2rac_struct.h
old mode 100644
new mode 100755
index 327cfca..084b1b5
--- a/mcu/protocol/interface/l4/l4c2rac_struct.h
+++ b/mcu/protocol/interface/l4/l4c2rac_struct.h
@@ -871,6 +871,13 @@
     kal_bool ims_pdn_activation_ongoing;
  } l4crac_ims_pdn_activation_req_struct;
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+    kal_bool is_nr_emc_service_available;
+} l4crac_nr_emc_service_availability_ind_struct;
+
 #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
 typedef struct
 {
diff --git a/mcu/protocol/interface/l4/mmi2mm_struct.h b/mcu/protocol/interface/l4/mmi2mm_struct.h
old mode 100644
new mode 100755
index 137bff1..5d103ce
--- a/mcu/protocol/interface/l4/mmi2mm_struct.h
+++ b/mcu/protocol/interface/l4/mmi2mm_struct.h
@@ -58,6 +58,9 @@
  *
  * removed!
  * removed!
+ *
+ * removed!
+ * removed!
  * removed!
  * removed!
  *
@@ -451,9 +454,7 @@
 #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 
+    kal_bool is_disable_integrity_check; 
     nvram_ef_mm_data_struct    nvram_mm_data_info;
     nvram_ef_t3346_timer_info_struct t3346_info;
     init_cause_enum init_cause;
diff --git a/mcu/protocol/interface/l4/nas_sv_struct.h b/mcu/protocol/interface/l4/nas_sv_struct.h
old mode 100644
new mode 100755
index b3d1d2e..3d0c9e7
--- a/mcu/protocol/interface/l4/nas_sv_struct.h
+++ b/mcu/protocol/interface/l4/nas_sv_struct.h
@@ -1172,6 +1172,7 @@
     vg_emergency_service_ind_enum   emc_supported_indicator;
     vg_emergency_fallback_ind_enum  emc_fallback_supported_indicator;
     vgmm_5g_update_status_enum      vg_update_status;
+    kal_bool                        is_proc_reported_earlier;
 }vgmm_rat_specific_param_container_struct;
 
 typedef union
@@ -1192,6 +1193,17 @@
     nas_rat_specific_param_container_union nas_specific_container;
 } nas_sv_any_regn_result_ind_struct;
 
+typedef struct {
+    LOCAL_PARA_HDR
+    nas_proc_enum               nas_proc;
+    lr_result_enum              lr_result;
+    mm_cause_enum               lr_cause;    // This value may be replaced by customized cause.
+    kal_uint8                   attempt_counter;
+    mm_cause_enum               airlr_cause;
+} nas_sv_vgmm_proc_result_ind_struct;
+
+typedef nas_sv_vgmm_proc_result_ind_struct nwsel_nas_sv_vgmm_proc_result_ind_struct;
+
 typedef nas_sv_any_regn_result_ind_struct nwsel_nas_sv_regn_result_ind_struct;
 
 typedef nwsel_nas_sv_plmn_band_ind_struct nas_sv_ratcm_plmn_band_ind_struct;
@@ -1465,6 +1477,8 @@
 
     kal_bool                    vgmm_ims_voice_over_ps_ind_present;    
     ims_ind_enum                vgmm_ims_voice_over_ps_ind;
+
+    kal_bool                    vgmm_is_reattach_required;
     /* End of VGMM Definitions */
 }nas_sv_vgmm_broadcast_regn_result_struct;
 #endif //__FIVEG_NAS__
@@ -1480,6 +1494,8 @@
     /* Whether the UE is registered or not according to state  and current executing procedure in EMM view 
          used for EMM/VGMM un-sync state checking for any_xmm_broadcast_regn_result handling */
     emm_bcast_regn_update_enum  emm_regn_update_type;
+
+    kal_bool                    emm_is_reattach_required;
     /* End of EMM Definitions */
 }nas_sv_emm_broadcast_regn_result_struct;
 
@@ -1659,6 +1675,19 @@
     kal_bool is_searching;
 } nwsel_nas_sv_as_plmn_search_report_ind_struct;
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+    kal_bool is_nr_emc_service_available;
+} nwsel_nas_sv_nr_emc_service_availability_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+} nwsel_nas_sv_nr_emc_service_availability_rsp_struct;
+
 #if 0
 /* under construction !*/
 /* under construction !*/
diff --git a/mcu/protocol/interface/l4/rac2l4c_struct.h b/mcu/protocol/interface/l4/rac2l4c_struct.h
old mode 100644
new mode 100755
index 91846be..5a15392
--- a/mcu/protocol/interface/l4/rac2l4c_struct.h
+++ b/mcu/protocol/interface/l4/rac2l4c_struct.h
@@ -745,6 +745,7 @@
     rat_enum rat;
     esm_cause_enum esm_cause;
     lr_result_enum lr_result;
+    plmn_id_struct plmn_id;
 }l4crac_nw_reg_rej_ind_struct; //MOLY00293006
 
 typedef l4crac_plmn_found_ind_struct l4c_peer_plmn_found_ind_struct;
@@ -878,6 +879,13 @@
 } l4crac_nw_black_list_state_ind_struct;
 #endif
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+} l4crac_nr_emc_service_availability_rsp_struct;
+
+
 #if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
 typedef struct
 {
diff --git a/mcu/protocol/interface/l4/rac_gmss_struct.h b/mcu/protocol/interface/l4/rac_gmss_struct.h
old mode 100644
new mode 100755
index 059a906..9b94664
--- a/mcu/protocol/interface/l4/rac_gmss_struct.h
+++ b/mcu/protocol/interface/l4/rac_gmss_struct.h
@@ -161,6 +161,7 @@
 #ifdef __FIVEG_NAS__
     nvram_ef_vgnas_5gmm_failure_list_struct vgnas_5gmm_failure_list;
 #endif
+    nvram_nwsel_enable_s1_n1_action_enum nwsel_action_enable_s1_n1[NVRAM_NWSEL_PROC_MAX];
     nvram_allowed_mcc_struct allowed_mcc_data;
 } rac_gmss_init_req_struct;
 
diff --git a/mcu/protocol/interface/l4/rac_nas_sv_struct.h b/mcu/protocol/interface/l4/rac_nas_sv_struct.h
old mode 100644
new mode 100755
index d161ac0..61d0d51
--- a/mcu/protocol/interface/l4/rac_nas_sv_struct.h
+++ b/mcu/protocol/interface/l4/rac_nas_sv_struct.h
@@ -236,6 +236,19 @@
 
 typedef nwsel_nas_sv_as_plmn_search_report_ind_struct rac_nas_sv_as_plmn_search_report_ind_struct;
 
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+    kal_bool is_nr_emc_service_available;
+} rac_nas_sv_nr_emc_service_availability_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool is_emc_info_valid;
+}  rac_nas_sv_nr_emc_service_availability_rsp_struct;
+
 #endif
 
 
diff --git a/mcu/protocol/interface/l4/rac_vgmm_struct.h b/mcu/protocol/interface/l4/rac_vgmm_struct.h
old mode 100644
new mode 100755
index f0cd013..3f8cfce
--- a/mcu/protocol/interface/l4/rac_vgmm_struct.h
+++ b/mcu/protocol/interface/l4/rac_vgmm_struct.h
@@ -376,6 +376,8 @@
     LOCAL_PARA_HDR
 } rac_vgmm_5gsloci_clear_req_struct;
 
+typedef l4crac_set_ms_sv_req_struct rac_vgmm_set_ms_sv_req_struct;
+
 typedef l4crac_vgmm_proc_failure_ind_struct rac_vgmm_proc_failure_ind_struct;
 
 typedef struct  {
@@ -429,6 +431,16 @@
     kal_uint8                   num_of_ladn_info;
     ladn_info_with_tai_list_type_struct   ladn_info[MAX_LADN_INFO];
 } rac_vgmm_nw_params_ind_struct;
+
+typedef struct
+{
+    LOCAL_PARA_HDR
+    kal_bool                          is_ps_sim_valid;
+    nas_proc_enum                     event;
+    vgmm_cause_enum                   original_cause;
+    vgmm_cause_enum                   converted_cause;
+} rac_vgmm_cause_info_ind_struct;
+
 /********************************************
  *                VARIABLES                 *
  ********************************************/
diff --git a/mcu/protocol/interface/l4/vdm_l4c_struct.h b/mcu/protocol/interface/l4/vdm_l4c_struct.h
old mode 100644
new mode 100755
index 9403006..9975b43
--- a/mcu/protocol/interface/l4/vdm_l4c_struct.h
+++ b/mcu/protocol/interface/l4/vdm_l4c_struct.h
@@ -71,6 +71,7 @@
 #include "rac_vgmm_struct.h"
 #include "as_inter_core_enum.h"
 #include "rac2l4c_struct.h"
+#include "rac_nas_sv_struct.h"
 
 //copy from l4c_eval_ims_sys_info_ind_struct
 typedef struct
@@ -572,6 +573,10 @@
 /* MSG_ID_VDM_L4C_GMSS_SET_HVOLTE_MODE_CNF */
 typedef vdm_l4c_common_response_struct vdm_l4c_gmss_set_hvolte_mode_cnf_struct;
 
+typedef rac_nas_sv_nr_emc_service_availability_ind_struct vdm_l4c_nr_emc_service_availability_ind_struct;
+
+typedef rac_nas_sv_nr_emc_service_availability_rsp_struct vdm_l4c_nr_emc_service_availability_rsp_struct;
+
 /*MSG_ID_VDM_L4C_EMCS_REQ*/
 typedef struct
 {