X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=drivers%2Fcrypto%2Faesni_mb%2Faesni_mb_ops.h;h=59c3ee1e9e5d632eb79e623d0b890ccc134ff457;hb=fca143f059a0bddd7d47b8dc2df646a891b0eb0f;hp=0c119bf1504cd4f3bc566e88b17e43c0a90521f9;hpb=ce3d555e43e3795b5d9507fcfc76b7a0a92fd0d6;p=deb_dpdk.git diff --git a/drivers/crypto/aesni_mb/aesni_mb_ops.h b/drivers/crypto/aesni_mb/aesni_mb_ops.h index 0c119bf1..59c3ee1e 100644 --- a/drivers/crypto/aesni_mb/aesni_mb_ops.h +++ b/drivers/crypto/aesni_mb/aesni_mb_ops.h @@ -44,29 +44,30 @@ enum aesni_mb_vector_mode { RTE_AESNI_MB_NOT_SUPPORTED = 0, RTE_AESNI_MB_SSE, RTE_AESNI_MB_AVX, - RTE_AESNI_MB_AVX2 + RTE_AESNI_MB_AVX2, + RTE_AESNI_MB_AVX512 }; -typedef void (*md5_one_block_t)(void *data, void *digest); +typedef void (*md5_one_block_t)(const void *data, void *digest); -typedef void (*sha1_one_block_t)(void *data, void *digest); -typedef void (*sha224_one_block_t)(void *data, void *digest); -typedef void (*sha256_one_block_t)(void *data, void *digest); -typedef void (*sha384_one_block_t)(void *data, void *digest); -typedef void (*sha512_one_block_t)(void *data, void *digest); +typedef void (*sha1_one_block_t)(const void *data, void *digest); +typedef void (*sha224_one_block_t)(const void *data, void *digest); +typedef void (*sha256_one_block_t)(const void *data, void *digest); +typedef void (*sha384_one_block_t)(const void *data, void *digest); +typedef void (*sha512_one_block_t)(const void *data, void *digest); typedef void (*aes_keyexp_128_t) - (void *key, void *enc_exp_keys, void *dec_exp_keys); + (const void *key, void *enc_exp_keys, void *dec_exp_keys); typedef void (*aes_keyexp_192_t) - (void *key, void *enc_exp_keys, void *dec_exp_keys); + (const void *key, void *enc_exp_keys, void *dec_exp_keys); typedef void (*aes_keyexp_256_t) - (void *key, void *enc_exp_keys, void *dec_exp_keys); + (const void *key, void *enc_exp_keys, void *dec_exp_keys); typedef void (*aes_xcbc_expand_key_t) - (void *key, void *exp_k1, void *k2, void *k3); + (const void *key, void *exp_k1, void *k2, void *k3); /** Multi-buffer library function pointer table */ -struct aesni_mb_ops { +struct aesni_mb_op_fns { struct { init_mb_mgr_t init_mgr; /**< Initialise scheduler */ @@ -115,7 +116,7 @@ struct aesni_mb_ops { }; -static const struct aesni_mb_ops job_ops[] = { +static const struct aesni_mb_op_fns job_ops[] = { [RTE_AESNI_MB_NOT_SUPPORTED] = { .job = { NULL @@ -203,6 +204,31 @@ static const struct aesni_mb_ops job_ops[] = { aes_xcbc_expand_key_avx2 } } + }, + [RTE_AESNI_MB_AVX512] = { + .job = { + init_mb_mgr_avx512, + get_next_job_avx512, + submit_job_avx512, + get_completed_job_avx512, + flush_job_avx512 + }, + .aux = { + .one_block = { + md5_one_block_avx512, + sha1_one_block_avx512, + sha224_one_block_avx512, + sha256_one_block_avx512, + sha384_one_block_avx512, + sha512_one_block_avx512 + }, + .keyexp = { + aes_keyexp_128_avx512, + aes_keyexp_192_avx512, + aes_keyexp_256_avx512, + aes_xcbc_expand_key_avx512 + } + } } };