#include <linux/bpf.h>
#include <linux/errno.h>
#include <linux/errqueue.h>
#include <linux/file.h>
#include <linux/in.h>
#include <linux/kernel.h>
#include <linux/export.h>
#include <linux/init.h>
#include <linux/net.h>
#include <linux/netdevice.h>
#include <linux/poll.h>
#include <linux/rculist.h>
#include <linux/skbuff.h>
#include <linux/socket.h>
#include <linux/uaccess.h>
#include <linux/workqueue.h>
#include <net/strparser.h>
#include <net/netns/generic.h>
#include <net/sock.h>
static struct workqueue_struct *strp_wq;
static inline struct _strp_msg *_strp_msg(struct sk_buff *skb)
{ … }
static void strp_abort_strp(struct strparser *strp, int err)
{ … }
static void strp_start_timer(struct strparser *strp, long timeo)
{ … }
static void strp_parser_err(struct strparser *strp, int err,
read_descriptor_t *desc)
{ … }
static inline int strp_peek_len(struct strparser *strp)
{ … }
static int __strp_recv(read_descriptor_t *desc, struct sk_buff *orig_skb,
unsigned int orig_offset, size_t orig_len,
size_t max_msg_size, long timeo)
{ … }
int strp_process(struct strparser *strp, struct sk_buff *orig_skb,
unsigned int orig_offset, size_t orig_len,
size_t max_msg_size, long timeo)
{ … }
EXPORT_SYMBOL_GPL(…);
static int strp_recv(read_descriptor_t *desc, struct sk_buff *orig_skb,
unsigned int orig_offset, size_t orig_len)
{ … }
static int default_read_sock_done(struct strparser *strp, int err)
{ … }
static int strp_read_sock(struct strparser *strp)
{ … }
void strp_data_ready(struct strparser *strp)
{ … }
EXPORT_SYMBOL_GPL(…);
static void do_strp_work(struct strparser *strp)
{ … }
static void strp_work(struct work_struct *w)
{ … }
static void strp_msg_timeout(struct work_struct *w)
{ … }
static void strp_sock_lock(struct strparser *strp)
{ … }
static void strp_sock_unlock(struct strparser *strp)
{ … }
int strp_init(struct strparser *strp, struct sock *sk,
const struct strp_callbacks *cb)
{ … }
EXPORT_SYMBOL_GPL(…);
void __strp_unpause(struct strparser *strp)
{ … }
EXPORT_SYMBOL_GPL(…);
void strp_unpause(struct strparser *strp)
{ … }
EXPORT_SYMBOL_GPL(…);
void strp_done(struct strparser *strp)
{ … }
EXPORT_SYMBOL_GPL(…);
void strp_stop(struct strparser *strp)
{ … }
EXPORT_SYMBOL_GPL(…);
void strp_check_rcv(struct strparser *strp)
{ … }
EXPORT_SYMBOL_GPL(…);
static int __init strp_dev_init(void)
{ … }
device_initcall(strp_dev_init);