函数逻辑报告 |
Source Code:kernel\trace\trace_events_filter.c |
Create Date:2022-07-27 13:31:49 |
| Last Modify:2022-05-22 20:19:57 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Without going into a formal proof, this explains the method that is used in* parsing the logical expressions
函数原型:static struct prog_entry *predicate_parse(const char *str, int nr_parens, int nr_preds, parse_pred_fn parse_pred, void *data, struct filter_parse_error *pe)
返回类型:struct prog_entry
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| const char * | str | |
| int | nr_parens | |
| int | nr_preds | |
| parse_pred_fn | parse_pred | |
| void * | data | |
| struct filter_parse_error * | pe |
| 417 | char * inverts = NULL |
| 420 | invert等于0 |
| 423 | N等于0 |
| 426 | nr_preds加等于2 |
| 431 | prog_stack等于分配数组内存并置零 |
| 432 | 如果非prog_stack则 |
| 433 | parse_error(pe, - ENOMEM, 0) |
| 434 | 转到:out_free |
| 437 | 如果非inverts则 |
| 438 | parse_error(pe, - ENOMEM, 0) |
| 439 | 转到:out_free |
| 443 | prog等于prog_stack |
| 444 | top等于0 |
| 450 | 如果Note: isspace() must return false for %NUL-terminator ( * next)则继续下一循环 |
| 465 | 继续下一循环 |
| 469 | parse_error(pe, FILT_ERR_TOO_MANY_PREDS, next - str) |
| 470 | 转到:out_free |
| 477 | 如果len小于0则 |
| 483 | N自加 |
| 485 | ret等于负1 |
| 486 | 当1循环 |
| 488 | 如果Note: isspace() must return false for %NUL-terminator ( * next)则继续下一循环 |
| 494 | 退出 |
| 503 | 默认 |
| 504 | parse_error(pe, FILT_ERR_TOO_MANY_PREDS, next - str) |
| 506 | 转到:out_free |
| 511 | 如果top按位与PROCESS_AND则 |
| 513 | top与等于PROCESS_AND的反 |
| 515 | 如果next恒等于'&'则 |
| 516 | top或等于PROCESS_AND |
| 517 | 退出 |
| 519 | 如果top按位与PROCESS_OR则 |
| 521 | top与等于PROCESS_OR的反 |
| 523 | 如果next恒等于'|'则 |
| 524 | top或等于PROCESS_OR |
| 525 | 退出 |
| 536 | top自减 |
| 539 | out : |
| 542 | parse_error(pe, FILT_ERR_TOO_MANY_OPEN, ptr - str) |
| 543 | 转到:out_free |
| 546 | 如果非N则 |
| 553 | pred = NULL |
| 554 | target等于1 |
| 555 | pred = NULL |
| 556 | target等于0 |
| 558 | when_to_branch = false |
| 563 | 如果when_to_branch恒等于when_to_branch则target等于target |
| 569 | invert等于inverts[i]按位异或when_to_branch |
| 570 | when_to_branch等于invert |
| 580 | 返回:prog |
| 581 | out_free : |
| 584 | 如果prog_stack则 |
| 589 | 返回:错误号 |
| 名称 | 描述 |
|---|---|
| process_preds |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |