session.c (8dc58101f2c838355d44402aa77646649d10dbec) session.c (2c46dbb517a10b18d459e6ceffefde5bfb290cf6)
1#define _FILE_OFFSET_BITS 64
2
3#include <linux/kernel.h>
4
5#include <byteswap.h>
6#include <unistd.h>
7#include <sys/types.h>
8

--- 186 unchanged lines hidden (view full) ---

195 if (handler->lost == NULL)
196 handler->lost = process_event_stub;
197 if (handler->read == NULL)
198 handler->read = process_event_stub;
199 if (handler->throttle == NULL)
200 handler->throttle = process_event_stub;
201 if (handler->unthrottle == NULL)
202 handler->unthrottle = process_event_stub;
1#define _FILE_OFFSET_BITS 64
2
3#include <linux/kernel.h>
4
5#include <byteswap.h>
6#include <unistd.h>
7#include <sys/types.h>
8

--- 186 unchanged lines hidden (view full) ---

195 if (handler->lost == NULL)
196 handler->lost = process_event_stub;
197 if (handler->read == NULL)
198 handler->read = process_event_stub;
199 if (handler->throttle == NULL)
200 handler->throttle = process_event_stub;
201 if (handler->unthrottle == NULL)
202 handler->unthrottle = process_event_stub;
203 if (handler->attr == NULL)
204 handler->attr = process_event_stub;
203}
204
205static const char *event__name[] = {
206 [0] = "TOTAL",
207 [PERF_RECORD_MMAP] = "MMAP",
208 [PERF_RECORD_LOST] = "LOST",
209 [PERF_RECORD_COMM] = "COMM",
210 [PERF_RECORD_EXIT] = "EXIT",
211 [PERF_RECORD_THROTTLE] = "THROTTLE",
212 [PERF_RECORD_UNTHROTTLE] = "UNTHROTTLE",
213 [PERF_RECORD_FORK] = "FORK",
214 [PERF_RECORD_READ] = "READ",
215 [PERF_RECORD_SAMPLE] = "SAMPLE",
205}
206
207static const char *event__name[] = {
208 [0] = "TOTAL",
209 [PERF_RECORD_MMAP] = "MMAP",
210 [PERF_RECORD_LOST] = "LOST",
211 [PERF_RECORD_COMM] = "COMM",
212 [PERF_RECORD_EXIT] = "EXIT",
213 [PERF_RECORD_THROTTLE] = "THROTTLE",
214 [PERF_RECORD_UNTHROTTLE] = "UNTHROTTLE",
215 [PERF_RECORD_FORK] = "FORK",
216 [PERF_RECORD_READ] = "READ",
217 [PERF_RECORD_SAMPLE] = "SAMPLE",
218 [PERF_RECORD_HEADER_ATTR] = "ATTR",
216};
217
218unsigned long event__total[PERF_RECORD_HEADER_MAX];
219
220void event__print_totals(void)
221{
222 int i;
223 for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) {

--- 50 unchanged lines hidden (view full) ---

274 self->read.pid = bswap_32(self->read.pid);
275 self->read.tid = bswap_32(self->read.tid);
276 self->read.value = bswap_64(self->read.value);
277 self->read.time_enabled = bswap_64(self->read.time_enabled);
278 self->read.time_running = bswap_64(self->read.time_running);
279 self->read.id = bswap_64(self->read.id);
280}
281
219};
220
221unsigned long event__total[PERF_RECORD_HEADER_MAX];
222
223void event__print_totals(void)
224{
225 int i;
226 for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) {

--- 50 unchanged lines hidden (view full) ---

277 self->read.pid = bswap_32(self->read.pid);
278 self->read.tid = bswap_32(self->read.tid);
279 self->read.value = bswap_64(self->read.value);
280 self->read.time_enabled = bswap_64(self->read.time_enabled);
281 self->read.time_running = bswap_64(self->read.time_running);
282 self->read.id = bswap_64(self->read.id);
283}
284
285static void event__attr_swap(event_t *self)
286{
287 size_t size;
288
289 self->attr.attr.type = bswap_32(self->attr.attr.type);
290 self->attr.attr.size = bswap_32(self->attr.attr.size);
291 self->attr.attr.config = bswap_64(self->attr.attr.config);
292 self->attr.attr.sample_period = bswap_64(self->attr.attr.sample_period);
293 self->attr.attr.sample_type = bswap_64(self->attr.attr.sample_type);
294 self->attr.attr.read_format = bswap_64(self->attr.attr.read_format);
295 self->attr.attr.wakeup_events = bswap_32(self->attr.attr.wakeup_events);
296 self->attr.attr.bp_type = bswap_32(self->attr.attr.bp_type);
297 self->attr.attr.bp_addr = bswap_64(self->attr.attr.bp_addr);
298 self->attr.attr.bp_len = bswap_64(self->attr.attr.bp_len);
299
300 size = self->header.size;
301 size -= (void *)&self->attr.id - (void *)self;
302 mem_bswap_64(self->attr.id, size);
303}
304
282typedef void (*event__swap_op)(event_t *self);
283
284static event__swap_op event__swap_ops[] = {
285 [PERF_RECORD_MMAP] = event__mmap_swap,
286 [PERF_RECORD_COMM] = event__comm_swap,
287 [PERF_RECORD_FORK] = event__task_swap,
288 [PERF_RECORD_EXIT] = event__task_swap,
289 [PERF_RECORD_LOST] = event__all64_swap,
290 [PERF_RECORD_READ] = event__read_swap,
291 [PERF_RECORD_SAMPLE] = event__all64_swap,
305typedef void (*event__swap_op)(event_t *self);
306
307static event__swap_op event__swap_ops[] = {
308 [PERF_RECORD_MMAP] = event__mmap_swap,
309 [PERF_RECORD_COMM] = event__comm_swap,
310 [PERF_RECORD_FORK] = event__task_swap,
311 [PERF_RECORD_EXIT] = event__task_swap,
312 [PERF_RECORD_LOST] = event__all64_swap,
313 [PERF_RECORD_READ] = event__read_swap,
314 [PERF_RECORD_SAMPLE] = event__all64_swap,
315 [PERF_RECORD_HEADER_ATTR] = event__attr_swap,
292 [PERF_RECORD_HEADER_MAX] = NULL,
293};
294
295static int perf_session__process_event(struct perf_session *self,
296 event_t *event,
297 struct perf_event_ops *ops,
298 u64 offset, u64 head)
299{

--- 24 unchanged lines hidden (view full) ---

324 case PERF_RECORD_LOST:
325 return ops->lost(event, self);
326 case PERF_RECORD_READ:
327 return ops->read(event, self);
328 case PERF_RECORD_THROTTLE:
329 return ops->throttle(event, self);
330 case PERF_RECORD_UNTHROTTLE:
331 return ops->unthrottle(event, self);
316 [PERF_RECORD_HEADER_MAX] = NULL,
317};
318
319static int perf_session__process_event(struct perf_session *self,
320 event_t *event,
321 struct perf_event_ops *ops,
322 u64 offset, u64 head)
323{

--- 24 unchanged lines hidden (view full) ---

348 case PERF_RECORD_LOST:
349 return ops->lost(event, self);
350 case PERF_RECORD_READ:
351 return ops->read(event, self);
352 case PERF_RECORD_THROTTLE:
353 return ops->throttle(event, self);
354 case PERF_RECORD_UNTHROTTLE:
355 return ops->unthrottle(event, self);
356 case PERF_RECORD_HEADER_ATTR:
357 return ops->attr(event, self);
332 default:
333 self->unknown_events++;
334 return -1;
335 }
336}
337
338void perf_event_header__bswap(struct perf_event_header *self)
339{

--- 320 unchanged lines hidden ---
358 default:
359 self->unknown_events++;
360 return -1;
361 }
362}
363
364void perf_event_header__bswap(struct perf_event_header *self)
365{

--- 320 unchanged lines hidden ---