X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fhelper%2Flog.h;h=09bc3a17b218d0a11d5c418f2a5454b70439b7a3;hp=c495524cb8abb6e3787b1df633cc66aeecc94f41;hb=cf9646bda691ce39bd113383dc24c878de8d9c39;hpb=8b4e882a1630d63bbc9840fa3f968e36b6ac3702 diff --git a/src/helper/log.h b/src/helper/log.h index c495524cb8..09bc3a17b2 100644 --- a/src/helper/log.h +++ b/src/helper/log.h @@ -20,6 +20,7 @@ #ifndef ERROR_H #define ERROR_H +#include "replacements.h" #include "command.h" #include @@ -39,9 +40,16 @@ enum log_levels }; extern void log_printf(enum log_levels level, const char *file, int line, - const char *function, const char *format, ...); + const char *function, const char *format, ...) + __attribute__ ((format (printf, 5, 6))); extern int log_register_commands(struct command_context_s *cmd_ctx); extern int log_init(struct command_context_s *cmd_ctx); +extern int set_log_output(struct command_context_s *cmd_ctx, FILE *output); + +typedef void (*logCallback)(void *priv, const char *file, int line, + const char *function, const char *format, va_list args); + +extern void log_setCallback(logCallback callback, void *priv); extern int debug_level; @@ -65,26 +73,6 @@ extern int debug_level; log_printf (LOG_ERROR, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) -#define SDEBUG(expr ...) \ - do { \ - short_log_printf (LOG_DEBUG, expr); \ - } while(0) - -#define SINFO(expr ...) \ - do { \ - short_log_printf (LOG_INFO, expr); \ - } while(0) - -#define SWARNING(expr ...) \ - do { \ - short_log_printf (LOG_WARNING, expr); \ - } while(0) - -#define SERROR(expr ...) \ - do { \ - short_log_printf (LOG_ERROR, expr); \ - } while(0) - /* general failures * error codes < 100 */ @@ -93,4 +81,6 @@ extern int debug_level; #define ERROR_NO_CONFIG_FILE (-2) #define ERROR_BUF_TOO_SMALL (-3) -#endif /* ERROR_H */ +char *allocPrintf(const char *fmt, va_list ap); + +#endif /* LOG_H */