454e202d52
A basic wildcard matching is supported in both the monitor command "trace-event" and the events list file. That means you can enable/disable the events having a common prefix in a batch. For example, virtio-blk trace events could be enabled using: trace-event virtio_blk_* on Signed-off-by: Mark Wu <wudxw@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
#include "trace.h"
|
|
#include "trace/control.h"
|
|
|
|
|
|
void trace_print_events(FILE *stream, fprintf_function stream_printf)
|
|
{
|
|
unsigned int i;
|
|
|
|
for (i = 0; i < NR_TRACE_EVENTS; i++) {
|
|
stream_printf(stream, "%s [Event ID %u] : state %u\n",
|
|
trace_list[i].tp_name, i, trace_list[i].state);
|
|
}
|
|
}
|
|
|
|
bool trace_event_set_state(const char *name, bool state)
|
|
{
|
|
unsigned int i;
|
|
unsigned int len;
|
|
bool wildcard = false;
|
|
bool matched = false;
|
|
|
|
len = strlen(name);
|
|
if (len > 0 && name[len - 1] == '*') {
|
|
wildcard = true;
|
|
len -= 1;
|
|
}
|
|
for (i = 0; i < NR_TRACE_EVENTS; i++) {
|
|
if (wildcard) {
|
|
if (!strncmp(trace_list[i].tp_name, name, len)) {
|
|
trace_list[i].state = state;
|
|
matched = true;
|
|
}
|
|
continue;
|
|
}
|
|
if (!strcmp(trace_list[i].tp_name, name)) {
|
|
trace_list[i].state = state;
|
|
return true;
|
|
}
|
|
}
|
|
return matched;
|
|
}
|
|
|
|
bool trace_backend_init(const char *events, const char *file)
|
|
{
|
|
if (file) {
|
|
fprintf(stderr, "error: -trace file=...: "
|
|
"option not supported by the selected tracing backend\n");
|
|
return false;
|
|
}
|
|
trace_backend_init_events(events);
|
|
return true;
|
|
}
|