#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/skbuff.h>
#include <linux/netfilter.h>
#include <linux/mutex.h>
#include <net/sock.h>
#include "nf_internals.h"
static DEFINE_MUTEX(nf_sockopt_mutex);
static LIST_HEAD(nf_sockopts);
static inline int overlap(int min1, int max1, int min2, int max2)
{ … }
int nf_register_sockopt(struct nf_sockopt_ops *reg)
{ … }
EXPORT_SYMBOL(…);
void nf_unregister_sockopt(struct nf_sockopt_ops *reg)
{ … }
EXPORT_SYMBOL(…);
static struct nf_sockopt_ops *nf_sockopt_find(struct sock *sk, u_int8_t pf,
int val, int get)
{ … }
int nf_setsockopt(struct sock *sk, u_int8_t pf, int val, sockptr_t opt,
unsigned int len)
{ … }
EXPORT_SYMBOL(…);
int nf_getsockopt(struct sock *sk, u_int8_t pf, int val, char __user *opt,
int *len)
{ … }
EXPORT_SYMBOL(…);