Add two sets of BPF_CORE_READ()-like macros. One is for reading kernel data
from user address space (e.g., UAPI data structs for syscalls). Another one is
non-CO-RE variants, which don't emit CO-RE relocations and thus won't fail on
kernels without BTF. The latter one still provides much shorter way to write
reads that needs to chase few pointers.
Andrii Nakryiko (3):
libbpf: add user-space variants of BPF_CORE_READ() family of macros
libbpf: add non-CO-RE variants of BPF_CORE_READ() macro family
selftests/bpf: add tests for user- and non-CO-RE BPF_CORE_READ()
variants
tools/lib/bpf/bpf_core_read.h | 136 +++++++++++++-----
.../bpf/prog_tests/core_read_macros.c | 64 +++++++++
.../bpf/progs/test_core_read_macros.c | 51 +++++++
3 files changed, 212 insertions(+), 39 deletions(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/core_read_macros.c
create mode 100644 tools/testing/selftests/bpf/progs/test_core_read_macros.c
--
2.24.1