diff options
Diffstat (limited to 'tools/perf/util/header.h')
-rw-r--r-- | tools/perf/util/header.h | 92 |
1 files changed, 36 insertions, 56 deletions
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index 402ac2454cf8..1886256768a1 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 | ||
12 | struct perf_header_attr { | ||
13 | struct perf_event_attr attr; | ||
14 | int ids, size; | ||
15 | u64 *id; | ||
16 | off_t id_offset; | ||
17 | }; | ||
18 | |||
19 | enum { | 12 | enum { |
20 | HEADER_TRACE_INFO = 1, | 13 | HEADER_TRACE_INFO = 1, |
21 | HEADER_BUILD_ID, | 14 | HEADER_BUILD_ID, |
@@ -46,14 +39,12 @@ struct perf_pipe_file_header { | |||
46 | 39 | ||
47 | struct perf_header; | 40 | struct perf_header; |
48 | 41 | ||
49 | int perf_file_header__read(struct perf_file_header *self, | 42 | int perf_file_header__read(struct perf_file_header *header, |
50 | struct perf_header *ph, int fd); | 43 | struct perf_header *ph, int fd); |
51 | 44 | ||
52 | struct perf_header { | 45 | struct 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,32 +53,23 @@ struct perf_header { | |||
62 | DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS); | 53 | DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS); |
63 | }; | 54 | }; |
64 | 55 | ||
65 | int perf_header__init(struct perf_header *self); | 56 | struct perf_evlist; |
66 | void perf_header__exit(struct perf_header *self); | ||
67 | 57 | ||
68 | int perf_header__read(struct perf_session *session, int fd); | 58 | int perf_session__read_header(struct perf_session *session, int fd); |
69 | int perf_header__write(struct perf_header *self, int fd, bool at_exit); | 59 | int perf_session__write_header(struct perf_session *session, |
60 | struct perf_evlist *evlist, | ||
61 | int fd, bool at_exit); | ||
70 | int perf_header__write_pipe(int fd); | 62 | int perf_header__write_pipe(int fd); |
71 | 63 | ||
72 | int perf_header__add_attr(struct perf_header *self, | ||
73 | struct perf_header_attr *attr); | ||
74 | |||
75 | int perf_header__push_event(u64 id, const char *name); | 64 | int perf_header__push_event(u64 id, const char *name); |
76 | char *perf_header__find_event(u64 id); | 65 | char *perf_header__find_event(u64 id); |
77 | 66 | ||
78 | struct perf_header_attr *perf_header_attr__new(struct perf_event_attr *attr); | 67 | void perf_header__set_feat(struct perf_header *header, int feat); |
79 | void perf_header_attr__delete(struct perf_header_attr *self); | 68 | void perf_header__clear_feat(struct perf_header *header, int feat); |
69 | bool perf_header__has_feat(const struct perf_header *header, int feat); | ||
80 | 70 | ||
81 | int perf_header_attr__add_id(struct perf_header_attr *self, u64 id); | 71 | int perf_header__process_sections(struct perf_header *header, int fd, |
82 | 72 | int (*process)(struct perf_file_section *section, | |
83 | u64 perf_header__sample_type(struct perf_header *header); | ||
84 | struct perf_event_attr * | ||
85 | perf_header__find_attr(u64 id, struct perf_header *header); | ||
86 | void perf_header__set_feat(struct perf_header *self, int feat); | ||
87 | bool perf_header__has_feat(const struct perf_header *self, int feat); | ||
88 | |||
89 | int perf_header__process_sections(struct perf_header *self, int fd, | ||
90 | int (*process)(struct perf_file_section *self, | ||
91 | struct perf_header *ph, | 73 | struct perf_header *ph, |
92 | int feat, int fd)); | 74 | int feat, int fd)); |
93 | 75 | ||
@@ -95,33 +77,31 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir, | |||
95 | const char *name, bool is_kallsyms); | 77 | const char *name, bool is_kallsyms); |
96 | int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir); | 78 | int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir); |
97 | 79 | ||
98 | int event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id, | 80 | int perf_event__synthesize_attr(struct perf_event_attr *attr, u16 ids, u64 *id, |
99 | event__handler_t process, | 81 | perf_event__handler_t process, |
100 | struct perf_session *session); | ||
101 | int event__synthesize_attrs(struct perf_header *self, | ||
102 | event__handler_t process, | ||
103 | struct perf_session *session); | ||
104 | int event__process_attr(event_t *self, struct perf_session *session); | ||
105 | |||
106 | int event__synthesize_event_type(u64 event_id, char *name, | ||
107 | event__handler_t process, | ||
108 | struct perf_session *session); | ||
109 | int event__synthesize_event_types(event__handler_t process, | ||
110 | struct perf_session *session); | ||
111 | int event__process_event_type(event_t *self, | ||
112 | struct perf_session *session); | ||
113 | |||
114 | int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs, | ||
115 | int nb_events, | ||
116 | event__handler_t process, | ||
117 | struct perf_session *session); | ||
118 | int event__process_tracing_data(event_t *self, | ||
119 | struct perf_session *session); | 82 | struct perf_session *session); |
83 | int perf_session__synthesize_attrs(struct perf_session *session, | ||
84 | perf_event__handler_t process); | ||
85 | int perf_event__process_attr(union perf_event *event, struct perf_session *session); | ||
86 | |||
87 | int perf_event__synthesize_event_type(u64 event_id, char *name, | ||
88 | perf_event__handler_t process, | ||
89 | struct perf_session *session); | ||
90 | int perf_event__synthesize_event_types(perf_event__handler_t process, | ||
91 | struct perf_session *session); | ||
92 | int perf_event__process_event_type(union perf_event *event, | ||
93 | struct perf_session *session); | ||
120 | 94 | ||
121 | int event__synthesize_build_id(struct dso *pos, u16 misc, | 95 | int perf_event__synthesize_tracing_data(int fd, struct perf_evlist *evlist, |
122 | event__handler_t process, | 96 | perf_event__handler_t process, |
123 | struct machine *machine, | 97 | struct perf_session *session); |
124 | struct perf_session *session); | 98 | int perf_event__process_tracing_data(union perf_event *event, |
125 | int event__process_build_id(event_t *self, struct perf_session *session); | 99 | struct perf_session *session); |
126 | 100 | ||
101 | int perf_event__synthesize_build_id(struct dso *pos, u16 misc, | ||
102 | perf_event__handler_t process, | ||
103 | struct machine *machine, | ||
104 | struct perf_session *session); | ||
105 | int perf_event__process_build_id(union perf_event *event, | ||
106 | struct perf_session *session); | ||
127 | #endif /* __PERF_HEADER_H */ | 107 | #endif /* __PERF_HEADER_H */ |