1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /**
4  ***************************************************************************
5  * @file icp_sal_user.h
6  *
7  * @ingroup SalUser
8  *
9  * User space process init and shutdown functions.
10  *
11  ***************************************************************************/
12 
13 #ifndef ICP_SAL_USER_H
14 #define ICP_SAL_USER_H
15 
16 /*************************************************************************
17   * @ingroup SalUser
18   * @description
19   *    This function initialises and starts user space service access layer
20   *    (SAL) - it registers SAL with ADF and initialises the ADF proxy.
21   *    This function must only be called once per user space process.
22   *
23   * @context
24   *      This function is called from the user process context
25   *
26   * @assumptions
27   *      None
28   * @sideEffects
29   *      None
30   * @reentrant
31   *      No
32   * @threadSafe
33   *      Yes
34   *
35   * @param[in] pProcessName           Process address space name described in
36   *                                   the config file for this device
37   *
38   * @retval CPA_STATUS_SUCCESS        No error
39   * @retval CPA_STATUS_FAIL           Operation failed
40   *
41   *************************************************************************/
42 CpaStatus icp_sal_userStart(const char *pProcessName);
43 
44 /*************************************************************************
45   * @ingroup SalUser
46   * @description
47   *    This function is to be used with simplified config file, where user
48   *    defines many user space processes. The driver generates unique
49   *    process names based on the pProcessName provided.
50   *    For example:
51   *    If a config file in simplified format contains:
52   *    [SSL]
53   *    NumProcesses = 3
54   *
55   *    Then three internal sections will be generated and the three
56   *    applications can be started at a given time. Each application can call
57   *    icp_sal_userStartMultiProcess("SSL"). In this case the driver will
58   *    figure out the unique name to use for each process.
59   *
60   * @context
61   *      This function is called from the user process context
62   *
63   * @assumptions
64   *      None
65   * @sideEffects
66   *      None
67   * @reentrant
68   *      No
69   * @threadSafe
70   *      Yes
71   *
72   * @param[in] pProcessName           Process address space name described in
73   *                                   the new format of the config file
74   *                                   for this device.
75   *
76   * @param[in] limitDevAccess         Specifies if the address space is limited
77   *                                   to one device (true) or if it spans
78   *                                   accross multiple devices.
79   *
80   * @retval CPA_STATUS_SUCCESS        No error
81   * @retval CPA_STATUS_FAIL           Operation failed. In this case user
82   *                                   can wait and retry.
83   *
84   *************************************************************************/
85 CpaStatus icp_sal_userStartMultiProcess(const char *pProcessName,
86 					CpaBoolean limitDevAccess);
87 
88 /*************************************************************************
89  * @ingroup SalUser
90  * @description
91  *    This function stops and shuts down user space SAL
92  *     - it deregisters SAL with ADF and shuts down ADF proxy
93  *
94  * @context
95  *      This function is called from the user process context
96  *
97  * @assumptions
98  *      None
99  * @sideEffects
100  *      None
101  * @reentrant
102  *      No
103  * @threadSafe
104  *      Yes
105  *
106  * @retval CPA_STATUS_SUCCESS        No error
107  * @retval CPA_STATUS_FAIL           Operation failed
108  *
109  ************************************************************************/
110 CpaStatus icp_sal_userStop(void);
111 
112 /*************************************************************************
113   * @ingroup SalUser
114   * @description
115   *    This function gets the number of the available dynamic allocated
116   *    crypto instances
117   *
118   * @context
119   *      This function is called from the user process context
120   *
121   * @assumptions
122   *      None
123   * @sideEffects
124   *      None
125   * @reentrant
126   *      No
127   * @threadSafe
128   *      Yes
129   *
130   * @retval CPA_STATUS_SUCCESS        No error
131   * @retval CPA_STATUS_FAIL           Operation failed
132   *
133   ************************************************************************/
134 CpaStatus icp_sal_userCyGetAvailableNumDynInstances(Cpa32U *pNumCyInstances);
135 
136 /*************************************************************************
137   * @ingroup SalUser
138   * @description
139   *    This function gets the number of the available dynamic allocated
140   *    compression instances
141   *
142   * @context
143   *      This function is called from the user process context
144   *
145   * @assumptions
146   *      None
147   * @sideEffects
148   *      None
149   * @reentrant
150   *      No
151   * @threadSafe
152   *      Yes
153   *
154   * @retval CPA_STATUS_SUCCESS        No error
155   * @retval CPA_STATUS_FAIL           Operation failed
156   *
157   ************************************************************************/
158 CpaStatus icp_sal_userDcGetAvailableNumDynInstances(Cpa32U *pNumDcInstances);
159 
160 /*************************************************************************
161   * @ingroup SalUser
162   * @description
163   *    This function gets the number of the available dynamic allocated
164   *    crypto instances which are from the specific device package.
165   *
166   * @context
167   *      This function is called from the user process context
168   *
169   * @assumptions
170   *      None
171   * @sideEffects
172   *      None
173   * @reentrant
174   *      No
175   * @threadSafe
176   *      Yes
177   *
178   * @retval CPA_STATUS_SUCCESS        No error
179   * @retval CPA_STATUS_FAIL           Operation failed
180   *
181   ************************************************************************/
182 CpaStatus
183 icp_sal_userCyGetAvailableNumDynInstancesByDevPkg(Cpa32U *pNumCyInstances,
184 						  Cpa32U devPkgID);
185 
186 /*************************************************************************
187   * @ingroup SalUser
188   * @description
189   *    This function gets the number of the available dynamic allocated
190   *    crypto instances which are from the specific device package and specific
191   *    accelerator.
192   *
193   * @context
194   *      This function is called from the user process context
195   *
196   * @assumptions
197   *      None
198   * @sideEffects
199   *      None
200   * @reentrant
201   *      No
202   * @threadSafe
203   *      Yes
204   *
205   * @retval CPA_STATUS_SUCCESS        No error
206   * @retval CPA_STATUS_FAIL           Operation failed
207   *
208   ************************************************************************/
209 CpaStatus
210 icp_sal_userCyGetAvailableNumDynInstancesByPkgAccel(Cpa32U *pNumCyInstances,
211 						    Cpa32U devPkgID,
212 						    Cpa32U accelerator_number);
213 
214 /*************************************************************************
215   * @ingroup SalUser
216   * @description
217   *    This function gets the number of the available dynamic allocated
218   *    compression instances which are from the specific device package.
219   *
220   * @context
221   *      This function is called from the user process context
222   *
223   * @assumptions
224   *      None
225   * @sideEffects
226   *      None
227   * @reentrant
228   *      No
229   * @threadSafe
230   *      Yes
231   *
232   * @retval CPA_STATUS_SUCCESS        No error
233   * @retval CPA_STATUS_FAIL           Operation failed
234   *
235   ************************************************************************/
236 CpaStatus
237 icp_sal_userDcGetAvailableNumDynInstancesByDevPkg(Cpa32U *pNumDcInstances,
238 						  Cpa32U devPkgID);
239 
240 /*************************************************************************
241   * @ingroup SalUser
242   * @description
243   *    This function allocates crypto instances
244   *    from dynamic crypto instance pool
245   *     - it adds new allocated instances into crypto_services
246   *     - it initializes new allocated instances
247   *     - it starts new allocated instances
248   *
249   * @context
250   *      This function is called from the user process context
251   *
252   * @assumptions
253   *      None
254   * @sideEffects
255   *      None
256   * @reentrant
257   *      No
258   * @threadSafe
259   *      Yes
260   *
261   * @retval CPA_STATUS_SUCCESS        No error
262   * @retval CPA_STATUS_FAIL           Operation failed
263   *
264   ************************************************************************/
265 CpaStatus icp_sal_userCyInstancesAlloc(Cpa32U numCyInstances,
266 				       CpaInstanceHandle *pCyInstances);
267 
268 /*************************************************************************
269   * @ingroup SalUser
270   * @description
271   *    This function allocates crypto instances
272   *    from dynamic crypto instance pool
273   *    which are from the specific device package.
274   *     - it adds new allocated instances into crypto_services
275   *     - it initializes new allocated instances
276   *     - it starts new allocated instances
277   *
278   * @context
279   *      This function is called from the user process context
280   *
281   * @assumptions
282   *      None
283   * @sideEffects
284   *      None
285   * @reentrant
286   *      No
287   * @threadSafe
288   *      Yes
289   *
290   * @retval CPA_STATUS_SUCCESS        No error
291   * @retval CPA_STATUS_FAIL           Operation failed
292   *
293   ************************************************************************/
294 CpaStatus icp_sal_userCyInstancesAllocByDevPkg(Cpa32U numCyInstances,
295 					       CpaInstanceHandle *pCyInstances,
296 					       Cpa32U devPkgID);
297 
298 /*************************************************************************
299   * @ingroup SalUser
300   * @description
301   *    This function allocates crypto instances
302   *    from dynamic crypto instance pool
303   *    which are from the specific device package and specific accelerator
304   *     - it adds new allocated instances into crypto_services
305   *     - it initializes new allocated instances
306   *     - it starts new allocated instances
307   *
308   * @context
309   *      This function is called from the user process context
310   *
311   * @assumptions
312   *      None
313   * @sideEffects
314   *      None
315   * @reentrant
316   *      No
317   * @threadSafe
318   *      Yes
319   *
320   * @retval CPA_STATUS_SUCCESS        No error
321   * @retval CPA_STATUS_FAIL           Operation failed
322   *
323   ************************************************************************/
324 CpaStatus
325 icp_sal_userCyInstancesAllocByPkgAccel(Cpa32U numCyInstances,
326 				       CpaInstanceHandle *pCyInstances,
327 				       Cpa32U devPkgID,
328 				       Cpa32U accelerator_number);
329 
330 /*************************************************************************
331   * @ingroup SalUser
332   * @description
333   *    This function frees crypto instances allocated
334   *    from dynamic crypto instance pool
335   *     - it stops the instances
336   *     - it shutdowns the instances
337   *     - it removes the instances from crypto_services
338   *
339   * @context
340   *      This function is called from the user process context
341   *
342   * @assumptions
343   *      None
344   * @sideEffects
345   *      None
346   * @reentrant
347   *      No
348   * @threadSafe
349   *      Yes
350   *
351   * @retval CPA_STATUS_SUCCESS        No error
352   * @retval CPA_STATUS_FAIL           Operation failed
353   *
354   ************************************************************************/
355 CpaStatus icp_sal_userCyFreeInstances(Cpa32U numCyInstances,
356 				      CpaInstanceHandle *pCyInstances);
357 
358 /*************************************************************************
359   * @ingroup SalUser
360   * @description
361   *    This function allocates compression instances
362   *    from dynamic compression instance pool
363   *     - it adds new allocated instances into compression_services
364   *     - it initializes new allocated instances
365   *     - it starts new allocated instances
366   *
367   * @context
368   *      This function is called from the user process context
369   *
370   * @assumptions
371   *      None
372   * @sideEffects
373   *      None
374   * @reentrant
375   *      No
376   * @threadSafe
377   *      Yes
378   *
379   * @retval CPA_STATUS_SUCCESS        No error
380   * @retval CPA_STATUS_FAIL           Operation failed
381   *
382   ************************************************************************/
383 CpaStatus icp_sal_userDcInstancesAlloc(Cpa32U numDcInstances,
384 				       CpaInstanceHandle *pDcInstances);
385 
386 /*************************************************************************
387   * @ingroup SalUser
388   * @description
389   *    This function allocates compression instances
390   *    from dynamic compression instance pool
391   *    which are from the specific device package.
392   *     - it adds new allocated instances into compression_services
393   *     - it initializes new allocated instances
394   *     - it starts new allocated instances
395   *
396   * @context
397   *      This function is called from the user process context
398   *
399   * @assumptions
400   *      None
401   * @sideEffects
402   *      None
403   * @reentrant
404   *      No
405   * @threadSafe
406   *      Yes
407   *
408   * @retval CPA_STATUS_SUCCESS        No error
409   * @retval CPA_STATUS_FAIL           Operation failed
410   *
411   ************************************************************************/
412 CpaStatus icp_sal_userDcInstancesAllocByDevPkg(Cpa32U numDcInstances,
413 					       CpaInstanceHandle *pDcInstances,
414 					       Cpa32U devPkgID);
415 
416 /*************************************************************************
417   * @ingroup SalUser
418   * @description
419   *    This function frees compression instances allocated
420   *    from dynamic compression instance pool
421   *     - it stops the instances
422   *     - it shutdowns the instances
423   *     - it removes the instances from compression_services
424   *
425   * @context
426   *      This function is called from the user process context
427   *
428   * @assumptions
429   *      None
430   * @sideEffects
431   *      None
432   * @reentrant
433   *      No
434   * @threadSafe
435   *      Yes
436   *
437   * @retval CPA_STATUS_SUCCESS        No error
438   * @retval CPA_STATUS_FAIL           Operation failed
439   *
440   ************************************************************************/
441 CpaStatus icp_sal_userDcFreeInstances(Cpa32U numDcInstances,
442 				      CpaInstanceHandle *pDcInstances);
443 
444 /*************************************************************************
445  * @ingroup SalUser
446  * @description
447  *    This function checks if new devices have been started and if so
448  *    starts to use them.
449  *
450  * @context
451  *      This function is called from the user process context
452  *      in threadless mode
453  *
454  * @assumptions
455  *      None
456  * @sideEffects
457  *      None
458  * @reentrant
459  *      No
460  * @threadSafe
461  *      No
462  *
463  * @retval CPA_STATUS_SUCCESS        No error
464  * @retval CPA_STATUS_FAIL           Operation failed
465  *
466  ************************************************************************/
467 CpaStatus icp_sal_find_new_devices(void);
468 
469 /*************************************************************************
470  * @ingroup SalUser
471  * @description
472  *    This function polls device events.
473  *
474  * @context
475  *      This function is called from the user process context
476  *      in threadless mode
477  *
478  * @assumptions
479  *      None
480  * @sideEffects
481  *      In case a device has beed stoped or restarted the application
482  *      will get restarting/stop/shutdown events
483  * @reentrant
484  *      No
485  * @threadSafe
486  *      No
487  *
488  * @retval CPA_STATUS_SUCCESS        No error
489  * @retval CPA_STATUS_FAIL           Operation failed
490  *
491  ************************************************************************/
492 CpaStatus icp_sal_poll_device_events(void);
493 
494 /*
495  * icp_adf_check_device
496  *
497  * @description:
498  *  This function checks the status of the firmware/hardware for a given device.
499  *  This function is used as part of the heartbeat functionality.
500  *
501  * @context
502  *      This function is called from the user process context
503  * @assumptions
504  *      None
505  * @sideEffects
506  *      In case a device is unresponsive the device will
507  *      be restarted.
508  * @reentrant
509  *      No
510  * @threadSafe
511  *      Yes
512  *
513  * @param[in] accelId                Device Id.
514  * @retval CPA_STATUS_SUCCESS        No error
515  * @retval CPA_STATUS_FAIL           Operation failed
516  */
517 CpaStatus icp_sal_check_device(Cpa32U accelId);
518 
519 /*
520  * icp_adf_check_all_devices
521  *
522  * @description:
523  *  This function checks the status of the firmware/hardware for all devices.
524  *  This function is used as part of the heartbeat functionality.
525  *
526  * @context
527  *      This function is called from the user process context
528  * @assumptions
529  *      None
530  * @sideEffects
531  *      In case a device is unresponsive the device will
532  *      be restarted.
533  * @reentrant
534  *      No
535  * @threadSafe
536  *      Yes
537  *
538  * @retval CPA_STATUS_SUCCESS        No error
539  * @retval CPA_STATUS_FAIL           Operation failed
540  */
541 CpaStatus icp_sal_check_all_devices(void);
542 
543 /*
544  * @ingroup icp_sal_user
545  * @description
546  *      This is a stub function to send messages to VF
547  *
548  * @context
549  *      None
550  *
551  * @assumptions
552  *      None
553  * @sideEffects
554  *      None
555  * @reentrant
556  *      Yes
557  * @threadSafe
558  *      Yes
559  *
560 */
561 CpaStatus icp_sal_userSendMsgToVf(Cpa32U accelId, Cpa32U vfNum, Cpa32U message);
562 
563 /*
564  * @ingroup icp_sal_user
565  * @description
566  *      This is a stub function to send messages to PF
567  *
568  * @context
569  *      None
570  *
571  * @assumptions
572  *      None
573  * @sideEffects
574  *      None
575  * @reentrant
576  *      Yes
577  * @threadSafe
578  *      Yes
579  *
580 */
581 CpaStatus icp_sal_userSendMsgToPf(Cpa32U accelId, Cpa32U message);
582 
583 /*
584  * @ingroup icp_sal_user
585  * @description
586  *      This is a stub function to get messages from VF
587  *
588  * @context
589  *      None
590  *
591  * @assumptions
592  *      None
593  * @sideEffects
594  *      None
595  * @reentrant
596  *      Yes
597  * @threadSafe
598  *      Yes
599  *
600 */
601 CpaStatus icp_sal_userGetMsgFromVf(Cpa32U accelId,
602 				   Cpa32U vfNum,
603 				   Cpa32U *message,
604 				   Cpa32U *messageCounter);
605 
606 /*
607  * @ingroup icp_sal_user
608  * @description
609  *      This is a stub function to get messages from PF
610  *
611  * @context
612  *      None
613  *
614  * @assumptions
615  *      None
616  * @sideEffects
617  *      None
618  * @reentrant
619  *      Yes
620  * @threadSafe
621  *      Yes
622  *
623 */
624 CpaStatus icp_sal_userGetMsgFromPf(Cpa32U accelId,
625 				   Cpa32U *message,
626 				   Cpa32U *messageCounter);
627 
628 /*
629  * @ingroup icp_sal_user
630  * @description
631  *      This is a stub function to get pfvf comms status
632  *
633  * @context
634  *      None
635  *
636  * @assumptions
637  *      None
638  * @sideEffects
639  *      None
640  * @reentrant
641  *      Yes
642  * @threadSafe
643  *      Yes
644  *
645 */
646 CpaStatus icp_sal_userGetPfVfcommsStatus(CpaBoolean *unreadMessage);
647 
648 /*
649  * @ingroup icp_sal_user
650  * @description
651  *      This is a stub function to reset the device
652  *
653  * @context
654  *     None
655  *
656  * @assumptions
657  *      None
658  * @sideEffects
659  *      None
660  * @reentrant
661  *      Yes
662  * @threadSafe
663  *      Yes
664  *
665 */
666 CpaStatus icp_sal_reset_device(Cpa32U accelId);
667 
668 /**
669  *****************************************************************************
670  * @ingroup icp_sal_user
671  *      Retrieve number of in flight requests for a nrbg tx ring
672  *      from a crypto instance (Traditional API).
673  *
674  * @description
675  *      This function is a part of back-pressure mechanism.
676  *      Applications can query for inflight requests in
677  *      the appropriate service/ring on each instance
678  *      and select any instance with sufficient space or
679  *      the instance with the lowest number.
680  *
681  * @assumptions
682  *      None
683  * @sideEffects
684  *      None
685  * @blocking
686  *      None
687  * @reentrant
688  *      No
689  * @threadSafe
690  *      Yes
691  *
692  * @param[in]  instanceHandle         Crypto API instance handle.
693  * @param[out] maxInflightRequests    Maximal number of in flight requests.
694  * @param[out] numInflightRequests    Current number of in flight requests.
695  *
696  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
697  * @retval CPA_STATUS_FAIL           Function failed.
698  * @pre
699  *      None
700  * @post
701  *      None
702  * @see
703  *      None
704  *
705  *****************************************************************************/
706 CpaStatus icp_sal_NrbgGetInflightRequests(CpaInstanceHandle instanceHandle,
707 					  Cpa32U *maxInflightRequests,
708 					  Cpa32U *numInflightRequests);
709 
710 /**
711  *****************************************************************************
712  * @ingroup icp_sal_user
713  *      Retrieve number of in flight requests for a symmetric tx ring
714  *      from a crypto instance (Traditional API).
715  *
716  * @description
717  *      This function is a part of back-pressure mechanism.
718  *      Applications can query for inflight requests in
719  *      the appropriate service/ring on each instance
720  *      and select any instance with sufficient space or
721  *      the instance with the lowest number.
722  *
723  * @assumptions
724  *      None
725  * @sideEffects
726  *      None
727  * @blocking
728  *      None
729  * @reentrant
730  *      No
731  * @threadSafe
732  *      Yes
733  *
734  * @param[in]  instanceHandle         Crypto API instance handle.
735  * @param[out] maxInflightRequests    Maximal number of in flight requests.
736  * @param[out] numInflightRequests    Current number of in flight requests.
737  *
738  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
739  * @retval CPA_STATUS_FAIL           Function failed.
740  * @pre
741  *      None
742  * @post
743  *      None
744  * @see
745  *      None
746  *
747  *****************************************************************************/
748 CpaStatus icp_sal_SymGetInflightRequests(CpaInstanceHandle instanceHandle,
749 					 Cpa32U *maxInflightRequests,
750 					 Cpa32U *numInflightRequests);
751 
752 /**
753  *****************************************************************************
754  * @ingroup icp_sal_user
755  *      Retrieve number of in flight requests for an asymmetric tx ring
756  *      from a crypto instance (Traditional API).
757  *
758  * @description
759  *      This function is a part of back-pressure mechanism.
760  *      Applications can query the appropriate service/ring on each instance
761  *      and select any instance with sufficient space or
762  *      the instance with the lowest number.
763  *
764  * @assumptions
765  *      None
766  * @sideEffects
767  *      None
768  * @blocking
769  *      None
770  * @reentrant
771  *      No
772  * @threadSafe
773  *      Yes
774  *
775  * @param[in]  instanceHandle         Crypto API instance handle.
776  * @param[out] maxInflightRequests    Maximal number of in flight requests.
777  * @param[out] numInflightRequests    Current number of in flight requests.
778  *
779  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
780  * @retval CPA_STATUS_FAIL           Function failed.
781  * @pre
782  *      None
783  * @post
784  *      None
785  * @see
786  *      None
787  *
788  *****************************************************************************/
789 CpaStatus icp_sal_AsymGetInflightRequests(CpaInstanceHandle instanceHandle,
790 					  Cpa32U *maxInflightRequests,
791 					  Cpa32U *numInflightRequests);
792 
793 /**
794  *****************************************************************************
795  * @ingroup icp_sal_user
796  *      Retrieve number of in flight requests for a symmetric tx ring
797  *      from a crypto instancei (Data Plane API).
798  *
799  * @description
800  *      This function is a part of back-pressure mechanism.
801  *      Applications can query the appropriate service/ring on each instance
802  *      and select any instance with sufficient space or
803  *      the instance with the lowest number.
804  *
805  * @assumptions
806  *      None
807  * @sideEffects
808  *      None
809  * @blocking
810  *      None
811  * @reentrant
812  *      No
813  * @threadSafe
814  *      Yes
815  *
816  * @param[in]  instanceHandle         Crypto API instance handle.
817  * @param[out] maxInflightRequests    Maximal number of in flight requests.
818  * @param[out] numInflightRequests    Current number of in flight requests.
819  *
820  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
821  * @retval CPA_STATUS_FAIL           Function failed.
822  * @pre
823  *      None
824  * @post
825  *      None
826  * @see
827  *      None
828  *
829  *****************************************************************************/
830 CpaStatus icp_sal_dp_SymGetInflightRequests(CpaInstanceHandle instanceHandle,
831 					    Cpa32U *maxInflightRequests,
832 					    Cpa32U *numInflightRequests);
833 
834 /**
835  *****************************************************************************
836  * @ingroup icp_sal_user
837  *      Updates the CSR with queued requests in the asymmetric tx ring.
838  *
839  * @description
840  *      The function writes current shadow tail pointer of the asymmetric
841  *      TX ring into ring's CSR. Updating the CSR will notify the HW that
842  *      there are request(s) queued to be processed. The CSR is updated
843  *      always, disregarding the current value of shadow tail pointer and
844  *      the current CSR's tail value.
845  *
846  * @assumptions
847  *      None
848  * @sideEffects
849  *      None
850  * @blocking
851  *      None
852  * @reentrant
853  *      No
854  * @threadSafe
855  *      Yes
856  *
857  * @param[in] instanceHandle         Crypto API instance handle.
858  *
859  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
860  * @retval CPA_STATUS_FAIL           Function failed.
861  * @pre
862  *      None
863  * @post
864  *      None
865  * @see
866  *      None
867  *
868  *****************************************************************************/
869 CpaStatus icp_sal_AsymPerformOpNow(CpaInstanceHandle instanceHandle);
870 
871 /**
872  *****************************************************************************
873  * @ingroup icp_sal_setForceAEADMACVerify
874  *      Sets forceAEADMacVerify for particular instance to force HW MAC
875  *      validation.
876  *
877  * @description
878  * 	By default HW MAC verification is set to CPA_TRUE - this utility
879  * 	function allows to change default behavior.
880  *
881  * @assumptions
882  *      None
883  * @sideEffects
884  *      None
885  * @blocking
886  *      None
887  * @reentrant
888  *      No
889  * @threadSafe
890  *      No
891  *
892  * @param[in] instanceHandle         Crypto API instance handle.
893  * @param[in] forceAEADMacVerify     new value
894  *
895  * @retval CPA_STATUS_SUCCESS        Function executed successfully.
896  * @retval CPA_STATUS_FAIL           Function failed.
897  * @pre
898  *      None
899  * @post
900  *      None
901  * @see
902  *      None
903  *
904  *****************************************************************************/
905 CpaStatus icp_sal_setForceAEADMACVerify(CpaInstanceHandle instanceHandle,
906 					CpaBoolean forceAEADMacVerify);
907 #endif
908