Lines Matching defs:glob_sym

78 struct glob_sym {
152 struct glob_sym *glob_syms;
1262 static struct glob_sym *find_glob_sym(struct bpf_linker *linker, const char *sym_name)
1264 struct glob_sym *glob_sym;
1269 glob_sym = &linker->glob_syms[i];
1270 name = strset__data(linker->strtab_strs) + glob_sym->name_off;
1273 return glob_sym;
1279 static struct glob_sym *add_glob_sym(struct bpf_linker *linker)
1281 struct glob_sym *syms, *sym;
1581 struct bpf_linker *linker, struct glob_sym *glob_sym,
1603 t = btf__type_by_id(linker->btf, glob_sym->btf_id);
1621 struct bpf_linker *linker, struct glob_sym *glob_sym,
1629 if (!glob_sym->btf_id || !btf_id) {
1642 if (glob_sym->sec_id && strcmp(linker->secs[glob_sym->sec_id].sec_name, MAPS_ELF_SEC) == 0)
1643 return glob_map_defs_match(sym_name, linker, glob_sym, obj, sym, btf_id);
1646 linker->btf, glob_sym->btf_id, obj->btf, btf_id))
1816 struct glob_sym *glob_sym = NULL;
1877 glob_sym = find_glob_sym(linker, sym_name);
1878 if (glob_sym) {
1883 obj->sym_map[src_sym_idx] = glob_sym->sym_idx;
1889 if (!sym_is_extern && !glob_sym->is_extern
1890 && !glob_sym->is_weak && sym_bind != STB_WEAK) {
1896 if (!glob_syms_match(sym_name, linker, glob_sym, obj, sym, src_sym_idx, btf_id))
1899 dst_sym = get_sym_by_idx(linker, glob_sym->sym_idx);
1911 glob_sym->is_weak = false;
1936 if (!glob_sym->is_extern && sym_bind == STB_WEAK)
1940 * so overwrite glob_sym with new symbol information.
1949 glob_sym->sec_id = dst_sec->id;
1950 glob_sym->is_extern = false;
1952 if (complete_extern_btf_info(linker->btf, glob_sym->btf_id,
1957 glob_sym->underlying_btf_id = 0;
1959 obj->sym_map[src_sym_idx] = glob_sym->sym_idx;
1987 glob_sym = add_glob_sym(linker);
1988 if (!glob_sym)
1991 glob_sym->sym_idx = dst_sym_idx;
1998 glob_sym->sec_id = dst_sec ? dst_sec->id : 0;
1999 glob_sym->name_off = name_off;
2001 glob_sym->btf_id = 0;
2002 glob_sym->is_extern = sym_is_extern;
2003 glob_sym->is_weak = sym_bind == STB_WEAK;
2251 struct glob_sym *glob_sym = NULL;
2260 /* there should be glob_sym already */
2262 glob_sym = find_glob_sym(linker, name);
2264 /* VARs without corresponding glob_sym are those that
2268 if (!glob_sym)
2275 if (glob_sym->underlying_btf_id == 0)
2276 glob_sym->underlying_btf_id = -t->type;
2282 if (glob_sym->btf_id) {
2284 obj->btf_type_map[i] = glob_sym->btf_id;
2298 if (glob_sym) {
2299 glob_sym->btf_id = id;
2300 glob_sym->underlying_btf_id = -t->type;
2317 struct glob_sym *glob_sym = &linker->glob_syms[i];
2320 if (glob_sym->underlying_btf_id >= 0)
2323 glob_sym->underlying_btf_id = obj->btf_type_map[-glob_sym->underlying_btf_id];
2325 glob_t = btf_type_by_id(linker->btf, glob_sym->btf_id);
2326 glob_t->type = glob_sym->underlying_btf_id;
2357 struct glob_sym *glob_sym = NULL;
2362 glob_sym = find_glob_sym(linker, name);
2363 if (glob_sym->sec_id != dst_sec->id) {
2365 name, glob_sym->sec_id, dst_sec->id);
2375 if (glob_sym && glob_sym->var_idx >= 0) {
2378 dst_var = &dst_sec->sec_vars[glob_sym->var_idx];
2383 sz = btf__resolve_size(linker->btf, glob_sym->underlying_btf_id);
2407 if (glob_sym)
2408 glob_sym->var_idx = dst_sec->sec_var_cnt - 1;