libperf: Add perf_evlist__remove() function

Adding perf_evlist__remove() function to remove a perf_evsel from
a perf_evlist struct.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexey Budankov <alexey.budankov@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20190721112506.12306-41-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Jiri Olsa 2019-07-21 13:24:27 +02:00 committed by Arnaldo Carvalho de Melo
parent 9a5edde6d3
commit 52e22fb8af
4 changed files with 10 additions and 1 deletions

View File

@ -14,3 +14,9 @@ void perf_evlist__add(struct perf_evlist *evlist,
{
list_add_tail(&evsel->node, &evlist->entries);
}
void perf_evlist__remove(struct perf_evlist *evlist,
struct perf_evsel *evsel)
{
list_del_init(&evsel->node);
}

View File

@ -10,5 +10,7 @@ struct perf_evsel;
LIBPERF_API void perf_evlist__init(struct perf_evlist *evlist);
LIBPERF_API void perf_evlist__add(struct perf_evlist *evlist,
struct perf_evsel *evsel);
LIBPERF_API void perf_evlist__remove(struct perf_evlist *evlist,
struct perf_evsel *evsel);
#endif /* __LIBPERF_EVLIST_H */

View File

@ -12,6 +12,7 @@ LIBPERF_0.0.1 {
perf_evsel__init;
perf_evlist__init;
perf_evlist__add;
perf_evlist__remove;
local:
*;
};

View File

@ -194,7 +194,7 @@ void evlist__add(struct evlist *evlist, struct evsel *entry)
void evlist__remove(struct evlist *evlist, struct evsel *evsel)
{
evsel->evlist = NULL;
list_del_init(&evsel->core.node);
perf_evlist__remove(&evlist->core, &evsel->core);
evlist->nr_entries -= 1;
}