forked from Minki/linux
perf symbols: Move symsrc prototypes to a separate header
So that we can remove dso.h from symbol.h and reduce the header dependency tree. Fixup cases where struct dso guts are needed but were obtained via symbol.h, indirectly. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-ip683cegt306ncu3gsz7ii21@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c38fa94d18
commit
b1d1b094f7
@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
#include "debug.h"
|
||||
#include "dso.h"
|
||||
#include "symbol.h"
|
||||
#include "map.h"
|
||||
#include "probe-event.h"
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include "builtin.h"
|
||||
#include "namespaces.h"
|
||||
#include "util/build-id.h"
|
||||
#include "util/strlist.h"
|
||||
#include "util/strfilter.h"
|
||||
#include "util/symbol.h"
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "../../util/util.h"
|
||||
#include "../../util/debug.h"
|
||||
#include "../../util/map.h"
|
||||
#include "../../util/dso.h"
|
||||
#include "../../util/symbol.h"
|
||||
#include "../browser.h"
|
||||
#include "../helpline.h"
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "util/annotate.h"
|
||||
#include "util/evsel.h"
|
||||
#include "util/map.h"
|
||||
#include "util/dso.h"
|
||||
#include "util/symbol.h"
|
||||
#include "ui/helpline.h"
|
||||
#include <inttypes.h>
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "map.h"
|
||||
#include "map_groups.h"
|
||||
#include "symbol.h"
|
||||
#include "symsrc.h"
|
||||
#include "demangle-java.h"
|
||||
#include "demangle-rust.h"
|
||||
#include "machine.h"
|
||||
|
@ -1,5 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
#include "dso.h"
|
||||
#include "symbol.h"
|
||||
#include "symsrc.h"
|
||||
#include "util.h"
|
||||
|
||||
#include <errno.h>
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "machine.h"
|
||||
#include "map.h"
|
||||
#include "symbol.h"
|
||||
#include "symsrc.h"
|
||||
#include "strlist.h"
|
||||
#include "intlist.h"
|
||||
#include "namespaces.h"
|
||||
|
@ -20,8 +20,7 @@
|
||||
#endif
|
||||
#include <elf.h>
|
||||
|
||||
#include "dso.h"
|
||||
|
||||
struct dso;
|
||||
struct map;
|
||||
struct map_groups;
|
||||
struct option;
|
||||
@ -148,37 +147,6 @@ struct addr_location {
|
||||
s32 socket;
|
||||
};
|
||||
|
||||
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
|
||||
};
|
||||
|
||||
void symsrc__destroy(struct symsrc *ss);
|
||||
int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
|
||||
enum dso_binary_type type);
|
||||
bool symsrc__has_symtab(struct symsrc *ss);
|
||||
bool symsrc__possibly_runtime(struct symsrc *ss);
|
||||
|
||||
int dso__load(struct dso *dso, struct map *map);
|
||||
int dso__load_vmlinux(struct dso *dso, struct map *map,
|
||||
const char *vmlinux, bool vmlinux_allocated);
|
||||
@ -232,6 +200,8 @@ bool symbol__restricted_filename(const char *filename,
|
||||
int symbol__config_symfs(const struct option *opt __maybe_unused,
|
||||
const char *dir, int unset __maybe_unused);
|
||||
|
||||
struct symsrc;
|
||||
|
||||
int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
|
||||
struct symsrc *runtime_ss, int kmodule);
|
||||
int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss);
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "dso.h"
|
||||
#include "map.h"
|
||||
#include "symbol.h"
|
||||
|
||||
|
46
tools/perf/util/symsrc.h
Normal file
46
tools/perf/util/symsrc.h
Normal file
@ -0,0 +1,46 @@
|
||||
/* 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_ */
|
Loading…
Reference in New Issue
Block a user