xref: /freebsd/sys/dev/qat/qat_api/common/include/lac_hooks.h (revision 25f09d4a9c358c5452435d299e00c1a1bdafff87)
178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */
2*25f09d4aSHareshx Sankar Raj /* Copyright(c) 2007-2025 Intel Corporation */
378ee8d1cSJulian Grajkowski /**
478ee8d1cSJulian Grajkowski  *******************************************************************************
578ee8d1cSJulian Grajkowski  * @file lac_hooks.h
678ee8d1cSJulian Grajkowski  *
778ee8d1cSJulian Grajkowski  * @defgroup LacHooks   Hooks
878ee8d1cSJulian Grajkowski  *
978ee8d1cSJulian Grajkowski  * @ingroup LacCommon
1078ee8d1cSJulian Grajkowski  *
1178ee8d1cSJulian Grajkowski  * Component Init/Shutdown functions. These are:
12*25f09d4aSHareshx Sankar Raj  *  - an init function which is called during the initialisation sequence,
1378ee8d1cSJulian Grajkowski  *  - a shutdown function which is called by the overall shutdown function,
1478ee8d1cSJulian Grajkowski  *
1578ee8d1cSJulian Grajkowski  ******************************************************************************/
1678ee8d1cSJulian Grajkowski 
1778ee8d1cSJulian Grajkowski #ifndef LAC_HOOKS_H
1878ee8d1cSJulian Grajkowski #define LAC_HOOKS_H
1978ee8d1cSJulian Grajkowski 
2078ee8d1cSJulian Grajkowski /*
2178ee8d1cSJulian Grajkowski ********************************************************************************
2278ee8d1cSJulian Grajkowski * Include public/global header files
2378ee8d1cSJulian Grajkowski ********************************************************************************
2478ee8d1cSJulian Grajkowski */
2578ee8d1cSJulian Grajkowski 
2678ee8d1cSJulian Grajkowski #include "cpa.h"
2778ee8d1cSJulian Grajkowski 
2878ee8d1cSJulian Grajkowski /*
2978ee8d1cSJulian Grajkowski ********************************************************************************
3078ee8d1cSJulian Grajkowski * Include private header files
3178ee8d1cSJulian Grajkowski ********************************************************************************
3278ee8d1cSJulian Grajkowski */
3378ee8d1cSJulian Grajkowski 
3478ee8d1cSJulian Grajkowski /******************************************************************************/
3578ee8d1cSJulian Grajkowski 
3678ee8d1cSJulian Grajkowski /**
3778ee8d1cSJulian Grajkowski  *******************************************************************************
3878ee8d1cSJulian Grajkowski  * @ingroup LacHooks
3978ee8d1cSJulian Grajkowski  *      This function initialises the Large Number (ModExp and ModInv) module
4078ee8d1cSJulian Grajkowski  *
4178ee8d1cSJulian Grajkowski  * @description
4278ee8d1cSJulian Grajkowski  *      This function clears the Large Number statistics
4378ee8d1cSJulian Grajkowski  *
4478ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
4578ee8d1cSJulian Grajkowski  *
4678ee8d1cSJulian Grajkowski  ******************************************************************************/
4778ee8d1cSJulian Grajkowski CpaStatus LacLn_Init(CpaInstanceHandle instanceHandle);
4878ee8d1cSJulian Grajkowski 
4978ee8d1cSJulian Grajkowski /**
5078ee8d1cSJulian Grajkowski  *******************************************************************************
5178ee8d1cSJulian Grajkowski  * @ingroup LacHooks
5278ee8d1cSJulian Grajkowski  *      This function frees statistics array for Large Number module
5378ee8d1cSJulian Grajkowski  *
5478ee8d1cSJulian Grajkowski  * @description
5578ee8d1cSJulian Grajkowski  *      This function frees statistics array for Large Number module
5678ee8d1cSJulian Grajkowski  *
5778ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
5878ee8d1cSJulian Grajkowski  *
5978ee8d1cSJulian Grajkowski  ******************************************************************************/
6078ee8d1cSJulian Grajkowski void LacLn_StatsFree(CpaInstanceHandle instanceHandle);
6178ee8d1cSJulian Grajkowski 
6278ee8d1cSJulian Grajkowski /**
6378ee8d1cSJulian Grajkowski  *******************************************************************************
6478ee8d1cSJulian Grajkowski  * @ingroup LacHooks
6578ee8d1cSJulian Grajkowski  *      This function initialises the Prime module
6678ee8d1cSJulian Grajkowski  *
6778ee8d1cSJulian Grajkowski  * @description
6878ee8d1cSJulian Grajkowski  *      This function clears the Prime statistics
6978ee8d1cSJulian Grajkowski  *
7078ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
7178ee8d1cSJulian Grajkowski  *
7278ee8d1cSJulian Grajkowski  ******************************************************************************/
7378ee8d1cSJulian Grajkowski CpaStatus LacPrime_Init(CpaInstanceHandle instanceHandle);
7478ee8d1cSJulian Grajkowski 
7578ee8d1cSJulian Grajkowski /**
7678ee8d1cSJulian Grajkowski  *******************************************************************************
7778ee8d1cSJulian Grajkowski  * @ingroup LacHooks
7878ee8d1cSJulian Grajkowski  *      This function frees the Prime module statistics array
7978ee8d1cSJulian Grajkowski  *
8078ee8d1cSJulian Grajkowski  * @description
8178ee8d1cSJulian Grajkowski  *      This function frees the Prime module statistics array
8278ee8d1cSJulian Grajkowski  *
8378ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
8478ee8d1cSJulian Grajkowski  *
8578ee8d1cSJulian Grajkowski  ******************************************************************************/
8678ee8d1cSJulian Grajkowski void LacPrime_StatsFree(CpaInstanceHandle instanceHandle);
8778ee8d1cSJulian Grajkowski 
8878ee8d1cSJulian Grajkowski /**
8978ee8d1cSJulian Grajkowski  *******************************************************************************
9078ee8d1cSJulian Grajkowski  * @ingroup LacHooks
9178ee8d1cSJulian Grajkowski  *      This function initialises the DSA module
9278ee8d1cSJulian Grajkowski  *
9378ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
9478ee8d1cSJulian Grajkowski  *
9578ee8d1cSJulian Grajkowski  * @description
9678ee8d1cSJulian Grajkowski  *      This function clears the DSA statistics
9778ee8d1cSJulian Grajkowski  *
9878ee8d1cSJulian Grajkowski  ******************************************************************************/
9978ee8d1cSJulian Grajkowski CpaStatus LacDsa_Init(CpaInstanceHandle instanceHandle);
10078ee8d1cSJulian Grajkowski 
10178ee8d1cSJulian Grajkowski /**
10278ee8d1cSJulian Grajkowski  *******************************************************************************
10378ee8d1cSJulian Grajkowski  * @ingroup LacHooks
10478ee8d1cSJulian Grajkowski  *      This function frees the DSA module statistics array
10578ee8d1cSJulian Grajkowski  *
10678ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
10778ee8d1cSJulian Grajkowski  *
10878ee8d1cSJulian Grajkowski  * @description
10978ee8d1cSJulian Grajkowski  *      This function frees the DSA statistics array
11078ee8d1cSJulian Grajkowski  *
11178ee8d1cSJulian Grajkowski  ******************************************************************************/
11278ee8d1cSJulian Grajkowski void LacDsa_StatsFree(CpaInstanceHandle instanceHandle);
11378ee8d1cSJulian Grajkowski 
11478ee8d1cSJulian Grajkowski /**
11578ee8d1cSJulian Grajkowski  *******************************************************************************
11678ee8d1cSJulian Grajkowski  * @ingroup LacHooks
11778ee8d1cSJulian Grajkowski  *      This function initialises the Diffie Hellmann module
11878ee8d1cSJulian Grajkowski  *
11978ee8d1cSJulian Grajkowski  * @description
12078ee8d1cSJulian Grajkowski  *      This function initialises the Diffie Hellman statistics
12178ee8d1cSJulian Grajkowski  *
12278ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
12378ee8d1cSJulian Grajkowski  *
12478ee8d1cSJulian Grajkowski  ******************************************************************************/
12578ee8d1cSJulian Grajkowski CpaStatus LacDh_Init(CpaInstanceHandle instanceHandle);
12678ee8d1cSJulian Grajkowski 
12778ee8d1cSJulian Grajkowski /**
12878ee8d1cSJulian Grajkowski  *******************************************************************************
12978ee8d1cSJulian Grajkowski  * @ingroup LacHooks
13078ee8d1cSJulian Grajkowski  *      This function frees the Diffie Hellmann module statistics
13178ee8d1cSJulian Grajkowski  *
13278ee8d1cSJulian Grajkowski  * @description
13378ee8d1cSJulian Grajkowski  *      This function frees the Diffie Hellmann module statistics
13478ee8d1cSJulian Grajkowski  *
13578ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
13678ee8d1cSJulian Grajkowski  *
13778ee8d1cSJulian Grajkowski  ******************************************************************************/
13878ee8d1cSJulian Grajkowski void LacDh_StatsFree(CpaInstanceHandle instanceHandle);
13978ee8d1cSJulian Grajkowski 
14078ee8d1cSJulian Grajkowski /**
14178ee8d1cSJulian Grajkowski  ******************************************************************************
14278ee8d1cSJulian Grajkowski  * @ingroup LacSymKey
14378ee8d1cSJulian Grajkowski  *      This function registers the callback handlers to SSL/TLS and MGF,
14478ee8d1cSJulian Grajkowski  *      allocates resources that are needed for the component and clears
14578ee8d1cSJulian Grajkowski  *      the stats.
14678ee8d1cSJulian Grajkowski  *
14778ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
14878ee8d1cSJulian Grajkowski  *
14978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS   Status Success
15078ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL      General failure
15178ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_RESOURCE  Resource allocation failure
15278ee8d1cSJulian Grajkowski  *
15378ee8d1cSJulian Grajkowski  *****************************************************************************/
15478ee8d1cSJulian Grajkowski CpaStatus LacSymKey_Init(CpaInstanceHandle instanceHandle);
15578ee8d1cSJulian Grajkowski 
15678ee8d1cSJulian Grajkowski /**
15778ee8d1cSJulian Grajkowski  ******************************************************************************
15878ee8d1cSJulian Grajkowski  * @ingroup LacSymKey
15978ee8d1cSJulian Grajkowski  *      This function frees up resources obtained by the key gen component
16078ee8d1cSJulian Grajkowski  *      and clears the stats
16178ee8d1cSJulian Grajkowski  *
16278ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
16378ee8d1cSJulian Grajkowski  *
16478ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS   Status Success
16578ee8d1cSJulian Grajkowski  *
16678ee8d1cSJulian Grajkowski  *****************************************************************************/
16778ee8d1cSJulian Grajkowski CpaStatus LacSymKey_Shutdown(CpaInstanceHandle instanceHandle);
16878ee8d1cSJulian Grajkowski 
16978ee8d1cSJulian Grajkowski /**
17078ee8d1cSJulian Grajkowski  *******************************************************************************
17178ee8d1cSJulian Grajkowski  * @ingroup LacHooks
17278ee8d1cSJulian Grajkowski  *      This function initialises the RSA module
17378ee8d1cSJulian Grajkowski  *
17478ee8d1cSJulian Grajkowski  * @description
17578ee8d1cSJulian Grajkowski  *      This function clears the RSA statistics
17678ee8d1cSJulian Grajkowski  *
17778ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
17878ee8d1cSJulian Grajkowski  *
17978ee8d1cSJulian Grajkowski  ******************************************************************************/
18078ee8d1cSJulian Grajkowski CpaStatus LacRsa_Init(CpaInstanceHandle instanceHandle);
18178ee8d1cSJulian Grajkowski 
18278ee8d1cSJulian Grajkowski /**
18378ee8d1cSJulian Grajkowski  *******************************************************************************
18478ee8d1cSJulian Grajkowski  * @ingroup LacHooks
18578ee8d1cSJulian Grajkowski  *      This function frees the RSA module statistics
18678ee8d1cSJulian Grajkowski  *
18778ee8d1cSJulian Grajkowski  * @description
18878ee8d1cSJulian Grajkowski  *      This function frees the RSA module statistics
18978ee8d1cSJulian Grajkowski  *
19078ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
19178ee8d1cSJulian Grajkowski  *
19278ee8d1cSJulian Grajkowski  ******************************************************************************/
19378ee8d1cSJulian Grajkowski void LacRsa_StatsFree(CpaInstanceHandle instanceHandle);
19478ee8d1cSJulian Grajkowski 
19578ee8d1cSJulian Grajkowski /**
19678ee8d1cSJulian Grajkowski  *******************************************************************************
19778ee8d1cSJulian Grajkowski  * @ingroup LacHooks
19878ee8d1cSJulian Grajkowski  *      This function initialises the EC module
19978ee8d1cSJulian Grajkowski  *
20078ee8d1cSJulian Grajkowski  * @description
20178ee8d1cSJulian Grajkowski  *      This function clears the EC statistics
20278ee8d1cSJulian Grajkowski  *
20378ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
20478ee8d1cSJulian Grajkowski  *
20578ee8d1cSJulian Grajkowski  ******************************************************************************/
20678ee8d1cSJulian Grajkowski CpaStatus LacEc_Init(CpaInstanceHandle instanceHandle);
20778ee8d1cSJulian Grajkowski 
20878ee8d1cSJulian Grajkowski /**
20978ee8d1cSJulian Grajkowski  *******************************************************************************
21078ee8d1cSJulian Grajkowski  * @ingroup LacHooks
21178ee8d1cSJulian Grajkowski  *      This function frees the EC module stats array
21278ee8d1cSJulian Grajkowski  *
21378ee8d1cSJulian Grajkowski  * @description
21478ee8d1cSJulian Grajkowski  *      This function frees the EC module stats array
21578ee8d1cSJulian Grajkowski  *
21678ee8d1cSJulian Grajkowski  * @param[in] instanceHandle
21778ee8d1cSJulian Grajkowski  *
21878ee8d1cSJulian Grajkowski  ******************************************************************************/
21978ee8d1cSJulian Grajkowski void LacEc_StatsFree(CpaInstanceHandle instanceHandle);
22078ee8d1cSJulian Grajkowski 
22178ee8d1cSJulian Grajkowski /**
22278ee8d1cSJulian Grajkowski *******************************************************************************
22378ee8d1cSJulian Grajkowski  * @ingroup LacSymNrbg
22478ee8d1cSJulian Grajkowski  *      Initialise the NRBG module
22578ee8d1cSJulian Grajkowski  *
22678ee8d1cSJulian Grajkowski  * @description
22778ee8d1cSJulian Grajkowski  *     This function registers NRBG callback handlers.
22878ee8d1cSJulian Grajkowski  *
22978ee8d1cSJulian Grajkowski  *
23078ee8d1cSJulian Grajkowski  *****************************************************************************/
23178ee8d1cSJulian Grajkowski void LacSymNrbg_Init(void);
23278ee8d1cSJulian Grajkowski 
23378ee8d1cSJulian Grajkowski #endif /* LAC_HOOKS_H */
234