Libbpf eBPF macro BPF_CORE_READ_USER_INTO
The BPF_CORE_READ_USER_INTO
macro is a more performance-conscious variant of BPF_CORE_READ_USER
, in which final field is read into user-provided storage.
Definition
#define BPF_CORE_READ_USER_INTO(dst, src, a, ...) ({ \
___core_read(bpf_core_read_user, bpf_core_read_user, \
dst, (src), a, ##__VA_ARGS__) \
})
Usage
BPF_CORE_READ_USER_INTO
is very similar to BPF_CORE_READ_USER
, but instead of returning the value, it writes the value into the provided destination.
The following two code snippets are equivalent:
int x = BPF_CORE_READ_USER(s, a.b.c, d.e, f, g);
int x;
BPF_CORE_READ_USER_INTO(&x, s, a.b.c, d.e, f, g);
Please refer to the BPF_CORE_READ_USER
documentation for more details on usage of it and its variants like this macros.
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome