diff options
Diffstat (limited to 'tools/perf/util/top.h')
-rw-r--r-- | tools/perf/util/top.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/perf/util/top.h b/tools/perf/util/top.h new file mode 100644 index 000000000000..96d1cb78af01 --- /dev/null +++ b/tools/perf/util/top.h | |||
@@ -0,0 +1,66 @@ | |||
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 | |||
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; | ||
20 | u8 origin; | ||
21 | struct map *map; | ||
22 | unsigned long count[0]; | ||
23 | }; | ||
24 | |||
25 | static inline struct symbol *sym_entry__symbol(struct sym_entry *self) | ||
26 | { | ||
27 | return ((void *)self) + symbol_conf.priv_size; | ||
28 | } | ||
29 | |||
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 | pthread_cond_t active_symbols_cond; | ||
39 | u64 samples; | ||
40 | u64 kernel_samples, us_samples; | ||
41 | u64 exact_samples; | ||
42 | u64 guest_us_samples, guest_kernel_samples; | ||
43 | int print_entries, count_filter, delay_secs; | ||
44 | int display_weighted, freq, rb_entries, sym_counter; | ||
45 | pid_t target_pid, target_tid; | ||
46 | bool hide_kernel_symbols, hide_user_symbols, zero; | ||
47 | const char *cpu_list; | ||
48 | struct sym_entry *sym_filter_entry; | ||
49 | struct perf_evsel *sym_evsel; | ||
50 | }; | ||
51 | |||
52 | size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size); | ||
53 | void perf_top__reset_sample_counters(struct perf_top *top); | ||
54 | float perf_top__decay_samples(struct perf_top *top, struct rb_root *root); | ||
55 | void perf_top__find_widths(struct perf_top *top, struct rb_root *root, | ||
56 | int *dso_width, int *dso_short_width, int *sym_width); | ||
57 | |||
58 | #ifdef NO_NEWT_SUPPORT | ||
59 | static inline int perf_top__tui_browser(struct perf_top *top __used) | ||
60 | { | ||
61 | return 0; | ||
62 | } | ||
63 | #else | ||
64 | int perf_top__tui_browser(struct perf_top *top); | ||
65 | #endif | ||
66 | #endif /* __PERF_TOP_H */ | ||