• Yonghong Song's avatar
    bpf: Implement an interface to register bpf_iter targets · ae24345d
    Yonghong Song authored
    The target can call bpf_iter_reg_target() to register itself.
    The needed information:
      target:           target name
      seq_ops:          the seq_file operations for the target
      init_seq_private  target callback to initialize seq_priv during file open
      fini_seq_private  target callback to clean up seq_priv during file release
      seq_priv_size:    the private_data size needed by the seq_file
                        operations
    
    The target name represents a target which provides a seq_ops
    for iterating objects.
    
    The target can provide two callback functions, init_seq_private
    and fini_seq_private, called during file open/release time.
    For example, /proc/net/{tcp6, ipv6_route, netlink, ...}, net
    name space needs to be setup properly during file open and
    released properly during file release.
    
    Function bpf_iter_unreg_target() is also implemented to unregister
    a particular target.
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
    Link: https://lore.kernel.org/bpf/20200509175859.2474669-1-yhs@fb.com
    ae24345d
bpf_iter.c 1.34 KB