Lines Matching refs:segs
400 static int parse_elf_segs(Elf *elf, const char *path, struct elf_seg **segs, size_t *seg_cnt)
427 tmp = libbpf_reallocarray(*segs, *seg_cnt + 1, sizeof(**segs));
431 *segs = tmp;
432 seg = *segs + *seg_cnt;
446 qsort(*segs, *seg_cnt, sizeof(**segs), cmp_elf_segs);
450 static int parse_vma_segs(int pid, const char *lib_path, struct elf_seg **segs, size_t *seg_cnt)
510 tmp = libbpf_reallocarray(*segs, *seg_cnt + 1, sizeof(**segs));
516 *segs = tmp;
517 seg = *segs + *seg_cnt;
533 qsort(*segs, *seg_cnt, sizeof(**segs), cmp_elf_segs);
540 static struct elf_seg *find_elf_seg(struct elf_seg *segs, size_t seg_cnt, long virtaddr)
549 for (i = 0, seg = segs; i < seg_cnt; i++, seg++) {
556 static struct elf_seg *find_vma_seg(struct elf_seg *segs, size_t seg_cnt, long offset)
565 for (i = 0, seg = segs; i < seg_cnt; i++, seg++) {
583 struct elf_seg *segs = NULL, *vma_segs = NULL;
607 err = parse_elf_segs(elf, path, &segs, &seg_cnt);
670 seg = find_elf_seg(segs, seg_cnt, usdt_abs_ip);
742 seg = find_elf_seg(segs, seg_cnt, note.sema_addr);
797 free(segs);