Lines Matching refs:id

43 static bool dso_id__empty(struct dso_id *id)
45 if (!id)
48 return !id->maj && !id->min && !id->ino && !id->ino_generation;
51 static void dso__inject_id(struct dso *dso, struct dso_id *id)
53 dso->id.maj = id->maj;
54 dso->id.min = id->min;
55 dso->id.ino = id->ino;
56 dso->id.ino_generation = id->ino_generation;
62 * The second is always dso->id, so zeroes if not set, assume passing
63 * NULL for a means a zeroed id
73 return __dso_id__cmp(&a->id, &b->id);
109 static int __dso__cmp_long_name(const char *long_name, struct dso_id *id, struct dso *b)
112 return rc ?: dso_id__cmp(id, &b->id);
115 static int __dso__cmp_short_name(const char *short_name, struct dso_id *id, struct dso *b)
118 return rc ?: dso_id__cmp(id, &b->id);
123 return __dso__cmp_short_name(a->short_name, &a->id, b);
132 const char *name, struct dso_id *id)
144 int rc = __dso__cmp_long_name(name, id, this);
183 __dsos__findnew_link_by_longname_id(&dsos->root, dso, NULL, &dso->id);
214 static struct dso *__dsos__findnew_by_longname_id(struct rb_root *root, const char *name, struct dso_id *id)
216 return __dsos__findnew_link_by_longname_id(root, NULL, name, id);
219 static struct dso *__dsos__find_id(struct dsos *dsos, const char *name, struct dso_id *id, bool cmp_short)
225 if (__dso__cmp_short_name(name, id, pos) == 0)
229 return __dsos__findnew_by_longname_id(&dsos->root, name, id);
269 static struct dso *__dsos__addnew_id(struct dsos *dsos, const char *name, struct dso_id *id)
271 struct dso *dso = dso__new_id(name, id);
287 static struct dso *__dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id *id)
289 struct dso *dso = __dsos__find_id(dsos, name, id, false);
291 if (dso && dso_id__empty(&dso->id) && !dso_id__empty(id))
292 dso__inject_id(dso, id);
294 return dso ? dso : __dsos__addnew_id(dsos, name, id);
297 struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id *id)
301 dso = dso__get(__dsos__findnew_id(dsos, name, id));