Function report |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-28 13:01:33 |
Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Same as above, but for the case that dst_reg holds a constant and src_reg is* the variable reg.
Proto:static void reg_set_min_max_inv(struct bpf_reg_state *true_reg, struct bpf_reg_state *false_reg, u64 val, u8 opcode, bool is_jmp32)
Type:void
Parameter:
Type | Parameter | Name |
---|---|---|
struct bpf_reg_state * | true_reg | |
struct bpf_reg_state * | false_reg | |
u64 | val | |
u8 | opcode | |
bool | is_jmp32 |
5701 | If __is_pointer_value(TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., false_reg) Then Return |
5731 | Break |
5735 | false_umin = If opcode == BPF_JGT Then val Else val + 1 |
5738 | If is_jmp32 Then |
5742 | minimum possible (u64)value = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value( minimum possible (u64)value , false_umin) |
5743 | maximum possible (u64)value = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value( maximum possible (u64)value , true_umax) |
5744 | Break |
5746 | Case opcode == SGE is signed '>=', GE in x86 |
5747 | Case opcode == SGT is signed '>', GT in x86 |
5749 | false_smin = If opcode == SGT is signed '>', GT in x86 Then sval Else sval + 1 |
5750 | true_smax = If opcode == SGT is signed '>', GT in x86 Then sval - 1 Else sval |
5752 | If is_jmp32 && Not Return true if VAL is compared with a s64 sign extended from s32, and they* are with the same signedness. Then Break |
5754 | minimum possible (s64)value = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value( minimum possible (s64)value , false_smin) |
5755 | maximum possible (s64)value = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value( maximum possible (s64)value , true_smax) |
5756 | Break |
5758 | Case opcode == LE is unsigned, '<=' |
5759 | Case opcode == LT is unsigned, '<' |
5761 | false_umax = If opcode == LT is unsigned, '<' Then val Else val - 1 |
5762 | true_umin = If opcode == LT is unsigned, '<' Then val + 1 Else val |
5764 | If is_jmp32 Then |
5768 | maximum possible (u64)value = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value( maximum possible (u64)value , false_umax) |
5769 | minimum possible (u64)value = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value( minimum possible (u64)value , true_umin) |
5770 | Break |
5772 | Case opcode == SLE is signed, '<=' |
5773 | Case opcode == SLT is signed, '<' |
5775 | false_smax = If opcode == SLT is signed, '<' Then sval Else sval - 1 |
5776 | true_smin = If opcode == SLT is signed, '<' Then sval + 1 Else sval |
5778 | If is_jmp32 && Not Return true if VAL is compared with a s64 sign extended from s32, and they* are with the same signedness. Then Break |
5780 | maximum possible (s64)value = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value( maximum possible (s64)value , false_smax) |
5781 | minimum possible (s64)value = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value( minimum possible (s64)value , true_smin) |
5782 | Break |
5784 | Default |
5785 | Break |
5793 | If is_jmp32 Then |
5795 | __reg_bound_offset32(true_reg) |
Name | Describe |
---|---|
check_cond_jmp_op |
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 |