函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\bpf\btf.c Create Date:2022-07-27 14:37:29
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:btf_func_proto_check

函数原型:static int btf_func_proto_check(struct btf_verifier_env *env, const struct btf_type *t)

返回类型:int

参数:

类型参数名称
struct btf_verifier_env *env
const struct btf_type *t
2873  btf等于btf
2874  args等于t加1
2875  nr_args等于btf_type_vlen(t)
2878  如果type
2879  ret_type_id等于type
2881  ret_type等于btf_type_by_id(btf, ret_type_id)
2882  如果非ret_type
2883  btf_verifier_log_type(env, t, "Invalid return type")
2884  返回:负EINVAL
2890  如果err则返回:err
2895  如果非btf_type_id_size(btf, & ret_type_id, NULL)则
2896  btf_verifier_log_type(env, t, "Invalid return type")
2897  返回:负EINVAL
2901  如果非nr_args则返回:0
2905  如果非type
2906  如果name_off
2907  btf_verifier_log_type(env, t, "Invalid arg#%u", nr_args)
2909  返回:负EINVAL
2911  nr_args自减
2914  err等于0
2915 i小于nr_args循环
2919  arg_type_id等于type
2920  arg_type等于btf_type_by_id(btf, arg_type_id)
2921  如果非arg_type
2922  btf_verifier_log_type(env, t, "Invalid arg#%u", i + 1)
2923  err等于负EINVAL
2924  退出
2930  btf_verifier_log_type(env, t, "Invalid arg#%u", i + 1)
2932  err等于负EINVAL
2933  退出
2939  如果err退出
2943  如果非btf_type_id_size(btf, & arg_type_id, NULL)则
2944  btf_verifier_log_type(env, t, "Invalid arg#%u", i + 1)
2945  err等于负EINVAL
2946  退出
2950  返回:err
调用者
名称描述
btf_check_all_types