Lines Matching refs:map

67 	     const struct link_map *const map,  in ElfW()
93 const ElfW(Half) *verstab = map->l_versyms; in ElfW()
107 || ! _dl_name_match_p (version->filename, map)); in ElfW()
116 if ((map->l_versions[ndx].hash != version->hash in ElfW()
117 || strcmp (map->l_versions[ndx].name, version->name)) in ElfW()
118 && (version->hidden || map->l_versions[ndx].hash in ElfW()
168 const ElfW(Sym) *sym, const struct link_map *map) in enter_unique_sym() argument
182 table[idx].map = map; in enter_unique_sym()
188 mark_nodelete (struct link_map *map, int flags) in mark_nodelete() argument
191 map->l_nodelete_pending = true; in mark_nodelete()
193 map->l_nodelete_active = true; in mark_nodelete()
199 is_nodelete (struct link_map *map, int flags) in is_nodelete() argument
203 return map->l_nodelete_active in is_nodelete()
204 || ((flags & DL_LOOKUP_FOR_RELOCATE) && map->l_nodelete_pending); in is_nodelete()
212 struct link_map *map, struct sym_val *result, in do_lookup_unique() argument
222 = &GL(dl_ns)[map->l_ns]._ns_unique_sym_table; in do_lookup_unique()
243 result->m = map; in do_lookup_unique()
248 result->m = (struct link_map *) entries[idx].map; in do_lookup_unique()
283 entries[idx].map); in do_lookup_unique()
329 new_hash, strtab + sym->st_name, sym, map); in do_lookup_unique()
331 if (map->l_type == lt_loaded && !is_nodelete (map, flags)) in do_lookup_unique()
338 map->l_name, map->l_ns); in do_lookup_unique()
339 mark_nodelete (map, flags); in do_lookup_unique()
350 result->m = (struct link_map *) map; in do_lookup_unique()
374 const struct link_map *map = list[i]->l_real; in do_lookup_x() local
377 if (map == skip) in do_lookup_x()
381 if ((type_class & ELF_RTYPE_CLASS_COPY) && map->l_type == lt_executable) in do_lookup_x()
385 if (map->l_removed) in do_lookup_x()
391 undef_name, DSO_FILENAME (map->l_name), in do_lookup_x()
392 map->l_ns); in do_lookup_x()
395 if (map->l_nbuckets == 0) in do_lookup_x()
403 const ElfW(Sym) *symtab = (const void *) D_PTR (map, l_info[DT_SYMTAB]); in do_lookup_x()
404 const char *strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]); in do_lookup_x()
407 const ElfW(Addr) *bitmask = map->l_gnu_bitmask; in do_lookup_x()
412 & map->l_gnu_bitmask_idxbits]; in do_lookup_x()
415 unsigned int hashbit2 = ((new_hash >> map->l_gnu_shift) in do_lookup_x()
421 Elf32_Word bucket = map->l_gnu_buckets[new_hash in do_lookup_x()
422 % map->l_nbuckets]; in do_lookup_x()
425 const Elf32_Word *hasharr = &map->l_gnu_chain_zero[bucket]; in do_lookup_x()
430 symidx = ELF_MACHINE_HASH_SYMIDX (map, hasharr); in do_lookup_x()
433 strtab, map, &versioned_sym, in do_lookup_x()
452 for (symidx = map->l_buckets[*old_hash % map->l_nbuckets]; in do_lookup_x()
454 symidx = map->l_chain[symidx]) in do_lookup_x()
458 strtab, map, &versioned_sym, in do_lookup_x()
479 && map->l_type == lt_executable in do_lookup_x()
486 if (map->l_info[DT_RELA] != NULL in do_lookup_x()
487 && map->l_info[DT_RELASZ] != NULL in do_lookup_x()
488 && map->l_info[DT_RELASZ]->d_un.d_val != 0) in do_lookup_x()
491 = (const ElfW(Rela) *) D_PTR (map, l_info[DT_RELA]); in do_lookup_x()
493 = map->l_info[DT_RELASZ]->d_un.d_val / sizeof (*rela); in do_lookup_x()
506 if (map->l_info[DT_REL] != NULL in do_lookup_x()
507 && map->l_info[DT_RELSZ] != NULL in do_lookup_x()
508 && map->l_info[DT_RELSZ]->d_un.d_val != 0) in do_lookup_x()
511 = (const ElfW(Rel) *) D_PTR (map, l_info[DT_REL]); in do_lookup_x()
513 = map->l_info[DT_RELSZ]->d_un.d_val / sizeof (*rel); in do_lookup_x()
532 _dl_check_protected_symbol (undef_name, undef_map, ref, map, in do_lookup_x()
544 result->m = (struct link_map *) map; in do_lookup_x()
552 result->m = (struct link_map *) map; in do_lookup_x()
556 do_lookup_unique (undef_name, new_hash, (struct link_map *) map, in do_lookup_x()
589 add_dependency (struct link_map *undef_map, struct link_map *map, int flags) in add_dependency() argument
597 if (undef_map == map) in add_dependency()
605 assert (map->l_type == lt_loaded); in add_dependency()
606 if (is_nodelete (map, flags)) in add_dependency()
621 if (l_initfini[i] == map) in add_dependency()
633 if (list[i] == map) in add_dependency()
638 unsigned long long serial = map->l_serial; in add_dependency()
651 map = atomic_forced_read (map); in add_dependency()
663 if (l_initfini[i] == map) in add_dependency()
676 if (list[i] == map) in add_dependency()
686 if (list[i] == map) in add_dependency()
700 while (runp != NULL && runp != map) in add_dependency()
709 if (map->l_serial != serial) in add_dependency()
714 if (is_nodelete (map, flags)) in add_dependency()
720 if (undef_map->l_type != lt_loaded || is_nodelete (map, flags)) in add_dependency()
723 && !is_nodelete (map, flags)) in add_dependency()
728 map->l_name, map->l_ns); in add_dependency()
732 map->l_name, map->l_ns, in add_dependency()
735 mark_nodelete (map, flags); in add_dependency()
761 && !is_nodelete (map, flags)) in add_dependency()
764 map->l_name, map->l_ns); in add_dependency()
768 mark_nodelete (map, flags); in add_dependency()
776 newp->list[l_reldepsact] = map; in add_dependency()
788 undef_map->l_reldeps->list[l_reldepsact] = map; in add_dependency()
797 DSO_FILENAME (map->l_name), in add_dependency()
798 map->l_ns, in add_dependency()
816 if (map->l_serial != serial) in add_dependency()
959 _dl_setup_hash (struct link_map *map) in _dl_setup_hash() argument
963 if (__glibc_likely (map->l_info[ELF_MACHINE_GNU_HASH_ADDRIDX] != NULL)) in _dl_setup_hash()
966 = (void *) D_PTR (map, l_info[ELF_MACHINE_GNU_HASH_ADDRIDX]); in _dl_setup_hash()
967 map->l_nbuckets = *hash32++; in _dl_setup_hash()
972 map->l_gnu_bitmask_idxbits = bitmask_nwords - 1; in _dl_setup_hash()
973 map->l_gnu_shift = *hash32++; in _dl_setup_hash()
975 map->l_gnu_bitmask = (ElfW(Addr) *) hash32; in _dl_setup_hash()
978 map->l_gnu_buckets = hash32; in _dl_setup_hash()
979 hash32 += map->l_nbuckets; in _dl_setup_hash()
980 map->l_gnu_chain_zero = hash32 - symbias; in _dl_setup_hash()
983 ELF_MACHINE_XHASH_SETUP (hash32, symbias, map); in _dl_setup_hash()
988 if (!map->l_info[DT_HASH]) in _dl_setup_hash()
990 hash = (void *) D_PTR (map, l_info[DT_HASH]); in _dl_setup_hash()
992 map->l_nbuckets = *hash++; in _dl_setup_hash()
995 map->l_buckets = hash; in _dl_setup_hash()
996 hash += map->l_nbuckets; in _dl_setup_hash()
997 map->l_chain = hash; in _dl_setup_hash()