mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-26 11:19:06 +08:00
libbpf: Add ability to get/set per-program load flags
Add bpf_program__flags() API to retrieve prog_flags that will be (or were) supplied to BPF_PROG_LOAD command. Also add bpf_program__set_extra_flags() API to allow to set *extra* flags, in addition to those determined by program's SEC() definition. Such flags are logically OR'ed with libbpf-derived flags. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/20211111051758.92283-2-andrii@kernel.org
This commit is contained in:
committed by
Andrii Nakryiko
parent
932800b20b
commit
0e80b7dc3f
14
src/libbpf.c
14
src/libbpf.c
@@ -8262,6 +8262,20 @@ void bpf_program__set_expected_attach_type(struct bpf_program *prog,
|
||||
prog->expected_attach_type = type;
|
||||
}
|
||||
|
||||
__u32 bpf_program__flags(const struct bpf_program *prog)
|
||||
{
|
||||
return prog->prog_flags;
|
||||
}
|
||||
|
||||
int bpf_program__set_extra_flags(struct bpf_program *prog, __u32 extra_flags)
|
||||
{
|
||||
if (prog->obj->loaded)
|
||||
return libbpf_err(-EBUSY);
|
||||
|
||||
prog->prog_flags |= extra_flags;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define SEC_DEF(sec_pfx, ptype, atype, flags, ...) { \
|
||||
.sec = sec_pfx, \
|
||||
.prog_type = BPF_PROG_TYPE_##ptype, \
|
||||
|
||||
Reference in New Issue
Block a user