Lines Matching refs:vdso_info
46 static struct vdso_info struct
64 } vdso_info; argument
101 vdso_info.valid = false; in vdso_init_from_sysinfo_ehdr()
103 vdso_info.load_addr = base; in vdso_init_from_sysinfo_ehdr()
111 ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff); in vdso_init_from_sysinfo_ehdr()
122 vdso_info.load_offset = base in vdso_init_from_sysinfo_ehdr()
137 vdso_info.symstrings = 0; in vdso_init_from_sysinfo_ehdr()
138 vdso_info.gnu_hash = 0; in vdso_init_from_sysinfo_ehdr()
139 vdso_info.symtab = 0; in vdso_init_from_sysinfo_ehdr()
140 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
141 vdso_info.verdef = 0; in vdso_init_from_sysinfo_ehdr()
145 vdso_info.symstrings = (const char *) in vdso_init_from_sysinfo_ehdr()
147 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
150 vdso_info.symtab = (ELF(Sym) *) in vdso_init_from_sysinfo_ehdr()
152 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
157 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
160 vdso_info.gnu_hash = in vdso_init_from_sysinfo_ehdr()
162 vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
165 vdso_info.versym = (ELF(Versym) *) in vdso_init_from_sysinfo_ehdr()
167 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
170 vdso_info.verdef = (ELF(Verdef) *) in vdso_init_from_sysinfo_ehdr()
172 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
176 if (!vdso_info.symstrings || !vdso_info.symtab || in vdso_init_from_sysinfo_ehdr()
177 (!hash && !vdso_info.gnu_hash)) in vdso_init_from_sysinfo_ehdr()
180 if (!vdso_info.verdef) in vdso_init_from_sysinfo_ehdr()
181 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
184 if (vdso_info.gnu_hash) { in vdso_init_from_sysinfo_ehdr()
185 vdso_info.nbucket = vdso_info.gnu_hash[0]; in vdso_init_from_sysinfo_ehdr()
189 vdso_info.gnu_bucket = vdso_info.gnu_hash + 4 + in vdso_init_from_sysinfo_ehdr()
190 sizeof(size_t) / 4 * vdso_info.gnu_hash[2]; in vdso_init_from_sysinfo_ehdr()
192 vdso_info.nbucket = hash[0]; in vdso_init_from_sysinfo_ehdr()
193 vdso_info.nchain = hash[1]; in vdso_init_from_sysinfo_ehdr()
194 vdso_info.bucket = &hash[2]; in vdso_init_from_sysinfo_ehdr()
195 vdso_info.chain = &hash[vdso_info.nbucket + 2]; in vdso_init_from_sysinfo_ehdr()
199 vdso_info.valid = true; in vdso_init_from_sysinfo_ehdr()
222 ELF(Verdef) *def = vdso_info.verdef; in vdso_match_version()
237 && !strcmp(name, vdso_info.symstrings + aux->vda_name); in vdso_match_version()
249 if (strcmp(name, vdso_info.symstrings + sym->st_name)) in check_sym()
253 if (vdso_info.versym && in check_sym()
254 !vdso_match_version(vdso_info.versym[i], version, ver_hash)) in check_sym()
263 if (!vdso_info.valid) in vdso_sym()
269 if (vdso_info.gnu_hash) { in vdso_sym()
272 i = vdso_info.gnu_bucket[h1 % vdso_info.nbucket]; in vdso_sym()
276 hashval = vdso_info.gnu_bucket + vdso_info.nbucket + in vdso_sym()
277 (i - vdso_info.gnu_hash[1]); in vdso_sym()
279 ELF(Sym) *sym = &vdso_info.symtab[i]; in vdso_sym()
283 return (void *)(vdso_info.load_offset + in vdso_sym()
289 i = vdso_info.bucket[elf_hash(name) % vdso_info.nbucket]; in vdso_sym()
290 for (; i; i = vdso_info.chain[i]) { in vdso_sym()
291 ELF(Sym) *sym = &vdso_info.symtab[i]; in vdso_sym()
294 return (void *)(vdso_info.load_offset + in vdso_sym()