1 #ifndef __PERF_SESSION_H 2 #define __PERF_SESSION_H 3 4 #include "event.h" 5 #include "header.h" 6 7 struct perf_session { 8 struct perf_header header; 9 unsigned long size; 10 int fd; 11 char filename[0]; 12 }; 13 14 typedef int (*event_op)(event_t *self, struct perf_session *session); 15 16 struct perf_event_ops { 17 event_op process_sample_event; 18 event_op process_mmap_event; 19 event_op process_comm_event; 20 event_op process_fork_event; 21 event_op process_exit_event; 22 event_op process_lost_event; 23 event_op process_read_event; 24 event_op process_throttle_event; 25 event_op process_unthrottle_event; 26 int (*sample_type_check)(u64 sample_type); 27 unsigned long total_unknown; 28 }; 29 30 struct perf_session *perf_session__new(const char *filename, int mode, 31 bool force); 32 void perf_session__delete(struct perf_session *self); 33 34 int perf_session__process_events(struct perf_session *self, 35 struct perf_event_ops *event_ops, 36 int full_paths, int *cwdlen, char **cwd); 37 38 int perf_header__read_build_ids(int input, u64 offset, u64 file_size); 39 40 #endif /* __PERF_SESSION_H */ 41