mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-03 23:29:06 +08:00
libbpf: Add subskeleton scaffolding
In symmetry with bpf_object__open_skeleton(), bpf_object__open_subskeleton() performs the actual walking and linking of maps, progs, and globals described by bpf_*_skeleton objects. Signed-off-by: Delyan Kratunov <delyank@fb.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/6942a46fbe20e7ebf970affcca307ba616985b15.1647473511.git.delyank@fb.com
This commit is contained in:
committed by
Andrii Nakryiko
parent
e7084d4363
commit
cc4ef17c78
29
src/libbpf.h
29
src/libbpf.h
@@ -1312,6 +1312,35 @@ LIBBPF_API int bpf_object__attach_skeleton(struct bpf_object_skeleton *s);
|
||||
LIBBPF_API void bpf_object__detach_skeleton(struct bpf_object_skeleton *s);
|
||||
LIBBPF_API void bpf_object__destroy_skeleton(struct bpf_object_skeleton *s);
|
||||
|
||||
struct bpf_var_skeleton {
|
||||
const char *name;
|
||||
struct bpf_map **map;
|
||||
void **addr;
|
||||
};
|
||||
|
||||
struct bpf_object_subskeleton {
|
||||
size_t sz; /* size of this struct, for forward/backward compatibility */
|
||||
|
||||
const struct bpf_object *obj;
|
||||
|
||||
int map_cnt;
|
||||
int map_skel_sz; /* sizeof(struct bpf_map_skeleton) */
|
||||
struct bpf_map_skeleton *maps;
|
||||
|
||||
int prog_cnt;
|
||||
int prog_skel_sz; /* sizeof(struct bpf_prog_skeleton) */
|
||||
struct bpf_prog_skeleton *progs;
|
||||
|
||||
int var_cnt;
|
||||
int var_skel_sz; /* sizeof(struct bpf_var_skeleton) */
|
||||
struct bpf_var_skeleton *vars;
|
||||
};
|
||||
|
||||
LIBBPF_API int
|
||||
bpf_object__open_subskeleton(struct bpf_object_subskeleton *s);
|
||||
LIBBPF_API void
|
||||
bpf_object__destroy_subskeleton(struct bpf_object_subskeleton *s);
|
||||
|
||||
struct gen_loader_opts {
|
||||
size_t sz; /* size of this struct, for forward/backward compatiblity */
|
||||
const char *data;
|
||||
|
||||
Reference in New Issue
Block a user