函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:btf_parse_hdr

函数原型:static int btf_parse_hdr(struct btf_verifier_env *env)

返回类型:int

参数:

类型参数名称
struct btf_verifier_env *env
3298  btf等于btf
3299  btf_data_size等于data_size
3301  如果btf_data_size小于offsetof(structbtf_header, hdr_len)加hdr_len的长度则
3303  btf_verifier_log(env, "hdr_len not found")
3304  返回:负EINVAL
3307  hdr等于data
3308  hdr_len等于hdr_len
3309  如果btf_data_size小于hdr_len
3310  btf_verifier_log(env, "btf_header not found")
3311  返回:负EINVAL
3315  如果hdr_len大于hdr的长度则
3316  expected_zero等于datahdr的长度
3317  end等于datahdr_len
3319 expected_zero小于end循环
3320  如果expected_zero
3321  btf_verifier_log(env, "Unsupported btf_header")
3322  返回:负E2BIG
3327  hdr_copy等于min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(u32, hdr_len, hdr的长度)
3328  内存复制( & hdr, data, hdr_copy)
3330  hdr等于hdr
3332  btf_verifier_log_hdr(env, btf_data_size)
3334  如果magic不等于BTF_MAGIC
3335  btf_verifier_log(env, "Invalid magic")
3336  返回:负EINVAL
3339  如果version不等于BTF_VERSION
3340  btf_verifier_log(env, "Unsupported version")
3341  返回:负Operation is not supported
3344  如果flags
3345  btf_verifier_log(env, "Unsupported flags")
3346  返回:负Operation is not supported
3349  如果btf_data_size恒等于hdr_len
3350  btf_verifier_log(env, "No data")
3351  返回:负EINVAL
3354  err等于btf_check_sec_info(env, btf_data_size)
3355  如果err则返回:err
3358  返回:0
调用者
名称描述
btf_parse
btf_parse_vmlinux