blob: ce9618f28aba8bf8d8f928dd89bb3a397f2881e7 [file] [log] [blame]
/**
*
* @file zcat_diag.h
* @brief
* This file is part of ZCAT.
* ZCAT¹¤¾ßDIAGÏûÏ¢ºÍ½á¹¹¶¨Òå
*
* @details
* @author Tools Team.
* @email
* @copyright Copyright (C) 2013 Sanechips Technology Co., Ltd.
* @warning
* @date 2019/02/02
* @version 1.2
* @pre
* @post
*
* @par
* Change History :
* ---------------------------------------------------------------------------
* date version author description
* ---------------------------------------------------------------------------
* 2012/12/27 1.0 lu.xieji Create file
* 2013/10/11 1.1 hou.bing Add Sys View
* 2019/02/02 1.2 jiang.fenglin ÐÞ¸Ä×¢ÊÍ·½Ê½Îªdoxygen
* ---------------------------------------------------------------------------
*
*
*/
#ifndef ZCAT_DIAG_H
#define ZCAT_DIAG_H
#ifdef __cplusplus
extern "C"
{
#endif
/* ϵͳ¹Û²ì */
#define ZCAT_SYSVIEW_BASE (UINT32)(EV_ZOSS_TRACE_BASE + 115)
#define ZCAT_SYSVIEW_TASK_REQ (UINT32)(ZCAT_SYSVIEW_BASE) /* ÈÎÎñÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_TASK_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 1) /* ÈÎÎñÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_TASK_RESET_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 2) /* ÈÎÎñÔËÐдÎÊýºÍʱ¼äÇåÁãÏûÏ¢ */
#define ZCAT_SYSVIEW_TASK_RESET_ACK (UINT32)(ZCAT_SYSVIEW_BASE + 3) /* ÈÎÎñÔËÐдÎÊýºÍʱ¼äÇåÁãÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_THREAD_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 4) /* Ïß³ÌÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_THREAD_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 5) /* Ïß³ÌÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_THREAD_RESET_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 6) /* Ïß³ÌÔËÐдÎÊýºÍʱ¼äÇåÁãÏûÏ¢ */
#define ZCAT_SYSVIEW_THREAD_RESET_ACK (UINT32)(ZCAT_SYSVIEW_BASE + 7) /* Ïß³ÌÔËÐдÎÊýºÍʱ¼äÇåÁãÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_PERF_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 8) /* ÐÔÄÜÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_PERF_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 9) /* ÐÔÄÜÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_RUNLOG_NAME_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 10) /* ËùÓÐÏ̺߳ÍÈÎÎñÃû³ÆÓëID¶Ô³Æ¹ØÏµÇëÇó */
#define ZCAT_SYSVIEW_RUNLOG_NAME_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 11) /* ·µ»ØËùÓÐÏ̺߳ÍÈÎÎñÃû³ÆºÍID */
#define ZCAT_SYSVIEW_RUNLOG_SETID_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 12) /* ÉèÖÃÑ¡ÖÐÒª¼Ç¼µÄÏ̺߳ÍÈÎÎñµÄIDÇëÇó */
#define ZCAT_SYSVIEW_RUNLOG_SETID_ACK (UINT32)(ZCAT_SYSVIEW_BASE + 13) /* ÉèÖÃÑ¡ÖÐÒª¼Ç¼µÄÏ̺߳ÍÈÎÎñµÄIDµÄ»ØÓ¦ */
#define ZCAT_SYSVIEW_RUNLOG_START_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 14) /* ¿ªÊ¼¼Ç¼Çл»¹ì¼£ÇëÇ󣬰üÀ¨ÊÇ·ñ×Ô¶¯Í£Ö¹ÉèÖà */
#define ZCAT_SYSVIEW_RUNLOG_START_ACK (UINT32)(ZCAT_SYSVIEW_BASE + 15) /* ¿ªÊ¼¼Ç¼Çл»¹ì¼£»ØÓ¦³É¹¦Óëʧ°Ü */
#define ZCAT_SYSVIEW_RUNLOG_STOP_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 16) /* Í£Ö¹¼Ç¼Çл»¹ì¼£ ÇëÇó */
#define ZCAT_SYSVIEW_RUNLOG_HALF_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 17) /* Í£Ö¹¼Ç¼Çл»¹ì¼£ ÇëÇó */
#define ZCAT_SYSVIEW_RUNLOG_FULL_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 18) /* Í£Ö¹¼Ç¼Çл»¹ì¼£ ÇëÇó */
#define ZCAT_SYSVIEW_RUNLOG_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 19) /* Éϱ¨Çл»¹ì¼£¼Ç¼ */
#define ZCAT_SYSVIEW_RUNLOG_STOP_ACK (UINT32)(ZCAT_SYSVIEW_BASE + 20) /* Éϱ¨Çл»¹ì¼£¼Ç¼½áÊø*/
#define ZCAT_SYSVIEW_RUNLOG_LINK_KEEP (UINT32)(ZCAT_SYSVIEW_BASE + 21) /* Ïß³ÌÇл»¼Ç¼Á¬½ÓÏûÏ¢*/
#define ZCAT_SYSVIEW_HEAP_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 22) /* ¶ÑʹÓÃÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_HEAP_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 23) /* ¶ÑʹÓÃÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_UB_USE_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 24) /* UBÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_UB_USE_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 25) /* UBÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_UB_LEAK_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 26) /* UBÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_UB_LEAK_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 27) /* UBÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_FS_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 28) /* ÎļþϵͳÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_FS_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 29) /* ÎļþϵͳÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_FW_REQ (UINT32)(ZCAT_SYSVIEW_BASE + 30) /* ÈíÓ²¼þÐÅÏ¢ÇëÇóÏûÏ¢ */
#define ZCAT_SYSVIEW_FW_INFO (UINT32)(ZCAT_SYSVIEW_BASE + 31) /* ÈíÓ²¼þÐÅÏ¢ÇëÇóÓ¦´ðÏûÏ¢ */
#define ZCAT_SYSVIEW_MAX_THREAD_NAME_LEN 16 /* Ïß³ÌÃû×î´ó³¤¶È */
#define ZCAT_SYSVIEW_MAX_TASK_NAME_LEN 16 /* ÈÎÎñÃû×î´ó³¤¶È */
#define ZCAT_SYSVIEW_MAX_NAME_LEN 16 /* Ïß³Ì(ÈÎÎñÃû)×î´ó³¤¶È */
#define ZCAT_SYSVIEW_MAX_UBLEAK_FILE_NAME_LEN 8 /* UBй¶ÐÅÏ¢ÎļþÃû³Æ×î´ó³¤¶È */
#define ZCAT_SYSVIEW_MAX_DRIVER_NAME_LEN 8 /* Çý¶¯Æ÷ÅÌ·û×î´ó³¤¶È */
#define ZCAT_SYSVIEW_MAX_FW_INFO_LEN 32 /* ϵͳÈíÓ²¼þÐÅÏ¢ÄÚÈݳ¤¶È */
#define ZCAT_SYSVIEW_MAX_FLASH_NAME_LEN 32 /* FLASH¶ÎÃû³Æ×î´ó³¤¶È */
#define ZCAT_SYSVIEW_COMMON_SYNCBIT1 (0x07) /* ÏûϢͬ²½Î»1 */
#define ZCAT_SYSVIEW_COMMON_SYNCBIT2 (0x08) /* ÆÕͨÏûϢͬ²½Î»2 */
#define ZCAT_SYSVIEW_PRINT_SYNCBIT2 (0x09) /* WinTraceµÄ´òÓ¡ÏûϢͬ²½Î»2 */
#define ZCAT_SYSVIEW_MA_SYNCBIT2 (0x0A) /* MaTraceµÄ´òÓ¡ÏûϢͬ²½Î»2 */
#define ZCAT_SYSVIEW_DSP_SYNCBIT2 (0x0B) /* DspTraceµÄ´òÓ¡ÏûϢͬ²½Î»2 */
#define ZCAT_SYSVIEW_PRINT_SUBMDL_NUM (255) /* ´òÓ¡×ÓÄ£¿éÊý */
#define ZCAT_SYSVIEW_NAME_MAX_LEN 16
/* ϵͳ¹Û²ìµ¥¸öÈÎÎñÐÅÏ¢ */
typedef struct _tagtraceTaskInfo
{
ZOSS_TASK_ID task_id; /* ÈÎÎñID */
CHAR task_name[ZCAT_SYSVIEW_MAX_TASK_NAME_LEN]; /* ÈÎÎñÃû³Æ */
ZOSS_THREAD_ID thread_id; /* ÈÎÎñËùÔÚÏß³ÌID */
CHAR thread_name[ZCAT_SYSVIEW_MAX_THREAD_NAME_LEN]; /* ÈÎÎñËùÔÚÏß³ÌÃû³Æ */
UINT32 task_time; /* ÈÎÎñÔËÐÐʱ¼ä£¬µ¥Î»ms */
UINT32 task_count; /* ÈÎÎñÔËÐдÎÊý */
UINT32 malloc_size; /* ÈÎÎñmalloc·ÖÅäÄÚ´æ´óС */
UINT32 ub_size; /* ÈÎÎñub·ÖÅäÄÚ´æ´óС */
UINT8 thread_priority; /* ÈÎÎñËùÔÚÏß³ÌÓÅÏȼ¶ */
UINT8 task_status; /* ÈÎÎñÔËÐÐ״̬£¬È¡ÖµÏê¼û1.2½Ú */
UINT8 task_state; /* ÈÎÎñ״̬»ú£¬È¡ÖµÏê¼û1.2½Ú*/
UINT8 cpu_used; /* ÈÎÎñCPUʹÓÃÂÊ */
} T_ZCAT_SYSVIEW_TaskInfo;
/* ϵͳ¹Û²ìµ¥¸öÏß³ÌÐÅÏ¢ */
typedef struct _tagtraceThreadInfo
{
ZOSS_THREAD_ID thread_id; /* Ïß³ÌID */
CHAR thread_name[ZCAT_SYSVIEW_MAX_THREAD_NAME_LEN]; /* Ïß³ÌÃû³Æ */
UINT32 stack_size; /* ¶ÑÕ»´óС */
UINT32 malloc_size; /* malloc·ÖÅäÄÚ´æ´óС */
UINT32 ub_size; /* ub·ÖÅäÄÚ´æ´óС */
UINT32 msg_count; /* ÏûÏ¢ÊýÁ¿ */
UINT32 stack_address; /* Õ»¶¥µØÖ· */
UINT32 thread_time; /* Ïß³ÌÔËÐÐʱ¼ä£¬µ¥Î»ms */
UINT32 thread_count; /* Ïß³ÌÔËÐдÎÊý */
UINT8 thread_priority; /* Ïß³ÌÓÅÏȼ¶(0~31) */
UINT8 cpu_used; /* Ïß³ÌCPUʹÓÃÂÊ */
UINT8 stack_used; /* ¶ÑÕ»×î´óʹÓÃÂÊ */
UINT8 run_status; /* Ïß³ÌÔËÐÐ״̬£¬Ôݲ»Ö§³Ö£¬Ìî0xFF */
} T_ZCAT_SYSVIEW_ThreadInfo;
/* ϵͳ¹Û²ìÐÔÄÜÐÅÏ¢ */
typedef struct _tagtraceSysPerfInfo
{
UINT32 cpu_used; /* CPUʹÓÃÂÊ */
#if 0
UINT32 mem_used; /* ¶ÑÄÚ´æÊ¹ÓÃÊý */
UINT32 mem_total; /* ¶ÑÄÚ´æ×ÜÊý */
#endif
} T_ZCAT_SYSVIEW_SysPerfInfo;
/* CPUÔËÐй켣Ïß³ÌÈÎÎñÇëÇóÓ¦´ðÐÅÏ¢ÖÐÏ̺߳ÍÈÎÎñÐÅÏ¢ÄÚÈÝ */
typedef struct _tagtraceThreadTaskInfo
{
ZOSS_THREAD_ID thread_id; /* Ïß³ÌID */
ZOSS_TASK_ID task_id; /* ÈÎÎñID(Ϊ¿Õ±íʾ¸ÃÏîΪÏß³Ì) */
CHAR name[ZCAT_SYSVIEW_MAX_NAME_LEN]; /* Ïß³ÌÃû³Æ */
} T_ZCAT_SYSVIEW_ThreadTaskInfo;
/* ϵͳ¹Û²ì¶ÑʹÓÃÐÅÏ¢ */
typedef struct _tagtraceSysHeapInfo
{
UINT32 heap_total; /* ¶Ñ×Ü´óС */
UINT32 heap_free; /* ¶Ñ¿ÕÏдóС */
UINT32 heap_zmalloc; /* ʹÓÃZOSS_MALLOC·ÖÅäµÄ¶Ñ´óС */
} T_ZCAT_SYSVIEW_SysHeapInfo;
/* UBй¶ͷ²¿ÔªËØÐÅÏ¢£¬WinTraceÏà¹Ø */
typedef struct _tagtraceLeakUBInfo
{
UINT32 block_size; /* ÄÚ´æ¿é´óС */
UINT32 using_size; /* ʵ¼ÊÕ¼ÓôóС */
char name[ZCAT_SYSVIEW_MAX_UBLEAK_FILE_NAME_LEN]; /* ÉêÇëÎļþÃû³Æ(²»º¬Â·¾¶£¬ÎļþÃûǰ11×Ö½Ú) */
UINT32 line; /* ÉêÇëÎļþÐкŠ*/
ZOSS_THREAD_ID thread_id; /* ÉêÇëÏß³ÌID */
char thread_name[ZCAT_SYSVIEW_MAX_THREAD_NAME_LEN]; /* Ïß³ÌÃû³Æ */
ZOSS_TASK_ID task_id; /* ÉêÇëÈÎÎñID */
char task_name[ZCAT_SYSVIEW_MAX_TASK_NAME_LEN]; /* ÈÎÎñÃû³Æ */
UINT32 apply_time_tick; /* ÉêÇëʱ¼ä */
} T_ZCAT_SYSVIEW_LeakUBInfo;
/* Çý¶¯Æ÷µ¥ÔªÐÅÏ¢ */
typedef struct _tagtraceSysFSInfo
{
CHAR driver_name[ZCAT_SYSVIEW_MAX_DRIVER_NAME_LEN]; /* Çý¶¯Æ÷ÅÌ·û */
UINT64 size_total; /* Çý¶¯Æ÷×ܿռä´óС */
UINT64 size_free; /* Çý¶¯Æ÷ÒÑʹÓÿռä´óС */
} T_ZCAT_SYSVIEW_SysFSInfo;
/* FLASHÐÅÏ¢ */
typedef struct _tagSYS_FLASH_HEADER
{
UINT32 size_total; /* FLASH×Ü´óС */
UINT32 seg_num; /* FLASH°üº¬µÄ¶ÎÊý */
} T_ZCAT_SYSVIEW_FLASH_HEADER;
/* FLASH¶ÎÐÅÏ¢ */
typedef struct _tagSYS_FLASH_SEGMENT
{
UINT32 seg_address; /* ¶ÎµØÖ· */
UINT32 seg_size; /* ¶Î´óС */
CHAR seg_name[ZCAT_SYSVIEW_MAX_FLASH_NAME_LEN]; /* ¶ÎÃû³Æ(ÓÃ;) */
} T_ZCAT_SYSVIEW_FLASH_SEGMENT;
typedef struct tag_traceFlashConfig
{
CHAR name[ZCAT_SYSVIEW_NAME_MAX_LEN];/*»®·ÖÇøÓòÃû³Æ*/
UINT32 base; /*ÆðʼµØÖ·*/
UINT32 size; /*´óС*/
struct tag_traceFlashConfig *next; /*ÏÂÒ»¶ÎÇøÓò*/
} T_ZCAT_SYSVIEW_FlashConfig;
typedef struct _tagSYS_FW_INFO
{
UINT32 freq; /* ʱÖÓÆµÂÊ */
CHAR hw_version[ZCAT_SYSVIEW_MAX_FW_INFO_LEN]; /* Ó²¼þ°æ±¾ */
CHAR sw_version[ZCAT_SYSVIEW_MAX_FW_INFO_LEN]; /* Èí¼þ°æ±¾ */
CHAR build_time[ZCAT_SYSVIEW_MAX_FW_INFO_LEN]; /* Èí¼þ°æ±¾ÖÆ×÷ʱ¼ä */
} T_ZCAT_SYSVIEW_FW_INFO;
typedef struct _tagTraceImageInfo
{
UINT32 ro_base; /*RO(CODE,RO DATA)*/
UINT32 ro_size;
UINT32 rw_base; /*RW DATA*/
UINT32 rw_size;
UINT32 zi_base; /*ZI(BSS)*/
UINT32 zi_size;
} T_ZCAT_SYSVIEW_ImageInfo;
typedef struct _tagtraceSysHardwareInfo
{
UINT32 sys_freq; /* ʱÖÓÆµÂÊ */
CHAR hw_version[ZCAT_SYSVIEW_MAX_NAME_LEN]; /* Ó²¼þ°æ±¾ */
} T_ZCAT_SYSVIEW_SysHardwareInfo;
typedef struct _tagtraceSysSoftwareInfo
{
/* ʱÖÓÆµÂÊ */
CHAR sys_version[ZCAT_SYSVIEW_MAX_NAME_LEN]; /* Èí¼þ°æ±¾ */
CHAR build_date[ZCAT_SYSVIEW_MAX_NAME_LEN]; /* ±àÒëÈÕÆÚ */
CHAR build_time[ZCAT_SYSVIEW_MAX_NAME_LEN]; /* ±àÒëʱ¼ä */
T_ZCAT_SYSVIEW_ImageInfo image_info; /* binÎļþÐÅÏ¢ */
} T_ZCAT_SYSVIEW_SysSoftwareInfo;
/* FLASH¶ÎÐÅÏ¢ */
typedef struct _tagtraceFlashSegment
{
UINT32 seg_address; /* ¶ÎµØÖ· */
UINT32 seg_size; /* ¶Î´óС */
CHAR seg_name[ZCAT_SYSVIEW_MAX_FLASH_NAME_LEN]; /* ¶ÎÃû³Æ(ÓÃ;) */
} T_ZCAT_SYSVIEW_FlashSegment;
typedef struct
{
UINT16 type;
UINT8 operation;
UINT8 result;
} T_ZCAT_DIAG_CONFIG_RSP;
typedef struct
{
UINT32 total_drop_count;
UINT32 sig_drop_count;
UINT32 event_drop_count;
UINT32 print_drop_count;
UINT32 ipppp_drop_count;
UINT32 diag_drop_count;
UINT32 ap_kernel_drop_count;
UINT32 ap_app_drop_count;
UINT32 dbg_gsm_phy_drop_count;
UINT32 dbg_td_phy_drop_count;
UINT32 dbg_lte_phy_drop_count;
UINT32 dbg_wcdma_phy_drop_count;
UINT32 dbg_ps_primary_drop_count;
UINT32 dbg_ps_exception_drop_count;
} T_ZCAT_DIAG_DROP_COUNT;
typedef struct
{
UINT8 PsCpuLinkStatus;
UINT8 PhyCpuLinkStatus;
UINT16 reserved;
} T_ZCAT_DIAG_UE_LINK_RSP;
typedef struct
{
union
{
struct
{
UINT8 PsCpuStatus;
UINT8 PhyCpuStatus;
UINT16 reserved;
} CpuStatus;
UINT32 Status;
} CpStatus;
UINT32 ApStatus;
} T_ZCAT_DIAG_UE_STATUE;
typedef struct
{
T_ZCAT_HEADER zcatHeader;
T_ZCAT_DIAG_HEADER diagHeader;
T_ZCAT_DIAG_UE_LINK_REQ LinkReq;
}T_ZCAT_DIAG_TEST_LINK;
/**************************************************************************
* NVÏûÏ¢½á¹¹Ìå *
**************************************************************************/
//NVÏûϢͷ
typedef struct
{
UINT32 nv_OperateType; //NVÏîµÄID, 0Ϊ¶Á£¬1Ϊд,2Ϊ°æ±¾ºÅ
UINT32 nv_len; //NAÏîµÄ³¤¶È
}T_NVTOOL_HEADER;
typedef struct
{
BYTE nvType; // NVµÄÀàÐÍ, 0ΪÎïÀí²ã£¬ 1ΪЭÒéÕ»
BYTE bitlen; // bitÀàÐÍʱµÄ³¤¶È
BYTE bitstart; // bitÀàÐÍµÄÆðʼλÖÃ
BYTE ret; // »Ø¸´µÄ±ê¼Çλ
DWORD wLen; // ×Ö½Ú³¤¶È
DWORD dwOffset; // Æ«ÒÆµØÖ·
}T_NVTOOL_MSG;
typedef struct
{
UINT32 msgID;
UINT32 optWord;
UINT32 length;
} T_AU_HEADER;
typedef struct
{
unsigned int offset;
unsigned int length;
} T_AU_ONLINE_DATA_ITEM;
typedef struct
{
T_AU_ONLINE_DATA_ITEM itemTx;
T_AU_ONLINE_DATA_ITEM itemRx;
} T_AU_ONLINE_DATA_TABLE;
/************************************************************************/
/* ½Ó¿ÚÔ­ÐÍ */
/************************************************************************/
// ´óС¶ÔÆë
#ifdef __cplusplus
}
#endif
#endif // ZCAT_DIAG_H