94c744b6c0
That does all the initialization boilerplate, opening the file, reading the header, checking if it is valid, etc. And that will as well have the threads list, kmap (now) global variable, etc, so that we can handle two (or more) perf.data files describing sessions to compare. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> LKML-Reference: <1260573842-19720-1-git-send-email-acme@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
29 lines
913 B
C
29 lines
913 B
C
#ifndef __PERF_DATAMAP_H
|
|
#define __PERF_DATAMAP_H
|
|
|
|
#include "event.h"
|
|
#include "header.h"
|
|
#include "session.h"
|
|
|
|
typedef int (*event_type_handler_t)(event_t *);
|
|
|
|
struct perf_file_handler {
|
|
event_type_handler_t process_sample_event;
|
|
event_type_handler_t process_mmap_event;
|
|
event_type_handler_t process_comm_event;
|
|
event_type_handler_t process_fork_event;
|
|
event_type_handler_t process_exit_event;
|
|
event_type_handler_t process_lost_event;
|
|
event_type_handler_t process_read_event;
|
|
event_type_handler_t process_throttle_event;
|
|
event_type_handler_t process_unthrottle_event;
|
|
int (*sample_type_check)(u64 sample_type);
|
|
unsigned long total_unknown;
|
|
};
|
|
|
|
void register_perf_file_handler(struct perf_file_handler *handler);
|
|
int perf_session__process_events(struct perf_session *self,
|
|
int full_paths, int *cwdlen, char **cwd);
|
|
int perf_header__read_build_ids(int input, u64 offset, u64 file_size);
|
|
|
|
#endif
|