Lines Matching refs:vdso_info

61 static struct vdso_info  struct
78 } vdso_info; variable
99 vdso_info.valid = false; in vdso_init_from_sysinfo_ehdr()
101 vdso_info.load_addr = base; in vdso_init_from_sysinfo_ehdr()
109 ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff); in vdso_init_from_sysinfo_ehdr()
120 vdso_info.load_offset = base in vdso_init_from_sysinfo_ehdr()
135 vdso_info.symstrings = 0; in vdso_init_from_sysinfo_ehdr()
136 vdso_info.symtab = 0; in vdso_init_from_sysinfo_ehdr()
137 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
138 vdso_info.verdef = 0; in vdso_init_from_sysinfo_ehdr()
142 vdso_info.symstrings = (const char *) in vdso_init_from_sysinfo_ehdr()
144 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
147 vdso_info.symtab = (ELF(Sym) *) in vdso_init_from_sysinfo_ehdr()
149 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
154 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
157 vdso_info.versym = (ELF(Versym) *) in vdso_init_from_sysinfo_ehdr()
159 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
162 vdso_info.verdef = (ELF(Verdef) *) in vdso_init_from_sysinfo_ehdr()
164 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
168 if (!vdso_info.symstrings || !vdso_info.symtab || !hash) in vdso_init_from_sysinfo_ehdr()
171 if (!vdso_info.verdef) in vdso_init_from_sysinfo_ehdr()
172 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
175 vdso_info.nbucket = hash[0]; in vdso_init_from_sysinfo_ehdr()
176 vdso_info.nchain = hash[1]; in vdso_init_from_sysinfo_ehdr()
177 vdso_info.bucket = &hash[2]; in vdso_init_from_sysinfo_ehdr()
178 vdso_info.chain = &hash[vdso_info.nbucket + 2]; in vdso_init_from_sysinfo_ehdr()
181 vdso_info.valid = true; in vdso_init_from_sysinfo_ehdr()
204 ELF(Verdef) *def = vdso_info.verdef; in vdso_match_version()
219 && !strcmp(name, vdso_info.symstrings + aux->vda_name); in vdso_match_version()
225 if (!vdso_info.valid) in vdso_sym()
229 ELF(Word) chain = vdso_info.bucket[elf_hash(name) % vdso_info.nbucket]; in vdso_sym()
231 for (; chain != STN_UNDEF; chain = vdso_info.chain[chain]) { in vdso_sym()
232 ELF(Sym) *sym = &vdso_info.symtab[chain]; in vdso_sym()
242 if (strcmp(name, vdso_info.symstrings + sym->st_name)) in vdso_sym()
246 if (vdso_info.versym in vdso_sym()
247 && !vdso_match_version(vdso_info.versym[chain], in vdso_sym()
251 return (void *)(vdso_info.load_offset + sym->st_value); in vdso_sym()
268 vdso_info.valid = false; in vdso_init_from_auxv()