#define pr_fmt(fmt) …
#include <linux/export.h>
#include <linux/mutex.h>
#include <linux/etherdevice.h>
#include <linux/netlink.h>
#include <asm/byteorder.h>
#include <net/sock.h>
#include "netlink_k.h"
static DEFINE_MUTEX(netlink_mutex);
#define ND_MAX_GROUP …
#define ND_IFINDEX_LEN …
#define ND_NLMSG_SPACE(len) …
#define ND_NLMSG_DATA(nlh) …
#define ND_NLMSG_S_LEN(len) …
#define ND_NLMSG_R_LEN(nlh) …
#define ND_NLMSG_IFIDX(nlh) …
#define ND_MAX_MSG_LEN …
static void (*rcv_cb)(struct net_device *dev, u16 type, void *msg, int len);
static void netlink_rcv_cb(struct sk_buff *skb)
{ … }
static void netlink_rcv(struct sk_buff *skb)
{ … }
struct sock *netlink_init(int unit,
void (*cb)(struct net_device *dev, u16 type,
void *msg, int len))
{ … }
int netlink_send(struct sock *sock, int group, u16 type, void *msg, int len,
struct net_device *dev)
{ … }