aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/header.h
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2011-03-10 09:15:54 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2011-03-10 09:15:54 -0500
commita91e5431d54f5359fccb5ec2512f252eb217707e (patch)
tree8f8ba4940d9f4e910b339baee13a710baa920378 /tools/perf/util/header.h
parent6547250381eb315acff3d52b4872ad775359407c (diff)
perf session: Use evlist/evsel for managing perf.data attributes
So that we can reuse things like the id to attr lookup routine (perf_evlist__id2evsel) that uses a hash table instead of the linear lookup done in the older perf_header_attr routines, etc. Also to make evsels/evlist more pervasive an API, simplyfing using the emerging perf lib. cc: Arun Sharma <arun@sharma-home.net> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Tom Zanussi <tzanussi@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/header.h')
-rw-r--r--tools/perf/util/header.h36
1 files changed, 8 insertions, 28 deletions
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h
index 2fab13348aab..4cc267559bb6 100644
--- a/tools/perf/util/header.h
+++ b/tools/perf/util/header.h
@@ -9,13 +9,6 @@
9 9
10#include <linux/bitmap.h> 10#include <linux/bitmap.h>
11 11
12struct perf_header_attr {
13 struct perf_event_attr attr;
14 int ids, size;
15 u64 *id;
16 off_t id_offset;
17};
18
19enum { 12enum {
20 HEADER_TRACE_INFO = 1, 13 HEADER_TRACE_INFO = 1,
21 HEADER_BUILD_ID, 14 HEADER_BUILD_ID,
@@ -51,9 +44,7 @@ int perf_file_header__read(struct perf_file_header *self,
51 44
52struct perf_header { 45struct perf_header {
53 int frozen; 46 int frozen;
54 int attrs, size;
55 bool needs_swap; 47 bool needs_swap;
56 struct perf_header_attr **attr;
57 s64 attr_offset; 48 s64 attr_offset;
58 u64 data_offset; 49 u64 data_offset;
59 u64 data_size; 50 u64 data_size;
@@ -62,29 +53,19 @@ struct perf_header {
62 DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS); 53 DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS);
63}; 54};
64 55
65int perf_header__init(struct perf_header *self);
66void perf_header__exit(struct perf_header *self);
67
68struct perf_evlist; 56struct perf_evlist;
69 57
70int perf_header__read(struct perf_session *session, int fd); 58int perf_session__read_header(struct perf_session *session, int fd);
71int perf_header__write(struct perf_header *self, struct perf_evlist *evlist, 59int perf_session__write_header(struct perf_session *session,
72 int fd, bool at_exit); 60 struct perf_evlist *evlist,
61 int fd, bool at_exit);
73int perf_header__write_pipe(int fd); 62int perf_header__write_pipe(int fd);
74 63
75int perf_header__add_attr(struct perf_header *self,
76 struct perf_header_attr *attr);
77
78int perf_header__push_event(u64 id, const char *name); 64int perf_header__push_event(u64 id, const char *name);
79char *perf_header__find_event(u64 id); 65char *perf_header__find_event(u64 id);
80 66
81struct perf_header_attr *perf_header_attr__new(struct perf_event_attr *attr); 67u64 perf_evlist__sample_type(struct perf_evlist *evlist);
82void perf_header_attr__delete(struct perf_header_attr *self); 68bool perf_evlist__sample_id_all(const struct perf_evlist *evlist);
83
84int perf_header_attr__add_id(struct perf_header_attr *self, u64 id);
85
86u64 perf_header__sample_type(struct perf_header *header);
87bool perf_header__sample_id_all(const struct perf_header *header);
88void perf_header__set_feat(struct perf_header *self, int feat); 69void perf_header__set_feat(struct perf_header *self, int feat);
89void perf_header__clear_feat(struct perf_header *self, int feat); 70void perf_header__clear_feat(struct perf_header *self, int feat);
90bool perf_header__has_feat(const struct perf_header *self, int feat); 71bool perf_header__has_feat(const struct perf_header *self, int feat);
@@ -101,9 +82,8 @@ int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir);
101int perf_event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id, 82int perf_event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id,
102 perf_event__handler_t process, 83 perf_event__handler_t process,
103 struct perf_session *session); 84 struct perf_session *session);
104int perf_event__synthesize_attrs(struct perf_header *self, 85int perf_session__synthesize_attrs(struct perf_session *session,
105 perf_event__handler_t process, 86 perf_event__handler_t process);
106 struct perf_session *session);
107int perf_event__process_attr(union perf_event *event, struct perf_session *session); 87int perf_event__process_attr(union perf_event *event, struct perf_session *session);
108 88
109int perf_event__synthesize_event_type(u64 event_id, char *name, 89int perf_event__synthesize_event_type(u64 event_id, char *name,