diff options
Diffstat (limited to 'tools/perf/util/event.h')
-rw-r--r-- | tools/perf/util/event.h | 66 |
1 files changed, 47 insertions, 19 deletions
diff --git a/tools/perf/util/event.h b/tools/perf/util/event.h index a33b94952e34..8577085db067 100644 --- a/tools/perf/util/event.h +++ b/tools/perf/util/event.h | |||
@@ -68,21 +68,54 @@ struct sample_data { | |||
68 | u64 addr; | 68 | u64 addr; |
69 | u64 id; | 69 | u64 id; |
70 | u64 stream_id; | 70 | u64 stream_id; |
71 | u32 cpu; | ||
72 | u64 period; | 71 | u64 period; |
73 | struct ip_callchain *callchain; | 72 | u32 cpu; |
74 | u32 raw_size; | 73 | u32 raw_size; |
75 | void *raw_data; | 74 | void *raw_data; |
75 | struct ip_callchain *callchain; | ||
76 | }; | 76 | }; |
77 | 77 | ||
78 | #define BUILD_ID_SIZE 20 | 78 | #define BUILD_ID_SIZE 20 |
79 | 79 | ||
80 | struct build_id_event { | 80 | struct build_id_event { |
81 | struct perf_event_header header; | 81 | struct perf_event_header header; |
82 | pid_t pid; | ||
82 | u8 build_id[ALIGN(BUILD_ID_SIZE, sizeof(u64))]; | 83 | u8 build_id[ALIGN(BUILD_ID_SIZE, sizeof(u64))]; |
83 | char filename[]; | 84 | char filename[]; |
84 | }; | 85 | }; |
85 | 86 | ||
87 | enum perf_user_event_type { /* above any possible kernel type */ | ||
88 | PERF_RECORD_HEADER_ATTR = 64, | ||
89 | PERF_RECORD_HEADER_EVENT_TYPE = 65, | ||
90 | PERF_RECORD_HEADER_TRACING_DATA = 66, | ||
91 | PERF_RECORD_HEADER_BUILD_ID = 67, | ||
92 | PERF_RECORD_FINISHED_ROUND = 68, | ||
93 | PERF_RECORD_HEADER_MAX | ||
94 | }; | ||
95 | |||
96 | struct attr_event { | ||
97 | struct perf_event_header header; | ||
98 | struct perf_event_attr attr; | ||
99 | u64 id[]; | ||
100 | }; | ||
101 | |||
102 | #define MAX_EVENT_NAME 64 | ||
103 | |||
104 | struct perf_trace_event_type { | ||
105 | u64 event_id; | ||
106 | char name[MAX_EVENT_NAME]; | ||
107 | }; | ||
108 | |||
109 | struct event_type_event { | ||
110 | struct perf_event_header header; | ||
111 | struct perf_trace_event_type event_type; | ||
112 | }; | ||
113 | |||
114 | struct tracing_data_event { | ||
115 | struct perf_event_header header; | ||
116 | u32 size; | ||
117 | }; | ||
118 | |||
86 | typedef union event_union { | 119 | typedef union event_union { |
87 | struct perf_event_header header; | 120 | struct perf_event_header header; |
88 | struct ip_event ip; | 121 | struct ip_event ip; |
@@ -92,22 +125,12 @@ typedef union event_union { | |||
92 | struct lost_event lost; | 125 | struct lost_event lost; |
93 | struct read_event read; | 126 | struct read_event read; |
94 | struct sample_event sample; | 127 | struct sample_event sample; |
128 | struct attr_event attr; | ||
129 | struct event_type_event event_type; | ||
130 | struct tracing_data_event tracing_data; | ||
131 | struct build_id_event build_id; | ||
95 | } event_t; | 132 | } event_t; |
96 | 133 | ||
97 | struct events_stats { | ||
98 | u64 total; | ||
99 | u64 lost; | ||
100 | }; | ||
101 | |||
102 | struct event_stat_id { | ||
103 | struct rb_node rb_node; | ||
104 | struct rb_root hists; | ||
105 | struct events_stats stats; | ||
106 | u64 config; | ||
107 | u64 event_stream; | ||
108 | u32 type; | ||
109 | }; | ||
110 | |||
111 | void event__print_totals(void); | 134 | void event__print_totals(void); |
112 | 135 | ||
113 | struct perf_session; | 136 | struct perf_session; |
@@ -119,10 +142,13 @@ int event__synthesize_thread(pid_t pid, event__handler_t process, | |||
119 | void event__synthesize_threads(event__handler_t process, | 142 | void event__synthesize_threads(event__handler_t process, |
120 | struct perf_session *session); | 143 | struct perf_session *session); |
121 | int event__synthesize_kernel_mmap(event__handler_t process, | 144 | int event__synthesize_kernel_mmap(event__handler_t process, |
122 | struct perf_session *session, | 145 | struct perf_session *session, |
123 | const char *symbol_name); | 146 | struct machine *machine, |
147 | const char *symbol_name); | ||
148 | |||
124 | int event__synthesize_modules(event__handler_t process, | 149 | int event__synthesize_modules(event__handler_t process, |
125 | struct perf_session *session); | 150 | struct perf_session *session, |
151 | struct machine *machine); | ||
126 | 152 | ||
127 | int event__process_comm(event_t *self, struct perf_session *session); | 153 | int event__process_comm(event_t *self, struct perf_session *session); |
128 | int event__process_lost(event_t *self, struct perf_session *session); | 154 | int event__process_lost(event_t *self, struct perf_session *session); |
@@ -134,4 +160,6 @@ int event__preprocess_sample(const event_t *self, struct perf_session *session, | |||
134 | struct addr_location *al, symbol_filter_t filter); | 160 | struct addr_location *al, symbol_filter_t filter); |
135 | int event__parse_sample(event_t *event, u64 type, struct sample_data *data); | 161 | int event__parse_sample(event_t *event, u64 type, struct sample_data *data); |
136 | 162 | ||
163 | extern const char *event__name[]; | ||
164 | |||
137 | #endif /* __PERF_RECORD_H */ | 165 | #endif /* __PERF_RECORD_H */ |