/* SPDX-License-Identifier: GPL-2.0 */ 
 | 
#ifndef ASM_X86_SERPENT_SSE2_H 
 | 
#define ASM_X86_SERPENT_SSE2_H 
 | 
  
 | 
#include <linux/crypto.h> 
 | 
#include <crypto/serpent.h> 
 | 
  
 | 
#ifdef CONFIG_X86_32 
 | 
  
 | 
#define SERPENT_PARALLEL_BLOCKS 4 
 | 
  
 | 
asmlinkage void __serpent_enc_blk_4way(const struct serpent_ctx *ctx, u8 *dst, 
 | 
                       const u8 *src, bool xor); 
 | 
asmlinkage void serpent_dec_blk_4way(const struct serpent_ctx *ctx, u8 *dst, 
 | 
                     const u8 *src); 
 | 
  
 | 
static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src) 
 | 
{ 
 | 
    __serpent_enc_blk_4way(ctx, dst, src, false); 
 | 
} 
 | 
  
 | 
static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx, 
 | 
                        u8 *dst, const u8 *src) 
 | 
{ 
 | 
    __serpent_enc_blk_4way(ctx, dst, src, true); 
 | 
} 
 | 
  
 | 
static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src) 
 | 
{ 
 | 
    serpent_dec_blk_4way(ctx, dst, src); 
 | 
} 
 | 
  
 | 
#else 
 | 
  
 | 
#define SERPENT_PARALLEL_BLOCKS 8 
 | 
  
 | 
asmlinkage void __serpent_enc_blk_8way(const struct serpent_ctx *ctx, u8 *dst, 
 | 
                       const u8 *src, bool xor); 
 | 
asmlinkage void serpent_dec_blk_8way(const struct serpent_ctx *ctx, u8 *dst, 
 | 
                     const u8 *src); 
 | 
  
 | 
static inline void serpent_enc_blk_xway(const void *ctx, u8 *dst, const u8 *src) 
 | 
{ 
 | 
    __serpent_enc_blk_8way(ctx, dst, src, false); 
 | 
} 
 | 
  
 | 
static inline void serpent_enc_blk_xway_xor(const struct serpent_ctx *ctx, 
 | 
                        u8 *dst, const u8 *src) 
 | 
{ 
 | 
    __serpent_enc_blk_8way(ctx, dst, src, true); 
 | 
} 
 | 
  
 | 
static inline void serpent_dec_blk_xway(const void *ctx, u8 *dst, const u8 *src) 
 | 
{ 
 | 
    serpent_dec_blk_8way(ctx, dst, src); 
 | 
} 
 | 
  
 | 
#endif 
 | 
  
 | 
#endif 
 |