1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright(c) 2021 Intel Corporation. All rights rsvd. */
3 
4 #ifndef __CRYPTO_DEV_IAA_CRYPTO_STATS_H__
5 #define __CRYPTO_DEV_IAA_CRYPTO_STATS_H__
6 
7 #if defined(CONFIG_CRYPTO_DEV_IAA_CRYPTO_STATS)
8 int	iaa_crypto_debugfs_init(void);
9 void	iaa_crypto_debugfs_cleanup(void);
10 
11 void	update_total_comp_calls(void);
12 void	update_total_comp_bytes_out(int n);
13 void	update_total_decomp_calls(void);
14 void	update_total_sw_decomp_calls(void);
15 void	update_total_decomp_bytes_in(int n);
16 void	update_max_comp_delay_ns(u64 start_time_ns);
17 void	update_max_decomp_delay_ns(u64 start_time_ns);
18 void	update_max_acomp_delay_ns(u64 start_time_ns);
19 void	update_max_adecomp_delay_ns(u64 start_time_ns);
20 void	update_completion_einval_errs(void);
21 void	update_completion_timeout_errs(void);
22 void	update_completion_comp_buf_overflow_errs(void);
23 
24 void	update_wq_comp_calls(struct idxd_wq *idxd_wq);
25 void	update_wq_comp_bytes(struct idxd_wq *idxd_wq, int n);
26 void	update_wq_decomp_calls(struct idxd_wq *idxd_wq);
27 void	update_wq_decomp_bytes(struct idxd_wq *idxd_wq, int n);
28 
29 #else
iaa_crypto_debugfs_init(void)30 static inline int	iaa_crypto_debugfs_init(void) { return 0; }
iaa_crypto_debugfs_cleanup(void)31 static inline void	iaa_crypto_debugfs_cleanup(void) {}
32 
update_total_comp_calls(void)33 static inline void	update_total_comp_calls(void) {}
update_total_comp_bytes_out(int n)34 static inline void	update_total_comp_bytes_out(int n) {}
update_total_decomp_calls(void)35 static inline void	update_total_decomp_calls(void) {}
update_total_sw_decomp_calls(void)36 static inline void	update_total_sw_decomp_calls(void) {}
update_total_decomp_bytes_in(int n)37 static inline void	update_total_decomp_bytes_in(int n) {}
update_max_comp_delay_ns(u64 start_time_ns)38 static inline void	update_max_comp_delay_ns(u64 start_time_ns) {}
update_max_decomp_delay_ns(u64 start_time_ns)39 static inline void	update_max_decomp_delay_ns(u64 start_time_ns) {}
update_max_acomp_delay_ns(u64 start_time_ns)40 static inline void	update_max_acomp_delay_ns(u64 start_time_ns) {}
update_max_adecomp_delay_ns(u64 start_time_ns)41 static inline void	update_max_adecomp_delay_ns(u64 start_time_ns) {}
update_completion_einval_errs(void)42 static inline void	update_completion_einval_errs(void) {}
update_completion_timeout_errs(void)43 static inline void	update_completion_timeout_errs(void) {}
update_completion_comp_buf_overflow_errs(void)44 static inline void	update_completion_comp_buf_overflow_errs(void) {}
45 
update_wq_comp_calls(struct idxd_wq * idxd_wq)46 static inline void	update_wq_comp_calls(struct idxd_wq *idxd_wq) {}
update_wq_comp_bytes(struct idxd_wq * idxd_wq,int n)47 static inline void	update_wq_comp_bytes(struct idxd_wq *idxd_wq, int n) {}
update_wq_decomp_calls(struct idxd_wq * idxd_wq)48 static inline void	update_wq_decomp_calls(struct idxd_wq *idxd_wq) {}
update_wq_decomp_bytes(struct idxd_wq * idxd_wq,int n)49 static inline void	update_wq_decomp_bytes(struct idxd_wq *idxd_wq, int n) {}
50 
51 #endif // CONFIG_CRYPTO_DEV_IAA_CRYPTO_STATS
52 
53 #endif
54