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