1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 245694aa7SArnaldo Carvalho de Melo #ifndef __PERF_TOOL_H 345694aa7SArnaldo Carvalho de Melo #define __PERF_TOOL_H 445694aa7SArnaldo Carvalho de Melo 5ee29be62SArnaldo Carvalho de Melo #include <stdbool.h> 6ee29be62SArnaldo Carvalho de Melo 7a16ac023SAdrian Hunter #include <linux/types.h> 8a16ac023SAdrian Hunter 945694aa7SArnaldo Carvalho de Melo struct perf_session; 10ee29be62SArnaldo Carvalho de Melo union perf_event; 1163503dbaSJiri Olsa struct evlist; 1232dcd021SJiri Olsa struct evsel; 13ee29be62SArnaldo Carvalho de Melo struct perf_sample; 1445694aa7SArnaldo Carvalho de Melo struct perf_tool; 1545694aa7SArnaldo Carvalho de Melo struct machine; 16d704ebdaSArnaldo Carvalho de Melo struct ordered_events; 1745694aa7SArnaldo Carvalho de Melo 1845694aa7SArnaldo Carvalho de Melo typedef int (*event_sample)(struct perf_tool *tool, union perf_event *event, 1945694aa7SArnaldo Carvalho de Melo struct perf_sample *sample, 2032dcd021SJiri Olsa struct evsel *evsel, struct machine *machine); 2145694aa7SArnaldo Carvalho de Melo 2245694aa7SArnaldo Carvalho de Melo typedef int (*event_op)(struct perf_tool *tool, union perf_event *event, 2345694aa7SArnaldo Carvalho de Melo struct perf_sample *sample, struct machine *machine); 2445694aa7SArnaldo Carvalho de Melo 2547c3d109SAdrian Hunter typedef int (*event_attr_op)(struct perf_tool *tool, 2647c3d109SAdrian Hunter union perf_event *event, 2763503dbaSJiri Olsa struct evlist **pevlist); 2845694aa7SArnaldo Carvalho de Melo 2989f1688aSJiri Olsa typedef int (*event_op2)(struct perf_session *session, union perf_event *event); 307336555aSJiri Olsa typedef s64 (*event_op3)(struct perf_session *session, union perf_event *event); 312292083fSAlexey Bayduraev typedef int (*event_op4)(struct perf_session *session, union perf_event *event, u64 data, 322292083fSAlexey Bayduraev const char *str); 3345694aa7SArnaldo Carvalho de Melo 34d704ebdaSArnaldo Carvalho de Melo typedef int (*event_oe)(struct perf_tool *tool, union perf_event *event, 35d704ebdaSArnaldo Carvalho de Melo struct ordered_events *oe); 36d704ebdaSArnaldo Carvalho de Melo 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, 50ba78c1c5SNamhyung Kim cgroup, 5145694aa7SArnaldo Carvalho de Melo fork, 5245694aa7SArnaldo Carvalho de Melo exit, 5345694aa7SArnaldo Carvalho de Melo lost, 54c4937a91SKan Liang lost_samples, 554a96f7a0SAdrian Hunter aux, 560ad21f68SAdrian Hunter itrace_start, 5761750473SAdrian Hunter aux_output_hw_id, 580286039fSAdrian Hunter context_switch, 5945694aa7SArnaldo Carvalho de Melo throttle, 609aa0bfa3SSong Liu unthrottle, 6145178a92SSong Liu ksymbol, 62246eba8eSAdrian Hunter bpf, 63246eba8eSAdrian Hunter text_poke; 649aa0bfa3SSong Liu 6545694aa7SArnaldo Carvalho de Melo event_attr_op attr; 66ffe77725SJiri Olsa event_attr_op event_update; 6747c3d109SAdrian Hunter event_op2 tracing_data; 68d704ebdaSArnaldo Carvalho de Melo event_oe finished_round; 69d704ebdaSArnaldo Carvalho de Melo event_op2 build_id, 70a16ac023SAdrian Hunter id_index, 71e9bf54d2SAdrian Hunter auxtrace_info, 725f3339d2SJiri Olsa auxtrace_error, 7346bc29b9SAdrian Hunter time_conv, 746640b6c2SJiri Olsa thread_map, 75374fb9e3SJiri Olsa cpu_map, 76d80518c9SJiri Olsa stat_config, 772d8f0f18SJiri Olsa stat, 78e9def1b2SDavid Carrillo-Cisneros stat_round, 793812d298SAdrian Hunter feature, 803812d298SAdrian Hunter finished_init; 8161a7773cSAlexey Budankov event_op4 compressed; 82a16ac023SAdrian Hunter event_op3 auxtrace; 830a8cb85cSJiri Olsa bool ordered_events; 8445694aa7SArnaldo Carvalho de Melo bool ordering_requires_timestamps; 85f3b3614aSHari Bathini bool namespace_events; 86ab64069fSNamhyung Kim bool cgroup_events; 87075ca1ebSJiri Olsa bool no_warn; 88*ba18185bSIan Rogers bool dont_split_sample_group; 89114f709eSDavid Carrillo-Cisneros enum show_feature_header show_feat_hdr; 9045694aa7SArnaldo Carvalho de Melo }; 9145694aa7SArnaldo Carvalho de Melo 9245694aa7SArnaldo Carvalho de Melo #endif /* __PERF_TOOL_H */ 93