1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef ASM_X86_SERPENT_SSE2_H
3 #define ASM_X86_SERPENT_SSE2_H
5 #include <linux/crypto.h>
6 #include <crypto/serpent.h>
10 #define SERPENT_PARALLEL_BLOCKS 4
12 asmlinkage void __serpent_enc_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
13 const u8 *src, bool xor);
14 asmlinkage void serpent_dec_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
17 static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
19 __serpent_enc_blk_4way(ctx, dst, src, false);
22 static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
23 u8 *dst, const u8 *src)
25 __serpent_enc_blk_4way(ctx, dst, src, true);
28 static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
30 serpent_dec_blk_4way(ctx, dst, src);
35 #define SERPENT_PARALLEL_BLOCKS 8
37 asmlinkage void __serpent_enc_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
38 const u8 *src, bool xor);
39 asmlinkage void serpent_dec_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
42 static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
44 __serpent_enc_blk_8way(ctx, dst, src, false);
47 static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
48 u8 *dst, const u8 *src)
50 __serpent_enc_blk_8way(ctx, dst, src, true);
53 static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
55 serpent_dec_blk_8way(ctx, dst, src);