libbpf: Teach btf_dumper to emit stand-alone anonymous enum definitions
authorAndrii Nakryiko <andriin@fb.com>
Wed, 25 Sep 2019 20:37:45 +0000 (13:37 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 26 Sep 2019 12:38:29 +0000 (14:38 +0200)
commit39529a9948d8f67f39cb72bec914c1adab38562d
tree24023d8202f40bf30143a2956bcdfdd62d7e5159
parent4670d68b9254710fdeaf794cad54d8b2c9929e0a
libbpf: Teach btf_dumper to emit stand-alone anonymous enum definitions

BTF-to-C converter previously skipped anonymous enums in an assumption
that those are embedded in struct's field definitions. This is not
always the case and a lot of kernel constants are defined as part of
anonymous enums. This change fixes the logic by eagerly marking all
types as either referenced by any other type or not. This is enough to
distinguish two classes of anonymous enums and emit previously omitted
enum definitions.

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20190925203745.3173184-1-andriin@fb.com
tools/lib/bpf/btf_dump.c