a4e3b956a8
Then hist_entry__fprintf will just us the newly introduced hist_entry__snprintf, add the newline and fprintf it to the supplied FILE descriptor. This allows us to remove the use_browser checking in the color_printf routines, that now got color_snprintf variants too. The newt TUI browser (and other GUIs that may come in the future) don't have to worry about stdio specific stuff in the strings they get from the se->snprintf routines and instead use whatever means to do the equivalent. Also the newt TUI browser don't have to use the fmemopen() hack, instead it can use the se->snprintf routines directly. For now tho use the hist_entry__snprintf routine to reduce the patch size. Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
#ifndef __PERF_HIST_H
|
|
#define __PERF_HIST_H
|
|
|
|
#include <linux/types.h>
|
|
#include "callchain.h"
|
|
|
|
extern struct callchain_param callchain_param;
|
|
|
|
struct perf_session;
|
|
struct hist_entry;
|
|
struct addr_location;
|
|
struct symbol;
|
|
struct rb_root;
|
|
|
|
struct hist_entry *__perf_session__add_hist_entry(struct rb_root *hists,
|
|
struct addr_location *al,
|
|
struct symbol *parent,
|
|
u64 count, bool *hit);
|
|
extern int64_t hist_entry__cmp(struct hist_entry *, struct hist_entry *);
|
|
extern int64_t hist_entry__collapse(struct hist_entry *, struct hist_entry *);
|
|
int hist_entry__fprintf(struct hist_entry *self,
|
|
struct perf_session *pair_session,
|
|
bool show_displacement,
|
|
long displacement, FILE *fp,
|
|
u64 session_total);
|
|
int hist_entry__snprintf(struct hist_entry *self,
|
|
char *bf, size_t size,
|
|
struct perf_session *pair_session,
|
|
bool show_displacement, long displacement,
|
|
bool color, u64 session_total);
|
|
void hist_entry__free(struct hist_entry *);
|
|
|
|
u64 perf_session__output_resort(struct rb_root *hists, u64 total_samples);
|
|
void perf_session__collapse_resort(struct rb_root *hists);
|
|
size_t perf_session__fprintf_hists(struct rb_root *hists,
|
|
struct perf_session *pair,
|
|
bool show_displacement, FILE *fp,
|
|
u64 session_total);
|
|
#endif /* __PERF_HIST_H */
|