1e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#ifndef __PERF_TOP_H 2e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define __PERF_TOP_H 1 3e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 4e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include "tool.h" 5e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include "types.h" 6e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include <stddef.h> 7e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include <stdbool.h> 8e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#include <termios.h> 9e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 10e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_evlist; 11e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_evsel; 12e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_session; 13e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 14e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengstruct perf_top { 15e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_tool tool; 16e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_evlist *evlist; 17e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_record_opts record_opts; 18e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng /* 19e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng * Symbols will be added here in perf_event__process_sample and will 20e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng * get out after decayed. 21e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng */ 22e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng u64 samples; 23e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng u64 kernel_samples, us_samples; 24e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng u64 exact_samples; 25e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng u64 guest_us_samples, guest_kernel_samples; 26e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng int print_entries, count_filter, delay_secs; 27e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool hide_kernel_symbols, hide_user_symbols, zero; 28e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool use_tui, use_stdio; 29e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool kptr_restrict_warned; 30e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool vmlinux_warned; 31e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng bool dump_symtab; 32e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct hist_entry *sym_filter_entry; 33e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_evsel *sym_evsel; 34e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct perf_session *session; 35e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng struct winsize winsize; 36e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng int realtime_prio; 37e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng int sym_pcnt_filter; 38e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng const char *sym_filter; 39e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng float min_percent; 40e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng}; 41e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 42e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#define CONSOLE_CLEAR "[H[2J" 43e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng 44e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengsize_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size); 45e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Chengvoid perf_top__reset_sample_counters(struct perf_top *top); 46e6e8a0bd7cffcc9ae2e0e75546fb12a19213d4aeBen Cheng#endif /* __PERF_TOP_H */ 47