103 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __PERF_TOOL_H3#define __PERF_TOOL_H4 5#include <stdbool.h>6 7#include <linux/types.h>8 9struct perf_session;10union perf_event;11struct evlist;12struct evsel;13struct perf_sample;14struct perf_tool;15struct machine;16struct ordered_events;17 18typedef int (*event_sample)(const struct perf_tool *tool, union perf_event *event,19 struct perf_sample *sample,20 struct evsel *evsel, struct machine *machine);21 22typedef int (*event_op)(const struct perf_tool *tool, union perf_event *event,23 struct perf_sample *sample, struct machine *machine);24 25typedef int (*event_attr_op)(const struct perf_tool *tool,26 union perf_event *event,27 struct evlist **pevlist);28 29typedef int (*event_op2)(struct perf_session *session, union perf_event *event);30typedef s64 (*event_op3)(struct perf_session *session, union perf_event *event);31typedef int (*event_op4)(struct perf_session *session, union perf_event *event, u64 data,32 const char *str);33 34typedef int (*event_oe)(const struct perf_tool *tool, union perf_event *event,35 struct ordered_events *oe);36 37enum show_feature_header {38 SHOW_FEAT_NO_HEADER = 0,39 SHOW_FEAT_HEADER,40 SHOW_FEAT_HEADER_FULL_INFO,41};42 43struct perf_tool {44 event_sample sample,45 read;46 event_op mmap,47 mmap2,48 comm,49 namespaces,50 cgroup,51 fork,52 exit,53 lost,54 lost_samples,55 aux,56 itrace_start,57 aux_output_hw_id,58 context_switch,59 throttle,60 unthrottle,61 ksymbol,62 bpf,63 text_poke;64 65 event_attr_op attr;66 event_attr_op event_update;67 event_op2 tracing_data;68 event_oe finished_round;69 event_op2 build_id,70 id_index,71 auxtrace_info,72 auxtrace_error,73 time_conv,74 thread_map,75 cpu_map,76 stat_config,77 stat,78 stat_round,79 feature,80 finished_init;81 event_op4 compressed;82 event_op3 auxtrace;83 bool ordered_events;84 bool ordering_requires_timestamps;85 bool namespace_events;86 bool cgroup_events;87 bool no_warn;88 bool dont_split_sample_group;89 enum show_feature_header show_feat_hdr;90};91 92void perf_tool__init(struct perf_tool *tool, bool ordered_events);93 94bool perf_tool__compressed_is_stub(const struct perf_tool *tool);95 96int process_event_sample_stub(const struct perf_tool *tool,97 union perf_event *event,98 struct perf_sample *sample,99 struct evsel *evsel,100 struct machine *machine);101 102#endif /* __PERF_TOOL_H */103