perf hists: Use own hpp_list for hierarchy mode
[deliverable/linux.git] / tools / perf / util / hist.h
index 722aa447f705504ceabdcc02e9d69153c61ff1db..2209188d729c83295045eac8f0233b6a8bcd14b1 100644 (file)
@@ -78,6 +78,8 @@ struct hists {
        u16                     col_len[HISTC_NR_COLS];
        int                     socket_filter;
        struct perf_hpp_list    *hpp_list;
+       struct list_head        hpp_formats;
+       int                     nr_sort_keys;
 };
 
 struct hist_entry_iter;
@@ -232,6 +234,7 @@ struct perf_hpp_fmt {
        int len;
        int user_len;
        int idx;
+       int level;
 };
 
 struct perf_hpp_list {
@@ -242,6 +245,13 @@ struct perf_hpp_list {
 
 extern struct perf_hpp_list perf_hpp_list;
 
+struct perf_hpp_list_node {
+       struct list_head        list;
+       struct perf_hpp_list    hpp;
+       int                     level;
+       bool                    skip;
+};
+
 void perf_hpp_list__column_register(struct perf_hpp_list *list,
                                    struct perf_hpp_fmt *format);
 void perf_hpp_list__register_sort_field(struct perf_hpp_list *list,
@@ -297,6 +307,8 @@ void perf_hpp__cancel_cumulate(void);
 void perf_hpp__setup_output_field(struct perf_hpp_list *list);
 void perf_hpp__reset_output_field(struct perf_hpp_list *list);
 void perf_hpp__append_sort_keys(struct perf_hpp_list *list);
+int perf_hpp__setup_hists_formats(struct perf_hpp_list *list,
+                                 struct perf_evlist *evlist);
 
 
 bool perf_hpp__is_sort_entry(struct perf_hpp_fmt *format);
@@ -306,6 +318,8 @@ bool perf_hpp__is_trace_entry(struct perf_hpp_fmt *fmt);
 bool perf_hpp__is_srcline_entry(struct perf_hpp_fmt *fmt);
 bool perf_hpp__is_srcfile_entry(struct perf_hpp_fmt *fmt);
 
+struct perf_hpp_fmt *perf_hpp_fmt__dup(struct perf_hpp_fmt *fmt);
+
 int hist_entry__filter(struct hist_entry *he, int type, const void *arg);
 
 static inline bool perf_hpp__should_skip(struct perf_hpp_fmt *format,
@@ -410,6 +424,7 @@ static inline int script_browse(const char *script_opt __maybe_unused)
 #endif
 
 unsigned int hists__sort_list_width(struct hists *hists);
+unsigned int hists__overhead_width(struct hists *hists);
 
 void hist__account_cycles(struct branch_stack *bs, struct addr_location *al,
                          struct perf_sample *sample, bool nonany_branch_mode);
@@ -439,4 +454,6 @@ static inline struct rb_node *rb_hierarchy_next(struct rb_node *node)
 
 #define HIERARCHY_INDENT  3
 
+bool hist_entry__has_hierarchy_children(struct hist_entry *he, float limit);
+
 #endif /* __PERF_HIST_H */
This page took 0.026223 seconds and 5 git commands to generate.