Lines Matching defs:vdso_info
65 } vdso_info = {-1, 0, 0, 0, 0, 0};
69 if (vdso_info.base != -1) {
90 case DT_STRTAB: vdso_info.strings = p; break;
91 case DT_SYMTAB: vdso_info.syms = p; break;
92 case DT_HASH: vdso_info.hashtab = p; break;
93 case DT_VERSYM: vdso_info.versym = p; break;
94 case DT_VERDEF: vdso_info.verdef = p; break;
97 vdso_info.base = base;
103 if (!vdso_info.strings || !vdso_info.syms || !vdso_info.hashtab) return 0;
104 if (!vdso_info.verdef) vdso_info.versym = 0;
107 for (i=0; i<vdso_info.hashtab[1]; i++) {
108 if (!(1<<(vdso_info.syms[i].st_info&0xf) & OK_TYPES)) continue;
109 if (!(1<<(vdso_info.syms[i].st_info>>4) & OK_BINDS)) continue;
110 if (!vdso_info.syms[i].st_shndx) continue;
111 if (strcmp(name, vdso_info.strings+vdso_info.syms[i].st_name)) continue;
112 if (vdso_info.versym && !checkver(vdso_info.verdef, vdso_info.versym[i], vername, vdso_info.strings))
114 return (void *)(vdso_info.base + vdso_info.syms[i].st_value);