Branch data 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 : : static inline void *acomp_request_ctx(struct acomp_req *req) 17 : : { 18 : : return req->__ctx; 19 : : } 20 : : 21 : : static inline void *acomp_tfm_ctx(struct crypto_acomp *tfm) 22 : : { 23 : : 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 : : struct acomp_req *req; 40 : : 41 : 0 : req = kzalloc(sizeof(*req) + crypto_acomp_reqsize(tfm), GFP_KERNEL); 42 [ # # ]: 0 : if (likely(req)) 43 : : acomp_request_set_tfm(req, tfm); 44 : 0 : return req; 45 : : } 46 : : 47 : : static inline void __acomp_request_free(struct acomp_req *req) 48 : : { 49 : 0 : kzfree(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 : : * Return: zero on success; error code in case of error 73 : : */ 74 : : int crypto_unregister_acomp(struct acomp_alg *alg); 75 : : 76 : : int crypto_register_acomps(struct acomp_alg *algs, int count); 77 : : void crypto_unregister_acomps(struct acomp_alg *algs, int count); 78 : : 79 : : #endif