brintos

brintos / linux-shallow public Read only

0
0
Text · 2.3 KiB · db1c764 Raw
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