summaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/libbpf.c
diff options
context:
space:
mode:
authorAndrey Ignatov2019-02-15 00:01:43 +0100
committerDaniel Borkmann2019-02-15 15:20:54 +0100
commit789f6bab849e04ea029c09b81dc8401dc0268cf9 (patch)
tree376d9ca0066237549b9fca7c81001bbf517f9967 /tools/lib/bpf/libbpf.c
parentlibbpf: Introduce bpf_map__resize (diff)
downloadkernel-qcow2-linux-789f6bab849e04ea029c09b81dc8401dc0268cf9.tar.gz
kernel-qcow2-linux-789f6bab849e04ea029c09b81dc8401dc0268cf9.tar.xz
kernel-qcow2-linux-789f6bab849e04ea029c09b81dc8401dc0268cf9.zip
libbpf: Introduce bpf_object__btf
Add new accessor for bpf_object to get opaque struct btf * from it. struct btf * is needed for all operations with BTF and it's present in bpf_object. The only thing missing is a way to get it. Example use-case is to get BTF key_type_id and value_type_id for a map in bpf_object. It can be done with btf__get_map_kv_tids() but that function requires struct btf *. Similar API can be added for struct btf_ext but no use-case for it yet. Signed-off-by: Andrey Ignatov <rdna@fb.com> Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/lib/bpf/libbpf.c')
-rw-r--r--tools/lib/bpf/libbpf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 9597d4dace34..b38dcbe7460a 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -2331,6 +2331,11 @@ unsigned int bpf_object__kversion(struct bpf_object *obj)
return obj ? obj->kern_version : 0;
}
+struct btf *bpf_object__btf(struct bpf_object *obj)
+{
+ return obj ? obj->btf : NULL;
+}
+
int bpf_object__btf_fd(const struct bpf_object *obj)
{
return obj->btf ? btf__fd(obj->btf) : -1;