brintos

brintos / linux-shallow public Read only

0
0
Text · 3.1 KiB · a212497 Raw
85 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef PERF_BUILD_ID_H_3#define PERF_BUILD_ID_H_ 14 5#define BUILD_ID_SIZE	20 /* SHA-1 length in bytes */6#define BUILD_ID_MIN_SIZE	16 /* MD5/UUID/GUID length in bytes */7#define SBUILD_ID_SIZE	(BUILD_ID_SIZE * 2 + 1)8#define SBUILD_ID_MIN_SIZE	(BUILD_ID_MIN_SIZE * 2 + 1)9 10#include "machine.h"11#include "tool.h"12#include <linux/types.h>13 14struct build_id {15	u8	data[BUILD_ID_SIZE];16	size_t	size;17};18 19struct dso;20struct feat_fd;21struct nsinfo;22 23void build_id__init(struct build_id *bid, const u8 *data, size_t size);24int build_id__sprintf(const struct build_id *build_id, char *bf);25bool build_id__is_defined(const struct build_id *bid);26int sysfs__sprintf_build_id(const char *root_dir, char *sbuild_id);27int filename__sprintf_build_id(const char *pathname, char *sbuild_id);28char *build_id_cache__kallsyms_path(const char *sbuild_id, char *bf,29				    size_t size);30 31char *dso__build_id_filename(const struct dso *dso, char *bf, size_t size,32			     bool is_debug);33char *__dso__build_id_filename(const struct dso *dso, char *bf, size_t size,34			       bool is_debug, bool is_kallsyms);35 36int build_id__mark_dso_hit(const struct perf_tool *tool, union perf_event *event,37			   struct perf_sample *sample, struct evsel *evsel,38			   struct machine *machine);39 40int perf_event__inject_buildid(const struct perf_tool *tool, union perf_event *event,41			       struct perf_sample *sample, struct evsel *evsel,42			       struct machine *machine);43 44bool perf_session__read_build_ids(struct perf_session *session, bool with_hits);45int perf_session__write_buildid_table(struct perf_session *session,46				      struct feat_fd *fd);47int perf_session__cache_build_ids(struct perf_session *session);48int __perf_session__cache_build_ids(struct perf_session *session,49				    machine__dso_t fn, void *priv);50 51char *build_id_cache__origname(const char *sbuild_id);52char *build_id_cache__linkname(const char *sbuild_id, char *bf, size_t size);53char *build_id_cache__cachedir(const char *sbuild_id, const char *name,54			       struct nsinfo *nsi, bool is_kallsyms,55			       bool is_vdso);56 57struct strlist;58 59struct strlist *build_id_cache__list_all(bool validonly);60char *build_id_cache__complement(const char *incomplete_sbuild_id);61int build_id_cache__list_build_ids(const char *pathname, struct nsinfo *nsi,62				   struct strlist **result);63bool build_id_cache__cached(const char *sbuild_id);64int build_id_cache__add(const char *sbuild_id, const char *name, const char *realname,65			struct nsinfo *nsi, bool is_kallsyms, bool is_vdso,66			const char *proper_name, const char *root_dir);67int __build_id_cache__add_s(const char *sbuild_id,68			    const char *name, struct nsinfo *nsi,69			    bool is_kallsyms, bool is_vdso,70			    const char *proper_name, const char *root_dir);71static inline int build_id_cache__add_s(const char *sbuild_id,72					const char *name, struct nsinfo *nsi,73					bool is_kallsyms, bool is_vdso)74{75	return __build_id_cache__add_s(sbuild_id, name, nsi, is_kallsyms, is_vdso, NULL, NULL);76}77int build_id_cache__remove_s(const char *sbuild_id);78 79extern char buildid_dir[];80 81void set_buildid_dir(const char *dir);82void disable_buildid_cache(void);83 84#endif85