1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __PERF_PRINT_EVENTS_H |
3 | #define __PERF_PRINT_EVENTS_H |
4 | |
5 | #include <linux/perf_event.h> |
6 | #include <linux/types.h> |
7 | #include <stdbool.h> |
8 | |
9 | struct event_symbol; |
10 | |
11 | struct print_callbacks { |
12 | void (*print_start)(void *print_state); |
13 | void (*print_end)(void *print_state); |
14 | void (*print_event)(void *print_state, const char *topic, |
15 | const char *pmu_name, |
16 | const char *event_name, const char *event_alias, |
17 | const char *scale_unit, |
18 | bool deprecated, const char *event_type_desc, |
19 | const char *desc, const char *long_desc, |
20 | const char *encoding_desc); |
21 | void (*print_metric)(void *print_state, |
22 | const char *group, |
23 | const char *name, |
24 | const char *desc, |
25 | const char *long_desc, |
26 | const char *expr, |
27 | const char *threshold, |
28 | const char *unit); |
29 | bool (*skip_duplicate_pmus)(void *print_state); |
30 | }; |
31 | |
32 | /** Print all events, the default when no options are specified. */ |
33 | void print_events(const struct print_callbacks *print_cb, void *print_state); |
34 | int print_hwcache_events(const struct print_callbacks *print_cb, void *print_state); |
35 | void print_sdt_events(const struct print_callbacks *print_cb, void *print_state); |
36 | void print_symbol_events(const struct print_callbacks *print_cb, void *print_state, |
37 | unsigned int type, const struct event_symbol *syms, |
38 | unsigned int max); |
39 | void print_tool_events(const struct print_callbacks *print_cb, void *print_state); |
40 | void print_tracepoint_events(const struct print_callbacks *print_cb, void *print_state); |
41 | bool is_event_supported(u8 type, u64 config); |
42 | |
43 | #endif /* __PERF_PRINT_EVENTS_H */ |
44 | |