[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/mrs_as_enums.h b/mcu/protocol/interface/general/mrs_as_enums.h
new file mode 100644
index 0000000..7f28270
--- /dev/null
+++ b/mcu/protocol/interface/general/mrs_as_enums.h
@@ -0,0 +1,593 @@
+/*****************************************************************************
+*  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_enums.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!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ ******************************************************************************/
+#ifndef _MRS_AS_ENUMS_H
+#define _MRS_AS_ENUMS_H
+
+#include "global_def.h"
+#include "l3_inc_enums.h"
+#include "ps_public_enum.h"
+#include "mrs_as_inter_core_enum.h"
+#include "mrs_as_irat_enums.h"
+
+typedef enum 
+{
+    INITIAL,
+    SHARED,
+    OCCUPIED
+}lower_layer_availability_enum;
+
+#if defined(__GEMINI__)
+#define MAX_GAS_CAPABILITY      MAX_GSM_NUM
+#define MAX_UAS_CAPABILITY      MAX_UMTS_NUM
+#define MAX_EAS_CAPABILITY      MAX_LTE_NUM
+#define MAX_MM_CAPABILITY       MAX_GSM_NUM /* assume GSM number > UMTS number */
+#define MAX_EMM_CAPABILITY      MAX_LTE_NUM
+#ifdef __FIVEG_NAS__
+#define MAX_VGNAS_CAPABILITY    MAX_SIM_NUM
+#endif /* __FIVEG_NAS__ */
+#define MAX_CAS_CAPABILITY      1
+#ifdef __NR_RAT__
+#define MAX_NRAS_CAPABILITY     MAX_NR_NUM
+#endif /* __NR_RAT__ */
+#else
+#define MAX_GAS_CAPABILITY      1
+#define MAX_UAS_CAPABILITY      1
+#define MAX_EAS_CAPABILITY      1
+#define MAX_MM_CAPABILITY       1
+#define MAX_EMM_CAPABILITY      1
+#ifdef __FIVEG_NAS__
+#define MAX_VGNAS_CAPABILITY    1
+#endif /* __FIVEG_NAS__ */
+#define MAX_CAS_CAPABILITY      1
+#ifdef __NR_RAT__
+#define MAX_NRAS_CAPABILITY     1
+#endif /* __NR_RAT__ */
+#endif
+
+#define MAX_ASSOCIATION_LAI_CELL_INFO 12
+#define MAX_ASSOCIATION_SAME_LAI_CELL_INFO 24
+
+/* For fast resume and Search info. reuse for mode switch. */
+#define SI1_RAW_VALID                  0x01 //00000001
+#define SI2_RAW_VALID                  0x02 //00000010
+#define SI2BIS_RAW_VALID               0x04 //00000100
+#define SI3_RAW_VALID                  0x08 //00001000
+#define SI4_RAW_VALID                  0x10 //00010000
+#define SI13_RAW_VALID                 0x20 //00100000
+#define SI1_EXIS                       0x80 //10000000
+#define SI2SERIES_RAW_VALiD            0x06 //00000110  si2 & si2bis
+#define ALL_SI_RAW_VALID               0xbf //10111111
+#ifdef __PS_SERVICE__
+#define GAS_FAST_MODE_SWITCH_VALID_SI  0xbf //10111111
+#else
+#define GAS_FAST_MODE_SWITCH_VALID_SI  0x9f //10011111
+#endif
+#define GAS_SI_RAW_DATA_LEN 20
+
+
+#ifdef __GAS_STORED_SI_FEAT__
+#define RRM_MAX_SI2TER_INSTANCES    8
+#define RRM_SI2TER_REST_LEN    4
+#define RRM_MAX_SI2QUARTER_INSTANCES    16
+#define RRM_SI2QUARTER_REST_LEN    20
+#define RRM_MAX_SIZE_OF_GAS_STORED_SI_LIST 8
+#define GAS_CANDIDATE_TICK_INIT (0xFFFFFFFF)
+#endif
+
+#define AFR_MASK_2G4                   0x0001
+#define AFR_MASK_3G4                   0x0002
+#define AFR_MASK_2G5_FDD               0x0004
+#define AFR_MASK_2G5_TDD               0x0008
+#define AFR_MASK_3G5_FDD               0x0010
+#define AFR_MASK_3G5_TDD               0x0020
+#define AFR_MASK_4G5                   0x0040
+
+/* Already in l3_inc_enums.h
+typedef enum 
+{
+    DEL_CSG,
+    ADD_CSG
+}csg_update_type_enum;
+*/
+
+typedef enum 
+{
+    NO_CHANGE,
+    ALLOWED_CSG_LIST_CHANGED,
+    OPERATOR_CSG_LIST_CHANGED,
+    BOTH_CSG_LIST_CHANGED
+}white_list_update_type;
+
+/* Already in ps_public_enum.h
+typedef enum 
+{
+    NOT_IN_WHITE_LIST,
+    ALLOWED_CSG,
+    OPERATOR_CSG,
+    UNAUTH_OPERATOR_CSG
+}csg_type_enum;
+*/
+
+typedef enum 
+{
+    ALLOWED_CSG_LIST,
+    OPERATOR_CSG_LIST
+}csg_list_type_enum;
+
+typedef enum 
+{
+    SIM_NEW_INSERTED,
+    SIM_FILE_UPDATED,
+    AS_UPDATED
+}csg_white_list_update_cause;
+
+typedef enum
+{
+    CSFB_REDUCE_LAU = 1,
+    CSFB_DEFER_SI13,
+    CSFB_2G_AFR,
+    CSFB_3G_AFR,
+    CSFB_2G_FDD_eCSFB,
+    CSFB_3G_FDD_eCSFB,
+    CSFB_2G_TDD_eCSFB,
+    CSFB_3G_TDD_eCSFB,
+    CSFB_ENHANCEMENT_ITEM_END
+}csfb_enhancement_enum;
+
+typedef enum 
+{
+    BAND_39_DISABLE,
+    BAND_39_ENABLE
+}band_39_control_enum;
+
+typedef enum
+{
+    BAND_DISABLE,
+    BAND_ENABLE
+}eas_band_control_enum;
+
+typedef enum
+{
+    BG_SEARCH_2G4_FDD,
+    BG_SEARCH_3G4_FDD,
+    BG_SEARCH_2G4_TDD,
+    BG_SEARCH_3G4_TDD,
+    BG_SEARCH_2G5_FDD,
+    BG_SEARCH_3G5_FDD,
+    BG_SEARCH_2G5_TDD,
+    BG_SEARCH_3G5_TDD,
+    BG_SEARCH_4G5
+}background_search_enum;
+
+typedef enum
+{
+    MRS_GAS_FAST_MODE_SWITCH_NOT_ALLOWED                = 0x00,      //Initial value
+    MRS_GAS_FAST_MODE_SWITCH_COLLECTING_ESSENTIAL_SI    = 0x01 << 0, //RATCM_GAS_SYS_INFO not sent or still receiving essential SI
+    MRS_GAS_FAST_MODE_SWITCH_ESSENTIAL_SI_COLLECTED     = 0x01 << 1, //RATCM_GAS_SYS_INFO sent
+    MRS_GAS_FAST_MODE_SWITCH_NOT_HAPPENED               = 0x01 << 2, // DUPLEX mode change not happened
+    MRS_GAS_FAST_MODE_SWITCH_HAPPENED                   = 0x01 << 3, // DUPLEX mode change happened
+    MRS_GAS_FAST_MODE_SWITCH_NOT_HAPPENED_WO_SI         = MRS_GAS_FAST_MODE_SWITCH_COLLECTING_ESSENTIAL_SI
+                                                        + MRS_GAS_FAST_MODE_SWITCH_NOT_HAPPENED,
+    MRS_GAS_FAST_MODE_SWITCH_HAPPENED_BUT_WO_SI         = MRS_GAS_FAST_MODE_SWITCH_COLLECTING_ESSENTIAL_SI
+                                                        + MRS_GAS_FAST_MODE_SWITCH_HAPPENED,
+    MRS_GAS_FAST_MODE_SWITCH_NOT_HAPPENED_W_SI          = MRS_GAS_FAST_MODE_SWITCH_ESSENTIAL_SI_COLLECTED
+                                                        + MRS_GAS_FAST_MODE_SWITCH_NOT_HAPPENED,
+    MRS_GAS_FAST_MODE_SWITCH_ALLOWED                    = MRS_GAS_FAST_MODE_SWITCH_ESSENTIAL_SI_COLLECTED
+                                                        + MRS_GAS_FAST_MODE_SWITCH_HAPPENED,
+} mrs_gas_fast_mode_switch_status_enum;
+
+typedef enum
+{
+    MODULE_NONE,
+    MODULE_ERRC_RCM,
+    MODULE_ERRC_CEL,
+    MODULE_ERRC_SPV,
+    MODULE_UAS_FDD,
+    MODULE_UAS_TDD,
+    MODULE_GAS_FDD,
+    MODULE_GAS_TDD,
+    MODULE_C2K
+#ifdef __NR_RAT__
+    ,
+    MODULE_NRRC_IDLE,
+    MODULE_NRRC_BACKGROUND,
+    MODULE_NRRC_NCONN,
+    MODULE_NRRC_MAIN
+#endif /* __NR_RAT__ */
+}function_caller_id_enum;
+
+typedef enum
+{
+    STATE_NONE=0,
+    CHINA_MCC
+}mrs_sim_band_cfg_state_enum;
+
+typedef enum
+{
+    DISABLE_BAND_STATE_NONE = 0,
+    DISABLE_BAND_7_38,
+    DISABLE_BAND_NULL_BAND    
+}mrs_plmn_band_cfg_state_enum;
+
+typedef enum
+{
+    PARTIAL_BAND_SETTING_NONE = 0,    
+    CHINA_PARTIAL_BAND_SETTING,
+    JAPAN_PARTIAL_BAND_SETTING
+}mrs_sim_partial_band_cfg_state_enum;
+
+typedef enum
+{
+	CUSTOM_DISABLE_BAND_BY_PLMN_NONE = 0,
+	CUSTOM_DISABLE_BAND_BY_PLMN,
+	CUSTOM_DISABLE_BAND_BY_PLMN_NULL_BAND
+}mrs_custom_disable_band_by_plmn_state_enum;
+
+typedef enum
+{
+    PLMN_REGION_BAND_SETTING_NONE=0,    
+    PLMN_REGION_BAND_SETTING,
+    PLMN_REGION_BAND_SETTING_NULL_BAND
+}mrs_plmn_region_band_cfg_state_enum;
+
+typedef enum
+{
+    AS_RELEASE_INVALID=0,    
+    AS_RELEASE_REL9,
+    AS_RELEASE_REL10,
+    AS_RELEASE_REL11,
+    AS_RELEASE_REL12,
+    AS_RELEASE_REL13,
+    AS_RELEASE_REL14,
+    AS_RELEASE_REL15
+}mrs_as_release_enum;
+
+typedef enum
+{
+    CSFB_CALL_STATUS_UNKNOWN=0,    
+    CSFB_CALL_SUCCESS,
+    CSFB_CALL_FAILURE
+}mrs_gas_ecsfb_call_status_enum;
+
+typedef enum
+{
+    AFR_2G4,
+    AFR_3G4,
+    AFR_2G5_FDD,
+    AFR_2G5_TDD,
+    AFR_3G5_FDD,
+    AFR_3G5_TDD,
+    AFR_4G5,
+    AFR_ENHANCEMENT_ITEM_END
+}afr_enhancement_enum;
+
+typedef enum
+{
+    SRVC_VOICE_TRIGGER_AT_5G,
+    SRVC_VOICE_TRIGGER_AT_4G,
+    SRVC_SS_TRIGGER_AT_5G,
+    SRVC_SS_TRIGGER_AT_4G,
+    SRVC_CSFB_TRIGGER_AT_4G,
+    SRVC_EPSFB_TRIGGER_AT_5G,
+    SRVC_LPP,
+    SRVC_EMERGENCY,
+    SRVC_CELLULAR_CALL,
+    AFR_SRVC_MAX_NUM
+}afr_service_enum;
+
+typedef enum
+{
+    PROC_CSFB_FROM_4G,
+    PROC_SRVCC_FROM_4G,
+    PROC_EPSFB_FROM_5G,
+    PROC_SRVCC_FROM_5G,
+    AFR_PROC_MAX_NUM
+}afr_pre_cond_proc_enum;
+
+typedef enum  
+{
+    IRAT_PINGPONG_4G3=0, /* When the RAT Change between 4G & 3G, inclding 4G3 and 3G4 */
+    IRAT_PINGPONG_4GC2K, /* When the RAT Change is 4G to C2K, but C2K to 4G is MPSR */
+    IRAT_PINGPONG_4G2,   /* When the RAT Change between 4G & 2G, inclding 4G2 and 2G4 */
+//    IRAT_PINGPONG_3G2,   /* When the RAT Change between 3G & 2G, inclding 3G2 and 2G3 */
+    IRAT_PINGPONG_4G5,   /* When the RAT Change between 4G & 5G, inclding 4G5 and 5G4 */
+    IRAT_PINGPONG_TYPE_NUM
+}mrs_irat_pingpong_type_enum;
+
+typedef enum
+{
+    MRS_GEMINI_DSDS_MODE,
+    MRS_GEMINI_DR_DSDS_MODE,
+    MRS_GEMINI_DSDA_MODE,
+}mrs_gemini_mode_enum;
+
+
+typedef enum
+{
+    /* MRS_FEAT_IGNORE_REDIRECT_TO_LTE:
+     * - Usage: Ignore the redirection to LTE if no suitable cell could be found.
+     *          [EAS] ERRC would set this feature to TRUE if continous redirection failures are detected. 
+     *          [UAS] 3G TDD would query if needed to ignore the redirection. */
+    MRS_FEAT_IGNORE_REDIRECT_TO_LTE=0,
+    MRS_FEAT_NUM
+}mrs_feature_enum;
+
+typedef enum
+{
+    MRS_AFR_STRICT_CONSTRAIN_SEARCH_NOT_TRIGGERED,
+    MRS_AFR_STRICT_CONSTRAIN_SEARCH_TRIGGERED,
+    MRS_AFR_STRICT_CONSTRAIN_SEARCH_TRIGGERED_AND_FAILED
+}mrs_afr_strict_constrain_state;
+
+
+#define MRS_FEAT_BITMAP_SIZE ( (MRS_FEAT_NUM % 8 == 0)? (MRS_FEAT_NUM/8) : (MRS_FEAT_NUM/8 + 1) )
+
+#if (CUR_GEN >= MD_GEN97)
+typedef enum
+{
+	MRS_GEMINI_STATUS_FULL_CAP,
+    MRS_GEMINI_STATUS_DATA_SIM,
+    MRS_GEMINI_STATUS_NON_DATA_SIM,
+	MRS_GEMINI_STATUS_INVALID
+} mrs_gemini_status_enum;
+#endif /* (CUR_GEN >= MD_GEN97) */
+typedef enum
+{
+    MRS_AS_CAPA_NONE =0,
+    MRS_AS_CAPA_ERRC_NSA_MODE_ASN_DECODE_ERROR =1,
+    MRS_AS_CAPA_ERRC_NSA_MODE_IE_ERROR =2,
+    MRS_AS_CAPA_EMM_TAU_TAI_CHANGED =3,
+    MRS_AS_CAPA_EMM_DETACH_REQ = 4    
+}mrs_as_capa_event_enum;
+
+typedef enum
+{
+    MRS_AS_CAPA_FEATURE_DISABLE_NSA = 0,     /*bit  0 of mrs_capability_change_info.capability_change_feature_enable_state*/ 
+
+    MRS_AS_CAPA_FEATURE_INVALID
+}mrs_as_capa_change_feature_enum;
+
+#endif /* _MRS_AS_ENUMS_H */