Commit | Line | Data |
---|---|---|
8c3e10eb ACM |
1 | #ifndef __PERF_TOP_H |
2 | #define __PERF_TOP_H 1 | |
3 | ||
4 | #include "types.h" | |
5 | #include "../perf.h" | |
6 | #include <stddef.h> | |
7 | #include <pthread.h> | |
8 | #include <linux/list.h> | |
9 | #include <linux/rbtree.h> | |
10 | ||
11 | struct perf_evlist; | |
12 | struct perf_evsel; | |
13 | ||
8c3e10eb ACM |
14 | struct sym_entry { |
15 | struct rb_node rb_node; | |
16 | struct list_head node; | |
17 | unsigned long snap_count; | |
18 | double weight; | |
19 | int skip; | |
8c3e10eb ACM |
20 | u8 origin; |
21 | struct map *map; | |
8c3e10eb ACM |
22 | unsigned long count[0]; |
23 | }; | |
24 | ||
c0443df1 ACM |
25 | static inline struct symbol *sym_entry__symbol(struct sym_entry *self) |
26 | { | |
27 | return ((void *)self) + symbol_conf.priv_size; | |
28 | } | |
29 | ||
8c3e10eb ACM |
30 | struct perf_top { |
31 | struct perf_evlist *evlist; | |
32 | /* | |
33 | * Symbols will be added here in perf_event__process_sample and will | |
34 | * get out after decayed. | |
35 | */ | |
36 | struct list_head active_symbols; | |
37 | pthread_mutex_t active_symbols_lock; | |
38 | u64 samples; | |
39 | u64 kernel_samples, us_samples; | |
40 | u64 exact_samples; | |
41 | u64 guest_us_samples, guest_kernel_samples; | |
42 | int print_entries, count_filter, delay_secs; | |
ef4d001d DK |
43 | int display_weighted, freq, rb_entries, sym_counter; |
44 | pid_t target_pid, target_tid; | |
8c3e10eb ACM |
45 | bool hide_kernel_symbols, hide_user_symbols, zero; |
46 | const char *cpu_list; | |
47 | struct perf_evsel *sym_evsel; | |
48 | }; | |
49 | ||
50 | size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size); | |
51 | void perf_top__reset_sample_counters(struct perf_top *top); | |
52 | float perf_top__decay_samples(struct perf_top *top, struct rb_root *root); | |
53 | void perf_top__find_widths(struct perf_top *top, struct rb_root *root, | |
54 | int *dso_width, int *dso_short_width, int *sym_width); | |
55 | ||
c0443df1 ACM |
56 | #ifdef NO_NEWT_SUPPORT |
57 | static inline int perf_top__tui_browser(struct perf_top *top __used) | |
58 | { | |
59 | return 0; | |
60 | } | |
61 | #else | |
62 | int perf_top__tui_browser(struct perf_top *top); | |
63 | #endif | |
8c3e10eb | 64 | #endif /* __PERF_TOP_H */ |