perf tools: Librarize sample type and attr finding from headers
Librarize the sample type and attr fetching from perf data file headers so that we can also use it from perf trace. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Mike Galbraith <efault@gmx.de> LKML-Reference: <1250448997-30715-1-git-send-email-fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
0f25bfc8d8
commit
0d3a5c8859
3 changed files with 45 additions and 38 deletions
|
@ -243,3 +243,38 @@ struct perf_header *perf_header__read(int fd)
|
|||
|
||||
return self;
|
||||
}
|
||||
|
||||
u64 perf_header__sample_type(struct perf_header *header)
|
||||
{
|
||||
u64 type = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < header->attrs; i++) {
|
||||
struct perf_header_attr *attr = header->attr[i];
|
||||
|
||||
if (!type)
|
||||
type = attr->attr.sample_type;
|
||||
else if (type != attr->attr.sample_type)
|
||||
die("non matching sample_type");
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
struct perf_counter_attr *
|
||||
perf_header__find_attr(u64 id, struct perf_header *header)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < header->attrs; i++) {
|
||||
struct perf_header_attr *attr = header->attr[i];
|
||||
int j;
|
||||
|
||||
for (j = 0; j < attr->ids; j++) {
|
||||
if (attr->id[j] == id)
|
||||
return &attr->attr;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue