#include <linux/capability.h>
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/timer.h>
#include <linux/in.h>
#include <linux/kernel.h>
#include <linux/sched.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/if_arp.h>
#include <linux/skbuff.h>
#include <linux/spinlock.h>
#include <net/sock.h>
#include <linux/uaccess.h>
#include <linux/fcntl.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/seq_file.h>
#include <linux/export.h>
static ax25_route *ax25_route_list;
DEFINE_RWLOCK(…);
void ax25_rt_device_down(struct net_device *dev)
{ … }
static int __must_check ax25_rt_add(struct ax25_routes_struct *route)
{ … }
void __ax25_put_route(ax25_route *ax25_rt)
{ … }
static int ax25_rt_del(struct ax25_routes_struct *route)
{ … }
static int ax25_rt_opt(struct ax25_route_opt_struct *rt_option)
{ … }
int ax25_rt_ioctl(unsigned int cmd, void __user *arg)
{ … }
#ifdef CONFIG_PROC_FS
static void *ax25_rt_seq_start(struct seq_file *seq, loff_t *pos)
__acquires(ax25_route_lock)
{ … }
static void *ax25_rt_seq_next(struct seq_file *seq, void *v, loff_t *pos)
{ … }
static void ax25_rt_seq_stop(struct seq_file *seq, void *v)
__releases(ax25_route_lock)
{ … }
static int ax25_rt_seq_show(struct seq_file *seq, void *v)
{ … }
const struct seq_operations ax25_rt_seqops = …;
#endif
ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev)
{ … }
static inline void ax25_adjust_path(ax25_address *addr, ax25_digi *digipeat)
{ … }
int ax25_rt_autobind(ax25_cb *ax25, ax25_address *addr)
{ … }
struct sk_buff *ax25_rt_build_path(struct sk_buff *skb, ax25_address *src,
ax25_address *dest, ax25_digi *digi)
{ … }
void __exit ax25_rt_free(void)
{ … }