linux/net/devlink/netlink.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (c) 2016 Mellanox Technologies. All rights reserved.
 * Copyright (c) 2016 Jiri Pirko <[email protected]>
 */

#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 =;