#include <linux/types.h>
#include <linux/socket.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/skbuff.h>
#include <linux/mm.h>
#include <net/sock.h>
#include <net/genetlink.h>
#include <net/netns/generic.h>
#include <kunit/visibility.h>
#include <uapi/linux/handshake.h>
#include "handshake.h"
#include "genl.h"
#include <trace/events/handshake.h>
int handshake_genl_notify(struct net *net, const struct handshake_proto *proto,
gfp_t flags)
{ … }
struct nlmsghdr *handshake_genl_put(struct sk_buff *msg,
struct genl_info *info)
{ … }
EXPORT_SYMBOL(…);
int handshake_nl_accept_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
int handshake_nl_done_doit(struct sk_buff *skb, struct genl_info *info)
{ … }
static unsigned int handshake_net_id;
static int __net_init handshake_net_init(struct net *net)
{ … }
static void __net_exit handshake_net_exit(struct net *net)
{ … }
static struct pernet_operations handshake_genl_net_ops = …;
struct handshake_net *handshake_pernet(struct net *net)
{ … }
EXPORT_SYMBOL_IF_KUNIT(…);
static int __init handshake_init(void)
{ … }
static void __exit handshake_exit(void)
{ … }
module_init(…) …;
module_exit(handshake_exit);