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