libbpf: Split CO-RE logic into relo_core.c.

Move CO-RE logic into separate file.
The internal interface between libbpf and CO-RE is through
bpf_core_apply_relo_insn() function and few structs defined in relo_core.h.

Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210721000822.40958-5-alexei.starovoitov@gmail.com
This commit is contained in:
Alexei Starovoitov
2021-07-20 17:08:22 -07:00
committed by Andrii Nakryiko
parent 2fe57e40ac
commit d41e821ccf
4 changed files with 1318 additions and 1296 deletions

View File

@@ -75,8 +75,7 @@ struct bpf_core_relo {
enum bpf_core_relo_kind kind;
};
struct bpf_core_cand
{
struct bpf_core_cand {
const struct btf *btf;
const struct btf_type *t;
const char *name;
@@ -89,4 +88,13 @@ struct bpf_core_cand_list {
int len;
};
int bpf_core_apply_relo_insn(const char *prog_name,
struct bpf_insn *insn, int insn_idx,
const struct bpf_core_relo *relo, int relo_idx,
const struct btf *local_btf,
struct bpf_core_cand_list *cands);
int bpf_core_types_are_compat(const struct btf *local_btf, __u32 local_id,
const struct btf *targ_btf, __u32 targ_id);
size_t bpf_core_essential_name_len(const char *name);
#endif