Add ability for user applications and libraries to register custom BPF program SEC() handlers. See patch #2 for examples where this is useful. Patch #1 does some preliminary refactoring to allow exponsing program init, preload, and attach callbacks as public API. It also establishes a protocol to allow optional auto-attach behavior. This will also help the case of sometimes auto-attachable uprobes. v1->v2: - moved callbacks and cookie into OPTS struct (Alan); - added more test scenarios (Alan); - address most of Alan's feedback, but kept API name. Cc: Alan Maguire <alan.maguire@xxxxxxxxxx> Andrii Nakryiko (3): libbpf: allow BPF program auto-attach handlers to bail out libbpf: support custom SEC() handlers selftests/bpf: add custom SEC() handling selftest tools/lib/bpf/libbpf.c | 308 +++++++++++++----- tools/lib/bpf/libbpf.h | 87 +++++ tools/lib/bpf/libbpf.map | 6 + tools/lib/bpf/libbpf_version.h | 2 +- .../bpf/prog_tests/custom_sec_handlers.c | 176 ++++++++++ .../bpf/progs/test_custom_sec_handlers.c | 63 ++++ 6 files changed, 552 insertions(+), 90 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/custom_sec_handlers.c create mode 100644 tools/testing/selftests/bpf/progs/test_custom_sec_handlers.c -- 2.30.2