/* * Copyright (C) 2014 NXP Semiconductors, All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * */ #ifndef _DBGPRINT_H #define _DBGPRINT_H /* Debugging macro's. */ #ifndef DEBUG #define DEBUG #endif #ifndef ASSERT //#define ASSERT #endif // TODO wwwim #ifndef _ASSERT #define _ASSERT(e) #endif #ifndef PREFIX #define PREFIX "tfa98xx: " #define DRIVER_NAME "tfa98xx" #endif #ifdef __KERNEL__ #ifdef DEBUG #define _DEBUG(level, fmt, va...) \ do { \ if (unlikely(debug >= (level))) \ pr_info(PREFIX "%s:%d: " fmt, __func__, __LINE__, \ ##va); \ } while (0) #else #define _DEBUG(level, fmt, va...) \ do { \ } while (0) #endif #define MSG(fmt, va...) pr_info(PREFIX "%s:%d: " fmt, __func__, __LINE__, ##va) #define _ERRORMSG(fmt, va...) \ pr_err(PREFIX "ERROR %s:%d: " fmt, __func__, __LINE__, ##va) #define DEBUG0(x...) MSG(x) #define DEBUG1(x...) _DEBUG(1, x) #define DEBUG2(x...) _DEBUG(2, x) #define DEBUG3(x...) _DEBUG(3, x) #define ERRORMSG(x...) _ERRORMSG(x) #define PRINT(x...) printk(x) #define PRINT_ERROR(x...) pr_info(PREFIX " **ERROR** " x) #define PRINT_ASSERT(e) \ do { \ if ((e)) \ pr_err("PrintAssert:%s (%s:%d) error code:%d\n", \ __func__, __FILE__, __LINE__, e); \ } while (0) #define PRINT_ENTRY DEBUG2("+[%s]\n", __func__) #define PRINT_EXIT DEBUG2("-[%s]\n", __func__) #ifdef ASSERT #define assert(cond, action) \ do { \ if (unlikely(!(cond))) { \ DEBUG0("Assert: %s\n", #cond); \ action; \ } \ } while (0) #else #define assert(cond, action) \ do { \ } while (0) #endif #else /* __KERNEL__ */ #if defined(WIN32) || defined(_X64) #include /* user mode */ #ifdef DEBUG #define _DEBUGMSG(level, fmt, ...) \ printf(PREFIX "%s:%d: " fmt, __func__, __LINE__, __VA_ARGS__) #else #define _DEBUGMSG(level, fmt, ...) \ do { \ } while (0) #endif #define _ERRORMSG(fmt, ...) \ printf(PREFIX "%s:%s:%d: " fmt, __FILE__, __func__, __LINE__, \ __VA_ARGS__) #define DEBUG0(...) MSG(__VA_ARGS__) #define DEBUG1(...) _DEBUGMSG(1, __VA_ARGS__) #define DEBUG2(...) _DEBUGMSG(2, __VA_ARGS__) #define DEBUG3(...) _DEBUGMSG(3, __VA_ARGS__) #define ERRORMSG(fmt, ...) _ERRORMSG(fmt, __VA_ARGS__) #define PRINT(...) printf(__VA_ARGS__) /* *#define PRINT(...) \ * do { \ * FILE *stream; \ * if ((stream = freopen("nxp_tfa.txt", "ab+", stdout)) == NULL) \ * exit(-1); \ * printf(__VA_ARGS__); \ * freopen("CON", "ab+", stdout); \ * } while (0) */ #define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__) #define PRINT_FILE(file, ...) fprintf(file, __VA_ARGS__) #define PRINT_ASSERT(e) \ do { \ if ((e)) \ fprintf(stderr, \ "PrintAssert:%s (%s:%d) error code:%d\n", \ __func__, __FILE__, __LINE__, e); \ } while (0) //# define PRINT_ASSERT(e) if ((e)) fprintf(stderr, "PrintAssert:%s (%s:%d) //%s\n",__FUNCTION__,__FILE__,__LINE__, Tfa98xx_GetErrorString(e)) #elif defined(__CODE_RED) #include "app_global.h" #ifdef DEBUG #define _DEBUG(level, fmt, va...) TB_TRACE_INF(TbTracePfx2("tfa", TB_FUNC, va)) // printf(PREFIX "%s:%d: "fmt,__func__,__LINE__,##va); #else #define _DEBUG(level, fmt, va...) \ do { \ } while (0) #endif #define MSG(fmt, ...) TB_TRACE_INF(TbTracePfx2("tfa", TB_FUNC, __VA_ARGS__)) // printf(PREFIX "%s:%s:%d: "fmt,__FILE__,__func__,__LINE__,##va) // TB_TRACE_INF(TbTracePfx2(APP_PFX,TB_FUNC,"path=%s, chan=%u, muted=%s, // vol=%d\n", // path->isRecording ? "recording" // : "playback", i, // channelVol.currentMuteValue ? // "YES" : "NO", // channelVol.currentVolumeValue // )); //# define _ERRORMSG(fmt,va...) TB_TRACE_INF(TbTracePfx2("tfa",TB_FUNC,va)) #define ERRORMSG(...) TB_TRACE_INF(TbTracePfx2("tfa", TB_FUNC, __VA_ARGS__)) // fprintf(stderr, PREFIX "ERROR %s:%s:%d: "fmt,__FILE__,__func__,__LINE__, // ##va) #define DEBUG0(x...) MSG(x) #define DEBUG1(x...) _DEBUG(1, x) #define DEBUG2(x...) _DEBUG(2, x) #define DEBUG3(x...) _DEBUG(3, x) //# define ERRORMSG(x...) _ERRORMSG(x) #define PRINT(x...) TB_TRACE_INF(TbTracePfx2("tfa", TB_FUNC, x)) // printf(x) #define PRINT_ERROR(x...) TB_TRACE_INF(TbTracePfx2("tfa", TB_FUNC, x)) // fprintf(stderr,__VA_ARGS__) #define PRINT_FILE(file, x...) TB_TRACE_INF(TbTracePfx2("tfa", TB_FUNC, x)) // fprintf(file,__VA_ARGS__) #define PRINT_ASSERT(e) // TB_TRACE_INF(TbTracePfx2("tfa",TB_FUNC,Tfa98xx_GetErrorString(e))) // if ((e)) fprintf(stderr, "PrintAssert:%s (%s:%d) // %s\n",__FUNCTION__,__FILE__,__LINE__, Tfa98xx_GetErrorString(e)) #else #include /* user mode */ #ifdef DEBUG #define _DEBUG(level, fmt, va...) \ printf(PREFIX "%s:%d: " fmt, __func__, __LINE__, ##va) #else #define _DEBUG(level, fmt, va...) \ do { \ } while (0) #endif #define MSG(fmt, va...) \ printf(PREFIX "%s:%s:%d: " fmt, __FILE__, __func__, __LINE__, ##va) #define _ERRORMSG(fmt, va...) \ fprintf(stderr, PREFIX "ERROR %s:%s:%d: " fmt, __FILE__, __func__, \ __LINE__, ##va) #define DEBUG0(x...) MSG(x) #define DEBUG1(x...) _DEBUG(1, x) #define DEBUG2(x...) _DEBUG(2, x) #define DEBUG3(x...) _DEBUG(3, x) #define ERRORMSG(x...) _ERRORMSG(x) #define PRINT(x...) printf(x) #define PRINT_ERROR(...) fprintf(stderr, __VA_ARGS__) #define PRINT_FILE(file, ...) fprintf(file, __VA_ARGS__) #define PRINT_ASSERT(e) \ do { \ if ((e)) \ fprintf(stderr, \ "PrintAssert:%s (%s:%d) error code:%d\n", \ __func__, __FILE__, __LINE__, e); \ } while (0) //# define PRINT_ASSERT(e) if ((e)) fprintf(stderr, "PrintAssert:%s (%s:%d) //%s\n",__func__,__FILE__,__LINE__, Tfa98xx_GetErrorString(e)) #endif /* WIN32 */ #endif /* user */ #endif /* _DBGPRINT_H --------------- */