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 |