1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 /*****************************************************************************
5 * @file icp_adf_accel_mgr.h
6 *
7 * @description
8 * This file contains the function prototype for accel
9 * instances management
10 *
11 *****************************************************************************/
12 #ifndef ICP_ADF_ACCEL_MGR_H
13 #define ICP_ADF_ACCEL_MGR_H
14
15 /*
16 * Device reset mode type.
17 * If device reset is triggered from atomic context
18 * it needs to be in ICP_ADF_DEV_RESET_ASYNC mode.
19 * Otherwise can be either.
20 */
21 typedef enum icp_adf_dev_reset_mode_e {
22 ICP_ADF_DEV_RESET_ASYNC = 0,
23 ICP_ADF_DEV_RESET_SYNC
24 } icp_adf_dev_reset_mode_t;
25
26 /*
27 * icp_adf_reset_dev
28 *
29 * Description:
30 * Function resets the given device.
31 * If device reset is triggered from atomic context
32 * it needs to be in ICP_ADF_DEV_RESET_ASYNC mode.
33 *
34 * Returns:
35 * CPA_STATUS_SUCCESS on success
36 * CPA_STATUS_FAIL on failure
37 */
38 CpaStatus icp_adf_reset_dev(icp_accel_dev_t *accel_dev,
39 icp_adf_dev_reset_mode_t mode);
40
41 /*
42 * icp_adf_is_dev_in_reset
43 * Check if device is in reset state.
44 *
45 * Returns:
46 * CPA_TRUE device is in reset state
47 * CPA_FALSE device is not in reset state
48 */
49 CpaBoolean icp_adf_is_dev_in_reset(icp_accel_dev_t *accel_dev);
50
51 /*
52 * icp_adf_is_dev_in_error
53 * Check if device is in error state.
54 *
55 * Returns:
56 * CPA_TRUE device is in error state
57 * CPA_FALSE device is not in error state
58 */
59 CpaBoolean icp_adf_is_dev_in_error(icp_accel_dev_t *accel_dev);
60
61 /*
62 * icp_amgr_getNumInstances
63 *
64 * Description:
65 * Returns number of accel instances in the system.
66 *
67 * Returns:
68 * CPA_STATUS_SUCCESS on success
69 * CPA_STATUS_FAIL on failure
70 */
71 CpaStatus icp_amgr_getNumInstances(Cpa16U *pNumInstances);
72
73 /*
74 * icp_amgr_getInstances
75 *
76 * Description:
77 * Returns table of accel instances in the system.
78 *
79 * Returns:
80 * CPA_STATUS_SUCCESS on success
81 * CPA_STATUS_FAIL on failure
82 */
83 CpaStatus icp_amgr_getInstances(Cpa16U numInstances,
84 icp_accel_dev_t **pAccel_devs);
85 /*
86 * icp_amgr_getAccelDevByName
87 *
88 * Description:
89 * Returns the accel instance by name.
90 *
91 * Returns:
92 * CPA_STATUS_SUCCESS on success
93 * CPA_STATUS_FAIL on failure
94 */
95 CpaStatus icp_amgr_getAccelDevByName(unsigned char *instanceName,
96 icp_accel_dev_t **pAccel_dev);
97 /*
98 * icp_amgr_getAccelDevByCapabilities
99 *
100 * Description:
101 * Returns a started accel device that implements the capabilities
102 * specified in capabilitiesMask.
103 *
104 * Returns:
105 * CPA_STATUS_SUCCESS on success
106 * CPA_STATUS_FAIL on failure
107 */
108 CpaStatus icp_amgr_getAccelDevByCapabilities(Cpa32U capabilitiesMask,
109 icp_accel_dev_t **pAccel_devs,
110 Cpa16U *pNumInstances);
111 /*
112 * icp_amgr_getAllAccelDevByCapabilities
113 *
114 * Description:
115 * Returns table of accel devices that are started and implement
116 * the capabilities specified in capabilitiesMask.
117 *
118 * Returns:
119 * CPA_STATUS_SUCCESS on success
120 * CPA_STATUS_FAIL on failure
121 */
122 CpaStatus icp_amgr_getAllAccelDevByCapabilities(Cpa32U capabilitiesMask,
123 icp_accel_dev_t **pAccel_devs,
124 Cpa16U *pNumInstances);
125
126 /*
127 * icp_amgr_getAccelDevCapabilities
128 * Returns accel devices capabilities specified in capabilitiesMask.
129 *
130 * Returns:
131 * CPA_STATUS_SUCCESS on success
132 * CPA_STATUS_FAIL on failure
133 */
134 CpaStatus icp_amgr_getAccelDevCapabilities(icp_accel_dev_t *accel_dev,
135 Cpa32U *pCapabilitiesMask);
136
137 /*
138 * icp_amgr_getAllAccelDevByEachCapability
139 *
140 * Description:
141 * Returns table of accel devices that are started and implement
142 * each of the capability specified in capabilitiesMask.
143 *
144 * Returns:
145 * CPA_STATUS_SUCCESS on success
146 * CPA_STATUS_FAIL on failure
147 */
148 CpaStatus icp_amgr_getAllAccelDevByEachCapability(Cpa32U capabilitiesMask,
149 icp_accel_dev_t **pAccel_devs,
150 Cpa16U *pNumInstances);
151
152 /*
153 * icp_qa_dev_get
154 *
155 * Description:
156 * Function increments the device usage counter.
157 *
158 * Returns: void
159 */
160 void icp_qa_dev_get(icp_accel_dev_t *pDev);
161
162 /*
163 * icp_qa_dev_put
164 *
165 * Description:
166 * Function decrements the device usage counter.
167 *
168 * Returns: void
169 */
170 void icp_qa_dev_put(icp_accel_dev_t *pDev);
171
172 /*
173 * icp_adf_getAccelDevByAccelId
174 *
175 * Description:
176 * Gets the accel_dev structure based on accelId
177 *
178 * Returns: a pointer to the accelerator structure or NULL if not found.
179 */
180 icp_accel_dev_t *icp_adf_getAccelDevByAccelId(Cpa32U accelId);
181
182 #endif /* ICP_ADF_ACCEL_MGR_H */
Cache object: 5c27575b793b1c788c7fbcd49d69e9c8
|