#include <net/genetlink.h>
#include <net/sock.h>
#include "devl_internal.h"
#define DEVLINK_NL_FLAG_NEED_PORT …
#define DEVLINK_NL_FLAG_NEED_DEVLINK_OR_PORT …
#define DEVLINK_NL_FLAG_NEED_DEV_LOCK …
static const struct genl_multicast_group devlink_nl_mcgrps[] = …;
struct devlink_nl_sock_priv { … };
static void devlink_nl_sock_priv_init(void *priv)
{ … }
static void devlink_nl_sock_priv_destroy(void *priv)
{ … }
int devlink_nl_notify_filter_set_doit(struct sk_buff *skb,
struct genl_info *info)
{ … }
static bool devlink_obj_desc_match(const struct devlink_obj_desc *desc,
const struct devlink_obj_desc *flt)
{ … }
int devlink_nl_notify_filter(struct sock *dsk, struct sk_buff *skb, void *data)
{ … }
int devlink_nl_put_nested_handle(struct sk_buff *msg, struct net *net,
struct devlink *devlink, int attrtype)
{ … }
int devlink_nl_msg_reply_and_new(struct sk_buff **msg, struct genl_info *info)
{ … }
struct devlink *
devlink_get_from_attrs_lock(struct net *net, struct nlattr **attrs,
bool dev_lock)
{ … }
static int __devlink_nl_pre_doit(struct sk_buff *skb, struct genl_info *info,
u8 flags)
{ … }
int devlink_nl_pre_doit(const struct genl_split_ops *ops,
struct sk_buff *skb, struct genl_info *info)
{ … }
int devlink_nl_pre_doit_port(const struct genl_split_ops *ops,
struct sk_buff *skb, struct genl_info *info)
{ … }
int devlink_nl_pre_doit_dev_lock(const struct genl_split_ops *ops,
struct sk_buff *skb, struct genl_info *info)
{ … }
int devlink_nl_pre_doit_port_optional(const struct genl_split_ops *ops,
struct sk_buff *skb,
struct genl_info *info)
{ … }
static void __devlink_nl_post_doit(struct sk_buff *skb, struct genl_info *info,
u8 flags)
{ … }
void devlink_nl_post_doit(const struct genl_split_ops *ops,
struct sk_buff *skb, struct genl_info *info)
{ … }
void
devlink_nl_post_doit_dev_lock(const struct genl_split_ops *ops,
struct sk_buff *skb, struct genl_info *info)
{ … }
static int devlink_nl_inst_single_dumpit(struct sk_buff *msg,
struct netlink_callback *cb, int flags,
devlink_nl_dump_one_func_t *dump_one,
struct nlattr **attrs)
{ … }
static int devlink_nl_inst_iter_dumpit(struct sk_buff *msg,
struct netlink_callback *cb, int flags,
devlink_nl_dump_one_func_t *dump_one)
{ … }
int devlink_nl_dumpit(struct sk_buff *msg, struct netlink_callback *cb,
devlink_nl_dump_one_func_t *dump_one)
{ … }
struct genl_family devlink_nl_family __ro_after_init = …;