X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fhelper%2Flog.h;h=422e2b5c0f406fb2019f8de03e7ab9ffc898b65f;hp=c495524cb8abb6e3787b1df633cc66aeecc94f41;hb=a2595950c7733835ddcf0f306385fd134cdb610b;hpb=8b4e882a1630d63bbc9840fa3f968e36b6ac3702 diff --git a/src/helper/log.h b/src/helper/log.h index c495524cb8..422e2b5c0f 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 *privData, const char *file, int line, + const char *function, const char *format, va_list args); + +void log_setCallback(logCallback callback, void *privData); 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 */