Function report | 
Source Code:kernel\bpf\verifier.c | 
Create Date:2022-07-28 12:57:03 | 
| Last Modify:2022-05-19 20:02:10 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:check_reg_arg
Proto:static int check_reg_arg(struct bpf_verifier_env *env, u32 regno, enum reg_arg_type t)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct bpf_verifier_env * | env | |
| u32 | regno | |
| enum reg_arg_type | t | 
| 1428 | vstate = current verifier state | 
| 1429 | state = call stack tracking [curframe] | 
| 1434 | If regno >= BPF has 10 general purpose 64-bit registers and stack frame. Then | 
| 1440 | rw64 = This function is supposed to be used by the following 32-bit optimization* code only. It returns TRUE if the source or destination register operates* on 64-bit, otherwise return FALSE. | 
| 1441 | If t == register is used as source operand Then | 
| 1448 | If regno == BPF_REG_FP Then Return 0 | 
| 1451 | If rw64 Then mark_insn_zext(env, reg) | 
| 1456 | Else | 
| 1458 | If regno == BPF_REG_FP Then | 
| 1464 | If t == register is used as destination operand Then mark_reg_unknown(env, regs, regno) | 
| 1467 | Return 0 | 
| Name | Describe | 
|---|---|
| check_xadd | |
| check_func_arg | |
| check_func_call | |
| check_helper_call | |
| check_alu_op | heck validity of 32-bit and 64-bit arithmetic operations | 
| check_cond_jmp_op | |
| check_ld_imm | verify BPF_LD_IMM64 instruction | 
| check_ld_abs | verify safety of LD_ABS|LD_IND instructions:* - they can only appear in the programs where ctx == skb* - since they are wrappers of function calls, they scratch R1-R5 registers,* preserve R6-R9, and store return value into R0* Implicit input:* ctx == skb | 
| do_check | 
| 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  |