#include <linux/bpf.h>
#include <linux/fs.h>
#include <linux/filter.h>
#include <linux/kernel.h>
#include <linux/btf_ids.h>
struct bpf_iter_seq_prog_info { … };
static void *bpf_prog_seq_start(struct seq_file *seq, loff_t *pos)
{ … }
static void *bpf_prog_seq_next(struct seq_file *seq, void *v, loff_t *pos)
{ … }
struct bpf_iter__bpf_prog { … };
DEFINE_BPF_ITER_FUNC(bpf_prog, struct bpf_iter_meta *meta, struct bpf_prog *prog)
static int __bpf_prog_seq_show(struct seq_file *seq, void *v, bool in_stop)
{ … }
static int bpf_prog_seq_show(struct seq_file *seq, void *v)
{ … }
static void bpf_prog_seq_stop(struct seq_file *seq, void *v)
{ … }
static const struct seq_operations bpf_prog_seq_ops = …;
BTF_ID_LIST(btf_bpf_prog_id)
BTF_ID(…)
static const struct bpf_iter_seq_info bpf_prog_seq_info = …;
static struct bpf_iter_reg bpf_prog_reg_info = …;
static int __init bpf_prog_iter_init(void)
{ … }
late_initcall(bpf_prog_iter_init);