aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/btf.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lib/bpf/btf.h')
-rw-r--r--tools/lib/bpf/btf.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/lib/bpf/btf.h b/tools/lib/bpf/btf.h
index c7b399e81fce..ba4ffa831aa4 100644
--- a/tools/lib/bpf/btf.h
+++ b/tools/lib/bpf/btf.h
@@ -4,6 +4,7 @@
4#ifndef __LIBBPF_BTF_H 4#ifndef __LIBBPF_BTF_H
5#define __LIBBPF_BTF_H 5#define __LIBBPF_BTF_H
6 6
7#include <stdarg.h>
7#include <linux/types.h> 8#include <linux/types.h>
8 9
9#ifdef __cplusplus 10#ifdef __cplusplus
@@ -59,6 +60,8 @@ struct btf_ext_header {
59 60
60LIBBPF_API void btf__free(struct btf *btf); 61LIBBPF_API void btf__free(struct btf *btf);
61LIBBPF_API struct btf *btf__new(__u8 *data, __u32 size); 62LIBBPF_API struct btf *btf__new(__u8 *data, __u32 size);
63LIBBPF_API struct btf *btf__parse_elf(const char *path,
64 struct btf_ext **btf_ext);
62LIBBPF_API int btf__finalize_data(struct bpf_object *obj, struct btf *btf); 65LIBBPF_API int btf__finalize_data(struct bpf_object *obj, struct btf *btf);
63LIBBPF_API int btf__load(struct btf *btf); 66LIBBPF_API int btf__load(struct btf *btf);
64LIBBPF_API __s32 btf__find_by_name(const struct btf *btf, 67LIBBPF_API __s32 btf__find_by_name(const struct btf *btf,
@@ -100,6 +103,22 @@ struct btf_dedup_opts {
100LIBBPF_API int btf__dedup(struct btf *btf, struct btf_ext *btf_ext, 103LIBBPF_API int btf__dedup(struct btf *btf, struct btf_ext *btf_ext,
101 const struct btf_dedup_opts *opts); 104 const struct btf_dedup_opts *opts);
102 105
106struct btf_dump;
107
108struct btf_dump_opts {
109 void *ctx;
110};
111
112typedef void (*btf_dump_printf_fn_t)(void *ctx, const char *fmt, va_list args);
113
114LIBBPF_API struct btf_dump *btf_dump__new(const struct btf *btf,
115 const struct btf_ext *btf_ext,
116 const struct btf_dump_opts *opts,
117 btf_dump_printf_fn_t printf_fn);
118LIBBPF_API void btf_dump__free(struct btf_dump *d);
119
120LIBBPF_API int btf_dump__dump_type(struct btf_dump *d, __u32 id);
121
103#ifdef __cplusplus 122#ifdef __cplusplus
104} /* extern "C" */ 123} /* extern "C" */
105#endif 124#endif