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

TOMOYO Linux Cross Reference
Linux/crypto/acompress.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /crypto/acompress.c (Version linux-6.11.5) and /crypto/acompress.c (Version linux-5.4.281)


** Warning: Cannot open xref database.

  1 // SPDX-License-Identifier: GPL-2.0-or-later        1 
  2 /*                                                
  3  * Asynchronous Compression operations            
  4  *                                                
  5  * Copyright (c) 2016, Intel Corporation          
  6  * Authors: Weigang Li <weigang.li@intel.com>     
  7  *          Giovanni Cabiddu <giovanni.cabiddu    
  8  */                                               
  9                                                   
 10 #include <crypto/internal/acompress.h>            
 11 #include <linux/cryptouser.h>                     
 12 #include <linux/errno.h>                          
 13 #include <linux/kernel.h>                         
 14 #include <linux/module.h>                         
 15 #include <linux/seq_file.h>                       
 16 #include <linux/slab.h>                           
 17 #include <linux/string.h>                         
 18 #include <net/netlink.h>                          
 19                                                   
 20 #include "compress.h"                             
 21                                                   
 22 struct crypto_scomp;                              
 23                                                   
 24 static const struct crypto_type crypto_acomp_t    
 25                                                   
 26 static inline struct acomp_alg *__crypto_acomp    
 27 {                                                 
 28         return container_of(alg, struct acomp_    
 29 }                                                 
 30                                                   
 31 static inline struct acomp_alg *crypto_acomp_a    
 32 {                                                 
 33         return __crypto_acomp_alg(crypto_acomp    
 34 }                                                 
 35                                                   
 36 static int __maybe_unused crypto_acomp_report(    
 37         struct sk_buff *skb, struct crypto_alg    
 38 {                                                 
 39         struct crypto_report_acomp racomp;        
 40                                                   
 41         memset(&racomp, 0, sizeof(racomp));       
 42                                                   
 43         strscpy(racomp.type, "acomp", sizeof(r    
 44                                                   
 45         return nla_put(skb, CRYPTOCFGA_REPORT_    
 46 }                                                 
 47                                                   
 48 static void crypto_acomp_show(struct seq_file     
 49         __maybe_unused;                           
 50                                                   
 51 static void crypto_acomp_show(struct seq_file     
 52 {                                                 
 53         seq_puts(m, "type         : acomp\n");    
 54 }                                                 
 55                                                   
 56 static void crypto_acomp_exit_tfm(struct crypt    
 57 {                                                 
 58         struct crypto_acomp *acomp = __crypto_    
 59         struct acomp_alg *alg = crypto_acomp_a    
 60                                                   
 61         alg->exit(acomp);                         
 62 }                                                 
 63                                                   
 64 static int crypto_acomp_init_tfm(struct crypto    
 65 {                                                 
 66         struct crypto_acomp *acomp = __crypto_    
 67         struct acomp_alg *alg = crypto_acomp_a    
 68                                                   
 69         if (tfm->__crt_alg->cra_type != &crypt    
 70                 return crypto_init_scomp_ops_a    
 71                                                   
 72         acomp->compress = alg->compress;          
 73         acomp->decompress = alg->decompress;      
 74         acomp->dst_free = alg->dst_free;          
 75         acomp->reqsize = alg->reqsize;            
 76                                                   
 77         if (alg->exit)                            
 78                 acomp->base.exit = crypto_acom    
 79                                                   
 80         if (alg->init)                            
 81                 return alg->init(acomp);          
 82                                                   
 83         return 0;                                 
 84 }                                                 
 85                                                   
 86 static unsigned int crypto_acomp_extsize(struc    
 87 {                                                 
 88         int extsize = crypto_alg_extsize(alg);    
 89                                                   
 90         if (alg->cra_type != &crypto_acomp_typ    
 91                 extsize += sizeof(struct crypt    
 92                                                   
 93         return extsize;                           
 94 }                                                 
 95                                                   
 96 static const struct crypto_type crypto_acomp_t    
 97         .extsize = crypto_acomp_extsize,          
 98         .init_tfm = crypto_acomp_init_tfm,        
 99 #ifdef CONFIG_PROC_FS                             
100         .show = crypto_acomp_show,                
101 #endif                                            
102 #if IS_ENABLED(CONFIG_CRYPTO_USER)                
103         .report = crypto_acomp_report,            
104 #endif                                            
105         .maskclear = ~CRYPTO_ALG_TYPE_MASK,       
106         .maskset = CRYPTO_ALG_TYPE_ACOMPRESS_M    
107         .type = CRYPTO_ALG_TYPE_ACOMPRESS,        
108         .tfmsize = offsetof(struct crypto_acom    
109 };                                                
110                                                   
111 struct crypto_acomp *crypto_alloc_acomp(const     
112                                         u32 ma    
113 {                                                 
114         return crypto_alloc_tfm(alg_name, &cry    
115 }                                                 
116 EXPORT_SYMBOL_GPL(crypto_alloc_acomp);            
117                                                   
118 struct crypto_acomp *crypto_alloc_acomp_node(c    
119                                         u32 ma    
120 {                                                 
121         return crypto_alloc_tfm_node(alg_name,    
122                                 node);            
123 }                                                 
124 EXPORT_SYMBOL_GPL(crypto_alloc_acomp_node);       
125                                                   
126 struct acomp_req *acomp_request_alloc(struct c    
127 {                                                 
128         struct crypto_tfm *tfm = crypto_acomp_    
129         struct acomp_req *req;                    
130                                                   
131         req = __acomp_request_alloc(acomp);       
132         if (req && (tfm->__crt_alg->cra_type !    
133                 return crypto_acomp_scomp_allo    
134                                                   
135         return req;                               
136 }                                                 
137 EXPORT_SYMBOL_GPL(acomp_request_alloc);           
138                                                   
139 void acomp_request_free(struct acomp_req *req)    
140 {                                                 
141         struct crypto_acomp *acomp = crypto_ac    
142         struct crypto_tfm *tfm = crypto_acomp_    
143                                                   
144         if (tfm->__crt_alg->cra_type != &crypt    
145                 crypto_acomp_scomp_free_ctx(re    
146                                                   
147         if (req->flags & CRYPTO_ACOMP_ALLOC_OU    
148                 acomp->dst_free(req->dst);        
149                 req->dst = NULL;                  
150         }                                         
151                                                   
152         __acomp_request_free(req);                
153 }                                                 
154 EXPORT_SYMBOL_GPL(acomp_request_free);            
155                                                   
156 void comp_prepare_alg(struct comp_alg_common *    
157 {                                                 
158         struct crypto_alg *base = &alg->base;     
159                                                   
160         base->cra_flags &= ~CRYPTO_ALG_TYPE_MA    
161 }                                                 
162                                                   
163 int crypto_register_acomp(struct acomp_alg *al    
164 {                                                 
165         struct crypto_alg *base = &alg->calg.b    
166                                                   
167         comp_prepare_alg(&alg->calg);             
168                                                   
169         base->cra_type = &crypto_acomp_type;      
170         base->cra_flags |= CRYPTO_ALG_TYPE_ACO    
171                                                   
172         return crypto_register_alg(base);         
173 }                                                 
174 EXPORT_SYMBOL_GPL(crypto_register_acomp);         
175                                                   
176 void crypto_unregister_acomp(struct acomp_alg     
177 {                                                 
178         crypto_unregister_alg(&alg->base);        
179 }                                                 
180 EXPORT_SYMBOL_GPL(crypto_unregister_acomp);       
181                                                   
182 int crypto_register_acomps(struct acomp_alg *a    
183 {                                                 
184         int i, ret;                               
185                                                   
186         for (i = 0; i < count; i++) {             
187                 ret = crypto_register_acomp(&a    
188                 if (ret)                          
189                         goto err;                 
190         }                                         
191                                                   
192         return 0;                                 
193                                                   
194 err:                                              
195         for (--i; i >= 0; --i)                    
196                 crypto_unregister_acomp(&algs[    
197                                                   
198         return ret;                               
199 }                                                 
200 EXPORT_SYMBOL_GPL(crypto_register_acomps);        
201                                                   
202 void crypto_unregister_acomps(struct acomp_alg    
203 {                                                 
204         int i;                                    
205                                                   
206         for (i = count - 1; i >= 0; --i)          
207                 crypto_unregister_acomp(&algs[    
208 }                                                 
209 EXPORT_SYMBOL_GPL(crypto_unregister_acomps);      
210                                                   
211 MODULE_LICENSE("GPL");                            
212 MODULE_DESCRIPTION("Asynchronous compression t    
213                                                   

~ [ 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