On Sat, Aug 1, 2020 at 10:04 AM Jiri Olsa <jo...@kernel.org> wrote:
>
> Adding btf_struct_walk function that walks through the
> struct type + given offset and returns following values:
>
>   enum bpf_struct_walk_result {
>        /* < 0 error */
>        WALK_SCALAR = 0,
>        WALK_PTR,
>        WALK_STRUCT,
>   };
>
> WALK_SCALAR - when SCALAR_VALUE is found
> WALK_PTR    - when pointer value is found, its ID is stored
>               in 'next_btf_id' output param
> WALK_STRUCT - when nested struct object is found, its ID is stored
>               in 'next_btf_id' output param
>
> It will be used in following patches to get all nested
> struct objects for given type and offset.
>
> The btf_struct_access now calls btf_struct_walk function,
> as long as it gets nested structs as return value.
>
> Signed-off-by: Jiri Olsa <jo...@kernel.org>
> ---

This turned out to be rather much more succinct and clean than I
imagined when I was originally proposing the struct iteration idea.
Great job at abstracting this!

Acked-by: Andrii Nakryiko <andr...@fb.com>

>  kernel/bpf/btf.c | 75 +++++++++++++++++++++++++++++++++++++++++-------
>  1 file changed, 65 insertions(+), 10 deletions(-)
>

[...]

Reply via email to