blob: 0810d6f956cf51bcb741939205784523ffd69403 [file] [log] [blame]
Lluís9a82b6a2011-08-31 20:31:51 +02001#include "trace.h"
2#include "trace/control.h"
3
4
5void 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
15bool trace_event_set_state(const char *name, bool state)
16{
17 unsigned int i;
Mark Wu454e2022011-10-31 11:29:04 +080018 unsigned int len;
19 bool wildcard = false;
20 bool matched = false;
Lluís9a82b6a2011-08-31 20:31:51 +020021
Mark Wu454e2022011-10-31 11:29:04 +080022 len = strlen(name);
23 if (len > 0 && name[len - 1] == '*') {
24 wildcard = true;
25 len -= 1;
26 }
Lluís9a82b6a2011-08-31 20:31:51 +020027 for (i = 0; i < NR_TRACE_EVENTS; i++) {
Mark Wu454e2022011-10-31 11:29:04 +080028 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 }
Lluís9a82b6a2011-08-31 20:31:51 +020035 if (!strcmp(trace_list[i].tp_name, name)) {
36 trace_list[i].state = state;
37 return true;
38 }
39 }
Mark Wu454e2022011-10-31 11:29:04 +080040 return matched;
Lluís9a82b6a2011-08-31 20:31:51 +020041}
42
43bool 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}