函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:btf_parse_vmlinux

函数原型:struct btf *btf_parse_vmlinux(void)

返回类型:struct btf

参数:

3551  struct btf_verifier_env * env = NULL
3553  struct btf * btf = NULL
3556  env等于分配内存并置零
3557  如果非env则返回:错误号
3560  log等于log
3561  level等于kernel internal flag
3563  btf等于分配内存并置零
3564  如果非btf
3565  err等于负ENOMEM
3566  转到:errout
3568  btf等于btf
3570  data等于_binary__btf_vmlinux_bin_start
3571  data_size等于_binary__btf_vmlinux_bin_end_binary__btf_vmlinux_bin_start
3574  err等于btf_parse_hdr(env)
3575  如果err则转到:errout
3578  nohdr_data等于datahdr_len
3580  err等于btf_parse_str_sec(env)
3581  如果err则转到:errout
3584  err等于btf_check_all_metas(env)
3585  如果err则转到:errout
3589 i小于等于nr_types循环
3593  t等于btf_type_by_id(btf, i)
3594  如果非__btf_type_is_struct(t)则继续下一循环
3596  tname等于__btf_name_by_offset(btf, name_off)
3597  如果非字符串比较
3599  t等于t
3600  退出
3603  如果i大于nr_types
3604  err等于负ENOENT
3605  转到:errout
3608  btf_verifier_env_free(env)
3609  _set - set a refcount's value*@r: the refcount*@n: value to which the refcount will be set
3610  返回:btf
3612  errout :
3613  btf_verifier_env_free(env)
3614  如果btf
3615  kvfree(types)
3616  kfree(btf)
3618  返回:错误号
调用者
名称描述
bpf_check