Lines Matching refs:btf_ext

383 struct btf *btf__parse_elf(const char *path, struct btf_ext **btf_ext)  in btf__parse_elf()  argument
448 } else if (btf_ext && strcmp(name, BTF_EXT_ELF_SEC) == 0) { in btf__parse_elf()
469 if (btf_ext && btf_ext_data) { in btf__parse_elf()
470 *btf_ext = btf_ext__new(btf_ext_data->d_buf, in btf__parse_elf()
472 if (IS_ERR(*btf_ext)) in btf__parse_elf()
474 } else if (btf_ext) { in btf__parse_elf()
475 *btf_ext = NULL; in btf__parse_elf()
490 if (btf_ext && IS_ERR(*btf_ext)) { in btf__parse_elf()
492 err = PTR_ERR(*btf_ext); in btf__parse_elf()
776 static int btf_ext_setup_info(struct btf_ext *btf_ext, in btf_ext_setup_info() argument
794 info = btf_ext->data + btf_ext->hdr->hdr_len + ext_sec->off; in btf_ext_setup_info()
797 if (btf_ext->data + btf_ext->data_size < info + ext_sec->len) { in btf_ext_setup_info()
865 static int btf_ext_setup_func_info(struct btf_ext *btf_ext) in btf_ext_setup_func_info() argument
868 .off = btf_ext->hdr->func_info_off, in btf_ext_setup_func_info()
869 .len = btf_ext->hdr->func_info_len, in btf_ext_setup_func_info()
871 .ext_info = &btf_ext->func_info, in btf_ext_setup_func_info()
875 return btf_ext_setup_info(btf_ext, &param); in btf_ext_setup_func_info()
878 static int btf_ext_setup_line_info(struct btf_ext *btf_ext) in btf_ext_setup_line_info() argument
881 .off = btf_ext->hdr->line_info_off, in btf_ext_setup_line_info()
882 .len = btf_ext->hdr->line_info_len, in btf_ext_setup_line_info()
884 .ext_info = &btf_ext->line_info, in btf_ext_setup_line_info()
888 return btf_ext_setup_info(btf_ext, &param); in btf_ext_setup_line_info()
891 static int btf_ext_setup_offset_reloc(struct btf_ext *btf_ext) in btf_ext_setup_offset_reloc() argument
894 .off = btf_ext->hdr->offset_reloc_off, in btf_ext_setup_offset_reloc()
895 .len = btf_ext->hdr->offset_reloc_len, in btf_ext_setup_offset_reloc()
897 .ext_info = &btf_ext->offset_reloc_info, in btf_ext_setup_offset_reloc()
901 return btf_ext_setup_info(btf_ext, &param); in btf_ext_setup_offset_reloc()
937 void btf_ext__free(struct btf_ext *btf_ext) in btf_ext__free() argument
939 if (!btf_ext) in btf_ext__free()
941 free(btf_ext->data); in btf_ext__free()
942 free(btf_ext); in btf_ext__free()
945 struct btf_ext *btf_ext__new(__u8 *data, __u32 size) in btf_ext__new()
947 struct btf_ext *btf_ext; in btf_ext__new() local
954 btf_ext = calloc(1, sizeof(struct btf_ext)); in btf_ext__new()
955 if (!btf_ext) in btf_ext__new()
958 btf_ext->data_size = size; in btf_ext__new()
959 btf_ext->data = malloc(size); in btf_ext__new()
960 if (!btf_ext->data) { in btf_ext__new()
964 memcpy(btf_ext->data, data, size); in btf_ext__new()
966 if (btf_ext->hdr->hdr_len < in btf_ext__new()
969 err = btf_ext_setup_func_info(btf_ext); in btf_ext__new()
973 err = btf_ext_setup_line_info(btf_ext); in btf_ext__new()
977 if (btf_ext->hdr->hdr_len < in btf_ext__new()
980 err = btf_ext_setup_offset_reloc(btf_ext); in btf_ext__new()
986 btf_ext__free(btf_ext); in btf_ext__new()
990 return btf_ext; in btf_ext__new()
993 const void *btf_ext__get_raw_data(const struct btf_ext *btf_ext, __u32 *size) in btf_ext__get_raw_data() argument
995 *size = btf_ext->data_size; in btf_ext__get_raw_data()
996 return btf_ext->data; in btf_ext__get_raw_data()
1048 const struct btf_ext *btf_ext, in btf_ext__reloc_func_info() argument
1052 return btf_ext_reloc_info(btf, &btf_ext->func_info, sec_name, in btf_ext__reloc_func_info()
1057 const struct btf_ext *btf_ext, in btf_ext__reloc_line_info() argument
1061 return btf_ext_reloc_info(btf, &btf_ext->line_info, sec_name, in btf_ext__reloc_line_info()
1065 __u32 btf_ext__func_info_rec_size(const struct btf_ext *btf_ext) in btf_ext__func_info_rec_size() argument
1067 return btf_ext->func_info.rec_size; in btf_ext__func_info_rec_size()
1070 __u32 btf_ext__line_info_rec_size(const struct btf_ext *btf_ext) in btf_ext__line_info_rec_size() argument
1072 return btf_ext->line_info.rec_size; in btf_ext__line_info_rec_size()
1077 static struct btf_dedup *btf_dedup_new(struct btf *btf, struct btf_ext *btf_ext,
1224 int btf__dedup(struct btf *btf, struct btf_ext *btf_ext, in btf__dedup() argument
1227 struct btf_dedup *d = btf_dedup_new(btf, btf_ext, opts); in btf__dedup()
1281 struct btf_ext *btf_ext; member
1386 static struct btf_dedup *btf_dedup_new(struct btf *btf, struct btf_ext *btf_ext, in btf_dedup_new() argument
1402 d->btf_ext = btf_ext; in btf_dedup_new()
1506 if (!d->btf_ext) in btf_for_each_str_off()
1509 line_data_cur = d->btf_ext->line_info.info; in btf_for_each_str_off()
1510 line_data_end = d->btf_ext->line_info.info + d->btf_ext->line_info.len; in btf_for_each_str_off()
1511 rec_size = d->btf_ext->line_info.rec_size; in btf_for_each_str_off()