treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / tools / perf / util / branch.h
blob88e00d268f6f2795a0f0b311a8d0d2de1fd59c56
1 #ifndef _PERF_BRANCH_H
2 #define _PERF_BRANCH_H 1
3 /*
4 * The linux/stddef.h isn't need here, but is needed for __always_inline used
5 * in files included from uapi/linux/perf_event.h such as
6 * /usr/include/linux/swab.h and /usr/include/linux/byteorder/little_endian.h,
7 * detected in at least musl libc, used in Alpine Linux. -acme
8 */
9 #include <stdio.h>
10 #include <stdint.h>
11 #include <linux/compiler.h>
12 #include <linux/stddef.h>
13 #include <linux/perf_event.h>
14 #include <linux/types.h>
16 struct branch_flags {
17 u64 mispred:1;
18 u64 predicted:1;
19 u64 in_tx:1;
20 u64 abort:1;
21 u64 cycles:16;
22 u64 type:4;
23 u64 reserved:40;
26 struct branch_info {
27 struct addr_map_symbol from;
28 struct addr_map_symbol to;
29 struct branch_flags flags;
30 char *srcline_from;
31 char *srcline_to;
34 struct branch_entry {
35 u64 from;
36 u64 to;
37 struct branch_flags flags;
40 struct branch_stack {
41 u64 nr;
42 struct branch_entry entries[0];
45 struct branch_type_stat {
46 bool branch_to;
47 u64 counts[PERF_BR_MAX];
48 u64 cond_fwd;
49 u64 cond_bwd;
50 u64 cross_4k;
51 u64 cross_2m;
54 void branch_type_count(struct branch_type_stat *st, struct branch_flags *flags,
55 u64 from, u64 to);
57 const char *branch_type_name(int type);
58 void branch_type_stat_display(FILE *fp, struct branch_type_stat *st);
59 int branch_type_str(struct branch_type_stat *st, char *bf, int bfsize);
61 #endif /* _PERF_BRANCH_H */