Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0-or-later */ 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@intel.com> 8 : */ 9 : #ifndef _CRYPTO_ACOMP_INT_H 10 : #define _CRYPTO_ACOMP_INT_H 11 : #include <crypto/acompress.h> 12 : 13 : /* 14 : * Transform internal helpers. 15 : */ 16 0 : static inline void *acomp_request_ctx(struct acomp_req *req) 17 : { 18 0 : return req->__ctx; 19 : } 20 : 21 0 : static inline void *acomp_tfm_ctx(struct crypto_acomp *tfm) 22 : { 23 0 : return tfm->base.__crt_ctx; 24 : } 25 : 26 : static inline void acomp_request_complete(struct acomp_req *req, 27 : int err) 28 : { 29 : req->base.complete(&req->base, err); 30 : } 31 : 32 : static inline const char *acomp_alg_name(struct crypto_acomp *tfm) 33 : { 34 : return crypto_acomp_tfm(tfm)->__crt_alg->cra_name; 35 : } 36 : 37 0 : static inline struct acomp_req *__acomp_request_alloc(struct crypto_acomp *tfm) 38 : { 39 0 : struct acomp_req *req; 40 : 41 0 : req = kzalloc(sizeof(*req) + crypto_acomp_reqsize(tfm), GFP_KERNEL); 42 0 : if (likely(req)) 43 0 : acomp_request_set_tfm(req, tfm); 44 0 : return req; 45 : } 46 : 47 0 : static inline void __acomp_request_free(struct acomp_req *req) 48 : { 49 0 : kfree_sensitive(req); 50 : } 51 : 52 : /** 53 : * crypto_register_acomp() -- Register asynchronous compression algorithm 54 : * 55 : * Function registers an implementation of an asynchronous 56 : * compression algorithm 57 : * 58 : * @alg: algorithm definition 59 : * 60 : * Return: zero on success; error code in case of error 61 : */ 62 : int crypto_register_acomp(struct acomp_alg *alg); 63 : 64 : /** 65 : * crypto_unregister_acomp() -- Unregister asynchronous compression algorithm 66 : * 67 : * Function unregisters an implementation of an asynchronous 68 : * compression algorithm 69 : * 70 : * @alg: algorithm definition 71 : */ 72 : void crypto_unregister_acomp(struct acomp_alg *alg); 73 : 74 : int crypto_register_acomps(struct acomp_alg *algs, int count); 75 : void crypto_unregister_acomps(struct acomp_alg *algs, int count); 76 : 77 : #endif