1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * perf iostat |
4 | * |
5 | * Copyright (C) 2020, Intel Corporation |
6 | * |
7 | * Authors: Alexander Antonov <alexander.antonov@linux.intel.com> |
8 | */ |
9 | |
10 | #ifndef _IOSTAT_H |
11 | #define _IOSTAT_H |
12 | |
13 | #include <subcmd/parse-options.h> |
14 | #include "util/stat.h" |
15 | #include "util/parse-events.h" |
16 | #include "util/evlist.h" |
17 | |
18 | struct option; |
19 | struct perf_stat_config; |
20 | struct evlist; |
21 | struct timespec; |
22 | |
23 | enum iostat_mode_t { |
24 | IOSTAT_NONE = -1, |
25 | IOSTAT_RUN = 0, |
26 | IOSTAT_LIST = 1 |
27 | }; |
28 | |
29 | extern enum iostat_mode_t iostat_mode; |
30 | |
31 | typedef void (*iostat_print_counter_t)(struct perf_stat_config *, struct evsel *, void *); |
32 | |
33 | int iostat_prepare(struct evlist *evlist, struct perf_stat_config *config); |
34 | int iostat_parse(const struct option *opt, const char *str, |
35 | int unset __maybe_unused); |
36 | void iostat_list(struct evlist *evlist, struct perf_stat_config *config); |
37 | void iostat_release(struct evlist *evlist); |
38 | void iostat_prefix(struct evlist *evlist, struct perf_stat_config *config, |
39 | char *prefix, struct timespec *ts); |
40 | void (struct perf_stat_config *config); |
41 | void iostat_print_metric(struct perf_stat_config *config, struct evsel *evsel, |
42 | struct perf_stat_output_ctx *out); |
43 | void iostat_print_counters(struct evlist *evlist, |
44 | struct perf_stat_config *config, struct timespec *ts, |
45 | char *prefix, iostat_print_counter_t print_cnt_cb, void *arg); |
46 | |
47 | #endif /* _IOSTAT_H */ |
48 | |