mirror of https://gitee.com/openkylin/linux.git
perf evlist: Add perf_evlist__id2evsel_strict()
perf_evlist__id2evsel_strict() is the same as perf_evlist__id2evsel() except that it ensures that the id must match. This will be used by perf inject to find a specific evsel that is to be deleted, hence the need to match exactly. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Link: http://lkml.kernel.org/r/1443186956-18718-22-git-send-email-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
3c5b645fae
commit
dddcf6abbf
|
@ -617,6 +617,21 @@ struct perf_evsel *perf_evlist__id2evsel(struct perf_evlist *evlist, u64 id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
struct perf_evsel *perf_evlist__id2evsel_strict(struct perf_evlist *evlist,
|
||||
u64 id)
|
||||
{
|
||||
struct perf_sample_id *sid;
|
||||
|
||||
if (!id)
|
||||
return NULL;
|
||||
|
||||
sid = perf_evlist__id2sid(evlist, id);
|
||||
if (sid)
|
||||
return sid->evsel;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int perf_evlist__event2id(struct perf_evlist *evlist,
|
||||
union perf_event *event, u64 *id)
|
||||
{
|
||||
|
|
|
@ -104,6 +104,8 @@ int perf_evlist__filter_pollfd(struct perf_evlist *evlist, short revents_and_mas
|
|||
int perf_evlist__poll(struct perf_evlist *evlist, int timeout);
|
||||
|
||||
struct perf_evsel *perf_evlist__id2evsel(struct perf_evlist *evlist, u64 id);
|
||||
struct perf_evsel *perf_evlist__id2evsel_strict(struct perf_evlist *evlist,
|
||||
u64 id);
|
||||
|
||||
struct perf_sample_id *perf_evlist__id2sid(struct perf_evlist *evlist, u64 id);
|
||||
|
||||
|
|
Loading…
Reference in New Issue