xref: /freebsd/sys/dev/qat/qat_api/include/lac/cpa_cy_im.h (revision 266b0663)
178ee8d1cSJulian Grajkowski /***************************************************************************
278ee8d1cSJulian Grajkowski  *
378ee8d1cSJulian Grajkowski  *   BSD LICENSE
478ee8d1cSJulian Grajkowski  *
5266b0663SKrzysztof Zdziarski  *   Copyright(c) 2007-2023 Intel Corporation. All rights reserved.
678ee8d1cSJulian Grajkowski  *   All rights reserved.
778ee8d1cSJulian Grajkowski  *
878ee8d1cSJulian Grajkowski  *   Redistribution and use in source and binary forms, with or without
978ee8d1cSJulian Grajkowski  *   modification, are permitted provided that the following conditions
1078ee8d1cSJulian Grajkowski  *   are met:
1178ee8d1cSJulian Grajkowski  *
1278ee8d1cSJulian Grajkowski  *     * Redistributions of source code must retain the above copyright
1378ee8d1cSJulian Grajkowski  *       notice, this list of conditions and the following disclaimer.
1478ee8d1cSJulian Grajkowski  *     * Redistributions in binary form must reproduce the above copyright
1578ee8d1cSJulian Grajkowski  *       notice, this list of conditions and the following disclaimer in
1678ee8d1cSJulian Grajkowski  *       the documentation and/or other materials provided with the
1778ee8d1cSJulian Grajkowski  *       distribution.
1878ee8d1cSJulian Grajkowski  *     * Neither the name of Intel Corporation nor the names of its
1978ee8d1cSJulian Grajkowski  *       contributors may be used to endorse or promote products derived
2078ee8d1cSJulian Grajkowski  *       from this software without specific prior written permission.
2178ee8d1cSJulian Grajkowski  *
2278ee8d1cSJulian Grajkowski  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2378ee8d1cSJulian Grajkowski  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2478ee8d1cSJulian Grajkowski  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2578ee8d1cSJulian Grajkowski  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2678ee8d1cSJulian Grajkowski  *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2778ee8d1cSJulian Grajkowski  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2878ee8d1cSJulian Grajkowski  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2978ee8d1cSJulian Grajkowski  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3078ee8d1cSJulian Grajkowski  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3178ee8d1cSJulian Grajkowski  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3278ee8d1cSJulian Grajkowski  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3378ee8d1cSJulian Grajkowski  *
3478ee8d1cSJulian Grajkowski  *
3578ee8d1cSJulian Grajkowski  ***************************************************************************/
3678ee8d1cSJulian Grajkowski 
3778ee8d1cSJulian Grajkowski /*
3878ee8d1cSJulian Grajkowski  *****************************************************************************
3978ee8d1cSJulian Grajkowski  * Doxygen group definitions
4078ee8d1cSJulian Grajkowski  ****************************************************************************/
4178ee8d1cSJulian Grajkowski 
4278ee8d1cSJulian Grajkowski /**
4378ee8d1cSJulian Grajkowski  *****************************************************************************
4478ee8d1cSJulian Grajkowski  * @file cpa_cy_im.h
4578ee8d1cSJulian Grajkowski  *
4678ee8d1cSJulian Grajkowski  * @defgroup cpaCyInstMaint Cryptographic Instance Management API
4778ee8d1cSJulian Grajkowski  *
4878ee8d1cSJulian Grajkowski  * @ingroup cpaCy
4978ee8d1cSJulian Grajkowski  *
5078ee8d1cSJulian Grajkowski  * @description
5178ee8d1cSJulian Grajkowski  *      These functions specify the Instance Management API for available
5278ee8d1cSJulian Grajkowski  *      Cryptographic Instances. It is expected that these functions will only be
5378ee8d1cSJulian Grajkowski  *      called via a single system maintenance entity, rather than individual
5478ee8d1cSJulian Grajkowski  *      clients.
5578ee8d1cSJulian Grajkowski  *
5678ee8d1cSJulian Grajkowski  *****************************************************************************/
5778ee8d1cSJulian Grajkowski 
5878ee8d1cSJulian Grajkowski #ifndef CPA_CY_IM_H_
5978ee8d1cSJulian Grajkowski #define CPA_CY_IM_H_
6078ee8d1cSJulian Grajkowski 
6178ee8d1cSJulian Grajkowski #ifdef __cplusplus
6278ee8d1cSJulian Grajkowski extern "C" {
6378ee8d1cSJulian Grajkowski #endif
6478ee8d1cSJulian Grajkowski 
6578ee8d1cSJulian Grajkowski #include "cpa_cy_common.h"
6678ee8d1cSJulian Grajkowski 
6778ee8d1cSJulian Grajkowski /**
6878ee8d1cSJulian Grajkowski  *****************************************************************************
6978ee8d1cSJulian Grajkowski  * @ingroup cpaCyInstMaint
7078ee8d1cSJulian Grajkowski  *      Cryptographic Component Initialization and Start function.
7178ee8d1cSJulian Grajkowski  *
7278ee8d1cSJulian Grajkowski  * @description
7378ee8d1cSJulian Grajkowski  *      This function will initialize and start the Cryptographic component.
7478ee8d1cSJulian Grajkowski  *      It MUST be called before any other crypto function is called. This
7578ee8d1cSJulian Grajkowski  *      function SHOULD be called only once (either for the very first time,
7678ee8d1cSJulian Grajkowski  *      or after an cpaCyStopInstance call which succeeded) per instance.
7778ee8d1cSJulian Grajkowski  *      Subsequent calls will have no effect.
7878ee8d1cSJulian Grajkowski  *
7978ee8d1cSJulian Grajkowski  * @context
8078ee8d1cSJulian Grajkowski  *      This function may sleep, and  MUST NOT be called in interrupt context.
8178ee8d1cSJulian Grajkowski  * @assumptions
8278ee8d1cSJulian Grajkowski  *      None
8378ee8d1cSJulian Grajkowski  * @sideEffects
8478ee8d1cSJulian Grajkowski  *      None
8578ee8d1cSJulian Grajkowski  * @blocking
8678ee8d1cSJulian Grajkowski  *      This function is synchronous and blocking.
8778ee8d1cSJulian Grajkowski  * @reentrant
8878ee8d1cSJulian Grajkowski  *      No
8978ee8d1cSJulian Grajkowski  * @threadSafe
9078ee8d1cSJulian Grajkowski  *      Yes
9178ee8d1cSJulian Grajkowski  * @param[out] instanceHandle       Handle to an instance of this API to be
9278ee8d1cSJulian Grajkowski  *                                  initialized.
9378ee8d1cSJulian Grajkowski  *
9478ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS       Function executed successfully.
9578ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL          Function failed. Suggested course of action
9678ee8d1cSJulian Grajkowski  *                                  is to shutdown and restart.
9778ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_UNSUPPORTED   Function is not supported.
9878ee8d1cSJulian Grajkowski  *
9978ee8d1cSJulian Grajkowski  * @pre
10078ee8d1cSJulian Grajkowski  *      None.
10178ee8d1cSJulian Grajkowski  * @post
10278ee8d1cSJulian Grajkowski  *      None
10378ee8d1cSJulian Grajkowski  * @note
10478ee8d1cSJulian Grajkowski  *      Note that this is a synchronous function and has no completion callback
10578ee8d1cSJulian Grajkowski  *      associated with it.
10678ee8d1cSJulian Grajkowski  *
10778ee8d1cSJulian Grajkowski  * @see
10878ee8d1cSJulian Grajkowski  *      cpaCyStopInstance()
10978ee8d1cSJulian Grajkowski  *
11078ee8d1cSJulian Grajkowski  *****************************************************************************/
11178ee8d1cSJulian Grajkowski CpaStatus
11278ee8d1cSJulian Grajkowski cpaCyStartInstance(CpaInstanceHandle instanceHandle);
11378ee8d1cSJulian Grajkowski 
11478ee8d1cSJulian Grajkowski /**
11578ee8d1cSJulian Grajkowski  *****************************************************************************
11678ee8d1cSJulian Grajkowski  * @ingroup cpaCyInstMaint
11778ee8d1cSJulian Grajkowski  *      Cryptographic Component Stop function.
11878ee8d1cSJulian Grajkowski  *
11978ee8d1cSJulian Grajkowski  * @description
12078ee8d1cSJulian Grajkowski  *      This function will stop the Cryptographic component and free
12178ee8d1cSJulian Grajkowski  *      all system resources associated with it. The client MUST ensure that
12278ee8d1cSJulian Grajkowski  *      all outstanding operations have completed before calling this function.
12378ee8d1cSJulian Grajkowski  *      The recommended approach to ensure this is to deregister all session or
12478ee8d1cSJulian Grajkowski  *      callback handles before calling this function. If outstanding
12578ee8d1cSJulian Grajkowski  *      operations still exist when this function is invoked, the callback
12678ee8d1cSJulian Grajkowski  *      function for each of those operations will NOT be invoked and the
12778ee8d1cSJulian Grajkowski  *      shutdown will continue.  If the component is to be restarted, then a
12878ee8d1cSJulian Grajkowski  *      call to cpaCyStartInstance is required.
12978ee8d1cSJulian Grajkowski  *
13078ee8d1cSJulian Grajkowski  * @context
13178ee8d1cSJulian Grajkowski  *      This function may sleep, and so MUST NOT be called in interrupt
13278ee8d1cSJulian Grajkowski  *      context.
13378ee8d1cSJulian Grajkowski  * @assumptions
13478ee8d1cSJulian Grajkowski  *      None
13578ee8d1cSJulian Grajkowski  * @sideEffects
13678ee8d1cSJulian Grajkowski  *      None
13778ee8d1cSJulian Grajkowski  * @blocking
13878ee8d1cSJulian Grajkowski  *      This function is synchronous and blocking.
13978ee8d1cSJulian Grajkowski  * @reentrant
14078ee8d1cSJulian Grajkowski  *      No
14178ee8d1cSJulian Grajkowski  * @threadSafe
14278ee8d1cSJulian Grajkowski  *      Yes
14378ee8d1cSJulian Grajkowski  * @param[in] instanceHandle        Handle to an instance of this API to be
14478ee8d1cSJulian Grajkowski  *                                  shutdown.
14578ee8d1cSJulian Grajkowski  *
14678ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS       Function executed successfully.
14778ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL          Function failed. Suggested course of action
14878ee8d1cSJulian Grajkowski  *                                  is to ensure requests are not still being
14978ee8d1cSJulian Grajkowski  *                                  submitted and that all sessions are
15078ee8d1cSJulian Grajkowski  *                                  deregistered. If this does not help, then
15178ee8d1cSJulian Grajkowski  *                                  forcefully remove the component from the
15278ee8d1cSJulian Grajkowski  *                                  system.
15378ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_UNSUPPORTED   Function is not supported.
15478ee8d1cSJulian Grajkowski  *
15578ee8d1cSJulian Grajkowski  * @pre
15678ee8d1cSJulian Grajkowski  *      The component has been initialized via cpaCyStartInstance.
15778ee8d1cSJulian Grajkowski  * @post
15878ee8d1cSJulian Grajkowski  *      None
15978ee8d1cSJulian Grajkowski  * @note
16078ee8d1cSJulian Grajkowski  *      Note that this is a synchronous function and has no completion callback
16178ee8d1cSJulian Grajkowski  *      associated with it.
16278ee8d1cSJulian Grajkowski  *
16378ee8d1cSJulian Grajkowski  * @see
16478ee8d1cSJulian Grajkowski  *      cpaCyStartInstance()
16578ee8d1cSJulian Grajkowski  *
16678ee8d1cSJulian Grajkowski  *****************************************************************************/
16778ee8d1cSJulian Grajkowski CpaStatus
16878ee8d1cSJulian Grajkowski cpaCyStopInstance(CpaInstanceHandle instanceHandle);
16978ee8d1cSJulian Grajkowski 
17078ee8d1cSJulian Grajkowski /**
17178ee8d1cSJulian Grajkowski  *****************************************************************************
17278ee8d1cSJulian Grajkowski  * @ingroup cpaCyInstMaint
17378ee8d1cSJulian Grajkowski  *      Cryptographic Capabilities Info
17478ee8d1cSJulian Grajkowski  *
17578ee8d1cSJulian Grajkowski  * @description
17678ee8d1cSJulian Grajkowski  *      This structure contains the capabilities that vary across API
17778ee8d1cSJulian Grajkowski  *      implementations. This structure is used in conjunction with
17878ee8d1cSJulian Grajkowski  *      @ref cpaCyQueryCapabilities() to determine the capabilities supported
17978ee8d1cSJulian Grajkowski  *      by a particular API implementation.
18078ee8d1cSJulian Grajkowski  *
18178ee8d1cSJulian Grajkowski  *      The client MUST allocate memory for this structure and any members
18278ee8d1cSJulian Grajkowski  *      that require memory.  When the structure is passed into the function
18378ee8d1cSJulian Grajkowski  *      ownership of the memory passes to the function. Ownership of the
18478ee8d1cSJulian Grajkowski  *      memory returns to the client when the function returns.
18578ee8d1cSJulian Grajkowski  *****************************************************************************/
18678ee8d1cSJulian Grajkowski typedef struct _CpaCyCapabilitiesInfo
18778ee8d1cSJulian Grajkowski {
18878ee8d1cSJulian Grajkowski   CpaBoolean symSupported;
18978ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the symmetric cryptography API.
19078ee8d1cSJulian Grajkowski    * See @ref cpaCySym. */
19178ee8d1cSJulian Grajkowski   CpaBoolean symDpSupported;
19278ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the symmetric cryptography
19378ee8d1cSJulian Grajkowski    * data plane API.
19478ee8d1cSJulian Grajkowski    * See @ref cpaCySymDp. */
19578ee8d1cSJulian Grajkowski   CpaBoolean dhSupported;
19678ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Diffie Hellman API.
19778ee8d1cSJulian Grajkowski    * See @ref cpaCyDh. */
19878ee8d1cSJulian Grajkowski   CpaBoolean dsaSupported;
19978ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the DSA API.
20078ee8d1cSJulian Grajkowski    * See @ref cpaCyDsa. */
20178ee8d1cSJulian Grajkowski   CpaBoolean rsaSupported;
20278ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the RSA API.
20378ee8d1cSJulian Grajkowski    * See @ref cpaCyRsa. */
20478ee8d1cSJulian Grajkowski   CpaBoolean ecSupported;
20578ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Elliptic Curve API.
20678ee8d1cSJulian Grajkowski    * See @ref cpaCyEc. */
20778ee8d1cSJulian Grajkowski   CpaBoolean ecdhSupported;
20878ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Elliptic Curve Diffie Hellman API.
20978ee8d1cSJulian Grajkowski    * See @ref cpaCyEcdh. */
21078ee8d1cSJulian Grajkowski   CpaBoolean ecdsaSupported;
21178ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Elliptic Curve DSA API.
21278ee8d1cSJulian Grajkowski    * See @ref cpaCyEcdsa. */
21378ee8d1cSJulian Grajkowski   CpaBoolean keySupported;
21478ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Key Generation API.
21578ee8d1cSJulian Grajkowski    * See @ref cpaCyKeyGen. */
21678ee8d1cSJulian Grajkowski   CpaBoolean lnSupported;
21778ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Large Number API.
21878ee8d1cSJulian Grajkowski    * See @ref cpaCyLn. */
21978ee8d1cSJulian Grajkowski   CpaBoolean primeSupported;
22078ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the prime number testing API.
22178ee8d1cSJulian Grajkowski    * See @ref cpaCyPrime. */
22278ee8d1cSJulian Grajkowski   CpaBoolean drbgSupported;
22378ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the DRBG API.
22478ee8d1cSJulian Grajkowski    * See @ref cpaCyDrbg. */
22578ee8d1cSJulian Grajkowski   CpaBoolean nrbgSupported;
22678ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the NRBG API.
22778ee8d1cSJulian Grajkowski    * See @ref cpaCyNrbg. */
22878ee8d1cSJulian Grajkowski   CpaBoolean randSupported;
22978ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the random bit/number generation API.
23078ee8d1cSJulian Grajkowski    * See @ref cpaCyRand. */
23178ee8d1cSJulian Grajkowski   CpaBoolean kptSupported;
23278ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Intel(R) KPT Cryptographic API.
23378ee8d1cSJulian Grajkowski    * See @ref cpaCyKpt. */
23478ee8d1cSJulian Grajkowski    CpaBoolean hkdfSupported;
23578ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the HKDF components of the KeyGen API.
23678ee8d1cSJulian Grajkowski    * See @ref cpaCyKeyGen. */
23778ee8d1cSJulian Grajkowski    CpaBoolean extAlgchainSupported;
23878ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports algorithm chaining for certain
23978ee8d1cSJulian Grajkowski    * wireless algorithms. Please refer to implementation for details.
24078ee8d1cSJulian Grajkowski    * See @ref cpaCySym. */
24178ee8d1cSJulian Grajkowski    CpaBoolean ecEdMontSupported;
24278ee8d1cSJulian Grajkowski   /**< CPA_TRUE if instance supports the Edwards and Montgomery elliptic
24378ee8d1cSJulian Grajkowski    * curves of the EC API.
24478ee8d1cSJulian Grajkowski    * See @ref cpaCyEc */
245266b0663SKrzysztof Zdziarski   CpaBoolean ecSm2Supported;
246266b0663SKrzysztof Zdziarski   /**< CPA_TRUE if instance supports the EcSM2 API.
247266b0663SKrzysztof Zdziarski    * See @ref cpaCyEcsm2. */
24878ee8d1cSJulian Grajkowski } CpaCyCapabilitiesInfo;
24978ee8d1cSJulian Grajkowski 
25078ee8d1cSJulian Grajkowski /**
25178ee8d1cSJulian Grajkowski  *****************************************************************************
25278ee8d1cSJulian Grajkowski  * @ingroup cpaCyInstMaint
25378ee8d1cSJulian Grajkowski  *      Returns capabilities of a Cryptographic API instance
25478ee8d1cSJulian Grajkowski  *
25578ee8d1cSJulian Grajkowski  * @description
25678ee8d1cSJulian Grajkowski  *      This function is used to query the instance capabilities.
25778ee8d1cSJulian Grajkowski  *
25878ee8d1cSJulian Grajkowski  * @context
25978ee8d1cSJulian Grajkowski  *      The function shall not be called in an interrupt context.
26078ee8d1cSJulian Grajkowski  * @assumptions
26178ee8d1cSJulian Grajkowski  *      None
26278ee8d1cSJulian Grajkowski  * @sideEffects
26378ee8d1cSJulian Grajkowski  *      None
26478ee8d1cSJulian Grajkowski  * @blocking
26578ee8d1cSJulian Grajkowski  *      This function is synchronous and blocking.
26678ee8d1cSJulian Grajkowski  * @reentrant
26778ee8d1cSJulian Grajkowski  *      No
26878ee8d1cSJulian Grajkowski  * @threadSafe
26978ee8d1cSJulian Grajkowski  *      Yes
27078ee8d1cSJulian Grajkowski  *
27178ee8d1cSJulian Grajkowski  * @param[in]  instanceHandle        Handle to an instance of this API.
27278ee8d1cSJulian Grajkowski  * @param[out] pCapInfo              Pointer to capabilities info structure.
27378ee8d1cSJulian Grajkowski  *                                   All fields in the structure
27478ee8d1cSJulian Grajkowski  *                                   are populated by the API instance.
27578ee8d1cSJulian Grajkowski  *
27678ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
27778ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
27878ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_INVALID_PARAM  Invalid parameter passed in.
27978ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_UNSUPPORTED    Function is not supported.
28078ee8d1cSJulian Grajkowski  *
28178ee8d1cSJulian Grajkowski  * @pre
28278ee8d1cSJulian Grajkowski  *      The instance has been initialized via the @ref cpaCyStartInstance
28378ee8d1cSJulian Grajkowski  *      function.
28478ee8d1cSJulian Grajkowski  * @post
28578ee8d1cSJulian Grajkowski  *      None
28678ee8d1cSJulian Grajkowski  *****************************************************************************/
28778ee8d1cSJulian Grajkowski CpaStatus
28878ee8d1cSJulian Grajkowski cpaCyQueryCapabilities(const CpaInstanceHandle instanceHandle,
28978ee8d1cSJulian Grajkowski     CpaCyCapabilitiesInfo * pCapInfo);
29078ee8d1cSJulian Grajkowski 
29178ee8d1cSJulian Grajkowski /**
29278ee8d1cSJulian Grajkowski  *****************************************************************************
29378ee8d1cSJulian Grajkowski  * @ingroup cpaCyInstMaint
29478ee8d1cSJulian Grajkowski  *      Sets the address translation function
29578ee8d1cSJulian Grajkowski  *
29678ee8d1cSJulian Grajkowski  * @description
29778ee8d1cSJulian Grajkowski  *      This function is used to set the virtual to physical address
29878ee8d1cSJulian Grajkowski  *      translation routine for the instance. The specified routine
29978ee8d1cSJulian Grajkowski  *      is used by the instance to perform any required translation of
30078ee8d1cSJulian Grajkowski  *      a virtual address to a physical address. If the application
30178ee8d1cSJulian Grajkowski  *      does not invoke this function, then the instance will use its
30278ee8d1cSJulian Grajkowski  *      default method, such as virt2phys, for address translation.
30378ee8d1cSJulian Grajkowski 
30478ee8d1cSJulian Grajkowski  * @context
30578ee8d1cSJulian Grajkowski  *      The function shall not be called in an interrupt context.
30678ee8d1cSJulian Grajkowski  * @assumptions
30778ee8d1cSJulian Grajkowski  *      None
30878ee8d1cSJulian Grajkowski  * @sideEffects
30978ee8d1cSJulian Grajkowski  *      None
31078ee8d1cSJulian Grajkowski  * @blocking
31178ee8d1cSJulian Grajkowski  *      This function is synchronous and blocking.
31278ee8d1cSJulian Grajkowski  * @reentrant
31378ee8d1cSJulian Grajkowski  *      No
31478ee8d1cSJulian Grajkowski  * @threadSafe
31578ee8d1cSJulian Grajkowski  *      Yes
31678ee8d1cSJulian Grajkowski  *
31778ee8d1cSJulian Grajkowski  * @param[in] instanceHandle         Handle to an instance of this API.
31878ee8d1cSJulian Grajkowski  * @param[in] virtual2Physical       Routine that performs virtual to
31978ee8d1cSJulian Grajkowski  *                                   physical address translation.
32078ee8d1cSJulian Grajkowski  *
32178ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
32278ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_FAIL           Function failed.
32378ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_INVALID_PARAM  Invalid parameter passed in.
32478ee8d1cSJulian Grajkowski  * @retval CPA_STATUS_UNSUPPORTED    Function is not supported.
32578ee8d1cSJulian Grajkowski  *
32678ee8d1cSJulian Grajkowski  * @pre
32778ee8d1cSJulian Grajkowski  *      None
32878ee8d1cSJulian Grajkowski  * @post
32978ee8d1cSJulian Grajkowski  *      None
33078ee8d1cSJulian Grajkowski  * @see
33178ee8d1cSJulian Grajkowski  *      None
33278ee8d1cSJulian Grajkowski  *
33378ee8d1cSJulian Grajkowski  *****************************************************************************/
33478ee8d1cSJulian Grajkowski CpaStatus
33578ee8d1cSJulian Grajkowski cpaCySetAddressTranslation(const CpaInstanceHandle instanceHandle,
33678ee8d1cSJulian Grajkowski                            CpaVirtualToPhysical virtual2Physical);
33778ee8d1cSJulian Grajkowski 
33878ee8d1cSJulian Grajkowski #ifdef __cplusplus
33978ee8d1cSJulian Grajkowski } /* close the extern "C" { */
34078ee8d1cSJulian Grajkowski #endif
34178ee8d1cSJulian Grajkowski 
34278ee8d1cSJulian Grajkowski #endif /*CPA_CY_IM_H_*/
343