Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.5.6.
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2#ifndef _PERF_DEBUGINFO_H
 3#define _PERF_DEBUGINFO_H
 4
 5#include <errno.h>
 6#include <linux/compiler.h>
 7
 8#ifdef HAVE_LIBDW_SUPPORT
 9
10#include "dwarf-aux.h"
11
12/* debug information structure */
13struct debuginfo {
14	Dwarf		*dbg;
15	Dwfl_Module	*mod;
16	Dwfl		*dwfl;
17	Dwarf_Addr	bias;
18	const unsigned char	*build_id;
19};
20
21/* This also tries to open distro debuginfo */
22struct debuginfo *debuginfo__new(const char *path);
23void debuginfo__delete(struct debuginfo *dbg);
24
25int debuginfo__get_text_offset(struct debuginfo *dbg, Dwarf_Addr *offs,
26			       bool adjust_offset);
27
28#else /* HAVE_LIBDW_SUPPORT */
29
30/* dummy debug information structure */
31struct debuginfo {
32};
33
34static inline struct debuginfo *debuginfo__new(const char *path __maybe_unused)
35{
36	return NULL;
37}
38
39static inline void debuginfo__delete(struct debuginfo *dbg __maybe_unused)
40{
41}
42
43typedef void Dwarf_Addr;
44
45static inline int debuginfo__get_text_offset(struct debuginfo *dbg __maybe_unused,
46					     Dwarf_Addr *offs __maybe_unused,
47					     bool adjust_offset __maybe_unused)
48{
49	return -EINVAL;
50}
51
52#endif /* HAVE_LIBDW_SUPPORT */
53
54#ifdef HAVE_DEBUGINFOD_SUPPORT
55int get_source_from_debuginfod(const char *raw_path, const char *sbuild_id,
56			       char **new_path);
57#else /* HAVE_DEBUGINFOD_SUPPORT */
58static inline int get_source_from_debuginfod(const char *raw_path __maybe_unused,
59					     const char *sbuild_id __maybe_unused,
60					     char **new_path __maybe_unused)
61{
62	return -ENOTSUP;
63}
64#endif /* HAVE_DEBUGINFOD_SUPPORT */
65
66#endif /* _PERF_DEBUGINFO_H */