diff options
author | ntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-02-18 14:32:43 +0000 |
---|---|---|
committer | ntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-02-18 14:32:43 +0000 |
commit | a92d27afb0733f6280088bd79b048cbd87a2a0c4 (patch) | |
tree | dde6a6285965d2d4f68de044c04d64c121496542 /src/helper | |
parent | cf9646bda691ce39bd113383dc24c878de8d9c39 (diff) | |
download | openocd+libswd-a92d27afb0733f6280088bd79b048cbd87a2a0c4.tar.gz openocd+libswd-a92d27afb0733f6280088bd79b048cbd87a2a0c4.tar.bz2 openocd+libswd-a92d27afb0733f6280088bd79b048cbd87a2a0c4.tar.xz openocd+libswd-a92d27afb0733f6280088bd79b048cbd87a2a0c4.zip |
- 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
git-svn-id: svn://svn.berlios.de/openocd/trunk@302 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/helper')
-rw-r--r-- | src/helper/log.c | 7 | ||||
-rw-r--r-- | src/helper/log.h | 17 |
2 files changed, 19 insertions, 5 deletions
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 <stdarg.h> /* 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 */ |