Hello, Here are 2 patches with which I want to probe what's the sentiments towards 2 changes: 1. Introduction of libbpf APIs similar to the bpf counterparts: bpf_core_field_exists, bpf_core_type_exists and bpf_core_enum_value_exists. Of those I've implemented only the first one and the reasoning behind this is in the patch itself. However, the TLDR is that there can be cases where based on the kernel version we have to make a decision in userspace what set of kprobes to use. There are currently no convenince api's to do this so one has to essentially open code the checks that can be provided by the aforementioned APIs. 2. The kernel has for_each_member macro but the libbpf library doesn't provide it, this results in having to open code members enumeration in various places such as in find_member_by_name/find_struct_ops_kern_types/bpf_map__init_kern_struct_ops/ parse_btf_map_def and in the newly introduced btf__field_exists. So how about bringing the convenience macro to libbpf? The reason why this series is RFC is if people agree with the proposed changed I'd be happy to extend it to add more *exists* APIs and do the conversion to using the for_each_member macro. Nikolay Borisov (2): libbpf: Add userspace version of for_each_member macro libbpf: Add btf__field_exists tools/lib/bpf/btf.c | 28 ++++++++++++++++++++++++++++ tools/lib/bpf/btf.h | 8 ++++++++ tools/lib/bpf/libbpf.map | 1 + 3 files changed, 37 insertions(+) -- 2.25.1