[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/service/config/sysconf_statistics.h b/mcu/interface/service/config/sysconf_statistics.h
new file mode 100644
index 0000000..6dc54e5
--- /dev/null
+++ b/mcu/interface/service/config/sysconf_statistics.h
@@ -0,0 +1,462 @@
+/*****************************************************************************
+* 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:
+ * ---------
+ * sysconf_statistics.h
+ *
+ * Project:
+ * --------
+ * Maui_Software
+ *
+ * Description:
+ * ------------
+ * This file provides the stack statistics definition
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * 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!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifndef _SYSCONF_STATISTICS_H
+#define _SYSCONF_STATISTICS_H
+
+#define DSPSYS_STAT_DATA_LEN 512
+/*RHR*/
+#include "kal_general_types.h"
+#include "stack_config.h"
+#include "ctrl_buff_pool.h"
+#if defined(__KAL_CROSS_CORE_SUPPORT__) && defined(__MTK_TARGET__)
+#include "kalcc_ctrl_buff_pool.h"
+#endif
+
+#if defined(DEBUG_KAL) && (defined(__UMTS_RAT__) || defined(__LTE_RAT__))
+/* sizeof(stack_statistics_struct) is over 4K, so using compile option to control it */
+/* in case of 2G, no 8k control buffer no further statistic info */
+#define FURTHER_STATISTIC
+#endif
+#define KAL_ADM_PROFILE_AMOUNT (10)
+#define KAL_ADM_PROFILE_AMOUNT_KICKED_OUT (3)
+#define KAL_AFM_PROFILE
+#if defined(KAL_AFM_PROFILE)
+#define KAL_AFM_PROFILE_AMOUNT (10)
+#define KAL_AFM_POOL_PROFILE_AMOUNT (10)
+#endif
+
+#if defined(FURTHER_STATISTIC)
+#define HRTQbitProfileSize 32
+#endif
+
+/*************************************************************************
+ * System Statistics
+ *************************************************************************/
+enum {
+ STACK_STATS_NONE,
+ STACK_STATS_UPDATE,
+ STACK_STATS_END,
+};
+
+enum {
+ STACK_STATS_HISR_NAME = 0,
+ STACK_STATS_HISR_MAX_NAME = 8,
+};
+
+typedef struct clib_heap_statistics_t {
+ kal_uint32 curr_alloc_mem;
+ kal_uint32 max_alloc_mem;
+ kal_uint32 alloc_count;
+ kal_uint32 alloc_fail_count;
+ kal_uint32 config_size;
+} clib_heap_statistics_struct;
+
+
+#define KAL_TIMER_COUNT_STAT 10
+
+struct kal_mod_res_cnt {
+ module_type owner_module;
+ kal_uint16 count;
+};
+
+typedef struct {
+ kal_uint32 *adm_cb; /* ADM_CB * */
+ kal_uint32 adm_cb_size;
+ kal_uint32 max_mbsize_of_mini_left_size;
+ kal_uint32 mini_left_size; /* minimum mini_left_size during each allocation */
+ kal_uint32 creator_caller;
+} ADM_PROFILE;
+
+#if defined(KAL_AFM_PROFILE)
+typedef struct {
+ kal_uint32 buff_size;
+ kal_uint16 buff_nr;
+ kal_uint16 left_buff_nr;
+ kal_uint16 min_left_buff_nr;
+} AFM_POOL_PROFILE;
+
+typedef struct {
+ kal_uint32 * afm_cb; /* AFM_CB * */
+ kal_uint32 afm_cb_size;
+ kal_uint16 afm_subpool_nr;
+ kal_uint16 afm_option;
+ kal_uint32 afm_total_left_mem_sz;
+ kal_uint32 mini_left_size; /* minimum mini_left_size during each allocation */
+ kal_uint32 creator_caller;
+ AFM_POOL_PROFILE afm_subpool[KAL_AFM_POOL_PROFILE_AMOUNT];
+} AFM_PROFILE;
+#endif
+
+typedef struct runtime_sysmem_size {
+ kal_uint16 mutex;
+ kal_uint16 semaphore;
+ kal_uint16 enh_mutex;
+ kal_uint16 event_group;
+ kal_uint16 kal_timer;
+ kal_uint16 event_scheduler;
+ kal_uint16 spinlock;
+ kal_uint16 protect;
+} runtime_sysmem_size_s;
+
+typedef struct runtime_max_amount_sys {
+ kal_uint16 mutex;
+ kal_uint16 semaphore;
+ kal_uint16 enh_mutex;
+ kal_uint16 event_group;
+ kal_uint16 kal_timer;
+ kal_uint16 event_scheduler;
+ kal_uint16 spinlock;
+ kal_uint16 protect;
+} runtime_max_amount_sys_s;
+
+/* It's better to make this 4 bytes alignment, for dump parser */
+typedef struct runtime_max_amount_task {
+ kal_uint32 name;
+ kal_uint32 schedule_count;
+ kal_uint16 stack;
+ kal_uint8 ext_queue;
+ kal_uint8 int_queue;
+ kal_uint8 mutex;
+ kal_uint8 semaphore;
+ kal_uint8 event_group;
+ kal_uint8 kal_timer;
+ kal_uint8 event_scheduler;
+ kal_uint8 enh_mutex;
+ kal_uint8 spinlock;
+ kal_uint8 protect;
+} runtime_max_amount_task_s;
+
+typedef struct runtime_max_amount_hisr {
+ kal_uint32 name;
+ kal_uint32 schedule_count;
+ kal_uint16 stack;
+} runtime_max_amount_hisr_s;
+
+typedef struct memory_pool {
+ kal_uint32 max_sys_mem_used; /* Maximum system dynamic memory used */
+#ifdef DEBUG_KAL
+ kal_uint32 max_sysdebug_mem_used; /* Maximum system debug dynamic memory used */
+ kal_uint32 max_event_number_used;
+#endif
+} memory_pool_s;
+
+typedef struct stack_statistics_t {
+ kal_uint16 stack_stats_status;
+ kal_uint32 total_save_count;
+ kal_uint32 effective_accum_ustime_low;
+ kal_uint32 effective_accum_ustime_high;
+
+ memory_pool_s memory_pool;
+
+
+ runtime_max_amount_sys_s runtime_max_amount_total;
+ runtime_max_amount_sys_s runtime_max_amount_system;
+ runtime_max_amount_task_s runtime_max_amount_task[KAL_MAX_NUM_TASKS];
+ runtime_max_amount_hisr_s runtime_max_amount_hisr[KAL_MAX_NUM_HISRS];
+ runtime_sysmem_size_s primitive_size;
+
+#if defined(DEBUG_BUF1) || defined(DEBUG_BUF2)
+ /* Maximum number control buffers allocated */
+ kal_uint16 max_ctrl_buff_num_allocated[RPS_CREATED_CTRL_BUFF_POOLS];
+#endif /* DEBUG_BUF1 || DEBUG_BUF2 */
+
+#if defined(DEBUG_BUF_MOD_USAGE) && !defined(__MTK_TARGET__)
+ kal_uint16 mod_ctrlBuf_peak_count[RPS_CREATED_CTRL_BUFF_POOLS][MOD_ID_CODE_END];
+#endif /* end of DEBUG_BUF_MOD_USAGE && !__MTK_TARGET__ */
+
+
+#if defined(FURTHER_STATISTIC)
+ ADM_PROFILE top_adm_profile[KAL_ADM_PROFILE_AMOUNT];
+ ADM_PROFILE top_adm_user_profile[KAL_ADM_PROFILE_AMOUNT];
+ kal_uint32 kicked_out_smallest_adm_user_size[KAL_ADM_PROFILE_AMOUNT_KICKED_OUT];
+ kal_uint32 kicked_out_adm_user_number;
+
+ AFM_PROFILE top_afm_profile[KAL_AFM_PROFILE_AMOUNT];
+ AFM_PROFILE top_afm_user_profile[KAL_AFM_PROFILE_AMOUNT];
+
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE0_Dur[HRTQbitProfileSize];
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE0_Addr[HRTQbitProfileSize];
+
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE1_Dur[HRTQbitProfileSize];
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE1_Addr[HRTQbitProfileSize];
+
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE2_Dur[HRTQbitProfileSize];
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE2_Addr[HRTQbitProfileSize];
+
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE3_Dur[HRTQbitProfileSize];
+ kal_uint32 NVRAM_HRTQbitFailLog_VPE3_Addr[HRTQbitProfileSize];
+#endif
+
+
+} stack_statistics_struct;
+
+
+/*************************************************************************
+ * Define function prototype.
+ *************************************************************************/
+
+extern kal_int32 stack_get_stats_info(kal_uint32 stats, void *buff,
+ kal_uint32 buff_size);
+extern void clib_get_heap_statistics(clib_heap_statistics_struct *pstat);
+extern kal_bool stack_update_sys_statistics(stack_statistics_struct *prev_stats);
+
+#endif /* _SYSCONF_STATISTICS_H */