Lines Matching refs:glob_sym
79 struct glob_sym { struct
153 struct glob_sym *glob_syms;
1255 static struct glob_sym *find_glob_sym(struct bpf_linker *linker, const char *sym_name) in find_glob_sym()
1257 struct glob_sym *glob_sym; in find_glob_sym() local
1262 glob_sym = &linker->glob_syms[i]; in find_glob_sym()
1263 name = strset__data(linker->strtab_strs) + glob_sym->name_off; in find_glob_sym()
1266 return glob_sym; in find_glob_sym()
1272 static struct glob_sym *add_glob_sym(struct bpf_linker *linker) in add_glob_sym()
1274 struct glob_sym *syms, *sym; in add_glob_sym()
1572 struct bpf_linker *linker, struct glob_sym *glob_sym, in glob_map_defs_match() argument
1594 t = btf__type_by_id(linker->btf, glob_sym->btf_id); in glob_map_defs_match()
1612 struct bpf_linker *linker, struct glob_sym *glob_sym, in glob_syms_match() argument
1620 if (!glob_sym->btf_id || !btf_id) { in glob_syms_match()
1633 if (glob_sym->sec_id && strcmp(linker->secs[glob_sym->sec_id].sec_name, MAPS_ELF_SEC) == 0) in glob_syms_match()
1634 return glob_map_defs_match(sym_name, linker, glob_sym, obj, sym, btf_id); in glob_syms_match()
1637 linker->btf, glob_sym->btf_id, obj->btf, btf_id)) in glob_syms_match()
1807 struct glob_sym *glob_sym = NULL; in linker_append_elf_sym() local
1868 glob_sym = find_glob_sym(linker, sym_name); in linker_append_elf_sym()
1869 if (glob_sym) { in linker_append_elf_sym()
1874 obj->sym_map[src_sym_idx] = glob_sym->sym_idx; in linker_append_elf_sym()
1880 if (!sym_is_extern && !glob_sym->is_extern in linker_append_elf_sym()
1881 && !glob_sym->is_weak && sym_bind != STB_WEAK) { in linker_append_elf_sym()
1887 if (!glob_syms_match(sym_name, linker, glob_sym, obj, sym, src_sym_idx, btf_id)) in linker_append_elf_sym()
1890 dst_sym = get_sym_by_idx(linker, glob_sym->sym_idx); in linker_append_elf_sym()
1902 glob_sym->is_weak = false; in linker_append_elf_sym()
1927 if (!glob_sym->is_extern && sym_bind == STB_WEAK) in linker_append_elf_sym()
1940 glob_sym->sec_id = dst_sec->id; in linker_append_elf_sym()
1941 glob_sym->is_extern = false; in linker_append_elf_sym()
1943 if (complete_extern_btf_info(linker->btf, glob_sym->btf_id, in linker_append_elf_sym()
1948 glob_sym->underlying_btf_id = 0; in linker_append_elf_sym()
1950 obj->sym_map[src_sym_idx] = glob_sym->sym_idx; in linker_append_elf_sym()
1978 glob_sym = add_glob_sym(linker); in linker_append_elf_sym()
1979 if (!glob_sym) in linker_append_elf_sym()
1982 glob_sym->sym_idx = dst_sym_idx; in linker_append_elf_sym()
1989 glob_sym->sec_id = dst_sec ? dst_sec->id : 0; in linker_append_elf_sym()
1990 glob_sym->name_off = name_off; in linker_append_elf_sym()
1992 glob_sym->btf_id = 0; in linker_append_elf_sym()
1993 glob_sym->is_extern = sym_is_extern; in linker_append_elf_sym()
1994 glob_sym->is_weak = sym_bind == STB_WEAK; in linker_append_elf_sym()
2246 struct glob_sym *glob_sym = NULL; in linker_append_btf() local
2257 glob_sym = find_glob_sym(linker, name); in linker_append_btf()
2263 if (!glob_sym) in linker_append_btf()
2270 if (glob_sym->underlying_btf_id == 0) in linker_append_btf()
2271 glob_sym->underlying_btf_id = -t->type; in linker_append_btf()
2277 if (glob_sym->btf_id) { in linker_append_btf()
2279 obj->btf_type_map[i] = glob_sym->btf_id; in linker_append_btf()
2293 if (glob_sym) { in linker_append_btf()
2294 glob_sym->btf_id = id; in linker_append_btf()
2295 glob_sym->underlying_btf_id = -t->type; in linker_append_btf()
2312 struct glob_sym *glob_sym = &linker->glob_syms[i]; in linker_append_btf() local
2315 if (glob_sym->underlying_btf_id >= 0) in linker_append_btf()
2318 glob_sym->underlying_btf_id = obj->btf_type_map[-glob_sym->underlying_btf_id]; in linker_append_btf()
2320 glob_t = btf_type_by_id(linker->btf, glob_sym->btf_id); in linker_append_btf()
2321 glob_t->type = glob_sym->underlying_btf_id; in linker_append_btf()
2352 struct glob_sym *glob_sym = NULL; in linker_append_btf() local
2357 glob_sym = find_glob_sym(linker, name); in linker_append_btf()
2358 if (glob_sym->sec_id != dst_sec->id) { in linker_append_btf()
2360 name, glob_sym->sec_id, dst_sec->id); in linker_append_btf()
2370 if (glob_sym && glob_sym->var_idx >= 0) { in linker_append_btf()
2373 dst_var = &dst_sec->sec_vars[glob_sym->var_idx]; in linker_append_btf()
2378 sz = btf__resolve_size(linker->btf, glob_sym->underlying_btf_id); in linker_append_btf()
2402 if (glob_sym) in linker_append_btf()
2403 glob_sym->var_idx = dst_sec->sec_var_cnt - 1; in linker_append_btf()