33 lines
834 B
C
33 lines
834 B
C
#ifndef XDEBUG /* prevent circular inclusions */
|
|
#define XDEBUG /* by using protection macros */
|
|
|
|
#if defined(DEBUG) && !defined(NDEBUG)
|
|
|
|
#ifndef XDEBUG_WARNING
|
|
#define XDEBUG_WARNING
|
|
#warning DEBUG is enabled
|
|
#endif
|
|
|
|
int printf(const char *format, ...);
|
|
|
|
#define XDBG_DEBUG_ERROR 0x00000001U /* error condition messages */
|
|
#define XDBG_DEBUG_GENERAL 0x00000002U /* general debug messages */
|
|
#define XDBG_DEBUG_ALL 0xFFFFFFFFU /* all debugging data */
|
|
|
|
#define xdbg_current_types (XDBG_DEBUG_GENERAL)
|
|
|
|
#define xdbg_stmnt(x) x
|
|
|
|
#define xdbg_printf(type, ...) \
|
|
(((type)&xdbg_current_types) ? printf(__VA_ARGS__) : 0)
|
|
|
|
#else /* defined(DEBUG) && !defined(NDEBUG) */
|
|
|
|
#define xdbg_stmnt(x)
|
|
|
|
#define xdbg_printf(...)
|
|
|
|
#endif /* defined(DEBUG) && !defined(NDEBUG) */
|
|
|
|
#endif /* XDEBUG */
|