build: some simplifications for "trace/Makefile.objs"
[sdk/emulator/qemu.git] / trace / stderr.c
1 #include "trace.h"
2 #include "trace/control.h"
3
4
5 void trace_print_events(FILE *stream, fprintf_function stream_printf)
6 {
7     unsigned int i;
8
9     for (i = 0; i < NR_TRACE_EVENTS; i++) {
10         stream_printf(stream, "%s [Event ID %u] : state %u\n",
11                       trace_list[i].tp_name, i, trace_list[i].state);
12     }
13 }
14
15 bool trace_event_set_state(const char *name, bool state)
16 {
17     unsigned int i;
18     unsigned int len;
19     bool wildcard = false;
20     bool matched = false;
21
22     len = strlen(name);
23     if (len > 0 && name[len - 1] == '*') {
24         wildcard = true;
25         len -= 1;
26     }
27     for (i = 0; i < NR_TRACE_EVENTS; i++) {
28         if (wildcard) {
29             if (!strncmp(trace_list[i].tp_name, name, len)) {
30                 trace_list[i].state = state;
31                 matched = true;
32             }
33             continue;
34         }
35         if (!strcmp(trace_list[i].tp_name, name)) {
36             trace_list[i].state = state;
37             return true;
38         }
39     }
40     return matched;
41 }
42
43 bool trace_backend_init(const char *events, const char *file)
44 {
45     if (file) {
46         fprintf(stderr, "error: -trace file=...: "
47                 "option not supported by the selected tracing backend\n");
48         return false;
49     }
50     trace_backend_init_events(events);
51     return true;
52 }