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