xref: /openbmc/linux/drivers/crypto/intel/qat/qat_common/adf_cfg.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1*a4b16dadSTom Zanussi /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only) */
2*a4b16dadSTom Zanussi /* Copyright(c) 2014 - 2020 Intel Corporation */
3*a4b16dadSTom Zanussi #ifndef ADF_CFG_H_
4*a4b16dadSTom Zanussi #define ADF_CFG_H_
5*a4b16dadSTom Zanussi 
6*a4b16dadSTom Zanussi #include <linux/list.h>
7*a4b16dadSTom Zanussi #include <linux/rwsem.h>
8*a4b16dadSTom Zanussi #include <linux/debugfs.h>
9*a4b16dadSTom Zanussi #include "adf_accel_devices.h"
10*a4b16dadSTom Zanussi #include "adf_cfg_common.h"
11*a4b16dadSTom Zanussi #include "adf_cfg_strings.h"
12*a4b16dadSTom Zanussi 
13*a4b16dadSTom Zanussi struct adf_cfg_key_val {
14*a4b16dadSTom Zanussi 	char key[ADF_CFG_MAX_KEY_LEN_IN_BYTES];
15*a4b16dadSTom Zanussi 	char val[ADF_CFG_MAX_VAL_LEN_IN_BYTES];
16*a4b16dadSTom Zanussi 	enum adf_cfg_val_type type;
17*a4b16dadSTom Zanussi 	struct list_head list;
18*a4b16dadSTom Zanussi };
19*a4b16dadSTom Zanussi 
20*a4b16dadSTom Zanussi struct adf_cfg_section {
21*a4b16dadSTom Zanussi 	char name[ADF_CFG_MAX_SECTION_LEN_IN_BYTES];
22*a4b16dadSTom Zanussi 	struct list_head list;
23*a4b16dadSTom Zanussi 	struct list_head param_head;
24*a4b16dadSTom Zanussi };
25*a4b16dadSTom Zanussi 
26*a4b16dadSTom Zanussi struct adf_cfg_device_data {
27*a4b16dadSTom Zanussi 	struct list_head sec_list;
28*a4b16dadSTom Zanussi 	struct dentry *debug;
29*a4b16dadSTom Zanussi 	struct rw_semaphore lock;
30*a4b16dadSTom Zanussi };
31*a4b16dadSTom Zanussi 
32*a4b16dadSTom Zanussi int adf_cfg_dev_add(struct adf_accel_dev *accel_dev);
33*a4b16dadSTom Zanussi void adf_cfg_dev_remove(struct adf_accel_dev *accel_dev);
34*a4b16dadSTom Zanussi void adf_cfg_dev_dbgfs_add(struct adf_accel_dev *accel_dev);
35*a4b16dadSTom Zanussi void adf_cfg_dev_dbgfs_rm(struct adf_accel_dev *accel_dev);
36*a4b16dadSTom Zanussi int adf_cfg_section_add(struct adf_accel_dev *accel_dev, const char *name);
37*a4b16dadSTom Zanussi void adf_cfg_del_all(struct adf_accel_dev *accel_dev);
38*a4b16dadSTom Zanussi int adf_cfg_add_key_value_param(struct adf_accel_dev *accel_dev,
39*a4b16dadSTom Zanussi 				const char *section_name,
40*a4b16dadSTom Zanussi 				const char *key, const void *val,
41*a4b16dadSTom Zanussi 				enum adf_cfg_val_type type);
42*a4b16dadSTom Zanussi int adf_cfg_get_param_value(struct adf_accel_dev *accel_dev,
43*a4b16dadSTom Zanussi 			    const char *section, const char *name, char *value);
44 
45 #endif
46