xref: /linux/drivers/crypto/intel/qat/qat_common/adf_cfg_services.h (revision fdf31c75096051cee191ce1baf3f4c41b860e1c6)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* Copyright(c) 2023 Intel Corporation */
3 #ifndef _ADF_CFG_SERVICES_H_
4 #define _ADF_CFG_SERVICES_H_
5 
6 #include "adf_cfg_strings.h"
7 
8 struct adf_accel_dev;
9 
10 enum adf_base_services {
11 	SVC_ASYM = 0,
12 	SVC_SYM,
13 	SVC_DC,
14 	SVC_DECOMP,
15 	SVC_BASE_COUNT
16 };
17 
18 enum adf_extended_services {
19 	SVC_DCC = SVC_BASE_COUNT,
20 	SVC_COUNT
21 };
22 
23 enum adf_composed_services {
24 	SVC_SYM_ASYM = SVC_COUNT,
25 	SVC_SYM_DC,
26 	SVC_ASYM_DC,
27 };
28 
29 enum {
30 	ADF_ONE_SERVICE = 1,
31 	ADF_TWO_SERVICES,
32 	ADF_THREE_SERVICES,
33 };
34 
35 #define MAX_NUM_CONCURR_SVC	ADF_THREE_SERVICES
36 
37 int adf_parse_service_string(struct adf_accel_dev *accel_dev, const char *in,
38 			     size_t in_len, char *out, size_t out_len);
39 int adf_get_service_enabled(struct adf_accel_dev *accel_dev);
40 int adf_get_service_mask(struct adf_accel_dev *accel_dev, unsigned long *mask);
41 enum adf_cfg_service_type adf_srv_to_cfg_svc_type(enum adf_base_services svc);
42 bool adf_is_service_enabled(struct adf_accel_dev *accel_dev, enum adf_base_services svc);
43 
44 #endif
45