Lines Matching refs:seg
399 struct elf_seg *seg; in parse_elf_segs() local
426 seg = *segs + *seg_cnt; in parse_elf_segs()
429 seg->start = phdr.p_vaddr; in parse_elf_segs()
430 seg->end = phdr.p_vaddr + phdr.p_memsz; in parse_elf_segs()
431 seg->offset = phdr.p_offset; in parse_elf_segs()
432 seg->is_exec = phdr.p_flags & PF_X; in parse_elf_segs()
448 struct elf_seg *seg; in parse_vma_segs() local
511 seg = *segs + *seg_cnt; in parse_vma_segs()
514 seg->start = seg_start; in parse_vma_segs()
515 seg->end = seg_end; in parse_vma_segs()
516 seg->offset = seg_off; in parse_vma_segs()
517 seg->is_exec = true; in parse_vma_segs()
536 struct elf_seg *seg; in find_elf_seg() local
543 for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { in find_elf_seg()
544 if (seg->start <= virtaddr && virtaddr < seg->end) in find_elf_seg()
545 return seg; in find_elf_seg()
552 struct elf_seg *seg; in find_vma_seg() local
559 for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { in find_vma_seg()
560 if (seg->offset <= offset && offset < seg->offset + (seg->end - seg->start)) in find_vma_seg()
561 return seg; in find_vma_seg()
618 struct elf_seg *seg = NULL; in collect_usdt_targets() local
664 seg = find_elf_seg(segs, seg_cnt, usdt_abs_ip); in collect_usdt_targets()
665 if (!seg) { in collect_usdt_targets()
671 if (!seg->is_exec) { in collect_usdt_targets()
674 path, seg->start, seg->end, usdt_provider, usdt_name, in collect_usdt_targets()
679 usdt_rel_ip = usdt_abs_ip - seg->start + seg->offset; in collect_usdt_targets()
711 seg = find_vma_seg(vma_segs, vma_seg_cnt, usdt_rel_ip); in collect_usdt_targets()
712 if (!seg) { in collect_usdt_targets()
719 usdt_abs_ip = seg->start - seg->offset + usdt_rel_ip; in collect_usdt_targets()
725 seg ? seg->start : 0, seg ? seg->end : 0, seg ? seg->offset : 0); in collect_usdt_targets()
736 seg = find_elf_seg(segs, seg_cnt, note.sema_addr); in collect_usdt_targets()
737 if (!seg) { in collect_usdt_targets()
743 if (seg->is_exec) { in collect_usdt_targets()
746 path, seg->start, seg->end, usdt_provider, usdt_name, in collect_usdt_targets()
751 usdt_sema_off = note.sema_addr - seg->start + seg->offset; in collect_usdt_targets()
756 seg->start, seg->end, seg->offset); in collect_usdt_targets()