linux/drivers/net/can/dev/netlink.c

// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (C) 2005 Marc Kleine-Budde, Pengutronix
 * Copyright (C) 2006 Andrey Volkov, Varma Electronics
 * Copyright (C) 2008-2009 Wolfgang Grandegger <[email protected]>
 * Copyright (C) 2021 Vincent Mailhol <[email protected]>
 */

#include <linux/can/dev.h>
#include <net/rtnetlink.h>

static const struct nla_policy can_policy[IFLA_CAN_MAX + 1] =;

static const struct nla_policy can_tdc_policy[IFLA_CAN_TDC_MAX + 1] =;

static int can_validate_bittiming(const struct can_bittiming *bt,
				  struct netlink_ext_ack *extack)
{}

static int can_validate(struct nlattr *tb[], struct nlattr *data[],
			struct netlink_ext_ack *extack)
{}

static int can_tdc_changelink(struct can_priv *priv, const struct nlattr *nla,
			      struct netlink_ext_ack *extack)
{}

static int can_changelink(struct net_device *dev, struct nlattr *tb[],
			  struct nlattr *data[],
			  struct netlink_ext_ack *extack)
{}

static size_t can_tdc_get_size(const struct net_device *dev)
{}

static size_t can_ctrlmode_ext_get_size(void)
{}

static size_t can_get_size(const struct net_device *dev)
{}

static int can_tdc_fill_info(struct sk_buff *skb, const struct net_device *dev)
{}

static int can_ctrlmode_ext_fill_info(struct sk_buff *skb,
				      const struct can_priv *priv)
{}

static int can_fill_info(struct sk_buff *skb, const struct net_device *dev)
{}

static size_t can_get_xstats_size(const struct net_device *dev)
{}

static int can_fill_xstats(struct sk_buff *skb, const struct net_device *dev)
{}

static int can_newlink(struct net *src_net, struct net_device *dev,
		       struct nlattr *tb[], struct nlattr *data[],
		       struct netlink_ext_ack *extack)
{}

static void can_dellink(struct net_device *dev, struct list_head *head)
{}

struct rtnl_link_ops can_link_ops __read_mostly =;

int can_netlink_register(void)
{}

void can_netlink_unregister(void)
{}