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 */ |
