Skip to content
Snippets Groups Projects
debug.h 674 B
#ifndef DEBUG_H
#define DEBUG_H

#define ERR_LEVEL   (3)
#define WARN_LEVEL  (4)
#define INFO_LEVEL  (6)
#define DBG_LEVEL   (7)

#ifdef __cplusplus
extern "C" {
#endif

__attribute__((visibility("default"))) void log_stderr(int level, const char *fmt, ...);

#define err(...)	log_stderr(ERR_LEVEL, __VA_ARGS__)
#define warn(...)	log_stderr(WARN_LEVEL, __VA_ARGS__)
#define inf(...)	log_stderr(INFO_LEVEL, __VA_ARGS__)
#define dbg(...)	log_stderr(DBG_LEVEL, __VA_ARGS__)

#define WARN_ON(cond) \
({ \
	typeof(cond) __c = (cond); \
	if (__c) warn("%sL%d@%s: [%s] failed\n", __FILE__, __LINE__, __func__, #cond); \
	__c; \
})

#ifdef __cplusplus
}
#endif
#endif /* DEBUG_H */