perf symbols: Factor out buildid reading routine
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / tools / perf / util / header.h
CommitLineData
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 10struct 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 21struct 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
33struct perf_header *perf_header__read(int fd);
34void perf_header__write(struct perf_header *self, int fd);
35
36void perf_header__add_attr(struct perf_header *self,
37 struct perf_header_attr *attr);
38
8755a8f2
AV
39void perf_header__push_event(u64 id, const char *name);
40char *perf_header__find_event(u64 id);
41
42
7c6a1c65 43struct perf_header_attr *
cdd6c482 44perf_header_attr__new(struct perf_event_attr *attr);
7c6a1c65
PZ
45void perf_header_attr__add_id(struct perf_header_attr *self, u64 id);
46
0d3a5c88 47u64 perf_header__sample_type(struct perf_header *header);
cdd6c482 48struct perf_event_attr *
0d3a5c88 49perf_header__find_attr(u64 id, struct perf_header *header);
2ba08250 50void perf_header__feat_trace_info(struct perf_header *header);
7c6a1c65
PZ
51
52struct perf_header *perf_header__new(void);
53
8b40f521 54#endif /* __PERF_HEADER_H */