On Wed, May 6, 2020 at 10:39 PM Yonghong Song <yhs@xxxxxx> wrote: > > 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: Yonghong Song <yhs@xxxxxx> > --- Lost my initial ack? :) Here we go again: Acked-by: Andrii Nakryiko <andriin@xxxxxx> > include/linux/bpf.h | 15 +++++++++++ > kernel/bpf/Makefile | 2 +- > kernel/bpf/bpf_iter.c | 59 +++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 75 insertions(+), 1 deletion(-) > create mode 100644 kernel/bpf/bpf_iter.c > [...]