#include <linux/compiler.h>
#include <linux/errno.h>
#include <linux/if_arp.h>
#include <linux/in6.h>
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/proc_fs.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/tcp.h>
#include <linux/types.h>
#include <linux/wireless.h>
#include <linux/etherdevice.h>
#include <linux/uaccess.h>
#include <net/net_namespace.h>
#include <net/arp.h>
#include "libipw.h"
#define DRV_DESCRIPTION …
#define DRV_NAME …
#define DRV_PROCNAME …
#define DRV_VERSION …
#define DRV_COPYRIGHT …
MODULE_VERSION(…);
MODULE_DESCRIPTION(…);
MODULE_AUTHOR(…);
MODULE_LICENSE(…) …;
static struct cfg80211_ops libipw_config_ops = …;
static void *libipw_wiphy_privid = …;
static int libipw_networks_allocate(struct libipw_device *ieee)
{ … }
static inline void libipw_networks_free(struct libipw_device *ieee)
{ … }
void libipw_networks_age(struct libipw_device *ieee,
unsigned long age_secs)
{ … }
EXPORT_SYMBOL(…);
static void libipw_networks_initialize(struct libipw_device *ieee)
{ … }
struct net_device *alloc_libipw(int sizeof_priv, int monitor)
{ … }
EXPORT_SYMBOL(…);
void free_libipw(struct net_device *dev, int monitor)
{ … }
EXPORT_SYMBOL(…);
#ifdef CONFIG_LIBIPW_DEBUG
static int debug = …;
u32 libipw_debug_level = …;
EXPORT_SYMBOL_GPL(…);
static struct proc_dir_entry *libipw_proc = …;
static int debug_level_proc_show(struct seq_file *m, void *v)
{ … }
static int debug_level_proc_open(struct inode *inode, struct file *file)
{ … }
static ssize_t debug_level_proc_write(struct file *file,
const char __user *buffer, size_t count, loff_t *pos)
{ … }
static const struct proc_ops debug_level_proc_ops = …;
#endif
static int __init libipw_init(void)
{ … }
static void __exit libipw_exit(void)
{ … }
#ifdef CONFIG_LIBIPW_DEBUG
#include <linux/moduleparam.h>
module_param(debug, int, 0444);
MODULE_PARM_DESC(…) …;
#endif
module_exit(libipw_exit);
module_init(…) …;