#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/in.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/spinlock.h>
#include <linux/timer.h>
#include <linux/string.h>
#include <linux/sockios.h>
#include <linux/net.h>
#include <linux/slab.h>
#include <net/ax25.h>
#include <linux/inet.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <net/sock.h>
#include <linux/uaccess.h>
#include <linux/fcntl.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
static struct ax25_protocol *protocol_list;
static DEFINE_RWLOCK(protocol_list_lock);
static HLIST_HEAD(ax25_linkfail_list);
static DEFINE_SPINLOCK(linkfail_lock);
static struct listen_struct { … } *listen_list = …;
static DEFINE_SPINLOCK(listen_lock);
void ax25_register_pid(struct ax25_protocol *ap)
{ … }
EXPORT_SYMBOL_GPL(…);
void ax25_protocol_release(unsigned int pid)
{ … }
EXPORT_SYMBOL(…);
void ax25_linkfail_register(struct ax25_linkfail *lf)
{ … }
EXPORT_SYMBOL(…);
void ax25_linkfail_release(struct ax25_linkfail *lf)
{ … }
EXPORT_SYMBOL(…);
int ax25_listen_register(const ax25_address *callsign, struct net_device *dev)
{ … }
EXPORT_SYMBOL(…);
void ax25_listen_release(const ax25_address *callsign, struct net_device *dev)
{ … }
EXPORT_SYMBOL(…);
int (*ax25_protocol_function(unsigned int pid))(struct sk_buff *, ax25_cb *)
{ … }
int ax25_listen_mine(const ax25_address *callsign, struct net_device *dev)
{ … }
void ax25_link_failed(ax25_cb *ax25, int reason)
{ … }
int ax25_protocol_is_registered(unsigned int pid)
{ … }