[PATCH 47/59] perf tools: Add add_cache callback to struct parse_events_ops
From: Jiri Olsa <hidden>
Date: 2021-11-08 13:42:05
Subsystem:
performance events subsystem, the rest · Maintainers:
Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Namhyung Kim, Linus Torvalds
Adding add_cache callback to struct parse_events_ops, to allow custom cache parsing code. Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- tools/lib/perf/include/internal/parse-events.h | 6 ++++++ tools/perf/util/parse-events.c | 2 ++ tools/perf/util/parse-events.h | 5 ----- tools/perf/util/parse-events.y | 6 +++--- 4 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/tools/lib/perf/include/internal/parse-events.h b/tools/lib/perf/include/internal/parse-events.h
index cbcf799f8969..bc938cddb3d7 100644
--- a/tools/lib/perf/include/internal/parse-events.h
+++ b/tools/lib/perf/include/internal/parse-events.h@@ -107,6 +107,12 @@ struct parse_events_ops { struct list_head *list, u32 type, u64 config, struct list_head *head_config); + + int (*add_cache)(struct parse_events_state *parse_state, + struct list_head *list, + char *type, char *op_result1, char *op_result2, + struct parse_events_error *err, + struct list_head *head_config); }; struct parse_events_state {
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index a05e1bdb4e60..6bffb67f8c24 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c@@ -339,6 +339,7 @@ static int config_attr(struct perf_event_attr *attr, struct parse_events_error *err, config_term_func_t config_term); +static int parse_events_add_cache(struct parse_events_state *parse_state, struct list_head *list, char *type, char *op_result1, char *op_result2,
@@ -2906,4 +2907,5 @@ static struct parse_events_ops parse_state_ops = { .add_pmu = parse_events_add_pmu, .add_pmu_multi = parse_events_multi_pmu_add, .add_numeric = parse_events_add_numeric, + .add_cache = parse_events_add_cache, };
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
index 40d192cace03..91c3f5bdf434 100644
--- a/tools/perf/util/parse-events.h
+++ b/tools/perf/util/parse-events.h@@ -82,11 +82,6 @@ int parse_events_load_bpf_obj(struct parse_events_state *parse_state, int parse_events_add_tool(struct parse_events_state *parse_state, struct list_head *list, int tool_event); -int parse_events_add_cache(struct parse_events_state *parse_state, - struct list_head *list, - char *type, char *op_result1, char *op_result2, - struct parse_events_error *error, - struct list_head *head_config); int parse_events_add_breakpoint(struct parse_events_state *parse_state, struct list_head *list, u64 addr, char *type, u64 len);
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index b23691397374..6dcd1e1677e9 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y@@ -486,7 +486,7 @@ PE_NAME_CACHE_TYPE '-' PE_NAME_CACHE_OP_RESULT '-' PE_NAME_CACHE_OP_RESULT opt_e list = alloc_list(); ABORT_ON(!list); - err = parse_events_add_cache(parse_state, list, $1, $3, $5, error, $6); + err = parse_state->ops->add_cache(parse_state, list, $1, $3, $5, error, $6); parse_events_terms__delete($6); free($1); free($3);
@@ -507,7 +507,7 @@ PE_NAME_CACHE_TYPE '-' PE_NAME_CACHE_OP_RESULT opt_event_config list = alloc_list(); ABORT_ON(!list); - err = parse_events_add_cache(parse_state, list, $1, $3, NULL, error, $4); + err = parse_state->ops->add_cache(parse_state, list, $1, $3, NULL, error, $4); parse_events_terms__delete($4); free($1); free($3);
@@ -527,7 +527,7 @@ PE_NAME_CACHE_TYPE opt_event_config list = alloc_list(); ABORT_ON(!list); - err = parse_events_add_cache(parse_state, list, $1, NULL, NULL, error, $2); + err = parse_state->ops->add_cache(parse_state, list, $1, NULL, NULL, error, $2); parse_events_terms__delete($2); free($1); if (err) {
--
2.31.1