aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/util/evlist.c17
-rw-r--r--tools/perf/util/evlist.h3
2 files changed, 20 insertions, 0 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 2eb7378e4c40..0b31cee34874 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -1212,3 +1212,20 @@ int perf_evlist__strerror_open(struct perf_evlist *evlist __maybe_unused,
1212 1212
1213 return 0; 1213 return 0;
1214} 1214}
1215
1216void perf_evlist__to_front(struct perf_evlist *evlist,
1217 struct perf_evsel *move_evsel)
1218{
1219 struct perf_evsel *evsel, *n;
1220 LIST_HEAD(move);
1221
1222 if (move_evsel == perf_evlist__first(evlist))
1223 return;
1224
1225 list_for_each_entry_safe(evsel, n, &evlist->entries, node) {
1226 if (evsel->leader == move_evsel->leader)
1227 list_move_tail(&evsel->node, &move);
1228 }
1229
1230 list_splice(&move, &evlist->entries);
1231}
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h
index 8a04aae95a18..9f64ede3ecbd 100644
--- a/tools/perf/util/evlist.h
+++ b/tools/perf/util/evlist.h
@@ -194,5 +194,8 @@ static inline void perf_mmap__write_tail(struct perf_mmap *md,
194} 194}
195 195
196bool perf_evlist__can_select_event(struct perf_evlist *evlist, const char *str); 196bool perf_evlist__can_select_event(struct perf_evlist *evlist, const char *str);
197void perf_evlist__to_front(struct perf_evlist *evlist,
198 struct perf_evsel *move_evsel);
199
197 200
198#endif /* __PERF_EVLIST_H */ 201#endif /* __PERF_EVLIST_H */