On Wed, Jul 24, 2019 at 1:10 PM Brian Vazquez <brianvv@xxxxxxxxxx> wrote: > > Make libbpf aware of new BPF_MAP_DUMP command and add bpf_map_dump and > bpf_map_dump_flags to use them from the library. > > Suggested-by: Stanislav Fomichev <sdf@xxxxxxxxxx> > Signed-off-by: Brian Vazquez <brianvv@xxxxxxxxxx> > --- > tools/lib/bpf/bpf.c | 28 ++++++++++++++++++++++++++++ > tools/lib/bpf/bpf.h | 4 ++++ > 2 files changed, 32 insertions(+) > > diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c > index c7d7993c44bb0..c1139b7db756a 100644 > --- a/tools/lib/bpf/bpf.c > +++ b/tools/lib/bpf/bpf.c > @@ -368,6 +368,34 @@ int bpf_map_update_elem(int fd, const void *key, const void *value, > return sys_bpf(BPF_MAP_UPDATE_ELEM, &attr, sizeof(attr)); > } > > +int bpf_map_dump(int fd, const void *prev_key, void *buf, void *buf_len) > +{ > + union bpf_attr attr; > + > + memset(&attr, 0, sizeof(attr)); > + attr.dump.map_fd = fd; > + attr.dump.prev_key = ptr_to_u64(prev_key); > + attr.dump.buf = ptr_to_u64(buf); > + attr.dump.buf_len = ptr_to_u64(buf_len); > + > + return sys_bpf(BPF_MAP_DUMP, &attr, sizeof(attr)); > +} This can call bpf_map_dump_flags internally to avoid code duplication? > + > +int bpf_map_dump_flags(int fd, const void *prev_key, void *buf, void *buf_len, > + __u64 flags) > +{ > + union bpf_attr attr; > + > + memset(&attr, 0, sizeof(attr)); > + attr.dump.map_fd = fd; > + attr.dump.prev_key = ptr_to_u64(prev_key); > + attr.dump.buf = ptr_to_u64(buf); > + attr.dump.buf_len = ptr_to_u64(buf_len); > + attr.dump.flags = flags; > + > + return sys_bpf(BPF_MAP_DUMP, &attr, sizeof(attr)); > +} > +