tags 189 dlsym_default.c static char *symbol_name(int i, dt_tag *tags) { tags 190 dlsym_default.c return tags->strtab + tags->symtab[i].st_name; tags 193 dlsym_default.c static char *version_name(ElfW(Word) version_ndx, dt_tag *tags) { tags 201 dlsym_default.c (ElfW(Verdef)*)(tags->base_addr + (unsigned long int)(tags->verdef)); tags 209 dlsym_default.c return tags->strtab + first->vda_name; tags 221 dlsym_default.c static void get_dt_tags(void *handle, dt_tag *tags) { tags 228 dlsym_default.c tags->base_addr = (char *)(link_map -> l_addr); tags 230 dlsym_default.c tags->symtab = NULL; tags 231 dlsym_default.c tags->versym = NULL; tags 232 dlsym_default.c tags->verdef = NULL; tags 233 dlsym_default.c tags->strtab = NULL; tags 234 dlsym_default.c tags->hash = NULL; tags 235 dlsym_default.c tags->gnu_hash = NULL; tags 236 dlsym_default.c tags->verdefnum = 0; tags 243 dlsym_default.c tags->versym = (void *)cur_dyn->d_un.d_ptr; tags 245 dlsym_default.c tags->verdef = (void *)cur_dyn->d_un.d_ptr; tags 247 dlsym_default.c tags->verdefnum = (ElfW(Word))cur_dyn->d_un.d_val; tags 248 dlsym_default.c if (cur_dyn->d_tag == DT_STRTAB && tags->strtab == 0) tags 249 dlsym_default.c tags->strtab = (void *)cur_dyn->d_un.d_ptr; tags 253 dlsym_default.c tags->symtab = (void *)cur_dyn->d_un.d_ptr; tags 255 dlsym_default.c tags->hash = (void *)cur_dyn->d_un.d_ptr; tags 258 dlsym_default.c tags->gnu_hash = (void *)cur_dyn->d_un.d_ptr; tags 269 dlsym_default.c dt_tag tags; tags 311 dlsym_default.c get_dt_tags(handle, &tags); tags 312 dlsym_default.c assert(tags.hash != NULL || tags.gnu_hash != NULL); tags 313 dlsym_default.c int use_gnu_hash = (tags.hash == NULL); tags 314 dlsym_default.c Elf32_Word *hash = (use_gnu_hash ? tags.gnu_hash : tags.hash); tags 317 dlsym_default.c if (tags.symtab[i].st_name == 0 || tags.symtab[i].st_value == 0) tags 319 dlsym_default.c if (strcmp(symbol_name(i, &tags), symbol) != 0) // If different symbol name tags 322 dlsym_default.c if ( !(tags.versym[i] & (1<<15)) ) { // If hidden bit is not set. tags 331 dlsym_default.c strcmp(version_name(tags.versym[i], &tags), tags 332 dlsym_default.c version_name(tags.versym[default_symbol_index], &tags)) > 0) { tags 340 dlsym_default.c tags.base_addr + tags.symtab[default_symbol_index].st_value); tags 342 dlsym_default.c version_name(tags.versym[default_symbol_index], &tags)); tags 350 dlsym_default.c return tags.base_addr + tags.symtab[default_symbol_index].st_value;