diff options
Diffstat (limited to 'tools/perf/util/evsel.c')
-rw-r--r-- | tools/perf/util/evsel.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index a85ae12845ea..76ab553637d6 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c | |||
@@ -14,15 +14,20 @@ | |||
14 | #define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y)) | 14 | #define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y)) |
15 | #define SID(e, x, y) xyarray__entry(e->id, x, y) | 15 | #define SID(e, x, y) xyarray__entry(e->id, x, y) |
16 | 16 | ||
17 | void perf_evsel__init(struct perf_evsel *evsel, | ||
18 | struct perf_event_attr *attr, int idx) | ||
19 | { | ||
20 | evsel->idx = idx; | ||
21 | evsel->attr = *attr; | ||
22 | INIT_LIST_HEAD(&evsel->node); | ||
23 | } | ||
24 | |||
17 | struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr, int idx) | 25 | struct perf_evsel *perf_evsel__new(struct perf_event_attr *attr, int idx) |
18 | { | 26 | { |
19 | struct perf_evsel *evsel = zalloc(sizeof(*evsel)); | 27 | struct perf_evsel *evsel = zalloc(sizeof(*evsel)); |
20 | 28 | ||
21 | if (evsel != NULL) { | 29 | if (evsel != NULL) |
22 | evsel->idx = idx; | 30 | perf_evsel__init(evsel, attr, idx); |
23 | evsel->attr = *attr; | ||
24 | INIT_LIST_HEAD(&evsel->node); | ||
25 | } | ||
26 | 31 | ||
27 | return evsel; | 32 | return evsel; |
28 | } | 33 | } |
@@ -87,11 +92,16 @@ int perf_evlist__alloc_mmap(struct perf_evlist *evlist, int ncpus) | |||
87 | return evlist->mmap != NULL ? 0 : -ENOMEM; | 92 | return evlist->mmap != NULL ? 0 : -ENOMEM; |
88 | } | 93 | } |
89 | 94 | ||
90 | void perf_evsel__delete(struct perf_evsel *evsel) | 95 | void perf_evsel__exit(struct perf_evsel *evsel) |
91 | { | 96 | { |
92 | assert(list_empty(&evsel->node)); | 97 | assert(list_empty(&evsel->node)); |
93 | xyarray__delete(evsel->fd); | 98 | xyarray__delete(evsel->fd); |
94 | xyarray__delete(evsel->id); | 99 | xyarray__delete(evsel->id); |
100 | } | ||
101 | |||
102 | void perf_evsel__delete(struct perf_evsel *evsel) | ||
103 | { | ||
104 | perf_evsel__exit(evsel); | ||
95 | free(evsel); | 105 | free(evsel); |
96 | } | 106 | } |
97 | 107 | ||