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
|
#endif
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
|
#include "qemu/config-file.h"
|
||||||
#include "monitor/monitor.h"
|
#include "monitor/monitor.h"
|
||||||
|
|
||||||
int trace_events_enabled_count;
|
int trace_events_enabled_count;
|
||||||
bool trace_events_dstate[TRACE_EVENT_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)
|
TraceEvent *trace_event_name(const char *name)
|
||||||
{
|
{
|
||||||
assert(name != NULL);
|
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;
|
Location loc;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
@ -217,3 +239,21 @@ bool trace_init_backends(void)
|
|||||||
|
|
||||||
return true;
|
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);
|
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:
|
* trace_init_file:
|
||||||
* @file: Name of trace output file; may be NULL.
|
* @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);
|
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"
|
#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 = {
|
static QemuOptsList qemu_option_rom_opts = {
|
||||||
.name = "option-rom",
|
.name = "option-rom",
|
||||||
.implied_opt_name = "romfile",
|
.implied_opt_name = "romfile",
|
||||||
@ -3864,23 +3844,9 @@ int main(int argc, char **argv, char **envp)
|
|||||||
xen_mode = XEN_ATTACH;
|
xen_mode = XEN_ATTACH;
|
||||||
break;
|
break;
|
||||||
case QEMU_OPTION_trace:
|
case QEMU_OPTION_trace:
|
||||||
{
|
g_free(trace_file);
|
||||||
opts = qemu_opts_parse_noisily(qemu_find_opts("trace"),
|
trace_file = trace_opt_parse(optarg);
|
||||||
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);
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
case QEMU_OPTION_readconfig:
|
case QEMU_OPTION_readconfig:
|
||||||
{
|
{
|
||||||
int ret = qemu_read_config_file(optarg);
|
int ret = qemu_read_config_file(optarg);
|
||||||
|
Loading…
Reference in New Issue
Block a user