aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/bpf-loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/bpf-loader.c')
-rw-r--r--tools/perf/util/bpf-loader.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c
index e3afa1b60bb5..4c50411371db 100644
--- a/tools/perf/util/bpf-loader.c
+++ b/tools/perf/util/bpf-loader.c
@@ -34,10 +34,32 @@ struct bpf_prog_priv {
34 struct perf_probe_event pev; 34 struct perf_probe_event pev;
35}; 35};
36 36
37static bool libbpf_initialized;
38
39struct bpf_object *
40bpf__prepare_load_buffer(void *obj_buf, size_t obj_buf_sz, const char *name)
41{
42 struct bpf_object *obj;
43
44 if (!libbpf_initialized) {
45 libbpf_set_print(libbpf_warning,
46 libbpf_info,
47 libbpf_debug);
48 libbpf_initialized = true;
49 }
50
51 obj = bpf_object__open_buffer(obj_buf, obj_buf_sz, name);
52 if (IS_ERR(obj)) {
53 pr_debug("bpf: failed to load buffer\n");
54 return ERR_PTR(-EINVAL);
55 }
56
57 return obj;
58}
59
37struct bpf_object *bpf__prepare_load(const char *filename, bool source) 60struct bpf_object *bpf__prepare_load(const char *filename, bool source)
38{ 61{
39 struct bpf_object *obj; 62 struct bpf_object *obj;
40 static bool libbpf_initialized;
41 63
42 if (!libbpf_initialized) { 64 if (!libbpf_initialized) {
43 libbpf_set_print(libbpf_warning, 65 libbpf_set_print(libbpf_warning,