Lines Matching refs:hdr

79 	struct btf_header *hdr;  member
230 struct btf_header *hdr = btf->hdr; in btf_parse_hdr() local
238 if (hdr->magic == bswap_16(BTF_MAGIC)) { in btf_parse_hdr()
240 if (bswap_32(hdr->hdr_len) != sizeof(struct btf_header)) { in btf_parse_hdr()
242 bswap_32(hdr->hdr_len)); in btf_parse_hdr()
245 btf_bswap_hdr(hdr); in btf_parse_hdr()
246 } else if (hdr->magic != BTF_MAGIC) { in btf_parse_hdr()
247 pr_debug("Invalid BTF magic: %x\n", hdr->magic); in btf_parse_hdr()
251 if (btf->raw_size < hdr->hdr_len) { in btf_parse_hdr()
253 hdr->hdr_len, btf->raw_size); in btf_parse_hdr()
257 meta_left = btf->raw_size - hdr->hdr_len; in btf_parse_hdr()
258 if (meta_left < (long long)hdr->str_off + hdr->str_len) { in btf_parse_hdr()
263 if ((long long)hdr->type_off + hdr->type_len > hdr->str_off) { in btf_parse_hdr()
265 hdr->type_off, hdr->type_len, hdr->str_off, hdr->str_len); in btf_parse_hdr()
269 if (hdr->type_off % 4) { in btf_parse_hdr()
279 const struct btf_header *hdr = btf->hdr; in btf_parse_str_sec() local
281 const char *end = start + btf->hdr->str_len; in btf_parse_str_sec()
283 if (btf->base_btf && hdr->str_len == 0) in btf_parse_str_sec()
285 if (!hdr->str_len || hdr->str_len - 1 > BTF_MAX_STR_OFFSET || end[-1]) { in btf_parse_str_sec()
423 struct btf_header *hdr = btf->hdr; in btf_parse_type_sec() local
425 void *end_type = next_type + hdr->type_len; in btf_parse_type_sec()
955 return (void *)btf->hdr != btf->raw_data; in btf_is_modifiable()
984 free(btf->hdr); in btf__free()
1014 btf->start_str_off = base_btf->hdr->str_len + base_btf->start_str_off; in btf_new_empty()
1026 btf->hdr = btf->raw_data; in btf_new_empty()
1027 btf->hdr->hdr_len = sizeof(struct btf_header); in btf_new_empty()
1028 btf->hdr->magic = BTF_MAGIC; in btf_new_empty()
1029 btf->hdr->version = BTF_VERSION; in btf_new_empty()
1031 btf->types_data = btf->raw_data + btf->hdr->hdr_len; in btf_new_empty()
1032 btf->strs_data = btf->raw_data + btf->hdr->hdr_len; in btf_new_empty()
1033 btf->hdr->str_len = base_btf ? 0 : 1; /* empty string at offset 0 */ in btf_new_empty()
1065 btf->start_str_off = base_btf->hdr->str_len; in btf_new()
1082 btf->hdr = btf->raw_data; in btf_new()
1087 btf->strs_data = btf->raw_data + btf->hdr->hdr_len + btf->hdr->str_off; in btf_new()
1088 btf->types_data = btf->raw_data + btf->hdr->hdr_len + btf->hdr->type_off; in btf_new()
1541 struct btf_header *hdr = btf->hdr; in btf_get_raw_data() local
1553 data_sz = hdr->hdr_len + hdr->type_len + hdr->str_len; in btf_get_raw_data()
1559 memcpy(p, hdr, hdr->hdr_len); in btf_get_raw_data()
1562 p += hdr->hdr_len; in btf_get_raw_data()
1564 memcpy(p, btf->types_data, hdr->type_len); in btf_get_raw_data()
1577 p += hdr->type_len; in btf_get_raw_data()
1579 memcpy(p, btf_strs_data(btf), hdr->str_len); in btf_get_raw_data()
1580 p += hdr->str_len; in btf_get_raw_data()
1615 else if (offset - btf->start_str_off < btf->hdr->str_len) in btf__str_by_offset()
1727 void *hdr, *types; in btf_ensure_modifiable() local
1738 hdr = malloc(btf->hdr->hdr_len); in btf_ensure_modifiable()
1739 types = malloc(btf->hdr->type_len); in btf_ensure_modifiable()
1740 if (!hdr || !types) in btf_ensure_modifiable()
1743 memcpy(hdr, btf->hdr, btf->hdr->hdr_len); in btf_ensure_modifiable()
1744 memcpy(types, btf->types_data, btf->hdr->type_len); in btf_ensure_modifiable()
1747 set = strset__new(BTF_MAX_STR_OFFSET, btf->strs_data, btf->hdr->str_len); in btf_ensure_modifiable()
1754 btf->hdr = hdr; in btf_ensure_modifiable()
1756 btf->types_data_cap = btf->hdr->type_len; in btf_ensure_modifiable()
1762 if (btf->hdr->str_len == 0) in btf_ensure_modifiable()
1764 if (!btf->base_btf && btf->hdr->str_len == 1) in btf_ensure_modifiable()
1774 free(hdr); in btf_ensure_modifiable()
1828 btf->hdr->str_len = strset__data_size(btf->strs_set); in btf__add_str()
1836 btf->hdr->type_len, UINT_MAX, add_sz); in btf_add_type_mem()
1848 err = btf_add_type_idx_entry(btf, btf->hdr->type_len); in btf_commit_type()
1852 btf->hdr->type_len += data_sz; in btf_commit_type()
1853 btf->hdr->str_off += data_sz; in btf_commit_type()
1957 old_strs_len = btf->hdr->str_len; in btf__add_btf()
1959 data_sz = src_btf->hdr->type_len; in btf__add_btf()
2033 btf->hdr->type_len += data_sz; in btf__add_btf()
2034 btf->hdr->str_off += data_sz; in btf__add_btf()
2045 memset(btf->types_data + btf->hdr->type_len, 0, data_sz); in btf__add_btf()
2046 memset(btf->strs_data + old_strs_len, 0, btf->hdr->str_len - old_strs_len); in btf__add_btf()
2051 btf->hdr->str_len = old_strs_len; in btf__add_btf()
2369 btf->hdr->type_len += sz; in btf__add_field()
2370 btf->hdr->str_off += sz; in btf__add_field()
2479 btf->hdr->type_len += sz; in btf__add_enum_value()
2480 btf->hdr->str_off += sz; in btf__add_enum_value()
2551 btf->hdr->type_len += sz; in btf__add_enum64_value()
2552 btf->hdr->str_off += sz; in btf__add_enum64_value()
2790 btf->hdr->type_len += sz; in btf__add_func_param()
2791 btf->hdr->str_off += sz; in btf__add_func_param()
2927 btf->hdr->type_len += sz; in btf__add_datasec_var_info()
2928 btf->hdr->str_off += sz; in btf__add_datasec_var_info()
3031 info = btf_ext->data + btf_ext->hdr->hdr_len + ext_sec->off; in btf_ext_parse_sec_info()
3111 .off = btf_ext->hdr->func_info_off, in btf_ext_parse_info()
3112 .len = btf_ext->hdr->func_info_len, in btf_ext_parse_info()
3118 .off = btf_ext->hdr->line_info_off, in btf_ext_parse_info()
3119 .len = btf_ext->hdr->line_info_len, in btf_ext_parse_info()
3139 if (btf_ext->hdr->hdr_len < offsetofend(struct btf_ext_header, core_relo_len)) in btf_ext_parse_info()
3142 core_relo.off = btf_ext->hdr->core_relo_off; in btf_ext_parse_info()
3143 core_relo.len = btf_ext->hdr->core_relo_len; in btf_ext_parse_info()
3238 struct btf_ext_header *hdr = btf_ext->hdr; in btf_ext_parse() local
3247 hdr_len = hdr->hdr_len; in btf_ext_parse()
3248 if (hdr->magic == bswap_16(BTF_MAGIC)) { in btf_ext_parse()
3251 } else if (hdr->magic != BTF_MAGIC) { in btf_ext_parse()
3252 pr_debug("Invalid BTF.ext magic:%x\n", hdr->magic); in btf_ext_parse()
3257 if (hdr->version != 1) { in btf_ext_parse()
3258 pr_debug("Unsupported BTF.ext version:%u\n", hdr->version); in btf_ext_parse()
3262 if (hdr->flags) { in btf_ext_parse()
3263 pr_debug("Unsupported BTF.ext flags:%x\n", hdr->flags); in btf_ext_parse()
3283 btf_ext_bswap_hdr(btf_ext->hdr); in btf_ext_parse()
3892 d->btf->hdr->str_len = strset__data_size(d->strs_set); in btf_dedup_strings()
5281 d->btf->hdr->type_len = p - d->btf->types_data; in btf_dedup_compact_types()
5287 d->btf->hdr->str_off = d->btf->hdr->type_len; in btf_dedup_compact_types()
5288 d->btf->raw_size = d->btf->hdr->hdr_len + d->btf->hdr->type_len + d->btf->hdr->str_len; in btf_dedup_compact_types()
5746 dist.split_start_str = old_base->hdr->str_len; in btf__distill_base()
5815 return btf->hdr; in btf_header()
5822 btf->start_str_off = base_btf->hdr->str_len; in btf_set_base_btf()