diff options
Diffstat (limited to 'tools/perf/util/probe-finder.h')
-rw-r--r-- | tools/perf/util/probe-finder.h | 52 |
1 files changed, 24 insertions, 28 deletions
diff --git a/tools/perf/util/probe-finder.h b/tools/perf/util/probe-finder.h index b2a2524..9dd4a88 100644 --- a/tools/perf/util/probe-finder.h +++ b/tools/perf/util/probe-finder.h @@ -1,6 +1,7 @@ #ifndef _PROBE_FINDER_H #define _PROBE_FINDER_H +#include <stdbool.h> #include "util.h" #define MAX_PATH_LEN 256 @@ -46,53 +47,48 @@ struct line_range { char *function; /* Function name */ unsigned int start; /* Start line number */ unsigned int end; /* End line number */ - unsigned int offset; /* Start line offset */ + int offset; /* Start line offset */ char *path; /* Real path name */ struct list_head line_list; /* Visible lines */ }; -#ifndef NO_LIBDWARF +#ifndef NO_DWARF_SUPPORT extern int find_probe_point(int fd, struct probe_point *pp); extern int find_line_range(int fd, struct line_range *lr); -/* Workaround for undefined _MIPS_SZLONG bug in libdwarf.h: */ -#ifndef _MIPS_SZLONG -# define _MIPS_SZLONG 0 -#endif - #include <dwarf.h> -#include <libdwarf.h> +#include <libdw.h> struct probe_finder { - struct probe_point *pp; /* Target probe point */ + struct probe_point *pp; /* Target probe point */ /* For function searching */ - Dwarf_Addr addr; /* Address */ - Dwarf_Unsigned fno; /* File number */ - Dwarf_Unsigned lno; /* Line number */ - Dwarf_Off inl_offs; /* Inline offset */ - Dwarf_Die cu_die; /* Current CU */ + Dwarf_Addr addr; /* Address */ + const char *fname; /* File name */ + int lno; /* Line number */ + void *origin; /* Inline origin addr */ + Dwarf_Die cu_die; /* Current CU */ /* For variable searching */ - Dwarf_Addr cu_base; /* Current CU base address */ - Dwarf_Locdesc fbloc; /* Location of Current Frame Base */ - const char *var; /* Current variable name */ - char *buf; /* Current output buffer */ - int len; /* Length of output buffer */ + Dwarf_Op *fb_ops; /* Frame base attribute */ + Dwarf_Addr cu_base; /* Current CU base address */ + const char *var; /* Current variable name */ + char *buf; /* Current output buffer */ + int len; /* Length of output buffer */ }; struct line_finder { - struct line_range *lr; /* Target line range */ - - Dwarf_Unsigned fno; /* File number */ - Dwarf_Unsigned lno_s; /* Start line number */ - Dwarf_Unsigned lno_e; /* End line number */ - Dwarf_Addr addr_s; /* Start address */ - Dwarf_Addr addr_e; /* End address */ - Dwarf_Die cu_die; /* Current CU */ + struct line_range *lr; /* Target line range */ + + const char *fname; /* File name */ + int lno_s; /* Start line number */ + int lno_e; /* End line number */ + Dwarf_Addr addr_s; /* Start address */ + Dwarf_Addr addr_e; /* End address */ + Dwarf_Die cu_die; /* Current CU */ int found; }; -#endif /* NO_LIBDWARF */ +#endif /* NO_DWARF_SUPPORT */ #endif /*_PROBE_FINDER_H */ |