Lines Matching refs:id
105 int id; member
181 struct btf_id *id; in btf_id__find() local
185 id = rb_entry(p, struct btf_id, rb_node); in btf_id__find()
186 cmp = strcmp(id->name, name); in btf_id__find()
192 return id; in btf_id__find()
202 struct btf_id *id; in btf_id__add() local
207 id = rb_entry(parent, struct btf_id, rb_node); in btf_id__add()
208 cmp = strcmp(id->name, name); in btf_id__add()
214 return unique ? NULL : id; in btf_id__add()
217 id = zalloc(sizeof(*id)); in btf_id__add()
218 if (id) { in btf_id__add()
220 id->name = name; in btf_id__add()
221 rb_link_node(&id->rb_node, parent, p); in btf_id__add()
222 rb_insert_color(&id->rb_node, root); in btf_id__add()
224 return id; in btf_id__add()
236 char *p, *id; in get_id() local
241 id = strdup(prefix_end + pos); in get_id()
242 if (id) { in get_id()
249 p = strrchr(id, '_'); in get_id()
252 free(id); in get_id()
257 return id; in get_id()
267 char *id = name + (is_set8 ? sizeof(BTF_SET8 "__") : sizeof(BTF_SET "__")) - 1; in add_set() local
270 if (id >= name + len) { in add_set()
275 return btf_id__add(&obj->sets, id, true); in add_set()
280 char *id; in add_symbol() local
282 id = get_id(name + size); in add_symbol()
283 if (!id) { in add_symbol()
288 return btf_id__add(root, id, false); in add_symbol()
452 struct btf_id *id; in symbols_collect() local
476 id = add_symbol(&obj->structs, prefix, sizeof(BTF_STRUCT) - 1); in symbols_collect()
480 id = add_symbol(&obj->unions, prefix, sizeof(BTF_UNION) - 1); in symbols_collect()
484 id = add_symbol(&obj->typedefs, prefix, sizeof(BTF_TYPEDEF) - 1); in symbols_collect()
488 id = add_symbol(&obj->funcs, prefix, sizeof(BTF_FUNC) - 1); in symbols_collect()
491 id = add_set(obj, prefix, true); in symbols_collect()
497 if (id) { in symbols_collect()
498 id->cnt = sym.st_size / sizeof(uint64_t) - 1; in symbols_collect()
499 id->is_set8 = true; in symbols_collect()
503 id = add_set(obj, prefix, false); in symbols_collect()
509 if (id) { in symbols_collect()
510 id->cnt = sym.st_size / sizeof(int) - 1; in symbols_collect()
511 id->is_set = true; in symbols_collect()
518 if (!id) in symbols_collect()
521 if (id->addr_cnt >= ADDR_CNT) { in symbols_collect()
523 id->name); in symbols_collect()
526 id->addr[id->addr_cnt++] = sym.st_value; in symbols_collect()
570 struct btf_id *id; in symbols_resolve() local
603 id = btf_id__find(root, str); in symbols_resolve()
604 if (id) { in symbols_resolve()
605 if (id->id) { in symbols_resolve()
607 str, id->id, type_id, id->id); in symbols_resolve()
610 id->id = type_id; in symbols_resolve()
623 static int id_patch(struct object *obj, struct btf_id *id) in id_patch() argument
630 if (!id->id && !id->is_set && !id->is_set8) { in id_patch()
631 pr_err("WARN: resolve_btfids: unresolved symbol %s\n", id->name); in id_patch()
635 for (i = 0; i < id->addr_cnt; i++) { in id_patch()
636 unsigned long addr = id->addr[i]; in id_patch()
640 idx, id->id, id->name); in id_patch()
649 ptr[idx] = id->id; in id_patch()
658 struct btf_id *id; in __symbols_patch() local
662 id = rb_entry(next, struct btf_id, rb_node); in __symbols_patch()
664 if (id_patch(obj, id)) in __symbols_patch()
689 struct btf_id *id; in sets_patch() local
691 id = rb_entry(next, struct btf_id, rb_node); in sets_patch()
692 addr = id->addr[0]; in sets_patch()
696 if (id->addr_cnt != 1) { in sets_patch()
698 id->name); in sets_patch()
702 if (id->is_set) { in sets_patch()
711 BUILD_BUG_ON((u32 *)set8->pairs != &set8->pairs[0].id); in sets_patch()
734 off, id->is_set ? set->cnt : set8->cnt, id->name); in sets_patch()