diff options
author | Jiri Olsa <jolsa@kernel.org> | 2017-02-17 09:00:55 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-02-17 15:27:54 -0500 |
commit | 67b49b38f7bd6f34319b540ce824d5697241b3a8 (patch) | |
tree | 5782bf883d6c04b181b151e51405636799524a49 /tools/perf/util/parse-events.c | |
parent | 85e0d509654c2e2e58b29e50a883acd4c4e8807d (diff) |
perf tools: Move new_term arguments into struct parse_events_term template
We need to add yet another parameter to new_term function in following
patch, so it's better to move first all the current params into template
struct parse_events_term and use it as a single argument.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1487340058-10496-3-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/parse-events.c')
-rw-r--r-- | tools/perf/util/parse-events.c | 69 |
1 files changed, 39 insertions, 30 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c index 281e44af31e2..984d99a8fdc5 100644 --- a/tools/perf/util/parse-events.c +++ b/tools/perf/util/parse-events.c | |||
@@ -2318,24 +2318,20 @@ int parse_events__is_hardcoded_term(struct parse_events_term *term) | |||
2318 | return term->type_term != PARSE_EVENTS__TERM_TYPE_USER; | 2318 | return term->type_term != PARSE_EVENTS__TERM_TYPE_USER; |
2319 | } | 2319 | } |
2320 | 2320 | ||
2321 | static int new_term(struct parse_events_term **_term, int type_val, | 2321 | static int new_term(struct parse_events_term **_term, |
2322 | int type_term, char *config, | 2322 | struct parse_events_term *temp, |
2323 | char *str, u64 num, int err_term, int err_val) | 2323 | char *str, u64 num) |
2324 | { | 2324 | { |
2325 | struct parse_events_term *term; | 2325 | struct parse_events_term *term; |
2326 | 2326 | ||
2327 | term = zalloc(sizeof(*term)); | 2327 | term = malloc(sizeof(*term)); |
2328 | if (!term) | 2328 | if (!term) |
2329 | return -ENOMEM; | 2329 | return -ENOMEM; |
2330 | 2330 | ||
2331 | *term = *temp; | ||
2331 | INIT_LIST_HEAD(&term->list); | 2332 | INIT_LIST_HEAD(&term->list); |
2332 | term->type_val = type_val; | ||
2333 | term->type_term = type_term; | ||
2334 | term->config = config; | ||
2335 | term->err_term = err_term; | ||
2336 | term->err_val = err_val; | ||
2337 | 2333 | ||
2338 | switch (type_val) { | 2334 | switch (term->type_val) { |
2339 | case PARSE_EVENTS__TERM_TYPE_NUM: | 2335 | case PARSE_EVENTS__TERM_TYPE_NUM: |
2340 | term->val.num = num; | 2336 | term->val.num = num; |
2341 | break; | 2337 | break; |
@@ -2358,10 +2354,15 @@ int parse_events_term__num(struct parse_events_term **term, | |||
2358 | YYLTYPE *loc_term = loc_term_; | 2354 | YYLTYPE *loc_term = loc_term_; |
2359 | YYLTYPE *loc_val = loc_val_; | 2355 | YYLTYPE *loc_val = loc_val_; |
2360 | 2356 | ||
2361 | return new_term(term, PARSE_EVENTS__TERM_TYPE_NUM, type_term, | 2357 | struct parse_events_term temp = { |
2362 | config, NULL, num, | 2358 | .type_val = PARSE_EVENTS__TERM_TYPE_NUM, |
2363 | loc_term ? loc_term->first_column : 0, | 2359 | .type_term = type_term, |
2364 | loc_val ? loc_val->first_column : 0); | 2360 | .config = config, |
2361 | .err_term = loc_term ? loc_term->first_column : 0, | ||
2362 | .err_val = loc_val ? loc_val->first_column : 0, | ||
2363 | }; | ||
2364 | |||
2365 | return new_term(term, &temp, NULL, num); | ||
2365 | } | 2366 | } |
2366 | 2367 | ||
2367 | int parse_events_term__str(struct parse_events_term **term, | 2368 | int parse_events_term__str(struct parse_events_term **term, |
@@ -2371,37 +2372,45 @@ int parse_events_term__str(struct parse_events_term **term, | |||
2371 | YYLTYPE *loc_term = loc_term_; | 2372 | YYLTYPE *loc_term = loc_term_; |
2372 | YYLTYPE *loc_val = loc_val_; | 2373 | YYLTYPE *loc_val = loc_val_; |
2373 | 2374 | ||
2374 | return new_term(term, PARSE_EVENTS__TERM_TYPE_STR, type_term, | 2375 | struct parse_events_term temp = { |
2375 | config, str, 0, | 2376 | .type_val = PARSE_EVENTS__TERM_TYPE_STR, |
2376 | loc_term ? loc_term->first_column : 0, | 2377 | .type_term = type_term, |
2377 | loc_val ? loc_val->first_column : 0); | 2378 | .config = config, |
2379 | .err_term = loc_term ? loc_term->first_column : 0, | ||
2380 | .err_val = loc_val ? loc_val->first_column : 0, | ||
2381 | }; | ||
2382 | |||
2383 | return new_term(term, &temp, str, 0); | ||
2378 | } | 2384 | } |
2379 | 2385 | ||
2380 | int parse_events_term__sym_hw(struct parse_events_term **term, | 2386 | int parse_events_term__sym_hw(struct parse_events_term **term, |
2381 | char *config, unsigned idx) | 2387 | char *config, unsigned idx) |
2382 | { | 2388 | { |
2383 | struct event_symbol *sym; | 2389 | struct event_symbol *sym; |
2390 | struct parse_events_term temp = { | ||
2391 | .type_val = PARSE_EVENTS__TERM_TYPE_STR, | ||
2392 | .type_term = PARSE_EVENTS__TERM_TYPE_USER, | ||
2393 | .config = config ?: (char *) "event", | ||
2394 | }; | ||
2384 | 2395 | ||
2385 | BUG_ON(idx >= PERF_COUNT_HW_MAX); | 2396 | BUG_ON(idx >= PERF_COUNT_HW_MAX); |
2386 | sym = &event_symbols_hw[idx]; | 2397 | sym = &event_symbols_hw[idx]; |
2387 | 2398 | ||
2388 | if (config) | 2399 | return new_term(term, &temp, (char *) sym->symbol, 0); |
2389 | return new_term(term, PARSE_EVENTS__TERM_TYPE_STR, | ||
2390 | PARSE_EVENTS__TERM_TYPE_USER, config, | ||
2391 | (char *) sym->symbol, 0, 0, 0); | ||
2392 | else | ||
2393 | return new_term(term, PARSE_EVENTS__TERM_TYPE_STR, | ||
2394 | PARSE_EVENTS__TERM_TYPE_USER, | ||
2395 | (char *) "event", (char *) sym->symbol, | ||
2396 | 0, 0, 0); | ||
2397 | } | 2400 | } |
2398 | 2401 | ||
2399 | int parse_events_term__clone(struct parse_events_term **new, | 2402 | int parse_events_term__clone(struct parse_events_term **new, |
2400 | struct parse_events_term *term) | 2403 | struct parse_events_term *term) |
2401 | { | 2404 | { |
2402 | return new_term(new, term->type_val, term->type_term, term->config, | 2405 | struct parse_events_term temp = { |
2403 | term->val.str, term->val.num, | 2406 | .type_val = term->type_val, |
2404 | term->err_term, term->err_val); | 2407 | .type_term = term->type_term, |
2408 | .config = term->config, | ||
2409 | .err_term = term->err_term, | ||
2410 | .err_val = term->err_val, | ||
2411 | }; | ||
2412 | |||
2413 | return new_term(new, &temp, term->val.str, term->val.num); | ||
2405 | } | 2414 | } |
2406 | 2415 | ||
2407 | void parse_events_terms__purge(struct list_head *terms) | 2416 | void parse_events_terms__purge(struct list_head *terms) |