X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fperf%2Futil%2Fheader.c;h=ec4d4c2f95223ff1df63c4a6f523e6b00a004132;hb=0cb583fd2862f19ea88b02eb307d11c09e51e2f8;hp=b92a457ca32e2eb156f8f9f3311e281579171a99;hpb=b855192c08fcb14adbc5d3a7cab182022d433cca;p=pandora-kernel.git diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index b92a457ca32e..ec4d4c2f9522 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -237,9 +237,44 @@ struct perf_header *perf_header__read(int fd) self->data_offset = f_header.data.offset; self->data_size = f_header.data.size; - lseek(fd, self->data_offset + self->data_size, SEEK_SET); + lseek(fd, self->data_offset, SEEK_SET); self->frozen = 1; 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; +}