aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/header.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/header.h')
-rw-r--r--tools/perf/util/header.h30
1 files changed, 20 insertions, 10 deletions
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h
index 30aee5160dc0..0eb4a9126b7c 100644
--- a/tools/perf/util/header.h
+++ b/tools/perf/util/header.h
@@ -12,19 +12,29 @@ struct perf_header_attr {
12 off_t id_offset; 12 off_t id_offset;
13}; 13};
14 14
15#define HEADER_TRACE_INFO 1
16
17#define HEADER_FEAT_BITS 256
18
19typedef typeof(u64[HEADER_FEAT_BITS / 8]) feat_mask_t;
20
15struct perf_header { 21struct perf_header {
16 int frozen; 22 int frozen;
17 int attrs, size; 23 int attrs, size;
18 struct perf_header_attr **attr; 24 struct perf_header_attr **attr;
19 s64 attr_offset; 25 s64 attr_offset;
20 u64 data_offset; 26 u64 data_offset;
21 u64 data_size; 27 u64 data_size;
22 u64 event_offset; 28 u64 event_offset;
23 u64 event_size; 29 u64 event_size;
24 u64 trace_info_offset; 30 feat_mask_t adds_features;
25 u64 trace_info_size;
26}; 31};
27 32
33static inline unsigned long *perf_header__adds_mask(struct perf_header *self)
34{
35 return (unsigned long *)(void *)&self->adds_features;
36}
37
28struct perf_header *perf_header__read(int fd); 38struct perf_header *perf_header__read(int fd);
29void perf_header__write(struct perf_header *self, int fd); 39void perf_header__write(struct perf_header *self, int fd);
30 40
@@ -42,7 +52,7 @@ void perf_header_attr__add_id(struct perf_header_attr *self, u64 id);
42u64 perf_header__sample_type(struct perf_header *header); 52u64 perf_header__sample_type(struct perf_header *header);
43struct perf_event_attr * 53struct perf_event_attr *
44perf_header__find_attr(u64 id, struct perf_header *header); 54perf_header__find_attr(u64 id, struct perf_header *header);
45void perf_header__set_trace_info(void); 55void perf_header__feat_trace_info(struct perf_header *header);
46 56
47struct perf_header *perf_header__new(void); 57struct perf_header *perf_header__new(void);
48 58