Add struct argument information in btf_func_model and such information will be used in arch specific function arch_prepare_bpf_trampoline() to prepare argument access properly in trampoline. Signed-off-by: Yonghong Song <yhs@xxxxxx> --- include/linux/bpf.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 20c26aed7896..173b42cf3940 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -726,10 +726,19 @@ enum bpf_cgroup_storage_type { */ #define MAX_BPF_FUNC_REG_ARGS 5 +/* The maximum number of struct arguments a single function may have. */ +#define MAX_BPF_FUNC_STRUCT_ARGS 2 + struct btf_func_model { u8 ret_size; u8 nr_args; u8 arg_size[MAX_BPF_FUNC_ARGS]; + /* The struct_arg_idx should be in increasing order like (0, 2, ...). + * The struct_arg_bsize encodes the struct field byte size + * for the corresponding struct argument index. + */ + u8 struct_arg_idx[MAX_BPF_FUNC_STRUCT_ARGS]; + u8 struct_arg_bsize[MAX_BPF_FUNC_STRUCT_ARGS]; }; /* Restore arguments before returning from trampoline to let original function -- 2.30.2