176c9379fSPablo de Lara /********************************************************************** 276c9379fSPablo de Lara Copyright(c) 2024 Intel Corporation All rights reserved. 376c9379fSPablo de Lara 476c9379fSPablo de Lara Redistribution and use in source and binary forms, with or without 576c9379fSPablo de Lara modification, are permitted provided that the following conditions 676c9379fSPablo de Lara are met: 776c9379fSPablo de Lara * Redistributions of source code must retain the above copyright 876c9379fSPablo de Lara notice, this list of conditions and the following disclaimer. 976c9379fSPablo de Lara * Redistributions in binary form must reproduce the above copyright 1076c9379fSPablo de Lara notice, this list of conditions and the following disclaimer in 1176c9379fSPablo de Lara the documentation and/or other materials provided with the 1276c9379fSPablo de Lara distribution. 1376c9379fSPablo de Lara * Neither the name of Intel Corporation nor the names of its 1476c9379fSPablo de Lara contributors may be used to endorse or promote products derived 1576c9379fSPablo de Lara from this software without specific prior written permission. 1676c9379fSPablo de Lara 1776c9379fSPablo de Lara THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1876c9379fSPablo de Lara "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1976c9379fSPablo de Lara LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2076c9379fSPablo de Lara A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2176c9379fSPablo de Lara OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2276c9379fSPablo de Lara SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2376c9379fSPablo de Lara LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2476c9379fSPablo de Lara DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2576c9379fSPablo de Lara THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2676c9379fSPablo de Lara (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2776c9379fSPablo de Lara OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2876c9379fSPablo de Lara **********************************************************************/ 2976c9379fSPablo de Lara 3076c9379fSPablo de Lara #ifndef _SHA1_MB_INTERNAL_H_ 3176c9379fSPablo de Lara #define _SHA1_MB_INTERNAL_H_ 3276c9379fSPablo de Lara 3376c9379fSPablo de Lara /** 3476c9379fSPablo de Lara * @file sha1_mb_internal.h 3576c9379fSPablo de Lara * @brief Multi-buffer CTX API function prototypes and structures 3676c9379fSPablo de Lara * 3776c9379fSPablo de Lara */ 3876c9379fSPablo de Lara 3976c9379fSPablo de Lara #include <stdint.h> 4076c9379fSPablo de Lara #include <string.h> 4176c9379fSPablo de Lara 4276c9379fSPablo de Lara #include "sha1_mb.h" 4376c9379fSPablo de Lara #include "multi_buffer.h" 4476c9379fSPablo de Lara #include "types.h" 4576c9379fSPablo de Lara 4676c9379fSPablo de Lara #ifdef __cplusplus 4776c9379fSPablo de Lara extern "C" { 4876c9379fSPablo de Lara #endif 4976c9379fSPablo de Lara 504d41f26cSPablo de Lara /* Hash Constants and Typedefs */ 510106da91SPablo de Lara #define ISAL_SHA1_LOG2_BLOCK_SIZE 6 520106da91SPablo de Lara #define ISAL_SHA1_INITIAL_DIGEST 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 530106da91SPablo de Lara #define ISAL_SHA1_X8_LANES 8 544d41f26cSPablo de Lara 557f87eab4SPablo de Lara /** 567f87eab4SPablo de Lara * @brief Initialize the SHA1 multi-buffer manager structure. 577f87eab4SPablo de Lara * @requires SSE4.1 or AVX or AVX2 or AVX512 587f87eab4SPablo de Lara * 597f87eab4SPablo de Lara * @param mgr Structure holding context level state info 607f87eab4SPablo de Lara * @returns void 617f87eab4SPablo de Lara */ 627f87eab4SPablo de Lara void 630106da91SPablo de Lara _sha1_ctx_mgr_init(ISAL_SHA1_HASH_CTX_MGR *mgr); 647f87eab4SPablo de Lara 657f87eab4SPablo de Lara /** 667f87eab4SPablo de Lara * @brief Submit a new SHA1 job to the multi-buffer manager. 677f87eab4SPablo de Lara * @requires SSE4.1 or AVX or AVX2 or AVX512 687f87eab4SPablo de Lara * 697f87eab4SPablo de Lara * @param mgr Structure holding context level state info 707f87eab4SPablo de Lara * @param ctx Structure holding ctx job info 717f87eab4SPablo de Lara * @param buffer Pointer to buffer to be processed 727f87eab4SPablo de Lara * @param len Length of buffer (in bytes) to be processed 737f87eab4SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 747f87eab4SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 757f87eab4SPablo de Lara */ 760106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 770106da91SPablo de Lara _sha1_ctx_mgr_submit(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer, 788cb7fe78SPablo de Lara uint32_t len, ISAL_HASH_CTX_FLAG flags); 797f87eab4SPablo de Lara 807f87eab4SPablo de Lara /** 817f87eab4SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 827f87eab4SPablo de Lara * @requires SSE4.1 or AVX or AVX2 or AVX512 837f87eab4SPablo de Lara * 847f87eab4SPablo de Lara * @param mgr Structure holding context level state info 857f87eab4SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 867f87eab4SPablo de Lara */ 870106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 880106da91SPablo de Lara _sha1_ctx_mgr_flush(ISAL_SHA1_HASH_CTX_MGR *mgr); 897f87eab4SPablo de Lara 9076c9379fSPablo de Lara /******************************************************************* 913113c339SPablo de Lara * Context level API function prototypes 923113c339SPablo de Lara ******************************************************************/ 933113c339SPablo de Lara 943113c339SPablo de Lara /** 953113c339SPablo de Lara * @brief Initialize the context level SHA1 multi-buffer manager structure. 963113c339SPablo de Lara * @requires SSE4.1 973113c339SPablo de Lara * 983113c339SPablo de Lara * @param mgr Structure holding context level state info 993113c339SPablo de Lara * @returns void 1003113c339SPablo de Lara */ 1013113c339SPablo de Lara void 1020106da91SPablo de Lara _sha1_ctx_mgr_init_sse(ISAL_SHA1_HASH_CTX_MGR *mgr); 1033113c339SPablo de Lara 1043113c339SPablo de Lara /** 1053113c339SPablo de Lara * @brief Submit a new SHA1 job to the context level multi-buffer manager. 1063113c339SPablo de Lara * @requires SSE4.1 1073113c339SPablo de Lara * 1083113c339SPablo de Lara * @param mgr Structure holding context level state info 1093113c339SPablo de Lara * @param ctx Structure holding ctx job info 1103113c339SPablo de Lara * @param buffer Pointer to buffer to be processed 1113113c339SPablo de Lara * @param len Length of buffer (in bytes) to be processed 1123113c339SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 1133113c339SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 1143113c339SPablo de Lara */ 1150106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 1160106da91SPablo de Lara _sha1_ctx_mgr_submit_sse(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer, 1178cb7fe78SPablo de Lara uint32_t len, ISAL_HASH_CTX_FLAG flags); 1183113c339SPablo de Lara 1193113c339SPablo de Lara /** 1203113c339SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 1213113c339SPablo de Lara * @requires SSE4.1 1223113c339SPablo de Lara * 1233113c339SPablo de Lara * @param mgr Structure holding context level state info 1243113c339SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 1253113c339SPablo de Lara */ 1260106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 1270106da91SPablo de Lara _sha1_ctx_mgr_flush_sse(ISAL_SHA1_HASH_CTX_MGR *mgr); 1283113c339SPablo de Lara 1293113c339SPablo de Lara /** 1303113c339SPablo de Lara * @brief Initialize the context level SHA1 multi-buffer manager structure. 1313113c339SPablo de Lara * @requires SSE4.1 and SHANI 1323113c339SPablo de Lara * 1333113c339SPablo de Lara * @param mgr Structure holding context level state info 1343113c339SPablo de Lara * @returns void 1353113c339SPablo de Lara */ 1363113c339SPablo de Lara void 1370106da91SPablo de Lara _sha1_ctx_mgr_init_sse_ni(ISAL_SHA1_HASH_CTX_MGR *mgr); 1383113c339SPablo de Lara 1393113c339SPablo de Lara /** 1403113c339SPablo de Lara * @brief Submit a new SHA1 job to the context level multi-buffer manager. 1413113c339SPablo de Lara * @requires SSE4.1 and SHANI 1423113c339SPablo de Lara * 1433113c339SPablo de Lara * @param mgr Structure holding context level state info 1443113c339SPablo de Lara * @param ctx Structure holding ctx job info 1453113c339SPablo de Lara * @param buffer Pointer to buffer to be processed 1463113c339SPablo de Lara * @param len Length of buffer (in bytes) to be processed 1473113c339SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 1483113c339SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 1493113c339SPablo de Lara */ 1500106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 1510106da91SPablo de Lara _sha1_ctx_mgr_submit_sse_ni(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, 1528cb7fe78SPablo de Lara const void *buffer, uint32_t len, ISAL_HASH_CTX_FLAG flags); 1533113c339SPablo de Lara 1543113c339SPablo de Lara /** 1553113c339SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 1563113c339SPablo de Lara * @requires SSE4.1 and SHANI 1573113c339SPablo de Lara * 1583113c339SPablo de Lara * @param mgr Structure holding context level state info 1593113c339SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 1603113c339SPablo de Lara */ 1610106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 1620106da91SPablo de Lara _sha1_ctx_mgr_flush_sse_ni(ISAL_SHA1_HASH_CTX_MGR *mgr); 1633113c339SPablo de Lara 1643113c339SPablo de Lara /** 1653113c339SPablo de Lara * @brief Initialize the SHA1 multi-buffer manager structure. 1663113c339SPablo de Lara * @requires AVX 1673113c339SPablo de Lara * 1683113c339SPablo de Lara * @param mgr Structure holding context level state info 1693113c339SPablo de Lara * @returns void 1703113c339SPablo de Lara */ 1713113c339SPablo de Lara void 1720106da91SPablo de Lara _sha1_ctx_mgr_init_avx(ISAL_SHA1_HASH_CTX_MGR *mgr); 1733113c339SPablo de Lara 1743113c339SPablo de Lara /** 1753113c339SPablo de Lara * @brief Submit a new SHA1 job to the multi-buffer manager. 1763113c339SPablo de Lara * @requires AVX 1773113c339SPablo de Lara * 1783113c339SPablo de Lara * @param mgr Structure holding context level state info 1793113c339SPablo de Lara * @param ctx Structure holding ctx job info 1803113c339SPablo de Lara * @param buffer Pointer to buffer to be processed 1813113c339SPablo de Lara * @param len Length of buffer (in bytes) to be processed 1823113c339SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 1833113c339SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 1843113c339SPablo de Lara */ 1850106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 1860106da91SPablo de Lara _sha1_ctx_mgr_submit_avx(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer, 1878cb7fe78SPablo de Lara uint32_t len, ISAL_HASH_CTX_FLAG flags); 1883113c339SPablo de Lara 1893113c339SPablo de Lara /** 1903113c339SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 1913113c339SPablo de Lara * @requires AVX 1923113c339SPablo de Lara * 1933113c339SPablo de Lara * @param mgr Structure holding context level state info 1943113c339SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 1953113c339SPablo de Lara */ 1960106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 1970106da91SPablo de Lara _sha1_ctx_mgr_flush_avx(ISAL_SHA1_HASH_CTX_MGR *mgr); 1983113c339SPablo de Lara 1993113c339SPablo de Lara /** 2003113c339SPablo de Lara * @brief Initialize the SHA1 multi-buffer manager structure. 2013113c339SPablo de Lara * @requires AVX2 2023113c339SPablo de Lara * 2033113c339SPablo de Lara * @param mgr Structure holding context level state info 2043113c339SPablo de Lara * @returns void 2053113c339SPablo de Lara */ 2063113c339SPablo de Lara void 2070106da91SPablo de Lara _sha1_ctx_mgr_init_avx2(ISAL_SHA1_HASH_CTX_MGR *mgr); 2083113c339SPablo de Lara 2093113c339SPablo de Lara /** 2103113c339SPablo de Lara * @brief Submit a new SHA1 job to the multi-buffer manager. 2113113c339SPablo de Lara * @requires AVX2 2123113c339SPablo de Lara * 2133113c339SPablo de Lara * @param mgr Structure holding context level state info 2143113c339SPablo de Lara * @param ctx Structure holding ctx job info 2153113c339SPablo de Lara * @param buffer Pointer to buffer to be processed 2163113c339SPablo de Lara * @param len Length of buffer (in bytes) to be processed 2173113c339SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 2183113c339SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 2193113c339SPablo de Lara */ 2200106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 2210106da91SPablo de Lara _sha1_ctx_mgr_submit_avx2(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, const void *buffer, 2228cb7fe78SPablo de Lara uint32_t len, ISAL_HASH_CTX_FLAG flags); 2233113c339SPablo de Lara 2243113c339SPablo de Lara /** 2253113c339SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 2263113c339SPablo de Lara * @requires AVX2 2273113c339SPablo de Lara * 2283113c339SPablo de Lara * @param mgr Structure holding context level state info 2293113c339SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 2303113c339SPablo de Lara */ 2310106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 2320106da91SPablo de Lara _sha1_ctx_mgr_flush_avx2(ISAL_SHA1_HASH_CTX_MGR *mgr); 2333113c339SPablo de Lara 2343113c339SPablo de Lara /** 2353113c339SPablo de Lara * @brief Initialize the SHA1 multi-buffer manager structure. 2363113c339SPablo de Lara * @requires AVX512 2373113c339SPablo de Lara * 2383113c339SPablo de Lara * @param mgr Structure holding context level state info 2393113c339SPablo de Lara * @returns void 2403113c339SPablo de Lara */ 2413113c339SPablo de Lara void 2420106da91SPablo de Lara _sha1_ctx_mgr_init_avx512(ISAL_SHA1_HASH_CTX_MGR *mgr); 2433113c339SPablo de Lara 2443113c339SPablo de Lara /** 2453113c339SPablo de Lara * @brief Submit a new SHA1 job to the multi-buffer manager. 2463113c339SPablo de Lara * @requires AVX512 2473113c339SPablo de Lara * 2483113c339SPablo de Lara * @param mgr Structure holding context level state info 2493113c339SPablo de Lara * @param ctx Structure holding ctx job info 2503113c339SPablo de Lara * @param buffer Pointer to buffer to be processed 2513113c339SPablo de Lara * @param len Length of buffer (in bytes) to be processed 2523113c339SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 2533113c339SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 2543113c339SPablo de Lara */ 2550106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 2560106da91SPablo de Lara _sha1_ctx_mgr_submit_avx512(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, 2578cb7fe78SPablo de Lara const void *buffer, uint32_t len, ISAL_HASH_CTX_FLAG flags); 2583113c339SPablo de Lara 2593113c339SPablo de Lara /** 2603113c339SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 2613113c339SPablo de Lara * @requires AVX512 2623113c339SPablo de Lara * 2633113c339SPablo de Lara * @param mgr Structure holding context level state info 2643113c339SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 2653113c339SPablo de Lara */ 2660106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 2670106da91SPablo de Lara _sha1_ctx_mgr_flush_avx512(ISAL_SHA1_HASH_CTX_MGR *mgr); 2683113c339SPablo de Lara 2693113c339SPablo de Lara /** 2703113c339SPablo de Lara * @brief Initialize the SHA1 multi-buffer manager structure. 2713113c339SPablo de Lara * @requires AVX512 and SHANI 2723113c339SPablo de Lara * 2733113c339SPablo de Lara * @param mgr Structure holding context level state info 2743113c339SPablo de Lara * @returns void 2753113c339SPablo de Lara */ 2763113c339SPablo de Lara void 2770106da91SPablo de Lara _sha1_ctx_mgr_init_avx512_ni(ISAL_SHA1_HASH_CTX_MGR *mgr); 2783113c339SPablo de Lara 2793113c339SPablo de Lara /** 2803113c339SPablo de Lara * @brief Submit a new SHA1 job to the multi-buffer manager. 2813113c339SPablo de Lara * @requires AVX512 and SHANI 2823113c339SPablo de Lara * 2833113c339SPablo de Lara * @param mgr Structure holding context level state info 2843113c339SPablo de Lara * @param ctx Structure holding ctx job info 2853113c339SPablo de Lara * @param buffer Pointer to buffer to be processed 2863113c339SPablo de Lara * @param len Length of buffer (in bytes) to be processed 2873113c339SPablo de Lara * @param flags Input flag specifying job type (first, update, last or entire) 2883113c339SPablo de Lara * @returns NULL if no jobs complete or pointer to jobs structure. 2893113c339SPablo de Lara */ 2900106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 2910106da91SPablo de Lara _sha1_ctx_mgr_submit_avx512_ni(ISAL_SHA1_HASH_CTX_MGR *mgr, ISAL_SHA1_HASH_CTX *ctx, 2928cb7fe78SPablo de Lara const void *buffer, uint32_t len, ISAL_HASH_CTX_FLAG flags); 2933113c339SPablo de Lara 2943113c339SPablo de Lara /** 2953113c339SPablo de Lara * @brief Finish all submitted SHA1 jobs and return when complete. 2963113c339SPablo de Lara * @requires AVX512 and SHANI 2973113c339SPablo de Lara * 2983113c339SPablo de Lara * @param mgr Structure holding context level state info 2993113c339SPablo de Lara * @returns NULL if no jobs to complete or pointer to jobs structure. 3003113c339SPablo de Lara */ 3010106da91SPablo de Lara ISAL_SHA1_HASH_CTX * 3020106da91SPablo de Lara _sha1_ctx_mgr_flush_avx512_ni(ISAL_SHA1_HASH_CTX_MGR *mgr); 3033113c339SPablo de Lara 3043113c339SPablo de Lara /******************************************************************* 30576c9379fSPablo de Lara * Scheduler (internal) level out-of-order function prototypes 30676c9379fSPablo de Lara ******************************************************************/ 30776c9379fSPablo de Lara 30876c9379fSPablo de Lara void 3090106da91SPablo de Lara _sha1_mb_mgr_init_sse(ISAL_SHA1_MB_JOB_MGR *state); 3100106da91SPablo de Lara ISAL_SHA1_JOB * 3110106da91SPablo de Lara _sha1_mb_mgr_submit_sse(ISAL_SHA1_MB_JOB_MGR *state, ISAL_SHA1_JOB *job); 3120106da91SPablo de Lara ISAL_SHA1_JOB * 3130106da91SPablo de Lara _sha1_mb_mgr_flush_sse(ISAL_SHA1_MB_JOB_MGR *state); 31476c9379fSPablo de Lara 31576c9379fSPablo de Lara #define _sha1_mb_mgr_init_avx _sha1_mb_mgr_init_sse 3160106da91SPablo de Lara ISAL_SHA1_JOB * 3170106da91SPablo de Lara _sha1_mb_mgr_submit_avx(ISAL_SHA1_MB_JOB_MGR *state, ISAL_SHA1_JOB *job); 3180106da91SPablo de Lara ISAL_SHA1_JOB * 3190106da91SPablo de Lara _sha1_mb_mgr_flush_avx(ISAL_SHA1_MB_JOB_MGR *state); 32076c9379fSPablo de Lara 32176c9379fSPablo de Lara void 3220106da91SPablo de Lara _sha1_mb_mgr_init_avx2(ISAL_SHA1_MB_JOB_MGR *state); 3230106da91SPablo de Lara ISAL_SHA1_JOB * 3240106da91SPablo de Lara _sha1_mb_mgr_submit_avx2(ISAL_SHA1_MB_JOB_MGR *state, ISAL_SHA1_JOB *job); 3250106da91SPablo de Lara ISAL_SHA1_JOB * 3260106da91SPablo de Lara _sha1_mb_mgr_flush_avx2(ISAL_SHA1_MB_JOB_MGR *state); 32776c9379fSPablo de Lara 32876c9379fSPablo de Lara void 3290106da91SPablo de Lara _sha1_mb_mgr_init_avx512(ISAL_SHA1_MB_JOB_MGR *state); 3300106da91SPablo de Lara ISAL_SHA1_JOB * 3310106da91SPablo de Lara _sha1_mb_mgr_submit_avx512(ISAL_SHA1_MB_JOB_MGR *state, ISAL_SHA1_JOB *job); 3320106da91SPablo de Lara ISAL_SHA1_JOB * 3330106da91SPablo de Lara _sha1_mb_mgr_flush_avx512(ISAL_SHA1_MB_JOB_MGR *state); 33476c9379fSPablo de Lara 33576c9379fSPablo de Lara void 3360106da91SPablo de Lara _sha1_mb_mgr_init_sse_ni(ISAL_SHA1_MB_JOB_MGR *state); 3370106da91SPablo de Lara ISAL_SHA1_JOB * 3380106da91SPablo de Lara _sha1_mb_mgr_submit_sse_ni(ISAL_SHA1_MB_JOB_MGR *state, ISAL_SHA1_JOB *job); 3390106da91SPablo de Lara ISAL_SHA1_JOB * 3400106da91SPablo de Lara _sha1_mb_mgr_flush_sse_ni(ISAL_SHA1_MB_JOB_MGR *state); 34176c9379fSPablo de Lara 34276c9379fSPablo de Lara void 3430106da91SPablo de Lara _sha1_mb_mgr_init_avx512_ni(ISAL_SHA1_MB_JOB_MGR *state); 3440106da91SPablo de Lara ISAL_SHA1_JOB * 3450106da91SPablo de Lara _sha1_mb_mgr_submit_avx512_ni(ISAL_SHA1_MB_JOB_MGR *state, ISAL_SHA1_JOB *job); 3460106da91SPablo de Lara ISAL_SHA1_JOB * 3470106da91SPablo de Lara _sha1_mb_mgr_flush_avx512_ni(ISAL_SHA1_MB_JOB_MGR *state); 34876c9379fSPablo de Lara 34976c9379fSPablo de Lara #ifdef __cplusplus 35076c9379fSPablo de Lara } 35176c9379fSPablo de Lara #endif 35276c9379fSPablo de Lara 353*3c423071SPablo de Lara #endif // _SHA1_MB_INTERNAL_H_ 354