48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| /*
 | |
|  * perf iostat
 | |
|  *
 | |
|  * Copyright (C) 2020, Intel Corporation
 | |
|  *
 | |
|  * Authors: Alexander Antonov <alexander.antonov@linux.intel.com>
 | |
|  */
 | |
| 
 | |
| #ifndef _IOSTAT_H
 | |
| #define _IOSTAT_H
 | |
| 
 | |
| #include <subcmd/parse-options.h>
 | |
| #include "util/stat.h"
 | |
| #include "util/parse-events.h"
 | |
| #include "util/evlist.h"
 | |
| 
 | |
| struct option;
 | |
| struct perf_stat_config;
 | |
| struct evlist;
 | |
| struct timespec;
 | |
| 
 | |
| enum iostat_mode_t {
 | |
| 	IOSTAT_NONE		= -1,
 | |
| 	IOSTAT_RUN		= 0,
 | |
| 	IOSTAT_LIST		= 1
 | |
| };
 | |
| 
 | |
| extern enum iostat_mode_t iostat_mode;
 | |
| 
 | |
| typedef void (*iostat_print_counter_t)(struct perf_stat_config *, struct evsel *, void *);
 | |
| 
 | |
| int iostat_prepare(struct evlist *evlist, struct perf_stat_config *config);
 | |
| int iostat_parse(const struct option *opt, const char *str,
 | |
| 		 int unset __maybe_unused);
 | |
| void iostat_list(struct evlist *evlist, struct perf_stat_config *config);
 | |
| void iostat_release(struct evlist *evlist);
 | |
| void iostat_prefix(struct evlist *evlist, struct perf_stat_config *config,
 | |
| 		   char *prefix, struct timespec *ts);
 | |
| void iostat_print_header_prefix(struct perf_stat_config *config);
 | |
| void iostat_print_metric(struct perf_stat_config *config, struct evsel *evsel,
 | |
| 			 struct perf_stat_output_ctx *out);
 | |
| void iostat_print_counters(struct evlist *evlist,
 | |
| 			   struct perf_stat_config *config, struct timespec *ts,
 | |
| 			   char *prefix, iostat_print_counter_t print_cnt_cb, void *arg);
 | |
| 
 | |
| #endif /* _IOSTAT_H */
 |