diff options
Diffstat (limited to 'tools/perf/util/evsel.h')
| -rw-r--r-- | tools/perf/util/evsel.h | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h index 52021c3087d..3f156ccc1ac 100644 --- a/tools/perf/util/evsel.h +++ b/tools/perf/util/evsel.h @@ -9,6 +9,7 @@  #include "xyarray.h"  #include "cgroup.h"  #include "hist.h" +#include "symbol.h"  struct perf_counts_values {  	union { @@ -120,6 +121,7 @@ int perf_evsel__group_desc(struct perf_evsel *evsel, char *buf, size_t size);  int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads);  int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads);  int perf_evsel__alloc_counts(struct perf_evsel *evsel, int ncpus); +void perf_evsel__reset_counts(struct perf_evsel *evsel, int ncpus);  void perf_evsel__free_fd(struct perf_evsel *evsel);  void perf_evsel__free_id(struct perf_evsel *evsel);  void perf_evsel__free_counts(struct perf_evsel *evsel); @@ -246,11 +248,34 @@ static inline struct perf_evsel *perf_evsel__next(struct perf_evsel *evsel)  	return list_entry(evsel->node.next, struct perf_evsel, node);  } +/** + * perf_evsel__is_group_leader - Return whether given evsel is a leader event + * + * @evsel - evsel selector to be tested + * + * Return %true if @evsel is a group leader or a stand-alone event + */  static inline bool perf_evsel__is_group_leader(const struct perf_evsel *evsel)  {  	return evsel->leader == evsel;  } +/** + * perf_evsel__is_group_event - Return whether given evsel is a group event + * + * @evsel - evsel selector to be tested + * + * Return %true iff event group view is enabled and @evsel is a actual group + * leader which has other members in the group + */ +static inline bool perf_evsel__is_group_event(struct perf_evsel *evsel) +{ +	if (!symbol_conf.event_group) +		return false; + +	return perf_evsel__is_group_leader(evsel) && evsel->nr_members > 1; +} +  struct perf_attr_details {  	bool freq;  	bool verbose; |