Lines Matching full:elf
10 * The vDSO is a regular ELF DSO that the kernel maps into user space when
22 #include <elf.h>
35 #define ELF_BITS_XFORM2(bits, x) Elf##bits##_##x
37 #define ELF(x) ELF_BITS_XFORM(ELF_BITS, x)
40 #define ELF_HASH_ENTRY ELF(Xword)
42 #define ELF_HASH_ENTRY ELF(Word)
54 ELF(Sym) *symtab;
56 ELF(Word) *gnu_hash, *gnu_bucket;
61 ELF(Versym) *versym;
62 ELF(Verdef) *verdef;
66 * Straight from the ELF specification...and then tweaked slightly, in order to
104 ELF(Ehdr) *hdr = (ELF(Ehdr)*)base;
107 return; /* Wrong ELF class -- check ELF_BITS */
110 ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff);
111 ELF(Dyn) *dyn = 0;
125 dyn = (ELF(Dyn)*)(base + pt[i].p_offset);
149 vdso_info.symtab = (ELF(Sym) *)
160 (ELF(Word) *)((uintptr_t)dyn[i].d_un.d_ptr +
164 vdso_info.versym = (ELF(Versym) *)
169 vdso_info.verdef = (ELF(Verdef) *)
201 static bool vdso_match_version(ELF(Versym) ver,
202 const char *name, ELF(Word) hash)
221 ELF(Verdef) *def = vdso_info.verdef;
230 def = (ELF(Verdef) *)((char *)def + def->vd_next);
234 ELF(Verdaux) *aux = (ELF(Verdaux)*)((char *)def + def->vd_aux);
239 static bool check_sym(ELF(Sym) *sym, ELF(Word) i, const char *name,
266 ELF(Word) i;
278 ELF(Sym) *sym = &vdso_info.symtab[i];
290 ELF(Sym) *sym = &vdso_info.symtab[i];