xref: /freebsd/sys/dev/qat/include/adf_fw_counters.h (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
1*78ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */
2*78ee8d1cSJulian Grajkowski /* Copyright(c) 2007-2022 Intel Corporation */
3*78ee8d1cSJulian Grajkowski #ifndef ADF_FW_COUNTERS_H_
4*78ee8d1cSJulian Grajkowski #define ADF_FW_COUNTERS_H_
5*78ee8d1cSJulian Grajkowski 
6*78ee8d1cSJulian Grajkowski #include <linux/rwsem.h>
7*78ee8d1cSJulian Grajkowski #include "adf_accel_devices.h"
8*78ee8d1cSJulian Grajkowski 
9*78ee8d1cSJulian Grajkowski #define FW_COUNTERS_MAX_STR_LEN 64
10*78ee8d1cSJulian Grajkowski #define FW_COUNTERS_MAX_KEY_LEN_IN_BYTES FW_COUNTERS_MAX_STR_LEN
11*78ee8d1cSJulian Grajkowski #define FW_COUNTERS_MAX_VAL_LEN_IN_BYTES FW_COUNTERS_MAX_STR_LEN
12*78ee8d1cSJulian Grajkowski #define FW_COUNTERS_MAX_SECTION_LEN_IN_BYTES FW_COUNTERS_MAX_STR_LEN
13*78ee8d1cSJulian Grajkowski #define ADF_FW_COUNTERS_NO_RESPONSE -1
14*78ee8d1cSJulian Grajkowski 
15*78ee8d1cSJulian Grajkowski struct adf_fw_counters_val {
16*78ee8d1cSJulian Grajkowski 	char key[FW_COUNTERS_MAX_KEY_LEN_IN_BYTES];
17*78ee8d1cSJulian Grajkowski 	char val[FW_COUNTERS_MAX_VAL_LEN_IN_BYTES];
18*78ee8d1cSJulian Grajkowski 	struct list_head list;
19*78ee8d1cSJulian Grajkowski };
20*78ee8d1cSJulian Grajkowski 
21*78ee8d1cSJulian Grajkowski struct adf_fw_counters_section {
22*78ee8d1cSJulian Grajkowski 	char name[FW_COUNTERS_MAX_SECTION_LEN_IN_BYTES];
23*78ee8d1cSJulian Grajkowski 	struct list_head list;
24*78ee8d1cSJulian Grajkowski 	struct list_head param_head;
25*78ee8d1cSJulian Grajkowski };
26*78ee8d1cSJulian Grajkowski 
27*78ee8d1cSJulian Grajkowski struct adf_fw_counters_data {
28*78ee8d1cSJulian Grajkowski 	struct list_head ae_sec_list;
29*78ee8d1cSJulian Grajkowski 	struct sysctl_oid *debug;
30*78ee8d1cSJulian Grajkowski 	struct rw_semaphore lock;
31*78ee8d1cSJulian Grajkowski };
32*78ee8d1cSJulian Grajkowski 
33*78ee8d1cSJulian Grajkowski int adf_fw_counters_add(struct adf_accel_dev *accel_dev);
34*78ee8d1cSJulian Grajkowski void adf_fw_counters_remove(struct adf_accel_dev *accel_dev);
35*78ee8d1cSJulian Grajkowski int adf_fw_count_ras_event(struct adf_accel_dev *accel_dev,
36*78ee8d1cSJulian Grajkowski 			   u32 *ras_event,
37*78ee8d1cSJulian Grajkowski 			   char *aeidstr);
38*78ee8d1cSJulian Grajkowski 
39*78ee8d1cSJulian Grajkowski #endif /* ADF_FW_COUNTERS_H_ */
40