[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/general/mbmsal_errc_struct.h b/mcu/protocol/interface/general/mbmsal_errc_struct.h
new file mode 100644
index 0000000..bf0e742
--- /dev/null
+++ b/mcu/protocol/interface/general/mbmsal_errc_struct.h
@@ -0,0 +1,356 @@
+/*****************************************************************************
+* 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) 2012
+*
+* 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:
+ * ---------
+ * mbmsal_errc_struct.h
+ *
+ * Project:
+ * --------
+ * TK6291
+ *
+ * Description:
+ * ------------
+ * message, enums and common structure definition between MBMSAL and ERRC module
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 09 18 2020 bart.liang
+ * [MOLY00569501] [Gen97] TC10 patch back
+ * Merge from CL2962151
+ *
+ * 08 17 2017 danny.kuo
+ * [MOLY00270475] [MT6763][Bianco][N1][NIOT][eMBMS] eMBMS session reception on scell stops at connection release.
+ * .
+ *
+ * 10 24 2016 cynthia.chen
+ * [MOLY00208768] [MT6293] [B66] Band66 porting (ERRC part)
+ * - errc mbmsal,em part OA domain
+ *
+ * 03 16 2016 kun-lin.wu
+ * [MOLY00166918] SPV eMBMS potential bug fix
+ *
+ * 02 17 2016 kun-lin.wu
+ * [MOLY00162733] [MT6755][Jade M6][MP3][L+W][In-house FTA][eMBMS][EE][ASSERT] file:pcore/modem/l4/mbmsal/src/mbmsal_hdlr.c line:635
+ *
+ * 02 17 2016 tc.chang
+ * [MOLY00159610] eMBMS VzW/LGE requirement.
+ *
+ * 02 15 2016 kun-lin.wu
+ * [MOLY00155092] [MBMS target IT] [CMW500] ml_035f mbms video stream Assert fail: errc_spv_mbms.c 812
+ *
+ * 06 16 2015 yingwei.huang
+ * [MOLY00098916] [MT6291] MBMS reception on SCELL
+ * .
+ *
+ * 04 08 2015 morton.lin
+ * [MOLY00095623] [eRRC] Gemini virtual mode
+ * eMBMS Gemini 2PS phase-in: MBMSAL IF part
+ *
+ * 01 19 2015 morton.lin
+ * [MOLY00078855] [MT6291_DEV] eRRC eMBMS
+ * [6291][ERRC][SPV] eMBMS phase-in (UMOLY)
+ *
+ * 12 12 2014 morton.lin
+ * [MOLY00084695] [6291] Code merged from MT6291_DEV to UMOLY TRUNK
+ * MBMS IF check-in UMOLY
+ *
+ * 10 13 2014 morton.lin
+ * [MOLY00078855] [MT6291_DEV] eRRC eMBMS
+ * Add mcd_l3_inc_struct header inclusion
+ *
+ * 10 01 2014 morton.lin
+ * [MOLY00078855] [MT6291_DEV] eRRC eMBMS
+ * Use agreed TMGI structure
+ *
+ * 09 14 2014 morton.lin
+ * [MOLY00068710] [TK6291_DEV] Sync MOLY to TK6291_DEV
+ * [ERRC][MBMS][IF] Revise the additional info data structure according to the IF document
+ *
+ * 09 05 2014 morton.lin
+ * [MOLY00068710] [TK6291_DEV] Sync MOLY to TK6291_DEV
+ * [MBMSAL][ERRC][IF] Revise daylight saving time format
+ *
+ * 09 04 2014 cooper.lin
+ * [MOLY00068710] [TK6291_DEV] Sync MOLY to TK6291_DEV
+ * modify MBMSAL-SPV interface usage, and add MBMSAL_ERRC_SAP
+ *
+ * 08 20 2014 cooper.lin
+ * [MOLY00068710] [TK6291_DEV] Sync MOLY to TK6291_DEV
+ * Revise MBMS interface.
+ *
+ ****************************************************************************/
+
+
+#ifndef MBMSAL_ERRC_STRUCT_INC
+#define MBMSAL_ERRC_STRUCT_INC
+
+#include "kal_general_types.h"
+#include "mcd_l3_inc_struct.h" //For plmn_id_struct
+#include "global_type.h"
+
+#define MBMS_SERVSESS_INFO_EARFCN_NUM 5
+#define MBMS_SERVSESS_INFO_SAI_NUM 64
+
+#define MBMS_SERVICE_STATUS_MBSFN_AREA_NUM 8
+
+#define MBMS_SIB15_FREQ_SAI_NUM 64
+#define MBMS_SIB15_INTER_FREQ_NUM 8
+#define MBMS_SIB15_INTER_FREQ_MULTI_BAND_NUM 8
+
+#define MBMS_CONFIG_INFO_MCH_NUM 15
+#define MBMS_CONFIG_INFO_SERVICE_NUM 29
+
+#define MBMS_SERVSESS_STATUS_SERVICE_NUM 8
+
+#define ERRC_MBMS_MAX_CELL_NUM 2
+
+#define ERRC_MBMS_PCELL_VALID 0X01
+#define ERRC_MBMS_SCELL_VALID 0X02
+
+/* Duration of searching MBMS session (second) */
+/* From CK's information, 15 sec is too long for Expway. Recommend 8 sec. */
+#define MBMSAL_SERVSESS_SEARCH_TIME_DEFAULT 8
+
+#define MBMS_INVALID_SESSION_ID 0xFFFF
+
+#define MBMSAL_OUT_SESS_HYSTERESIS_PERIOD_DEFAULT 10 // refer to VZ_REQ_LTEEMBMS_6987
+
+#define MBMS_REPORT_TMGI_PER_MBSFN_AREA 32
+
+/***** enums definition *****/
+typedef enum
+{
+ MBMS_STATUS_COVER_MBMSAREA,
+ MBMS_STATUS_COVER_NONMBMSAREA,
+ MBMS_STATUS_COVER_OOS,
+ MBMS_STATUS_COVER_LEAVELTE,
+#if defined(__GEMINI__)
+ MBMS_STATUS_COVER_GEMINI_SUSPEND,
+ MBMS_STATUS_COVER_GEMINI_VIRTUAL_SUSPEND,
+#endif
+
+ MBMS_STATUS_SERVSESS_ACTSUCC,
+ MBMS_STATUS_SERVSESS_ACTSUCC_ALREADY_DONE,
+ MBMS_STATUS_SERVSESS_ACTFAIL, // Unknown reason
+ MBMS_STATUS_SERVSESS_ACTFAIL_MAX_SESSIONS,
+ MBMS_STATUS_SERVSESS_ACTFAIL_MISS_MCCH,
+ MBMS_STATUS_SERVSESS_ACTFAIL_MISS_TMGI,
+ MBMS_STATUS_SERVSESS_ACTFAIL_OOC,
+ MBMS_STATUS_SERVSESS_ACTFAIL_OOS,
+ MBMS_STATUS_SERVSESS_ACTFAIL_FREQUENCY_CONFLICT,
+ MBMS_STATUS_SERVSESS_DEACTSUCC,
+ MBMS_STATUS_SERVSESS_DEACTFAIL,
+
+ // For below causes:
+ // 1. MBMSAL assume SPV only report indication when there is any active session before the indication.
+ // 2. config_servsess_valid in mbmsal_errc_mbms_servsess_status_ind_struct needs to be KAL_FALSE.
+ MBMS_STATUS_SERVSESS_UPDATE,
+ MBMS_STATUS_SERVSESS_DEACT_NONMBMSAREA,
+ MBMS_STATUS_SERVSESS_DEACT_OOS,
+ MBMS_STATUS_SERVSESS_DEACT_LEAVELTE,
+ MBMS_STATUS_SERVSESS_DEACT_MBMSDISABLED
+#if defined(__GEMINI__)
+ , MBMS_STATUS_SERVSESS_DEACT_GEMINI_SUSPEND
+ , MBMS_STATUS_SERVSESS_DEACT_GEMINI_VIRTUAL_SUSPEND
+#endif
+} mbmsal_errc_mbms_status_enum;
+
+typedef enum
+{
+ DAYLIGHT_SAVING_TIME_NO_ADJ = 0,
+ DAYLIGHT_SAVING_TIME_PLUS_ONE_ADJ = 1,
+ DAYLIGHT_SAVING_TIME_PLUS_TWO_ADJ = 2,
+ DAYLIGHT_SAVING_TIME_RESV = 3
+} daylight_saving_time_enum;
+
+typedef enum
+{
+ MBMS_CONFIG_DELETE_NONE,
+
+ /* VZ_REQ_LTEEMBMS_6939:
+ * Out of MBMS service area in AP view. On-going sessions are not affected.
+ * To prevent the scenario that out of MBMS service is reported but there are active sessions,
+ * MBMSAL/AP could send DELETE_ALL_ACTIVE_SERVESS if out-session-hysteresis is configured.
+ */
+ MBMS_CONFIG_DELETE_ALL_ACTIVE_SERVSESS,
+
+ /* VzW: E911 or hVoLTE flow (AT+EMEVT). Deactivate ALL sessions. */
+ MBMS_CONFIG_DELETE_ALL_ACTIVE_AND_ONGOING_SERVSESS,
+} mbmsal_errc_config_delete_servsess_enum;
+
+/***** message structure definition *****/
+typedef struct
+{
+ plmn_id_struct plmnId;
+ kal_uint8 service_id[3]; //Format is [0], [1], [2]
+} tmgi_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_bool enable;
+ kal_bool mbms_prioritized;
+ kal_uint32 search_time;
+ kal_uint32 out_sess_hysteresis_period;
+
+ kal_bool servsess_info_valid;
+ struct {
+ kal_bool enable;
+ tmgi_struct tmgi;
+ kal_uint16 sess_id; /* 0xffff = invalid */
+ kal_bool mbsfn_area_id_valid; /* according to AT Spec, although not one of usd info */
+ kal_uint8 mbsfn_area_id; /* according to AT Spec, although not one of usd info */
+ kal_bool additional_info_valid;
+ struct {
+ kal_uint8 num_of_earfcn;
+ EARFCN earfcn[MBMS_SERVSESS_INFO_EARFCN_NUM];
+ kal_uint8 num_of_sai;
+ kal_uint16 sai[MBMS_SERVSESS_INFO_SAI_NUM];
+ } additional_info;
+ } servsess_info;
+
+ /* servsess_info_valid and deact_type are excluded */
+ mbmsal_errc_config_delete_servsess_enum delete_type;
+} mbmsal_errc_mbms_config_req_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 validity;
+ //ERRC_MBMS_PCELL_VALID => the following fields apply to Pcell only
+ //ERRC_MBMS_SCELL_VALID => the following fields apply to Scell only
+ //ERRC_MBMS_PCELL_VALID | ERRC_MBMS_SCELL_VALID => the following fields apply to both Pcell and Scell.
+
+ mbmsal_errc_mbms_status_enum coverage_status;
+ kal_bool serving_earfcn_valid[ERRC_MBMS_MAX_CELL_NUM];
+ EARFCN serving_earfcn[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint8 num_of_mbsfn_area_id[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint8 mbsfn_area_id[ERRC_MBMS_MAX_CELL_NUM][MBMS_SERVICE_STATUS_MBSFN_AREA_NUM];
+} mbmsal_errc_mbms_service_status_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 validity;
+
+ EARFCN serving_earfcn[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint8 num_of_intra_freq_sai[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint16 intra_freq_SAI[ERRC_MBMS_MAX_CELL_NUM][MBMS_SIB15_FREQ_SAI_NUM];
+ kal_uint8 num_of_inter_freq_sai_list[ERRC_MBMS_MAX_CELL_NUM];
+ struct {
+ EARFCN earfcn;
+ kal_uint8 num_of_sai;
+ kal_uint16 sai[MBMS_SIB15_FREQ_SAI_NUM];
+ kal_uint8 num_of_multi_band_info;
+ kal_uint16 multi_band_info[MBMS_SIB15_INTER_FREQ_MULTI_BAND_NUM];
+ } inter_freq_SAI_list[ERRC_MBMS_MAX_CELL_NUM][MBMS_SIB15_INTER_FREQ_NUM];
+} mbmsal_errc_mbms_sib15_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 validity;
+
+ EARFCN serving_earfcn[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint64 utc[ERRC_MBMS_MAX_CELL_NUM];
+ kal_bool daylight_saving_time_valid[ERRC_MBMS_MAX_CELL_NUM]; /* false = clear daylight saving time */
+ daylight_saving_time_enum daylight_saving_time[ERRC_MBMS_MAX_CELL_NUM];
+ kal_int16 leap_seconds[ERRC_MBMS_MAX_CELL_NUM]; /* 0xffff = clear */
+ kal_int8 local_time_offset[ERRC_MBMS_MAX_CELL_NUM]; /* 0xff = clear */
+ kal_uint32 rcv_os_time[ERRC_MBMS_MAX_CELL_NUM];
+} mbmsal_errc_mbms_sib16_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 validity;
+
+ EARFCN serving_earfcn[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint8 mbsfn_area_id[ERRC_MBMS_MAX_CELL_NUM];
+ kal_uint8 num_of_mch_info[ERRC_MBMS_MAX_CELL_NUM];
+ struct {
+ kal_uint8 num_of_servsess_info;
+ struct {
+ tmgi_struct tmgi;
+ kal_uint16 sess_id; /* 0xffff = invalid */
+ } servsess_info[MBMS_CONFIG_INFO_SERVICE_NUM];
+ } mch_info[ERRC_MBMS_MAX_CELL_NUM][MBMS_CONFIG_INFO_MCH_NUM];
+} mbmsal_errc_mbms_config_info_ind_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ EARFCN serving_earfcn;
+ mbmsal_errc_mbms_status_enum servsess_status; /* Caution: MBMSAL has assumption for each status. Refer to enum definication for details. */
+ kal_bool act_servsess_valid; /* FALSE means no active servsess */
+ struct {
+ kal_bool valid;
+ tmgi_struct tmgi;
+ kal_uint16 sess_id; /* 0xffff = invalid */
+ } act_servsess[MBMS_SERVSESS_STATUS_SERVICE_NUM];
+ kal_bool config_servsess_valid;
+ struct {
+ tmgi_struct tmgi;
+ kal_uint16 sess_id; /* 0xffff = invalid */
+ } config_servsess;
+} mbmsal_errc_mbms_servsess_status_ind_struct;
+
+/*** Requirement of TC10 ***/
+typedef struct
+{
+ kal_uint8 mbsfn_area_id;
+ kal_int16 snr;
+ kal_int16 esnr;
+ kal_uint8 num_tmgi;
+ tmgi_struct tmgi[MBMS_CONFIG_INFO_SERVICE_NUM];
+} mbmsal_errc_mbms_info_element_struct;
+
+typedef struct
+{
+ LOCAL_PARA_HDR
+ kal_uint8 num_list;
+ mbmsal_errc_mbms_info_element_struct list[MBMS_SERVICE_STATUS_MBSFN_AREA_NUM];
+} mbmsal_errc_mbms_info_ind_struct;
+/*** Requirement of TC10 ***/
+
+#endif /* ----- #ifndef MBMSAL_ERRC_STRUCT_INC ----- */
+