函数逻辑报告 |
Source Code:kernel\trace\trace_events_filter.c |
Create Date:2022-07-27 13:33:44 |
| Last Modify:2022-05-22 20:19:57 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:process_system_preds
函数原型:static int process_system_preds(struct trace_subsystem_dir *dir, struct trace_array *tr, struct filter_parse_error *pe, char *filter_string)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct trace_subsystem_dir * | dir | |
| struct trace_array * | tr | |
| struct filter_parse_error * | pe | |
| char * | filter_string |
| 1597 | struct event_filter * filter = NULL |
| 1599 | LIST_HEAD(filter_list) |
| 1600 | bool fail = true |
| 1612 | filter_string等于kstrdup(filter_string, GFP_KERNEL) |
| 1613 | 如果非filter_string则转到:fail_mem |
| 1616 | err等于process_preds(event_call, filter_string, filter, pe) |
| 1617 | 如果err则 |
| 1618 | filter_disable(file) |
| 1619 | parse_error(pe, FILT_ERR_BAD_SUBSYS_FILTER, 0) |
| 1620 | append_filter_err(tr, pe, filter) |
| 1621 | 否则event_set_filtered_flag(file) |
| 1625 | filter_item等于分配内存并置零 |
| 1626 | 如果非filter_item则转到:fail_mem |
| 1629 | 添加链表项 |
| 1634 | filter等于event_filter(file) |
| 1635 | event_set_filter(file, filter) |
| 1636 | filter = NULL |
| 1638 | fail = false |
| 1651 | __free_filter(filter) |
| 1652 | 删除链表项 |
| 1653 | kfree(filter_item) |
| 1655 | 返回:0 |
| 1656 | fail : |
| 1659 | 删除链表项 |
| 1660 | kfree(filter_item) |
| 1662 | parse_error(pe, FILT_ERR_BAD_SUBSYS_FILTER, 0) |
| 1663 | 返回:负EINVAL |
| 1664 | fail_mem : |
| 1665 | __free_filter(filter) |
| 1667 | 如果非fail则tracepoint_synchronize_unregister() |
| 1670 | __free_filter(filter) |
| 1671 | 删除链表项 |
| 1672 | kfree(filter_item) |
| 1674 | 返回:负ENOMEM |
| 名称 | 描述 |
|---|---|
| create_system_filter | reate_system_filter - create a filter for an event_subsystem*@system: event_subsystem to create a filter for*@filter_str: filter string*@filterp: out param for created filter (always updated on return)* Identical to create_filter() except that it creates |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |