Lines Matching refs:seg
416 struct elf_seg *seg; in parse_elf_segs() local
443 seg = *segs + *seg_cnt; in parse_elf_segs()
446 seg->start = phdr.p_vaddr; in parse_elf_segs()
447 seg->end = phdr.p_vaddr + phdr.p_memsz; in parse_elf_segs()
448 seg->offset = phdr.p_offset; in parse_elf_segs()
449 seg->is_exec = phdr.p_flags & PF_X; in parse_elf_segs()
465 struct elf_seg *seg; in parse_vma_segs() local
528 seg = *segs + *seg_cnt; in parse_vma_segs()
531 seg->start = seg_start; in parse_vma_segs()
532 seg->end = seg_end; in parse_vma_segs()
533 seg->offset = seg_off; in parse_vma_segs()
534 seg->is_exec = true; in parse_vma_segs()
553 struct elf_seg *seg; in find_elf_seg() local
560 for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { in find_elf_seg()
561 if (seg->start <= virtaddr && virtaddr < seg->end) in find_elf_seg()
562 return seg; in find_elf_seg()
569 struct elf_seg *seg; in find_vma_seg() local
576 for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { in find_vma_seg()
577 if (seg->offset <= offset && offset < seg->offset + (seg->end - seg->start)) in find_vma_seg()
578 return seg; in find_vma_seg()
635 struct elf_seg *seg = NULL; in collect_usdt_targets() local
681 seg = find_elf_seg(segs, seg_cnt, usdt_abs_ip); in collect_usdt_targets()
682 if (!seg) { in collect_usdt_targets()
688 if (!seg->is_exec) { in collect_usdt_targets()
691 path, seg->start, seg->end, usdt_provider, usdt_name, in collect_usdt_targets()
696 usdt_rel_ip = usdt_abs_ip - seg->start + seg->offset; in collect_usdt_targets()
728 seg = find_vma_seg(vma_segs, vma_seg_cnt, usdt_rel_ip); in collect_usdt_targets()
729 if (!seg) { in collect_usdt_targets()
736 usdt_abs_ip = seg->start - seg->offset + usdt_rel_ip; in collect_usdt_targets()
742 seg ? seg->start : 0, seg ? seg->end : 0, seg ? seg->offset : 0); in collect_usdt_targets()
753 seg = find_elf_seg(segs, seg_cnt, note.sema_addr); in collect_usdt_targets()
754 if (!seg) { in collect_usdt_targets()
760 if (seg->is_exec) { in collect_usdt_targets()
763 path, seg->start, seg->end, usdt_provider, usdt_name, in collect_usdt_targets()
768 usdt_sema_off = note.sema_addr - seg->start + seg->offset; in collect_usdt_targets()
773 seg->start, seg->end, seg->offset); in collect_usdt_targets()