Patch 1 fixes an issue when using drastically different BPF map definitionsFor patch 3,4 and 5:
inside ELFs from a client using libbpf, vs the map definition libbpf uses.
Patch 2 is a trivial typo fix.
Patches 3-5 add some simple, useful helper functions for setting prog type
and retrieving libbpf errors without depending on kernel headers from
userspace programs.
Patch 6 adds a new pinning functionality for an entire object. Calling
bpf_object__pin(obj, subpath) will mount all programs from the BPF object
to $bpf_fs_path/$subpath/progs/$progname, and all maps from the BPF object
to $bpf_fs_path/$subpath/maps/$mapname. The first program with a particular
name will be mounted with its progname and the suffix "_0"; subsequent
programs with the same will have "_1", and so on; duplicate maps with the
same name are disallowed.
Joe Stringer (6):
tools lib bpf: Fix map offsets in relocation
tools lib bpf: Fix grammar in map_idx warning
tools lib bpf: Define prog_type fns with macro
tools lib bpf: Add set/is helpers for all prog types
tools lib bpf: Add libbpf_get_error()
tools lib bpf: Add bpf_object__pin()
tools/lib/bpf/libbpf.c | 197 +++++++++++++++++++++++++++++++++++++++++-------
tools/lib/bpf/libbpf.h | 15 +++-
tools/perf/tests/llvm.c | 2 +-
3 files changed, 185 insertions(+), 29 deletions(-)