#include <crypto/internal/acompress.h>
#include <crypto/internal/scompress.h>
#include <crypto/scatterwalk.h>
#include <linux/cryptouser.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/scatterlist.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/vmalloc.h>
#include <net/netlink.h>
#include "compress.h"
struct scomp_scratch { … };
static DEFINE_PER_CPU(struct scomp_scratch, scomp_scratch) = …;
static const struct crypto_type crypto_scomp_type;
static int scomp_scratch_users;
static DEFINE_MUTEX(scomp_lock);
static int __maybe_unused crypto_scomp_report(
struct sk_buff *skb, struct crypto_alg *alg)
{ … }
static void crypto_scomp_show(struct seq_file *m, struct crypto_alg *alg)
__maybe_unused;
static void crypto_scomp_show(struct seq_file *m, struct crypto_alg *alg)
{ … }
static void crypto_scomp_free_scratches(void)
{ … }
static int crypto_scomp_alloc_scratches(void)
{ … }
static int crypto_scomp_init_tfm(struct crypto_tfm *tfm)
{ … }
static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir)
{ … }
static int scomp_acomp_compress(struct acomp_req *req)
{ … }
static int scomp_acomp_decompress(struct acomp_req *req)
{ … }
static void crypto_exit_scomp_ops_async(struct crypto_tfm *tfm)
{ … }
int crypto_init_scomp_ops_async(struct crypto_tfm *tfm)
{ … }
struct acomp_req *crypto_acomp_scomp_alloc_ctx(struct acomp_req *req)
{ … }
void crypto_acomp_scomp_free_ctx(struct acomp_req *req)
{ … }
static const struct crypto_type crypto_scomp_type = …;
int crypto_register_scomp(struct scomp_alg *alg)
{ … }
EXPORT_SYMBOL_GPL(…);
void crypto_unregister_scomp(struct scomp_alg *alg)
{ … }
EXPORT_SYMBOL_GPL(…);
int crypto_register_scomps(struct scomp_alg *algs, int count)
{ … }
EXPORT_SYMBOL_GPL(…);
void crypto_unregister_scomps(struct scomp_alg *algs, int count)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;