xref: /openbmc/linux/tools/perf/util/evsel_fprintf.h (revision af9eb56b)
1ca125277SArnaldo Carvalho de Melo // SPDX-License-Identifier: GPL-2.0
2ca125277SArnaldo Carvalho de Melo #ifndef __PERF_EVSEL_FPRINTF_H
3ca125277SArnaldo Carvalho de Melo #define __PERF_EVSEL_FPRINTF_H 1
4ca125277SArnaldo Carvalho de Melo 
5ca125277SArnaldo Carvalho de Melo #include <stdio.h>
6ca125277SArnaldo Carvalho de Melo #include <stdbool.h>
7ca125277SArnaldo Carvalho de Melo 
8ca125277SArnaldo Carvalho de Melo struct evsel;
9ca125277SArnaldo Carvalho de Melo 
10ca125277SArnaldo Carvalho de Melo struct perf_attr_details {
11ca125277SArnaldo Carvalho de Melo 	bool freq;
12ca125277SArnaldo Carvalho de Melo 	bool verbose;
13ca125277SArnaldo Carvalho de Melo 	bool event_group;
14ca125277SArnaldo Carvalho de Melo 	bool force;
15ca125277SArnaldo Carvalho de Melo 	bool trace_fields;
16ca125277SArnaldo Carvalho de Melo };
17ca125277SArnaldo Carvalho de Melo 
182dbfc945SArnaldo Carvalho de Melo int evsel__fprintf(struct evsel *evsel, struct perf_attr_details *details, FILE *fp);
19ca125277SArnaldo Carvalho de Melo 
20ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_IP			(1<<0)
21ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_SYM		(1<<1)
22ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_DSO		(1<<2)
23ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_SYMOFFSET		(1<<3)
24ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_ONELINE		(1<<4)
25ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_SRCLINE		(1<<5)
26ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_UNKNOWN_AS_ADDR	(1<<6)
27ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_CALLCHAIN_ARROW	(1<<7)
28ca125277SArnaldo Carvalho de Melo #define EVSEL__PRINT_SKIP_IGNORED	(1<<8)
29*af9eb56bSChangbin Du #define EVSEL__PRINT_DSOFF		(1<<9)
30ca125277SArnaldo Carvalho de Melo 
31ca125277SArnaldo Carvalho de Melo struct addr_location;
32ca125277SArnaldo Carvalho de Melo struct perf_event_attr;
33ca125277SArnaldo Carvalho de Melo struct perf_sample;
34ca125277SArnaldo Carvalho de Melo struct callchain_cursor;
35ca125277SArnaldo Carvalho de Melo struct strlist;
36ca125277SArnaldo Carvalho de Melo 
37ca125277SArnaldo Carvalho de Melo int sample__fprintf_callchain(struct perf_sample *sample, int left_alignment,
38ca125277SArnaldo Carvalho de Melo 			      unsigned int print_opts, struct callchain_cursor *cursor,
39ca125277SArnaldo Carvalho de Melo 			      struct strlist *bt_stop_list, FILE *fp);
40ca125277SArnaldo Carvalho de Melo 
41ca125277SArnaldo Carvalho de Melo int sample__fprintf_sym(struct perf_sample *sample, struct addr_location *al,
42ca125277SArnaldo Carvalho de Melo 			int left_alignment, unsigned int print_opts,
43ca125277SArnaldo Carvalho de Melo 			struct callchain_cursor *cursor,
44ca125277SArnaldo Carvalho de Melo 			struct strlist *bt_stop_list, FILE *fp);
45ca125277SArnaldo Carvalho de Melo 
46ca125277SArnaldo Carvalho de Melo typedef int (*attr__fprintf_f)(FILE *, const char *, const char *, void *);
47ca125277SArnaldo Carvalho de Melo 
48ca125277SArnaldo Carvalho de Melo int perf_event_attr__fprintf(FILE *fp, struct perf_event_attr *attr,
49ca125277SArnaldo Carvalho de Melo 			     attr__fprintf_f attr__fprintf, void *priv);
50ca125277SArnaldo Carvalho de Melo #endif // __PERF_EVSEL_H
51