[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/mrs_as_struct.h b/mcu/protocol/interface/general/mrs_as_struct.h
new file mode 100644
index 0000000..7aca1b4
--- /dev/null
+++ b/mcu/protocol/interface/general/mrs_as_struct.h
@@ -0,0 +1,674 @@
+/*****************************************************************************
+*  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) 2007
+*
+*  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:
+ * ---------
+ *   mrs_as_struct.h
+ *
+ * Project:
+ * --------
+ *   Multimode
+ *
+ * Description:
+ * ------------
+ *
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ----------------------------------------------------------------------------
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ ******************************************************************************/
+#ifndef _MRS_AS_STRUCT_H
+#define _MRS_AS_STRUCT_H
+
+#include "mrs_as_enums.h"
+#include "mrs_as_inter_core_struct.h"
+#include "kal_public_defs.h"
+#include "global_type.h"
+#include "l3_inc_enums.h"
+#include "mcd_l3_inc_struct.h"
+#include "ps_public_enum.h"
+
+#define AFR_FREQ_MAX_NUM 8
+#define MAX_NUM_MULTI_MCC 6
+
+#ifdef __NR_RAT__
+#define EUTRA_MULTI_BANDS_MAX_NUM (8)
+#define EUTRA_NS_PMAX_LIST_MAX_NUM (8)
+#endif /* __NR_RAT__ */
+
+#define MRS_NRAS_EUTRAN_FEATURE_SETS_MAX_NUM (256) // 36.331 maxFeatureSets-r15
+#define MRS_MAX_AFR_FREQ_NUM 64
+#define MRS_AFR_TO_4G_TIMER 2000  //msec
+#define MRS_AFR_TO_5G_TIMER 2000  //msec
+
+#define AS_PINGPONG_THRESHOLD_MAX 8 /* if IRAT Change fount exceeds threshold, PINGPONG confirmed */
+
+#define MRS_MAX_CC_NUM 8
+#define MAX_NUM_VALID_MCC_REGIONS 22
+#define MAX_NUM_VALID_MCC_REGION_PLMNS 55
+#define NVRAM_EF_AS_GSM_BAND_SETTING_SIZE       1
+#define NVRAM_EF_AS_FDD_UMTS_BAND_SETTING_SIZE  4
+#define NVRAM_EF_AS_LTE_BAND_SETTING_SIZE      32
+
+#define MRS_COMPILE_TIME_ASSERT(e) ((void)sizeof(char[1-2*!(e)]))
+
+/* MRS uses this primitive to inform AS about white list change */
+typedef struct {
+  LOCAL_PARA_HDR
+  csg_white_list_update_cause update_cause;
+  kal_bool acsgl_changed;
+  kal_bool ocsgl_changed;
+} mrs_as_csg_white_list_update_ind_struct;
+
+/* MRS uses this primitive to synch LLA status with AS */
+typedef struct {
+  LOCAL_PARA_HDR
+  //lower_layer_availability_enum l1_availibility_status;
+} mrs_lower_layer_availability_update_ind_struct;
+
+/* GAS synch LLA status with MRS */
+typedef struct {
+  LOCAL_PARA_HDR
+  lower_layer_availability_enum l1_availibility_status;
+} mrs_gas_lower_layer_availability_update_req_struct;
+
+/* UAS synch LLA status with MRS */
+typedef struct {
+  LOCAL_PARA_HDR
+  lower_layer_availability_enum l1_availibility_status;
+} mrs_uas_lower_layer_availability_update_req_struct;
+
+/* EAS synch LLA status with MRS */
+typedef struct {
+  LOCAL_PARA_HDR
+  lower_layer_availability_enum l1_availibility_status;
+} mrs_eas_lower_layer_availability_update_req_struct;
+
+/* Inform GAS band setting is changed */
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_gas_band_setting_update_ind_struct;
+
+/* Inform UAS band setting is changed */
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_uas_band_setting_update_ind_struct;
+
+/* Inform EAS band setting is changed */
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_eas_band_setting_update_ind_struct;
+
+/* Inform EAS band contral */
+typedef struct {
+  LOCAL_PARA_HDR
+  kal_uint16 band;
+  eas_band_control_enum ctrl_info;
+} mrs_eas_band_ctrl_ind_struct;
+
+
+typedef struct mrs_plmn_id
+{
+   kal_uint8 mcc1;
+   kal_uint8 mcc2;
+   kal_uint8 mcc3;
+   kal_uint8 mnc1;
+   kal_uint8 mnc2;
+   kal_uint8 mnc3;
+} mrs_plmn_id;
+
+typedef struct
+{
+    kal_uint8    plmn_id_len;
+    mrs_plmn_id  plmn_id[MAX_NUM_MULTI_PLMN];
+} mrs_plmn_id_list;
+
+/* Used to store EHPLMN ID List in SIM card */
+typedef struct
+{
+    kal_uint8    plmn_id_len;
+    mrs_plmn_id  plmn_id[MD1_MAX_NUM_HPLMN];
+} mrs_ehplmn_id_list;
+
+/* MRS notifies UAS of the transmission of INTER RAT HANDOVER INFO in GSM */
+typedef struct {
+   LOCAL_PARA_HDR
+} mrs_uas_umts_ho_info_rsp_struct;
+
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_l4c_capability_update_ind_struct;
+
+//NR freq nfo for AFR
+typedef struct
+{
+    kal_uint8    periodicity;
+    kal_uint8    offset;
+}mrs_ssb_mtc_periodicity_and_offset_struct;
+
+typedef struct
+{
+    mrs_ssb_mtc_periodicity_and_offset_struct    periodicity_and_offset;
+    kal_uint8    duration;
+}mrs_ssb_mtc_struct;
+
+typedef struct
+{
+    NRARFCN                     freq;
+    mrs_nr_scs_enum             ssb_scs;
+    kal_bool                    is_ssb_mtc_valid;
+    mrs_ssb_mtc_struct          ssb_mtc;
+} mrs_afr_nr_freq_info_struct;
+
+typedef struct
+{
+    kal_uint8                     freq_num;
+    mrs_afr_nr_freq_info_struct   freq_info[MRS_MAX_AFR_FREQ_NUM];
+} mrs_afr_nr_freq_list_struct;
+
+typedef struct
+{
+    kal_bool                ongoing_status;
+    MRS_RAT_MODE_TYPE       afr_target_rat;
+    mrs_afr_strict_constrain_state strict_constrain_state;
+} mrs_afr_service_struct;
+
+typedef struct
+{
+    kal_bool                 ever_trigger;
+    kal_bool                 pre_cond_reqd;
+    MRS_RAT_MODE_TYPE        afr_src_rat;
+} mrs_afr_pre_cond_proc_struct;
+
+typedef struct
+{
+   /* [b1: not used] [b2: reduce lau, enable] [b3: defer si13, enable] [b4: 2g afr, enable] [b5: 3g afr, enable] */
+   /* [b6: CSFB_2G_FDD_eCSFB, disable] [b7: CSFB_3G_FDD_eCSFB, disable] [b8: CSFB_2G_TDD_eCSFB, enable] [b9: CSFB_3G_TDD_eCSFB, disable] */
+   /* [b10 ~ b16: reserved] */
+   kal_uint16       csfb_enhancement_item_status;
+   /* [b1: not used] [b2: reduce lau, disable] [b3: defer si13, enable] [b4: 2g afr, disable] [b5: 3g afr, disable] */
+   /* [b6: CSFB_2G_FDD_eCSFB, disable] [b7: CSFB_3G_FDD_eCSFB, disable] [b8: CSFB_2G_TDD_eCSFB, disable] [b9: CSFB_3G_TDD_eCSFB, disable] */
+   /* [b10 ~ b16: reserved] */
+   kal_uint16       csfb_enhancement_item_status_in_test_mode; 
+   kal_bool        is_csfb_ongoing;
+   kal_uint8       num;
+   EARFCN          afr_list[AFR_FREQ_MAX_NUM];
+} mrs_afr_main_struct;
+
+typedef struct
+{
+   /* [b1: 2g4 afr, enable] [b2: 3g4 afr, enable, enable] [b3: 2g5 fdd afr, enable] [b4: 2g5 tdd afr, enable] [b5: 3g5 fdd afr, enable] */
+   /* [b6: 3g5 tdd afr, disable] [b7: 4g5 fdd afr, disable] */
+   /* [b8 ~ b16: reserved] */
+   kal_uint16       afr_enhancement_item_status;
+   /* [b1: 2g4 afr, enable] [b2: 3g4 afr, enable, enable] [b3: 2g5 fdd afr, enable] [b4: 2g5 tdd afr, enable] [b5: 3g5 fdd afr, enable] */
+   /* [b6: 3g5 tdd afr, disable] [b7: 4g5 fdd afr, disable] */
+   /* [b8 ~ b16: reserved] */
+   kal_uint16       afr_enhancement_item_status_in_test_mode;
+
+   mrs_afr_service_struct       service_tbl[AFR_SRVC_MAX_NUM];
+   mrs_afr_pre_cond_proc_struct pre_cond_proc_tbl[AFR_PROC_MAX_NUM];
+
+#ifdef __NR_RAT__
+   mrs_afr_nr_freq_list_struct afr_nr_priority_freq_list;
+#endif /* __NR_RAT__ */
+   mrs_afr_nr_freq_list_struct afr_nr_freq_list;
+   mrs_afr_nr_freq_info_struct nr_serving_freq_info;
+   kal_uint32 afr_to_4g_timer;  //msec
+   kal_uint32 afr_to_5g_timer;  //msec   
+} mrs_afr_nr_main_struct;
+
+typedef struct {
+    mrs_plmn_id plmn_id;
+    kal_uint8 la_code[2];
+} mrs_lai_struct;
+
+typedef struct
+{
+    kal_uint16 arfcn;
+    kal_uint8 bsic;
+}mrs_gas_cell_struct;
+
+typedef struct
+{
+    mrs_gas_cell_struct gas_cell;
+    mrs_lai_struct lai;
+    mrs_gas_ecsfb_call_status_enum ecsfb_call_status;
+}mrs_gas_cell_inf_struct;
+
+typedef struct
+{
+    kal_uint16 uarfcn;
+    kal_uint16 psc;
+}mrs_uas_cell_struct;
+
+typedef struct
+{
+   mrs_uas_cell_struct uas_cell;
+   mrs_lai_struct lai;
+}mrs_uas_cell_inf_struct;
+
+typedef struct
+{
+    EARFCN earfcn;
+    kal_uint16 pci;
+}mrs_eas_cell_struct;
+
+typedef struct {
+    kal_bool            valid;
+    MRS_RAT_MODE_TYPE   rat;
+    mrs_plmn_id         plmn_id;
+    kal_uint16          lac_or_tac;
+    kal_uint32          cell_id;
+    kal_uint32          arfcn_or_uarfcn_or_earfcn;
+    kal_uint16          bsic_or_psc_or_pci;
+    kal_int16           report_offset_for_serv_in_black_list; /* serving is a black cell, unit:dbm */
+    kal_int16           report_offset_for_nc_in_black_list;   /* neighbor is a black cell, unit:dbm */
+} mrs_as_black_cell_struct;
+
+/* inform xAS black cell list added/cleared. */
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_uas_add_black_cell_ind_struct;
+
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_gas_add_black_cell_ind_struct;
+
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_uas_clear_black_cell_ind_struct;
+
+typedef struct {
+  LOCAL_PARA_HDR
+} mrs_gas_clear_black_cell_ind_struct;
+
+typedef struct mrs_mcc_id
+{
+   kal_uint8 mcc1;
+   kal_uint8 mcc2;
+   kal_uint8 mcc3;
+} mrs_mcc_id;
+
+/* AS use this struct to get MCC from MRS */
+typedef struct mrs_as_mcc_struct
+{
+    kal_uint8 mrs_as_mcc_count;
+    mrs_mcc_id multi_mcc_id[MAX_NUM_MULTI_MCC];
+} mrs_as_mcc_struct;
+
+/* MRS use this struct to set and save MCC from NAS */
+typedef struct 
+{
+    kal_uint8 multi_plmn_count;
+    mrs_plmn_id multi_plmn_id[MAX_NUM_MULTI_PLMN];
+} mrs_nas_mcc_struct;
+
+typedef struct
+{
+    /* Fast Mode Switch, record the latest serving cell's essential SI
+       for fast camp on for FDD/TDD mode switch. */
+    mrs_gas_fast_mode_switch_status_enum fast_mode_switch_status;
+    kal_uint8 bsic;
+    kal_uint16 arfcn;
+    plmn_id_struct plmn_id;
+    kal_uint8 si_raw_data_valid_bitmap;
+    kal_uint8 si1_raw_data[GAS_SI_RAW_DATA_LEN];
+    kal_uint8 si2_raw_data[GAS_SI_RAW_DATA_LEN];
+    kal_uint8 si2bis_raw_data[GAS_SI_RAW_DATA_LEN];
+    kal_uint8 si3_raw_data[GAS_SI_RAW_DATA_LEN];
+    kal_uint8 si4_raw_data[GAS_SI_RAW_DATA_LEN];
+#ifdef __PS_SERVICE__
+    kal_uint8 si13_raw_data[GAS_SI_RAW_DATA_LEN];
+#endif /* __PS_SERVICE__ */
+} mrs_gas_shared_info_struct;
+
+/* MRS use this struct to set and get PLMN status from NAS
+ * is_roaming: current PLMN is roaming or not
+ */
+typedef struct
+{
+    kal_bool is_roaming;
+} mrs_nas_plmn_info_struct;
+
+#ifdef __GAS_STORED_SI_FEAT__
+typedef struct 
+{
+    kal_bool     valid;
+	/* RRM_BA_ROW_DATA_SIZE */
+    kal_uint8    ba_raw_data[16];
+    kal_uint8    count;
+    kal_uint8    rest[RRM_MAX_SI2TER_INSTANCES][RRM_SI2TER_REST_LEN];
+}rrm_si2ter_struct;
+
+typedef struct 
+{
+   kal_bool     valid;
+   kal_uint8    count;
+   kal_uint8    rest[RRM_MAX_SI2QUARTER_INSTANCES][RRM_SI2QUARTER_REST_LEN];
+}rrm_si2quarter_struct;
+
+typedef struct 
+{
+    kal_bool    valid;
+    kal_bool    essential_si_valid;
+    kal_uint32  system_tick;
+    kal_uint16  storedSI_arfcn;
+    kal_uint8   storedSI_bsic;
+    kal_uint8   si_raw_data_bitmap;
+    kal_uint8   si1_data[21]; 
+    kal_uint8   si2_data[21];
+    kal_uint8   si2bis_data[21];
+    kal_uint8   si3_data[21];
+    kal_uint8   si4_data[21];
+    kal_uint8   si13_data[21];
+    rrm_si2ter_struct        si2ter;
+    rrm_si2quarter_struct    si2quarter; 
+} rrm_gsm_storedSI_struct;
+
+#endif
+
+#ifdef __NR_RAT__
+typedef struct
+{
+    kal_bool   additional_pmax_valid;
+    kal_int8   additional_pmax;
+    kal_bool   additional_spectrum_emission_valid;
+    kal_uint16 additional_spectrum_emission;
+} eutra_ns_pmax_value_struct;
+
+typedef struct
+{
+    kal_uint8 eutra_ns_pmax_list_len;
+    eutra_ns_pmax_value_struct eutra_ns_pmax_list[EUTRA_NS_PMAX_LIST_MAX_NUM];
+} eutra_ns_pmax_list_struct;
+
+typedef struct
+{
+    kal_uint16 freq_band_indicator_eutra;
+    eutra_ns_pmax_list_struct ns_pmax_list;
+} eutra_multibandinfo_struct;
+
+typedef struct
+{
+    kal_uint8  eutra_multibandinfo_list_len;
+    eutra_multibandinfo_struct eutra_multibandinfo_list[EUTRA_MULTI_BANDS_MAX_NUM];
+} eutra_multibandinfo_list_struct;
+#endif /* __NR_RAT__ */
+
+typedef struct {
+    kal_uint8 *oct;
+    kal_uint16 oct_len;
+} mrs_nras_octet_string_struct;
+
+/**
+ * Structure for EUTRAN feature set IDs. IDs are in the order they shall be
+ * reported to the network. ID values are IDs of feature sets read from L1.
+ * fs_dl_num Number of IDs in fs_dl_id list
+ * fs_dl_id List of EUTRAN DL feature set IDs
+ * fs_ul_num Number of IDs in fs_ul_id list
+ * fs_ul_id List of EUTRAN UL feature set IDs
+ */
+typedef struct
+{
+    kal_uint16  fs_dl_num;
+    kal_uint16  fs_dl_id[MRS_NRAS_EUTRAN_FEATURE_SETS_MAX_NUM];
+    kal_uint16  fs_ul_num;
+    kal_uint16  fs_ul_id[MRS_NRAS_EUTRAN_FEATURE_SETS_MAX_NUM];
+} mrs_nras_eutran_feature_set_ids_struct;
+
+/* record systime of RAT_CHANGE_CNF(succes),
+   During timewindow, if the rat change reaches specific times, PINGPONG confirmed.
+   the MAX record for RAT change is AS_PINGPONG_THRESHOLD_MAX, but user can customize their PINGPONG scenario with count less than AS_PINGPONG_THRESHOLD_MAX
+*/
+typedef struct
+{
+    kal_uint32 rat_change_time[AS_PINGPONG_THRESHOLD_MAX];
+} mrs_irat_change_info_struct;
+
+typedef struct
+{
+    rat_enum rat;             // Current active rat
+    kal_uint8 cc_idx;         // Idle mode: always 0. Connected mode: NW configured CC idx.
+    kal_uint32 freq_1khz;     // Corresponding Pcell/Scell frequency in 1khz.
+    kal_uint32 bw_1khz;       // Corresponding Pcell/Scell BW in 1khz
+    kal_uint16 band;          // Universal band
+    kal_uint8 mimo_layer;     // 0xFF if no valid info
+} mrs_common_cc_info_struct;
+
+typedef struct
+{
+    protocol_id_enum ps_id;
+    kal_uint8 dl_cc_num; // Idle mode: always 1. Connected mode: NW configured DL cc num.
+    mrs_common_cc_info_struct dl_cc_info[MRS_MAX_CC_NUM];
+    kal_uint8 ul_cc_num; // Idle mode: always 1 or 0 if UL info is not available. Connected mode: NW configured UL cc num.
+    mrs_common_cc_info_struct ul_cc_info[MRS_MAX_CC_NUM];
+} mrs_cell_cc_info_struct;
+
+typedef struct
+{
+    kal_uint8 gsm_band;
+    kal_uint8 fdd_umts_band[NVRAM_EF_AS_FDD_UMTS_BAND_SETTING_SIZE];
+    kal_uint8 lte_band[NVRAM_EF_AS_LTE_BAND_SETTING_SIZE];
+} mrs_mcc_band_setting_per_region_struct;
+
+typedef struct
+{
+    kal_uint8  mcc_region_number;
+    kal_uint8  no_of_plmns;
+    mrs_plmn_id  mcc_region_plmns[MAX_NUM_VALID_MCC_REGION_PLMNS];
+    mrs_mcc_band_setting_per_region_struct band_setting;
+} mrs_mcc_plmn_list_within_region_record_struct;
+
+
+typedef struct
+{
+    kal_uint8 no_of_mcc_regions;
+    mrs_mcc_plmn_list_within_region_record_struct  setting[MAX_NUM_VALID_MCC_REGIONS];    
+} mrs_mcc_region_band_setting_record_struct;
+
+#endif /* _MRS_AS_STRUCT_H */