Lines Matching refs:relo

559 				    const struct bpf_core_relo *relo,  in bpf_core_calc_field_relo()  argument
574 if (relo->kind == BPF_FIELD_EXISTS) { in bpf_core_calc_field_relo()
587 if (relo->kind == BPF_FIELD_BYTE_OFFSET) { in bpf_core_calc_field_relo()
595 } else if (relo->kind == BPF_FIELD_BYTE_SIZE) { in bpf_core_calc_field_relo()
602 prog_name, relo->kind, relo->insn_off / 8); in bpf_core_calc_field_relo()
624 prog_name, relo->kind, relo->insn_off / 8); in bpf_core_calc_field_relo()
646 switch (relo->kind) { in bpf_core_calc_field_relo()
684 static int bpf_core_calc_type_relo(const struct bpf_core_relo *relo, in bpf_core_calc_type_relo() argument
696 switch (relo->kind) { in bpf_core_calc_type_relo()
718 static int bpf_core_calc_enumval_relo(const struct bpf_core_relo *relo, in bpf_core_calc_enumval_relo() argument
725 switch (relo->kind) { in bpf_core_calc_enumval_relo()
775 const struct bpf_core_relo *relo, in bpf_core_calc_relo() argument
791 if (core_relo_is_field_based(relo->kind)) { in bpf_core_calc_relo()
792 err = bpf_core_calc_field_relo(prog_name, relo, local_spec, in bpf_core_calc_relo()
795 err = err ?: bpf_core_calc_field_relo(prog_name, relo, targ_spec, in bpf_core_calc_relo()
837 } else if (core_relo_is_type_based(relo->kind)) { in bpf_core_calc_relo()
838 err = bpf_core_calc_type_relo(relo, local_spec, &res->orig_val); in bpf_core_calc_relo()
839 err = err ?: bpf_core_calc_type_relo(relo, targ_spec, &res->new_val); in bpf_core_calc_relo()
840 } else if (core_relo_is_enumval_based(relo->kind)) { in bpf_core_calc_relo()
841 err = bpf_core_calc_enumval_relo(relo, local_spec, &res->orig_val); in bpf_core_calc_relo()
842 err = err ?: bpf_core_calc_enumval_relo(relo, targ_spec, &res->new_val); in bpf_core_calc_relo()
853 prog_name, relo_idx, core_relo_kind_str(relo->kind), in bpf_core_calc_relo()
854 relo->kind, relo->insn_off / 8); in bpf_core_calc_relo()
920 int insn_idx, const struct bpf_core_relo *relo, in bpf_core_patch_insn() argument
1147 const struct bpf_core_relo *relo, in bpf_core_apply_relo_insn() argument
1160 local_id = relo->type_id; in bpf_core_apply_relo_insn()
1169 spec_str = btf__name_by_offset(local_btf, relo->access_str_off); in bpf_core_apply_relo_insn()
1173 err = bpf_core_parse_spec(local_btf, local_id, spec_str, relo->kind, &local_spec); in bpf_core_apply_relo_insn()
1183 relo_idx, core_relo_kind_str(relo->kind), relo->kind); in bpf_core_apply_relo_insn()
1188 if (relo->kind == BPF_TYPE_ID_LOCAL) { in bpf_core_apply_relo_insn()
1199 prog_name, relo_idx, core_relo_kind_str(relo->kind), relo->kind); in bpf_core_apply_relo_insn()
1223 err = bpf_core_calc_relo(prog_name, relo, relo_idx, &local_spec, &cand_spec, &cand_res); in bpf_core_apply_relo_insn()
1280 err = bpf_core_calc_relo(prog_name, relo, relo_idx, &local_spec, NULL, &targ_res); in bpf_core_apply_relo_insn()
1287 err = bpf_core_patch_insn(prog_name, insn, insn_idx, relo, relo_idx, &targ_res); in bpf_core_apply_relo_insn()
1290 prog_name, relo_idx, relo->insn_off / 8, err); in bpf_core_apply_relo_insn()