Lines Matching refs:btf

58 	struct btf *btf;  member
147 struct btf *btf; member
197 btf__free(linker->btf); in bpf_linker__free()
420 linker->btf = btf__new_empty(); in init_output_elf()
421 err = libbpf_get_error(linker->btf); in init_output_elf()
461 btf__free(obj.btf); in bpf_linker__add_file()
656 obj->btf = btf__new(data->d_buf, shdr->sh_size); in linker_load_obj_file()
657 err = libbpf_get_error(obj->btf); in linker_load_obj_file()
917 struct btf *btf = ctx; in check_btf_type_id() local
919 if (*type_id >= btf__type_cnt(btf)) in check_btf_type_id()
927 struct btf *btf = ctx; in check_btf_str_off() local
930 s = btf__str_by_offset(btf, *str_off); in check_btf_str_off()
943 if (!obj->btf) in linker_sanity_check_btf()
946 n = btf__type_cnt(obj->btf); in linker_sanity_check_btf()
948 t = btf_type_by_id(obj->btf, i); in linker_sanity_check_btf()
950 err = err ?: btf_type_visit_type_ids(t, check_btf_type_id, obj->btf); in linker_sanity_check_btf()
951 err = err ?: btf_type_visit_str_offs(t, check_btf_str_off, obj->btf); in linker_sanity_check_btf()
967 if (!obj->btf) in linker_sanity_check_btf_ext()
970 err = err ?: btf_ext_visit_type_ids(obj->btf_ext, check_btf_type_id, obj->btf); in linker_sanity_check_btf_ext()
971 err = err ?: btf_ext_visit_str_offs(obj->btf_ext, check_btf_str_off, obj->btf); in linker_sanity_check_btf_ext()
1287 const struct btf *btf1, __u32 id1, in glob_sym_btf_matches()
1288 const struct btf *btf2, __u32 id2) in glob_sym_btf_matches()
1481 const struct btf *main_btf, in map_defs_match()
1484 const struct btf *extra_btf, in map_defs_match()
1577 t = btf__type_by_id(obj->btf, btf_id); in glob_map_defs_match()
1582 t = skip_mods_and_typedefs(obj->btf, t->type, NULL); in glob_map_defs_match()
1584 err = parse_btf_map_def(sym_name, obj->btf, t, true /*strict*/, &src_def, &src_inner_def); in glob_map_defs_match()
1591 t = btf__type_by_id(linker->btf, glob_sym->btf_id); in glob_map_defs_match()
1592 t = skip_mods_and_typedefs(linker->btf, t->type, NULL); in glob_map_defs_match()
1593 err = parse_btf_map_def(sym_name, linker->btf, t, true /*strict*/, &dst_def, &dst_inner_def); in glob_map_defs_match()
1604 return map_defs_match(sym_name, linker->btf, &dst_def, &dst_inner_def, in glob_map_defs_match()
1605 obj->btf, &src_def, &src_inner_def); in glob_map_defs_match()
1622 src_t = btf__type_by_id(obj->btf, btf_id); in glob_syms_match()
1634 linker->btf, glob_sym->btf_id, obj->btf, btf_id)) in glob_syms_match()
1654 if (!obj->btf) { in find_glob_sym_btf()
1659 n = btf__type_cnt(obj->btf); in find_glob_sym_btf()
1661 t = btf__type_by_id(obj->btf, i); in find_glob_sym_btf()
1667 name = btf__str_by_offset(obj->btf, t->name_off); in find_glob_sym_btf()
1681 t = btf__type_by_id(obj->btf, vi->type); in find_glob_sym_btf()
1682 name = btf__str_by_offset(obj->btf, t->name_off); in find_glob_sym_btf()
1730 static int complete_extern_btf_info(struct btf *dst_btf, int dst_id, in complete_extern_btf_info()
1731 struct btf *src_btf, int src_id) in complete_extern_btf_info()
1817 if (!obj->btf) { in linker_append_elf_sym()
1846 t = btf__type_by_id(obj->btf, btf_sec_id); in linker_append_elf_sym()
1847 sec_name = btf__str_by_offset(obj->btf, t->name_off); in linker_append_elf_sym()
1940 if (complete_extern_btf_info(linker->btf, glob_sym->btf_id, in linker_append_elf_sym()
1941 obj->btf, btf_id)) in linker_append_elf_sym()
2131 if (!obj->btf) in linker_fixup_btf()
2134 n = btf__type_cnt(obj->btf); in linker_fixup_btf()
2139 t = btf_type_by_id(obj->btf, i); in linker_fixup_btf()
2143 sec_name = btf__str_by_offset(obj->btf, t->name_off); in linker_fixup_btf()
2191 const struct btf_type *vt = btf__type_by_id(obj->btf, vi->type); in linker_fixup_btf()
2192 const char *var_name = btf__str_by_offset(obj->btf, vt->name_off); in linker_fixup_btf()
2235 if (!obj->btf) in linker_append_btf()
2238 start_id = btf__type_cnt(linker->btf); in linker_append_btf()
2239 n = btf__type_cnt(obj->btf); in linker_append_btf()
2248 t = btf__type_by_id(obj->btf, i); in linker_append_btf()
2256 name = btf__str_by_offset(obj->btf, t->name_off); in linker_append_btf()
2284 id = btf__add_type(linker->btf, obj->btf, t); in linker_append_btf()
2300 n = btf__type_cnt(linker->btf); in linker_append_btf()
2302 struct btf_type *dst_t = btf_type_by_id(linker->btf, i); in linker_append_btf()
2320 glob_t = btf_type_by_id(linker->btf, glob_sym->btf_id); in linker_append_btf()
2346 t = btf__type_by_id(obj->btf, src_sec->sec_type_id); in linker_append_btf()
2354 t = btf_type_by_id(linker->btf, new_id); in linker_append_btf()
2356 name = btf__str_by_offset(linker->btf, t->name_off); in linker_append_btf()
2378 sz = btf__resolve_size(linker->btf, glob_sym->underlying_btf_id); in linker_append_btf()
2442 sec_name = btf__name_by_offset(obj->btf, ext_sec->sec_name_off); in linker_append_btf_ext()
2471 sec_name = btf__name_by_offset(obj->btf, ext_sec->sec_name_off); in linker_append_btf_ext()
2493 s = btf__str_by_offset(obj->btf, src_rec->file_name_off); in linker_append_btf_ext()
2494 str_off = btf__add_str(linker->btf, s); in linker_append_btf_ext()
2499 s = btf__str_by_offset(obj->btf, src_rec->line_off); in linker_append_btf_ext()
2500 str_off = btf__add_str(linker->btf, s); in linker_append_btf_ext()
2513 sec_name = btf__name_by_offset(obj->btf, ext_sec->sec_name_off); in linker_append_btf_ext()
2536 s = btf__str_by_offset(obj->btf, src_rec->access_str_off); in linker_append_btf_ext()
2537 str_off = btf__add_str(linker->btf, s); in linker_append_btf_ext()
2655 struct btf *btf = linker->btf; in finalize_btf() local
2661 if (btf__type_cnt(linker->btf) == 1) in finalize_btf()
2670 id = btf__add_datasec(btf, sec->sec_name, sec->sec_sz); in finalize_btf()
2680 if (btf__add_datasec_var_info(btf, vi->type, vi->offset, vi->size)) in finalize_btf()
2692 err = btf__dedup(linker->btf, &opts); in finalize_btf()
2699 raw_data = btf__raw_data(linker->btf, &raw_sz); in finalize_btf()
2736 str_off = btf__add_str(linker->btf, sec_name); in emit_btf_ext_data()