函数逻辑报告 |
Source Code:kernel\events\core.c |
Create Date:2022-07-27 14:59:30 |
Last Modify:2022-05-20 07:50:19 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Address filter string parser
函数原型:static int perf_event_parse_addr_filter(struct perf_event *event, char *fstr, struct list_head *filters)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct perf_event * | event | |
char * | fstr | |
struct list_head * | filters |
9568 | struct perf_addr_filter * filter = NULL |
9571 | state等于IF_STATE_ACTION |
9572 | kernel等于0 |
9575 | orig等于fstr等于kstrdup(fstr, GFP_KERNEL) |
9580 | static const enum perf_addr_filter_action_t actions[] = {[IF_ACT_FILTER] = PERF_ADDR_FILTER_ACTION_FILTER, [IF_ACT_START] = PERF_ADDR_FILTER_ACTION_START, [IF_ACT_STOP] = PERF_ADDR_FILTER_ACTION_STOP, } |
9587 | 如果非start则继续下一循环 |
9591 | 如果state恒等于IF_STATE_ACTION则 |
9599 | 当:token恒等于IF_ACT_FILTER |
9600 | 当:token恒等于IF_ACT_START |
9601 | 当:token恒等于IF_ACT_STOP |
9609 | 当:token恒等于IF_SRC_KERNELADDR |
9610 | 当:token恒等于IF_SRC_KERNEL |
9611 | kernel等于1 |
9614 | 当:token恒等于IF_SRC_FILEADDR |
9615 | 当:token恒等于IF_SRC_FILE |
9616 | 如果state不等于IF_STATE_SOURCE则转到:fail |
9619 | to等于0 |
9624 | 如果token恒等于IF_SRC_KERNEL或token恒等于IF_SRC_FILE则 |
9625 | to等于0 |
9631 | 如果token恒等于IF_SRC_FILE或token恒等于IF_SRC_FILEADDR则 |
9632 | fpos等于如果token恒等于IF_SRC_FILE则2否则1 |
9635 | 如果非filename则 |
9641 | state等于IF_STATE_END |
9642 | 退出 |
9644 | 默认 |
9645 | 转到:fail |
9653 | 如果state恒等于IF_STATE_END则 |
9655 | 如果kernel且exclude_kernel则转到:fail |
9662 | 如果action恒等于PERF_ADDR_FILTER_ACTION_FILTER且非size则转到:fail |
9666 | 如果非kernel则 |
9678 | ret等于负EOPNOTSUPP |
9679 | 如果非task则转到:fail_free_name |
9683 | ret等于kern_path(filename, llow links at the end , & path) |
9685 | 如果ret则转到:fail_free_name |
9689 | filename = NULL |
9697 | nr_file_filters自加 |
9701 | state等于IF_STATE_ACTION |
9702 | filter = NULL |
9706 | 如果state不等于IF_STATE_ACTION则转到:fail |
9711 | 返回:0 |
9713 | fail_free_name : |
9715 | fail : |
9716 | free_filters_list(filters) |
9719 | 返回:ret |
名称 | 描述 |
---|---|
perf_event_set_addr_filter |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |