• Andrii Nakryiko's avatar
    libbpf: Reduce reliance of attach_fns on sec_def internals · 13d35a0c
    Andrii Nakryiko authored
    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: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarDave Marchevsky <davemarchevsky@fb.com>
    Link: https://lore.kernel.org/bpf/20210928161946.2512801-7-andrii@kernel.org
    13d35a0c
libbpf_internal.h 13.2 KB