Lines Matching refs:insn_idx
193 int insn_idx; member
3337 __u32 insn_idx, const char *sym_name, in bpf_program__record_reloc() argument
3340 struct bpf_insn *insn = &prog->insns[insn_idx]; in bpf_program__record_reloc()
3369 reloc_desc->insn_idx = insn_idx; in bpf_program__record_reloc()
3376 prog->name, sym_name, insn_idx, insn->code); in bpf_program__record_reloc()
3396 prog->name, i, ext->name, ext->sym_idx, insn_idx); in bpf_program__record_reloc()
3398 reloc_desc->insn_idx = insn_idx; in bpf_program__record_reloc()
3427 map->sec_offset, insn_idx); in bpf_program__record_reloc()
3436 reloc_desc->insn_idx = insn_idx; in bpf_program__record_reloc()
3454 map->sec_offset, insn_idx); in bpf_program__record_reloc()
3464 reloc_desc->insn_idx = insn_idx; in bpf_program__record_reloc()
3470 static bool prog_contains_insn(const struct bpf_program *prog, size_t insn_idx) in prog_contains_insn() argument
3472 return insn_idx >= prog->sec_insn_off && in prog_contains_insn()
3473 insn_idx < prog->sec_insn_off + prog->sec_insn_cnt; in prog_contains_insn()
3477 size_t sec_idx, size_t insn_idx) in find_prog_by_sec_insn() argument
3487 (prog->sec_idx == sec_idx && prog->sec_insn_off <= insn_idx)) in find_prog_by_sec_insn()
3496 if (prog->sec_idx == sec_idx && prog_contains_insn(prog, insn_idx)) in find_prog_by_sec_insn()
3511 __u32 insn_idx; in bpf_object__collect_prog_relos() local
3540 insn_idx = rel.r_offset / BPF_INSN_SZ; in bpf_object__collect_prog_relos()
3554 relo_sec_name, i, insn_idx, sym_name); in bpf_object__collect_prog_relos()
3556 prog = find_prog_by_sec_insn(obj, sec_idx, insn_idx); in bpf_object__collect_prog_relos()
3559 relo_sec_name, i, sec_name, insn_idx); in bpf_object__collect_prog_relos()
3570 insn_idx -= prog->sec_insn_off; in bpf_object__collect_prog_relos()
3572 insn_idx, sym_name, &sym, &rel); in bpf_object__collect_prog_relos()
5409 int insn_idx, struct bpf_insn *insn) in bpf_core_poison_insn() argument
5412 prog->name, relo_idx, insn_idx); in bpf_core_poison_insn()
5475 int insn_idx; in bpf_core_patch_insn() local
5480 insn_idx = relo->insn_off / BPF_INSN_SZ; in bpf_core_patch_insn()
5485 insn_idx = insn_idx - prog->sec_insn_off; in bpf_core_patch_insn()
5486 insn = &prog->insns[insn_idx]; in bpf_core_patch_insn()
5495 bpf_core_poison_insn(prog, relo_idx, insn_idx + 1, insn + 1); in bpf_core_patch_insn()
5496 bpf_core_poison_insn(prog, relo_idx, insn_idx, insn); in bpf_core_patch_insn()
5511 insn_idx, insn->imm, orig_val, new_val); in bpf_core_patch_insn()
5517 prog->name, relo_idx, insn_idx, in bpf_core_patch_insn()
5525 prog->name, relo_idx, insn_idx, insn->off, orig_val, new_val); in bpf_core_patch_insn()
5530 prog->name, relo_idx, insn_idx, new_val); in bpf_core_patch_insn()
5536 prog->name, relo_idx, insn_idx); in bpf_core_patch_insn()
5543 prog->name, relo_idx, insn_idx, orig_val, new_val); in bpf_core_patch_insn()
5551 prog->name, relo_idx, insn_idx, insn_bytes_sz, res->orig_sz); in bpf_core_patch_insn()
5558 prog->name, relo_idx, insn_idx, res->new_sz); in bpf_core_patch_insn()
5564 prog->name, relo_idx, insn_idx, res->orig_sz, res->new_sz); in bpf_core_patch_insn()
5572 insn_idx + 1 >= prog->insns_cnt || in bpf_core_patch_insn()
5576 prog->name, relo_idx, insn_idx); in bpf_core_patch_insn()
5584 insn_idx, (unsigned long long)imm, in bpf_core_patch_insn()
5592 prog->name, relo_idx, insn_idx, in bpf_core_patch_insn()
5598 prog->name, relo_idx, insn_idx, insn->code, in bpf_core_patch_insn()
5901 int i, err = 0, insn_idx, sec_idx; in bpf_object__relocate_core() local
5951 insn_idx = rec->insn_off / BPF_INSN_SZ; in bpf_object__relocate_core()
5952 prog = find_prog_by_sec_insn(obj, sec_idx, insn_idx); in bpf_object__relocate_core()
5963 sec_name, i, insn_idx); in bpf_object__relocate_core()
6007 struct bpf_insn *insn = &prog->insns[relo->insn_idx]; in bpf_object__relocate_data()
6195 size_t insn_idx = *(const size_t *)key; in cmp_relo_by_insn_idx() local
6198 if (insn_idx == relo->insn_idx) in cmp_relo_by_insn_idx()
6200 return insn_idx < relo->insn_idx ? -1 : 1; in cmp_relo_by_insn_idx()
6203 static struct reloc_desc *find_prog_insn_relo(const struct bpf_program *prog, size_t insn_idx) in find_prog_insn_relo() argument
6205 return bsearch(&insn_idx, prog->reloc_desc, prog->nr_reloc, in find_prog_insn_relo()
6213 size_t sub_insn_idx, insn_idx, new_cnt; in bpf_object__reloc_code() local
6223 for (insn_idx = 0; insn_idx < prog->sec_insn_cnt; insn_idx++) { in bpf_object__reloc_code()
6224 insn = &main_prog->insns[prog->sub_insn_off + insn_idx]; in bpf_object__reloc_code()
6228 relo = find_prog_insn_relo(prog, insn_idx); in bpf_object__reloc_code()
6231 prog->name, insn_idx, relo->type); in bpf_object__reloc_code()
6250 sub_insn_idx = prog->sec_insn_off + insn_idx + insn->imm + 1; in bpf_object__reloc_code()
6297 insn = &main_prog->insns[prog->sub_insn_off + insn_idx]; in bpf_object__reloc_code()
6303 insn->imm = subprog->sub_insn_off - (prog->sub_insn_off + insn_idx) - 1; in bpf_object__reloc_code()
6309 prog->name, insn_idx, insn->imm, subprog->name, subprog->sub_insn_off); in bpf_object__reloc_code()
6602 if (a->insn_idx != b->insn_idx) in cmp_relocs()
6603 return a->insn_idx < b->insn_idx ? -1 : 1; in cmp_relocs()
8564 unsigned int moff, insn_idx; in bpf_object__collect_st_ops_relos() local
8614 insn_idx = sym.st_value / BPF_INSN_SZ; in bpf_object__collect_st_ops_relos()
8631 prog = find_prog_by_sec_insn(obj, shdr_idx, insn_idx); in bpf_object__collect_st_ops_relos()