Function report |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-28 13:02:36 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:check_btf_func
Proto:static int check_btf_func(struct bpf_verifier_env *env, const union bpf_attr *attr, union bpf_attr __user *uattr)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct bpf_verifier_env * | env | |
const union bpf_attr * | attr | |
union bpf_attr __user * | uattr |
6669 | krec_size = sizeof(structbpf_func_info) |
6671 | struct bpf_func_info_aux * info_aux = NULL |
6676 | prev_offset = 0 |
6677 | ret = 0 |
6680 | If Not nfuncs Then Return 0 |
6683 | If nfuncs != subprog_cnt Then |
6685 | Return -EINVAL |
6689 | If urec_size < The minimum supported BTF func info size || urec_size > MAX_FUNCINFO_REC_SIZE || urec_size % sizeof(u32) Then |
6696 | prog = BPF program being verified |
6699 | urecord = u64_to_user_ptr(func_info) |
6700 | min_size = min_t - return minimum of two values, using the specified type*@type: data type to use*@x: first value*@y: second value(u32, krec_size, urec_size) |
6705 | info_aux = kcalloc - allocate memory for an array. The memory is set to zero.*@n: number of elements.*@size: element size.*@flags: the type of memory to allocate (see kmalloc). |
6711 | If ret Then |
6717 | If Write a simple value into user space(min_size, & userspace bpf_func_info size ) Then ret = -EFAULT |
6720 | Go to err_free |
6723 | If copy_from_user( & krecord[i], urecord, min_size) Then |
6729 | If i == 0 Then |
6730 | If insn_off Then |
6737 | Else if insn_off <= prev_offset Then |
6738 | verbose(env, "same or smaller insn offset (%u) than previous func info record (%u)", insn_off, prev_offset) |
6742 | Go to err_free |
6745 | If insn idx of function entry point != insn_off Then |
6748 | Go to err_free |
6752 | type = btf_type_by_id(btf, type_id) |
6757 | Go to err_free |
6759 | prev_offset = insn_off |
6764 | func_info_cnt = nfuncs |
6765 | func_info_aux = info_aux |
6766 | Return 0 |
6768 | err_free : |
6771 | Return ret |
Name | Describe |
---|---|
check_btf_info |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |