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