Em Fri, Jul 17, 2015 at 07:33:49PM +0300, Adrian Hunter escreveu: > Add perf_pmu__format_bits() to get the format bits > for a PMU config term. Intel PT will use this to > validate terms and to record format bits to enable > later interpreting the config from the attribute > stored in the perf.data file.
Applied > Signed-off-by: Adrian Hunter <[email protected]> > --- > tools/perf/util/pmu.c | 17 ++++++++++++++++- > tools/perf/util/pmu.h | 1 + > 2 files changed, 17 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c > index 52d569cda606..d26ff0ab8410 100644 > --- a/tools/perf/util/pmu.c > +++ b/tools/perf/util/pmu.c > @@ -538,7 +538,7 @@ struct perf_pmu *perf_pmu__find(const char *name) > } > > static struct perf_pmu_format * > -pmu_find_format(struct list_head *formats, char *name) > +pmu_find_format(struct list_head *formats, const char *name) > { > struct perf_pmu_format *format; > > @@ -549,6 +549,21 @@ pmu_find_format(struct list_head *formats, char *name) > return NULL; > } > > +__u64 perf_pmu__format_bits(struct list_head *formats, const char *name) > +{ > + struct perf_pmu_format *format = pmu_find_format(formats, name); > + __u64 bits = 0; > + int fbit; > + > + if (!format) > + return 0; > + > + for_each_set_bit(fbit, format->bits, PERF_PMU_FORMAT_BITS) > + bits |= 1ULL << fbit; > + > + return bits; > +} > + > /* > * Sets value based on the format definition (format parameter) > * and unformated value (value parameter). > diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h > index 7b9c8cf8ae3e..5d7e84466bee 100644 > --- a/tools/perf/util/pmu.h > +++ b/tools/perf/util/pmu.h > @@ -54,6 +54,7 @@ int perf_pmu__config_terms(struct list_head *formats, > struct perf_event_attr *attr, > struct list_head *head_terms, > bool zero, struct parse_events_error *error); > +__u64 perf_pmu__format_bits(struct list_head *formats, const char *name); > int perf_pmu__check_alias(struct perf_pmu *pmu, struct list_head *head_terms, > struct perf_pmu_info *info); > struct list_head *perf_pmu__alias(struct perf_pmu *pmu, > -- > 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

