~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/crypto/sha512-neon-glue.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/arm/crypto/sha512-neon-glue.c (Version linux-6.12-rc7) and /arch/m68k/crypto/sha512-neon-glue.c (Version linux-5.15.171)


  1 // SPDX-License-Identifier: GPL-2.0-only            1 
  2 /*                                                
  3  * sha512-neon-glue.c - accelerated SHA-384/51    
  4  *                                                
  5  * Copyright (C) 2015 Linaro Ltd <ard.biesheuv    
  6  */                                               
  7                                                   
  8 #include <crypto/internal/hash.h>                 
  9 #include <crypto/internal/simd.h>                 
 10 #include <crypto/sha2.h>                          
 11 #include <crypto/sha512_base.h>                   
 12 #include <linux/crypto.h>                         
 13 #include <linux/module.h>                         
 14                                                   
 15 #include <asm/simd.h>                             
 16 #include <asm/neon.h>                             
 17                                                   
 18 #include "sha512.h"                               
 19                                                   
 20 MODULE_ALIAS_CRYPTO("sha384-neon");               
 21 MODULE_ALIAS_CRYPTO("sha512-neon");               
 22                                                   
 23 asmlinkage void sha512_block_data_order_neon(s    
 24                                              c    
 25                                                   
 26 static int sha512_neon_update(struct shash_des    
 27                               unsigned int len    
 28 {                                                 
 29         struct sha512_state *sctx = shash_desc    
 30                                                   
 31         if (!crypto_simd_usable() ||              
 32             (sctx->count[0] % SHA512_BLOCK_SIZ    
 33                 return sha512_arm_update(desc,    
 34                                                   
 35         kernel_neon_begin();                      
 36         sha512_base_do_update(desc, data, len,    
 37         kernel_neon_end();                        
 38                                                   
 39         return 0;                                 
 40 }                                                 
 41                                                   
 42 static int sha512_neon_finup(struct shash_desc    
 43                              unsigned int len,    
 44 {                                                 
 45         if (!crypto_simd_usable())                
 46                 return sha512_arm_finup(desc,     
 47                                                   
 48         kernel_neon_begin();                      
 49         if (len)                                  
 50                 sha512_base_do_update(desc, da    
 51                                       sha512_b    
 52         sha512_base_do_finalize(desc, sha512_b    
 53         kernel_neon_end();                        
 54                                                   
 55         return sha512_base_finish(desc, out);     
 56 }                                                 
 57                                                   
 58 static int sha512_neon_final(struct shash_desc    
 59 {                                                 
 60         return sha512_neon_finup(desc, NULL, 0    
 61 }                                                 
 62                                                   
 63 struct shash_alg sha512_neon_algs[] = { {         
 64         .init                   = sha384_base_    
 65         .update                 = sha512_neon_    
 66         .final                  = sha512_neon_    
 67         .finup                  = sha512_neon_    
 68         .descsize               = sizeof(struc    
 69         .digestsize             = SHA384_DIGES    
 70         .base                   = {               
 71                 .cra_name               = "sha    
 72                 .cra_driver_name        = "sha    
 73                 .cra_priority           = 300,    
 74                 .cra_blocksize          = SHA3    
 75                 .cra_module             = THIS    
 76                                                   
 77         }                                         
 78 },  {                                             
 79         .init                   = sha512_base_    
 80         .update                 = sha512_neon_    
 81         .final                  = sha512_neon_    
 82         .finup                  = sha512_neon_    
 83         .descsize               = sizeof(struc    
 84         .digestsize             = SHA512_DIGES    
 85         .base                   = {               
 86                 .cra_name               = "sha    
 87                 .cra_driver_name        = "sha    
 88                 .cra_priority           = 300,    
 89                 .cra_blocksize          = SHA5    
 90                 .cra_module             = THIS    
 91         }                                         
 92 } };                                              
 93                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php