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 /* ANDROID_CHANGE_BEGIN */
9 #if 0
10 #include <linux/list.h>
11 #include <linux/rbtree.h>
12 #else
13 #include "include/linux/list.h"
14 #include "include/linux/rbtree.h"
15 #endif
16 /* ANDROID_CHANGE_END */
17
18 struct perf_evlist;
19 struct perf_evsel;
20
21 struct sym_entry {
22 struct rb_node rb_node;
23 struct list_head node;
24 unsigned long snap_count;
25 double weight;
26 struct map *map;
27 unsigned long count[0];
28 };
29
sym_entry__symbol(struct sym_entry * self)30 static inline struct symbol *sym_entry__symbol(struct sym_entry *self)
31 {
32 return ((void *)self) + symbol_conf.priv_size;
33 }
34
35 struct perf_top {
36 struct perf_evlist *evlist;
37 /*
38 * Symbols will be added here in perf_event__process_sample and will
39 * get out after decayed.
40 */
41 struct list_head active_symbols;
42 pthread_mutex_t active_symbols_lock;
43 pthread_cond_t active_symbols_cond;
44 u64 samples;
45 u64 kernel_samples, us_samples;
46 u64 exact_samples;
47 u64 guest_us_samples, guest_kernel_samples;
48 int print_entries, count_filter, delay_secs;
49 int display_weighted, freq, rb_entries;
50 pid_t target_pid, target_tid;
51 bool hide_kernel_symbols, hide_user_symbols, zero;
52 const char *cpu_list;
53 struct sym_entry *sym_filter_entry;
54 struct perf_evsel *sym_evsel;
55 };
56
57 size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size);
58 void perf_top__reset_sample_counters(struct perf_top *top);
59 float perf_top__decay_samples(struct perf_top *top, struct rb_root *root);
60 void perf_top__find_widths(struct perf_top *top, struct rb_root *root,
61 int *dso_width, int *dso_short_width, int *sym_width);
62
63 #ifdef NO_NEWT_SUPPORT
perf_top__tui_browser(struct perf_top * top __used)64 static inline int perf_top__tui_browser(struct perf_top *top __used)
65 {
66 return 0;
67 }
68 #else
69 int perf_top__tui_browser(struct perf_top *top);
70 #endif
71 #endif /* __PERF_TOP_H */
72