summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--btreplay/btrecord.c23
-rw-r--r--btreplay/btreplay.c23
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)
{