xref: /freebsd/sys/dev/qat/qat_api/include/icp_sal_user.h (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */
278ee8d1cSJulian Grajkowski /* Copyright(c) 2007-2022 Intel Corporation */
378ee8d1cSJulian Grajkowski /**
478ee8d1cSJulian Grajkowski  ***************************************************************************
578ee8d1cSJulian Grajkowski  * @file icp_sal_user.h
678ee8d1cSJulian Grajkowski  *
778ee8d1cSJulian Grajkowski  * @ingroup SalUser
878ee8d1cSJulian Grajkowski  *
978ee8d1cSJulian Grajkowski  * User space process init and shutdown functions.
1078ee8d1cSJulian Grajkowski  *
1178ee8d1cSJulian Grajkowski  ***************************************************************************/
1278ee8d1cSJulian Grajkowski 
1378ee8d1cSJulian Grajkowski #ifndef ICP_SAL_USER_H
1478ee8d1cSJulian Grajkowski #define ICP_SAL_USER_H
1578ee8d1cSJulian Grajkowski 
1678ee8d1cSJulian Grajkowski /*************************************************************************
1778ee8d1cSJulian Grajkowski   * @ingroup SalUser
1878ee8d1cSJulian Grajkowski   * @description
1978ee8d1cSJulian Grajkowski   *    This function initialises and starts user space service access layer
2078ee8d1cSJulian Grajkowski   *    (SAL) - it registers SAL with ADF and initialises the ADF proxy.
2178ee8d1cSJulian Grajkowski   *    This function must only be called once per user space process.
2278ee8d1cSJulian Grajkowski   *
2378ee8d1cSJulian Grajkowski   * @context
2478ee8d1cSJulian Grajkowski   *      This function is called from the user process context
2578ee8d1cSJulian Grajkowski   *
2678ee8d1cSJulian Grajkowski   * @assumptions
2778ee8d1cSJulian Grajkowski   *      None
2878ee8d1cSJulian Grajkowski   * @sideEffects
2978ee8d1cSJulian Grajkowski   *      None
3078ee8d1cSJulian Grajkowski   * @reentrant
3178ee8d1cSJulian Grajkowski   *      No
3278ee8d1cSJulian Grajkowski   * @threadSafe
3378ee8d1cSJulian Grajkowski   *      Yes
3478ee8d1cSJulian Grajkowski   *
3578ee8d1cSJulian Grajkowski   * @param[in] pProcessName           Process address space name described in
3678ee8d1cSJulian Grajkowski   *                                   the config file for this device
3778ee8d1cSJulian Grajkowski   *
3878ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
3978ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
4078ee8d1cSJulian Grajkowski   *
4178ee8d1cSJulian Grajkowski   *************************************************************************/
4278ee8d1cSJulian Grajkowski CpaStatus icp_sal_userStart(const char *pProcessName);
4378ee8d1cSJulian Grajkowski 
4478ee8d1cSJulian Grajkowski /*************************************************************************
4578ee8d1cSJulian Grajkowski   * @ingroup SalUser
4678ee8d1cSJulian Grajkowski   * @description
4778ee8d1cSJulian Grajkowski   *    This function is to be used with simplified config file, where user
4878ee8d1cSJulian Grajkowski   *    defines many user space processes. The driver generates unique
4978ee8d1cSJulian Grajkowski   *    process names based on the pProcessName provided.
5078ee8d1cSJulian Grajkowski   *    For example:
5178ee8d1cSJulian Grajkowski   *    If a config file in simplified format contains:
5278ee8d1cSJulian Grajkowski   *    [SSL]
5378ee8d1cSJulian Grajkowski   *    NumProcesses = 3
5478ee8d1cSJulian Grajkowski   *
5578ee8d1cSJulian Grajkowski   *    Then three internal sections will be generated and the three
5678ee8d1cSJulian Grajkowski   *    applications can be started at a given time. Each application can call
5778ee8d1cSJulian Grajkowski   *    icp_sal_userStartMultiProcess("SSL"). In this case the driver will
5878ee8d1cSJulian Grajkowski   *    figure out the unique name to use for each process.
5978ee8d1cSJulian Grajkowski   *
6078ee8d1cSJulian Grajkowski   * @context
6178ee8d1cSJulian Grajkowski   *      This function is called from the user process context
6278ee8d1cSJulian Grajkowski   *
6378ee8d1cSJulian Grajkowski   * @assumptions
6478ee8d1cSJulian Grajkowski   *      None
6578ee8d1cSJulian Grajkowski   * @sideEffects
6678ee8d1cSJulian Grajkowski   *      None
6778ee8d1cSJulian Grajkowski   * @reentrant
6878ee8d1cSJulian Grajkowski   *      No
6978ee8d1cSJulian Grajkowski   * @threadSafe
7078ee8d1cSJulian Grajkowski   *      Yes
7178ee8d1cSJulian Grajkowski   *
7278ee8d1cSJulian Grajkowski   * @param[in] pProcessName           Process address space name described in
7378ee8d1cSJulian Grajkowski   *                                   the new format of the config file
7478ee8d1cSJulian Grajkowski   *                                   for this device.
7578ee8d1cSJulian Grajkowski   *
7678ee8d1cSJulian Grajkowski   * @param[in] limitDevAccess         Specifies if the address space is limited
7778ee8d1cSJulian Grajkowski   *                                   to one device (true) or if it spans
7878ee8d1cSJulian Grajkowski   *                                   accross multiple devices.
7978ee8d1cSJulian Grajkowski   *
8078ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
8178ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed. In this case user
8278ee8d1cSJulian Grajkowski   *                                   can wait and retry.
8378ee8d1cSJulian Grajkowski   *
8478ee8d1cSJulian Grajkowski   *************************************************************************/
8578ee8d1cSJulian Grajkowski CpaStatus icp_sal_userStartMultiProcess(const char *pProcessName,
8678ee8d1cSJulian Grajkowski 					CpaBoolean limitDevAccess);
8778ee8d1cSJulian Grajkowski 
8878ee8d1cSJulian Grajkowski /*************************************************************************
8978ee8d1cSJulian Grajkowski  * @ingroup SalUser
9078ee8d1cSJulian Grajkowski  * @description
9178ee8d1cSJulian Grajkowski  *    This function stops and shuts down user space SAL
9278ee8d1cSJulian Grajkowski  *     - it deregisters SAL with ADF and shuts down ADF proxy
9378ee8d1cSJulian Grajkowski  *
9478ee8d1cSJulian Grajkowski  * @context
9578ee8d1cSJulian Grajkowski  *      This function is called from the user process context
9678ee8d1cSJulian Grajkowski  *
9778ee8d1cSJulian Grajkowski  * @assumptions
9878ee8d1cSJulian Grajkowski  *      None
9978ee8d1cSJulian Grajkowski  * @sideEffects
10078ee8d1cSJulian Grajkowski  *      None
10178ee8d1cSJulian Grajkowski  * @reentrant
10278ee8d1cSJulian Grajkowski  *      No
10378ee8d1cSJulian Grajkowski  * @threadSafe
10478ee8d1cSJulian Grajkowski  *      Yes
10578ee8d1cSJulian Grajkowski  *
10678ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        No error
10778ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Operation failed
10878ee8d1cSJulian Grajkowski  *
10978ee8d1cSJulian Grajkowski  ************************************************************************/
11078ee8d1cSJulian Grajkowski CpaStatus icp_sal_userStop(void);
11178ee8d1cSJulian Grajkowski 
11278ee8d1cSJulian Grajkowski /*************************************************************************
11378ee8d1cSJulian Grajkowski   * @ingroup SalUser
11478ee8d1cSJulian Grajkowski   * @description
11578ee8d1cSJulian Grajkowski   *    This function gets the number of the available dynamic allocated
11678ee8d1cSJulian Grajkowski   *    crypto instances
11778ee8d1cSJulian Grajkowski   *
11878ee8d1cSJulian Grajkowski   * @context
11978ee8d1cSJulian Grajkowski   *      This function is called from the user process context
12078ee8d1cSJulian Grajkowski   *
12178ee8d1cSJulian Grajkowski   * @assumptions
12278ee8d1cSJulian Grajkowski   *      None
12378ee8d1cSJulian Grajkowski   * @sideEffects
12478ee8d1cSJulian Grajkowski   *      None
12578ee8d1cSJulian Grajkowski   * @reentrant
12678ee8d1cSJulian Grajkowski   *      No
12778ee8d1cSJulian Grajkowski   * @threadSafe
12878ee8d1cSJulian Grajkowski   *      Yes
12978ee8d1cSJulian Grajkowski   *
13078ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
13178ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
13278ee8d1cSJulian Grajkowski   *
13378ee8d1cSJulian Grajkowski   ************************************************************************/
13478ee8d1cSJulian Grajkowski CpaStatus icp_sal_userCyGetAvailableNumDynInstances(Cpa32U *pNumCyInstances);
13578ee8d1cSJulian Grajkowski 
13678ee8d1cSJulian Grajkowski /*************************************************************************
13778ee8d1cSJulian Grajkowski   * @ingroup SalUser
13878ee8d1cSJulian Grajkowski   * @description
13978ee8d1cSJulian Grajkowski   *    This function gets the number of the available dynamic allocated
14078ee8d1cSJulian Grajkowski   *    compression instances
14178ee8d1cSJulian Grajkowski   *
14278ee8d1cSJulian Grajkowski   * @context
14378ee8d1cSJulian Grajkowski   *      This function is called from the user process context
14478ee8d1cSJulian Grajkowski   *
14578ee8d1cSJulian Grajkowski   * @assumptions
14678ee8d1cSJulian Grajkowski   *      None
14778ee8d1cSJulian Grajkowski   * @sideEffects
14878ee8d1cSJulian Grajkowski   *      None
14978ee8d1cSJulian Grajkowski   * @reentrant
15078ee8d1cSJulian Grajkowski   *      No
15178ee8d1cSJulian Grajkowski   * @threadSafe
15278ee8d1cSJulian Grajkowski   *      Yes
15378ee8d1cSJulian Grajkowski   *
15478ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
15578ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
15678ee8d1cSJulian Grajkowski   *
15778ee8d1cSJulian Grajkowski   ************************************************************************/
15878ee8d1cSJulian Grajkowski CpaStatus icp_sal_userDcGetAvailableNumDynInstances(Cpa32U *pNumDcInstances);
15978ee8d1cSJulian Grajkowski 
16078ee8d1cSJulian Grajkowski /*************************************************************************
16178ee8d1cSJulian Grajkowski   * @ingroup SalUser
16278ee8d1cSJulian Grajkowski   * @description
16378ee8d1cSJulian Grajkowski   *    This function gets the number of the available dynamic allocated
16478ee8d1cSJulian Grajkowski   *    crypto instances which are from the specific device package.
16578ee8d1cSJulian Grajkowski   *
16678ee8d1cSJulian Grajkowski   * @context
16778ee8d1cSJulian Grajkowski   *      This function is called from the user process context
16878ee8d1cSJulian Grajkowski   *
16978ee8d1cSJulian Grajkowski   * @assumptions
17078ee8d1cSJulian Grajkowski   *      None
17178ee8d1cSJulian Grajkowski   * @sideEffects
17278ee8d1cSJulian Grajkowski   *      None
17378ee8d1cSJulian Grajkowski   * @reentrant
17478ee8d1cSJulian Grajkowski   *      No
17578ee8d1cSJulian Grajkowski   * @threadSafe
17678ee8d1cSJulian Grajkowski   *      Yes
17778ee8d1cSJulian Grajkowski   *
17878ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
17978ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
18078ee8d1cSJulian Grajkowski   *
18178ee8d1cSJulian Grajkowski   ************************************************************************/
18278ee8d1cSJulian Grajkowski CpaStatus
18378ee8d1cSJulian Grajkowski icp_sal_userCyGetAvailableNumDynInstancesByDevPkg(Cpa32U *pNumCyInstances,
18478ee8d1cSJulian Grajkowski 						  Cpa32U devPkgID);
18578ee8d1cSJulian Grajkowski 
18678ee8d1cSJulian Grajkowski /*************************************************************************
18778ee8d1cSJulian Grajkowski   * @ingroup SalUser
18878ee8d1cSJulian Grajkowski   * @description
18978ee8d1cSJulian Grajkowski   *    This function gets the number of the available dynamic allocated
19078ee8d1cSJulian Grajkowski   *    crypto instances which are from the specific device package and specific
19178ee8d1cSJulian Grajkowski   *    accelerator.
19278ee8d1cSJulian Grajkowski   *
19378ee8d1cSJulian Grajkowski   * @context
19478ee8d1cSJulian Grajkowski   *      This function is called from the user process context
19578ee8d1cSJulian Grajkowski   *
19678ee8d1cSJulian Grajkowski   * @assumptions
19778ee8d1cSJulian Grajkowski   *      None
19878ee8d1cSJulian Grajkowski   * @sideEffects
19978ee8d1cSJulian Grajkowski   *      None
20078ee8d1cSJulian Grajkowski   * @reentrant
20178ee8d1cSJulian Grajkowski   *      No
20278ee8d1cSJulian Grajkowski   * @threadSafe
20378ee8d1cSJulian Grajkowski   *      Yes
20478ee8d1cSJulian Grajkowski   *
20578ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
20678ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
20778ee8d1cSJulian Grajkowski   *
20878ee8d1cSJulian Grajkowski   ************************************************************************/
20978ee8d1cSJulian Grajkowski CpaStatus
21078ee8d1cSJulian Grajkowski icp_sal_userCyGetAvailableNumDynInstancesByPkgAccel(Cpa32U *pNumCyInstances,
21178ee8d1cSJulian Grajkowski 						    Cpa32U devPkgID,
21278ee8d1cSJulian Grajkowski 						    Cpa32U accelerator_number);
21378ee8d1cSJulian Grajkowski 
21478ee8d1cSJulian Grajkowski /*************************************************************************
21578ee8d1cSJulian Grajkowski   * @ingroup SalUser
21678ee8d1cSJulian Grajkowski   * @description
21778ee8d1cSJulian Grajkowski   *    This function gets the number of the available dynamic allocated
21878ee8d1cSJulian Grajkowski   *    compression instances which are from the specific device package.
21978ee8d1cSJulian Grajkowski   *
22078ee8d1cSJulian Grajkowski   * @context
22178ee8d1cSJulian Grajkowski   *      This function is called from the user process context
22278ee8d1cSJulian Grajkowski   *
22378ee8d1cSJulian Grajkowski   * @assumptions
22478ee8d1cSJulian Grajkowski   *      None
22578ee8d1cSJulian Grajkowski   * @sideEffects
22678ee8d1cSJulian Grajkowski   *      None
22778ee8d1cSJulian Grajkowski   * @reentrant
22878ee8d1cSJulian Grajkowski   *      No
22978ee8d1cSJulian Grajkowski   * @threadSafe
23078ee8d1cSJulian Grajkowski   *      Yes
23178ee8d1cSJulian Grajkowski   *
23278ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
23378ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
23478ee8d1cSJulian Grajkowski   *
23578ee8d1cSJulian Grajkowski   ************************************************************************/
23678ee8d1cSJulian Grajkowski CpaStatus
23778ee8d1cSJulian Grajkowski icp_sal_userDcGetAvailableNumDynInstancesByDevPkg(Cpa32U *pNumDcInstances,
23878ee8d1cSJulian Grajkowski 						  Cpa32U devPkgID);
23978ee8d1cSJulian Grajkowski 
24078ee8d1cSJulian Grajkowski /*************************************************************************
24178ee8d1cSJulian Grajkowski   * @ingroup SalUser
24278ee8d1cSJulian Grajkowski   * @description
24378ee8d1cSJulian Grajkowski   *    This function allocates crypto instances
24478ee8d1cSJulian Grajkowski   *    from dynamic crypto instance pool
24578ee8d1cSJulian Grajkowski   *     - it adds new allocated instances into crypto_services
24678ee8d1cSJulian Grajkowski   *     - it initializes new allocated instances
24778ee8d1cSJulian Grajkowski   *     - it starts new allocated instances
24878ee8d1cSJulian Grajkowski   *
24978ee8d1cSJulian Grajkowski   * @context
25078ee8d1cSJulian Grajkowski   *      This function is called from the user process context
25178ee8d1cSJulian Grajkowski   *
25278ee8d1cSJulian Grajkowski   * @assumptions
25378ee8d1cSJulian Grajkowski   *      None
25478ee8d1cSJulian Grajkowski   * @sideEffects
25578ee8d1cSJulian Grajkowski   *      None
25678ee8d1cSJulian Grajkowski   * @reentrant
25778ee8d1cSJulian Grajkowski   *      No
25878ee8d1cSJulian Grajkowski   * @threadSafe
25978ee8d1cSJulian Grajkowski   *      Yes
26078ee8d1cSJulian Grajkowski   *
26178ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
26278ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
26378ee8d1cSJulian Grajkowski   *
26478ee8d1cSJulian Grajkowski   ************************************************************************/
26578ee8d1cSJulian Grajkowski CpaStatus icp_sal_userCyInstancesAlloc(Cpa32U numCyInstances,
26678ee8d1cSJulian Grajkowski 				       CpaInstanceHandle *pCyInstances);
26778ee8d1cSJulian Grajkowski 
26878ee8d1cSJulian Grajkowski /*************************************************************************
26978ee8d1cSJulian Grajkowski   * @ingroup SalUser
27078ee8d1cSJulian Grajkowski   * @description
27178ee8d1cSJulian Grajkowski   *    This function allocates crypto instances
27278ee8d1cSJulian Grajkowski   *    from dynamic crypto instance pool
27378ee8d1cSJulian Grajkowski   *    which are from the specific device package.
27478ee8d1cSJulian Grajkowski   *     - it adds new allocated instances into crypto_services
27578ee8d1cSJulian Grajkowski   *     - it initializes new allocated instances
27678ee8d1cSJulian Grajkowski   *     - it starts new allocated instances
27778ee8d1cSJulian Grajkowski   *
27878ee8d1cSJulian Grajkowski   * @context
27978ee8d1cSJulian Grajkowski   *      This function is called from the user process context
28078ee8d1cSJulian Grajkowski   *
28178ee8d1cSJulian Grajkowski   * @assumptions
28278ee8d1cSJulian Grajkowski   *      None
28378ee8d1cSJulian Grajkowski   * @sideEffects
28478ee8d1cSJulian Grajkowski   *      None
28578ee8d1cSJulian Grajkowski   * @reentrant
28678ee8d1cSJulian Grajkowski   *      No
28778ee8d1cSJulian Grajkowski   * @threadSafe
28878ee8d1cSJulian Grajkowski   *      Yes
28978ee8d1cSJulian Grajkowski   *
29078ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
29178ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
29278ee8d1cSJulian Grajkowski   *
29378ee8d1cSJulian Grajkowski   ************************************************************************/
29478ee8d1cSJulian Grajkowski CpaStatus icp_sal_userCyInstancesAllocByDevPkg(Cpa32U numCyInstances,
29578ee8d1cSJulian Grajkowski 					       CpaInstanceHandle *pCyInstances,
29678ee8d1cSJulian Grajkowski 					       Cpa32U devPkgID);
29778ee8d1cSJulian Grajkowski 
29878ee8d1cSJulian Grajkowski /*************************************************************************
29978ee8d1cSJulian Grajkowski   * @ingroup SalUser
30078ee8d1cSJulian Grajkowski   * @description
30178ee8d1cSJulian Grajkowski   *    This function allocates crypto instances
30278ee8d1cSJulian Grajkowski   *    from dynamic crypto instance pool
30378ee8d1cSJulian Grajkowski   *    which are from the specific device package and specific accelerator
30478ee8d1cSJulian Grajkowski   *     - it adds new allocated instances into crypto_services
30578ee8d1cSJulian Grajkowski   *     - it initializes new allocated instances
30678ee8d1cSJulian Grajkowski   *     - it starts new allocated instances
30778ee8d1cSJulian Grajkowski   *
30878ee8d1cSJulian Grajkowski   * @context
30978ee8d1cSJulian Grajkowski   *      This function is called from the user process context
31078ee8d1cSJulian Grajkowski   *
31178ee8d1cSJulian Grajkowski   * @assumptions
31278ee8d1cSJulian Grajkowski   *      None
31378ee8d1cSJulian Grajkowski   * @sideEffects
31478ee8d1cSJulian Grajkowski   *      None
31578ee8d1cSJulian Grajkowski   * @reentrant
31678ee8d1cSJulian Grajkowski   *      No
31778ee8d1cSJulian Grajkowski   * @threadSafe
31878ee8d1cSJulian Grajkowski   *      Yes
31978ee8d1cSJulian Grajkowski   *
32078ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
32178ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
32278ee8d1cSJulian Grajkowski   *
32378ee8d1cSJulian Grajkowski   ************************************************************************/
32478ee8d1cSJulian Grajkowski CpaStatus
32578ee8d1cSJulian Grajkowski icp_sal_userCyInstancesAllocByPkgAccel(Cpa32U numCyInstances,
32678ee8d1cSJulian Grajkowski 				       CpaInstanceHandle *pCyInstances,
32778ee8d1cSJulian Grajkowski 				       Cpa32U devPkgID,
32878ee8d1cSJulian Grajkowski 				       Cpa32U accelerator_number);
32978ee8d1cSJulian Grajkowski 
33078ee8d1cSJulian Grajkowski /*************************************************************************
33178ee8d1cSJulian Grajkowski   * @ingroup SalUser
33278ee8d1cSJulian Grajkowski   * @description
33378ee8d1cSJulian Grajkowski   *    This function frees crypto instances allocated
33478ee8d1cSJulian Grajkowski   *    from dynamic crypto instance pool
33578ee8d1cSJulian Grajkowski   *     - it stops the instances
33678ee8d1cSJulian Grajkowski   *     - it shutdowns the instances
33778ee8d1cSJulian Grajkowski   *     - it removes the instances from crypto_services
33878ee8d1cSJulian Grajkowski   *
33978ee8d1cSJulian Grajkowski   * @context
34078ee8d1cSJulian Grajkowski   *      This function is called from the user process context
34178ee8d1cSJulian Grajkowski   *
34278ee8d1cSJulian Grajkowski   * @assumptions
34378ee8d1cSJulian Grajkowski   *      None
34478ee8d1cSJulian Grajkowski   * @sideEffects
34578ee8d1cSJulian Grajkowski   *      None
34678ee8d1cSJulian Grajkowski   * @reentrant
34778ee8d1cSJulian Grajkowski   *      No
34878ee8d1cSJulian Grajkowski   * @threadSafe
34978ee8d1cSJulian Grajkowski   *      Yes
35078ee8d1cSJulian Grajkowski   *
35178ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
35278ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
35378ee8d1cSJulian Grajkowski   *
35478ee8d1cSJulian Grajkowski   ************************************************************************/
35578ee8d1cSJulian Grajkowski CpaStatus icp_sal_userCyFreeInstances(Cpa32U numCyInstances,
35678ee8d1cSJulian Grajkowski 				      CpaInstanceHandle *pCyInstances);
35778ee8d1cSJulian Grajkowski 
35878ee8d1cSJulian Grajkowski /*************************************************************************
35978ee8d1cSJulian Grajkowski   * @ingroup SalUser
36078ee8d1cSJulian Grajkowski   * @description
36178ee8d1cSJulian Grajkowski   *    This function allocates compression instances
36278ee8d1cSJulian Grajkowski   *    from dynamic compression instance pool
36378ee8d1cSJulian Grajkowski   *     - it adds new allocated instances into compression_services
36478ee8d1cSJulian Grajkowski   *     - it initializes new allocated instances
36578ee8d1cSJulian Grajkowski   *     - it starts new allocated instances
36678ee8d1cSJulian Grajkowski   *
36778ee8d1cSJulian Grajkowski   * @context
36878ee8d1cSJulian Grajkowski   *      This function is called from the user process context
36978ee8d1cSJulian Grajkowski   *
37078ee8d1cSJulian Grajkowski   * @assumptions
37178ee8d1cSJulian Grajkowski   *      None
37278ee8d1cSJulian Grajkowski   * @sideEffects
37378ee8d1cSJulian Grajkowski   *      None
37478ee8d1cSJulian Grajkowski   * @reentrant
37578ee8d1cSJulian Grajkowski   *      No
37678ee8d1cSJulian Grajkowski   * @threadSafe
37778ee8d1cSJulian Grajkowski   *      Yes
37878ee8d1cSJulian Grajkowski   *
37978ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
38078ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
38178ee8d1cSJulian Grajkowski   *
38278ee8d1cSJulian Grajkowski   ************************************************************************/
38378ee8d1cSJulian Grajkowski CpaStatus icp_sal_userDcInstancesAlloc(Cpa32U numDcInstances,
38478ee8d1cSJulian Grajkowski 				       CpaInstanceHandle *pDcInstances);
38578ee8d1cSJulian Grajkowski 
38678ee8d1cSJulian Grajkowski /*************************************************************************
38778ee8d1cSJulian Grajkowski   * @ingroup SalUser
38878ee8d1cSJulian Grajkowski   * @description
38978ee8d1cSJulian Grajkowski   *    This function allocates compression instances
39078ee8d1cSJulian Grajkowski   *    from dynamic compression instance pool
39178ee8d1cSJulian Grajkowski   *    which are from the specific device package.
39278ee8d1cSJulian Grajkowski   *     - it adds new allocated instances into compression_services
39378ee8d1cSJulian Grajkowski   *     - it initializes new allocated instances
39478ee8d1cSJulian Grajkowski   *     - it starts new allocated instances
39578ee8d1cSJulian Grajkowski   *
39678ee8d1cSJulian Grajkowski   * @context
39778ee8d1cSJulian Grajkowski   *      This function is called from the user process context
39878ee8d1cSJulian Grajkowski   *
39978ee8d1cSJulian Grajkowski   * @assumptions
40078ee8d1cSJulian Grajkowski   *      None
40178ee8d1cSJulian Grajkowski   * @sideEffects
40278ee8d1cSJulian Grajkowski   *      None
40378ee8d1cSJulian Grajkowski   * @reentrant
40478ee8d1cSJulian Grajkowski   *      No
40578ee8d1cSJulian Grajkowski   * @threadSafe
40678ee8d1cSJulian Grajkowski   *      Yes
40778ee8d1cSJulian Grajkowski   *
40878ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
40978ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
41078ee8d1cSJulian Grajkowski   *
41178ee8d1cSJulian Grajkowski   ************************************************************************/
41278ee8d1cSJulian Grajkowski CpaStatus icp_sal_userDcInstancesAllocByDevPkg(Cpa32U numDcInstances,
41378ee8d1cSJulian Grajkowski 					       CpaInstanceHandle *pDcInstances,
41478ee8d1cSJulian Grajkowski 					       Cpa32U devPkgID);
41578ee8d1cSJulian Grajkowski 
41678ee8d1cSJulian Grajkowski /*************************************************************************
41778ee8d1cSJulian Grajkowski   * @ingroup SalUser
41878ee8d1cSJulian Grajkowski   * @description
41978ee8d1cSJulian Grajkowski   *    This function frees compression instances allocated
42078ee8d1cSJulian Grajkowski   *    from dynamic compression instance pool
42178ee8d1cSJulian Grajkowski   *     - it stops the instances
42278ee8d1cSJulian Grajkowski   *     - it shutdowns the instances
42378ee8d1cSJulian Grajkowski   *     - it removes the instances from compression_services
42478ee8d1cSJulian Grajkowski   *
42578ee8d1cSJulian Grajkowski   * @context
42678ee8d1cSJulian Grajkowski   *      This function is called from the user process context
42778ee8d1cSJulian Grajkowski   *
42878ee8d1cSJulian Grajkowski   * @assumptions
42978ee8d1cSJulian Grajkowski   *      None
43078ee8d1cSJulian Grajkowski   * @sideEffects
43178ee8d1cSJulian Grajkowski   *      None
43278ee8d1cSJulian Grajkowski   * @reentrant
43378ee8d1cSJulian Grajkowski   *      No
43478ee8d1cSJulian Grajkowski   * @threadSafe
43578ee8d1cSJulian Grajkowski   *      Yes
43678ee8d1cSJulian Grajkowski   *
43778ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_SUCCESS        No error
43878ee8d1cSJulian Grajkowski   * @retval CPA_STATUS_FAIL           Operation failed
43978ee8d1cSJulian Grajkowski   *
44078ee8d1cSJulian Grajkowski   ************************************************************************/
44178ee8d1cSJulian Grajkowski CpaStatus icp_sal_userDcFreeInstances(Cpa32U numDcInstances,
44278ee8d1cSJulian Grajkowski 				      CpaInstanceHandle *pDcInstances);
44378ee8d1cSJulian Grajkowski 
44478ee8d1cSJulian Grajkowski /*************************************************************************
44578ee8d1cSJulian Grajkowski  * @ingroup SalUser
44678ee8d1cSJulian Grajkowski  * @description
44778ee8d1cSJulian Grajkowski  *    This function checks if new devices have been started and if so
44878ee8d1cSJulian Grajkowski  *    starts to use them.
44978ee8d1cSJulian Grajkowski  *
45078ee8d1cSJulian Grajkowski  * @context
45178ee8d1cSJulian Grajkowski  *      This function is called from the user process context
45278ee8d1cSJulian Grajkowski  *      in threadless mode
45378ee8d1cSJulian Grajkowski  *
45478ee8d1cSJulian Grajkowski  * @assumptions
45578ee8d1cSJulian Grajkowski  *      None
45678ee8d1cSJulian Grajkowski  * @sideEffects
45778ee8d1cSJulian Grajkowski  *      None
45878ee8d1cSJulian Grajkowski  * @reentrant
45978ee8d1cSJulian Grajkowski  *      No
46078ee8d1cSJulian Grajkowski  * @threadSafe
46178ee8d1cSJulian Grajkowski  *      No
46278ee8d1cSJulian Grajkowski  *
46378ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        No error
46478ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Operation failed
46578ee8d1cSJulian Grajkowski  *
46678ee8d1cSJulian Grajkowski  ************************************************************************/
46778ee8d1cSJulian Grajkowski CpaStatus icp_sal_find_new_devices(void);
46878ee8d1cSJulian Grajkowski 
46978ee8d1cSJulian Grajkowski /*************************************************************************
47078ee8d1cSJulian Grajkowski  * @ingroup SalUser
47178ee8d1cSJulian Grajkowski  * @description
47278ee8d1cSJulian Grajkowski  *    This function polls device events.
47378ee8d1cSJulian Grajkowski  *
47478ee8d1cSJulian Grajkowski  * @context
47578ee8d1cSJulian Grajkowski  *      This function is called from the user process context
47678ee8d1cSJulian Grajkowski  *      in threadless mode
47778ee8d1cSJulian Grajkowski  *
47878ee8d1cSJulian Grajkowski  * @assumptions
47978ee8d1cSJulian Grajkowski  *      None
48078ee8d1cSJulian Grajkowski  * @sideEffects
48178ee8d1cSJulian Grajkowski  *      In case a device has beed stoped or restarted the application
48278ee8d1cSJulian Grajkowski  *      will get restarting/stop/shutdown events
48378ee8d1cSJulian Grajkowski  * @reentrant
48478ee8d1cSJulian Grajkowski  *      No
48578ee8d1cSJulian Grajkowski  * @threadSafe
48678ee8d1cSJulian Grajkowski  *      No
48778ee8d1cSJulian Grajkowski  *
48878ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        No error
48978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Operation failed
49078ee8d1cSJulian Grajkowski  *
49178ee8d1cSJulian Grajkowski  ************************************************************************/
49278ee8d1cSJulian Grajkowski CpaStatus icp_sal_poll_device_events(void);
49378ee8d1cSJulian Grajkowski 
49478ee8d1cSJulian Grajkowski /*
49578ee8d1cSJulian Grajkowski  * icp_adf_check_device
49678ee8d1cSJulian Grajkowski  *
49778ee8d1cSJulian Grajkowski  * @description:
49878ee8d1cSJulian Grajkowski  *  This function checks the status of the firmware/hardware for a given device.
49978ee8d1cSJulian Grajkowski  *  This function is used as part of the heartbeat functionality.
50078ee8d1cSJulian Grajkowski  *
50178ee8d1cSJulian Grajkowski  * @context
50278ee8d1cSJulian Grajkowski  *      This function is called from the user process context
50378ee8d1cSJulian Grajkowski  * @assumptions
50478ee8d1cSJulian Grajkowski  *      None
50578ee8d1cSJulian Grajkowski  * @sideEffects
50678ee8d1cSJulian Grajkowski  *      In case a device is unresponsive the device will
50778ee8d1cSJulian Grajkowski  *      be restarted.
50878ee8d1cSJulian Grajkowski  * @reentrant
50978ee8d1cSJulian Grajkowski  *      No
51078ee8d1cSJulian Grajkowski  * @threadSafe
51178ee8d1cSJulian Grajkowski  *      Yes
51278ee8d1cSJulian Grajkowski  *
51378ee8d1cSJulian Grajkowski  * @param[in] accelId                Device Id.
51478ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        No error
51578ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Operation failed
51678ee8d1cSJulian Grajkowski  */
51778ee8d1cSJulian Grajkowski CpaStatus icp_sal_check_device(Cpa32U accelId);
51878ee8d1cSJulian Grajkowski 
51978ee8d1cSJulian Grajkowski /*
52078ee8d1cSJulian Grajkowski  * icp_adf_check_all_devices
52178ee8d1cSJulian Grajkowski  *
52278ee8d1cSJulian Grajkowski  * @description:
52378ee8d1cSJulian Grajkowski  *  This function checks the status of the firmware/hardware for all devices.
52478ee8d1cSJulian Grajkowski  *  This function is used as part of the heartbeat functionality.
52578ee8d1cSJulian Grajkowski  *
52678ee8d1cSJulian Grajkowski  * @context
52778ee8d1cSJulian Grajkowski  *      This function is called from the user process context
52878ee8d1cSJulian Grajkowski  * @assumptions
52978ee8d1cSJulian Grajkowski  *      None
53078ee8d1cSJulian Grajkowski  * @sideEffects
53178ee8d1cSJulian Grajkowski  *      In case a device is unresponsive the device will
53278ee8d1cSJulian Grajkowski  *      be restarted.
53378ee8d1cSJulian Grajkowski  * @reentrant
53478ee8d1cSJulian Grajkowski  *      No
53578ee8d1cSJulian Grajkowski  * @threadSafe
53678ee8d1cSJulian Grajkowski  *      Yes
53778ee8d1cSJulian Grajkowski  *
53878ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        No error
53978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Operation failed
54078ee8d1cSJulian Grajkowski  */
54178ee8d1cSJulian Grajkowski CpaStatus icp_sal_check_all_devices(void);
54278ee8d1cSJulian Grajkowski 
54378ee8d1cSJulian Grajkowski /*
54478ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
54578ee8d1cSJulian Grajkowski  * @description
54678ee8d1cSJulian Grajkowski  *      This is a stub function to send messages to VF
54778ee8d1cSJulian Grajkowski  *
54878ee8d1cSJulian Grajkowski  * @context
54978ee8d1cSJulian Grajkowski  *      None
55078ee8d1cSJulian Grajkowski  *
55178ee8d1cSJulian Grajkowski  * @assumptions
55278ee8d1cSJulian Grajkowski  *      None
55378ee8d1cSJulian Grajkowski  * @sideEffects
55478ee8d1cSJulian Grajkowski  *      None
55578ee8d1cSJulian Grajkowski  * @reentrant
55678ee8d1cSJulian Grajkowski  *      Yes
55778ee8d1cSJulian Grajkowski  * @threadSafe
55878ee8d1cSJulian Grajkowski  *      Yes
55978ee8d1cSJulian Grajkowski  *
56078ee8d1cSJulian Grajkowski */
56178ee8d1cSJulian Grajkowski CpaStatus icp_sal_userSendMsgToVf(Cpa32U accelId, Cpa32U vfNum, Cpa32U message);
56278ee8d1cSJulian Grajkowski 
56378ee8d1cSJulian Grajkowski /*
56478ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
56578ee8d1cSJulian Grajkowski  * @description
56678ee8d1cSJulian Grajkowski  *      This is a stub function to send messages to PF
56778ee8d1cSJulian Grajkowski  *
56878ee8d1cSJulian Grajkowski  * @context
56978ee8d1cSJulian Grajkowski  *      None
57078ee8d1cSJulian Grajkowski  *
57178ee8d1cSJulian Grajkowski  * @assumptions
57278ee8d1cSJulian Grajkowski  *      None
57378ee8d1cSJulian Grajkowski  * @sideEffects
57478ee8d1cSJulian Grajkowski  *      None
57578ee8d1cSJulian Grajkowski  * @reentrant
57678ee8d1cSJulian Grajkowski  *      Yes
57778ee8d1cSJulian Grajkowski  * @threadSafe
57878ee8d1cSJulian Grajkowski  *      Yes
57978ee8d1cSJulian Grajkowski  *
58078ee8d1cSJulian Grajkowski */
58178ee8d1cSJulian Grajkowski CpaStatus icp_sal_userSendMsgToPf(Cpa32U accelId, Cpa32U message);
58278ee8d1cSJulian Grajkowski 
58378ee8d1cSJulian Grajkowski /*
58478ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
58578ee8d1cSJulian Grajkowski  * @description
58678ee8d1cSJulian Grajkowski  *      This is a stub function to get messages from VF
58778ee8d1cSJulian Grajkowski  *
58878ee8d1cSJulian Grajkowski  * @context
58978ee8d1cSJulian Grajkowski  *      None
59078ee8d1cSJulian Grajkowski  *
59178ee8d1cSJulian Grajkowski  * @assumptions
59278ee8d1cSJulian Grajkowski  *      None
59378ee8d1cSJulian Grajkowski  * @sideEffects
59478ee8d1cSJulian Grajkowski  *      None
59578ee8d1cSJulian Grajkowski  * @reentrant
59678ee8d1cSJulian Grajkowski  *      Yes
59778ee8d1cSJulian Grajkowski  * @threadSafe
59878ee8d1cSJulian Grajkowski  *      Yes
59978ee8d1cSJulian Grajkowski  *
60078ee8d1cSJulian Grajkowski */
60178ee8d1cSJulian Grajkowski CpaStatus icp_sal_userGetMsgFromVf(Cpa32U accelId,
60278ee8d1cSJulian Grajkowski 				   Cpa32U vfNum,
60378ee8d1cSJulian Grajkowski 				   Cpa32U *message,
60478ee8d1cSJulian Grajkowski 				   Cpa32U *messageCounter);
60578ee8d1cSJulian Grajkowski 
60678ee8d1cSJulian Grajkowski /*
60778ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
60878ee8d1cSJulian Grajkowski  * @description
60978ee8d1cSJulian Grajkowski  *      This is a stub function to get messages from PF
61078ee8d1cSJulian Grajkowski  *
61178ee8d1cSJulian Grajkowski  * @context
61278ee8d1cSJulian Grajkowski  *      None
61378ee8d1cSJulian Grajkowski  *
61478ee8d1cSJulian Grajkowski  * @assumptions
61578ee8d1cSJulian Grajkowski  *      None
61678ee8d1cSJulian Grajkowski  * @sideEffects
61778ee8d1cSJulian Grajkowski  *      None
61878ee8d1cSJulian Grajkowski  * @reentrant
61978ee8d1cSJulian Grajkowski  *      Yes
62078ee8d1cSJulian Grajkowski  * @threadSafe
62178ee8d1cSJulian Grajkowski  *      Yes
62278ee8d1cSJulian Grajkowski  *
62378ee8d1cSJulian Grajkowski */
62478ee8d1cSJulian Grajkowski CpaStatus icp_sal_userGetMsgFromPf(Cpa32U accelId,
62578ee8d1cSJulian Grajkowski 				   Cpa32U *message,
62678ee8d1cSJulian Grajkowski 				   Cpa32U *messageCounter);
62778ee8d1cSJulian Grajkowski 
62878ee8d1cSJulian Grajkowski /*
62978ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
63078ee8d1cSJulian Grajkowski  * @description
63178ee8d1cSJulian Grajkowski  *      This is a stub function to get pfvf comms status
63278ee8d1cSJulian Grajkowski  *
63378ee8d1cSJulian Grajkowski  * @context
63478ee8d1cSJulian Grajkowski  *      None
63578ee8d1cSJulian Grajkowski  *
63678ee8d1cSJulian Grajkowski  * @assumptions
63778ee8d1cSJulian Grajkowski  *      None
63878ee8d1cSJulian Grajkowski  * @sideEffects
63978ee8d1cSJulian Grajkowski  *      None
64078ee8d1cSJulian Grajkowski  * @reentrant
64178ee8d1cSJulian Grajkowski  *      Yes
64278ee8d1cSJulian Grajkowski  * @threadSafe
64378ee8d1cSJulian Grajkowski  *      Yes
64478ee8d1cSJulian Grajkowski  *
64578ee8d1cSJulian Grajkowski */
64678ee8d1cSJulian Grajkowski CpaStatus icp_sal_userGetPfVfcommsStatus(CpaBoolean *unreadMessage);
64778ee8d1cSJulian Grajkowski 
64878ee8d1cSJulian Grajkowski /*
64978ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
65078ee8d1cSJulian Grajkowski  * @description
65178ee8d1cSJulian Grajkowski  *      This is a stub function to reset the device
65278ee8d1cSJulian Grajkowski  *
65378ee8d1cSJulian Grajkowski  * @context
65478ee8d1cSJulian Grajkowski  *     None
65578ee8d1cSJulian Grajkowski  *
65678ee8d1cSJulian Grajkowski  * @assumptions
65778ee8d1cSJulian Grajkowski  *      None
65878ee8d1cSJulian Grajkowski  * @sideEffects
65978ee8d1cSJulian Grajkowski  *      None
66078ee8d1cSJulian Grajkowski  * @reentrant
66178ee8d1cSJulian Grajkowski  *      Yes
66278ee8d1cSJulian Grajkowski  * @threadSafe
66378ee8d1cSJulian Grajkowski  *      Yes
66478ee8d1cSJulian Grajkowski  *
66578ee8d1cSJulian Grajkowski */
66678ee8d1cSJulian Grajkowski CpaStatus icp_sal_reset_device(Cpa32U accelId);
66778ee8d1cSJulian Grajkowski 
66878ee8d1cSJulian Grajkowski /**
66978ee8d1cSJulian Grajkowski  *****************************************************************************
67078ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
67178ee8d1cSJulian Grajkowski  *      Retrieve number of in flight requests for a nrbg tx ring
67278ee8d1cSJulian Grajkowski  *      from a crypto instance (Traditional API).
67378ee8d1cSJulian Grajkowski  *
67478ee8d1cSJulian Grajkowski  * @description
67578ee8d1cSJulian Grajkowski  *      This function is a part of back-pressure mechanism.
67678ee8d1cSJulian Grajkowski  *      Applications can query for inflight requests in
67778ee8d1cSJulian Grajkowski  *      the appropriate service/ring on each instance
67878ee8d1cSJulian Grajkowski  *      and select any instance with sufficient space or
67978ee8d1cSJulian Grajkowski  *      the instance with the lowest number.
68078ee8d1cSJulian Grajkowski  *
68178ee8d1cSJulian Grajkowski  * @assumptions
68278ee8d1cSJulian Grajkowski  *      None
68378ee8d1cSJulian Grajkowski  * @sideEffects
68478ee8d1cSJulian Grajkowski  *      None
68578ee8d1cSJulian Grajkowski  * @blocking
68678ee8d1cSJulian Grajkowski  *      None
68778ee8d1cSJulian Grajkowski  * @reentrant
68878ee8d1cSJulian Grajkowski  *      No
68978ee8d1cSJulian Grajkowski  * @threadSafe
69078ee8d1cSJulian Grajkowski  *      Yes
69178ee8d1cSJulian Grajkowski  *
69278ee8d1cSJulian Grajkowski  * @param[in]  instanceHandle         Crypto API instance handle.
69378ee8d1cSJulian Grajkowski  * @param[out] maxInflightRequests    Maximal number of in flight requests.
69478ee8d1cSJulian Grajkowski  * @param[out] numInflightRequests    Current number of in flight requests.
69578ee8d1cSJulian Grajkowski  *
69678ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
69778ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
69878ee8d1cSJulian Grajkowski  * @pre
69978ee8d1cSJulian Grajkowski  *      None
70078ee8d1cSJulian Grajkowski  * @post
70178ee8d1cSJulian Grajkowski  *      None
70278ee8d1cSJulian Grajkowski  * @see
70378ee8d1cSJulian Grajkowski  *      None
70478ee8d1cSJulian Grajkowski  *
70578ee8d1cSJulian Grajkowski  *****************************************************************************/
70678ee8d1cSJulian Grajkowski CpaStatus icp_sal_NrbgGetInflightRequests(CpaInstanceHandle instanceHandle,
70778ee8d1cSJulian Grajkowski 					  Cpa32U *maxInflightRequests,
70878ee8d1cSJulian Grajkowski 					  Cpa32U *numInflightRequests);
70978ee8d1cSJulian Grajkowski 
71078ee8d1cSJulian Grajkowski /**
71178ee8d1cSJulian Grajkowski  *****************************************************************************
71278ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
71378ee8d1cSJulian Grajkowski  *      Retrieve number of in flight requests for a symmetric tx ring
71478ee8d1cSJulian Grajkowski  *      from a crypto instance (Traditional API).
71578ee8d1cSJulian Grajkowski  *
71678ee8d1cSJulian Grajkowski  * @description
71778ee8d1cSJulian Grajkowski  *      This function is a part of back-pressure mechanism.
71878ee8d1cSJulian Grajkowski  *      Applications can query for inflight requests in
71978ee8d1cSJulian Grajkowski  *      the appropriate service/ring on each instance
72078ee8d1cSJulian Grajkowski  *      and select any instance with sufficient space or
72178ee8d1cSJulian Grajkowski  *      the instance with the lowest number.
72278ee8d1cSJulian Grajkowski  *
72378ee8d1cSJulian Grajkowski  * @assumptions
72478ee8d1cSJulian Grajkowski  *      None
72578ee8d1cSJulian Grajkowski  * @sideEffects
72678ee8d1cSJulian Grajkowski  *      None
72778ee8d1cSJulian Grajkowski  * @blocking
72878ee8d1cSJulian Grajkowski  *      None
72978ee8d1cSJulian Grajkowski  * @reentrant
73078ee8d1cSJulian Grajkowski  *      No
73178ee8d1cSJulian Grajkowski  * @threadSafe
73278ee8d1cSJulian Grajkowski  *      Yes
73378ee8d1cSJulian Grajkowski  *
73478ee8d1cSJulian Grajkowski  * @param[in]  instanceHandle         Crypto API instance handle.
73578ee8d1cSJulian Grajkowski  * @param[out] maxInflightRequests    Maximal number of in flight requests.
73678ee8d1cSJulian Grajkowski  * @param[out] numInflightRequests    Current number of in flight requests.
73778ee8d1cSJulian Grajkowski  *
73878ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
73978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
74078ee8d1cSJulian Grajkowski  * @pre
74178ee8d1cSJulian Grajkowski  *      None
74278ee8d1cSJulian Grajkowski  * @post
74378ee8d1cSJulian Grajkowski  *      None
74478ee8d1cSJulian Grajkowski  * @see
74578ee8d1cSJulian Grajkowski  *      None
74678ee8d1cSJulian Grajkowski  *
74778ee8d1cSJulian Grajkowski  *****************************************************************************/
74878ee8d1cSJulian Grajkowski CpaStatus icp_sal_SymGetInflightRequests(CpaInstanceHandle instanceHandle,
74978ee8d1cSJulian Grajkowski 					 Cpa32U *maxInflightRequests,
75078ee8d1cSJulian Grajkowski 					 Cpa32U *numInflightRequests);
75178ee8d1cSJulian Grajkowski 
75278ee8d1cSJulian Grajkowski /**
75378ee8d1cSJulian Grajkowski  *****************************************************************************
75478ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
75578ee8d1cSJulian Grajkowski  *      Retrieve number of in flight requests for an asymmetric tx ring
75678ee8d1cSJulian Grajkowski  *      from a crypto instance (Traditional API).
75778ee8d1cSJulian Grajkowski  *
75878ee8d1cSJulian Grajkowski  * @description
75978ee8d1cSJulian Grajkowski  *      This function is a part of back-pressure mechanism.
76078ee8d1cSJulian Grajkowski  *      Applications can query the appropriate service/ring on each instance
76178ee8d1cSJulian Grajkowski  *      and select any instance with sufficient space or
76278ee8d1cSJulian Grajkowski  *      the instance with the lowest number.
76378ee8d1cSJulian Grajkowski  *
76478ee8d1cSJulian Grajkowski  * @assumptions
76578ee8d1cSJulian Grajkowski  *      None
76678ee8d1cSJulian Grajkowski  * @sideEffects
76778ee8d1cSJulian Grajkowski  *      None
76878ee8d1cSJulian Grajkowski  * @blocking
76978ee8d1cSJulian Grajkowski  *      None
77078ee8d1cSJulian Grajkowski  * @reentrant
77178ee8d1cSJulian Grajkowski  *      No
77278ee8d1cSJulian Grajkowski  * @threadSafe
77378ee8d1cSJulian Grajkowski  *      Yes
77478ee8d1cSJulian Grajkowski  *
77578ee8d1cSJulian Grajkowski  * @param[in]  instanceHandle         Crypto API instance handle.
77678ee8d1cSJulian Grajkowski  * @param[out] maxInflightRequests    Maximal number of in flight requests.
77778ee8d1cSJulian Grajkowski  * @param[out] numInflightRequests    Current number of in flight requests.
77878ee8d1cSJulian Grajkowski  *
77978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
78078ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
78178ee8d1cSJulian Grajkowski  * @pre
78278ee8d1cSJulian Grajkowski  *      None
78378ee8d1cSJulian Grajkowski  * @post
78478ee8d1cSJulian Grajkowski  *      None
78578ee8d1cSJulian Grajkowski  * @see
78678ee8d1cSJulian Grajkowski  *      None
78778ee8d1cSJulian Grajkowski  *
78878ee8d1cSJulian Grajkowski  *****************************************************************************/
78978ee8d1cSJulian Grajkowski CpaStatus icp_sal_AsymGetInflightRequests(CpaInstanceHandle instanceHandle,
79078ee8d1cSJulian Grajkowski 					  Cpa32U *maxInflightRequests,
79178ee8d1cSJulian Grajkowski 					  Cpa32U *numInflightRequests);
79278ee8d1cSJulian Grajkowski 
79378ee8d1cSJulian Grajkowski /**
79478ee8d1cSJulian Grajkowski  *****************************************************************************
79578ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
79678ee8d1cSJulian Grajkowski  *      Retrieve number of in flight requests for a symmetric tx ring
79778ee8d1cSJulian Grajkowski  *      from a crypto instancei (Data Plane API).
79878ee8d1cSJulian Grajkowski  *
79978ee8d1cSJulian Grajkowski  * @description
80078ee8d1cSJulian Grajkowski  *      This function is a part of back-pressure mechanism.
80178ee8d1cSJulian Grajkowski  *      Applications can query the appropriate service/ring on each instance
80278ee8d1cSJulian Grajkowski  *      and select any instance with sufficient space or
80378ee8d1cSJulian Grajkowski  *      the instance with the lowest number.
80478ee8d1cSJulian Grajkowski  *
80578ee8d1cSJulian Grajkowski  * @assumptions
80678ee8d1cSJulian Grajkowski  *      None
80778ee8d1cSJulian Grajkowski  * @sideEffects
80878ee8d1cSJulian Grajkowski  *      None
80978ee8d1cSJulian Grajkowski  * @blocking
81078ee8d1cSJulian Grajkowski  *      None
81178ee8d1cSJulian Grajkowski  * @reentrant
81278ee8d1cSJulian Grajkowski  *      No
81378ee8d1cSJulian Grajkowski  * @threadSafe
81478ee8d1cSJulian Grajkowski  *      Yes
81578ee8d1cSJulian Grajkowski  *
81678ee8d1cSJulian Grajkowski  * @param[in]  instanceHandle         Crypto API instance handle.
81778ee8d1cSJulian Grajkowski  * @param[out] maxInflightRequests    Maximal number of in flight requests.
81878ee8d1cSJulian Grajkowski  * @param[out] numInflightRequests    Current number of in flight requests.
81978ee8d1cSJulian Grajkowski  *
82078ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
82178ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
82278ee8d1cSJulian Grajkowski  * @pre
82378ee8d1cSJulian Grajkowski  *      None
82478ee8d1cSJulian Grajkowski  * @post
82578ee8d1cSJulian Grajkowski  *      None
82678ee8d1cSJulian Grajkowski  * @see
82778ee8d1cSJulian Grajkowski  *      None
82878ee8d1cSJulian Grajkowski  *
82978ee8d1cSJulian Grajkowski  *****************************************************************************/
83078ee8d1cSJulian Grajkowski CpaStatus icp_sal_dp_SymGetInflightRequests(CpaInstanceHandle instanceHandle,
83178ee8d1cSJulian Grajkowski 					    Cpa32U *maxInflightRequests,
83278ee8d1cSJulian Grajkowski 					    Cpa32U *numInflightRequests);
83378ee8d1cSJulian Grajkowski 
83478ee8d1cSJulian Grajkowski /**
83578ee8d1cSJulian Grajkowski  *****************************************************************************
83678ee8d1cSJulian Grajkowski  * @ingroup icp_sal_user
83778ee8d1cSJulian Grajkowski  *      Updates the CSR with queued requests in the asymmetric tx ring.
83878ee8d1cSJulian Grajkowski  *
83978ee8d1cSJulian Grajkowski  * @description
84078ee8d1cSJulian Grajkowski  *      The function writes current shadow tail pointer of the asymmetric
84178ee8d1cSJulian Grajkowski  *      TX ring into ring's CSR. Updating the CSR will notify the HW that
84278ee8d1cSJulian Grajkowski  *      there are request(s) queued to be processed. The CSR is updated
84378ee8d1cSJulian Grajkowski  *      always, disregarding the current value of shadow tail pointer and
84478ee8d1cSJulian Grajkowski  *      the current CSR's tail value.
84578ee8d1cSJulian Grajkowski  *
84678ee8d1cSJulian Grajkowski  * @assumptions
84778ee8d1cSJulian Grajkowski  *      None
84878ee8d1cSJulian Grajkowski  * @sideEffects
84978ee8d1cSJulian Grajkowski  *      None
85078ee8d1cSJulian Grajkowski  * @blocking
85178ee8d1cSJulian Grajkowski  *      None
85278ee8d1cSJulian Grajkowski  * @reentrant
85378ee8d1cSJulian Grajkowski  *      No
85478ee8d1cSJulian Grajkowski  * @threadSafe
85578ee8d1cSJulian Grajkowski  *      Yes
85678ee8d1cSJulian Grajkowski  *
85778ee8d1cSJulian Grajkowski  * @param[in] instanceHandle         Crypto API instance handle.
85878ee8d1cSJulian Grajkowski  *
85978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
86078ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
86178ee8d1cSJulian Grajkowski  * @pre
86278ee8d1cSJulian Grajkowski  *      None
86378ee8d1cSJulian Grajkowski  * @post
86478ee8d1cSJulian Grajkowski  *      None
86578ee8d1cSJulian Grajkowski  * @see
86678ee8d1cSJulian Grajkowski  *      None
86778ee8d1cSJulian Grajkowski  *
86878ee8d1cSJulian Grajkowski  *****************************************************************************/
86978ee8d1cSJulian Grajkowski CpaStatus icp_sal_AsymPerformOpNow(CpaInstanceHandle instanceHandle);
870*a977168cSMichal Gulbicki 
871*a977168cSMichal Gulbicki /**
872*a977168cSMichal Gulbicki  *****************************************************************************
873*a977168cSMichal Gulbicki  * @ingroup icp_sal_setForceAEADMACVerify
874*a977168cSMichal Gulbicki  *      Sets forceAEADMacVerify for particular instance to force HW MAC
875*a977168cSMichal Gulbicki  *      validation.
876*a977168cSMichal Gulbicki  *
877*a977168cSMichal Gulbicki  * @description
878*a977168cSMichal Gulbicki  * 	By default HW MAC verification is set to CPA_TRUE - this utility
879*a977168cSMichal Gulbicki  * 	function allows to change default behavior.
880*a977168cSMichal Gulbicki  *
881*a977168cSMichal Gulbicki  * @assumptions
882*a977168cSMichal Gulbicki  *      None
883*a977168cSMichal Gulbicki  * @sideEffects
884*a977168cSMichal Gulbicki  *      None
885*a977168cSMichal Gulbicki  * @blocking
886*a977168cSMichal Gulbicki  *      None
887*a977168cSMichal Gulbicki  * @reentrant
888*a977168cSMichal Gulbicki  *      No
889*a977168cSMichal Gulbicki  * @threadSafe
890*a977168cSMichal Gulbicki  *      No
891*a977168cSMichal Gulbicki  *
892*a977168cSMichal Gulbicki  * @param[in] instanceHandle         Crypto API instance handle.
893*a977168cSMichal Gulbicki  * @param[in] forceAEADMacVerify     new value
894*a977168cSMichal Gulbicki  *
895*a977168cSMichal Gulbicki  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
896*a977168cSMichal Gulbicki  * @retval CPA_STATUS_FAIL           Function failed.
897*a977168cSMichal Gulbicki  * @pre
898*a977168cSMichal Gulbicki  *      None
899*a977168cSMichal Gulbicki  * @post
900*a977168cSMichal Gulbicki  *      None
901*a977168cSMichal Gulbicki  * @see
902*a977168cSMichal Gulbicki  *      None
903*a977168cSMichal Gulbicki  *
904*a977168cSMichal Gulbicki  *****************************************************************************/
905*a977168cSMichal Gulbicki CpaStatus icp_sal_setForceAEADMACVerify(CpaInstanceHandle instanceHandle,
906*a977168cSMichal Gulbicki 					CpaBoolean forceAEADMacVerify);
90778ee8d1cSJulian Grajkowski #endif
908