xref: /freebsd/sys/dev/qat/qat_api/include/icp_sal_poll.h (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
1*78ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */
2*78ee8d1cSJulian Grajkowski /* Copyright(c) 2007-2022 Intel Corporation */
3*78ee8d1cSJulian Grajkowski /**
4*78ee8d1cSJulian Grajkowski  ***************************************************************************
5*78ee8d1cSJulian Grajkowski  * @file icp_sal_poll.h
6*78ee8d1cSJulian Grajkowski  *
7*78ee8d1cSJulian Grajkowski  * @defgroup SalPoll
8*78ee8d1cSJulian Grajkowski  *
9*78ee8d1cSJulian Grajkowski  * @ingroup SalPoll
10*78ee8d1cSJulian Grajkowski  *
11*78ee8d1cSJulian Grajkowski  * @description
12*78ee8d1cSJulian Grajkowski  *    Polling APIs for instance polling.
13*78ee8d1cSJulian Grajkowski  *    These functions retrieve requests on appropriate response rings and
14*78ee8d1cSJulian Grajkowski  *    dispatch the associated callbacks. Callbacks are called in the
15*78ee8d1cSJulian Grajkowski  *    context of the polling function itself.
16*78ee8d1cSJulian Grajkowski  *
17*78ee8d1cSJulian Grajkowski  *
18*78ee8d1cSJulian Grajkowski  ***************************************************************************/
19*78ee8d1cSJulian Grajkowski 
20*78ee8d1cSJulian Grajkowski #ifndef ICP_SAL_POLL_H
21*78ee8d1cSJulian Grajkowski #define ICP_SAL_POLL_H
22*78ee8d1cSJulian Grajkowski 
23*78ee8d1cSJulian Grajkowski /*************************************************************************
24*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
25*78ee8d1cSJulian Grajkowski   * @description
26*78ee8d1cSJulian Grajkowski   *    Poll a Cy logical instance to retrieve requests that are on the
27*78ee8d1cSJulian Grajkowski   *    response rings associated with that instance and dispatch the
28*78ee8d1cSJulian Grajkowski   *    associated callbacks.
29*78ee8d1cSJulian Grajkowski   *
30*78ee8d1cSJulian Grajkowski   * @context
31*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
32*78ee8d1cSJulian Grajkowski   *
33*78ee8d1cSJulian Grajkowski   * @assumptions
34*78ee8d1cSJulian Grajkowski   *      None
35*78ee8d1cSJulian Grajkowski   * @sideEffects
36*78ee8d1cSJulian Grajkowski   *      None
37*78ee8d1cSJulian Grajkowski   * @reentrant
38*78ee8d1cSJulian Grajkowski   *      No
39*78ee8d1cSJulian Grajkowski   * @threadSafe
40*78ee8d1cSJulian Grajkowski   *      Yes
41*78ee8d1cSJulian Grajkowski   *
42*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
43*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
44*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
45*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
46*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
47*78ee8d1cSJulian Grajkowski   *
48*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
49*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the rings
50*78ee8d1cSJulian Grajkowski   *                               associated with this instance
51*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
52*78ee8d1cSJulian Grajkowski   *************************************************************************/
53*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_CyPollInstance(CpaInstanceHandle instanceHandle,
54*78ee8d1cSJulian Grajkowski 				 Cpa32U response_quota);
55*78ee8d1cSJulian Grajkowski 
56*78ee8d1cSJulian Grajkowski /*************************************************************************
57*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
58*78ee8d1cSJulian Grajkowski   * @description
59*78ee8d1cSJulian Grajkowski   *    Poll a Sym Cy ring to retrieve requests that are on the
60*78ee8d1cSJulian Grajkowski   *    response rings associated with that instance and dispatch the
61*78ee8d1cSJulian Grajkowski   *    associated callbacks.
62*78ee8d1cSJulian Grajkowski   *
63*78ee8d1cSJulian Grajkowski   * @context
64*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
65*78ee8d1cSJulian Grajkowski   *
66*78ee8d1cSJulian Grajkowski   * @assumptions
67*78ee8d1cSJulian Grajkowski   *      None
68*78ee8d1cSJulian Grajkowski   * @sideEffects
69*78ee8d1cSJulian Grajkowski   *      None
70*78ee8d1cSJulian Grajkowski   * @reentrant
71*78ee8d1cSJulian Grajkowski   *      No
72*78ee8d1cSJulian Grajkowski   * @threadSafe
73*78ee8d1cSJulian Grajkowski   *      Yes
74*78ee8d1cSJulian Grajkowski   *
75*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
76*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
77*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
78*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
79*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
80*78ee8d1cSJulian Grajkowski   *
81*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
82*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the rings
83*78ee8d1cSJulian Grajkowski   *                               associated with this instance
84*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
85*78ee8d1cSJulian Grajkowski   *************************************************************************/
86*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_CyPollSymRing(CpaInstanceHandle instanceHandle,
87*78ee8d1cSJulian Grajkowski 				Cpa32U response_quota);
88*78ee8d1cSJulian Grajkowski 
89*78ee8d1cSJulian Grajkowski /*************************************************************************
90*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
91*78ee8d1cSJulian Grajkowski   * @description
92*78ee8d1cSJulian Grajkowski   *    Poll an Asym Cy ring to retrieve requests that are on the
93*78ee8d1cSJulian Grajkowski   *    response rings associated with that instance and dispatch the
94*78ee8d1cSJulian Grajkowski   *    associated callbacks.
95*78ee8d1cSJulian Grajkowski   *
96*78ee8d1cSJulian Grajkowski   * @context
97*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
98*78ee8d1cSJulian Grajkowski   *
99*78ee8d1cSJulian Grajkowski   * @assumptions
100*78ee8d1cSJulian Grajkowski   *      None
101*78ee8d1cSJulian Grajkowski   * @sideEffects
102*78ee8d1cSJulian Grajkowski   *      None
103*78ee8d1cSJulian Grajkowski   * @reentrant
104*78ee8d1cSJulian Grajkowski   *      No
105*78ee8d1cSJulian Grajkowski   * @threadSafe
106*78ee8d1cSJulian Grajkowski   *      Yes
107*78ee8d1cSJulian Grajkowski   *
108*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
109*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
110*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
111*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
112*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
113*78ee8d1cSJulian Grajkowski   *
114*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
115*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the rings
116*78ee8d1cSJulian Grajkowski   *                               associated with this instance
117*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
118*78ee8d1cSJulian Grajkowski   *************************************************************************/
119*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_CyPollAsymRing(CpaInstanceHandle instanceHandle,
120*78ee8d1cSJulian Grajkowski 				 Cpa32U response_quota);
121*78ee8d1cSJulian Grajkowski 
122*78ee8d1cSJulian Grajkowski /*************************************************************************
123*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
124*78ee8d1cSJulian Grajkowski   * @description
125*78ee8d1cSJulian Grajkowski   *    Poll a Cy NRBG ring to retrieve requests that are on the
126*78ee8d1cSJulian Grajkowski   *    response rings associated with that instance and dispatch the
127*78ee8d1cSJulian Grajkowski   *    associated callbacks.
128*78ee8d1cSJulian Grajkowski   *
129*78ee8d1cSJulian Grajkowski   * @context
130*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
131*78ee8d1cSJulian Grajkowski   *
132*78ee8d1cSJulian Grajkowski   * @assumptions
133*78ee8d1cSJulian Grajkowski   *      None
134*78ee8d1cSJulian Grajkowski   * @sideEffects
135*78ee8d1cSJulian Grajkowski   *      None
136*78ee8d1cSJulian Grajkowski   * @reentrant
137*78ee8d1cSJulian Grajkowski   *      No
138*78ee8d1cSJulian Grajkowski   * @threadSafe
139*78ee8d1cSJulian Grajkowski   *      Yes
140*78ee8d1cSJulian Grajkowski   *
141*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
142*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
143*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
144*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
145*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
146*78ee8d1cSJulian Grajkowski   *
147*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
148*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the rings
149*78ee8d1cSJulian Grajkowski   *                               associated with this instance
150*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
151*78ee8d1cSJulian Grajkowski   *************************************************************************/
152*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_CyPollNRBGRing(CpaInstanceHandle instanceHandle,
153*78ee8d1cSJulian Grajkowski 				 Cpa32U response_quota);
154*78ee8d1cSJulian Grajkowski 
155*78ee8d1cSJulian Grajkowski /*************************************************************************
156*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
157*78ee8d1cSJulian Grajkowski   * @description
158*78ee8d1cSJulian Grajkowski   *    Poll the high priority symmetric response ring associated with a Cy
159*78ee8d1cSJulian Grajkowski   *    logical instance to retrieve requests and dispatch the
160*78ee8d1cSJulian Grajkowski   *    associated callbacks.
161*78ee8d1cSJulian Grajkowski   *
162*78ee8d1cSJulian Grajkowski   *    This API is recommended for data plane applications, in which the
163*78ee8d1cSJulian Grajkowski   *    cost of offload - that is, the cycles consumed by the driver in
164*78ee8d1cSJulian Grajkowski   *    sending requests to the hardware, and processing responses - needs
165*78ee8d1cSJulian Grajkowski   *    to be minimized.  In particular, use of this API is recommended
166*78ee8d1cSJulian Grajkowski   *    if the following constraints are acceptable to your application:
167*78ee8d1cSJulian Grajkowski   *
168*78ee8d1cSJulian Grajkowski   *    - Thread safety is not guaranteed.  Each software thread should
169*78ee8d1cSJulian Grajkowski   *      have access to its own unique instance (CpaInstanceHandle) to
170*78ee8d1cSJulian Grajkowski   *      avoid contention.
171*78ee8d1cSJulian Grajkowski   *    - The "default" instance (@ref CPA_INSTANCE_HANDLE_SINGLE) is not
172*78ee8d1cSJulian Grajkowski   *      supported on this API.  The specific handle should be obtained
173*78ee8d1cSJulian Grajkowski   *      using the instance discovery functions (@ref cpaCyGetNumInstances,
174*78ee8d1cSJulian Grajkowski   *      @ref cpaCyGetInstances).
175*78ee8d1cSJulian Grajkowski   *
176*78ee8d1cSJulian Grajkowski   *    This polling function should be used with the functions described
177*78ee8d1cSJulian Grajkowski   *    in cpa_cy_sym_dp.h
178*78ee8d1cSJulian Grajkowski   *
179*78ee8d1cSJulian Grajkowski   * @context
180*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
181*78ee8d1cSJulian Grajkowski   *
182*78ee8d1cSJulian Grajkowski   * @assumptions
183*78ee8d1cSJulian Grajkowski   *      None
184*78ee8d1cSJulian Grajkowski   * @sideEffects
185*78ee8d1cSJulian Grajkowski   *      None
186*78ee8d1cSJulian Grajkowski   * @reentrant
187*78ee8d1cSJulian Grajkowski   *      No
188*78ee8d1cSJulian Grajkowski   * @threadSafe
189*78ee8d1cSJulian Grajkowski   *      No
190*78ee8d1cSJulian Grajkowski   *
191*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
192*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
193*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
194*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
195*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
196*78ee8d1cSJulian Grajkowski   *
197*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
198*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the ring
199*78ee8d1cSJulian Grajkowski   *                               associated with this instance
200*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
201*78ee8d1cSJulian Grajkowski   *************************************************************************/
202*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_CyPollDpInstance(const CpaInstanceHandle instanceHandle,
203*78ee8d1cSJulian Grajkowski 				   const Cpa32U response_quota);
204*78ee8d1cSJulian Grajkowski 
205*78ee8d1cSJulian Grajkowski /*************************************************************************
206*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
207*78ee8d1cSJulian Grajkowski   * @description
208*78ee8d1cSJulian Grajkowski   *    Poll a Dc logical instance to retrieve requests that are on the
209*78ee8d1cSJulian Grajkowski   *    response ring associated with that instance and dispatch the
210*78ee8d1cSJulian Grajkowski   *    associated callbacks.
211*78ee8d1cSJulian Grajkowski   *
212*78ee8d1cSJulian Grajkowski   * @context
213*78ee8d1cSJulian Grajkowski   *      This function is called from both the user and kernel context
214*78ee8d1cSJulian Grajkowski   *
215*78ee8d1cSJulian Grajkowski   * @assumptions
216*78ee8d1cSJulian Grajkowski   *      None
217*78ee8d1cSJulian Grajkowski   * @sideEffects
218*78ee8d1cSJulian Grajkowski   *      None
219*78ee8d1cSJulian Grajkowski   * @reentrant
220*78ee8d1cSJulian Grajkowski   *      No
221*78ee8d1cSJulian Grajkowski   * @threadSafe
222*78ee8d1cSJulian Grajkowski   *      Yes
223*78ee8d1cSJulian Grajkowski   *
224*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
225*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
226*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
227*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
228*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
229*78ee8d1cSJulian Grajkowski   *
230*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
231*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the ring
232*78ee8d1cSJulian Grajkowski   *                               associated with this instance
233*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
234*78ee8d1cSJulian Grajkowski   *************************************************************************/
235*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_DcPollInstance(CpaInstanceHandle instanceHandle,
236*78ee8d1cSJulian Grajkowski 				 Cpa32U response_quota);
237*78ee8d1cSJulian Grajkowski 
238*78ee8d1cSJulian Grajkowski /*************************************************************************
239*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
240*78ee8d1cSJulian Grajkowski   * @description
241*78ee8d1cSJulian Grajkowski   *    Poll the response ring associated with a Dc logical instance to
242*78ee8d1cSJulian Grajkowski   *    retrieve requests and dispatch the associated callbacks.
243*78ee8d1cSJulian Grajkowski   *
244*78ee8d1cSJulian Grajkowski   *    This API is recommended for data plane applications, in which the
245*78ee8d1cSJulian Grajkowski   *    cost of offload - that is, the cycles consumed by the driver in
246*78ee8d1cSJulian Grajkowski   *    sending requests to the hardware, and processing responses - needs
247*78ee8d1cSJulian Grajkowski   *    to be minimized.  In particular, use of this API is recommended
248*78ee8d1cSJulian Grajkowski   *    if the following constraints are acceptable to your application:
249*78ee8d1cSJulian Grajkowski   *
250*78ee8d1cSJulian Grajkowski   *    - Thread safety is not guaranteed.  Each software thread should
251*78ee8d1cSJulian Grajkowski   *      have access to its own unique instance (CpaInstanceHandle) to
252*78ee8d1cSJulian Grajkowski   *      avoid contention.
253*78ee8d1cSJulian Grajkowski   *    - The "default" instance (@ref CPA_INSTANCE_HANDLE_SINGLE) is not
254*78ee8d1cSJulian Grajkowski   *      supported on this API.  The specific handle should be obtained
255*78ee8d1cSJulian Grajkowski   *      using the instance discovery functions (@ref cpaDcGetNumInstances,
256*78ee8d1cSJulian Grajkowski   *      @ref cpaDcGetInstances).
257*78ee8d1cSJulian Grajkowski   *
258*78ee8d1cSJulian Grajkowski   *    This polling function should be used with the functions described
259*78ee8d1cSJulian Grajkowski   *    in cpa_dc_dp.h
260*78ee8d1cSJulian Grajkowski 
261*78ee8d1cSJulian Grajkowski   *
262*78ee8d1cSJulian Grajkowski   * @context
263*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
264*78ee8d1cSJulian Grajkowski   *
265*78ee8d1cSJulian Grajkowski   * @assumptions
266*78ee8d1cSJulian Grajkowski   *      None
267*78ee8d1cSJulian Grajkowski   * @sideEffects
268*78ee8d1cSJulian Grajkowski   *      None
269*78ee8d1cSJulian Grajkowski   * @reentrant
270*78ee8d1cSJulian Grajkowski   *      No
271*78ee8d1cSJulian Grajkowski   * @threadSafe
272*78ee8d1cSJulian Grajkowski   *      No
273*78ee8d1cSJulian Grajkowski   *
274*78ee8d1cSJulian Grajkowski   * @param[in] instanceHandle     Instance handle.
275*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
276*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
277*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
278*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
279*78ee8d1cSJulian Grajkowski   *
280*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
281*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There are no responses on the ring
282*78ee8d1cSJulian Grajkowski   *                               associated with this instance
283*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
284*78ee8d1cSJulian Grajkowski   *************************************************************************/
285*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_DcPollDpInstance(CpaInstanceHandle dcInstance,
286*78ee8d1cSJulian Grajkowski 				   Cpa32U responseQuota);
287*78ee8d1cSJulian Grajkowski 
288*78ee8d1cSJulian Grajkowski /*************************************************************************
289*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
290*78ee8d1cSJulian Grajkowski   * @description
291*78ee8d1cSJulian Grajkowski   *    This function polls the rings on the given bank to determine
292*78ee8d1cSJulian Grajkowski   *    if any of the rings contain messages to be read. The
293*78ee8d1cSJulian Grajkowski   *    response quota is per ring.
294*78ee8d1cSJulian Grajkowski   *
295*78ee8d1cSJulian Grajkowski   * @context
296*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
297*78ee8d1cSJulian Grajkowski   *
298*78ee8d1cSJulian Grajkowski   * @assumptions
299*78ee8d1cSJulian Grajkowski   *      None
300*78ee8d1cSJulian Grajkowski   * @sideEffects
301*78ee8d1cSJulian Grajkowski   *      None
302*78ee8d1cSJulian Grajkowski   * @reentrant
303*78ee8d1cSJulian Grajkowski   *      No
304*78ee8d1cSJulian Grajkowski   * @threadSafe
305*78ee8d1cSJulian Grajkowski   *      Yes
306*78ee8d1cSJulian Grajkowski   *
307*78ee8d1cSJulian Grajkowski   * @param[in] accelId            Acceleration device Id, also known as
308*78ee8d1cSJulian Grajkowski   *                               packageId. This can be obtained using
309*78ee8d1cSJulian Grajkowski   *                               instance info functions (
310*78ee8d1cSJulian Grajkowski   *                               @ref cpaCyInstanceGetInfo2
311*78ee8d1cSJulian Grajkowski   *                               and @ref cpaDcInstanceGetInfo2)
312*78ee8d1cSJulian Grajkowski   *
313*78ee8d1cSJulian Grajkowski   * @param[in] bank_number        Bank number
314*78ee8d1cSJulian Grajkowski   *
315*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
316*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
317*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
318*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
319*78ee8d1cSJulian Grajkowski   *
320*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
321*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There is no data on any ring on the bank
322*78ee8d1cSJulian Grajkowski   *                               or the bank is already being polled
323*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
324*78ee8d1cSJulian Grajkowski   *************************************************************************/
325*78ee8d1cSJulian Grajkowski CpaStatus
326*78ee8d1cSJulian Grajkowski icp_sal_pollBank(Cpa32U accelId, Cpa32U bank_number, Cpa32U response_quota);
327*78ee8d1cSJulian Grajkowski 
328*78ee8d1cSJulian Grajkowski /*************************************************************************
329*78ee8d1cSJulian Grajkowski   * @ingroup SalPoll
330*78ee8d1cSJulian Grajkowski   * @description
331*78ee8d1cSJulian Grajkowski   *    This function polls the rings on all banks to determine
332*78ee8d1cSJulian Grajkowski   *    if any of the rings contain messages to be read. The
333*78ee8d1cSJulian Grajkowski   *    response quota is per ring.
334*78ee8d1cSJulian Grajkowski   *
335*78ee8d1cSJulian Grajkowski   * @context
336*78ee8d1cSJulian Grajkowski   *      This functions is called from both the user and kernel context
337*78ee8d1cSJulian Grajkowski   *
338*78ee8d1cSJulian Grajkowski   * @assumptions
339*78ee8d1cSJulian Grajkowski   *      None
340*78ee8d1cSJulian Grajkowski   * @sideEffects
341*78ee8d1cSJulian Grajkowski   *      None
342*78ee8d1cSJulian Grajkowski   * @reentrant
343*78ee8d1cSJulian Grajkowski   *      No
344*78ee8d1cSJulian Grajkowski   * @threadSafe
345*78ee8d1cSJulian Grajkowski   *      Yes
346*78ee8d1cSJulian Grajkowski   *
347*78ee8d1cSJulian Grajkowski   * @param[in] accelId            Acceleration device Id, also known as
348*78ee8d1cSJulian Grajkowski   *                               packageId. This can be obtained using
349*78ee8d1cSJulian Grajkowski   *                               instance info functions (
350*78ee8d1cSJulian Grajkowski   *                               @ref cpaCyInstanceGetInfo2
351*78ee8d1cSJulian Grajkowski   *                               and @ref cpaDcInstanceGetInfo2)
352*78ee8d1cSJulian Grajkowski   *
353*78ee8d1cSJulian Grajkowski   * @param[in] response_quota     The maximum number of messages that
354*78ee8d1cSJulian Grajkowski   *                               will be read in one polling. Setting
355*78ee8d1cSJulian Grajkowski   *                               the response quota to zero means that
356*78ee8d1cSJulian Grajkowski   *                               all messages on the ring will be read.
357*78ee8d1cSJulian Grajkowski   *
358*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS    Successfully polled a ring with data
359*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_RETRY      There is no data on any ring on any bank
360*78ee8d1cSJulian Grajkowski   *                               or the banks are already being polled
361*78ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL       Indicates a failure
362*78ee8d1cSJulian Grajkowski   *************************************************************************/
363*78ee8d1cSJulian Grajkowski CpaStatus icp_sal_pollAllBanks(Cpa32U accelId, Cpa32U response_quota);
364*78ee8d1cSJulian Grajkowski 
365*78ee8d1cSJulian Grajkowski #endif
366