Lines Matching refs:glob_sym
84 struct glob_sym { struct
159 struct glob_sym *glob_syms;
1447 static struct glob_sym *find_glob_sym(struct bpf_linker *linker, const char *sym_name) in find_glob_sym()
1449 struct glob_sym *glob_sym; in find_glob_sym() local
1454 glob_sym = &linker->glob_syms[i]; in find_glob_sym()
1455 name = strset__data(linker->strtab_strs) + glob_sym->name_off; in find_glob_sym()
1458 return glob_sym; in find_glob_sym()
1464 static struct glob_sym *add_glob_sym(struct bpf_linker *linker) in add_glob_sym()
1466 struct glob_sym *syms, *sym; in add_glob_sym()
1766 struct bpf_linker *linker, struct glob_sym *glob_sym, in glob_map_defs_match() argument
1788 t = btf__type_by_id(linker->btf, glob_sym->btf_id); in glob_map_defs_match()
1806 struct bpf_linker *linker, struct glob_sym *glob_sym, in glob_syms_match() argument
1814 if (!glob_sym->btf_id || !btf_id) { in glob_syms_match()
1827 if (glob_sym->sec_id && strcmp(linker->secs[glob_sym->sec_id].sec_name, MAPS_ELF_SEC) == 0) in glob_syms_match()
1828 return glob_map_defs_match(sym_name, linker, glob_sym, obj, sym, btf_id); in glob_syms_match()
1831 linker->btf, glob_sym->btf_id, obj->btf, btf_id)) in glob_syms_match()
2001 struct glob_sym *glob_sym = NULL; in linker_append_elf_sym() local
2062 glob_sym = find_glob_sym(linker, sym_name); in linker_append_elf_sym()
2063 if (glob_sym) { in linker_append_elf_sym()
2068 obj->sym_map[src_sym_idx] = glob_sym->sym_idx; in linker_append_elf_sym()
2074 if (!sym_is_extern && !glob_sym->is_extern in linker_append_elf_sym()
2075 && !glob_sym->is_weak && sym_bind != STB_WEAK) { in linker_append_elf_sym()
2081 if (!glob_syms_match(sym_name, linker, glob_sym, obj, sym, src_sym_idx, btf_id)) in linker_append_elf_sym()
2084 dst_sym = get_sym_by_idx(linker, glob_sym->sym_idx); in linker_append_elf_sym()
2096 glob_sym->is_weak = false; in linker_append_elf_sym()
2121 if (!glob_sym->is_extern && sym_bind == STB_WEAK) in linker_append_elf_sym()
2134 glob_sym->sec_id = dst_sec->id; in linker_append_elf_sym()
2135 glob_sym->is_extern = false; in linker_append_elf_sym()
2137 if (complete_extern_btf_info(linker->btf, glob_sym->btf_id, in linker_append_elf_sym()
2142 glob_sym->underlying_btf_id = 0; in linker_append_elf_sym()
2144 obj->sym_map[src_sym_idx] = glob_sym->sym_idx; in linker_append_elf_sym()
2172 glob_sym = add_glob_sym(linker); in linker_append_elf_sym()
2173 if (!glob_sym) in linker_append_elf_sym()
2176 glob_sym->sym_idx = dst_sym_idx; in linker_append_elf_sym()
2183 glob_sym->sec_id = dst_sec ? dst_sec->id : 0; in linker_append_elf_sym()
2184 glob_sym->name_off = name_off; in linker_append_elf_sym()
2186 glob_sym->btf_id = 0; in linker_append_elf_sym()
2187 glob_sym->is_extern = sym_is_extern; in linker_append_elf_sym()
2188 glob_sym->is_weak = sym_bind == STB_WEAK; in linker_append_elf_sym()
2427 struct glob_sym *glob_sym = NULL; in linker_append_btf() local
2438 glob_sym = find_glob_sym(linker, name); in linker_append_btf()
2444 if (!glob_sym) in linker_append_btf()
2451 if (glob_sym->underlying_btf_id == 0) in linker_append_btf()
2452 glob_sym->underlying_btf_id = -t->type; in linker_append_btf()
2458 if (glob_sym->btf_id) { in linker_append_btf()
2460 obj->btf_type_map[i] = glob_sym->btf_id; in linker_append_btf()
2474 if (glob_sym) { in linker_append_btf()
2475 glob_sym->btf_id = id; in linker_append_btf()
2476 glob_sym->underlying_btf_id = -t->type; in linker_append_btf()
2509 struct glob_sym *glob_sym = &linker->glob_syms[i]; in linker_append_btf() local
2512 if (glob_sym->underlying_btf_id >= 0) in linker_append_btf()
2515 glob_sym->underlying_btf_id = obj->btf_type_map[-glob_sym->underlying_btf_id]; in linker_append_btf()
2517 glob_t = btf_type_by_id(linker->btf, glob_sym->btf_id); in linker_append_btf()
2518 glob_t->type = glob_sym->underlying_btf_id; in linker_append_btf()
2549 struct glob_sym *glob_sym = NULL; in linker_append_btf() local
2554 glob_sym = find_glob_sym(linker, name); in linker_append_btf()
2555 if (glob_sym->sec_id != dst_sec->id) { in linker_append_btf()
2557 name, glob_sym->sec_id, dst_sec->id); in linker_append_btf()
2567 if (glob_sym && glob_sym->var_idx >= 0) { in linker_append_btf()
2574 dst_var = &dst_sec->sec_vars[glob_sym->var_idx]; in linker_append_btf()
2579 sz = btf__resolve_size(linker->btf, glob_sym->underlying_btf_id); in linker_append_btf()
2603 if (glob_sym) in linker_append_btf()
2604 glob_sym->var_idx = dst_sec->sec_var_cnt - 1; in linker_append_btf()