145694aa7SArnaldo Carvalho de Melo #ifndef __PERF_TOOL_H 245694aa7SArnaldo Carvalho de Melo #define __PERF_TOOL_H 345694aa7SArnaldo Carvalho de Melo 4ee29be62SArnaldo Carvalho de Melo #include <stdbool.h> 5ee29be62SArnaldo Carvalho de Melo 6a16ac023SAdrian Hunter #include <linux/types.h> 7a16ac023SAdrian Hunter 845694aa7SArnaldo Carvalho de Melo struct perf_session; 9ee29be62SArnaldo Carvalho de Melo union perf_event; 10ee29be62SArnaldo Carvalho de Melo struct perf_evlist; 1145694aa7SArnaldo Carvalho de Melo struct perf_evsel; 12ee29be62SArnaldo Carvalho de Melo struct perf_sample; 1345694aa7SArnaldo Carvalho de Melo struct perf_tool; 1445694aa7SArnaldo Carvalho de Melo struct machine; 15d704ebdaSArnaldo Carvalho de Melo struct ordered_events; 1645694aa7SArnaldo Carvalho de Melo 1745694aa7SArnaldo Carvalho de Melo typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, 1845694aa7SArnaldo Carvalho de Melo struct perf_sample *sample, 1945694aa7SArnaldo Carvalho de Melo struct perf_evsel *evsel, struct machine *machine); 2045694aa7SArnaldo Carvalho de Melo 2145694aa7SArnaldo Carvalho de Melo typedef int (*event_op)(struct perf_tool *tool, union perf_event *event, 2245694aa7SArnaldo Carvalho de Melo struct perf_sample *sample, struct machine *machine); 2345694aa7SArnaldo Carvalho de Melo 2447c3d109SAdrian Hunter typedef int (*event_attr_op)(struct perf_tool *tool, 2547c3d109SAdrian Hunter union perf_event *event, 2645694aa7SArnaldo Carvalho de Melo struct perf_evlist **pevlist); 2745694aa7SArnaldo Carvalho de Melo 2845694aa7SArnaldo Carvalho de Melo typedef int (*event_op2)(struct perf_tool *tool, union perf_event *event, 2945694aa7SArnaldo Carvalho de Melo struct perf_session *session); 3045694aa7SArnaldo Carvalho de Melo 31d704ebdaSArnaldo Carvalho de Melo typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, 32d704ebdaSArnaldo Carvalho de Melo struct ordered_events *oe); 33d704ebdaSArnaldo Carvalho de Melo 34a16ac023SAdrian Hunter typedef s64 (*event_op3)(struct perf_tool *tool, union perf_event *event, 35a16ac023SAdrian Hunter struct perf_session *session); 36a16ac023SAdrian Hunter 37114f709eSDavid Carrillo-Cisneros enum show_feature_header { 38114f709eSDavid Carrillo-Cisneros SHOW_FEAT_NO_HEADER = 0, 39114f709eSDavid Carrillo-Cisneros SHOW_FEAT_HEADER, 40114f709eSDavid Carrillo-Cisneros SHOW_FEAT_HEADER_FULL_INFO, 41114f709eSDavid Carrillo-Cisneros }; 42114f709eSDavid Carrillo-Cisneros 4345694aa7SArnaldo Carvalho de Melo struct perf_tool { 4445694aa7SArnaldo Carvalho de Melo event_sample sample, 4545694aa7SArnaldo Carvalho de Melo read; 4645694aa7SArnaldo Carvalho de Melo event_op mmap, 475c5e854bSStephane Eranian mmap2, 4845694aa7SArnaldo Carvalho de Melo comm, 49f3b3614aSHari Bathini namespaces, 5045694aa7SArnaldo Carvalho de Melo fork, 5145694aa7SArnaldo Carvalho de Melo exit, 5245694aa7SArnaldo Carvalho de Melo lost, 53c4937a91SKan Liang lost_samples, 544a96f7a0SAdrian Hunter aux, 550ad21f68SAdrian Hunter itrace_start, 560286039fSAdrian Hunter context_switch, 5745694aa7SArnaldo Carvalho de Melo throttle, 5845694aa7SArnaldo Carvalho de Melo unthrottle; 5945694aa7SArnaldo Carvalho de Melo event_attr_op attr; 60ffe77725SJiri Olsa event_attr_op event_update; 6147c3d109SAdrian Hunter event_op2 tracing_data; 62d704ebdaSArnaldo Carvalho de Melo event_oe finished_round; 63d704ebdaSArnaldo Carvalho de Melo event_op2 build_id, 64a16ac023SAdrian Hunter id_index, 65e9bf54d2SAdrian Hunter auxtrace_info, 665f3339d2SJiri Olsa auxtrace_error, 6746bc29b9SAdrian Hunter time_conv, 686640b6c2SJiri Olsa thread_map, 69374fb9e3SJiri Olsa cpu_map, 70d80518c9SJiri Olsa stat_config, 712d8f0f18SJiri Olsa stat, 722d8f0f18SJiri Olsa stat_round; 73a16ac023SAdrian Hunter event_op3 auxtrace; 740a8cb85cSJiri Olsa bool ordered_events; 7545694aa7SArnaldo Carvalho de Melo bool ordering_requires_timestamps; 76f3b3614aSHari Bathini bool namespace_events; 77114f709eSDavid Carrillo-Cisneros enum show_feature_header show_feat_hdr; 7845694aa7SArnaldo Carvalho de Melo }; 7945694aa7SArnaldo Carvalho de Melo 8045694aa7SArnaldo Carvalho de Melo #endif /* __PERF_TOOL_H */ 81