| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 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 |  | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 14 | struct sym_entry { | 
 | 15 | 	struct rb_node		rb_node; | 
 | 16 | 	struct list_head	node; | 
 | 17 | 	unsigned long		snap_count; | 
 | 18 | 	double			weight; | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 19 | 	struct map		*map; | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 20 | 	unsigned long		count[0]; | 
 | 21 | }; | 
 | 22 |  | 
| Arnaldo Carvalho de Melo | c0443df | 2011-01-31 18:19:33 -0200 | [diff] [blame] | 23 | static inline struct symbol *sym_entry__symbol(struct sym_entry *self) | 
 | 24 | { | 
 | 25 |        return ((void *)self) + symbol_conf.priv_size; | 
 | 26 | } | 
 | 27 |  | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 28 | struct perf_top { | 
 | 29 | 	struct perf_evlist *evlist; | 
 | 30 | 	/* | 
 | 31 | 	 * Symbols will be added here in perf_event__process_sample and will | 
 | 32 | 	 * get out after decayed. | 
 | 33 | 	 */ | 
 | 34 | 	struct list_head   active_symbols; | 
 | 35 | 	pthread_mutex_t	   active_symbols_lock; | 
| Arnaldo Carvalho de Melo | 5807806 | 2011-03-01 10:43:03 -0300 | [diff] [blame] | 36 | 	pthread_cond_t	   active_symbols_cond; | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 37 | 	u64		   samples; | 
 | 38 | 	u64		   kernel_samples, us_samples; | 
 | 39 | 	u64		   exact_samples; | 
 | 40 | 	u64		   guest_us_samples, guest_kernel_samples; | 
 | 41 | 	int		   print_entries, count_filter, delay_secs; | 
| Arnaldo Carvalho de Melo | ec52d97 | 2011-03-11 10:11:48 -0300 | [diff] [blame] | 42 | 	int		   display_weighted, freq, rb_entries; | 
| Denis Kirjanov | ef4d001 | 2011-02-05 20:39:38 +0000 | [diff] [blame] | 43 | 	pid_t		   target_pid, target_tid; | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 44 | 	bool		   hide_kernel_symbols, hide_user_symbols, zero; | 
 | 45 | 	const char	   *cpu_list; | 
| Arnaldo Carvalho de Melo | c97cf42 | 2011-02-22 12:02:07 -0300 | [diff] [blame] | 46 | 	struct sym_entry   *sym_filter_entry; | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 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 |  | 
| Arnaldo Carvalho de Melo | c0443df | 2011-01-31 18:19:33 -0200 | [diff] [blame] | 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 | 
| Arnaldo Carvalho de Melo | 8c3e10e | 2011-01-31 14:50:39 -0200 | [diff] [blame] | 64 | #endif /* __PERF_TOP_H */ |