#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/skbuff.h>
#include <linux/netfilter.h>
#include <linux/netfilter_ipv4.h>
#include <linux/netfilter_ipv6.h>
#include <linux/netfilter_bridge.h>
#include <linux/seq_file.h>
#include <linux/rcupdate.h>
#include <net/protocol.h>
#include <net/netfilter/nf_queue.h>
#include <net/dst.h>
#include "nf_internals.h"
static const struct nf_queue_handler __rcu *nf_queue_handler;
void nf_register_queue_handler(const struct nf_queue_handler *qh)
{ … }
EXPORT_SYMBOL(…);
void nf_unregister_queue_handler(void)
{ … }
EXPORT_SYMBOL(…);
static void nf_queue_sock_put(struct sock *sk)
{ … }
static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
{ … }
void nf_queue_entry_free(struct nf_queue_entry *entry)
{ … }
EXPORT_SYMBOL_GPL(…);
static void __nf_queue_entry_init_physdevs(struct nf_queue_entry *entry)
{ … }
bool nf_queue_entry_get_refs(struct nf_queue_entry *entry)
{ … }
EXPORT_SYMBOL_GPL(…);
void nf_queue_nf_hook_drop(struct net *net)
{ … }
EXPORT_SYMBOL_GPL(…);
static void nf_ip_saveroute(const struct sk_buff *skb,
struct nf_queue_entry *entry)
{ … }
static void nf_ip6_saveroute(const struct sk_buff *skb,
struct nf_queue_entry *entry)
{ … }
static int __nf_queue(struct sk_buff *skb, const struct nf_hook_state *state,
unsigned int index, unsigned int queuenum)
{ … }
int nf_queue(struct sk_buff *skb, struct nf_hook_state *state,
unsigned int index, unsigned int verdict)
{ … }
EXPORT_SYMBOL_GPL(…);