diff options
| author | Martin KaFai Lau <[email protected]> | 2018-12-13 18:41:46 +0000 |
|---|---|---|
| committer | Alexei Starovoitov <[email protected]> | 2018-12-14 22:17:34 +0000 |
| commit | 23127b33ec80e656921362d7dc82a0064bac20a2 (patch) | |
| tree | e60d4427daf6015702bbd039c5dfc64fc30e50e9 /tools/bpf/bpftool/prog.c | |
| parent | selftests/bpf: Fix sk lookup usage in test_sock_addr (diff) | |
| download | kernel-23127b33ec80e656921362d7dc82a0064bac20a2.tar.gz kernel-23127b33ec80e656921362d7dc82a0064bac20a2.zip | |
bpf: Create a new btf_name_by_offset() for non type name use case
The current btf_name_by_offset() is returning "(anon)" type name for
the offset == 0 case and "(invalid-name-offset)" for the out-of-bound
offset case.
It fits well for the internal BTF verbose log purpose which
is focusing on type. For example,
offset == 0 => "(anon)" => anonymous type/name.
Returning non-NULL for the bad offset case is needed
during the BTF verification process because the BTF verifier may
complain about another field first before discovering the name_off
is invalid.
However, it may not be ideal for the newer use case which does not
necessary mean type name. For example, when logging line_info
in the BPF verifier in the next patch, it is better to log an
empty src line instead of logging "(anon)".
The existing bpf_name_by_offset() is renamed to __bpf_name_by_offset()
and static to btf.c.
A new bpf_name_by_offset() is added for generic context usage. It
returns "\0" for name_off == 0 (note that btf->strings[0] is "\0")
and NULL for invalid offset. It allows the caller to decide
what is the best output in its context.
The new btf_name_by_offset() is overlapped with btf_name_offset_valid().
Hence, btf_name_offset_valid() is removed from btf.h to keep the btf.h API
minimal. The existing btf_name_offset_valid() usage in btf.c could also be
replaced later.
Signed-off-by: Martin KaFai Lau <[email protected]>
Acked-by: Yonghong Song <[email protected]>
Signed-off-by: Alexei Starovoitov <[email protected]>
Diffstat (limited to 'tools/bpf/bpftool/prog.c')
0 files changed, 0 insertions, 0 deletions
