aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/lib/bpf/bpf_gen_internal.h
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@kernel.org>2023-03-21 13:38:53 -0700
committerAndrii Nakryiko <andrii@kernel.org>2023-03-22 09:31:05 -0700
commit708cdc5706a4701be9e5f81cb2e2b60b57f34c42 (patch)
treed3f86c39ddf52a908a6e4c5f72a1eded79b2e910 /tools/lib/bpf/bpf_gen_internal.h
parentbpf: Teach the verifier to recognize rdonly_mem as not null. (diff)
downloadwireguard-linux-708cdc5706a4701be9e5f81cb2e2b60b57f34c42.tar.xz
wireguard-linux-708cdc5706a4701be9e5f81cb2e2b60b57f34c42.zip
libbpf: Support kfunc detection in light skeleton.
Teach gen_loader to find {btf_id, btf_obj_fd} of kernel variables and kfuncs and populate corresponding ld_imm64 and bpf_call insns. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20230321203854.3035-4-alexei.starovoitov@gmail.com
Diffstat (limited to 'tools/lib/bpf/bpf_gen_internal.h')
-rw-r--r--tools/lib/bpf/bpf_gen_internal.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/tools/lib/bpf/bpf_gen_internal.h b/tools/lib/bpf/bpf_gen_internal.h
index 223308931d55..fdf44403ff36 100644
--- a/tools/lib/bpf/bpf_gen_internal.h
+++ b/tools/lib/bpf/bpf_gen_internal.h
@@ -11,6 +11,7 @@ struct ksym_relo_desc {
int insn_idx;
bool is_weak;
bool is_typeless;
+ bool is_ld64;
};
struct ksym_desc {
@@ -24,6 +25,7 @@ struct ksym_desc {
bool typeless;
};
int insn;
+ bool is_ld64;
};
struct bpf_gen {
@@ -65,7 +67,7 @@ void bpf_gen__map_update_elem(struct bpf_gen *gen, int map_idx, void *value, __u
void bpf_gen__map_freeze(struct bpf_gen *gen, int map_idx);
void bpf_gen__record_attach_target(struct bpf_gen *gen, const char *name, enum bpf_attach_type type);
void bpf_gen__record_extern(struct bpf_gen *gen, const char *name, bool is_weak,
- bool is_typeless, int kind, int insn_idx);
+ bool is_typeless, bool is_ld64, int kind, int insn_idx);
void bpf_gen__record_relo_core(struct bpf_gen *gen, const struct bpf_core_relo *core_relo);
void bpf_gen__populate_outer_map(struct bpf_gen *gen, int outer_map_idx, int key, int inner_map_idx);