1 #ifndef _LOG_H
2 #define _LOG_H
3 
4 #define LOG_D(...) log_cb(LOG_DEBUG, __VA_ARGS__)
5 #define LOG_I(...) log_cb(LOG_INFO, __VA_ARGS__)
6 #define LOG_W(...) log_cb(LOG_WARNING, __VA_ARGS__)
7 #define LOG_E(...) log_cb(LOG_ERROR, __VA_ARGS__)
8 
9 enum log_level {
10 	LOG_DEBUG,
11 	LOG_INFO,
12 	LOG_WARNING,
13 	LOG_ERROR,
14 	NUM_LOG_LEVELS
15 };
16 
17 typedef void (*log_print_t)(enum log_level lvl, const char *fmt, ...);
18 
19 extern log_print_t log_cb;
20 
21 #endif
22 
23