#include <linux/module.h>
#include <linux/inet_diag.h>
#include <linux/sock_diag.h>
#include <net/inet_sock.h>
#include <net/raw.h>
#include <net/rawv6.h>
#ifdef pr_fmt
# undef pr_fmt
#endif
#define pr_fmt(fmt) …
static struct raw_hashinfo *
raw_get_hashinfo(const struct inet_diag_req_v2 *r)
{ … }
static bool raw_lookup(struct net *net, const struct sock *sk,
const struct inet_diag_req_v2 *req)
{ … }
static struct sock *raw_sock_get(struct net *net, const struct inet_diag_req_v2 *r)
{ … }
static int raw_diag_dump_one(struct netlink_callback *cb,
const struct inet_diag_req_v2 *r)
{ … }
static int sk_diag_dump(struct sock *sk, struct sk_buff *skb,
struct netlink_callback *cb,
const struct inet_diag_req_v2 *r,
struct nlattr *bc, bool net_admin)
{ … }
static void raw_diag_dump(struct sk_buff *skb, struct netlink_callback *cb,
const struct inet_diag_req_v2 *r)
{ … }
static void raw_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
void *info)
{ … }
#ifdef CONFIG_INET_DIAG_DESTROY
static int raw_diag_destroy(struct sk_buff *in_skb,
const struct inet_diag_req_v2 *r)
{ … }
#endif
static const struct inet_diag_handler raw_diag_handler = …;
static void __always_unused __check_inet_diag_req_raw(void)
{ … }
static int __init raw_diag_init(void)
{ … }
static void __exit raw_diag_exit(void)
{ … }
module_init(…) …;
module_exit(raw_diag_exit);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_ALIAS_NET_PF_PROTO_TYPE(…);
MODULE_ALIAS_NET_PF_PROTO_TYPE(…);