1 #ifndef __PERF_TOOL_H 2 #define __PERF_TOOL_H 3 4 #include <stdbool.h> 5 6 #include <linux/types.h> 7 8 struct perf_session; 9 union perf_event; 10 struct perf_evlist; 11 struct perf_evsel; 12 struct perf_sample; 13 struct perf_tool; 14 struct machine; 15 struct ordered_events; 16 17 typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, 18 struct perf_sample *sample, 19 struct perf_evsel *evsel, struct machine *machine); 20 21 typedef int (*event_op)(struct perf_tool *tool, union perf_event *event, 22 struct perf_sample *sample, struct machine *machine); 23 24 typedef int (*event_attr_op)(struct perf_tool *tool, 25 union perf_event *event, 26 struct perf_evlist **pevlist); 27 28 typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, 29 struct perf_session *session); 30 31 typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, 32 struct ordered_events *oe); 33 34 typedef s64 (*event_op3)(struct perf_tool *tool, union perf_event *event, 35 struct perf_session *session); 36 37 enum show_feature_header { 38 SHOW_FEAT_NO_HEADER = 0, 39 SHOW_FEAT_HEADER, 40 SHOW_FEAT_HEADER_FULL_INFO, 41 }; 42 43 struct perf_tool { 44 event_sample sample, 45 read; 46 event_op mmap, 47 mmap2, 48 comm, 49 namespaces, 50 fork, 51 exit, 52 lost, 53 lost_samples, 54 aux, 55 itrace_start, 56 context_switch, 57 throttle, 58 unthrottle; 59 event_attr_op attr; 60 event_attr_op event_update; 61 event_op2 tracing_data; 62 event_oe finished_round; 63 event_op2 build_id, 64 id_index, 65 auxtrace_info, 66 auxtrace_error, 67 time_conv, 68 thread_map, 69 cpu_map, 70 stat_config, 71 stat, 72 stat_round, 73 feature; 74 event_op3 auxtrace; 75 bool ordered_events; 76 bool ordering_requires_timestamps; 77 bool namespace_events; 78 enum show_feature_header show_feat_hdr; 79 }; 80 81 #endif /* __PERF_TOOL_H */ 82