Lines Matching refs:base_btf
141 struct btf *base_btf; member
385 if (btf->base_btf && btf->hdr.str_len == 0) in btf_parse_str_sec()
391 if (!btf->base_btf && start[0]) { in btf_parse_str_sec()
429 struct btf *base_btf = btf->base_btf; in btf_type_size_unknown() local
431 if (base_btf) { in btf_type_size_unknown()
432 l = base_btf->layout; in btf_type_size_unknown()
433 l_cnt = base_btf->hdr.layout_len / sizeof(struct btf_layout); in btf_type_size_unknown()
785 return btf->base_btf; in btf__base_btf()
794 return btf_type_by_id(btf->base_btf, type_id); in btf_type_by_id()
824 if (btf->base_btf && btf->base_btf->ptr_sz > 0) in determine_ptr_size()
825 return btf->base_btf->ptr_sz; in determine_ptr_size()
1119 id = btf_find_by_name_kind(btf->base_btf, start_id, in btf_find_by_name_kind()
1212 btf__free(btf->base_btf); in btf__free()
1219 struct btf *base_btf = OPTS_GET(opts, base_btf, NULL); in btf_new_empty() local
1235 if (base_btf) { in btf_new_empty()
1236 btf->base_btf = base_btf; in btf_new_empty()
1237 btf->start_id = btf__type_cnt(base_btf); in btf_new_empty()
1238 btf->start_str_off = base_btf->hdr.str_len + base_btf->start_str_off; in btf_new_empty()
1239 btf->swapped_endian = base_btf->swapped_endian; in btf_new_empty()
1243 btf->raw_size = sizeof(struct btf_header) + (base_btf ? 0 : 1); in btf_new_empty()
1259 hdr->str_len = base_btf ? 0 : 1; /* empty string at offset 0 */ in btf_new_empty()
1283 struct btf *btf__new_empty_split(struct btf *base_btf) in btf__new_empty_split() argument
1287 opts.base_btf = base_btf; in btf__new_empty_split()
1300 static struct btf *btf_new(const void *data, __u32 size, struct btf *base_btf, bool is_mmap) in btf_new() argument
1315 if (base_btf) { in btf_new()
1316 btf->base_btf = base_btf; in btf_new()
1317 btf->start_id = btf__type_cnt(base_btf); in btf_new()
1318 btf->start_str_off = base_btf->hdr.str_len + base_btf->start_str_off; in btf_new()
1364 struct btf *btf__new_split(const void *data, __u32 size, struct btf *base_btf) in btf__new_split() argument
1366 return libbpf_ptr(btf_new(data, size, base_btf, false)); in btf__new_split()
1447 static struct btf *btf_parse_elf(const char *path, struct btf *base_btf, in btf_parse_elf() argument
1496 dist_base_btf ?: base_btf, false); in btf_parse_elf()
1501 if (dist_base_btf && base_btf) { in btf_parse_elf()
1502 err = btf__relocate(btf, base_btf); in btf_parse_elf()
1554 struct btf *btf__parse_elf_split(const char *path, struct btf *base_btf) in btf__parse_elf_split() argument
1556 return libbpf_ptr(btf_parse_elf(path, base_btf, NULL)); in btf__parse_elf_split()
1559 static struct btf *btf_parse_raw(const char *path, struct btf *base_btf) in btf_parse_raw() argument
1613 btf = btf_new(data, sz, base_btf, false); in btf_parse_raw()
1627 struct btf *btf__parse_raw_split(const char *path, struct btf *base_btf) in btf__parse_raw_split() argument
1629 return libbpf_ptr(btf_parse_raw(path, base_btf)); in btf__parse_raw_split()
1632 static struct btf *btf_parse_raw_mmap(const char *path, struct btf *base_btf) in btf_parse_raw_mmap() argument
1656 btf = btf_new(data, st.st_size, base_btf, true); in btf_parse_raw_mmap()
1663 static struct btf *btf_parse(const char *path, struct btf *base_btf, struct btf_ext **btf_ext) in btf_parse() argument
1671 btf = btf_parse_raw(path, base_btf); in btf_parse()
1677 return btf_parse_elf(path, base_btf, btf_ext); in btf_parse()
1685 struct btf *btf__parse_split(const char *path, struct btf *base_btf) in btf__parse_split() argument
1687 return libbpf_ptr(btf_parse(path, base_btf, NULL)); in btf__parse_split()
1881 return btf__str_by_offset(btf->base_btf, offset); in btf__str_by_offset()
1893 struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf) in btf_get_from_fd() argument
1940 btf = btf_new(ptr, btf_info.btf_size, base_btf, false); in btf_get_from_fd()
1947 struct btf *btf_load_from_kernel(__u32 id, struct btf *base_btf, int token_fd) in btf_load_from_kernel() argument
1962 btf = btf_get_from_fd(btf_fd, base_btf); in btf_load_from_kernel()
1968 struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf) in btf__load_from_kernel_by_id_split() argument
1970 return btf_load_from_kernel(id, base_btf, 0); in btf__load_from_kernel_by_id_split()
2043 if (!btf->base_btf && btf->hdr.str_len == 1) in btf_ensure_modifiable()
2071 if (btf->base_btf) { in btf__find_str()
2072 off = btf__find_str(btf->base_btf, s); in btf__find_str()
2099 if (btf->base_btf) { in btf__add_str()
2100 off = btf__find_str(btf->base_btf, s); in btf__add_str()
2255 if (src_btf->base_btf && src_btf->base_btf != btf->base_btf) in btf__add_btf()
2258 src_start_id = src_btf->base_btf ? btf__type_cnt(src_btf->base_btf) : 1; in btf__add_btf()
4183 if (d->btf->base_btf) { in strs_dedup_remap_str_off()
4184 err = btf__find_str(d->btf->base_btf, s); in strs_dedup_remap_str_off()
4225 if (!d->btf->base_btf) { in btf_dedup_strings()
4576 if (!d->btf->base_btf) in btf_dedup_prep()
6230 void btf_set_base_btf(struct btf *btf, const struct btf *base_btf) in btf_set_base_btf() argument
6232 btf->base_btf = (struct btf *)base_btf; in btf_set_base_btf()
6233 btf->start_id = btf__type_cnt(base_btf); in btf_set_base_btf()
6234 btf->start_str_off = base_btf->hdr.str_len + base_btf->start_str_off; in btf_set_base_btf()
6237 int btf__relocate(struct btf *btf, const struct btf *base_btf) in btf__relocate() argument
6239 int err = btf_relocate(btf, base_btf, NULL); in btf__relocate()