diff options
Diffstat (limited to 'tools/perf/util/evlist.h')
-rw-r--r-- | tools/perf/util/evlist.h | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index 1779ffef7828..8922aeed0467 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h | |||
@@ -2,12 +2,16 @@ | |||
2 | #define __PERF_EVLIST_H 1 | 2 | #define __PERF_EVLIST_H 1 |
3 | 3 | ||
4 | #include <linux/list.h> | 4 | #include <linux/list.h> |
5 | #include <stdio.h> | ||
5 | #include "../perf.h" | 6 | #include "../perf.h" |
6 | #include "event.h" | 7 | #include "event.h" |
8 | #include "util.h" | ||
9 | #include <unistd.h> | ||
7 | 10 | ||
8 | struct pollfd; | 11 | struct pollfd; |
9 | struct thread_map; | 12 | struct thread_map; |
10 | struct cpu_map; | 13 | struct cpu_map; |
14 | struct perf_record_opts; | ||
11 | 15 | ||
12 | #define PERF_EVLIST__HLIST_BITS 8 | 16 | #define PERF_EVLIST__HLIST_BITS 8 |
13 | #define PERF_EVLIST__HLIST_SIZE (1 << PERF_EVLIST__HLIST_BITS) | 17 | #define PERF_EVLIST__HLIST_SIZE (1 << PERF_EVLIST__HLIST_BITS) |
@@ -19,6 +23,10 @@ struct perf_evlist { | |||
19 | int nr_fds; | 23 | int nr_fds; |
20 | int nr_mmaps; | 24 | int nr_mmaps; |
21 | int mmap_len; | 25 | int mmap_len; |
26 | struct { | ||
27 | int cork_fd; | ||
28 | pid_t pid; | ||
29 | } workload; | ||
22 | bool overwrite; | 30 | bool overwrite; |
23 | union perf_event event_copy; | 31 | union perf_event event_copy; |
24 | struct perf_mmap *mmap; | 32 | struct perf_mmap *mmap; |
@@ -28,6 +36,11 @@ struct perf_evlist { | |||
28 | struct perf_evsel *selected; | 36 | struct perf_evsel *selected; |
29 | }; | 37 | }; |
30 | 38 | ||
39 | struct perf_evsel_str_handler { | ||
40 | const char *name; | ||
41 | void *handler; | ||
42 | }; | ||
43 | |||
31 | struct perf_evsel; | 44 | struct perf_evsel; |
32 | 45 | ||
33 | struct perf_evlist *perf_evlist__new(struct cpu_map *cpus, | 46 | struct perf_evlist *perf_evlist__new(struct cpu_map *cpus, |
@@ -39,11 +52,26 @@ void perf_evlist__delete(struct perf_evlist *evlist); | |||
39 | 52 | ||
40 | void perf_evlist__add(struct perf_evlist *evlist, struct perf_evsel *entry); | 53 | void perf_evlist__add(struct perf_evlist *evlist, struct perf_evsel *entry); |
41 | int perf_evlist__add_default(struct perf_evlist *evlist); | 54 | int perf_evlist__add_default(struct perf_evlist *evlist); |
55 | int perf_evlist__add_attrs(struct perf_evlist *evlist, | ||
56 | struct perf_event_attr *attrs, size_t nr_attrs); | ||
57 | int perf_evlist__add_tracepoints(struct perf_evlist *evlist, | ||
58 | const char *tracepoints[], size_t nr_tracepoints); | ||
59 | int perf_evlist__set_tracepoints_handlers(struct perf_evlist *evlist, | ||
60 | const struct perf_evsel_str_handler *assocs, | ||
61 | size_t nr_assocs); | ||
62 | |||
63 | #define perf_evlist__add_attrs_array(evlist, array) \ | ||
64 | perf_evlist__add_attrs(evlist, array, ARRAY_SIZE(array)) | ||
65 | |||
66 | #define perf_evlist__add_tracepoints_array(evlist, array) \ | ||
67 | perf_evlist__add_tracepoints(evlist, array, ARRAY_SIZE(array)) | ||
68 | |||
69 | #define perf_evlist__set_tracepoints_handlers_array(evlist, array) \ | ||
70 | perf_evlist__set_tracepoints_handlers(evlist, array, ARRAY_SIZE(array)) | ||
42 | 71 | ||
43 | void perf_evlist__id_add(struct perf_evlist *evlist, struct perf_evsel *evsel, | 72 | void perf_evlist__id_add(struct perf_evlist *evlist, struct perf_evsel *evsel, |
44 | int cpu, int thread, u64 id); | 73 | int cpu, int thread, u64 id); |
45 | 74 | ||
46 | int perf_evlist__alloc_pollfd(struct perf_evlist *evlist); | ||
47 | void perf_evlist__add_pollfd(struct perf_evlist *evlist, int fd); | 75 | void perf_evlist__add_pollfd(struct perf_evlist *evlist, int fd); |
48 | 76 | ||
49 | struct perf_evsel *perf_evlist__id2evsel(struct perf_evlist *evlist, u64 id); | 77 | struct perf_evsel *perf_evlist__id2evsel(struct perf_evlist *evlist, u64 id); |
@@ -52,8 +80,16 @@ union perf_event *perf_evlist__mmap_read(struct perf_evlist *self, int idx); | |||
52 | 80 | ||
53 | int perf_evlist__open(struct perf_evlist *evlist, bool group); | 81 | int perf_evlist__open(struct perf_evlist *evlist, bool group); |
54 | 82 | ||
55 | int perf_evlist__alloc_mmap(struct perf_evlist *evlist); | 83 | void perf_evlist__config_attrs(struct perf_evlist *evlist, |
56 | int perf_evlist__mmap(struct perf_evlist *evlist, int pages, bool overwrite); | 84 | struct perf_record_opts *opts); |
85 | |||
86 | int perf_evlist__prepare_workload(struct perf_evlist *evlist, | ||
87 | struct perf_record_opts *opts, | ||
88 | const char *argv[]); | ||
89 | int perf_evlist__start_workload(struct perf_evlist *evlist); | ||
90 | |||
91 | int perf_evlist__mmap(struct perf_evlist *evlist, unsigned int pages, | ||
92 | bool overwrite); | ||
57 | void perf_evlist__munmap(struct perf_evlist *evlist); | 93 | void perf_evlist__munmap(struct perf_evlist *evlist); |
58 | 94 | ||
59 | void perf_evlist__disable(struct perf_evlist *evlist); | 95 | void perf_evlist__disable(struct perf_evlist *evlist); |
@@ -77,6 +113,7 @@ int perf_evlist__set_filters(struct perf_evlist *evlist); | |||
77 | 113 | ||
78 | u64 perf_evlist__sample_type(const struct perf_evlist *evlist); | 114 | u64 perf_evlist__sample_type(const struct perf_evlist *evlist); |
79 | bool perf_evlist__sample_id_all(const const struct perf_evlist *evlist); | 115 | bool perf_evlist__sample_id_all(const const struct perf_evlist *evlist); |
116 | u16 perf_evlist__id_hdr_size(const struct perf_evlist *evlist); | ||
80 | 117 | ||
81 | bool perf_evlist__valid_sample_type(const struct perf_evlist *evlist); | 118 | bool perf_evlist__valid_sample_type(const struct perf_evlist *evlist); |
82 | bool perf_evlist__valid_sample_id_all(const struct perf_evlist *evlist); | 119 | bool perf_evlist__valid_sample_id_all(const struct perf_evlist *evlist); |