hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/tools/perf/util/session.h
....@@ -8,6 +8,7 @@
88 #include "machine.h"
99 #include "data.h"
1010 #include "ordered-events.h"
11
+#include "util/compress.h"
1112 #include <linux/kernel.h>
1213 #include <linux/rbtree.h>
1314 #include <linux/perf_event.h>
....@@ -22,12 +23,12 @@
2223 struct perf_session {
2324 struct perf_header header;
2425 struct machines machines;
25
- struct perf_evlist *evlist;
26
+ struct evlist *evlist;
2627 struct auxtrace *auxtrace;
2728 struct itrace_synth_opts *itrace_synth_opts;
2829 struct list_head auxtrace_index;
2930 struct trace_event tevent;
30
- struct time_conv_event time_conv;
31
+ struct perf_record_time_conv time_conv;
3132 bool repipe;
3233 bool one_mmap;
3334 void *one_mmap_addr;
....@@ -35,6 +36,20 @@
3536 struct ordered_events ordered_events;
3637 struct perf_data *data;
3738 struct perf_tool *tool;
39
+ u64 bytes_transferred;
40
+ u64 bytes_compressed;
41
+ struct zstd_data zstd_data;
42
+ struct decomp *decomp;
43
+ struct decomp *decomp_last;
44
+};
45
+
46
+struct decomp {
47
+ struct decomp *next;
48
+ u64 file_pos;
49
+ size_t mmap_len;
50
+ u64 head;
51
+ size_t size;
52
+ char data[];
3853 };
3954
4055 struct perf_tool;
....@@ -49,6 +64,11 @@
4964 void *buf, size_t buf_sz,
5065 union perf_event **event_ptr,
5166 struct perf_sample *sample);
67
+typedef int (*peek_events_cb_t)(struct perf_session *session,
68
+ union perf_event *event, u64 offset,
69
+ void *data);
70
+int perf_session__peek_events(struct perf_session *session, u64 offset,
71
+ u64 size, peek_events_cb_t cb, void *data);
5272
5373 int perf_session__process_events(struct perf_session *session);
5474
....@@ -58,7 +78,7 @@
5878 void perf_tool__fill_defaults(struct perf_tool *tool);
5979
6080 int perf_session__resolve_callchain(struct perf_session *session,
61
- struct perf_evsel *evsel,
81
+ struct evsel *evsel,
6282 struct thread *thread,
6383 struct ip_callchain *chain,
6484 struct symbol **parent);
....@@ -95,7 +115,7 @@
95115
96116 size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp);
97117
98
-struct perf_evsel *perf_session__find_first_evtype(struct perf_session *session,
118
+struct evsel *perf_session__find_first_evtype(struct perf_session *session,
99119 unsigned int type);
100120
101121 int perf_session__cpu_bitmap(struct perf_session *session,
....@@ -103,14 +123,10 @@
103123
104124 void perf_session__fprintf_info(struct perf_session *s, FILE *fp, bool full);
105125
106
-struct perf_evsel_str_handler;
107
-
108
-int __perf_session__set_tracepoints_handlers(struct perf_session *session,
109
- const struct perf_evsel_str_handler *assocs,
110
- size_t nr_assocs);
126
+struct evsel_str_handler;
111127
112128 #define perf_session__set_tracepoints_handlers(session, array) \
113
- __perf_session__set_tracepoints_handlers(session, array, ARRAY_SIZE(array))
129
+ __evlist__set_tracepoints_handlers(session->evlist, array, ARRAY_SIZE(array))
114130
115131 extern volatile int session_done;
116132
....@@ -120,13 +136,7 @@
120136 union perf_event *event,
121137 struct perf_sample *sample);
122138
123
-int perf_event__process_id_index(struct perf_tool *tool,
124
- union perf_event *event,
125
- struct perf_session *session);
126
-
127
-int perf_event__synthesize_id_index(struct perf_tool *tool,
128
- perf_event__handler_t process,
129
- struct perf_evlist *evlist,
130
- struct machine *machine);
139
+int perf_event__process_id_index(struct perf_session *session,
140
+ union perf_event *event);
131141
132142 #endif /* __PERF_SESSION_H */