On Tue, Oct 4, 2022 at 4:12 PM Daniel Borkmann <daniel@xxxxxxxxxxxxx> wrote: > > Minor signature change for bpf_prog_query() API, no change in behavior. > An alternative option would be to add a new libbpf introspection API > with close to 1:1 implementation of bpf_prog_query() but with changed > prog_ids pointer. Given the change is just minor enough, we went for > the first option here. > > Co-developed-by: Nikolay Aleksandrov <razor@xxxxxxxxxxxxx> > Signed-off-by: Nikolay Aleksandrov <razor@xxxxxxxxxxxxx> > Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx> > --- > tools/lib/bpf/bpf.c | 2 +- > tools/lib/bpf/bpf.h | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c > index 1d49a0352836..18b1e91cc469 100644 > --- a/tools/lib/bpf/bpf.c > +++ b/tools/lib/bpf/bpf.c > @@ -846,7 +846,7 @@ int bpf_prog_query_opts(int target_fd, > } > > int bpf_prog_query(int target_fd, enum bpf_attach_type type, __u32 query_flags, > - __u32 *attach_flags, __u32 *prog_ids, __u32 *prog_cnt) > + __u32 *attach_flags, void *prog_ids, __u32 *prog_cnt) > { > LIBBPF_OPTS(bpf_prog_query_opts, opts); > int ret; > diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h > index 9c50beabdd14..bef7a5282188 100644 > --- a/tools/lib/bpf/bpf.h > +++ b/tools/lib/bpf/bpf.h > @@ -386,7 +386,7 @@ LIBBPF_API int bpf_prog_query_opts(int target_fd, > struct bpf_prog_query_opts *opts); > LIBBPF_API int bpf_prog_query(int target_fd, enum bpf_attach_type type, > __u32 query_flags, __u32 *attach_flags, > - __u32 *prog_ids, __u32 *prog_cnt); > + void *prog_ids, __u32 *prog_cnt); ugh, this is pretty nasty. Let's not do that. Have you though about re-using prog_attach_flags (we can add a union to name the field differently) to return prios instead of adding struct bpf_query_info? This would be consistent with other uses cases that use PROG_ATTACH and PROG_QUERY approach? > > LIBBPF_API int bpf_raw_tracepoint_open(const char *name, int prog_fd); > LIBBPF_API int bpf_task_fd_query(int pid, int fd, __u32 flags, char *buf, > -- > 2.34.1 >