Lines Matching refs:parse_state
43 int parse_events_parse(void *parse_state, void *scanner);
46 static int parse_events__with_hybrid_pmu(struct parse_events_state *parse_state,
361 struct parse_events_state *parse_state) in parse_events_add_cache() argument
436 &hybrid, parse_state); in parse_events_add_cache()
598 struct parse_events_state *parse_state; member
608 struct parse_events_state *parse_state = param->parse_state; in add_bpf_event() local
625 err = parse_events_add_tracepoint(&new_evsels, &parse_state->idx, group, in add_bpf_event()
626 event, parse_state->error, in add_bpf_event()
651 int parse_events_load_bpf_obj(struct parse_events_state *parse_state, in parse_events_load_bpf_obj() argument
658 struct __add_bpf_event_param param = {parse_state, list, head_config}; in parse_events_load_bpf_obj()
699 parse_events_error__handle(parse_state->error, 0, in parse_events_load_bpf_obj()
705 parse_events_config_bpf(struct parse_events_state *parse_state, in parse_events_config_bpf() argument
719 parse_events_error__handle(parse_state->error, term->err_term, in parse_events_config_bpf()
725 err = bpf__config_obj(obj, term, parse_state->evlist, &error_pos); in parse_events_config_bpf()
730 bpf__strerror_config_obj(obj, term, parse_state->evlist, in parse_events_config_bpf()
739 parse_events_error__handle(parse_state->error, idx, in parse_events_config_bpf()
783 int parse_events_load_bpf(struct parse_events_state *parse_state, in parse_events_load_bpf() argument
811 parse_events_error__handle(parse_state->error, 0, in parse_events_load_bpf()
816 err = parse_events_load_bpf_obj(parse_state, list, obj, head_config); in parse_events_load_bpf()
819 err = parse_events_config_bpf(parse_state, obj, &obj_head_config); in parse_events_load_bpf()
830 int parse_events_load_bpf_obj(struct parse_events_state *parse_state, in parse_events_load_bpf_obj() argument
835 parse_events_error__handle(parse_state->error, 0, in parse_events_load_bpf_obj()
841 int parse_events_load_bpf(struct parse_events_state *parse_state, in parse_events_load_bpf() argument
847 parse_events_error__handle(parse_state->error, 0, in parse_events_load_bpf()
1343 int parse_events_add_numeric(struct parse_events_state *parse_state, in parse_events_add_numeric() argument
1359 if (config_attr(&attr, head_config, parse_state->error, in parse_events_add_numeric()
1369 ret = parse_events__add_numeric_hybrid(parse_state, list, &attr, in parse_events_add_numeric()
1375 ret = add_event(list, &parse_state->idx, &attr, name, metric_id, in parse_events_add_numeric()
1382 int parse_events_add_tool(struct parse_events_state *parse_state, in parse_events_add_tool() argument
1386 return add_event_tool(list, &parse_state->idx, tool_event); in parse_events_add_tool()
1401 static int parse_events__inside_hybrid_pmu(struct parse_events_state *parse_state, in parse_events__inside_hybrid_pmu() argument
1408 if (parse_state->fake_pmu || !head_config || list_empty(head_config) || in parse_events__inside_hybrid_pmu()
1421 ret = parse_events__with_hybrid_pmu(parse_state, term->config, in parse_events__inside_hybrid_pmu()
1428 int parse_events_add_pmu(struct parse_events_state *parse_state, in parse_events_add_pmu() argument
1438 struct parse_events_error *err = parse_state->error; in parse_events_add_pmu()
1442 pmu = parse_state->fake_pmu ?: perf_pmu__find(name); in parse_events_add_pmu()
1478 evsel = __add_event(list, &parse_state->idx, &attr, in parse_events_add_pmu()
1492 if (!parse_state->fake_pmu && perf_pmu__check_alias(pmu, head_config, &info)) in parse_events_add_pmu()
1512 if (config_attr(&attr, head_config, parse_state->error, config_term_pmu)) in parse_events_add_pmu()
1525 if (!parse_events__inside_hybrid_pmu(parse_state, list, name, in parse_events_add_pmu()
1530 if (!parse_state->fake_pmu && perf_pmu__config(pmu, &attr, head_config, parse_state->error)) { in parse_events_add_pmu()
1535 evsel = __add_event(list, &parse_state->idx, &attr, /*init_attr=*/true, in parse_events_add_pmu()
1549 if (parse_state->fake_pmu) in parse_events_add_pmu()
1562 int parse_events_multi_pmu_add(struct parse_events_state *parse_state, in parse_events_multi_pmu_add() argument
1608 if (!parse_events_add_pmu(parse_state, list, in parse_events_multi_pmu_add()
1620 if (parse_state->fake_pmu) { in parse_events_multi_pmu_add()
1621 if (!parse_events_add_pmu(parse_state, list, str, head, in parse_events_multi_pmu_add()
1666 struct parse_events_state *parse_state) in parse_events__set_leader_for_uncore_aliase() argument
1715 parse_state->nr_groups--; in parse_events__set_leader_for_uncore_aliase()
1746 parse_state->nr_groups += nr_pmu - 1; in parse_events__set_leader_for_uncore_aliase()
1761 struct parse_events_state *parse_state) in parse_events__set_leader() argument
1770 if (parse_events__set_leader_for_uncore_aliase(name, list, parse_state)) in parse_events__set_leader()
2158 struct parse_events_state *parse_state) in parse_events__scanner() argument
2164 ret = parse_events_lex_init_extra(parse_state, &scanner); in parse_events__scanner()
2174 ret = parse_events_parse(parse_state, scanner); in parse_events__scanner()
2187 struct parse_events_state parse_state = { in parse_events_terms() local
2193 ret = parse_events__scanner(str, &parse_state); in parse_events_terms()
2197 list_splice(parse_state.terms, terms); in parse_events_terms()
2198 zfree(&parse_state.terms); in parse_events_terms()
2202 parse_events_terms__delete(parse_state.terms); in parse_events_terms()
2206 static int parse_events__with_hybrid_pmu(struct parse_events_state *parse_state, in parse_events__with_hybrid_pmu() argument
2214 .idx = parse_state->idx, in parse_events__with_hybrid_pmu()
2224 parse_state->idx = ps.idx; in parse_events__with_hybrid_pmu()
2236 struct parse_events_state parse_state = { in __parse_events() local
2237 .list = LIST_HEAD_INIT(parse_state.list), in __parse_events()
2246 ret = parse_events__scanner(str, &parse_state); in __parse_events()
2249 if (!ret && list_empty(&parse_state.list)) { in __parse_events()
2257 evlist__splice_list_tail(evlist, &parse_state.list); in __parse_events()
2262 evlist->core.nr_groups += parse_state.nr_groups; in __parse_events()
2766 void parse_events_evlist_error(struct parse_events_state *parse_state, in parse_events_evlist_error() argument
2769 if (!parse_state->error) in parse_events_evlist_error()
2772 parse_events_error__handle(parse_state->error, idx, strdup(str), NULL); in parse_events_evlist_error()