diff options
-rw-r--r-- | btreplay/btrecord.c | 23 | ||||
-rw-r--r-- | btreplay/btreplay.c | 23 |
2 files changed, 32 insertions, 14 deletions
diff --git a/btreplay/btrecord.c b/btreplay/btrecord.c index e02c153..09329f7 100644 --- a/btreplay/btrecord.c +++ b/btreplay/btrecord.c @@ -30,6 +30,7 @@ static char build_date[] = __DATE__ " at "__TIME__; #include <sys/stat.h> #include <sys/types.h> #include <dirent.h> +#include <stdarg.h> #if !defined(_GNU_SOURCE) # define _GNU_SOURCE @@ -181,13 +182,21 @@ static struct option l_opts[] = { #define ERR_ARGS 1 #define ERR_SYSCALL 2 -#define fatal(errstring, exitval, arg...) \ - do { \ - if (errstring) perror(errstring); \ - fprintf(stderr, ##arg); \ - exit(exitval); \ - /*NOTREACHED*/ \ - } while (0) +static inline void fatal(const char *errstring, const int exitval, + const char *fmt, ...) +{ + va_list ap; + + if (errstring) + perror(errstring); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + exit(exitval); + /*NOTREACHED*/ +} /** * match - Return true if this trace is a proper QUEUE transaction diff --git a/btreplay/btreplay.c b/btreplay/btreplay.c index 48181a4..89881cb 100644 --- a/btreplay/btreplay.c +++ b/btreplay/btreplay.c @@ -37,6 +37,7 @@ static char build_date[] = __DATE__ " at "__TIME__; #include <sys/time.h> #include <sys/types.h> #include <dirent.h> +#include <stdarg.h> #if !defined(_GNU_SOURCE) # define _GNU_SOURCE @@ -207,13 +208,21 @@ static char usage_str[]; */ #define ERR_ARGS 1 #define ERR_SYSCALL 2 -#define fatal(errstring, exitval, arg...) \ - do { \ - if (errstring) perror(errstring); \ - fprintf(stderr, ##arg); \ - exit(exitval); \ - /*NOTREACHED*/ \ - } while (0) +static inline void fatal(const char *errstring, const int exitval, + const char *fmt, ...) +{ + va_list ap; + + if (errstring) + perror(errstring); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + + exit(exitval); + /*NOTREACHED*/ +} static inline long long unsigned du64_to_sec(__u64 du64) { |