Lines Matching refs:term

107 	struct parse_events_term *term;  in get_config_str()  local
112 list_for_each_entry(term, &head_terms->terms, list) in get_config_str()
113 if (term->type_term == type_term) in get_config_str()
114 return term->val.str; in get_config_str()
131 struct parse_events_term *term; in get_config_cpu() local
137 list_for_each_entry(term, &head_terms->terms, list) { in get_config_cpu()
138 if (term->type_term == PARSE_EVENTS__TERM_TYPE_CPU) { in get_config_cpu()
141 if (term->type_val == PARSE_EVENTS__TERM_TYPE_NUM) { in get_config_cpu()
142 term_cpus = perf_cpu_map__new_int(term->val.num); in get_config_cpu()
144 struct perf_pmu *pmu = perf_pmus__find(term->val.str); in get_config_cpu()
151 term_cpus = perf_cpu_map__new(term->val.str); in get_config_cpu()
174 struct parse_events_term *term; in fix_raw() local
176 list_for_each_entry(term, &config_terms->terms, list) { in fix_raw()
179 if (term->type_term != PARSE_EVENTS__TERM_TYPE_RAW) in fix_raw()
182 if (perf_pmu__have_event(pmu, term->val.str)) { in fix_raw()
183 zfree(&term->config); in fix_raw()
184 term->config = term->val.str; in fix_raw()
185 term->type_val = PARSE_EVENTS__TERM_TYPE_NUM; in fix_raw()
186 term->type_term = PARSE_EVENTS__TERM_TYPE_USER; in fix_raw()
187 term->val.num = 1; in fix_raw()
188 term->no_value = true; in fix_raw()
192 zfree(&term->config); in fix_raw()
193 term->config = strdup("config"); in fix_raw()
195 num = strtoull(term->val.str + 1, NULL, 16); in fix_raw()
197 free(term->val.str); in fix_raw()
198 term->type_val = PARSE_EVENTS__TERM_TYPE_NUM; in fix_raw()
199 term->type_term = PARSE_EVENTS__TERM_TYPE_CONFIG; in fix_raw()
200 term->val.num = num; in fix_raw()
201 term->no_value = false; in fix_raw()
371 struct parse_events_term *term,
374 struct parse_events_term *term,
784 static int check_type_val(struct parse_events_term *term, in check_type_val() argument
788 if (type == term->type_val) in check_type_val()
792 parse_events_error__handle(err, term->err_val, in check_type_val()
905 struct parse_events_term *term, in config_term_common() argument
910 if (check_type_val(term, err, PARSE_EVENTS__TERM_TYPE_ ## type)) \ in config_term_common()
914 switch (term->type_term) { in config_term_common()
917 attr->config = term->val.num; in config_term_common()
921 attr->config1 = term->val.num; in config_term_common()
925 attr->config2 = term->val.num; in config_term_common()
929 attr->config3 = term->val.num; in config_term_common()
939 if (strcmp(term->val.str, "no") && in config_term_common()
940 parse_branch_str(term->val.str, in config_term_common()
942 parse_events_error__handle(err, term->err_val, in config_term_common()
950 if (term->val.num > 1) { in config_term_common()
951 parse_events_error__handle(err, term->err_val, in config_term_common()
992 if ((unsigned int)term->val.num > 1) { in config_term_common()
993 parse_events_error__handle(err, term->err_val, in config_term_common()
1007 if (term->val.num > UINT_MAX) { in config_term_common()
1008 parse_events_error__handle(err, term->err_val, in config_term_common()
1017 if (term->type_val == PARSE_EVENTS__TERM_TYPE_NUM) { in config_term_common()
1018 if (term->val.num >= (u64)cpu__max_present_cpu().cpu) { in config_term_common()
1019 parse_events_error__handle(err, term->err_val, in config_term_common()
1026 assert(term->type_val == PARSE_EVENTS__TERM_TYPE_STR); in config_term_common()
1027 if (perf_pmus__find(term->val.str) != NULL) in config_term_common()
1030 map = perf_cpu_map__new(term->val.str); in config_term_common()
1032 parse_events_error__handle(err, term->err_val, in config_term_common()
1045 parse_events_error__handle(err, term->err_term, in config_term_common()
1046 strdup(parse_events__term_type_str(term->type_term)), in config_term_common()
1060 if (!config_term_avail(term->type_term, err)) in config_term_common()
1067 struct parse_events_term *term, in config_term_pmu() argument
1070 if (term->type_term == PARSE_EVENTS__TERM_TYPE_LEGACY_CACHE) { in config_term_pmu()
1077 parse_events_error__handle(err, term->err_term, in config_term_pmu()
1087 !perf_pmu__have_event(pmu, term->config)) { in config_term_pmu()
1089 return parse_events__decode_legacy_cache(term->config, pmu->type, in config_term_pmu()
1092 term->type_term = PARSE_EVENTS__TERM_TYPE_USER; in config_term_pmu()
1093 term->no_value = true; in config_term_pmu()
1096 if (term->type_term == PARSE_EVENTS__TERM_TYPE_HARDWARE) { in config_term_pmu()
1103 parse_events_error__handle(err, term->err_term, in config_term_pmu()
1111 if (perf_pmu__have_event(pmu, term->config)) { in config_term_pmu()
1112 term->type_term = PARSE_EVENTS__TERM_TYPE_USER; in config_term_pmu()
1113 term->no_value = true; in config_term_pmu()
1114 term->alternate_hw_config = true; in config_term_pmu()
1117 attr->config = term->val.num; in config_term_pmu()
1123 if (term->type_term == PARSE_EVENTS__TERM_TYPE_USER || in config_term_pmu()
1124 term->type_term == PARSE_EVENTS__TERM_TYPE_DRV_CFG) { in config_term_pmu()
1131 return config_term_common(attr, term, err); in config_term_pmu()
1135 struct parse_events_term *term, in config_term_tracepoint() argument
1138 switch (term->type_term) { in config_term_tracepoint()
1150 return config_term_common(attr, term, err); in config_term_tracepoint()
1170 parse_events_error__handle(err, term->err_term, in config_term_tracepoint()
1171 strdup(parse_events__term_type_str(term->type_term)), in config_term_tracepoint()
1186 struct parse_events_term *term; in config_attr() local
1188 list_for_each_entry(term, &head->terms, list) in config_attr()
1189 if (config_term(attr, term, err)) in config_attr()
1227 struct parse_events_term *term; in get_config_terms() local
1229 list_for_each_entry(term, &head_config->terms, list) { in get_config_terms()
1230 switch (term->type_term) { in get_config_terms()
1232 ADD_CONFIG_TERM_VAL(PERIOD, period, term->val.num, term->weak); in get_config_terms()
1235 ADD_CONFIG_TERM_VAL(FREQ, freq, term->val.num, term->weak); in get_config_terms()
1238 ADD_CONFIG_TERM_VAL(TIME, time, term->val.num, term->weak); in get_config_terms()
1241 ADD_CONFIG_TERM_STR(CALLGRAPH, term->val.str, term->weak); in get_config_terms()
1244 ADD_CONFIG_TERM_STR(BRANCH, term->val.str, term->weak); in get_config_terms()
1248 term->val.num, term->weak); in get_config_terms()
1252 term->val.num ? 1 : 0, term->weak); in get_config_terms()
1256 term->val.num ? 0 : 1, term->weak); in get_config_terms()
1260 term->val.num, term->weak); in get_config_terms()
1264 term->val.num, term->weak); in get_config_terms()
1268 term->val.num ? 1 : 0, term->weak); in get_config_terms()
1272 term->val.num ? 0 : 1, term->weak); in get_config_terms()
1275 ADD_CONFIG_TERM_STR(DRV_CFG, term->val.str, term->weak); in get_config_terms()
1279 term->val.num ? true : false, term->weak); in get_config_terms()
1283 term->val.num ? 1 : 0, term->weak); in get_config_terms()
1286 ADD_CONFIG_TERM_STR(AUX_ACTION, term->val.str, term->weak); in get_config_terms()
1290 term->val.num, term->weak); in get_config_terms()
1317 struct parse_events_term *term; in get_config_chgs() local
1321 list_for_each_entry(term, &head_config->terms, list) { in get_config_chgs()
1322 switch (term->type_term) { in get_config_chgs()
1324 type = perf_pmu__format_type(pmu, term->config); in get_config_chgs()
1327 bits |= perf_pmu__format_bits(pmu, term->config); in get_config_chgs()
1469 struct evsel_config_term *term; in config_term_percore() local
1471 list_for_each_entry(term, config_terms, list) { in config_term_percore()
1472 if (term->type == EVSEL__CONFIG_TERM_PERCORE) in config_term_percore()
1473 return term->val.percore; in config_term_percore()
1620 struct parse_events_term *term; in parse_events_multi_pmu_add() local
1643 if (parse_events_term__num(&term, in parse_events_multi_pmu_add()
1650 list_add_tail(&term->list, &parsed_terms.terms); in parse_events_multi_pmu_add()
2668 int parse_events__is_hardcoded_term(struct parse_events_term *term) in parse_events__is_hardcoded_term() argument
2670 return term->type_term != PARSE_EVENTS__TERM_TYPE_USER; in parse_events__is_hardcoded_term()
2677 struct parse_events_term *term; in new_term() local
2679 term = malloc(sizeof(*term)); in new_term()
2680 if (!term) in new_term()
2683 *term = *temp; in new_term()
2684 INIT_LIST_HEAD(&term->list); in new_term()
2685 term->weak = false; in new_term()
2687 switch (term->type_val) { in new_term()
2689 term->val.num = num; in new_term()
2692 term->val.str = str; in new_term()
2695 free(term); in new_term()
2699 *_term = term; in new_term()
2703 int parse_events_term__num(struct parse_events_term **term, in parse_events_term__num() argument
2721 return new_term(term, &temp, /*str=*/NULL, num); in parse_events_term__num()
2724 int parse_events_term__str(struct parse_events_term **term, in parse_events_term__str() argument
2740 return new_term(term, &temp, str, /*num=*/0); in parse_events_term__str()
2743 int parse_events_term__term(struct parse_events_term **term, in parse_events_term__term() argument
2748 return parse_events_term__str(term, term_lhs, NULL, in parse_events_term__term()
2754 const struct parse_events_term *term) in parse_events_term__clone() argument
2757 struct parse_events_term temp = *term; in parse_events_term__clone()
2760 if (term->config) { in parse_events_term__clone()
2761 temp.config = strdup(term->config); in parse_events_term__clone()
2765 if (term->type_val == PARSE_EVENTS__TERM_TYPE_NUM) in parse_events_term__clone()
2766 return new_term(new, &temp, /*str=*/NULL, term->val.num); in parse_events_term__clone()
2768 str = strdup(term->val.str); in parse_events_term__clone()
2776 void parse_events_term__delete(struct parse_events_term *term) in parse_events_term__delete() argument
2778 if (term->type_val != PARSE_EVENTS__TERM_TYPE_NUM) in parse_events_term__delete()
2779 zfree(&term->val.str); in parse_events_term__delete()
2781 zfree(&term->config); in parse_events_term__delete()
2782 free(term); in parse_events_term__delete()
2788 struct parse_events_term *term; in parse_events_terms__copy() local
2790 list_for_each_entry (term, &src->terms, list) { in parse_events_terms__copy()
2794 ret = parse_events_term__clone(&n, term); in parse_events_terms__copy()
2810 struct parse_events_term *term, *h; in parse_events_terms__exit() local
2812 list_for_each_entry_safe(term, h, &terms->terms, list) { in parse_events_terms__exit()
2813 list_del_init(&term->list); in parse_events_terms__exit()
2814 parse_events_term__delete(term); in parse_events_terms__exit()
2828 struct parse_events_term *term; in parse_events_terms__to_strbuf() local
2834 list_for_each_entry(term, &terms->terms, list) { in parse_events_terms__to_strbuf()
2844 if (term->type_val == PARSE_EVENTS__TERM_TYPE_NUM) in parse_events_terms__to_strbuf()
2845 if (term->no_value) { in parse_events_terms__to_strbuf()
2846 assert(term->val.num == 1); in parse_events_terms__to_strbuf()
2847 ret = strbuf_addf(sb, "%s", term->config); in parse_events_terms__to_strbuf()
2849 ret = strbuf_addf(sb, "%s=%#"PRIx64, term->config, term->val.num); in parse_events_terms__to_strbuf()
2850 else if (term->type_val == PARSE_EVENTS__TERM_TYPE_STR) { in parse_events_terms__to_strbuf()
2851 if (term->config) { in parse_events_terms__to_strbuf()
2852 ret = strbuf_addf(sb, "%s=", term->config); in parse_events_terms__to_strbuf()
2855 } else if ((unsigned int)term->type_term < __PARSE_EVENTS__TERM_TYPE_NR) { in parse_events_terms__to_strbuf()
2857 parse_events__term_type_str(term->type_term)); in parse_events_terms__to_strbuf()
2861 assert(!term->no_value); in parse_events_terms__to_strbuf()
2862 ret = strbuf_addf(sb, "%s", term->val.str); in parse_events_terms__to_strbuf()