On 9/20/21 7:43 PM, Andrii Nakryiko wrote: > Move closer to not relying on bpf_sec_def internals that won't be part > of public API, when pluggable SEC() handlers will be allowed. Drop > pre-calculated prefix length, and in various helpers don't rely on this > prefix length availability. Also minimize reliance on knowing > bpf_sec_def's prefix for few places where section prefix shortcuts are > supported (e.g., tp vs tracepoint, raw_tp vs raw_tracepoint). > > Given checking some string for having a given string-constant prefix is > such a common operation and so annoying to be done with pure C code, add > a small macro helper, str_has_pfx(), and reuse it throughout libbpf.c > where prefix comparison is performed. With __builtin_constant_p() it's > possible to have a convenient helper that checks some string for having > a given prefix, where prefix is either string literal (or compile-time > known string due to compiler optimization) or just a runtime string > pointer, which is quite convenient and saves a lot of typing and string > literal duplication. > > Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > --- Acked-by: Dave Marchevsky <davemarchevsky@xxxxxx> > tools/lib/bpf/libbpf.c | 41 ++++++++++++++++++--------------- > tools/lib/bpf/libbpf_internal.h | 7 ++++++ > 2 files changed, 30 insertions(+), 18 deletions(-) > [...]