Function report |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-28 12:56:54 |
| Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Parentage chain of this register (or stack slot) should take care of all* issues like callee-saved registers, stack slot allocation time, etc.
Proto:static int mark_reg_read(struct bpf_verifier_env *env, const struct bpf_reg_state *state, struct bpf_reg_state *parent, u8 flag)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct bpf_verifier_env * | env | |
| const struct bpf_reg_state * | state | |
| struct bpf_reg_state * | parent | |
| u8 | flag |
| 1267 | cnt = 0 |
| 1271 | If writes && live & g was written first, screening off later reads Then Break |
| 1273 | If live & liveness won't be updating this register anymore Then |
| 1274 | verbose(env, "verifier BUG type %s var_off %lld off %d\n", string representation of 'enum bpf_reg_type' [ Ordering of fields matters. See states_equal() ], value, Fixed part of pointer offset, pointer types only ) |
| 1277 | Return -EFAULT |
| 1282 | If (live & REG_LIVE_READ) == flag || live & likewise, but full 64-bit content matters Then Break |
| 1297 | If flag == likewise, but full 64-bit content matters Then live &= ~g was read, so we're sensitive to initial value |
| 1301 | writes = true |
| 1302 | cnt++ |
| 1305 | If longest register parentage chain walked for liveness marking < cnt Then longest register parentage chain walked for liveness marking = cnt |
| 1307 | Return 0 |
| Name | Describe |
|---|---|
| check_reg_arg | |
| check_stack_read | |
| check_stack_boundary | when register 'regno' is passed into function that will read 'access_size'* bytes from that pointer, make sure that it's within stack boundary* and all elements of stack are initialized |
| propagate_liveness_reg | Return 0 if no propagation happened. Return negative error code if error* happened. Otherwise, return the propagated bit. |
| 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 |