123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- /******************************************************************************
- Copyright (C), 2016, Hisilicon Tech. Co., Ltd.
- ******************************************************************************
- File Name : hi_debug.h
- Version : Initial Draft
- Author : Hisilicon multimedia software group
- Created : 2016/07/15
- Last Modified :
- Description : all struct and maro definition for debug
- Function List :
- ******************************************************************************/
- #ifndef __HI_DEBUG_H__
- #define __HI_DEBUG_H__
- #ifndef __KERNEL__
- #include <stdio.h>
- #include <stdarg.h>
- #endif
- #include "hi_type.h"
- #include "hi_common.h"
- #ifdef __cplusplus
- #if __cplusplus
- extern "C"{
- #endif
- #endif /* __cplusplus */
- #define _EX__FILE_LINE(fxx,lxx) "[File]:"fxx"\n[Line]:"#lxx"\n[Info]:"
- #define EX__FILE_LINE(fxx,lxx) _EX__FILE_LINE(fxx,lxx)
- #define __FILE_LINE__ EX__FILE_LINE(__FILE__, __LINE__)
- #define HI_DBG_EMERG 0 /* system is unusable */
- #define HI_DBG_ALERT 1 /* action must be taken immediately */
- #define HI_DBG_CRIT 2 /* critical conditions */
- #define HI_DBG_ERR 3 /* error conditions */
- #define HI_DBG_WARN 4 /* warning conditions */
- #define HI_DBG_NOTICE 5 /* normal but significant condition */
- #define HI_DBG_INFO 6 /* informational */
- #define HI_DBG_DEBUG 7 /* debug-level messages */
- typedef struct hiLOG_LEVEL_CONF_S
- {
- MOD_ID_E enModId;
- HI_S32 s32Level;
- HI_CHAR cModName[16];
- } LOG_LEVEL_CONF_S;
- #ifndef __KERNEL__
- /******************************************************************************
- ** For User Mode : HI_PRINT, HI_ASSERT, HI_TRACE
- ******************************************************************************/
- #define HI_PRINT printf
- /* #ifdef HI_DEBUG */
- #if 1
- /* Using samples: HI_ASSERT(x>y); */
- #define HI_ASSERT(expr) \
- do{ \
- if (!(expr)) { \
- printf("\nASSERT failed at:\n"\
- " >File name: %s\n" \
- " >Function : %s\n" \
- " >Line No. : %d\n" \
- " >Condition: %s\n", \
- __FILE__,__FUNCTION__, __LINE__, #expr);\
- _exit(-1);\
- } \
- }while(0)
- /* Using samples:
- ** HI_TRACE(HI_DBG_DEBUG, HI_ID_CMPI, "Test %d, %s\n", 12, "Test");
- **/
- #define HI_TRACE(level, enModId, fmt...) fprintf(stderr,##fmt)
- #else
- #define HI_ASSERT(expr)
- #define HI_TRACE(level, enModId, fmt...)
- #endif
- #else
- /******************************************************************************
- ** For Linux Kernel : HI_PRINT, HI_ASSERT, HI_TRACE
- ******************************************************************************/
- //#include "hi_osal.h"
- #define HI_PRINT osal_printk
- extern HI_S32 HI_ChkLogLevel(HI_S32 s32Levle, MOD_ID_E enModId);
- int HI_LOG(HI_S32 level, MOD_ID_E enModId,const char *fmt, ...);
- /* #ifdef HI_DEBUG */
- #if 1
- /* Using samples: HI_ASSERT(x>y); */
- #define HI_ASSERT(expr) \
- do{ \
- if (!(expr)) { \
- osal_panic("\nASSERT failed at:\n" \
- " >File name: %s\n" \
- " >Function : %s\n" \
- " >Line No. : %d\n" \
- " >Condition: %s\n", \
- __FILE__,__FUNCTION__, __LINE__, #expr);\
- } \
- }while(0)
- /* Using samples:
- ** HI_TRACE(HI_DBG_DEBUG, HI_ID_CMPI, "Test %d, %s\n", 12, "Test");
- **/
- #define HI_TRACE HI_LOG
- #else
- #define HI_ASSERT(expr)
- #define HI_TRACE(level, enModId, fmt...)
- #endif
- #endif /* end of __KERNEL__ */
- #define HI_PRINT_BLOCK(pu8Datablock, u32Length) \
- { \
- HI_U32 u32ii = 0; \
- HI_U8* pu8VirAddr = (HI_U8*)(pu8Datablock); \
- if(HI_NULL != pu8VirAddr)\
- {\
- HI_PRINT("\n[Func]:%s [Line]:%d [Info]:%s\n", __FUNCTION__, __LINE__, #pu8Datablock); \
- for (u32ii = 0; u32ii < (u32Length);) \
- { \
- HI_PRINT(" %02X", *pu8VirAddr);\
- pu8VirAddr++;\
- u32ii++;\
- if(0 == (u32ii % 16))HI_PRINT("\n");\
- } \
- HI_PRINT("\n\n");\
- }\
- else\
- {\
- HI_PRINT("\n[Func]:%s [Line]:%d [Info]:pointer(%s) is null!\n", __FUNCTION__, __LINE__, #pu8Datablock); \
- }\
- }
- #ifdef __cplusplus
- #if __cplusplus
- }
- #endif
- #endif /* __cplusplus */
- #endif /* __HI_DEBUG_H__ */
|