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