linux/net/ax25/ax25_route.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *
 * Copyright (C) Alan Cox GW4PTS ([email protected])
 * Copyright (C) Jonathan Naylor G4KLX ([email protected])
 * Copyright (C) Steven Whitehouse GW7RRM ([email protected])
 * Copyright (C) Joerg Reuter DL1BKE ([email protected])
 * Copyright (C) Hans-Joachim Hetscher DD8NE ([email protected])
 * Copyright (C) Frederic Rible F1OAT ([email protected])
 */

#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

/*
 *	Find AX.25 route
 *
 *	Only routes with a reference count of zero can be destroyed.
 *	Must be called with ax25_route_lock read locked.
 */
ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev)
{}

/*
 *	Adjust path: If you specify a default route and want to connect
 *      a target on the digipeater path but w/o having a special route
 *	set before, the path has to be truncated from your target on.
 */
static inline void ax25_adjust_path(ax25_address *addr, ax25_digi *digipeat)
{}


/*
 *	Find which interface to use.
 */
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)
{}

/*
 *	Free all memory associated with routing structures.
 */
void __exit ax25_rt_free(void)
{}