#define pr_fmt(fmt) …
#include <linux/module.h>
#include <linux/skbuff.h>
#include <linux/socket.h>
#include <linux/hash.h>
#include <linux/l2tp.h>
#include <linux/in.h>
#include <linux/etherdevice.h>
#include <linux/spinlock.h>
#include <linux/debugfs.h>
#include <net/sock.h>
#include <net/ip.h>
#include <net/icmp.h>
#include <net/udp.h>
#include <net/inet_common.h>
#include <net/inet_hashtables.h>
#include <net/tcp_states.h>
#include <net/protocol.h>
#include <net/xfrm.h>
#include <net/net_namespace.h>
#include <net/netns/generic.h>
#include "l2tp_core.h"
static struct dentry *rootdir;
struct l2tp_dfs_seq_data { … };
static void l2tp_dfs_next_tunnel(struct l2tp_dfs_seq_data *pd)
{ … }
static void l2tp_dfs_next_session(struct l2tp_dfs_seq_data *pd)
{ … }
static void *l2tp_dfs_seq_start(struct seq_file *m, loff_t *offs)
{ … }
static void *l2tp_dfs_seq_next(struct seq_file *m, void *v, loff_t *pos)
{ … }
static void l2tp_dfs_seq_stop(struct seq_file *p, void *v)
{ … }
static void l2tp_dfs_seq_tunnel_show(struct seq_file *m, void *v)
{ … }
static void l2tp_dfs_seq_session_show(struct seq_file *m, void *v)
{ … }
static int l2tp_dfs_seq_show(struct seq_file *m, void *v)
{ … }
static const struct seq_operations l2tp_dfs_seq_ops = …;
static int l2tp_dfs_seq_open(struct inode *inode, struct file *file)
{ … }
static int l2tp_dfs_seq_release(struct inode *inode, struct file *file)
{ … }
static const struct file_operations l2tp_dfs_fops = …;
static int __init l2tp_debugfs_init(void)
{ … }
static void __exit l2tp_debugfs_exit(void)
{ … }
module_init(…) …;
module_exit(l2tp_debugfs_exit);
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_VERSION(…) …;