Lines Matching refs:dso

30 		struct dso *dso = dsos->dsos[i];  in dsos__purge()  local
32 dso__set_dsos(dso, NULL); in dsos__purge()
33 dso__put(dso); in dsos__purge()
52 int (*cb)(struct dso *dso, void *data), in __dsos__for_each_dso() argument
56 struct dso *dso = dsos->dsos[i]; in __dsos__for_each_dso() local
59 err = cb(dso, data); in __dsos__for_each_dso()
71 static int dsos__read_build_ids_cb(struct dso *dso, void *data) in dsos__read_build_ids_cb() argument
77 if (args->with_hits && !dso__hit(dso) && !dso__is_vdso(dso)) in dsos__read_build_ids_cb()
79 if (dso__has_build_id(dso)) { in dsos__read_build_ids_cb()
83 nsinfo__mountns_enter(dso__nsinfo(dso), &nsc); in dsos__read_build_ids_cb()
84 if (filename__read_build_id(dso__long_name(dso), &bid) > 0) { in dsos__read_build_ids_cb()
85 dso__set_build_id(dso, &bid); in dsos__read_build_ids_cb()
87 } else if (errno == ENOENT && dso__nsinfo(dso)) { in dsos__read_build_ids_cb()
88 char *new_name = dso__filename_with_chroot(dso, dso__long_name(dso)); in dsos__read_build_ids_cb()
91 dso__set_build_id(dso, &bid); in dsos__read_build_ids_cb()
112 const struct dso *b) in __dso__cmp_long_name()
119 const struct dso *b) in __dso__cmp_short_name()
127 const struct dso *a = *((const struct dso **)va); in dsos__cmp_long_name_id_short_name()
128 const struct dso *b = *((const struct dso **)vb); in dsos__cmp_long_name_id_short_name()
147 const struct dso *dso = *((const struct dso **)vdso); in dsos__cmp_key_long_name_id() local
149 return __dso__cmp_long_name(key->long_name, key->id, dso); in dsos__cmp_key_long_name_id()
157 static struct dso *__dsos__find_by_longname_id(struct dsos *dsos, in __dsos__find_by_longname_id()
167 struct dso **res; in __dsos__find_by_longname_id()
174 struct dso *dso; in __dsos__find_by_longname_id() local
178 dso = __dsos__find_by_longname_id(dsos, name, id, in __dsos__find_by_longname_id()
182 return dso; in __dsos__find_by_longname_id()
184 qsort(dsos->dsos, dsos->cnt, sizeof(struct dso *), in __dsos__find_by_longname_id()
189 res = bsearch(&key, dsos->dsos, dsos->cnt, sizeof(struct dso *), in __dsos__find_by_longname_id()
197 int __dsos__add(struct dsos *dsos, struct dso *dso) in __dsos__add() argument
201 struct dso **temp; in __dsos__add()
205 temp = realloc(dsos->dsos, sizeof(struct dso *) * to_allocate); in __dsos__add()
212 dsos->dsos[dsos->cnt++] = dso__get(dso); in __dsos__add()
219 int cmp = dsos__cmp_long_name_id_short_name(&dsos->dsos[mid], &dso); in __dsos__add()
229 (dsos->cnt - insert) * sizeof(struct dso *)); in __dsos__add()
231 dsos->dsos[insert] = dso__get(dso); in __dsos__add()
233 dso__set_dsos(dso, dsos); in __dsos__add()
237 int dsos__add(struct dsos *dsos, struct dso *dso) in dsos__add() argument
242 ret = __dsos__add(dsos, dso); in dsos__add()
250 struct dso *res;
253 static int dsos__find_id_cb(struct dso *dso, void *data) in dsos__find_id_cb() argument
257 if (__dso__cmp_short_name(args->name, args->id, dso) == 0) { in dsos__find_id_cb()
258 args->res = dso__get(dso); in dsos__find_id_cb()
265 static struct dso *__dsos__find_id(struct dsos *dsos, const char *name, const struct dso_id *id, in __dsos__find_id()
269 struct dso *res; in __dsos__find_id()
285 struct dso *dsos__find(struct dsos *dsos, const char *name, bool cmp_short) in dsos__find()
287 struct dso *res; in dsos__find()
295 static void dso__set_basename(struct dso *dso) in dso__set_basename() argument
300 if (perf_pid_map_tid(dso__long_name(dso), &tid)) { in dso__set_basename()
308 lname = strdup(dso__long_name(dso)); in dso__set_basename()
324 dso__set_short_name(dso, base, true); in dso__set_basename()
327 static struct dso *__dsos__addnew_id(struct dsos *dsos, const char *name, const struct dso_id *id) in __dsos__addnew_id()
329 struct dso *dso = dso__new_id(name, id); in __dsos__addnew_id() local
331 if (dso != NULL) { in __dsos__addnew_id()
337 dso__set_basename(dso); in __dsos__addnew_id()
338 __dsos__add(dsos, dso); in __dsos__addnew_id()
340 return dso; in __dsos__addnew_id()
343 static struct dso *__dsos__findnew_id(struct dsos *dsos, const char *name, const struct dso_id *id) in __dsos__findnew_id()
346 struct dso *dso = __dsos__find_id(dsos, name, id, false, /*write_locked=*/true); in __dsos__findnew_id() local
348 if (dso) in __dsos__findnew_id()
349 __dso__improve_id(dso, id); in __dsos__findnew_id()
351 return dso ? dso : __dsos__addnew_id(dsos, name, id); in __dsos__findnew_id()
354 struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, const struct dso_id *id) in dsos__findnew_id()
356 struct dso *dso; in dsos__findnew_id() local
358 dso = __dsos__findnew_id(dsos, name, id); in dsos__findnew_id()
360 return dso; in dsos__findnew_id()
365 bool (*skip)(struct dso *dso, int parm);
370 static int dsos__fprintf_buildid_cb(struct dso *dso, void *data) in dsos__fprintf_buildid_cb() argument
375 if (args->skip && args->skip(dso, args->parm)) in dsos__fprintf_buildid_cb()
377 build_id__snprintf(dso__bid(dso), sbuild_id, sizeof(sbuild_id)); in dsos__fprintf_buildid_cb()
378 args->ret += fprintf(args->fp, "%-40s %s\n", sbuild_id, dso__long_name(dso)); in dsos__fprintf_buildid_cb()
383 bool (*skip)(struct dso *dso, int parm), int parm) in dsos__fprintf_buildid() argument
401 static int dsos__fprintf_cb(struct dso *dso, void *data) in dsos__fprintf_cb() argument
405 args->ret += dso__fprintf(dso, args->fp); in dsos__fprintf_cb()
420 static int dsos__hit_all_cb(struct dso *dso, void *data __maybe_unused) in dsos__hit_all_cb() argument
422 dso__set_hit(dso); in dsos__hit_all_cb()
431 struct dso *dsos__findnew_module_dso(struct dsos *dsos, in dsos__findnew_module_dso()
436 struct dso *dso; in dsos__findnew_module_dso() local
440 dso = __dsos__find_id(dsos, m->name, &dso_id_empty, /*cmp_short=*/true, in dsos__findnew_module_dso()
442 if (dso) { in dsos__findnew_module_dso()
444 return dso; in dsos__findnew_module_dso()
451 dso = dso__new_id(m->name, /*id=*/NULL); in dsos__findnew_module_dso()
452 if (!dso) { in dsos__findnew_module_dso()
456 dso__set_basename(dso); in dsos__findnew_module_dso()
457 dso__set_module_info(dso, m, machine); in dsos__findnew_module_dso()
458 dso__set_long_name(dso, strdup(filename), true); in dsos__findnew_module_dso()
459 dso__set_kernel(dso, DSO_SPACE__KERNEL); in dsos__findnew_module_dso()
460 __dsos__add(dsos, dso); in dsos__findnew_module_dso()
463 return dso; in dsos__findnew_module_dso()
466 static int dsos__find_kernel_dso_cb(struct dso *dso, void *data) in dsos__find_kernel_dso_cb() argument
468 struct dso **res = data; in dsos__find_kernel_dso_cb()
482 if (!dso__kernel(dso) || in dsos__find_kernel_dso_cb()
483 is_kernel_module(dso__long_name(dso), PERF_RECORD_MISC_CPUMODE_UNKNOWN)) in dsos__find_kernel_dso_cb()
486 *res = dso__get(dso); in dsos__find_kernel_dso_cb()
490 struct dso *dsos__find_kernel_dso(struct dsos *dsos) in dsos__find_kernel_dso()
492 struct dso *res = NULL; in dsos__find_kernel_dso()
498 int dsos__for_each_dso(struct dsos *dsos, int (*cb)(struct dso *dso, void *data), void *data) in dsos__for_each_dso() argument