dso_id
const struct dso_id *id, struct machine *machine)
const struct dso_id *dso_id,
dso = findnew_dso(pid, tid, filename, dso_id, machine);
dso = findnew_dso(pid, tid, filename, dso_id, machine);
dso = findnew_dso(pid, tid, filename, dso_id, machine);
struct dso_id id = dso_id_empty;
const struct dso_id *dso_id = dso__id_const(dso);
if (dso_id->mmap2_valid)
snprintf(buf, sizeof(buf), "%" PRIu64, dso_id->ino);
build_id__snprintf(&dso_id->build_id, buf, sizeof(buf));
static int __dso_id__cmp(const struct dso_id *a, const struct dso_id *b)
const struct dso_id dso_id_empty = {
void __dso__improve_id(struct dso *dso, const struct dso_id *id)
struct dso_id *dso_id = dso__id(dso);
if (id->mmap2_valid && !dso_id->mmap2_valid) {
dso_id->maj = id->maj;
dso_id->min = id->min;
dso_id->ino = id->ino;
dso_id->mmap2_valid = true;
if (id->mmap2_ino_generation_valid && !dso_id->mmap2_ino_generation_valid) {
dso_id->ino_generation = id->ino_generation;
dso_id->mmap2_ino_generation_valid = true;
if (build_id__is_defined(&id->build_id) && !build_id__is_defined(&dso_id->build_id)) {
dso_id->build_id = id->build_id;
int dso_id__cmp(const struct dso_id *a, const struct dso_id *b)
struct dso *dso__new_id(const char *name, const struct dso_id *id)
struct dso_id id;
extern const struct dso_id dso_id_empty;
int dso_id__cmp(const struct dso_id *a, const struct dso_id *b);
static inline struct dso_id *dso__id(struct dso *dso)
static inline const struct dso_id *dso__id_const(const struct dso *dso)
struct dso *dso__new_id(const char *name, const struct dso_id *id);
void __dso__improve_id(struct dso *dso, const struct dso_id *id);
static int __dso__cmp_long_name(const char *long_name, const struct dso_id *id,
static int __dso__cmp_short_name(const char *short_name, const struct dso_id *id,
const struct dso_id *id;
const struct dso_id *id,
const struct dso_id *id;
static struct dso *__dsos__find_id(struct dsos *dsos, const char *name, const struct dso_id *id,
static struct dso *__dsos__addnew_id(struct dsos *dsos, const char *name, const struct dso_id *id)
static struct dso *__dsos__findnew_id(struct dsos *dsos, const char *name, const struct dso_id *id)
struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, const struct dso_id *id)
struct dso_id;
struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, const struct dso_id *id);
struct dso_id dso_id = {
struct dso *dso = machine__findnew_dso_id(jd->machine, filename, &dso_id);
struct dso_id dso_id = dso_id_empty;
build_id__init(&dso_id.build_id, event->mmap2.build_id, event->mmap2.build_id_size);
dso_id.maj = event->mmap2.maj;
dso_id.min = event->mmap2.min;
dso_id.ino = event->mmap2.ino;
dso_id.ino_generation = event->mmap2.ino_generation;
dso_id.mmap2_valid = true;
dso_id.mmap2_ino_generation_valid = true;
ret = machine__process_kernel_mmap_event(machine, &xm, &dso_id.build_id);
&dso_id, event->mmap2.prot,
const struct dso_id *id)
struct dso_id;
const struct dso_id *id);
u64 pgoff, const struct dso_id *id,
struct dso_id;
u64 pgoff, const struct dso_id *id, u32 prot, u32 flags,
const struct dso_id *dso_id = dso__id_const(l_dso);
if (!dso_id->mmap2_valid)
dso_id = dso__id_const(r_dso);
if (!build_id__is_defined(&dso_id->build_id) &&
(!dso_id->mmap2_valid || (dso_id->maj == 0 && dso_id->min == 0))) {
const struct dso_id *dso_id = dso ? dso__id_const(dso) : &dso_id_empty;
(!dso_id->mmap2_valid || (dso_id->maj == 0 && dso_id->min == 0)))
struct dso_id dso_id = dso_id_empty;
build_id__init(&dso_id.build_id, event->build_id, event->build_id_size);
dso_id.maj = event->maj;
dso_id.min = event->min;
dso_id.ino = event->ino;
dso_id.ino_generation = event->ino_generation;
dso_id.mmap2_valid = true;
dso_id.mmap2_ino_generation_valid = true;
dso = dsos__findnew_id(&machine->dsos, event->filename, &dso_id);