#include <linux/string.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/compat.h>
#include <linux/errno.h>
#include <linux/netdevice.h>
#include <linux/net.h>
#include <linux/init.h>
#include <linux/if_pppox.h>
#include <linux/ppp_defs.h>
#include <linux/ppp-ioctl.h>
#include <linux/ppp_channel.h>
#include <linux/kmod.h>
#include <net/sock.h>
#include <linux/uaccess.h>
static const struct pppox_proto *pppox_protos[PX_MAX_PROTO + 1];
int register_pppox_proto(int proto_num, const struct pppox_proto *pp)
{ … }
void unregister_pppox_proto(int proto_num)
{ … }
void pppox_unbind_sock(struct sock *sk)
{ … }
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
int pppox_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{ … }
EXPORT_SYMBOL(…);
#ifdef CONFIG_COMPAT
int pppox_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{ … }
EXPORT_SYMBOL(…);
#endif
static int pppox_create(struct net *net, struct socket *sock, int protocol,
int kern)
{ … }
static const struct net_proto_family pppox_proto_family = …;
static int __init pppox_init(void)
{ … }
static void __exit pppox_exit(void)
{ … }
module_init(…) …;
module_exit(pppox_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
MODULE_ALIAS_NETPROTO(…);