Lines Matching refs:vdso_info
45 static struct vdso_info struct
62 } vdso_info; argument
89 vdso_info.valid = false; in vdso_init_from_sysinfo_ehdr()
91 vdso_info.load_addr = base; in vdso_init_from_sysinfo_ehdr()
99 ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff); in vdso_init_from_sysinfo_ehdr()
110 vdso_info.load_offset = base in vdso_init_from_sysinfo_ehdr()
125 vdso_info.symstrings = 0; in vdso_init_from_sysinfo_ehdr()
126 vdso_info.symtab = 0; in vdso_init_from_sysinfo_ehdr()
127 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
128 vdso_info.verdef = 0; in vdso_init_from_sysinfo_ehdr()
132 vdso_info.symstrings = (const char *) in vdso_init_from_sysinfo_ehdr()
134 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
137 vdso_info.symtab = (ELF(Sym) *) in vdso_init_from_sysinfo_ehdr()
139 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
144 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
147 vdso_info.versym = (ELF(Versym) *) in vdso_init_from_sysinfo_ehdr()
149 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
152 vdso_info.verdef = (ELF(Verdef) *) in vdso_init_from_sysinfo_ehdr()
154 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
158 if (!vdso_info.symstrings || !vdso_info.symtab || !hash) in vdso_init_from_sysinfo_ehdr()
161 if (!vdso_info.verdef) in vdso_init_from_sysinfo_ehdr()
162 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
165 vdso_info.nbucket = hash[0]; in vdso_init_from_sysinfo_ehdr()
166 vdso_info.nchain = hash[1]; in vdso_init_from_sysinfo_ehdr()
167 vdso_info.bucket = &hash[2]; in vdso_init_from_sysinfo_ehdr()
168 vdso_info.chain = &hash[vdso_info.nbucket + 2]; in vdso_init_from_sysinfo_ehdr()
171 vdso_info.valid = true; in vdso_init_from_sysinfo_ehdr()
194 ELF(Verdef) *def = vdso_info.verdef; in vdso_match_version()
209 && !strcmp(name, vdso_info.symstrings + aux->vda_name); in vdso_match_version()
215 if (!vdso_info.valid) in vdso_sym()
219 ELF(Word) chain = vdso_info.bucket[elf_hash(name) % vdso_info.nbucket]; in vdso_sym()
221 for (; chain != STN_UNDEF; chain = vdso_info.chain[chain]) { in vdso_sym()
222 ELF(Sym) *sym = &vdso_info.symtab[chain]; in vdso_sym()
233 if (strcmp(name, vdso_info.symstrings + sym->st_name)) in vdso_sym()
237 if (vdso_info.versym in vdso_sym()
238 && !vdso_match_version(vdso_info.versym[chain], in vdso_sym()
242 return (void *)(vdso_info.load_offset + sym->st_value); in vdso_sym()
259 vdso_info.valid = false; in vdso_init_from_auxv()