]> git.proxmox.com Git - systemd.git/blob - src/shared/bpf-dlopen.h
New upstream version 249~rc1
[systemd.git] / src / shared / bpf-dlopen.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 #if HAVE_LIBBPF
5
6 #include <bpf/bpf.h>
7 #include <bpf/libbpf.h>
8
9 extern struct bpf_link* (*sym_bpf_program__attach_cgroup)(struct bpf_program *, int);
10 extern long (*sym_libbpf_get_error)(const void *);
11 extern int (*sym_bpf_link__fd)(const struct bpf_link *);
12 extern int (*sym_bpf_link__destroy)(struct bpf_link *);
13 extern int (*sym_bpf_map__fd)(const struct bpf_map *);
14 extern const char* (*sym_bpf_map__name)(const struct bpf_map *);
15 extern int (*sym_bpf_map__resize)(struct bpf_map *, __u32);
16 extern int (*sym_bpf_map_update_elem)(int, const void *, const void *, __u64);
17 /* The *_skeleton APIs are autogenerated by bpftool, the targets can be found
18 * in ./build/src/core/bpf/socket_bind/socket-bind.skel.h */
19 extern int (*sym_bpf_object__open_skeleton)(struct bpf_object_skeleton *, const struct bpf_object_open_opts *);
20 extern int (*sym_bpf_object__load_skeleton)(struct bpf_object_skeleton *);
21 extern int (*sym_bpf_object__attach_skeleton)(struct bpf_object_skeleton *);
22 extern void (*sym_bpf_object__detach_skeleton)(struct bpf_object_skeleton *);
23 extern void (*sym_bpf_object__destroy_skeleton)(struct bpf_object_skeleton *);
24 extern bool (*sym_bpf_probe_prog_type)(enum bpf_prog_type, __u32);
25 extern const char* (*sym_bpf_program__name)(const struct bpf_program *);
26
27 #endif
28
29 int dlopen_bpf(void);