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
8struct adf_accel_dev;
9
10enum adf_base_services {
11 SVC_ASYM = 0,
12 SVC_SYM,
13 SVC_DC,
14 SVC_DECOMP,
15 SVC_BASE_COUNT
16};
17
18enum adf_extended_services {
19 SVC_DCC = SVC_BASE_COUNT,
20 SVC_COUNT
21};
22
23enum adf_composed_services {
24 SVC_SYM_ASYM = SVC_COUNT,
25 SVC_SYM_DC,
26 SVC_ASYM_DC,
27};
28
29enum {
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
37int adf_parse_service_string(struct adf_accel_dev *accel_dev, const char *in,
38 size_t in_len, char *out, size_t out_len);
39int adf_get_service_enabled(struct adf_accel_dev *accel_dev);
40int adf_get_service_mask(struct adf_accel_dev *accel_dev, unsigned long *mask);
41enum adf_cfg_service_type adf_srv_to_cfg_svc_type(enum adf_base_services svc);
42bool adf_is_service_enabled(struct adf_accel_dev *accel_dev, enum adf_base_services svc);
43
44#endif
45

source code of linux/drivers/crypto/intel/qat/qat_common/adf_cfg_services.h