root/tools/perf/util/srcline.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef PERF_SRCLINE_H
   3 #define PERF_SRCLINE_H
   4 
   5 #include <linux/list.h>
   6 #include <linux/rbtree.h>
   7 #include <linux/types.h>
   8 
   9 struct dso;
  10 struct symbol;
  11 
  12 extern bool srcline_full_filename;
  13 char *get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
  14                   bool show_sym, bool show_addr, u64 ip);
  15 char *__get_srcline(struct dso *dso, u64 addr, struct symbol *sym,
  16                   bool show_sym, bool show_addr, bool unwind_inlines,
  17                   u64 ip);
  18 void free_srcline(char *srcline);
  19 char *get_srcline_split(struct dso *dso, u64 addr, unsigned *line);
  20 
  21 /* insert the srcline into the DSO, which will take ownership */
  22 void srcline__tree_insert(struct rb_root_cached *tree, u64 addr, char *srcline);
  23 /* find previously inserted srcline */
  24 char *srcline__tree_find(struct rb_root_cached *tree, u64 addr);
  25 /* delete all srclines within the tree */
  26 void srcline__tree_delete(struct rb_root_cached *tree);
  27 
  28 #define SRCLINE_UNKNOWN  ((char *) "??:0")
  29 
  30 struct inline_list {
  31         struct symbol           *symbol;
  32         char                    *srcline;
  33         struct list_head        list;
  34 };
  35 
  36 struct inline_node {
  37         u64                     addr;
  38         struct list_head        val;
  39         struct rb_node          rb_node;
  40 };
  41 
  42 /* parse inlined frames for the given address */
  43 struct inline_node *dso__parse_addr_inlines(struct dso *dso, u64 addr,
  44                                             struct symbol *sym);
  45 /* free resources associated to the inline node list */
  46 void inline_node__delete(struct inline_node *node);
  47 
  48 /* insert the inline node list into the DSO, which will take ownership */
  49 void inlines__tree_insert(struct rb_root_cached *tree,
  50                           struct inline_node *inlines);
  51 /* find previously inserted inline node list */
  52 struct inline_node *inlines__tree_find(struct rb_root_cached *tree, u64 addr);
  53 /* delete all nodes within the tree of inline_node s */
  54 void inlines__tree_delete(struct rb_root_cached *tree);
  55 
  56 #endif /* PERF_SRCLINE_H */

/* [<][>][^][v][top][bottom][index][help] */