trace: move qemu_trace_opts to trace/control.c
The patch also creates trace_opt_parse() helper in trace/control.c to reuse this code in next patches for qemu-nbd and qemu-io. The patch also makes trace_init_events() static, as this call is not used outside the module anymore. Signed-off-by: Denis V. Lunev <den@openvz.org> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1466174654-30130-4-git-send-email-den@openvz.org CC: Paolo Bonzini <pbonzini@redhat.com> CC: Stefan Hajnoczi <stefanha@redhat.com> CC: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
eeb2b8f78d
commit
e9e0bb2af2
@ -21,11 +21,33 @@
|
||||
#endif
|
||||
#include "qapi/error.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/config-file.h"
|
||||
#include "monitor/monitor.h"
|
||||
|
||||
int trace_events_enabled_count;
|
||||
bool trace_events_dstate[TRACE_EVENT_COUNT];
|
||||
|
||||
QemuOptsList qemu_trace_opts = {
|
||||
.name = "trace",
|
||||
.implied_opt_name = "enable",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "enable",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{
|
||||
.name = "events",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
TraceEvent *trace_event_name(const char *name)
|
||||
{
|
||||
assert(name != NULL);
|
||||
@ -142,7 +164,7 @@ void trace_enable_events(const char *line_buf)
|
||||
}
|
||||
}
|
||||
|
||||
void trace_init_events(const char *fname)
|
||||
static void trace_init_events(const char *fname)
|
||||
{
|
||||
Location loc;
|
||||
FILE *fp;
|
||||
@ -217,3 +239,21 @@ bool trace_init_backends(void)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
char *trace_opt_parse(const char *optarg)
|
||||
{
|
||||
char *trace_file;
|
||||
QemuOpts *opts = qemu_opts_parse_noisily(qemu_find_opts("trace"),
|
||||
optarg, true);
|
||||
if (!opts) {
|
||||
exit(1);
|
||||
}
|
||||
if (qemu_opt_get(opts, "enable")) {
|
||||
trace_enable_events(qemu_opt_get(opts, "enable"));
|
||||
}
|
||||
trace_init_events(qemu_opt_get(opts, "events"));
|
||||
trace_file = g_strdup(qemu_opt_get(opts, "file"));
|
||||
qemu_opts_del(opts);
|
||||
|
||||
return trace_file;
|
||||
}
|
||||
|
@ -159,17 +159,6 @@ static void trace_event_set_state_dynamic(TraceEvent *ev, bool state);
|
||||
*/
|
||||
bool trace_init_backends(void);
|
||||
|
||||
/**
|
||||
* trace_init_events:
|
||||
* @events: Name of file with events to be enabled at startup; may be NULL.
|
||||
* Corresponds to commandline option "-trace events=...".
|
||||
*
|
||||
* Read the list of enabled tracing events.
|
||||
*
|
||||
* Returns: Whether the backends could be successfully initialized.
|
||||
*/
|
||||
void trace_init_events(const char *file);
|
||||
|
||||
/**
|
||||
* trace_init_file:
|
||||
* @file: Name of trace output file; may be NULL.
|
||||
@ -197,6 +186,20 @@ void trace_list_events(void);
|
||||
*/
|
||||
void trace_enable_events(const char *line_buf);
|
||||
|
||||
/**
|
||||
* Definition of QEMU options describing trace subsystem configuration
|
||||
*/
|
||||
extern QemuOptsList qemu_trace_opts;
|
||||
|
||||
/**
|
||||
* trace_opt_parse:
|
||||
* @optarg: A string argument of --trace command line argument
|
||||
*
|
||||
* Initialize tracing subsystem.
|
||||
*
|
||||
* Returns the filename to save trace to. It must be freed with g_free().
|
||||
*/
|
||||
char *trace_opt_parse(const char *optarg);
|
||||
|
||||
#include "trace/control-internal.h"
|
||||
|
||||
|
38
vl.c
38
vl.c
@ -262,26 +262,6 @@ static QemuOptsList qemu_sandbox_opts = {
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_trace_opts = {
|
||||
.name = "trace",
|
||||
.implied_opt_name = "enable",
|
||||
.head = QTAILQ_HEAD_INITIALIZER(qemu_trace_opts.head),
|
||||
.desc = {
|
||||
{
|
||||
.name = "enable",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{
|
||||
.name = "events",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},{
|
||||
.name = "file",
|
||||
.type = QEMU_OPT_STRING,
|
||||
},
|
||||
{ /* end of list */ }
|
||||
},
|
||||
};
|
||||
|
||||
static QemuOptsList qemu_option_rom_opts = {
|
||||
.name = "option-rom",
|
||||
.implied_opt_name = "romfile",
|
||||
@ -3864,23 +3844,9 @@ int main(int argc, char **argv, char **envp)
|
||||
xen_mode = XEN_ATTACH;
|
||||
break;
|
||||
case QEMU_OPTION_trace:
|
||||
{
|
||||
opts = qemu_opts_parse_noisily(qemu_find_opts("trace"),
|
||||
optarg, true);
|
||||
if (!opts) {
|
||||
exit(1);
|
||||
}
|
||||
if (qemu_opt_get(opts, "enable")) {
|
||||
trace_enable_events(qemu_opt_get(opts, "enable"));
|
||||
}
|
||||
trace_init_events(qemu_opt_get(opts, "events"));
|
||||
if (trace_file) {
|
||||
g_free(trace_file);
|
||||
}
|
||||
trace_file = g_strdup(qemu_opt_get(opts, "file"));
|
||||
qemu_opts_del(opts);
|
||||
g_free(trace_file);
|
||||
trace_file = trace_opt_parse(optarg);
|
||||
break;
|
||||
}
|
||||
case QEMU_OPTION_readconfig:
|
||||
{
|
||||
int ret = qemu_read_config_file(optarg);
|
||||
|
Loading…
Reference in New Issue
Block a user