#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/in.h>
#include <linux/kernel.h>
#include <linux/jiffies.h>
#include <linux/timer.h>
#include <linux/string.h>
#include <linux/sockios.h>
#include <linux/net.h>
#include <linux/inet.h>
#include <linux/if_arp.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <net/sock.h>
#include <linux/uaccess.h>
#include <linux/fcntl.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
#include <linux/stat.h>
#include <linux/init.h>
#include <net/lapb.h>
static LIST_HEAD(lapb_list);
static DEFINE_RWLOCK(lapb_list_lock);
static void lapb_free_cb(struct lapb_cb *lapb)
{ … }
static __inline__ void lapb_hold(struct lapb_cb *lapb)
{ … }
static __inline__ void lapb_put(struct lapb_cb *lapb)
{ … }
static void __lapb_remove_cb(struct lapb_cb *lapb)
{ … }
static void __lapb_insert_cb(struct lapb_cb *lapb)
{ … }
static struct lapb_cb *__lapb_devtostruct(struct net_device *dev)
{ … }
static struct lapb_cb *lapb_devtostruct(struct net_device *dev)
{ … }
static struct lapb_cb *lapb_create_cb(void)
{ … }
int lapb_register(struct net_device *dev,
const struct lapb_register_struct *callbacks)
{ … }
EXPORT_SYMBOL(…);
int lapb_unregister(struct net_device *dev)
{ … }
EXPORT_SYMBOL(…);
int lapb_getparms(struct net_device *dev, struct lapb_parms_struct *parms)
{ … }
EXPORT_SYMBOL(…);
int lapb_setparms(struct net_device *dev, struct lapb_parms_struct *parms)
{ … }
EXPORT_SYMBOL(…);
int lapb_connect_request(struct net_device *dev)
{ … }
EXPORT_SYMBOL(…);
static int __lapb_disconnect_request(struct lapb_cb *lapb)
{ … }
int lapb_disconnect_request(struct net_device *dev)
{ … }
EXPORT_SYMBOL(…);
int lapb_data_request(struct net_device *dev, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL(…);
int lapb_data_received(struct net_device *dev, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL(…);
void lapb_connect_confirmation(struct lapb_cb *lapb, int reason)
{ … }
void lapb_connect_indication(struct lapb_cb *lapb, int reason)
{ … }
void lapb_disconnect_confirmation(struct lapb_cb *lapb, int reason)
{ … }
void lapb_disconnect_indication(struct lapb_cb *lapb, int reason)
{ … }
int lapb_data_indication(struct lapb_cb *lapb, struct sk_buff *skb)
{ … }
int lapb_data_transmit(struct lapb_cb *lapb, struct sk_buff *skb)
{ … }
static int lapb_device_event(struct notifier_block *this, unsigned long event,
void *ptr)
{ … }
static struct notifier_block lapb_dev_notifier = …;
static int __init lapb_init(void)
{ … }
static void __exit lapb_exit(void)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
module_init(…) …;
module_exit(lapb_exit);