if (intr)
mask = arch__intr_reg_mask(); else
mask = arch__user_reg_mask();
/* str may be NULL in case no arg is passed to -I */ if (str) { /* because str is read-only */
s = os = strdup(str); if (!s) return -1;
for (;;) {
p = strchr(s, ','); if (p)
*p = '\0';
if (!strcmp(s, "?")) {
fprintf(stderr, "available registers: "); for (r = arch__sample_reg_masks(); r->name; r++) { if (r->mask & mask)
fprintf(stderr, "%s ", r->name);
}
fputc('\n', stderr); /* just printing available regs */ goto error;
} for (r = arch__sample_reg_masks(); r->name; r++) { if ((r->mask & mask) && !strcasecmp(s, r->name)) break;
} if (!r || !r->name) {
ui__warning("Unknown register \"%s\", check man page or run \"perf record %s?\"\n",
s, intr ? "-I" : "--user-regs="); goto error;
}
*mode |= r->mask;
if (!p) break;
s = p + 1;
}
}
ret = 0;
/* default to all possible regs */ if (*mode == 0)
*mode = mask;
error:
free(os); return ret;
}
int
parse_user_regs(conststruct option *opt, constchar *str, int unset)
{ return __parse_regs(opt, str, unset, false);
}
int
parse_intr_regs(conststruct option *opt, constchar *str, int unset)
{ return __parse_regs(opt, str, unset, true);
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.9Bemerkung:
(vorverarbeitet am 2026-10-12)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.