函数逻辑报告 |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-27 14:20:47 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:check_attach_btf_id
函数原型:static int check_attach_btf_id(struct bpf_verifier_env *env)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct bpf_verifier_env * | env |
9519 | tgt_prog等于linked_prog |
9521 | prefix[]等于"btf_trace_" |
9525 | bool conservative = true |
9531 | 如果 Type of BPF program 不等于BPF_PROG_TYPE_TRACING则返回:0 |
9534 | 如果非btf_id则 |
9538 | btf等于bpf_prog_get_target_btf(prog) |
9539 | 如果非btf则 |
9540 | verbose(env, "FENTRY/FEXIT program can only be attached to another program annotated with BTF\n") |
9542 | 返回:负EINVAL |
9544 | t等于btf_type_by_id(btf, btf_id) |
9545 | 如果非t则 |
9549 | tname等于btf_name_by_offset(btf, name_off) |
9550 | 如果非tname则 |
9554 | 如果tgt_prog则 |
9555 | aux等于 Auxiliary fields |
9557 | 以i小于func_info_cnt循环如果type_id恒等于btf_id则 |
9562 | 如果subprog恒等于负1则 |
9566 | conservative等于unreliable |
9568 | 否则 |
9573 | 当: For some prog types 恒等于BPF_TRACE_RAW_TP |
9574 | 如果tgt_prog则 |
9579 | 如果非btf_type_is_typedef(t)则 |
9584 | 如果字符串指定长度比较则 |
9590 | t等于btf_type_by_id(btf, type) |
9591 | 如果非btf_type_is_ptr(t)则返回:负EINVAL |
9594 | t等于btf_type_by_id(btf, type) |
9595 | 如果非btf_type_is_func_proto(t)则返回:负EINVAL |
9604 | true if attaching to BTF-enabled raw tp = true |
9605 | 返回:0 |
9606 | 当: For some prog types 恒等于BPF_TRACE_FENTRY |
9607 | 当: For some prog types 恒等于BPF_TRACE_FEXIT |
9608 | 如果非btf_type_is_func(t)则 |
9613 | t等于btf_type_by_id(btf, type) |
9614 | 如果非btf_type_is_func_proto(t)则返回:负EINVAL |
9616 | tr等于bpf_trampoline_lookup(key) |
9623 | 如果addr则 |
9624 | trampoline等于tr |
9625 | 转到:out |
9627 | 如果tgt_prog且conservative则 |
9628 | BTF_KIND_FUNC_PROTO for valid attach_btf_id = NULL |
9629 | t = NULL |
9635 | 如果tgt_prog则 |
9636 | 如果非 Is our filter JIT'ed? 则 |
9642 | 如果 Type of BPF program 恒等于BPF_PROG_TYPE_TRACING则 |
9652 | 否则 |
9654 | 如果非addr则 |
9663 | trampoline等于tr |
9664 | out : |
9666 | 如果ret则bpf_trampoline_put(tr) |
9668 | 返回:ret |
9669 | 默认 |
9670 | 返回:负EINVAL |
名称 | 描述 |
---|---|
bpf_check |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |