18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#ifndef __PERF_EVSEL_FPRINTF_H
38c2ecf20Sopenharmony_ci#define __PERF_EVSEL_FPRINTF_H 1
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <stdio.h>
68c2ecf20Sopenharmony_ci#include <stdbool.h>
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cistruct evsel;
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cistruct perf_attr_details {
118c2ecf20Sopenharmony_ci	bool freq;
128c2ecf20Sopenharmony_ci	bool verbose;
138c2ecf20Sopenharmony_ci	bool event_group;
148c2ecf20Sopenharmony_ci	bool force;
158c2ecf20Sopenharmony_ci	bool trace_fields;
168c2ecf20Sopenharmony_ci};
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciint evsel__fprintf(struct evsel *evsel, struct perf_attr_details *details, FILE *fp);
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define EVSEL__PRINT_IP			(1<<0)
218c2ecf20Sopenharmony_ci#define EVSEL__PRINT_SYM		(1<<1)
228c2ecf20Sopenharmony_ci#define EVSEL__PRINT_DSO		(1<<2)
238c2ecf20Sopenharmony_ci#define EVSEL__PRINT_SYMOFFSET		(1<<3)
248c2ecf20Sopenharmony_ci#define EVSEL__PRINT_ONELINE		(1<<4)
258c2ecf20Sopenharmony_ci#define EVSEL__PRINT_SRCLINE		(1<<5)
268c2ecf20Sopenharmony_ci#define EVSEL__PRINT_UNKNOWN_AS_ADDR	(1<<6)
278c2ecf20Sopenharmony_ci#define EVSEL__PRINT_CALLCHAIN_ARROW	(1<<7)
288c2ecf20Sopenharmony_ci#define EVSEL__PRINT_SKIP_IGNORED	(1<<8)
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_cistruct addr_location;
318c2ecf20Sopenharmony_cistruct perf_event_attr;
328c2ecf20Sopenharmony_cistruct perf_sample;
338c2ecf20Sopenharmony_cistruct callchain_cursor;
348c2ecf20Sopenharmony_cistruct strlist;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ciint sample__fprintf_callchain(struct perf_sample *sample, int left_alignment,
378c2ecf20Sopenharmony_ci			      unsigned int print_opts, struct callchain_cursor *cursor,
388c2ecf20Sopenharmony_ci			      struct strlist *bt_stop_list, FILE *fp);
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciint sample__fprintf_sym(struct perf_sample *sample, struct addr_location *al,
418c2ecf20Sopenharmony_ci			int left_alignment, unsigned int print_opts,
428c2ecf20Sopenharmony_ci			struct callchain_cursor *cursor,
438c2ecf20Sopenharmony_ci			struct strlist *bt_stop_list, FILE *fp);
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_citypedef int (*attr__fprintf_f)(FILE *, const char *, const char *, void *);
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciint perf_event_attr__fprintf(FILE *fp, struct perf_event_attr *attr,
488c2ecf20Sopenharmony_ci			     attr__fprintf_f attr__fprintf, void *priv);
498c2ecf20Sopenharmony_ci#endif // __PERF_EVSEL_H
50