Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef __PERF_SYMSRC_
 3#define __PERF_SYMSRC_ 1
 4
 5#include <stdbool.h>
 6#include <stddef.h>
 7#include "dso.h"
 8
 9#ifdef HAVE_LIBELF_SUPPORT
10#include <libelf.h>
11#include <gelf.h>
12#endif
13#include <elf.h>
14
15struct symsrc {
16	char		     *name;
17	int		     fd;
18	enum dso_binary_type type;
19
20#ifdef HAVE_LIBELF_SUPPORT
21	Elf		     *elf;
22	GElf_Ehdr	     ehdr;
23
24	Elf_Scn		     *opdsec;
25	size_t		     opdidx;
26	GElf_Shdr	     opdshdr;
27
28	Elf_Scn		     *symtab;
29	size_t		     symtab_idx;
30	GElf_Shdr	     symshdr;
31
32	Elf_Scn		     *dynsym;
33	size_t		     dynsym_idx;
34	GElf_Shdr	     dynshdr;
35
36	bool		     adjust_symbols;
37	bool		     is_64_bit;
38#endif
39};
40
41int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, enum dso_binary_type type);
42void symsrc__destroy(struct symsrc *ss);
43
44bool symsrc__has_symtab(struct symsrc *ss);
45bool symsrc__possibly_runtime(struct symsrc *ss);
46
47#endif /* __PERF_SYMSRC_ */