函数逻辑报告 | 
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 | 
| 注解内核,赢得工具 | 下载SCCT | English | 
函数名称:btf_parse_hdr
函数原型:static int btf_parse_hdr(struct btf_verifier_env *env)
返回类型:int
参数:
| 类型 | 参数 | 名称 | 
|---|---|---|
| struct btf_verifier_env * | env | 
| 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 | 
| 3309 | 如果btf_data_size小于hdr_len则 | 
| 3310 | btf_verifier_log(env, "btf_header not found") | 
| 3311 | 返回:负EINVAL | 
| 3316 | expected_zero等于data加hdr的长度 | 
| 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的长度) | 
| 3332 | btf_verifier_log_hdr(env, btf_data_size) | 
| 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) | 
| 3358 | 返回:0 | 
| 名称 | 描述 | 
|---|---|
| btf_parse | |
| btf_parse_vmlinux | 
| 源代码转换工具 开放的插件接口  | X | 
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码  |