Lines Matching refs:vdso_info

39 static struct vdso_info  struct
56 } vdso_info; variable
77 vdso_info.valid = false; in vdso_init_from_sysinfo_ehdr()
79 vdso_info.load_addr = base; in vdso_init_from_sysinfo_ehdr()
87 ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff); in vdso_init_from_sysinfo_ehdr()
98 vdso_info.load_offset = base in vdso_init_from_sysinfo_ehdr()
113 vdso_info.symstrings = 0; in vdso_init_from_sysinfo_ehdr()
114 vdso_info.symtab = 0; in vdso_init_from_sysinfo_ehdr()
115 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
116 vdso_info.verdef = 0; in vdso_init_from_sysinfo_ehdr()
120 vdso_info.symstrings = (const char *) in vdso_init_from_sysinfo_ehdr()
122 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
125 vdso_info.symtab = (ELF(Sym) *) in vdso_init_from_sysinfo_ehdr()
127 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
132 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
135 vdso_info.versym = (ELF(Versym) *) in vdso_init_from_sysinfo_ehdr()
137 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
140 vdso_info.verdef = (ELF(Verdef) *) in vdso_init_from_sysinfo_ehdr()
142 + vdso_info.load_offset); in vdso_init_from_sysinfo_ehdr()
146 if (!vdso_info.symstrings || !vdso_info.symtab || !hash) in vdso_init_from_sysinfo_ehdr()
149 if (!vdso_info.verdef) in vdso_init_from_sysinfo_ehdr()
150 vdso_info.versym = 0; in vdso_init_from_sysinfo_ehdr()
153 vdso_info.nbucket = hash[0]; in vdso_init_from_sysinfo_ehdr()
154 vdso_info.nchain = hash[1]; in vdso_init_from_sysinfo_ehdr()
155 vdso_info.bucket = &hash[2]; in vdso_init_from_sysinfo_ehdr()
156 vdso_info.chain = &hash[vdso_info.nbucket + 2]; in vdso_init_from_sysinfo_ehdr()
159 vdso_info.valid = true; in vdso_init_from_sysinfo_ehdr()
182 ELF(Verdef) *def = vdso_info.verdef; in vdso_match_version()
197 && !strcmp(name, vdso_info.symstrings + aux->vda_name); in vdso_match_version()
203 if (!vdso_info.valid) in vdso_sym()
207 ELF(Word) chain = vdso_info.bucket[elf_hash(name) % vdso_info.nbucket]; in vdso_sym()
209 for (; chain != STN_UNDEF; chain = vdso_info.chain[chain]) { in vdso_sym()
210 ELF(Sym) *sym = &vdso_info.symtab[chain]; in vdso_sym()
220 if (strcmp(name, vdso_info.symstrings + sym->st_name)) in vdso_sym()
224 if (vdso_info.versym in vdso_sym()
225 && !vdso_match_version(vdso_info.versym[chain], in vdso_sym()
229 return (void *)(vdso_info.load_offset + sym->st_value); in vdso_sym()
246 vdso_info.valid = false; in vdso_init_from_auxv()