Lines Matching refs:dso
51 static void dso__inject_id(struct dso *dso, struct dso_id *id) in dso__inject_id() argument
53 dso->id.maj = id->maj; in dso__inject_id()
54 dso->id.min = id->min; in dso__inject_id()
55 dso->id.ino = id->ino; in dso__inject_id()
56 dso->id.ino_generation = id->ino_generation; in dso__inject_id()
71 int dso__cmp_id(struct dso *a, struct dso *b) in dso__cmp_id()
79 struct dso *pos; in __dsos__read_build_ids()
110 static int __dso__cmp_long_name(const char *long_name, struct dso_id *id, struct dso *b) in __dso__cmp_long_name()
116 static int __dso__cmp_short_name(const char *short_name, struct dso_id *id, struct dso *b) in __dso__cmp_short_name()
122 static int dso__cmp_short_name(struct dso *a, struct dso *b) in dso__cmp_short_name()
132 struct dso *__dsos__findnew_link_by_longname_id(struct rb_root *root, struct dso *dso, in __dsos__findnew_link_by_longname_id() argument
139 name = dso->long_name; in __dsos__findnew_link_by_longname_id()
144 struct dso *this = rb_entry(*p, struct dso, rb_node); in __dsos__findnew_link_by_longname_id()
154 if (!dso || (dso == this)) in __dsos__findnew_link_by_longname_id()
161 rc = dso__cmp_short_name(dso, this); in __dsos__findnew_link_by_longname_id()
172 if (dso) { in __dsos__findnew_link_by_longname_id()
174 rb_link_node(&dso->rb_node, parent, p); in __dsos__findnew_link_by_longname_id()
175 rb_insert_color(&dso->rb_node, root); in __dsos__findnew_link_by_longname_id()
176 dso->root = root; in __dsos__findnew_link_by_longname_id()
181 void __dsos__add(struct dsos *dsos, struct dso *dso) in __dsos__add() argument
183 list_add_tail(&dso->node, &dsos->head); in __dsos__add()
184 __dsos__findnew_link_by_longname_id(&dsos->root, dso, NULL, &dso->id); in __dsos__add()
205 dso__get(dso); in __dsos__add()
208 void dsos__add(struct dsos *dsos, struct dso *dso) in dsos__add() argument
211 __dsos__add(dsos, dso); in dsos__add()
215 static struct dso *__dsos__findnew_by_longname_id(struct rb_root *root, const char *name, struct ds… in __dsos__findnew_by_longname_id()
220 static struct dso *__dsos__find_id(struct dsos *dsos, const char *name, struct dso_id *id, bool cmp… in __dsos__find_id()
222 struct dso *pos; in __dsos__find_id()
233 struct dso *__dsos__find(struct dsos *dsos, const char *name, bool cmp_short) in __dsos__find()
238 static void dso__set_basename(struct dso *dso) in dso__set_basename() argument
243 if (sscanf(dso->long_name, "/tmp/perf-%d.map", &tid) == 1) { in dso__set_basename()
251 lname = strdup(dso->long_name); in dso__set_basename()
267 dso__set_short_name(dso, base, true); in dso__set_basename()
270 static struct dso *__dsos__addnew_id(struct dsos *dsos, const char *name, struct dso_id *id) in __dsos__addnew_id()
272 struct dso *dso = dso__new_id(name, id); in __dsos__addnew_id() local
274 if (dso != NULL) { in __dsos__addnew_id()
275 __dsos__add(dsos, dso); in __dsos__addnew_id()
276 dso__set_basename(dso); in __dsos__addnew_id()
278 dso__put(dso); in __dsos__addnew_id()
280 return dso; in __dsos__addnew_id()
283 struct dso *__dsos__addnew(struct dsos *dsos, const char *name) in __dsos__addnew()
288 static struct dso *__dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id *id) in __dsos__findnew_id()
290 struct dso *dso = __dsos__find_id(dsos, name, id, false); in __dsos__findnew_id() local
292 if (dso && dso_id__empty(&dso->id) && !dso_id__empty(id)) in __dsos__findnew_id()
293 dso__inject_id(dso, id); in __dsos__findnew_id()
295 return dso ? dso : __dsos__addnew_id(dsos, name, id); in __dsos__findnew_id()
298 struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id *id) in dsos__findnew_id()
300 struct dso *dso; in dsos__findnew_id() local
302 dso = dso__get(__dsos__findnew_id(dsos, name, id)); in dsos__findnew_id()
304 return dso; in dsos__findnew_id()
308 bool (skip)(struct dso *dso, int parm), int parm) in __dsos__fprintf_buildid() argument
310 struct dso *pos; in __dsos__fprintf_buildid()
326 struct dso *pos; in __dsos__fprintf()