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