|
@@ -218,6 +218,7 @@ int trace_record_start(TraceBufferRecord *rec, TraceEventID event, size_t datasi
|
|
|
{
|
|
|
unsigned int idx, rec_off, old_idx, new_idx;
|
|
|
uint32_t rec_len = sizeof(TraceRecord) + datasize;
|
|
|
+ uint64_t event_u64 = event;
|
|
|
uint64_t timestamp_ns = get_clock();
|
|
|
|
|
|
do {
|
|
@@ -235,7 +236,7 @@ int trace_record_start(TraceBufferRecord *rec, TraceEventID event, size_t datasi
|
|
|
idx = old_idx % TRACE_BUF_LEN;
|
|
|
|
|
|
rec_off = idx;
|
|
|
- rec_off = write_to_buffer(rec_off, &event, sizeof(event));
|
|
|
+ rec_off = write_to_buffer(rec_off, &event_u64, sizeof(event_u64));
|
|
|
rec_off = write_to_buffer(rec_off, ×tamp_ns, sizeof(timestamp_ns));
|
|
|
rec_off = write_to_buffer(rec_off, &rec_len, sizeof(rec_len));
|
|
|
|
|
@@ -359,38 +360,16 @@ void trace_print_events(FILE *stream, fprintf_function stream_printf)
|
|
|
{
|
|
|
unsigned int i;
|
|
|
|
|
|
- for (i = 0; i < NR_TRACE_EVENTS; i++) {
|
|
|
+ for (i = 0; i < trace_event_count(); i++) {
|
|
|
+ TraceEvent *ev = trace_event_id(i);
|
|
|
stream_printf(stream, "%s [Event ID %u] : state %u\n",
|
|
|
- trace_list[i].tp_name, i, trace_list[i].state);
|
|
|
+ trace_event_get_name(ev), i, trace_event_get_state_dynamic(ev));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-bool trace_event_set_state(const char *name, bool state)
|
|
|
+void trace_event_set_state_dynamic_backend(TraceEvent *ev, 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;
|
|
|
+ ev->dstate = state;
|
|
|
}
|
|
|
|
|
|
/* Helper function to create a thread with signals blocked. Use glib's
|