162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#ifndef __PERF_EVSEL_FPRINTF_H
362306a36Sopenharmony_ci#define __PERF_EVSEL_FPRINTF_H 1
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <stdio.h>
662306a36Sopenharmony_ci#include <stdbool.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_cistruct evsel;
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cistruct perf_attr_details {
1162306a36Sopenharmony_ci	bool freq;
1262306a36Sopenharmony_ci	bool verbose;
1362306a36Sopenharmony_ci	bool event_group;
1462306a36Sopenharmony_ci	bool force;
1562306a36Sopenharmony_ci	bool trace_fields;
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciint evsel__fprintf(struct evsel *evsel, struct perf_attr_details *details, FILE *fp);
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci#define EVSEL__PRINT_IP			(1<<0)
2162306a36Sopenharmony_ci#define EVSEL__PRINT_SYM		(1<<1)
2262306a36Sopenharmony_ci#define EVSEL__PRINT_DSO		(1<<2)
2362306a36Sopenharmony_ci#define EVSEL__PRINT_SYMOFFSET		(1<<3)
2462306a36Sopenharmony_ci#define EVSEL__PRINT_ONELINE		(1<<4)
2562306a36Sopenharmony_ci#define EVSEL__PRINT_SRCLINE		(1<<5)
2662306a36Sopenharmony_ci#define EVSEL__PRINT_UNKNOWN_AS_ADDR	(1<<6)
2762306a36Sopenharmony_ci#define EVSEL__PRINT_CALLCHAIN_ARROW	(1<<7)
2862306a36Sopenharmony_ci#define EVSEL__PRINT_SKIP_IGNORED	(1<<8)
2962306a36Sopenharmony_ci#define EVSEL__PRINT_DSOFF		(1<<9)
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_cistruct addr_location;
3262306a36Sopenharmony_cistruct perf_event_attr;
3362306a36Sopenharmony_cistruct perf_sample;
3462306a36Sopenharmony_cistruct callchain_cursor;
3562306a36Sopenharmony_cistruct strlist;
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciint sample__fprintf_callchain(struct perf_sample *sample, int left_alignment,
3862306a36Sopenharmony_ci			      unsigned int print_opts, struct callchain_cursor *cursor,
3962306a36Sopenharmony_ci			      struct strlist *bt_stop_list, FILE *fp);
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciint sample__fprintf_sym(struct perf_sample *sample, struct addr_location *al,
4262306a36Sopenharmony_ci			int left_alignment, unsigned int print_opts,
4362306a36Sopenharmony_ci			struct callchain_cursor *cursor,
4462306a36Sopenharmony_ci			struct strlist *bt_stop_list, FILE *fp);
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_citypedef int (*attr__fprintf_f)(FILE *, const char *, const char *, void *);
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciint perf_event_attr__fprintf(FILE *fp, struct perf_event_attr *attr,
4962306a36Sopenharmony_ci			     attr__fprintf_f attr__fprintf, void *priv);
5062306a36Sopenharmony_ci#endif // __PERF_EVSEL_H
51