#include <linux/crypto.h>
#include <linux/err.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/percpu.h>
#include <linux/slab.h>
#include <linux/smp.h>
#include <linux/vmalloc.h>
#include <net/ip.h>
#include <net/ipcomp.h>
#include <net/xfrm.h>
struct ipcomp_tfms { … };
static DEFINE_MUTEX(ipcomp_resource_mutex);
static void * __percpu *ipcomp_scratches;
static int ipcomp_scratch_users;
static LIST_HEAD(ipcomp_tfms_list);
static int ipcomp_decompress(struct xfrm_state *x, struct sk_buff *skb)
{ … }
int ipcomp_input(struct xfrm_state *x, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL_GPL(…);
static int ipcomp_compress(struct xfrm_state *x, struct sk_buff *skb)
{ … }
int ipcomp_output(struct xfrm_state *x, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL_GPL(…);
static void ipcomp_free_scratches(void)
{ … }
static void * __percpu *ipcomp_alloc_scratches(void)
{ … }
static void ipcomp_free_tfms(struct crypto_comp * __percpu *tfms)
{ … }
static struct crypto_comp * __percpu *ipcomp_alloc_tfms(const char *alg_name)
{ … }
static void ipcomp_free_data(struct ipcomp_data *ipcd)
{ … }
void ipcomp_destroy(struct xfrm_state *x)
{ … }
EXPORT_SYMBOL_GPL(…);
int ipcomp_init_state(struct xfrm_state *x, struct netlink_ext_ack *extack)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;