函数逻辑报告 |
Source Code:kernel\bpf\verifier.c |
Create Date:2022-07-27 14:15:23 |
| Last Modify:2022-05-19 20:02:10 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:mpute branch direction of the expression "if (reg opcode val) goto target;"* and return:* 1 - branch will be taken and "goto target" will be executed* 0 - branch will not be taken and fall-through to next insn* -1 - unknown
函数原型:static int is_branch_taken(struct bpf_reg_state *reg, u64 val, u8 opcode, bool is_jmp32)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct bpf_reg_state * | reg | |
| u64 | val | |
| u8 | opcode | |
| bool | is_jmp32 |
| 5435 | 如果__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., reg)则返回:负1 |
| 5438 | 如果is_jmp32则 |
| 5459 | 如果 maximum possible (u64)value 按位异或 minimum possible (u64)value 的值按位与1ULL左移31位则 |
| 5469 | 否则 |
| 5477 | 退出 |
| 5481 | 退出 |
| 5489 | 如果 minimum possible (u64)value 大于val则返回:1 |
| 5491 | 否则如果 maximum possible (u64)value 小于等于val则返回:0 |
| 5493 | 退出 |
| 5494 | 当:opcode恒等于SGT is signed '>', GT in x86 |
| 5495 | 如果 minimum possible (s64)value 大于sval则返回:1 |
| 5497 | 否则如果 maximum possible (s64)value 小于sval则返回:0 |
| 5499 | 退出 |
| 5500 | 当:opcode恒等于LT is unsigned, '<' |
| 5501 | 如果 maximum possible (u64)value 小于val则返回:1 |
| 5503 | 否则如果 minimum possible (u64)value 大于等于val则返回:0 |
| 5505 | 退出 |
| 5506 | 当:opcode恒等于SLT is signed, '<' |
| 5507 | 如果 maximum possible (s64)value 小于sval则返回:1 |
| 5509 | 否则如果 minimum possible (s64)value 大于等于sval则返回:0 |
| 5511 | 退出 |
| 5513 | 如果 minimum possible (u64)value 大于等于val则返回:1 |
| 5515 | 否则如果 maximum possible (u64)value 小于val则返回:0 |
| 5517 | 退出 |
| 5518 | 当:opcode恒等于SGE is signed '>=', GE in x86 |
| 5519 | 如果 minimum possible (s64)value 大于等于sval则返回:1 |
| 5521 | 否则如果 maximum possible (s64)value 小于sval则返回:0 |
| 5523 | 退出 |
| 5524 | 当:opcode恒等于LE is unsigned, '<=' |
| 5525 | 如果 maximum possible (u64)value 小于等于val则返回:1 |
| 5527 | 否则如果 minimum possible (u64)value 大于val则返回:0 |
| 5529 | 退出 |
| 5530 | 当:opcode恒等于SLE is signed, '<=' |
| 5531 | 如果 maximum possible (s64)value 小于等于sval则返回:1 |
| 5533 | 否则如果 minimum possible (s64)value 大于sval则返回:0 |
| 5535 | 退出 |
| 5538 | 返回:负1 |
| 名称 | 描述 |
|---|---|
| check_cond_jmp_op |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |