diff options
| author | Andrii Nakryiko <andrii@kernel.org> | 2023-03-17 15:44:27 -0700 |
|---|---|---|
| committer | Andrii Nakryiko <andrii@kernel.org> | 2023-03-17 15:46:03 -0700 |
| commit | 6cae5a7106e272e7908a1facdf519a307f93872d (patch) | |
| tree | dd3fb68a821169c52d13421de0ba528db0ce70ba /tools/lib/bpf/bpf_helpers.h | |
| parent | 0f10f647f45545004ea50b73a7a7c5c3309ff286 (diff) | |
| parent | 95fdf6e313a981b0729886f86916190cb418b04c (diff) | |
Merge branch 'bpf: Add detection of kfuncs.'
Alexei Starovoitov says:
====================
From: Alexei Starovoitov <ast@kernel.org>
Allow BPF programs detect at load time whether particular kfunc exists.
Patch 1: Allow ld_imm64 to point to kfunc in the kernel.
Patch 2: Fix relocation of kfunc in ld_imm64 insn when kfunc is in kernel module.
Patch 3: Introduce bpf_ksym_exists() macro.
Patch 4: selftest.
NOTE: detection of kfuncs from light skeleton is not supported yet.
====================
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Diffstat (limited to 'tools/lib/bpf/bpf_helpers.h')
| -rw-r--r-- | tools/lib/bpf/bpf_helpers.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/lib/bpf/bpf_helpers.h b/tools/lib/bpf/bpf_helpers.h index 7d12d3e620cc..e7e1a8acc299 100644 --- a/tools/lib/bpf/bpf_helpers.h +++ b/tools/lib/bpf/bpf_helpers.h @@ -177,6 +177,11 @@ enum libbpf_tristate { #define __kptr_untrusted __attribute__((btf_type_tag("kptr_untrusted"))) #define __kptr __attribute__((btf_type_tag("kptr"))) +#define bpf_ksym_exists(sym) ({ \ + _Static_assert(!__builtin_constant_p(!!sym), #sym " should be marked as __weak"); \ + !!sym; \ +}) + #ifndef ___bpf_concat #define ___bpf_concat(a, b) a ## b #endif |