diff options
Diffstat (limited to 'trace')
-rw-r--r-- | trace/control.c | 17 | ||||
-rw-r--r-- | trace/control.h | 13 | ||||
-rw-r--r-- | trace/simple.c | 6 | ||||
-rw-r--r-- | trace/simple.h | 4 |
4 files changed, 28 insertions, 12 deletions
diff --git a/trace/control.c b/trace/control.c index 931d64c0c8..f5a497a391 100644 --- a/trace/control.c +++ b/trace/control.c @@ -145,17 +145,24 @@ void trace_init_events(const char *fname) loc_pop(&loc); } -bool trace_init_backends(const char *file) +void trace_init_file(const char *file) { #ifdef CONFIG_TRACE_SIMPLE - if (!st_init(file)) { - fprintf(stderr, "failed to initialize simple tracing backend.\n"); - return false; - } + st_set_trace_file(file); #else if (file) { fprintf(stderr, "error: -trace file=...: " "option not supported by the selected tracing backends\n"); + exit(1); + } +#endif +} + +bool trace_init_backends(void) +{ +#ifdef CONFIG_TRACE_SIMPLE + if (!st_init()) { + fprintf(stderr, "failed to initialize simple tracing backend.\n"); return false; } #endif diff --git a/trace/control.h b/trace/control.h index 7905917213..d50f3996c7 100644 --- a/trace/control.h +++ b/trace/control.h @@ -157,7 +157,7 @@ static void trace_event_set_state_dynamic(TraceEvent *ev, bool state); * * Returns: Whether the backends could be successfully initialized. */ -bool trace_init_backends(const char *file); +bool trace_init_backends(void); /** * trace_init_events: @@ -170,6 +170,17 @@ bool trace_init_backends(const char *file); */ void trace_init_events(const char *file); +/** + * trace_init_file: + * @file: Name of trace output file; may be NULL. + * Corresponds to commandline option "-trace file=...". + * + * Record the name of the output file for the tracing backend. + * Exits if no selected backend does not support specifying the + * output file, and a non-NULL file was passed. + */ +void trace_init_file(const char *file); + #include "trace/control-internal.h" diff --git a/trace/simple.c b/trace/simple.c index 56a624cac8..e8594cd00d 100644 --- a/trace/simple.c +++ b/trace/simple.c @@ -322,7 +322,7 @@ void st_set_trace_file_enabled(bool enable) * @file The trace file name or NULL for the default name-<pid> set at * config time */ -bool st_set_trace_file(const char *file) +void st_set_trace_file(const char *file) { st_set_trace_file_enabled(false); @@ -336,7 +336,6 @@ bool st_set_trace_file(const char *file) } st_set_trace_file_enabled(true); - return true; } void st_print_trace_file_status(FILE *stream, int (*stream_printf)(FILE *stream, const char *fmt, ...)) @@ -374,7 +373,7 @@ static GThread *trace_thread_create(GThreadFunc fn) return thread; } -bool st_init(const char *file) +bool st_init(void) { GThread *thread; @@ -387,6 +386,5 @@ bool st_init(const char *file) } atexit(st_flush_trace_buffer); - st_set_trace_file(file); return true; } diff --git a/trace/simple.h b/trace/simple.h index 6997996855..8d1a32eba0 100644 --- a/trace/simple.h +++ b/trace/simple.h @@ -20,8 +20,8 @@ void st_print_trace_file_status(FILE *stream, fprintf_function stream_printf); void st_set_trace_file_enabled(bool enable); -bool st_set_trace_file(const char *file); -bool st_init(const char *file); +void st_set_trace_file(const char *file); +bool st_init(void); void st_flush_trace_buffer(void); typedef struct { |