From 4f4d1a3992af845d0751962759aceb44e0050e22 Mon Sep 17 00:00:00 2001 From: "Bjoern B. Brandenburg" Date: Wed, 24 Sep 2008 17:13:29 -0400 Subject: API for basic display of sched_trace data --- src/sched_trace.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'src') diff --git a/src/sched_trace.c b/src/sched_trace.c index 17d3d06..9f532f3 100644 --- a/src/sched_trace.c +++ b/src/sched_trace.c @@ -45,3 +45,42 @@ static int map_trace(const char *name, void **start, void **end, size_t *size) *end = *start + *size; return ret; } + +static const char* event_names[] = { + "INVALID", + "NAME", + "PARAM", + "RELEASE", + "ASSIGNED", + "SWITCH_TO", + "SWITCH_FROM", + "COMPLETION", + "BLOCK", + "RESUME", + "INVALID" +}; + +#define ST_INVALID (ST_RESUME + 1) + +const char* event2name(unsigned int id) +{ + if (id >= ST_INVALID) + id = ST_INVALID; + return event_names[id]; +} + +void print_header(struct st_trace_header* hdr) +{ + printf("%-14s on CPU %u for %5u/%5u", + event2name(hdr->type), + hdr->cpu, hdr->pid, hdr->job); +} + +void print_all(struct st_event_record *rec, unsigned int count) +{ + unsigned int i; + for (i = 0; i < count; i++) { + print_header(&rec[i].hdr); + printf("\n"); + } +} -- cgit v1.2.2