• Jiri Olsa's avatar
    bpf: Add BTF_SET_START/END macros · eae2e83e
    Jiri Olsa authored
    Adding support to define sorted set of BTF ID values.
    
    Following defines sorted set of BTF ID values:
    
      BTF_SET_START(btf_allowlist_d_path)
      BTF_ID(func, vfs_truncate)
      BTF_ID(func, vfs_fallocate)
      BTF_ID(func, dentry_open)
      BTF_ID(func, vfs_getattr)
      BTF_ID(func, filp_close)
      BTF_SET_END(btf_allowlist_d_path)
    
    It defines following 'struct btf_id_set' variable to access
    values and count:
    
      struct btf_id_set btf_allowlist_d_path;
    
    Adding 'allowed' callback to struct bpf_func_proto, to allow
    verifier the check on allowed callers.
    
    Adding btf_id_set_contains function, which will be used by
    allowed callbacks to verify the caller's BTF ID value is
    within allowed set.
    
    Also removing extra '\' in __BTF_ID_LIST macro.
    
    Added BTF_SET_START_GLOBAL macro for global sets.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
    Link: https://lore.kernel.org/bpf/20200825192124.710397-10-jolsa@kernel.org
    eae2e83e
btf.c 120 KB