Lines Matching refs:alias

143 static int perf_pmu__parse_scale(struct perf_pmu_alias *alias, char *dir, char *name)
169 ret = perf_pmu__convert_scale(scale, NULL, &alias->scale);
175 static int perf_pmu__parse_unit(struct perf_pmu_alias *alias, char *dir, char *name)
187 sret = read(fd, alias->unit, UNIT_MAX_LEN);
193 if (alias->unit[sret - 1] == '\n')
194 alias->unit[sret - 1] = '\0';
196 alias->unit[sret] = '\0';
201 alias->unit[0] = '\0';
206 perf_pmu__parse_per_pkg(struct perf_pmu_alias *alias, char *dir, char *name)
219 alias->per_pkg = true;
223 static int perf_pmu__parse_snapshot(struct perf_pmu_alias *alias,
235 alias->snapshot = true;
248 pr_debug("alias %s differs in field '%s'\n",
276 /* Delete an alias entry. */
290 /* Merge an alias, search in alias list. If this name is already
317 struct perf_pmu_alias *alias;
322 alias = malloc(sizeof(*alias));
323 if (!alias)
326 INIT_LIST_HEAD(&alias->terms);
327 alias->scale = 1.0;
328 alias->unit[0] = '\0';
329 alias->per_pkg = false;
330 alias->snapshot = false;
331 alias->deprecated = false;
333 ret = parse_events_terms(&alias->terms, val);
335 pr_err("Cannot parse alias %s: %d\n", val, ret);
336 free(alias);
345 * Rebuild string to make alias->str member comparable.
349 list_for_each_entry(term, &alias->terms, list) {
361 alias->name = strdup(name);
366 perf_pmu__parse_unit(alias, dir, name);
367 perf_pmu__parse_scale(alias, dir, name);
368 perf_pmu__parse_per_pkg(alias, dir, name);
369 perf_pmu__parse_snapshot(alias, dir, name);
372 alias->metric_expr = metric_expr ? strdup(metric_expr) : NULL;
373 alias->metric_name = metric_name ? strdup(metric_name): NULL;
374 alias->desc = desc ? strdup(desc) : NULL;
375 alias->long_desc = long_desc ? strdup(long_desc) :
377 alias->topic = topic ? strdup(topic) : NULL;
379 if (perf_pmu__convert_scale(unit, &unit, &alias->scale) < 0)
381 snprintf(alias->unit, sizeof(alias->unit), "%s", unit);
383 alias->per_pkg = perpkg && sscanf(perpkg, "%d", &num) == 1 && num == 1;
384 alias->str = strdup(newval);
387 alias->deprecated = true;
389 if (!perf_pmu_merge_alias(alias, list))
390 list_add_tail(&alias->list, list);
498 static int pmu_alias_terms(struct perf_pmu_alias *alias,
505 list_for_each_entry(term, &alias->terms, list) {
714 * uncore alias may be from different PMU with common prefix
723 * Match more complex aliases where the alias name is a comma-delimited
726 * Example: For alias "socket,pmuname" and PMU "socketX_pmunameY", we
1234 struct perf_pmu_alias *alias;
1254 list_for_each_entry(alias, &pmu->aliases, list) {
1255 if (!strcasecmp(alias->name, name))
1256 return alias;
1262 static int check_info_data(struct perf_pmu_alias *alias,
1270 if ((info->unit && alias->unit[0]) ||
1271 (info->scale && alias->scale) ||
1272 (info->snapshot && alias->snapshot))
1275 if (alias->unit[0])
1276 info->unit = alias->unit;
1278 if (alias->scale)
1279 info->scale = alias->scale;
1281 if (alias->snapshot)
1282 info->snapshot = alias->snapshot;
1288 * Find alias in the terms list and replace it with the terms
1289 * defined for the alias
1295 struct perf_pmu_alias *alias;
1311 alias = pmu_find_alias(pmu, term);
1312 if (!alias)
1314 ret = pmu_alias_terms(alias, &term->list);
1318 ret = check_info_data(alias, info);
1322 if (alias->per_pkg)
1324 info->metric_expr = alias->metric_expr;
1325 info->metric_name = alias->metric_name;
1393 struct perf_pmu_alias *alias)
1396 int used = snprintf(buf, len, "%s/%s", pmu->name, alias->name);
1398 list_for_each_entry(term, &alias->terms, list) {
1419 struct perf_pmu_alias *alias)
1421 snprintf(buf, len, "%s OR %s/%s/", alias->name, pmu->name, alias->name);
1488 struct perf_pmu_alias *alias;
1500 list_for_each_entry(alias, &pmu->aliases, list)
1511 list_for_each_entry(alias, &pmu->aliases, list) {
1512 char *name = alias->desc ? alias->name :
1513 format_alias(buf, sizeof(buf), pmu, alias);
1516 if (alias->deprecated && !deprecated)
1521 (!is_cpu && strglobmatch_nocase(alias->name,
1523 (alias->topic &&
1524 strglobmatch_nocase(alias->topic, event_glob))))
1527 if (is_cpu && !name_only && !alias->desc)
1528 name = format_alias_or(buf, sizeof(buf), pmu, alias);
1531 if (is_cpu && !name_only && !alias->desc)
1534 pmu, alias);
1539 aliases[j].desc = long_desc ? alias->long_desc :
1540 alias->desc;
1541 aliases[j].topic = alias->topic;
1542 aliases[j].str = alias->str;
1544 aliases[j].metric_expr = alias->metric_expr;
1545 aliases[j].metric_name = alias->metric_name;
1610 struct perf_pmu_alias *alias;
1616 list_for_each_entry(alias, &pmu->aliases, list)
1617 if (!strcmp(alias->name, name))