Linux Audio

Check our new training course

Loading...
v6.13.7
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef ASM_X86_SERPENT_SSE2_H
 3#define ASM_X86_SERPENT_SSE2_H
 4
 5#include <linux/crypto.h>
 6#include <crypto/serpent.h>
 7
 8#ifdef CONFIG_X86_32
 9
10#define SERPENT_PARALLEL_BLOCKS 4
11
12asmlinkage void __serpent_enc_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
13				       const u8 *src, bool xor);
14asmlinkage void serpent_dec_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
15				     const u8 *src);
16
17static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
18{
19	__serpent_enc_blk_4way(ctx, dst, src, false);
20}
21
22static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
23					    u8 *dst, const u8 *src)
24{
25	__serpent_enc_blk_4way(ctx, dst, src, true);
26}
27
28static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
29{
30	serpent_dec_blk_4way(ctx, dst, src);
31}
32
33#else
34
35#define SERPENT_PARALLEL_BLOCKS 8
36
37asmlinkage void __serpent_enc_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
38				       const u8 *src, bool xor);
39asmlinkage void serpent_dec_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
40				     const u8 *src);
41
42static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
43{
44	__serpent_enc_blk_8way(ctx, dst, src, false);
45}
46
47static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
48					    u8 *dst, const u8 *src)
49{
50	__serpent_enc_blk_8way(ctx, dst, src, true);
51}
52
53static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
54{
55	serpent_dec_blk_8way(ctx, dst, src);
56}
57
58#endif
59
60#endif
v6.2
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef ASM_X86_SERPENT_SSE2_H
 3#define ASM_X86_SERPENT_SSE2_H
 4
 5#include <linux/crypto.h>
 6#include <crypto/serpent.h>
 7
 8#ifdef CONFIG_X86_32
 9
10#define SERPENT_PARALLEL_BLOCKS 4
11
12asmlinkage void __serpent_enc_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
13				       const u8 *src, bool xor);
14asmlinkage void serpent_dec_blk_4way(const struct serpent_ctx *ctx, u8 *dst,
15				     const u8 *src);
16
17static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
18{
19	__serpent_enc_blk_4way(ctx, dst, src, false);
20}
21
22static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
23					    u8 *dst, const u8 *src)
24{
25	__serpent_enc_blk_4way(ctx, dst, src, true);
26}
27
28static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
29{
30	serpent_dec_blk_4way(ctx, dst, src);
31}
32
33#else
34
35#define SERPENT_PARALLEL_BLOCKS 8
36
37asmlinkage void __serpent_enc_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
38				       const u8 *src, bool xor);
39asmlinkage void serpent_dec_blk_8way(const struct serpent_ctx *ctx, u8 *dst,
40				     const u8 *src);
41
42static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src)
43{
44	__serpent_enc_blk_8way(ctx, dst, src, false);
45}
46
47static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx,
48					    u8 *dst, const u8 *src)
49{
50	__serpent_enc_blk_8way(ctx, dst, src, true);
51}
52
53static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src)
54{
55	serpent_dec_blk_8way(ctx, dst, src);
56}
57
58#endif
59
60#endif