[PATCH 24/59] perf tools: Add loc_term and loc_val helpers to parse_events_term__str
From: Jiri Olsa <hidden>
Date: 2021-11-08 13:39:58
Subsystem:
performance events subsystem, the rest · Maintainers:
Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Namhyung Kim, Linus Torvalds
Move out bison specific code out of parse_events_term__str. Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- tools/perf/util/parse-events.c | 9 +++------ tools/perf/util/parse-events.h | 2 +- tools/perf/util/parse-events.y | 23 +++++++++++++++++++---- 3 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 60f48d797853..cf46930750b5 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c@@ -3210,17 +3210,14 @@ int parse_events_term__num(struct parse_events_term **term, int parse_events_term__str(struct parse_events_term **term, int type_term, char *config, char *str, - void *loc_term_, void *loc_val_) + int loc_term, int loc_val) { - YYLTYPE *loc_term = loc_term_; - YYLTYPE *loc_val = loc_val_; - struct parse_events_term temp = { .type_val = PARSE_EVENTS__TERM_TYPE_STR, .type_term = type_term, .config = config, - .err_term = loc_term ? loc_term->first_column : 0, - .err_val = loc_val ? loc_val->first_column : 0, + .err_term = loc_term, + .err_val = loc_val, }; return new_term(term, &temp, str, 0);
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
index 728074093c95..0590f613a38c 100644
--- a/tools/perf/util/parse-events.h
+++ b/tools/perf/util/parse-events.h@@ -158,7 +158,7 @@ int parse_events_term__num(struct parse_events_term **term, void *loc_term, void *loc_val); int parse_events_term__str(struct parse_events_term **term, int type_term, char *config, char *str, - void *loc_term, void *loc_val); + int loc_term, int loc_val); int parse_events_term__sym_hw(struct parse_events_term **term, char *config, unsigned idx); int parse_events_term__clone(struct parse_events_term **new,
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index 7d7bffed0dd7..76b089c572af 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y@@ -57,6 +57,20 @@ static void inc_group_count(struct list_head *list, parse_state->nr_groups++; } +static int loc_term(void *loc_term_) +{ + YYLTYPE *loc_term = loc_term_; + + return loc_term ? loc_term->first_column : 0; +} + +static int loc_val(void *loc_val_) +{ + YYLTYPE *loc_val = loc_val_; + + return loc_val ? loc_val->first_column : 0; +} + %} %token PE_START_EVENTS PE_START_TERMS
@@ -782,7 +796,7 @@ PE_NAME '=' PE_NAME struct parse_events_term *term; if (parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_USER, - $1, $3, &@1, &@3)) { + $1, $3, loc_term(&@1), loc_val(&@3))) { free($1); free($3); YYABORT;
@@ -839,7 +853,8 @@ PE_TERM '=' PE_NAME { struct parse_events_term *term; - if (parse_events_term__str(&term, (int)$1, NULL, $3, &@1, &@3)) { + if (parse_events_term__str(&term, (int)$1, NULL, $3, + loc_term(&@1), loc_val(&@3))) { free($3); YYABORT; }
@@ -867,7 +882,7 @@ PE_NAME array '=' PE_NAME struct parse_events_term *term; if (parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_USER, - $1, $4, &@1, &@4)) { + $1, $4, loc_term(&@1), loc_val(&@4))) { free($1); free($4); free($2.ranges);
@@ -898,7 +913,7 @@ PE_DRV_CFG_TERM ABORT_ON(!config); if (parse_events_term__str(&term, PARSE_EVENTS__TERM_TYPE_DRV_CFG, - config, $1, &@1, NULL)) { + config, $1, loc_term(&@1), 0)) { free($1); free(config); YYABORT;
--
2.31.1