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