summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-09-01 22:44:38 -0400
committerSteven Rostedt <rostedt@goodmis.org>2011-09-01 22:44:38 -0400
commite19cbadffcb99236f3e98f9ec6a838804f143108 (patch)
treebd2c04ef03172774ef16c61ee1d59b288b067eff
parentda4956cbcaf7945554f30e4d3a9be09b1431b19a (diff)
downloadcyclictest-e19cbadffcb99236f3e98f9ec6a838804f143108.tar.gz
allow tracemark() to take variable args
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--src/cyclictest/cyclictest.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index db5c228..c5cc807 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -13,6 +13,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
+#include <stdarg.h>
#include <unistd.h>
#include <fcntl.h>
#include <getopt.h>
@@ -336,13 +337,23 @@ static int trace_file_exists(char *name)
return stat(path, &sbuf) ? 0 : 1;
}
-static void tracemark(char *comment)
+#define TRACEBUFSIZ 1024
+static __thread char tracebuf[TRACEBUFSIZ];
+
+static void tracemark(char *fmt, ...)
{
+ va_list ap;
+ int len;
+
/* bail out if we're not tracing */
/* or if the kernel doesn't support trace_mark */
if (tracemark_fd < 0)
return;
- write(tracemark_fd, comment, strlen(comment));
+
+ va_start(ap, fmt);
+ len = vsnprintf(tracebuf, TRACEBUFSIZ, fmt, ap);
+ va_end(ap);
+ write(tracemark_fd, tracebuf, len);
}
void tracing(int on)