Commit | Line | Data |
---|---|---|
8b40f521 JK |
1 | #ifndef __PERF_HEADER_H |
2 | #define __PERF_HEADER_H | |
7c6a1c65 | 3 | |
cdd6c482 | 4 | #include "../../../include/linux/perf_event.h" |
7c6a1c65 PZ |
5 | #include <sys/types.h> |
6 | #include "types.h" | |
7 | ||
db9f11e3 FW |
8 | #include <linux/bitmap.h> |
9 | ||
7c6a1c65 | 10 | struct perf_header_attr { |
cdd6c482 | 11 | struct perf_event_attr attr; |
7c6a1c65 PZ |
12 | int ids, size; |
13 | u64 *id; | |
14 | off_t id_offset; | |
15 | }; | |
16 | ||
2ba08250 FW |
17 | #define HEADER_TRACE_INFO 1 |
18 | ||
19 | #define HEADER_FEAT_BITS 256 | |
20 | ||
7c6a1c65 | 21 | struct perf_header { |
2ba08250 FW |
22 | int frozen; |
23 | int attrs, size; | |
7c6a1c65 | 24 | struct perf_header_attr **attr; |
2ba08250 FW |
25 | s64 attr_offset; |
26 | u64 data_offset; | |
27 | u64 data_size; | |
28 | u64 event_offset; | |
29 | u64 event_size; | |
db9f11e3 | 30 | DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS); |
7c6a1c65 PZ |
31 | }; |
32 | ||
33 | struct perf_header *perf_header__read(int fd); | |
34 | void perf_header__write(struct perf_header *self, int fd); | |
35 | ||
36 | void perf_header__add_attr(struct perf_header *self, | |
37 | struct perf_header_attr *attr); | |
38 | ||
8755a8f2 AV |
39 | void perf_header__push_event(u64 id, const char *name); |
40 | char *perf_header__find_event(u64 id); | |
41 | ||
42 | ||
7c6a1c65 | 43 | struct perf_header_attr * |
cdd6c482 | 44 | perf_header_attr__new(struct perf_event_attr *attr); |
7c6a1c65 PZ |
45 | void perf_header_attr__add_id(struct perf_header_attr *self, u64 id); |
46 | ||
0d3a5c88 | 47 | u64 perf_header__sample_type(struct perf_header *header); |
cdd6c482 | 48 | struct perf_event_attr * |
0d3a5c88 | 49 | perf_header__find_attr(u64 id, struct perf_header *header); |
2ba08250 | 50 | void perf_header__feat_trace_info(struct perf_header *header); |
7c6a1c65 PZ |
51 | |
52 | struct perf_header *perf_header__new(void); | |
53 | ||
8b40f521 | 54 | #endif /* __PERF_HEADER_H */ |