From a92d27afb0733f6280088bd79b048cbd87a2a0c4 Mon Sep 17 00:00:00 2001 From: ntfreak Date: Mon, 18 Feb 2008 14:32:43 +0000 Subject: - Added a "User:" debug level. These are messages that are intended for the user and are part of normal operation. - Faster DEBUG/INFO() when they are disabled - target_read/write_buffer() now uses 16 and 32 bit access for single word aligned requests. Other requests are serviced as quickly as possible. - *much* faster read/write GDB packets, removing timeout problems. - GDB read/write packets w/single word aligned 32/16 bit access now use 32/16 bit word access. - working area can now be changed on the fly. Provides a way to move working area about as MMU is enabled/disabled. - cleaned up error messages for verify_image. Thanks Øyvind Harboe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://svn.berlios.de/openocd/trunk@302 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/helper/log.c | 7 ++++--- src/helper/log.h | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 5 deletions(-) (limited to 'src/helper') diff --git a/src/helper/log.c b/src/helper/log.c index 4cdcfc87..fe475130 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -43,12 +43,13 @@ void log_setCallback(logCallback c, void *p) privData = p; } -static char *log_strings[4] = +static char *log_strings[5] = { + "User: ", "Error: ", "Warning:", "Info: ", - "Debug: ", + "Debug: " }; void log_printf(enum log_levels level, const char *file, int line, const char *function, const char *format, ...) @@ -68,7 +69,7 @@ void log_printf(enum log_levels level, const char *file, int line, const char *f if (f != NULL) file = f + 1; - fprintf(log_output, "%s %d %ld %s:%d %s(): %s\n", log_strings[level], count, time(NULL), file, line, function, buffer); + fprintf(log_output, "%s %d %ld %s:%d %s(): %s\n", log_strings[level+1], count, time(NULL), file, line, function, buffer); fflush(log_output); va_end(args); diff --git a/src/helper/log.h b/src/helper/log.h index 09bc3a17..ab32760a 100644 --- a/src/helper/log.h +++ b/src/helper/log.h @@ -26,6 +26,9 @@ #include /* logging priorities + * LOG_USER - user messages. Could be anything from information + * to progress messags. These messages do not represent + * incorrect or unexpected behaviour, just normal execution. * LOG_ERROR - fatal errors, that are likely to cause program abort * LOG_WARNING - non-fatal errors, that may be resolved later * LOG_INFO - state information, etc. @@ -33,6 +36,7 @@ */ enum log_levels { + LOG_USER = -1, LOG_ERROR = 0, LOG_WARNING = 1, LOG_INFO = 2, @@ -53,13 +57,16 @@ extern void log_setCallback(logCallback callback, void *priv); extern int debug_level; +/* Avoid fn call and building parameter list if we're not outputting the information. + * Matters on feeble CPUs for DEBUG/INFO statements that are involved frequently */ + #define DEBUG(expr ...) \ - do { \ + do { if (debug_level >= LOG_DEBUG) \ log_printf (LOG_DEBUG, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) #define INFO(expr ...) \ - do { \ + do { if (debug_level >= LOG_INFO) \ log_printf (LOG_INFO, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) @@ -73,6 +80,12 @@ extern int debug_level; log_printf (LOG_ERROR, __FILE__, __LINE__, __FUNCTION__, expr); \ } while(0) +#define USER(expr ...) \ + do { \ + log_printf (LOG_USER, __FILE__, __LINE__, __FUNCTION__, expr); \ + } while(0) + + /* general failures * error codes < 100 */ -- cgit v1.2.3