ELF
ELF(Shdr) *shdr;
const ELF(Ehdr) *ehdr = vdso;
ELF(Shdr) *shdr;
const ELF(Sym) *sym;
const ELF(Ehdr) *ehdr = vdso;
ELF(Shdr) *symtab_hdr = NULL, *strtab_hdr;
ELF(Ehdr) *hdr = (ELF(Ehdr) *)raw_addr;
ELF(Dyn) *dyn = 0, *dyn_end = 0;
ELF(Phdr) *pt = (ELF(Phdr) *)(raw_addr + GET_BE(&hdr->e_phoff));
ELF(Shdr) *sh = raw_addr + GET_BE(&hdr->e_shoff) +
ELF(Sym) *sym = raw_addr + GET_BE(&symtab_hdr->sh_offset) +
ELF(Shdr) *sh = raw_addr + GET_LE(&hdr->e_shoff) +
ELF(Sym) *sym = raw_addr + GET_LE(&symtab_hdr->sh_offset) +
ELF(Ehdr) *hdr = (ELF(Ehdr) *)raw_addr;
ELF(Shdr) *symtab_hdr = NULL, *strtab_hdr, *secstrings_hdr,
ELF(Dyn) *dyn = 0, *dyn_end = 0;
ELF(Phdr) *pt = (ELF(Phdr) *)(raw_addr + GET_LE(&hdr->e_phoff));
ELF(Ehdr) *hdr = (ELF(Ehdr)*)base;
ELF(Phdr) *pt = (ELF(Phdr)*)(vdso_info.load_addr + hdr->e_phoff);
ELF(Dyn) *dyn = 0;
dyn = (ELF(Dyn)*)(base + pt[i].p_offset);
vdso_info.symtab = (ELF(Sym) *)
(ELF(Word) *)((uintptr_t)dyn[i].d_un.d_ptr +
vdso_info.versym = (ELF(Versym) *)
vdso_info.verdef = (ELF(Verdef) *)
static bool vdso_match_version(ELF(Versym) ver,
const char *name, ELF(Word) hash)
ELF(Verdef) *def = vdso_info.verdef;
def = (ELF(Verdef) *)((char *)def + def->vd_next);
ELF(Verdaux) *aux = (ELF(Verdaux)*)((char *)def + def->vd_aux);
static bool check_sym(ELF(Sym) *sym, ELF(Word) i, const char *name,
ELF(Word) i;
ELF(Sym) *sym = &vdso_info.symtab[i];
ELF(Sym) *sym = &vdso_info.symtab[i];
#define ELF_HASH_ENTRY ELF(Xword)
#define ELF_HASH_ENTRY ELF(Word)
ELF(Sym) *symtab;
ELF(Word) *gnu_hash, *gnu_bucket;
ELF(Versym) *versym;
ELF(Verdef) *verdef;