Lines Matching refs:pmu
298 struct perf_pmu *pmu; in pmu_lookup() local
317 pmu = zalloc(sizeof(*pmu)); in pmu_lookup()
318 if (!pmu) in pmu_lookup()
321 pmu->cpus = pmu_cpumask(name); in pmu_lookup()
323 INIT_LIST_HEAD(&pmu->format); in pmu_lookup()
324 INIT_LIST_HEAD(&pmu->aliases); in pmu_lookup()
325 list_splice(&format, &pmu->format); in pmu_lookup()
326 list_splice(&aliases, &pmu->aliases); in pmu_lookup()
327 pmu->name = strdup(name); in pmu_lookup()
328 pmu->type = type; in pmu_lookup()
329 list_add_tail(&pmu->list, &pmus); in pmu_lookup()
330 return pmu; in pmu_lookup()
335 struct perf_pmu *pmu; in pmu_find() local
337 list_for_each_entry(pmu, &pmus, list) in pmu_find()
338 if (!strcmp(pmu->name, name)) in pmu_find()
339 return pmu; in pmu_find()
344 struct perf_pmu *perf_pmu__scan(struct perf_pmu *pmu) in perf_pmu__scan() argument
350 if (!pmu) { in perf_pmu__scan()
352 pmu = list_prepare_entry(pmu, &pmus, list); in perf_pmu__scan()
354 list_for_each_entry_continue(pmu, &pmus, list) in perf_pmu__scan()
355 return pmu; in perf_pmu__scan()
361 struct perf_pmu *pmu; in perf_pmu__find() local
368 pmu = pmu_find(name); in perf_pmu__find()
369 if (pmu) in perf_pmu__find()
370 return pmu; in perf_pmu__find()
479 int perf_pmu__config(struct perf_pmu *pmu, struct perf_event_attr *attr, in perf_pmu__config() argument
482 attr->type = pmu->type; in perf_pmu__config()
483 return perf_pmu__config_terms(&pmu->format, attr, head_terms); in perf_pmu__config()
486 static struct perf_pmu_alias *pmu_find_alias(struct perf_pmu *pmu, in pmu_find_alias() argument
498 if (pmu_find_format(&pmu->format, term->config)) in pmu_find_alias()
509 list_for_each_entry(alias, &pmu->aliases, list) { in pmu_find_alias()
520 int perf_pmu__check_alias(struct perf_pmu *pmu, struct list_head *head_terms) in perf_pmu__check_alias() argument
527 alias = pmu_find_alias(pmu, term); in perf_pmu__check_alias()
568 static char *format_alias(char *buf, int len, struct perf_pmu *pmu, in format_alias() argument
571 snprintf(buf, len, "%s/%s/", pmu->name, alias->name); in format_alias()
575 static char *format_alias_or(char *buf, int len, struct perf_pmu *pmu, in format_alias_or() argument
578 snprintf(buf, len, "%s OR %s/%s/", alias->name, pmu->name, alias->name); in format_alias_or()
591 struct perf_pmu *pmu; in print_pmu_events() local
598 pmu = NULL; in print_pmu_events()
600 while ((pmu = perf_pmu__scan(pmu)) != NULL) in print_pmu_events()
601 list_for_each_entry(alias, &pmu->aliases, list) in print_pmu_events()
606 pmu = NULL; in print_pmu_events()
608 while ((pmu = perf_pmu__scan(pmu)) != NULL) in print_pmu_events()
609 list_for_each_entry(alias, &pmu->aliases, list) { in print_pmu_events()
610 char *name = format_alias(buf, sizeof(buf), pmu, alias); in print_pmu_events()
611 bool is_cpu = !strcmp(pmu->name, "cpu"); in print_pmu_events()
621 pmu, alias); in print_pmu_events()