239 lines
6.2 KiB
C
Executable File
239 lines
6.2 KiB
C
Executable File
/*
|
|
* Copyright (c) XMEDIA. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __XMEDIA_DBG_H__
|
|
#define __XMEDIA_DBG_H__
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#include <stdio.h>
|
|
|
|
#if defined(DEBUG)
|
|
#include <assert.h>
|
|
#endif
|
|
|
|
#ifdef LOGQUEUE
|
|
#include "bsp_message.h"
|
|
USE_GLOBALVAR LOG_QUEUE gLogQueue;
|
|
#endif
|
|
|
|
#if defined(DEBUG)
|
|
#define DBG_ASSERT(expression) assert(expression)
|
|
#define DBG_ASSERT_STR(expression, str) \
|
|
do \
|
|
{ \
|
|
if (!(expression)) \
|
|
{ \
|
|
WRITE_LOG_DEBUG(str); \
|
|
assert(expression); \
|
|
} \
|
|
}while(0);
|
|
|
|
|
|
#define DBG_LOG WRITE_LOG_DEBUG
|
|
#define DBG_LOG1 WRITE_LOG_DEBUG1
|
|
#define DBG_LOG2 WRITE_LOG_DEBUG2
|
|
|
|
#else
|
|
#define DBG_ASSERT(expression) ((void)0)
|
|
#define DBG_ASSERT_STR(expression, str)
|
|
|
|
#define DBG_LOG(args...)
|
|
#define DBG_LOG1 WRITE_LOG_DEBUG1
|
|
#define DBG_LOG2 WRITE_LOG_DEBUG2
|
|
|
|
#endif
|
|
#define LOG_LEVEL_NORMAL 0
|
|
#define LOG_LEVEL_FATAL 1
|
|
#define LOG_LEVEL_ERROR 2
|
|
#define LOG_LEVEL_WARN 3
|
|
#define LOG_LEVEL_INFO 4
|
|
|
|
#define LOG_LEVEL_DEBUG 5
|
|
#define LOG_LEVEL_DEBUG1 6
|
|
#define LOG_LEVEL_DEBUG2 7
|
|
|
|
#define LOG_LEVEL_ALL 10
|
|
#define LOG_LEVEL_NONE 0
|
|
|
|
#define LOG_LEVEL_DEFAULT LOG_LEVEL_INFO
|
|
#define LOG_LEVEL_MINI LOG_LEVEL_ERROR
|
|
#define LOG_LEVEL_MAX LOG_LEVEL_ALL
|
|
|
|
/* LOG */
|
|
/*
|
|
*WRITE_LOG_FATAL("Memory is too much , total: %u M, it's waste, please save people's money , 1024");
|
|
*WRITE_LOG ( LOG_LEVEL_WARN, "after VIU device analyse: you are a handsome pig." );
|
|
*/
|
|
|
|
/*gLogQueue is a Global Var, now defined at bsp_message.c and
|
|
declare at bsp_dbg.h, it you use this log functions outside,
|
|
you can declare your owner "gLogQueue"*/
|
|
/*Call this first , and only call it once*/
|
|
|
|
/*level = LOG_LEVEL_ERROR .....*/
|
|
|
|
#ifdef LOGQUEUE
|
|
#define LOG_CREATE(level, msglen) Log_Create(&gLogQueue, level, msglen)
|
|
|
|
#define LOG_SETLEVEL(level) (gLogQueue.ucMinLevel = level)
|
|
|
|
#define LOG_GETLEVEL() (gLogQueue.ucMinLevel)
|
|
|
|
#define LOG_DESTROY() Log_Destroy(&gLogQueue)
|
|
|
|
#if 0
|
|
#define WRITE_LOG_NORMAL(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_NORMAL, psz_format, ##args )
|
|
|
|
#define WRITE_LOG_INFO(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_INFO, psz_format, ##args )
|
|
|
|
#define WRITE_LOG_FATAL(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_FATAL, psz_format, ##args )
|
|
|
|
#define WRITE_LOG_ERROR(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_ERROR, psz_format, ##args )
|
|
|
|
#define WRITE_LOG_WARN(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_WARN, psz_format, ##args )
|
|
|
|
#define WRITE_LOG_DEBUG(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG, "{%s:%i}:"psz_format, \
|
|
__FILE__, __LINE__ ,##args)
|
|
|
|
#define WRITE_LOG_DEBUG1(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG1, "{%s:%i}:"psz_format, \
|
|
__FILE__, __LINE__ ,##args)
|
|
|
|
#define WRITE_LOG_DEBUG2(psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG2, "{%s:%i}:"psz_format, \
|
|
__FILE__, __LINE__ ,##args)
|
|
|
|
#define WRITE_LOG(iLevel, psz_format, args... ) \
|
|
Log_Msg(&gLogQueue, iLevel, psz_format, ##args )
|
|
#endif /* End of #if 0 */
|
|
|
|
#define MKSTR(exp) # exp
|
|
#define MKMARCOTOSTR(exp) MKSTR(exp)
|
|
#define LINENUMBER MKMARCOTOSTR(__LINE__)
|
|
|
|
#define ATTACHINFO ""
|
|
|
|
#define WRITE_LOG_NORMAL(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_NORMAL, args )
|
|
|
|
#define WRITE_LOG_INFO(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_INFO, args)
|
|
|
|
#define WRITE_LOG_FATAL(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_FATAL, args )
|
|
|
|
#define WRITE_LOG_ERROR(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_ERROR, args )
|
|
|
|
#define WRITE_LOG_WARN(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_WARN, args )
|
|
|
|
#define WRITE_LOG_DEBUG(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG, ATTACHINFO args)
|
|
|
|
#define WRITE_LOG_DEBUG1(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG1, ATTACHINFO args)
|
|
|
|
#define WRITE_LOG_DEBUG2(args... ) \
|
|
Log_Msg(&gLogQueue, LOG_LEVEL_DEBUG2, ATTACHINFO args)
|
|
|
|
#define WRITE_LOG(iLevel, args... ) \
|
|
Log_Msg(&gLogQueue, iLevel, args )
|
|
|
|
#else
|
|
|
|
#define LOG_CREATE(level, msglen)
|
|
|
|
#define LOG_SETLEVEL(level)
|
|
|
|
#define LOG_GETLEVEL() (0)
|
|
|
|
#define LOG_DESTROY()
|
|
|
|
#define WRITE_LOG_NORMAL(args...)
|
|
|
|
#define WRITE_LOG_INFO(args...)
|
|
|
|
#define WRITE_LOG_FATAL(args...)
|
|
|
|
#define WRITE_LOG_ERROR(args...)
|
|
|
|
#define WRITE_LOG_WARN(args...)
|
|
|
|
#define WRITE_LOG_DEBUG(args...)
|
|
|
|
#define WRITE_LOG_DEBUG1(args...)
|
|
|
|
#define WRITE_LOG_DEBUG2(args...)
|
|
|
|
#define WRITE_LOG(args...)
|
|
|
|
#endif
|
|
|
|
#if defined(OS_LINUX) && defined(USE_BTRACE) && defined(DEBUG)
|
|
#if !defined(BTRACE_ENABLE)
|
|
#define BTRACE_ENABLE
|
|
#endif
|
|
#else
|
|
#if defined(BTRACE_ENABLE)
|
|
#undef BTRACE_ENABLE
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(BTRACE_ENABLE)
|
|
#define BTRACE_INIT() btrace()
|
|
#define BTRACE_PRINT btrace_print
|
|
#define BTRACE_PRINT_FUNC() btrace_print_str(__func__)
|
|
#define BTRACE_PRINT_STR(str) btrace_print_str(str)
|
|
|
|
#else
|
|
#define BTRACE_INIT()
|
|
#define BTRACE_PRINT
|
|
#define BTRACE_PRINT_FUNC()
|
|
#define BTRACE_PRINT_STR(str)
|
|
#endif
|
|
|
|
EXTERNFUNC XMEDIA_RET bsp_md(IN VOID* pStart,IN U32 ulLen,IN FD fd);
|
|
/*Memory Dump 2 file*/
|
|
EXTERNFUNC XMEDIA_RET bsp_md2file(IN VOID* pStart,IN U32 ulLen,
|
|
IN const char* strLabel,
|
|
IN char* fn);
|
|
|
|
EXTERNFUNC void bsp_hexdump(OUT FILE *stream,
|
|
IN const void *src, IN size_t len,
|
|
IN size_t width);
|
|
|
|
EXTERNFUNC VOID bsp_hexdump_log(IN const void *src, IN size_t len,
|
|
IN size_t width);
|
|
|
|
VOID bsp_hexdump2(OUT FILE *stream,
|
|
IN const void *src, IN size_t len, IN size_t width);
|
|
|
|
#if defined(DEBUG)
|
|
#define MEM_DUMP bsp_md
|
|
#define MEM_DUMP2FILE bsp_md2file
|
|
#else
|
|
#define MEM_DUMP
|
|
#define MEM_DUMP2FILE
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __XMEDIA_DBG_H__ */
|