• Home
  • Raw
  • Download

Lines Matching full:term

12 #include "term.h"
328 static int parse_events__is_name_term(struct parse_events_term *term) in parse_events__is_name_term() argument
330 return term->type_term == PARSE_EVENTS__TERM_TYPE_NAME; in parse_events__is_name_term()
335 struct parse_events_term *term; in get_config_name() local
340 list_for_each_entry(term, head_terms, list) in get_config_name()
341 if (parse_events__is_name_term(term)) in get_config_name()
342 return term->val.str; in get_config_name()
445 struct parse_events_term *term,
448 struct parse_events_term *term,
789 struct parse_events_term *term; in parse_events_config_bpf() local
795 list_for_each_entry(term, head_config, list) { in parse_events_config_bpf()
798 if (term->type_term != PARSE_EVENTS__TERM_TYPE_USER) { in parse_events_config_bpf()
799 parse_events__handle_error(parse_state->error, term->err_term, in parse_events_config_bpf()
800 strdup("Invalid config term for BPF object"), in parse_events_config_bpf()
805 err = bpf__config_obj(obj, term, parse_state->evlist, &error_pos); in parse_events_config_bpf()
810 bpf__strerror_config_obj(obj, term, parse_state->evlist, in parse_events_config_bpf()
815 idx = term->err_val; in parse_events_config_bpf()
817 idx = term->err_term + error_pos; in parse_events_config_bpf()
848 struct parse_events_term *term, *temp; in split_bpf_config_terms() local
851 * Currectly, all possible user config term in split_bpf_config_terms()
858 list_for_each_entry_safe(term, temp, evt_head_config, list) in split_bpf_config_terms()
859 if (!parse_events__is_hardcoded_term(term)) in split_bpf_config_terms()
860 list_move_tail(&term->list, obj_head_config); in split_bpf_config_terms()
977 static int check_type_val(struct parse_events_term *term, in check_type_val() argument
981 if (type == term->type_val) in check_type_val()
985 parse_events__handle_error(err, term->err_val, in check_type_val()
998 [PARSE_EVENTS__TERM_TYPE_USER] = "<sysfs term>",
1062 struct parse_events_term *term, in config_term_common() argument
1067 if (check_type_val(term, err, PARSE_EVENTS__TERM_TYPE_ ## type)) \ in config_term_common()
1071 switch (term->type_term) { in config_term_common()
1074 attr->config = term->val.num; in config_term_common()
1078 attr->config1 = term->val.num; in config_term_common()
1082 attr->config2 = term->val.num; in config_term_common()
1092 if (strcmp(term->val.str, "no") && in config_term_common()
1093 parse_branch_str(term->val.str, in config_term_common()
1095 parse_events__handle_error(err, term->err_val, in config_term_common()
1103 if (term->val.num > 1) { in config_term_common()
1104 parse_events__handle_error(err, term->err_val, in config_term_common()
1139 if ((unsigned int)term->val.num > 1) { in config_term_common()
1140 parse_events__handle_error(err, term->err_val, in config_term_common()
1151 if (term->val.num > UINT_MAX) { in config_term_common()
1152 parse_events__handle_error(err, term->err_val, in config_term_common()
1159 parse_events__handle_error(err, term->err_term, in config_term_common()
1160 strdup("unknown term"), in config_term_common()
1166 * Check term availbility after basic checking so in config_term_common()
1170 * user will see "'<sysfs term>' is not usable in 'perf stat'" in config_term_common()
1171 * if an invalid config term is provided for legacy events in config_term_common()
1174 if (!config_term_avail(term->type_term, err)) in config_term_common()
1181 struct parse_events_term *term, in config_term_pmu() argument
1184 if (term->type_term == PARSE_EVENTS__TERM_TYPE_USER || in config_term_pmu()
1185 term->type_term == PARSE_EVENTS__TERM_TYPE_DRV_CFG) in config_term_pmu()
1192 return config_term_common(attr, term, err); in config_term_pmu()
1196 struct parse_events_term *term, in config_term_tracepoint() argument
1199 switch (term->type_term) { in config_term_tracepoint()
1210 return config_term_common(attr, term, err); in config_term_tracepoint()
1213 parse_events__handle_error(err, term->err_term, in config_term_tracepoint()
1214 strdup("unknown term"), in config_term_tracepoint()
1228 struct parse_events_term *term; in config_attr() local
1230 list_for_each_entry(term, head, list) in config_attr()
1231 if (config_term(attr, term, err)) in config_attr()
1269 struct parse_events_term *term; in get_config_terms() local
1271 list_for_each_entry(term, head_config, list) { in get_config_terms()
1272 switch (term->type_term) { in get_config_terms()
1274 ADD_CONFIG_TERM_VAL(PERIOD, period, term->val.num, term->weak); in get_config_terms()
1277 ADD_CONFIG_TERM_VAL(FREQ, freq, term->val.num, term->weak); in get_config_terms()
1280 ADD_CONFIG_TERM_VAL(TIME, time, term->val.num, term->weak); in get_config_terms()
1283 ADD_CONFIG_TERM_STR(CALLGRAPH, term->val.str, term->weak); in get_config_terms()
1286 ADD_CONFIG_TERM_STR(BRANCH, term->val.str, term->weak); in get_config_terms()
1290 term->val.num, term->weak); in get_config_terms()
1294 term->val.num ? 1 : 0, term->weak); in get_config_terms()
1298 term->val.num ? 0 : 1, term->weak); in get_config_terms()
1302 term->val.num, term->weak); in get_config_terms()
1306 term->val.num, term->weak); in get_config_terms()
1310 term->val.num ? 1 : 0, term->weak); in get_config_terms()
1314 term->val.num ? 0 : 1, term->weak); in get_config_terms()
1317 ADD_CONFIG_TERM_STR(DRV_CFG, term->val.str, term->weak); in get_config_terms()
1321 term->val.num ? true : false, term->weak); in get_config_terms()
1325 term->val.num ? 1 : 0, term->weak); in get_config_terms()
1329 term->val.num, term->weak); in get_config_terms()
1345 struct parse_events_term *term; in get_config_chgs() local
1349 list_for_each_entry(term, head_config, list) { in get_config_chgs()
1350 switch (term->type_term) { in get_config_chgs()
1352 type = perf_pmu__format_type(&pmu->format, term->config); in get_config_chgs()
1355 bits |= perf_pmu__format_bits(&pmu->format, term->config); in get_config_chgs()
1427 struct evsel_config_term *term; in config_term_percore() local
1429 list_for_each_entry(term, config_terms, list) { in config_term_percore()
1430 if (term->type == EVSEL__CONFIG_TERM_PERCORE) in config_term_percore()
1431 return term->val.percore; in config_term_percore()
1457 struct parse_events_term *term; in parse_events_add_pmu() local
1459 list_for_each_entry(term, head_config, list) { in parse_events_add_pmu()
1460 fprintf(stderr, "%s,", term->config); in parse_events_add_pmu()
1505 struct parse_events_term *term; in parse_events_add_pmu() local
1507 list_for_each_entry(term, head_config, list) { in parse_events_add_pmu()
1508 fprintf(stderr, "%s,", term->config); in parse_events_add_pmu()
1568 struct parse_events_term *term; in parse_events_multi_pmu_add() local
1594 if (parse_events_term__num(&term, in parse_events_multi_pmu_add()
1602 list_add_tail(&term->list, head); in parse_events_multi_pmu_add()
2046 * This function injects special term in
2926 int parse_events__is_hardcoded_term(struct parse_events_term *term) in parse_events__is_hardcoded_term() argument
2928 return term->type_term != PARSE_EVENTS__TERM_TYPE_USER; in parse_events__is_hardcoded_term()
2935 struct parse_events_term *term; in new_term() local
2937 term = malloc(sizeof(*term)); in new_term()
2938 if (!term) in new_term()
2941 *term = *temp; in new_term()
2942 INIT_LIST_HEAD(&term->list); in new_term()
2943 term->weak = false; in new_term()
2945 switch (term->type_val) { in new_term()
2947 term->val.num = num; in new_term()
2950 term->val.str = str; in new_term()
2953 free(term); in new_term()
2957 *_term = term; in new_term()
2961 int parse_events_term__num(struct parse_events_term **term, in parse_events_term__num() argument
2978 return new_term(term, &temp, NULL, num); in parse_events_term__num()
2981 int parse_events_term__str(struct parse_events_term **term, in parse_events_term__str() argument
2996 return new_term(term, &temp, str, 0); in parse_events_term__str()
2999 int parse_events_term__sym_hw(struct parse_events_term **term, in parse_events_term__sym_hw() argument
3021 return new_term(term, &temp, str, 0); in parse_events_term__sym_hw()
3025 struct parse_events_term *term) in parse_events_term__clone() argument
3029 .type_val = term->type_val, in parse_events_term__clone()
3030 .type_term = term->type_term, in parse_events_term__clone()
3032 .err_term = term->err_term, in parse_events_term__clone()
3033 .err_val = term->err_val, in parse_events_term__clone()
3036 if (term->config) { in parse_events_term__clone()
3037 temp.config = strdup(term->config); in parse_events_term__clone()
3041 if (term->type_val == PARSE_EVENTS__TERM_TYPE_NUM) in parse_events_term__clone()
3042 return new_term(new, &temp, NULL, term->val.num); in parse_events_term__clone()
3044 str = strdup(term->val.str); in parse_events_term__clone()
3050 void parse_events_term__delete(struct parse_events_term *term) in parse_events_term__delete() argument
3052 if (term->array.nr_ranges) in parse_events_term__delete()
3053 zfree(&term->array.ranges); in parse_events_term__delete()
3055 if (term->type_val != PARSE_EVENTS__TERM_TYPE_NUM) in parse_events_term__delete()
3056 zfree(&term->val.str); in parse_events_term__delete()
3058 zfree(&term->config); in parse_events_term__delete()
3059 free(term); in parse_events_term__delete()
3065 struct parse_events_term *term, *n; in parse_events_copy_term_list() local
3078 list_for_each_entry (term, old, list) { in parse_events_copy_term_list()
3079 ret = parse_events_term__clone(&n, term); in parse_events_copy_term_list()
3089 struct parse_events_term *term, *h; in parse_events_terms__purge() local
3091 list_for_each_entry_safe(term, h, terms, list) { in parse_events_terms__purge()
3092 list_del_init(&term->list); in parse_events_terms__purge()
3093 parse_events_term__delete(term); in parse_events_terms__purge()