On 3/18/20 6:16 PM, Martin KaFai Lau wrote:
This set adds "struct_ops" support to bpftool. The first two patches improve the btf_dumper in bpftool. Patch 1: print the enum's name (if it is found) instead of the enum's value. Patch 2: print a char[] as a string if all characters are printable. "struct_ops" stores the prog_id in a func ptr. Instead of printing a prog_id, patch 3 adds an option to btf_dumper to allow a func ptr's value to be printed with the full func_proto info and the prog_name. Patch 4 implements the "struct_ops" bpftool command. v4: - Return -EINVAL in patch 1 (Andrii) v3: - Check for "case 1:" in patch 1 (Andrii) v2: - Typo fixes in comment and doc in patch 4 (Quentin) - Link to a few other man pages in doc in patch 4 (Quentin) - Alphabet ordering in include files in patch 4 (Quentin) - Use GET_ARG() in patch 4 (Quentin) Martin KaFai Lau (4): bpftool: Print the enum's name instead of value bpftool: Print as a string for char array bpftool: Translate prog_id to its bpf prog_name bpftool: Add struct_ops support .../Documentation/bpftool-struct_ops.rst | 116 ++++ tools/bpf/bpftool/bash-completion/bpftool | 28 + tools/bpf/bpftool/btf_dumper.c | 199 +++++- tools/bpf/bpftool/main.c | 3 +- tools/bpf/bpftool/main.h | 2 + tools/bpf/bpftool/struct_ops.c | 596 ++++++++++++++++++ 6 files changed, 927 insertions(+), 17 deletions(-) create mode 100644 tools/bpf/bpftool/Documentation/bpftool-struct_ops.rst create mode 100644 tools/bpf/bpftool/struct_ops.c
Applied, thanks!