#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/ctype.h>
#include <linux/ieee80211.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <net/lib80211.h>
#define DRV_DESCRIPTION …
MODULE_DESCRIPTION(…);
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
struct lib80211_crypto_alg { … };
static LIST_HEAD(lib80211_crypto_algs);
static DEFINE_SPINLOCK(lib80211_crypto_lock);
static void lib80211_crypt_deinit_entries(struct lib80211_crypt_info *info,
int force);
static void lib80211_crypt_quiescing(struct lib80211_crypt_info *info);
static void lib80211_crypt_deinit_handler(struct timer_list *t);
int lib80211_crypt_info_init(struct lib80211_crypt_info *info, char *name,
spinlock_t *lock)
{ … }
EXPORT_SYMBOL(…);
void lib80211_crypt_info_free(struct lib80211_crypt_info *info)
{ … }
EXPORT_SYMBOL(…);
static void lib80211_crypt_deinit_entries(struct lib80211_crypt_info *info,
int force)
{ … }
static void lib80211_crypt_quiescing(struct lib80211_crypt_info *info)
{ … }
static void lib80211_crypt_deinit_handler(struct timer_list *t)
{ … }
void lib80211_crypt_delayed_deinit(struct lib80211_crypt_info *info,
struct lib80211_crypt_data **crypt)
{ … }
EXPORT_SYMBOL(…);
int lib80211_register_crypto_ops(struct lib80211_crypto_ops *ops)
{ … }
EXPORT_SYMBOL(…);
int lib80211_unregister_crypto_ops(struct lib80211_crypto_ops *ops)
{ … }
EXPORT_SYMBOL(…);
struct lib80211_crypto_ops *lib80211_get_crypto_ops(const char *name)
{ … }
EXPORT_SYMBOL(…);
static void *lib80211_crypt_null_init(int keyidx)
{ … }
static void lib80211_crypt_null_deinit(void *priv)
{ … }
static struct lib80211_crypto_ops lib80211_crypt_null = …;
static int __init lib80211_init(void)
{ … }
static void __exit lib80211_exit(void)
{ … }
module_init(…) …;
module_exit(lib80211_exit);