Lines Matching defs:iter
79 static int elf_sym_iter_new(struct elf_sym_iter *iter,
87 memset(iter, 0, sizeof(*iter));
104 iter->strtabidx = sh.sh_link;
105 iter->syms = elf_getdata(scn, 0);
106 if (!iter->syms) {
111 iter->nr_syms = iter->syms->d_size / sh.sh_entsize;
112 iter->elf = elf;
113 iter->st_type = st_type;
117 static struct elf_sym *elf_sym_iter_next(struct elf_sym_iter *iter)
119 struct elf_sym *ret = &iter->sym;
125 for (idx = iter->next_sym_idx; idx < iter->nr_syms; idx++) {
126 if (!gelf_getsym(iter->syms, idx, sym))
128 if (GELF_ST_TYPE(sym->st_info) != iter->st_type)
130 name = elf_strptr(iter->elf, iter->strtabidx, sym->st_name);
133 sym_scn = elf_getscn(iter->elf, sym->st_shndx);
139 iter->next_sym_idx = idx + 1;
152 * by looking up symbol's containing section's header and using iter's virtual
192 struct elf_sym_iter iter;
197 ret = elf_sym_iter_new(&iter, elf, binary_path, sh_types[i], STT_FUNC);
203 while ((sym = elf_sym_iter_next(&iter))) {
319 struct elf_sym_iter iter;
322 err = elf_sym_iter_new(&iter, elf_fd.elf, binary_path, sh_types[i], STT_FUNC);
328 while ((sym = elf_sym_iter_next(&iter))) {
400 struct elf_sym_iter iter;
403 err = elf_sym_iter_new(&iter, elf_fd.elf, binary_path, sh_types[i], STT_FUNC);
409 while ((sym = elf_sym_iter_next(&iter))) {