Skip to content
Snippets Groups Projects
debug.h 674 B
Newer Older
  • Learn to ignore specific revisions
  • #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; \
    })
    
    
    #endif /* DEBUG_H */