Lines Matching defs:vdso_info
37 static struct vdso_info
55 } vdso_info;
74 if (vdso_info.hash_ent_is_dword) {
87 if (vdso_info.hash_ent_is_dword)
98 vdso_info.valid = false;
100 vdso_info.load_addr = base;
112 vdso_info.hash_ent_is_dword = true;
114 vdso_info.hash_ent_is_dword = false;
116 ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff);
127 vdso_info.load_offset = base
142 vdso_info.symstrings = 0;
143 vdso_info.symtab = 0;
144 vdso_info.versym = 0;
145 vdso_info.verdef = 0;
149 vdso_info.symstrings = (const char *)
151 + vdso_info.load_offset);
154 vdso_info.symtab = (ELF(Sym) *)
156 + vdso_info.load_offset);
161 + vdso_info.load_offset);
164 vdso_info.versym = (ELF(Versym) *)
166 + vdso_info.load_offset);
169 vdso_info.verdef = (ELF(Verdef) *)
171 + vdso_info.load_offset);
175 if (!vdso_info.symstrings || !vdso_info.symtab || !hash)
178 if (!vdso_info.verdef)
179 vdso_info.versym = 0;
182 vdso_info.nbucket = get_hash_val(hash, 0);
183 vdso_info.nchain = get_hash_val(hash, 1);
184 vdso_info.bucket = get_hash_ptr(hash, 2);
185 vdso_info.chain = get_hash_ptr(hash, vdso_info.nbucket + 2);
188 vdso_info.valid = true;
211 ELF(Verdef) *def = vdso_info.verdef;
226 && !strcmp(name, vdso_info.symstrings + aux->vda_name);
232 if (!vdso_info.valid)
236 ELF(Word) chain = get_hash_val(vdso_info.bucket,
237 elf_hash((const void*)name) % vdso_info.nbucket);
239 for (; chain != STN_UNDEF; chain = get_hash_val(vdso_info.chain, chain)) {
240 ELF(Sym) *sym = &vdso_info.symtab[chain];
250 if (strcmp(name, vdso_info.symstrings + sym->st_name))
254 if (vdso_info.versym
255 && !vdso_match_version(vdso_info.versym[chain],
259 return (void *)(vdso_info.load_offset + sym->st_value);
277 vdso_info.valid = false;