12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #ifndef __PERF_SYMSRC_
- #define __PERF_SYMSRC_ 1
- #include <stdbool.h>
- #include <stddef.h>
- #include "dso.h"
- #ifdef HAVE_LIBELF_SUPPORT
- #include <libelf.h>
- #include <gelf.h>
- #endif
- #include <elf.h>
- struct symsrc {
- char *name;
- int fd;
- enum dso_binary_type type;
- #ifdef HAVE_LIBELF_SUPPORT
- Elf *elf;
- GElf_Ehdr ehdr;
- Elf_Scn *opdsec;
- size_t opdidx;
- GElf_Shdr opdshdr;
- Elf_Scn *symtab;
- GElf_Shdr symshdr;
- Elf_Scn *dynsym;
- size_t dynsym_idx;
- GElf_Shdr dynshdr;
- bool adjust_symbols;
- bool is_64_bit;
- #endif
- };
- int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, enum dso_binary_type type);
- void symsrc__destroy(struct symsrc *ss);
- bool symsrc__has_symtab(struct symsrc *ss);
- bool symsrc__possibly_runtime(struct symsrc *ss);
- #endif /* __PERF_SYMSRC_ */
|